summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Expand)Author
2020-10-08packages, scripts, utils: Enable multi-threaded xz compression....xz compression is slow; using the multi-thread mode of xz can make it more than 6 times faster, for example when compressing the large linux-libre source. * guix/build/utils.scm (%xz-parallel-args): New procedure. * guix/packages.scm (patch-and-repack): Specify the required above xz arguments by setting the XZ_DEFAULTS environment variable. * guix/scripts/pack.scm (%compressors, bootstrap-xz): Modify the commands Gexps so they do not need to be quoted. This allows lazily evaluating the arguments on the builder's side. Specify the required xz arguments. (self-contained-tarball): Do not quote the compressor command value. (docker-image): Likewise. * guix/utils.scm (decompressed-port, compressed-port) (compressed-output-port): Specify the required above xz arguments. Maxim Cournoyer
2020-10-08utils: Do not raise exceptions in delete-file-recursively....This makes it so that delete-file-recursively honors its docstring, which says it should "report but ignore errors". Fixes <https://issues.guix.gnu.org/43366>. * guix/build/utils.scm (warn-on-error): New syntax. (delete-file-recursively): Use it to catch exceptions and print warning messages. Reported-by: Fredrik Salomonsson <plattfot@gmail.com> Maxim Cournoyer
2020-09-19utils: Add 'call-with-temporary-output-file'....* guix/utils.scm: Re-export 'call-with-temporary-output-file'. (call-with-temporary-output-file): Move to... * guix/build/utils.scm (call-with-temporary-output-file): ... here. Ludovic Courtès
2020-09-19Remove (guix build rpath)....This file was unused and is now superseded by (guix build gremlin). * guix/build/rpath.scm: Remove. * Makefile.am (MODULES): Remove it. Ludovic Courtès
2020-09-19gremlin: Add 'set-file-runpath', 'file-runpath', and 'file-needed'....* guix/build/gremlin.scm (file-dynamic-info, file-runpath, file-needed): New procedures. (&missing-runpath-error, &runpath-too-long-error): New condition types. (set-file-runpath): New procedure. * tests/gremlin.scm ("set-file-runpath + file-runpath"): New test. Ludovic Courtès
2020-09-19build-system/gnu: strip with --strip-unneeded...Apart from debug information, one can also strip some symbols. This can be a significant difference, qtbase:out consists of about 5 MB of those symbols. As per [1], --strip-debug is included in --strip-unneeded, and the debug files created also contain a copy of the information removed by --strip-unneeded. Linux From Scratch suggests that this option shouldn't be used on static libraries [2], however other sources [3] indicate otherwise. Building a toolchain with this patch succeeds, and the result works fine for 'gcc -static hello-world.c'. [1]: https://stackoverflow.com/a/52555093 [2]: http://www.linuxfromscratch.org/lfs/view/9.1/chapter05/stripping.html [3]: https://www.technovelty.org/linux/stripping-shared-libraries.html * guix/build/gnu-build-system.scm (strip): Use --strip-unneeded. Jakub Kądziołka
2020-09-14Merge remote-tracking branch 'origin/master' into core-updatesMaxim Cournoyer
2020-09-10utils: 'dump-port' has an optional 'len' parameter....* guix/build/utils.scm (dump-port): Add optional 'len' parameter and honor it. Ludovic Courtès
2020-09-03android-repo-download: Use parallel-job-count instead of hard-coding job...count. * guix/build/android-repo.scm (android-repo-fetch): Use parallel-job-count instead of hard-coding job count. Danny Milosavljevic
2020-09-02Add (guix android-repo-download)....* guix/build/android-repo.scm: New file. * guix/android-repo-download.scm: New file. * Makefile.am (MODULES): Add them. Danny Milosavljevic
2020-09-01build: ruby-build-system: Remove an extraneous binding....* guix/build/ruby-build-system.scm (install): Remove the RUBY-VERSION binding, no longer used. Fix the indentation of a comment. Maxim Cournoyer
2020-08-28build: ruby-build-system: Adjust replace-git-ls-files....The file names returned by `find ...` instead of `git ls-files...` contains leading './' characters, which can cause problems when the file lists is further processed with regexps, for example, as was discovered while updating the ruby-asciidoctor package in commit 5df1126c3adf557f3a5b386e391e7cb56b9c1d63. * guix/build/ruby-build-system.scm (replace-git-ls-files): Strip the first two characters ("./") of the file names returned by the 'find' command. Fix typo in doc. Simplify '(when (not ...' into '(unless ...'. Maxim Cournoyer
2020-08-26Merge remote-tracking branch 'origin/master' into core-updatesMathieu Othacehe
2020-08-24Use guile-zlib extension in build-side code....* Makefile.am (MODULES): Move guix/build/download-nar.scm to ... (MODULES_NOT_COMPILED): ... here. * guix/build/download-nar.scm: Use (zlib) instead of (guix zlib). * guix/cvs-download.scm (cvs-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list. * guix/git-download.scm (git-fetch): Ditto. * guix/hg-download.scm (hg-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list. Mathieu Othacehe
2020-08-13build-system/haskell: Do not pass "--bindir" during configure....The "--bindir" option is not as useful as it seems as the configured location is embedded in the outputs. Instead of using "--bindir" it seems better to build a statically linked binary and move the binary to its own output to avoid references between the "out" and "bin" outputs. * guix/build/haskell-build-system.scm (configure): Do not pass "--bindir". Ricardo Wurmus
2020-08-13build-system/haskell: Add 'extra-directories' keyword....See <https://bugs.gnu.org/39309>. * guix/build-system/haskell.scm (lower): Include the transitive propagated inputs of 'extra-directories' inputs. (haskell-build): Add the 'extra-directories' keyword and pass it through to the builder. * guix/build/haskell-build-system.scm (configure): Use it to select which inputs get passed via 'extra-include-dirs' and 'extra-lib-dirs' to Cabal. * gnu/packages/haskell-xyz.scm (ghc-alsa-core, ghc-hmatrix, ghc-hmatrix-gsl, ghc-hslua, ghc-iwlib, ghc-libyaml, ghc-ncurses, ghc-openglraw, ghc-x11, ghc-x11-xft, ghc-zlib): Set 'extra-directories'. * gnu/packages/haskell-crypto.scm (ghc-digest, ghc-hsopenssl): Likewise. Timothy Sample
2020-08-12haskell-build-system: register: Remove references to the doc output....* guix/build/haskell-build-system.scm (register): Strip references to the doc output from the generated package config files; move the haddock files from the "doc" output to the "lib" output. Ricardo Wurmus
2020-08-12haskell-build-system: register: Respect lib output....* guix/build/haskell-build-system.scm (register): Use lib output if it exists. Ricardo Wurmus
2020-08-12build-system/haskell: Add default output "static"....* guix/build-system/haskell.scm (lower): Add OUTPUTS keyword and add the "static" output in the common case. (haskell-build): Set the default value for the OUTPUTS keyword to include the "static" output. * guix/build/haskell-build-system.scm (install): Move static libraries to the "static" output if it exists. Ricardo Wurmus
2020-08-12build-system/haskell: Configure to link with shared libraries....* guix/build/haskell-build-system.scm (configure): Add configure flags to build shared libraries by default, to generate position independent code, and to set the RUNPATH. Ricardo Wurmus
2020-08-12build-system/haskell: Refactor configure step....* guix/build/haskell-build-system.scm (configure): Replace append with quasiquotes and splicing. Ricardo Wurmus
2020-08-12build-system/haskell: Support parallel builds....* guix/build-system/haskell.scm (haskell-build): Add keyword PARALLEL-BUILD? and pass it on to the builder. * guix/build/haskell-build-system.scm (build): Accept keyword PARALLEL-BUILD? and pass the number of parallel jobs to GHC. Ricardo Wurmus
2020-07-23Merge branch 'master' into core-updates...Conflicts: gnu/packages/ruby.scm Jakub Kądziołka
2020-07-18build-system/python: Install to the python output if present....* gnu/build/python-build-system.scm (python-output): New procedure. (site-packages, install): Use python-output to find the output path. (wrap, rename-pth-file): Use site-packages where appropriate. * doc/guix.texi (Build Systems): Mention the new behavior. Jakub Kądziołka
2020-07-17guix: Add maven-build-system....* guix/build-system/maven.scm: New file. * guix/build/maven-build-system.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document the maven build system. Julien Lepiller
2020-07-17guix: java-utils: Add Maven-related phases....* guix/build/maven/java.scm: New file. * guix/build/maven/plugin.scm: New file. * guix/build/maven/pom.scm: New file. * Makefile.am (MODULES): Add them. * guix/build-system/ant.scm (%ant-build-system-modules): Add them to the build side. * guix/build/java-utils.scm (generate-plugin.xml, install-pom-file) (install-from-pom): New procedures. Julien Lepiller
2020-07-10download-nar: Hide colliding 'dump-port*' binding....* guix/build/download-nar.scm: Hide 'dump-port*' from (guix serialization). Ludovic Courtès
2020-07-10maint: Remove traces of "berlin.guixsd.org"....The guixsd.org domain is no longer advertised since before in 1.0.0 release in May 2019. * etc/substitutes/berlin.guixsd.org.pub: Rename to... * etc/substitutes/berlin.guix.gnu.org.pub: ... this. * etc/substitutes/ci.guix.gnu.org.pub, etc/substitutes/ci.guix.info.pub: Adjust accordingly. * gnu/services/base.scm (%default-authorized-guix-keys): Likewise. * guix/build/download-nar.scm (urls-for-item): Likewise. * guix/self.scm (miscellaneous-files): Likewise. * Makefile.am (dist_pkgdata_DATA): Likewise. Ludovic Courtès
2020-07-01guix: build: Fix asdf-build-system/ecl....* guix/build/lisp-utils.scm (make-asd-file): Fix value of 'component?' parameter when using ECL. Guillaume Le Vaillant
2020-06-23po: Micro-optimize 'read-po-file'....* guix/build/po.scm (parse-tree->assoc): Use dot instead of ellipsis in 'match' clause to avoid repeated calls to 'list?'. Ludovic Courtès
2020-06-23po: Avoid regexps when interpreting '\n' sequences....This reduces the execution time of: (call-with-input-file "po/doc/guix-manual.de.po" read-po-file) from 4.7s to 4.0s. * guix/build/po.scm (interpret-newline-escape): New procedure. (parse-tree->assoc): Use it instead of 'regexp-substitute/global'. Ludovic Courtès
2020-06-22compile: Build gnu/{packages,tests}/* with '-O1'....* guix/build/compile.scm (optimization-options): Use '-O1' for the simple case. Ludovic Courtès
2020-06-22Merge branch 'master' into core-updatesJakub Kądziołka
2020-06-18build-system/asdf: Add support for component-less systems....* guix/build/lisp-utils.scm (make-asd-file): Ensure lib directory exists and check if prebuilt bundle system was generated. (generate-system-definition): Add :class and :components only if prebuilt system was generated. Pierre Neidhardt
2020-06-18build-system/gnu: Fix 'install' phase of 'gnu-dist'....* guix/build/gnu-dist.scm (install-dist): Fix 2nd argument to 'for-each'. Ludovic Courtès
2020-06-17build-system/gnu: Rename "make dist" phase to 'build-dist'....* guix/build/gnu-dist.scm (%dist-phases): Add BUILD under the name 'build-dist'. Ludovic Courtès
2020-06-17build-system/gnu: Remove redundant 'unpack' phase from 'gnu-dist'....This has become redundant with the standard 'unpack' phase since 17919a58012c38052133ed029450fdb98d01fb5c. * guix/build/gnu-dist.scm (copy-source): Remove. (%dist-phases): Remove 'unpack' phase. Ludovic Courtès
2020-06-17build-system/gnu: Remove Hydra-specific code from 'gnu-dist'....* guix/build/gnu-dist.scm (install-dist): Remove code for 'hydra-build-products'. Ludovic Courtès
2020-06-17build-system/gnu: Remove 'autoreconf' phase from 'gnu-dist'....This has been superseded by the 'bootstrap' phase added in 189be331acfda1c242a9c85fca8d2a0356742f48. * guix/build/gnu-dist.scm (autoreconf): Remove. (%dist-phases): Remove it. Ludovic Courtès
2020-06-17profiles: Add comment at the top of 'manifest' file....* guix/build/profiles.scm (build-profile): Add comment at the top of MANIFEST-FILE. Ludovic Courtès
2020-06-14Merge branch 'master' into core-updatesMarius Bakke
2020-06-08Merge branch 'master' into stagingMarius Bakke
2020-06-08syscalls: set-thread-name, thread-name: Fix thinko....* guix/build/syscalls.scm (set-thread-name, thread-name): Oops, fix thinko. Jan (janneke) Nieuwenhuizen
2020-06-08syscalls: set-thread-name, thread-name: Stub for the Hurd....Avoid crash Backtrace: guix/build/syscalls.scm:405:8: In procedure prctl: Function not implemented because of missing prctl on the Hurd. * guix/build/syscalls.scm (set-thread-name, thread-name): Rename to ... (set-thread-name!/linux,thread-name/linux): ...this. (set-thread-name, thread-name): Swtich between linux implementation and or stub. Jan (janneke) Nieuwenhuizen
2020-06-06Merge branch 'master' into stagingMarius Bakke
2020-06-02build-system: linux-module: Allow passing #:make-flags argument....* guix/build-system/linux-module.scm (linux-module-build): Add #:make-flags. (linux-module-build-cross): Add #:make-flags. * guix/build/linux-module-build-system.scm (install): Pass make-flags. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Danny Milosavljevic
2020-05-29Merge branch 'master' into stagingMarius Bakke
2020-05-29syscalls: 'terminal-dimension' ignores EPERM....Fixes <https://bugs.gnu.org/41581>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/build/syscalls.scm (terminal-dimension): Add EPERM to the list of errno code for FALL-BACK. Ludovic Courtès
2020-05-29syscalls: Properly match %HOST-TYPE....Fixes <https://bugs.gnu.org/41546>. Regression introduced in 0d371c633f7308cfde2432d6119d386a5c63198c. * guix/build/syscalls.scm (write-socket-address!) (read-socket-address): Use 'string-contains' instead of 'string-suffix?'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Jesse Dowell
2020-05-26Merge branch 'master' into stagingMarius Bakke