summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2017-12-03profile: Use _IO* but disable deprecation warning....This fixes a regression introduced in 2f60084f77815f454d1521396c2a383390ea2865, whereby the profile derivation would fail to run on Guile 2.0 (as is the case with "guix package --bootstrap"). Reported by Christopher Baines. * guix/profiles.scm (profile-derivation)[builder]: Use _IO* but add 'debug-disable' call. Ludovic Courtès
2017-12-03profiles: Avoid _IO* in profile builder....* guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated _IO* constants. Ludovic Courtès
2017-12-03profiles: Do not import the host's srfi-{19,26}.scm files....Previously the "manual-database" derivation would always import the host's srfi-{19,26}.scm files in the build side. In practice this means that different users could get different manual-database.drv depending on the Guile version they're using in the host. For example, the (gnu tests install) tests would fail if the host was running Guile 2.2.3 because the guest is running 2.2.2, and thus has different srfi-{19,26}.scm files. The manual-database.drv would need to be built from source, which would fail because prerequisites were missing. Reported by Mathieu Othacehe <m.othacehe@gmail.com> at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29409#96>. * guix/profiles.scm (manual-database): Do not pass #:modules to 'gexp->derivation'. Wrap 'build' gexp in 'with-imported-modules' form. Ludovic Courtès
2017-12-01Do not set '%fresh-auto-compile'....* guix/scripts/offload.scm (build-machines): Comment out '(set! %fresh-auto-compile #t)' since with Guile 2.2.3 it could lead to an actual rebuild of everything that gets loaded from there on. See <https://bugs.gnu.org/29226>. * guix/ui.scm (load*): Likewise. Ludovic Courtès
2017-12-01records: Use 'make-struct/no-tail'....* guix/records.scm (make-syntactic-constructor): Use 'make-struct/no-tail' as 'make-struct' is deprecated as of 2.2.3. Ludovic Courtès
2017-12-01guix system: 'init' displays a progress bar while copying....Until now it would print the name of each store item being copied, which was verbose and unhelpful. * guix/scripts/system.scm (copy-closure): Use 'progress-reporter/bar' and 'call-with-progress-reporter'. (guix-system): Parameterize 'current-terminal-columns'. Ludovic Courtès
2017-12-01guix system: Simplify closure copy....* guix/scripts/system.scm (copy-item): Add 'references' argument and remove 'references*' call. Turn into a non-monadic procedure. (copy-closure): Remove initial call to 'references*'. Only pass ITEM to 'topologically-sorted*' since that's equivalent. Compute the list of references corresponding to TO-COPY and pass it to 'copy-item'. Ludovic Courtès
2017-12-01weather: Use (guix progress) for progress report....* guix/progress.scm (start-progress-reporter!, stop-progress-reporter!) (progress-reporter-report!): New procedures. * guix/scripts/weather.scm (call-with-progress-reporter): New procedure. (package-outputs)[update-progress!]: Remove. Use 'call-with-progress-reporter' instead. (guix-weather): Parameterize 'current-terminal-columns'. Ludovic Courtès
2017-12-01progress: Add 'progress-reporter/bar'....* guix/progress.scm (progress-reporter/bar): New procedure. Ludovic Courtès
2017-12-01progress: 'progress-bar' accounts for brackets....* guix/progress.scm (progress-bar): Subtract 2 to BAR-WIDTH to account for brackets. Ludovic Courtès
2017-12-01progress: Factorize erase-in-line....* guix/progress.scm (erase-in-line): New procedure. (progress-reporter/file): Use it. Ludovic Courtès
2017-12-01utils: Add target-arm32? procedure....* guix/utils.scm (target-arm32?): New exported procedure. Mathieu Othacehe
2017-11-30ui: Present 'use-modules' hints with a question mark....Suggested by myglc2 <myglc2@gmail.com>. * guix/ui.scm (report-load-error): Write "Did you forget" rather than "Try adding." Ludovic Courtès
2017-11-30build-system: Add scons-build-system....* guix/build-system/scons.scm: New file. * guix/build/scons-build-system.scm: New file. * Makefile.am (MODULES): Register them. * doc/guix.texi (Build Systems): Add scons-build-system. Arun Isaac
2017-11-29gexp: Default to 'guile-2.2' for 'program-file'....Previously things returned by 'program-file', such as %MODPROBE-WRAPPER in (gnu services), would refer to 'guile-final'. This would introduce 'guile-final' in the system closure, which is otherwise absent. By referring to 'guile-2.2' we remove that extra Guile. * guix/gexp.scm (default-guile): Refer to GUILE-2.2 instead of GUILE-FINAL. Ludovic Courtès
2017-11-29gexp: 'compiled-modules' disables deprecation warnings by default....This avoids repeated deprecation messages, particularly while running 'guix system build' or similar. * guix/gexp.scm (gexp->derivation): Add #:deprecation-warnings. Pass it to 'compiled-modules'. (compiled-modules): Add #:deprecation-warnings and honor it. * doc/guix.texi (G-Expressions): Update 'gexp->derivation' documentation. * guix/packages.scm (patch-and-repack): Pass #:deprecation-warnings #t. Ludovic Courtès
2017-11-28lint: Adjust file-name length test for out-of-tree file names....* guix/scripts/lint.scm (check-patch-file-names): Adjust file-name-length calculation. Ludovic Courtès
2017-11-28lint: 'patch-file-names' checks for file name length....Reported at <https://bugs.gnu.org/27943> by Danny Milosavljevic <dannym@scratchpost.org>. * guix/scripts/lint.scm (%distro-directory): New variable. (check-patch-file-names): Add check for the file name length. * tests/lint.scm ("patches: file name too long"): New test. Ludovic Courtès
2017-11-28ui: Avoid "pkg:out" syntax when reporting collisions....* guix/ui.scm (call-with-error-handling)[manifest-entry-output*]: New procedure. Use it when reporting collisions. Ludovic Courtès
2017-11-24gnu-maintenance: Relax recursion cutoff in 'latest-ftp-release'....Fixes <https://bugs.gnu.org/25020>. Reported by Hartmut Goebel <h.goebel@crazy-compilers.com>. * guix/gnu-maintenance.scm (latest-ftp-release)[contains-digit?]: Remove. Relax test as to whether to recurse into subdirectories. Ludovic Courtès
2017-11-24ui: 'known-variable-definition' protects against module cycles....Fixes <https://bugs.gnu.org/29358>. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/ui.scm (known-variable-definition): Add 'visited' set to guard against cycles on 2.0. Ludovic Courtès
2017-11-21Revert "Add (guix self) and use it when pulling."...This reverts commit 5f93d97005897c2d859f0be1bdff34c88467ec61. 'guix pull' would fail because (guix self) needs 'scheme-files' from (guix discovery), which was not exported until now. Ludovic Courtès
2017-11-21Add (guix self) and use it when pulling....This mitigates <https://bugs.gnu.org/27284>. * guix/self.scm: New file. * Makefile.am (MODULES): Add it. * build-aux/build-self.scm (libgcrypt, zlib, gzip, bzip2, xz) (false-if-wrong-guile, package-for-current-guile, guile-json) (guile-ssh, guile-git, guile-bytestructures): Remove. (build): Rewrite to simply delegate to 'compiled-guix'. * gnu/packages.scm (%distro-root-directory): Rewrite to try different directories. * guix/discovery.scm (guix): Export 'scheme-files'. * guix/scripts/pull.scm (build-and-install): Split into... (install-latest): ... this. New procedure. And... (build-and-install): ... this, which now takes a monadic value argument. (indirect-root-added): Remove. (guix-pull): Call 'add-indirect-root'. Call 'build-from-source' and pass the result to 'build-and-install'. Ludovic Courtès
2017-11-21git: Do not add '.git' to the store....This makes 'latest-repository-commit' significantly more efficient and reduces disk usage in the store. * guix/git.scm (copy-to-store)[dot-git?]: New procedure. Pass it as the #:select? argument to 'add-to-store'. Ludovic Courtès
2017-11-21pull: Trim import list....* guix/scripts/pull.scm: Remove useless imports. Ludovic Courtès
2017-11-21gexp: 'directory-union' has a #:quiet? parameter....* guix/gexp.scm (directory-union): Add #:quiet? and honor it. Ludovic Courtès
2017-11-21union: Parametrize the symlink procedure ....* guix/gexp.scm (directory-union): Add #:hard-links and honor it. * guix/build/union.scm (union-build): Add #:symlink parameter. Ludovic Courtès
2017-11-20compile: Put an upper bound on the number of workers....* guix/build/compile.scm (compile-files): Don't use more than 8 workers. Ludovic Courtès
2017-11-20Add semicolon in commands that set GUIX_PROFILE....Fixes <https://bugs.gnu.org/28223>. Reported by Rosebud Uplink <Uplink.Introversion@outlook.com>. * doc/guix.texi (Binary Installation): Add missing semicolon after 'GUIX_PROFILE=' line. (Invoking guix package): Likewise. * gnu/system.scm (operating-system-etc-service)[profile]: Likewise. * guix/build/profiles.scm (build-etc/profile): Likewise. Ludovic Courtès
2017-11-19zlib: Fix race condition when closing gzip ports....Fixes <https://bugs.gnu.org/29335>. * guix/zlib.scm (close-procedure): Remove. (make-gzip-input-port): Do (dup (fileno port)) to get a file descriptor for 'gzdopen'. Close PORT before returning. Use 'gzclose' as the 'close' procedure of the returned port. (make-gzip-output-port): Likewise. Ludovic Courtès
2017-11-19ssh: Use (guix i18n)....* guix/ssh.scm: Use (guix i18n) instead of (guix ui). Ludovic Courtès
2017-11-18licenses: Add cddl1.1....* guix/licenses.scm (cddl1.1): New variable. Julien Lepiller
2017-11-18build-system: texlive: Only make a union of directories....* guix/build/texlive-build-system.scm (configure): Filter the input directories to ensure that source tarballs are excluded. Ricardo Wurmus
2017-11-17build-system/go: Don't let Go executables refer to the Go compiler....* guix/build/go-build-system.scm (remove-store-reference, remove-go-references): New procedures. (%standard-phases): Add 'remove-go-references' phase. * guix/build-system/go.scm (go-build): Add allow-go-reference? key. Leo Famulari
2017-11-17workers: Display backtrace in pre-unwind handler....* guix/workers.scm (worker-thunk): Add (const #f) as the 'catch' handler, and move previous handler as pre-unwind handler. Protect against 'make-stack' returning #f. Ludovic Courtès
2017-11-17workers: 'pool-idle?' returns true only if the workers are idle....Fixes <https://bugs.gnu.org/28779>. Reported by Eric Bavier <bavier@cray.com>. * guix/workers.scm (<pool>)[busy]: New field. (worker-thunk): Add #:idle and #:busy and use them. (make-pool): Pass #:busy and #:idle to 'worker-thunk'. Pass a 'busy' value to '%make-pool'. * guix/workers.scm (pool-idle?): Check whether 'pool-busy' returns zero and adjust docstring. Ludovic Courtès
2017-11-16ui: Add source file name to the package search metrics....* guix/ui.scm (%package-metrics): Include 'package-location'. Increase score of the other fields. Ludovic Courtès
2017-11-16cve: Use 'http-fetch/cached' instead of having custom caching....That way CVE fetching benefits from 'If-Modified-Since' handling. * guix/http-client.scm (http-fetch/cached): Add #:write-cache and #:cache-miss parameters and honor them. * guix/cve.scm (%current-year-ttl, %past-year-ttl): Reduce. (call-with-cve-port): Remove. (write-cache): New procedure. (fetch-vulnerabilities): Rewrite in terms of 'http-fetch/cached'. Ludovic Courtès
2017-11-16download: Improve efficiency of 'write-request' over TLS....This is another instance of <https://bugs.gnu.org/22966>. The Microsoft-IIS/7.5 server at static.nvd.nist.gov would sometimes hang when receiving our requests byte by byte. * guix/build/download.scm (tls-wrap) [!guile-2.0]: Add 'setvbuf' call. Ludovic Courtès
2017-11-14download: Pass the timeout to 'ftp-retr'....This ensures the timeout applies when connecting to the port returned by PASV. * guix/ftp-client.scm (ftp-list): Add #:timeout parameter. Use 'connect*' instead of 'connect' and pass TIMEOUT. (ftp-retr): Likewise. * guix/build/download.scm (ftp-fetch): Pass TIMEOUT to 'ftp-retr'. Ludovic Courtès
2017-11-14grafts: Clarify the status of the workaround for <http://bugs.gnu.org/24659>....* guix/build/graft.scm (mkdir-p*): Annotate. Leo Famulari
2017-11-12download: Use HTTPS for the first ImageMagick mirror....* guix/download.scm (%mirrors)[imagemagick]: Use HTTPS for <sunsite.icm.edu.pl>. Leo Famulari
2017-11-12download: Try FTP servers last....* guix/download.scm (%mirrors)[savannah, kernel.org, apache, xorg, imagemagick]: Re-arrange so that FTP is last. Leo Famulari
2017-11-11git: Check whether 'clone-init-options' is defined....This is a followup to 195f0d05c3f64e17e84b2683a7045a14ec578d61. * guix/git.scm (clone*): Check whether 'clone-init-options' is defined before using it. Ludovic Courtès
2017-11-11download: Work around more bogus HTTP handling in Guile 2.2 <= 2.2.2....Reported by Mark H Weaver <mhw@netris.org> at <https://lists.gnu.org/archive/html/guix-devel/2017-11/msg00190.html>. * guix/build/download.scm (guile-2.2) [write-request-line]: Backport Guile commit 6ad28ae3bc6a6d9e95ab7d70510d12c97673a143. Ludovic Courtès
2017-11-10download: Work around bogus HTTP handling in Guile 2.2 <= 2.2.2....Reported by Konrad Hinsen <konrad.hinsen@fastmail.net> at <https://lists.gnu.org/archive/html/guix-devel/2017-11/msg00070.html>. * guix/build/download.scm (write-request-line) [guile-2.2]: New procedure. Ludovic Courtès
2017-11-10git: Work around wrong default argument of 'clone'....Fixes <https://bugs.gnu.org/29238>. Reported by Benjamin Andresen <benny@in-ulm.de>. * guix/git.scm (clone*): Pass second argument to 'clone'. Ludovic Courtès
2017-11-09ui: Add an 'unbound-variable' exception printer....* guix/ui.scm (print-unbound-variable-error): New variable. Use it as the 'unbound-variable' printer. Ludovic Courtès
2017-11-09ui: Provide hints for unbound-variable errors....* guix/ui.scm (known-variable-definition): New procedure. (report-load-error): Handle 'unbound-variable'. Ludovic Courtès
2017-11-09ui: Add 'display-hint'....* guix/ui.scm (known-variable-definition): New procedure. (report-load-error): Use it. Ludovic Courtès