summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Collapse)Author
2016-02-08Add (guix build bournish) and use it in the initrd.Ludovic Courtès
* guix/build/bournish.scm: New file. * Makefile.am (MODULES): Add it. * gnu/system/linux-initrd.scm (base-initrd): Add (guix build bournish) and use it.
2016-02-03syscalls: 'all-network-interface-names' accepts non-alphanumeric characters.Ludovic Courtès
This fixes interfaces with a dash or other characters being ignored. Suggested by Jookia <166291@gmail.com>. * guix/build/syscalls.scm (%interface-line): Use [[:graph:]] instead of [[:alnum:]].
2016-01-19build-system/haskell: Fix package.conf parsing.Eric Bavier
* guix/build/haskell-build-system.scm (register)[conf-depends]: Properly react to EOF while reading GHC package conf files.
2016-01-13Merge branch 'master' into core-updatesLudovic Courtès
2016-01-11ruby: Abstract out path to GEM_HOME.Ben Woodcroft
Previously paths to the GEM_HOME of certain Ruby packages were hard-coded, so packages failed to build when Ruby was updated to 2.3.0. * guix/build/ruby-build-system.scm (gem-home): New procedure. * gnu/packages/ruby.scm (ruby-metaclass, ruby-instantiator, ruby-introspection, ruby-mocha, ruby-minitest-tu-shim): Use it.
2016-01-06build: ruby: Remove cached gem after install.Ben Woodcroft
The .gem file stored in GEM_HOME after install is both redundant and an archive that stores timestamped files which makes builds non-deterministic, so delete it after 'gem install'. * guix/build/ruby-build-system.scm (install): Remove cached gem after install.
2016-01-05build: pull: Compile .scm files in one process.Taylan Ulrich Bayırlı/Kammer
* guix/build/pull.scm (call-with-process, report-build-progress) (p-for-each): Remove. (build-guix): Load and compile files in one process.
2016-01-05build-system/gnu: Add 'set-SOURCE-DATE-EPOCH' phase.Ludovic Courtès
This phase is inherited by other build systems, which ensures 'SOURCE_DATE_EPOCH' is always set in practice. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): Remove. (%standard-phases): Don't add it. * guix/build/gnu-build-system.scm (set-SOURCE-DATE-EPOCH): New procedure. (%standard-phases): Add it. (gnu-build): Remove 'setenv' call for "SOURCE_DATE_EPOCH".
2016-01-05git-download: Correctly implement recursive checkouts.Ludovic Courtès
Previously, the 'git checkout' invocation would remove sub-modules that had been initialized by 'git clone --recursive'. * guix/build/git.scm (git-fetch): Never use "git clone --recursive". Invoke "git submodule update --init --recursive" after "git checkout". Remove '.git' directories as the last step.
2016-01-01build-system/gnu: Use the long option name for deterministic archives.Ludovic Courtès
This is a followup to 3eb34c6. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Use "--enable-deterministic-archives" instead of "-D" to work around Binutils bug <https://sourceware.org/bugzilla/show_bug.cgi?id=17671>. * guix/build/gnu-build-system.scm (strip): Likewise.
2015-12-18build-system/gnu: Always pass "-D" to strip/objcopy.Ludovic Courtès
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Add "-D" to #:strip-flags. * guix/build/gnu-build-system.scm (strip): Likewise. Also pass "-D" to OBJCOPY-COMMAND.
2015-12-12Merge branch 'master' into core-updatesLudovic Courtès
2015-11-29gnu: python: Set SOURCE_DATE_EPOCH to 1 instead of 0.Ludovic Courtès
* gnu/packages/python.scm (python-2)[arguments]: Set SOURCE_DATE_EPOCH to 1 to match what the daemon does. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): Likewise.
2015-11-29gnu: python-2: Honor 'SOURCE_DATE_EPOCH'.Ludovic Courtès
* gnu/packages/patches/python-2.7-source-date-epoch.patch: New file. * gnu/packages/python.scm (python-2)[source]: Use it. [arguments]: Set SOURCE_DATE_EPOCH in 'patch-lib-shells' phase. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): New procedure. (%standard-phases): Add it. * gnu-system.am (dist_patch_DATA): Add patch.
2015-11-16graft: Graft files in parallel.Ludovic Courtès
* guix/build/graft.scm (rewrite-directory): Use 'n-par-for-each' instead of 'for-each'.
2015-11-16graft: Graft files in a deterministic order.Ludovic Courtès
* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Change to take a single parameter. Add call to 'lstat'. Factorize result of 'destination'. Use 'find-files' instead of 'file-system-fold'.
2015-11-14build-system/gnu: Set 'SOURCE_DATE_EPOCH'.Alex Kost
Suggested by Ludovic Courtès <ludo@gnu.org>. * guix/build/gnu-build-system.scm (gnu-build): Set SOURCE_DATE_EPOCH for deterministic builds.
2015-11-12download: Always use AI_ADDRCONFIG when resolving host names.Ludovic Courtès
* guix/build/download.scm (open-socket-for-uri): Always pass AI_ADDRCONFIG to 'getaddrinfo' as recommended in the fine Guile manual. * guix/ftp-client.scm (ftp-open): Ditto.
2015-11-12download: Add timeout parameter for connections.Ludovic Courtès
* guix/build/download.scm (ensure-uri): New procedure. (current-http-proxy): New variable. (open-socket-for-uri): Copy from Guile commit aaea5b2, but add #:timeout parameter and use 'connect*' instead of 'connect'. (open-connection-for-uri): Add #:timeout parameter and pass it to 'open-socket-for-uri'.
2015-10-29gnu: ghc: Add GHC_PACKAGE_PATH native search path.Eric Bavier
Benefits include: 'guix environment' more useful for ghc libraries, more useful 'guix package --search-paths' for installed ghc libraries, cleaner package recipes: no longer need to propagate runtime package dependencies. * guix/build/haskell-build-system.scm (configure): Unset GHC_PACKAGE_PATH around cabal configure. (make-ghc-package-database): Use pattern directory search. (register): Install complete package database for the current package. * gnu/packages/haskell.scm (ghc): Add native-search-paths field.
2015-10-29utils: Have search-path-as-list pattern search for directories.Eric Bavier
* guix/build/utils.scm (search-path-as-list)[pattern]: Check requested file type. Check pattern against directory names. * guix/search-paths.scm (evaluate-search-paths)[pattern]: Remove symlink hack.
2015-10-26build-system/haskell: CONFIG_SHELL env variable.Paul van der Walt
For Cabal packages with "build-type: Configure", a configure shell script is run to set up build parameters. These scripts need the CONFIG_SHELL environment variable to be set to function properly. * guix/build/haskell-build-system.scm (configure): Set CONFIG_SHELL if necessary.
2015-10-17syscalls: Fix ABI mismatch for 'clone'.Ludovic Courtès
Fixes <http://bugs.gnu.org/21694>. * guix/build/syscalls.scm (clone): Change 'syscall' parameter types to LONG, UNSIGNED-LONG, or '*; make sure it has 6 parameters. Adjust caller accordingly.
2015-10-07Merge branch 'master' into core-updatesMark H Weaver
2015-10-04Use "normalized codesets" everywhere.Ludovic Courtès
In other words, change "xx_YY.UTF-8" to "xx_YY.utf8". * guix/profiles.scm (ca-certificate-bundle): Use "en_US.utf8" instead of "en_US.UTF-8". * guix/packages.scm (patch-and-repack): Likewise. * guix/build/gnu-build-system.scm (install-locale): Likewise. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Likewise. * gnu/packages/python.scm (python-ipython): Likewise. * gnu/packages/gawk.scm (gawk): Likewise. * build-aux/hydra/demo-os.scm: Likewise. * gnu/packages/guile.scm (guile-ncurses)[arguments]: Remove 'change-locale' phase.
2015-10-03utils: Add 'every*'.Ludovic Courtès
* guix/build/gnu-build-system.scm (every*): Move to... * guix/build/utils.scm (every*): ... here. New procedure.
2015-10-01download: Check whether HORIZONTAL ELLIPSIS can be encoded.Ludovic Courtès
* guix/build/download.scm (ellipsis): New procedure. (store-path-abbreviation): Use it.
2015-09-24Merge branch 'master' into core-updatesLudovic Courtès
2015-09-24download: Don't abbreviate things that are not store items.Ludovic Courtès
Fixes a regression introduced in a8be7b9a. * guix/build/download.scm (store-path-abbreviation): Return STORE-PATH if it's not an actual store path. Fixes an out-of-range exception when running tests/substitute.scm and tests/store.scm.
2015-09-23download: Fix some minor progress-logging regressions.Steve Sprang
* guix/build/download.scm (string-pad-middle): Allow resulting padded string to overflow. (store-url-abbreviation): Remove unnecessary procedure. (progress-proc): Use BASENAME as default for parameter 'abbreviation'. (url-fetch): Display extra newlines for readability.
2015-09-23emacs-build-system: Fix 'package-name-version->elpa-name-version'.Mark H Weaver
Fixes a regression introduced in b7c7c03eb5e37fc3455e4e17b0898ffc4bca29c3. * guix/build/emacs-build-system.scm (package-name-version->elpa-name-version): Remove unused 'name' binding. Do not abuse 'strip-store-file-name' to remove the "emacs-" prefix, which worked before b7c7c03eb5 but not after.
2015-09-22Merge branch 'master' into core-updatesMark H Weaver
2015-09-17download: Only show hours in the elapsed time if necessary.Steve Sprang
* guix/build/download.scm (seconds->string): Conditionally include hours in timestamp. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-09-16substitute: Improve readability of download progress report.Steve Sprang
* guix/build/download.scm (string-pad-middle, store-url-abbreviation, store-path-abbreviation): New procedures. (progress-proc): Add #:abbreviation parameter and use it. Generate a better indeterminate progress string. * guix/scripts/substitute.scm (assert-valid-narinfo): Add newlines to output. (process-substitution): Use byte-count->string and store-path-abbreviation. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-09-14download: Avoid type errors when formatting download progress output.Steve Sprang
* guix/build/download.scm (nearest-exact-integer): New procedure. (seconds->string, byte-count->string): Use it.
2015-09-14build: ruby: Add support for tarball and directory sources.David Thompson
Previously, the Ruby build system only knew how to work with gem archives, which made it difficult to build unreleased gems from a Git repository or released gems in tarball form. * gnu/build/ruby-build-system.scm (gnu:unpack, gem-archive?): New procedures. (unpack): Use GNU build system unpack phase for non-gem sources. (build): Rebuild the gemspec iff the source is a gem archive. * guix.texi ("ruby-build-system"): Mention that tarballs and directories are acceptable.
2015-09-13Merge branch 'master' into core-updatesLudovic Courtès
2015-09-11build-system/glib-or-gtk: Don't generate 'icon-theme.cache'.宋文武
* guix/build-system/glib-or-gtk.scm (default-gtk+): Remove. (lower): Adjust accordingly. * guix/build/glib-or-gtk-build-system.scm (generate-icon-cache): Remove. (%standard-phases): Remove 'glib-or-gtk-icon-cache' phase.
2015-09-08build: Improve information density and appearance of download progress output.Steve Sprang
* guix/build/download.scm (seconds->string): New function. (byte-count->string): New function. (progress-bar): New function. (throughput->string): Remove function. (progress-proc): Display base file name, elapsed time, and progress bar. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-09-07build: container: Use the same clone flags as fork(3).David Thompson
The intent is to make 'clone' behave a lot more like 'primitive-fork', which calls clone(2) with SIGCHLD, CLONE_CHILD_CLEARTID, and CLONE_CHILD_SETTID flags. Notably, running 'clone' at the REPL without these flags would break the REPL beyond repair. * guix/build/syscalls.scm (CLONE_CHILD_CLEARTID, CLONE_CHILD_SETTID): New variables. * gnu/build/linux-container.scm (namespaces->bit-mask): Add CLONE_CHILD_CLEARTID and CLONE_CHILD_SETTID to bit mask.
2015-09-07build: ruby: Avoid long build directory names.David Thompson
Having the hash of the source gem in the source directory file name proved to be problematic when running the test suite for the 'pg' gem that creates UNIX-domain sockets in the source directory and exceeded the 108 character limit on GNU/Linux systems. * guix/build/ruby-build-system.scm (unpack): Rename unpacked gem directory to "gem".
2015-09-06utils: find-files: Add DIRECTORIES? and FAIL-ON-ERROR? arguments.Mark H Weaver
* guix/build/utils.scm (find-files): Add DIRECTORIES? and FAIL-ON-ERROR? keyword arguments.
2015-09-06emacs-build-system: Fix a file name of info directory.Alex Kost
* guix/build/emacs-build-system.scm (move-doc): Adjust to use "/share/info" instead of its sub-directory.
2015-09-05build: syscalls: Properly handle clone errors.David Thompson
* guix/build/syscalls.scm (clone): Catch -1 return value and throw error.
2015-08-31build: Add R build system.Ricardo Wurmus
* guix/build-system/r.scm: New file. * guix/build/r-build-system: New file. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document r-build-system.
2015-08-30utils: Move 'package-name->name+version' to (guix build utils).Ludovic Courtès
* guix/utils.scm (package-name->name+version): Move to... * guix/build/utils.scm (package-name->name+version): ... here. New procedure. * guix/build/emacs-build-system.scm (package-name->name+version): Remove.
2015-08-30utils: Add 'strip-store-file-name'.Ludovic Courtès
* guix/build/utils.scm (strip-store-file-name): New procedure. * guix/build/emacs-build-system.scm (store-directory->name-version): Remove. Update callers to use 'strip-store-file-name'. * gnu/packages/gcc.scm (make-libstdc++-doc)[arguments]: Use 'strip-store-file-name' instead of 'string-drop'.
2015-08-30build-system/gnu: Use monotic time to measure elapsed time.Ludovic Courtès
* guix/build/gnu-build-system.scm (gnu-build)[elapsed-time]: New procedure. Use it, and use (current-time time-monotonic) instead of (gettimeofday). Show one digit after the comma for the elapsed time.
2015-08-29utils: Add 'install-file'.Ludovic Courtès
* guix/build/utils.scm (install-file): New procedure.
2015-08-18build: ruby: Rewrite build system to use gem archives.David Thompson
Co-Authored-By: Pjotr Prins <pjotr.public01@thebird.nl> * guix/build-system/ruby.scm (lower): Remove git dependency. (rubygems-uri): New procedure. * guix/build/ruby-build-system (gitify): Delete. (unpack): Use 'gem unpack' utility. (check): Add docstring. (build): Repack modified gem. (install): Rebuild unpacked gem and install it. (%standard-phases): Remove gitify and build phases. * gnu/packages/ruby.scm (ruby-hoe, ruby-rake-compiler, ruby-i18n, ruby-rspec-support, ruby-rspec-core, ruby-diff-lcs-for-rspec, ruby-rspec-expectations, ruby-rspec-mocks, ruby-rspec, bundler, ruby-useragent, ruby-bacon, ruby-arel, ruby-connection-pool, ruby-net-http-persistent, ruby-minitest, ruby-minitest-sprint, ruby-minitest-bacon, ruby-daemons, ruby-git, ruby-slop, ruby-multipart-post): Convert to new build system. * doc/guix.texi (ruby-build-system): Document the gem archive requirement.