summaryrefslogtreecommitdiff
path: root/guix/build
Commit message (Collapse)AuthorAge
* grafts: Make sure files are not created world-writable.Ludovic Courtès2016-02-27
| | | | * guix/build/graft.scm (rewrite-directory): Add 'umask' call.
* Add (guix build bournish) and use it in the initrd.Ludovic Courtès2016-02-08
| | | | | | | * 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.
* syscalls: 'all-network-interface-names' accepts non-alphanumeric characters.Ludovic Courtès2016-02-03
| | | | | | | | 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:]].
* build-system/haskell: Fix package.conf parsing.Eric Bavier2016-01-19
| | | | | * guix/build/haskell-build-system.scm (register)[conf-depends]: Properly react to EOF while reading GHC package conf files.
* Merge branch 'master' into core-updatesLudovic Courtès2016-01-13
|\
| * build: ruby: Remove cached gem after install.Ben Woodcroft2016-01-06
| | | | | | | | | | | | | | | | | | 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.
| * build: pull: Compile .scm files in one process.Taylan Ulrich Bayırlı/Kammer2016-01-05
| | | | | | | | | | | | * guix/build/pull.scm (call-with-process, report-build-progress) (p-for-each): Remove. (build-guix): Load and compile files in one process.
| * git-download: Correctly implement recursive checkouts.Ludovic Courtès2016-01-05
| | | | | | | | | | | | | | | | | | 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.
* | ruby: Abstract out path to GEM_HOME.Ben Woodcroft2016-01-11
| | | | | | | | | | | | | | | | | | 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.
* | build-system/gnu: Add 'set-SOURCE-DATE-EPOCH' phase.Ludovic Courtès2016-01-05
| | | | | | | | | | | | | | | | | | | | | | | | 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".
* | build-system/gnu: Use the long option name for deterministic archives.Ludovic Courtès2016-01-01
| | | | | | | | | | | | | | | | | | 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.
* | build-system/gnu: Always pass "-D" to strip/objcopy.Ludovic Courtès2015-12-18
| | | | | | | | | | | | | | * 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.
* | Merge branch 'master' into core-updatesLudovic Courtès2015-12-12
|\|
| * gnu: python: Set SOURCE_DATE_EPOCH to 1 instead of 0.Ludovic Courtès2015-11-29
| | | | | | | | | | | | * 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.
| * gnu: python-2: Honor 'SOURCE_DATE_EPOCH'.Ludovic Courtès2015-11-29
| | | | | | | | | | | | | | | | | | | | * 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.
| * graft: Graft files in parallel.Ludovic Courtès2015-11-16
| | | | | | | | | | * guix/build/graft.scm (rewrite-directory): Use 'n-par-for-each' instead of 'for-each'.
| * graft: Graft files in a deterministic order.Ludovic Courtès2015-11-16
| | | | | | | | | | | | | | * 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'.
| * download: Always use AI_ADDRCONFIG when resolving host names.Ludovic Courtès2015-11-12
| | | | | | | | | | | | | | * 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.
| * download: Add timeout parameter for connections.Ludovic Courtès2015-11-12
| | | | | | | | | | | | | | | | | | * 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'.
| * build-system/haskell: CONFIG_SHELL env variable.Paul van der Walt2015-10-26
| | | | | | | | | | | | | | | | | | 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.
* | build-system/gnu: Set 'SOURCE_DATE_EPOCH'.Alex Kost2015-11-14
| | | | | | | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * guix/build/gnu-build-system.scm (gnu-build): Set SOURCE_DATE_EPOCH for deterministic builds.
* | gnu: ghc: Add GHC_PACKAGE_PATH native search path.Eric Bavier2015-10-29
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | utils: Have search-path-as-list pattern search for directories.Eric Bavier2015-10-29
|/ | | | | | * 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.
* syscalls: Fix ABI mismatch for 'clone'.Ludovic Courtès2015-10-17
| | | | | | | | 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.
* Merge branch 'master' into core-updatesMark H Weaver2015-10-07
|\
| * download: Check whether HORIZONTAL ELLIPSIS can be encoded.Ludovic Courtès2015-10-01
| | | | | | | | | | * guix/build/download.scm (ellipsis): New procedure. (store-path-abbreviation): Use it.
* | Use "normalized codesets" everywhere.Ludovic Courtès2015-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | utils: Add 'every*'.Ludovic Courtès2015-10-03
|/ | | | | * guix/build/gnu-build-system.scm (every*): Move to... * guix/build/utils.scm (every*): ... here. New procedure.
* Merge branch 'master' into core-updatesLudovic Courtès2015-09-24
|\
| * download: Don't abbreviate things that are not store items.Ludovic Courtès2015-09-24
| | | | | | | | | | | | | | | | 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.
| * download: Fix some minor progress-logging regressions.Steve Sprang2015-09-23
| | | | | | | | | | | | | | | | * 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.
* | emacs-build-system: Fix 'package-name-version->elpa-name-version'.Mark H Weaver2015-09-23
| | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into core-updatesMark H Weaver2015-09-22
|\|
| * download: Only show hours in the elapsed time if necessary.Steve Sprang2015-09-17
| | | | | | | | | | | | | | * guix/build/download.scm (seconds->string): Conditionally include hours in timestamp. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * substitute: Improve readability of download progress report.Steve Sprang2015-09-16
| | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * download: Avoid type errors when formatting download progress output.Steve Sprang2015-09-14
| | | | | | | | | | * guix/build/download.scm (nearest-exact-integer): New procedure. (seconds->string, byte-count->string): Use it.
| * build: ruby: Add support for tarball and directory sources.David Thompson2015-09-14
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into core-updatesLudovic Courtès2015-09-13
|\|
| * build: Improve information density and appearance of download progress output.Steve Sprang2015-09-08
| | | | | | | | | | | | | | | | | | | | * 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>
| * build: container: Use the same clone flags as fork(3).David Thompson2015-09-07
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * build: ruby: Avoid long build directory names.David Thompson2015-09-07
| | | | | | | | | | | | | | | | | | | | 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".
| * emacs-build-system: Fix a file name of info directory.Alex Kost2015-09-06
| | | | | | | | | | * guix/build/emacs-build-system.scm (move-doc): Adjust to use "/share/info" instead of its sub-directory.
| * build: syscalls: Properly handle clone errors.David Thompson2015-09-05
| | | | | | | | * guix/build/syscalls.scm (clone): Catch -1 return value and throw error.
| * build: Add R build system.Ricardo Wurmus2015-08-31
| | | | | | | | | | | | | | * 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.
* | build-system/glib-or-gtk: Don't generate 'icon-theme.cache'.宋文武2015-09-11
| | | | | | | | | | | | | | * 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.
* | utils: find-files: Add DIRECTORIES? and FAIL-ON-ERROR? arguments.Mark H Weaver2015-09-06
| | | | | | | | | | * guix/build/utils.scm (find-files): Add DIRECTORIES? and FAIL-ON-ERROR? keyword arguments.
* | utils: Move 'package-name->name+version' to (guix build utils).Ludovic Courtès2015-08-30
| | | | | | | | | | | | | | | | * 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.
* | utils: Add 'strip-store-file-name'.Ludovic Courtès2015-08-30
| | | | | | | | | | | | | | | | * 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'.
* | build-system/gnu: Use monotic time to measure elapsed time.Ludovic Courtès2015-08-30
| | | | | | | | | | | | | | | | * 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.
* | utils: Add 'install-file'.Ludovic Courtès2015-08-29
|/ | | | * guix/build/utils.scm (install-file): New procedure.