50 Commits

Author SHA1 Message Date
fanquake
a89e1618dd
contrib: update macOS SDK to Xcode-26.1.1-17B100 2026-01-29 16:27:04 +00:00
merge-script
d9851f9a7c
Merge bitcoin/bitcoin#33472: guix: documented shasum gathering command
ab649ce459450533ffdf068b00472259b72cf07a guix: documented shasum gathering command (janb84)

Pull request description:

  When a PR requires proof of Guix builds (sha256sums), the PR author or reviewer uses a not well documented command to collect the sha256sums of build outputs or manually gathers them from files.

  This pull request introduces a new section in the documentation, providing some documentation on the command's functionality and usage.

ACKs for top commit:
  willcl-ark:
    ACK ab649ce459450533ffdf068b00472259b72cf07a
  sedited:
    ACK ab649ce459450533ffdf068b00472259b72cf07a

Tree-SHA512: 0188663ad117b636c7d32a1b655db97610f558cfcffe4abd6f0fb097b3990db0dc6d23ab972926fefd2531b21f429742dcbea6b0fa579d22d5da7a7d6a4c753e
2026-01-28 17:31:40 +01:00
janb84
ab649ce459 guix: documented shasum gathering command 2026-01-26 15:39:04 +01:00
fanquake
c1213a35ab
macdeploy: disable compression in macOS gen-sdk script
Starting with Python 3.11, Pythons gzip might delegate to zlib.
Depending on the OS, i.e Ubuntu vs Fedora, the underlying zlib
implementation might differ, resulting in different output.

For now, or until a better solution exists, disable compression. This
results in the SDK increasing in size to ~157mb. Which is not
unreasonable, to regain determinism (and would be significantly worse
without the previous commit).

See: https://docs.python.org/3/library/gzip.html#gzip.compress

Co-authored-by: stickies-v <stickies-v@protonmail.com>
2025-11-26 11:07:48 +00:00
fanquake
3b824169c7
doc: remove Carls substitute server from Guix docs
This no-longer exists. Use one of the other Guix servers in the example.
2025-05-14 15:07:17 +01:00
wgyt
81b9800c87 fix typos 2025-01-24 09:12:38 +08:00
merge-script
1927674100
Merge bitcoin/bitcoin#31387: doc: Use more precise anchor link to codesigning docs
19f49c7489d226e1cebc754fbbae3e4bebc360af doc: Use more precise anchor link to codesigning docs (Jeremy Rand)

Pull request description:

  The "Codesigning" section is what users presumably are looking for when they follow this link.

ACKs for top commit:
  fanquake:
    ACK 19f49c7489d226e1cebc754fbbae3e4bebc360af

Tree-SHA512: 0e25cf0d7160db7d564d67d3e3ac614f9bd209b2399414f1278fa01cfc1ff827aa8311f7c1c2666924d5ac2dc23fe9bc258b80ed8025d5b8d5b11bcf1d12b28c
2024-12-02 14:09:54 +00:00
Jeremy Rand
19f49c7489
doc: Use more precise anchor link to codesigning docs
The "Codesigning" section is what users presumably are looking for when
they follow this link.
2024-11-28 05:48:30 +00:00
Jeremy Rand
8bf1b3039c
doc: Use more precise anchor links to Xcode SDK extraction
The "SDK Extraction" section is what users presumably are looking for
when they follow these links.
2024-11-28 05:36:25 +00:00
Hennadii Stepanov
6ce50fd9d0
doc: Update for CMake-based build system
Co-authored-by: Lőrinc <pap.lorinc@gmail.com>
Co-authored-by: pablomartin4btc <pablomartin4btc@gmail.com>
2024-08-16 21:24:08 +01:00
MarcoFalke
fad444f6e1
doc: Rework guix docs after 1.4 release 2023-12-18 10:31:11 +01:00
fanquake
66c4b58e51
guix: switch from guix environment to guix shell
See https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html.

> Deprecation warning: The guix environment command is deprecated
in favor of guix shell, which performs similar functions but is more
convenient to use. See Invoking guix shell.

> Being deprecated, guix environment is slated for eventual removal,
but the Guix project is committed to keeping it until May 1st, 2023.
Please get in touch with us at guix-devel@gnu.org if you would like
to discuss it.

See also https://guix.gnu.org/blog/2021/from-guix-environment-to-guix-shell/
for a blog post and additional details.

Guix shell was added to guix in this commit,
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=80edb7df6586464aa40e84e103f0045452de95db
which isn't part of the 1.3.0 release binaries out of the box, but
invoking a guix pull, and updating will make it available for all
builders.
2023-11-29 21:24:47 +00:00
Sjors Provoost
10660c0c60
doc: move Guix uninstall instructions to INSTALL.md
Also drop unused links.
2022-11-03 14:20:44 +01:00
Stacie
98383d6d0d doc: minor updates to guix README 2022-08-15 16:03:17 -04:00
Hennadii Stepanov
1f4801b6b1
doc, guix: Include arm64-apple-darwin into codesigned archs 2022-03-17 08:55:07 +01:00
fanquake
0628815e95
guix: add arm64-apple-darwin triplet 2022-01-26 17:32:46 +08:00
fanquake
446e73cc0b
build: use macOS 11 SDK (Xcode 12.2)
This should be sufficient to support building for Apple ARM when
cross-compiling.
2022-01-26 17:28:16 +08:00
Hennadii Stepanov
2f356a0ca8
scripted-diff: Drop Darwin version for better maintainability
-BEGIN VERIFY SCRIPT-
sed -i 's/darwin19/darwin/g' $(git grep --files-with-matches 'darwin19')
-END VERIFY SCRIPT-
2021-11-25 01:12:46 +02:00
fanquake
8f022a59b8
Merge bitcoin/bitcoin#22993: build: set OSX_MIN_VERSION to 10.15
a43b8e955558483d8893996cc3a67bc74cbaf358 build: set OSX_MIN_VERSION to 10.15 (fanquake)

Pull request description:

  Taken out of #20744, as splitting up some of the build changes was mentioned [here](https://github.com/bitcoin/bitcoin/pull/22937#discussion_r707303172).

  This is required to use `std::filesystem` on macOS, as support for it only landed in the libc++.dylib shipped with 10.15. So if we want to move to using `std::filesystem` for `23.0`, this bump is required.

  See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes

  > Clang now supports the C++17 \<filesystem\> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.

  macOS 10.15 was released in October 2019. macOS OS's seem to have a life of about 3 years, so it's possible that 10.14 will become officially unsupported by the end of 2021 and prior to the release of 23.0.

  Guix builds:
  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  abc8b749be65f1339dcdf44bd1ed6ade2533b8e3b5030ad1dde0ae0cede78136  guix-build-a43b8e955558/output/dist-archive/bitcoin-a43b8e955558.tar.gz
  1edcc301eb4c02f3baa379beb8d4c78e661abc24a293813bc9d900cf7255b790  guix-build-a43b8e955558/output/x86_64-apple-darwin19/SHA256SUMS.part
  e9dbb5594a664519da778dde9ed861c3f0f631525672e17a67eeda599f16ff44  guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx-unsigned.dmg
  11b23a17c630dddc7594c25625eea3de42db50f355733b9ce9ade2d8eba3a8f3  guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx-unsigned.tar.gz
  257ba64a327927f94d9aa0a68da3a2695cf880b3ed1a0113c5a966dcc426eb5e  guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx64.tar.gz
  ```

ACKs for top commit:
  hebasto:
    ACK a43b8e955558483d8893996cc3a67bc74cbaf358
  jarolrod:
    ACK a43b8e9

Tree-SHA512: 9ac77be7cb56c068578860a3b2b8b7487c9e18b71b14aedd77a9c663f5d4bb19756d551770c02ddd12f1797beea5757b261588e7b67fb53509bb998ee8022369
2021-09-21 15:37:12 +08:00
Jeremy Rand
9bdda50151
Enable TLS in links in documentation 2021-09-16 22:00:20 +00:00
fanquake
a43b8e9555
build: set OSX_MIN_VERSION to 10.15
This is required to use std::filesystem on macOS as support for it only
landed in the libc++ dylib shipped with 10.15.

See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes

Clang now supports the C++17 <filesystem> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.
2021-09-16 17:50:19 +08:00
jonatack
198ceb82f9 script, doc: guix touchups 2021-07-23 21:23:37 +05:30
h
d7b7f610a5 Updated Readme, Corrected the codesign typo 2021-07-23 20:15:16 +05:30
Carl Dong
c2541fd0ca guix: Overhaul README
- Added detailed Guix bootstrap/installation instructions
2021-07-19 18:24:36 -04:00
fanquake
c29cba44b3
build: Xcode 12.1, macOS SDK 10.15.6 2021-05-01 13:39:45 +08:00
fanquake
09b3e46848
doc: remove boostrap info from GUIX_COMMON_FLAGS doc
Passing ADDITIONAL_GUIX_COMMON_FLAGS="--no-substitutes --bootstrap" as
suggested doesn't work:
```bash
      ...outputting in: '/bitcoin/guix-build-a1f0b8b62eb8/output/x86_64-linux-gnu'
          ...bind-mounted in container to: '/outdir-base/x86_64-linux-gnu'
guix time-machine: error: bootstrap: unrecognized option
```

and I think bootstrapping is more than covered in the preceding "Choose
your security model" section.
2021-04-14 09:08:38 +08:00
Stephan Oeste
08151e19d9
doc: Fix name of script guix-build 2021-04-12 19:55:01 +02:00
Yerzhan Mazhkenov
94c7dd9ac8 doc: Fix typos from codespell lint 2021-04-07 19:26:25 +01:00
Carl Dong
d55a1056ee guix: Add troubleshooting documentation entries 2021-04-05 11:00:39 -04:00
Carl Dong
d5a71e9785 guix: Use --cores instead of --max-jobs
In Guix, there are two flags for controlling parallelism:

Note: When I say "derivation," think "package"

--cores=n
  - controls the number of CPU cores to build each derivation. This is
    the value passed to `make`'s `--jobs=` flag.
  - defaults to 0: as many cores as is available

--max-jobs=n
  - controls how many derivations can be built in parallel
  - defaults to 1

Therefore, if set --max-jobs=$MAX_JOBS and don't set --cores, Guix could
theoretically spin up $MAX_JOBS * $(nproc) number of threads, and that's
no good.

So we could either default to --cores=1, --max-jobs=$MAX_JOBS

  - Pro: --cores=1 means that `make` will be invoked with `-j1`,
         avoiding problems with package whose build systems and test
         suites break when running multi-threaded.

  - Con: There will be times when only 1 or 2 derivations can be built
         at a time, because the rest of the dependency graph all depend
         on those 1 or 2 derivations. During these times, the machine
         will be severely under-utilized.

or --cores=$MAX_JOBS, --max-jobs=1

  - Pro: We don't encounter prolonged periods of
         severe under-utilization mentioned above.

  - Con: Many packages' build systems and test suites break when running
         multi-threaded.

or --cores=1, --max-jobs=1 and let the user override with
$ADDITIONAL_GUIX_COMMON_FLAGS
2021-04-01 16:53:17 -04:00
Hennadii Stepanov
a0a7a4337d
guix, doc: Update default HOSTS value 2021-03-01 10:34:30 +02:00
Carl Dong
13a9fd11a5 guix: Passthrough SDK_PATH into container 2021-02-22 22:07:25 -05:00
Carl Dong
95990b9f32 guix: Update conservative space requirements 2021-02-19 11:29:56 -05:00
Carl Dong
901f54321b guix: Passthrough BASE_CACHE into container
This allows depends-built packages to be cached.
2021-02-16 12:17:33 -05:00
MarcoFalke
fa051c2386
doc: Guix is shipped in Debian and Ubuntu 2021-02-12 14:59:06 +01:00
Carl Dong
771c4b98a8 guix: README: Add darwin HOSTS entry 2021-01-21 10:58:12 -05:00
Carl Dong
34f0fda2d3 guix: Small updates to README wording 2021-01-08 11:40:01 -05:00
Carl Dong
402e3a5b1e guix: Update HOSTS README entry for new architectures 2021-01-08 11:40:01 -05:00
Carl Dong
cfa7ceb21b guix: Remove README development environment section 2021-01-08 11:40:01 -05:00
Carl Dong
93b6a8544a guix: Add ADDITIONAL_GUIX_{COMMON,TIMEMACHINE}_FLAGS options 2021-01-08 11:40:01 -05:00
Carl Dong
0f31e24703 guix: Add SUBSTITUTE_URLS option 2021-01-08 11:40:01 -05:00
Carl Dong
f852761aec
guix: Add clarifying documentation for V env var 2020-05-20 13:11:16 -04:00
Carl Dong
1f2c39a30e
guix: Remove logical cores requirement
Thanks MarcoFalke for pushing this to its limits and testing :-)
2020-05-01 12:33:47 -04:00
Carl Dong
c4cce00eac
guix: Remove dead links from README. 2020-04-02 17:19:56 -04:00
MarcoFalke
fae9084ac5
build: Skip i686 build by default in guix and gitian 2020-02-09 13:22:53 -08:00
Carl Dong
88c83636d5
guix: Update documentation for time-machine
Wait a minute, doc. Are you telling me you built a time machine... Out
of a functional package manager?
2020-01-27 16:41:20 -05:00
Carl Dong
751549b52a
contrib: guix: Additional clarifications re: substitutes 2019-07-12 12:31:55 -04:00
Carl Dong
cd3e947f50
contrib: guix: Various improvements.
- Clearer and more accurate prose
- Pin `guix pull' to commit rather than branch
- Just use `use-module' instead of `define-module'
- Use `bash-minimal' instead of `bash'
- Remove unneeded `tcsh' from manifest
- Explicitly use `python-3.7'
- Add comments about how {native,cross}-toolchains are produced and
  why
2019-07-12 11:42:36 -04:00
Carl Dong
8dff3e48a9
contrib: guix: Clarify SOURCE_DATE_EPOCH. 2019-07-12 11:42:09 -04:00
Carl Dong
3e80ec3ea9
contrib: Add deterministic Guix builds. 2019-07-12 00:48:39 -04:00