aboutsummaryrefslogtreecommitdiff
path: root/contrib/guix
AgeCommit message (Collapse)Author
2021-03-02Merge #21298: guix: Bump time-machine, glibc, and linux-headersfanquake
c33b199456e57d83c21eacd36d3c56d0a123b0d0 guix: Bump glibc and linux-headers (Carl Dong) 65363a1bd8b886f5aef5fbc97ca88c9c9b243b21 guix: Rebase on 95aca2991b (1.2.0-12.dffc918) (Carl Dong) Pull request description: On bumping the time-machine: ``` A few changes which are useful for us: 1. 'gnu: cross-gcc-arguments: Enable 128 bit long double for POWER9.' is now merged into master. 2. gnutls is bumped to 3.6.15 and the temporal test failure in status-request-revoked is fixed. Note that this does not fix the case where one has installed Guix v1.2.0 and is running a substitute-less bootstrap build, since the `guix time-machine` command itself has a dependency on gnutls v3.6.12 (the one with the broken test) and will thus try to build it before attempting to jump forwards in time. This does however, mean that those who build a version of Guix that also contains this fix will not go backwards in time to build the broken gnutls v3.6.12. ``` On bumping the rest: ``` Bump glibc and linux-headers to match those of our Gitian counterparts. We also require a glibc >= 2.28 for the test-symbol-check scripts to work properly. The default BASE-GCC-FOR-LIBC also has to be bumped since glibc 2.31 requires a gcc >= 6.2 ``` This is a prerequisite for #20980 ACKs for top commit: fanquake: ACK c33b199456e57d83c21eacd36d3c56d0a123b0d0 - I think going ahead with this now and to sycn back up to gitian is fine. It will also unblock #20980. Potential code signing related issues can be sorted out in #21239 and later PRs. Tree-SHA512: 31f022aadb93ba44813b0da005b1f2e5d67d76e8cdcdb53368924d1ea6cb076a21218c26831a6b0dcdcfe33507f54934330489ba557371d740f5587b7d727b95
2021-03-02Merge #21323: guix, doc: Update default HOSTS valuefanquake
a0a7a4337d06553ab625bbd66ed4198c4bf7f18c guix, doc: Update default HOSTS value (Hennadii Stepanov) Pull request description: This is a #21089 follow up. ACKs for top commit: fanquake: ACK a0a7a4337d06553ab625bbd66ed4198c4bf7f18c Tree-SHA512: c1813cc2b9212a79fd34d4e25cd0816b58264e1890daf777cd59411bd20fcc9affe312871d06fab1308b8f55c1a78ac1101e631882c18360a4709ecef4529f05
2021-03-01lint: Fix spelling errors in commentsfyquah
2021-03-01guix, doc: Update default HOSTS valueHennadii Stepanov
2021-03-01guix: Add curl to required tool listHennadii Stepanov
2021-02-26Merge #21272: guix: Passthrough SDK_PATH into containerWladimir J. van der Laan
13a9fd11a507fd3398bc2c0a0575bdc81579243f guix: Passthrough SDK_PATH into container (Carl Dong) Pull request description: This is a usability improvement for Guix builders so that they don't have to extract the Xcode tarball into `depends/SDKs` every time. Inspiration: https://github.com/bitcoin/bitcoin/pull/21089#issuecomment-778639698 ACKs for top commit: laanwj: Tested ACK 13a9fd11a507fd3398bc2c0a0575bdc81579243f Tree-SHA512: 63392d537e48a0da9f0ee04a929613b139bef1ac5643187871c9ea5376afd2a3d95df0f5e0950ae0eccd2813b166667be98401e5a248ae9c187fe4e84e54d427
2021-02-24guix: Bump glibc and linux-headersCarl Dong
Bump glibc and linux-headers to match those of our Gitian counterparts. We also require a glibc >= 2.28 for the test-symbol-check scripts to work properly. The default BASE-GCC-FOR-LIBC also has to be bumped since glibc 2.31 requires a gcc >= 6.2
2021-02-24guix: Rebase on 95aca2991b (1.2.0-12.dffc918)Carl Dong
A few changes which are useful for us: 1. 'gnu: cross-gcc-arguments: Enable 128 bit long double for POWER9.' is now merged into master. 2. gnutls is bumped to 3.6.15 and the temporal test failure in status-request-revoked is fixed. Note that this does not fix the case where one has installed Guix v1.2.0 and is running a substitute-less bootstrap build, since the `guix time-machine` command itself has a dependency on gnutls v3.6.12 (the one with the broken test) and will thus try to build it before attempting to jump forwards in time. This does however, mean that those who build a version of Guix that also contains this fix will not go backwards in time to build the broken gnutls v3.6.12.
2021-02-23guix: Explicitly set umask in build containerCarl Dong
A difference in system umask value can cause non-determinism when zip archives are produced. Set it to a reasonable default.
2021-02-22guix: Passthrough SDK_PATH into containerCarl Dong
2021-02-23Merge #21078: guix: only download sources for hosts being builtfanquake
a6a1b106dcc4350e420c461171c47e4934087175 guix: only download sources for hosts being built (fanquake) Pull request description: For example, if a user is only interested in building for Linux, this saves downloading the macOS compiler and additional dependencies, which is meaningful on a slow/poor connection. This will result in a few additional `make` invocations, for the Linux hosts, however this is low overhead, and time-wise irrelevant in terms of the overall build. ACKs for top commit: laanwj: Code review ACK a6a1b106dcc4350e420c461171c47e4934087175 Tree-SHA512: 34c916ae6f69fed0d5845690b39111a8bee37208fd727176f375cf5eb4860f512abe12bde2680d697c859b4d50a3bc5688ddca7c2f28f9968fcf358753cf3f6d
2021-02-22guix: only download sources for hosts being builtfanquake
If a user is only interested in building for Linux, this saves downloading the macOS compiler and additional dependencies. This will result in a few additional `make` invocations, for the Linux hosts, however this is quite low overhead. Co-authored-by: Carl Dong <contact@carldong.me>
2021-02-19guix: Update conservative space requirementsCarl Dong
2021-02-19guix: Add support for powerpc64{,le}Carl Dong
The new time-machine commit contains a few small changes that make the powerpc cross-toolchain work.
2021-02-18guix: Jump forwards in time-machine and adaptCarl Dong
The new time-machine commit is Guix v1.2.0 with a yet-unupstreamed patch for NSIS. A few important changes: 1. Guix switched back from using CPATH to C{,PLUS}_INCLUDE_PATH as the way to indicate #include search paths. 2. GCC's library is now split into a separate output, whereas before it was included in the default output. This means that our gcc toolchain packages need to propagate that output. 3. A few package versions were bumped
2021-02-18guix: Supply --keep-failed for debuggingCarl Dong
2021-02-16guix: Passthrough BASE_CACHE into containerCarl Dong
This allows depends-built packages to be cached.
2021-02-12doc: Guix is shipped in Debian and UbuntuMarcoFalke
2021-02-08build: Disable --disable-fuzz-binary for guix buildsHennadii Stepanov
2021-01-21guix: Fix typoCarl Dong
2021-01-21guix: README: Add darwin HOSTS entryCarl Dong
2021-01-21guix: Check for macOS SDK before building anythingCarl Dong
2021-01-21guix: Set ZERO_AR_DATE for darwin build determinismCarl Dong
See comments inserted in this commit.
2021-01-21guix: Add support for darwin buildsCarl Dong
2021-01-17guix: Make nsis reproducible by respecting SOURCE-DATE-EPOCHCarl Dong
When building nsis, if VERSION is not specified, it defaults to cvs_version which is non-deterministic as it includes the current date. This patches nsis to default to SOURCE_DATE_EPOCH if it exists so that nsis is reproducible. Upstream change: https://github.com/kichik/nsis/pull/13
2021-01-08guix: Print build params inside/outside of containerCarl Dong
2021-01-08guix: Move DISTSRC determination to guix-build.shCarl Dong
2021-01-08guix: Move OUTDIR determination+creation to guix-build.shCarl Dong
2021-01-08guix: Add more sanity checks to guix-build.shCarl Dong
2021-01-08guix: Add section headings to guix-build.shCarl Dong
2021-01-08guix: Small updates to README wordingCarl Dong
2021-01-08guix: Update HOSTS README entry for new architecturesCarl Dong
2021-01-08guix: Remove README development environment sectionCarl Dong
2021-01-08guix: Add ADDITIONAL_GUIX_{COMMON,TIMEMACHINE}_FLAGS optionsCarl Dong
2021-01-08guix: Add SUBSTITUTE_URLS optionCarl Dong
2021-01-08guix: Make guix honor MAX_JOBS settingCarl Dong
2020-11-05scripted-diff: [build] Ensure source tarball has leading directory nameMarcoFalke
-BEGIN VERIFY SCRIPT- sed -i 's|git archive --|git archive --prefix="${DISTNAME}/" --|g' $(git grep -l 'git archive' ./contrib) sed -i 's|tar -xf "\?${\?GIT_ARCHIVE}\?"\?|tar --strip-components=1 -xf "${GIT_ARCHIVE}"|g' $(git grep -l 'tar -xf' ./contrib) -END VERIFY SCRIPT-
2020-05-20guix: Add clarifying documentation for V env varCarl Dong
2020-05-12guix: Make V=1 more powerful for debuggingCarl Dong
- Print commands in both unexpanded and expanded forms - Set VERBOSE=1 for CMake
2020-05-01guix: Remove logical cores requirementCarl Dong
Thanks MarcoFalke for pushing this to its limits and testing :-)
2020-05-01rel-builds: Directly deploy win installer to OUTDIRCarl Dong
2020-04-28guix: Expose GIT_COMMON_DIR in container as readonlyCarl Dong
When using worktrees or submodules, you'll see a `.git' plain text file at the root of your working tree instead of the usual `.git' directory. This plain text file will point to the real GIT_DIR, under the GIT_COMMON_DIR. From experimentation, the full GIT_COMMON_DIR is required to exist for operations such as git-archive(1), so we expose it as readonly inside the container.
2020-04-28guix: Make source tarball using git-archiveCarl Dong
2020-04-12build: add linker optimization flags to guixfanquake
Any -O argument will enable optimizations in GNU ld. We can use -O2 here, as this matches our compile flags. Note that this would also enable additional optimizations if using the lld or gold linkers, when compared to -O0.
2020-04-07guix: Appease travis.Carl Dong
2020-04-07guix: Use gcc-9 for mingw-w64 instead of 8Carl Dong
The libtool unsorted 'find' determinism issue seemed to have been solved in gcc-9's git: d41cd173e23ebea7c758644d6ad6e0fde1c2e3a6 or SVN: r262451 Furthermore, it seems that Ubuntu Focal 20.04 LTS is going to ship with gcc 9 and mingw-w64 7, which will match what we have now. ----- A note on this: Careful observers will see that previously I stated that all released versions of gcc were bootstrapped with a libtool 2.2.7a, meaning that they all had the unsorted 'find' determinism issue first resolved in libtool 2.2.7b. However, I was mistaken, gcc's ltmain.sh CLAIMS it was generated by libtool 2.2.7a, but it was in fact edited manually. It seems that gcc maintains their own versions of ltmain.sh and libtool.m4, and only sometimes backports patches from upstream. Quite confusing.
2020-04-07guix: Don't set MINGW_HAS_SECURE_API CFLAG in dependsCarl Dong
This is no longer needed after 3bef7c22 in the mingw-w64 git repository, which is first included in mingw-w64 v7.0.0. As of the previous bump to our Guix time machine, we now use mingw-w64 v7.0.0.
2020-04-07guix: Bump to upstream commit with mingw-w64 changesCarl Dong
Most of the mingw-w64 toolchain changes have now been upstreamed, we can point to a commit that exists upstream. NOTE: I'm not changing the URL yet until we see that Guix upstream will accept all my patches for macOS. ----- The Guix tree that's referred to by this commit contains the following changes relevant to our mingw-w64 build: b066c25026 Adds a PACKAGES-WITH-*PATCHES procedure which we can use in the future to apply patches to packages if those patches are not considered appropriate to upstream Guix 4719b71572 Adds mingw-w64 (the libc itself) reproducibility patches, taken from debian. 79825bee07 + 401d28e433 + c1c50cb5b0 Add mingw-w64 specific binutils patches, taken from debian. Specifically, the "Make DLL import libraries reproducible" patch made libbitcoinconsensus.dll.a build reproducibly. The followup commits were hotfixes for my mistakes. 0f864175dc Bumps mingw-w64 to v7.0.0. This is the first release that enables secure APIs by default (which we need), and gains _FORTIFY_SOURCE support. This will also be what Ubuntu Focal 20.04 LTS releases with. cdf00cf75d Bumps NSIS to v3.05. This is the first release that includes a fix for a reproducibility bug found by some of the electrum developers. See details here: https://sourceforge.net/p/nsis/bugs/1230/
2020-04-02guix: Check mingw symbols, improve SSP fix docsCarl Dong
2020-04-02guix: Expand on INT trap messageCarl Dong