summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2017-12-03profiles: Do not import the host's srfi-{19,26}.scm files.Ludovic Courtès
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.
2017-12-01Do not set '%fresh-auto-compile'.Ludovic Courtès
* 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.
2017-12-01records: Use 'make-struct/no-tail'.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor): Use 'make-struct/no-tail' as 'make-struct' is deprecated as of 2.2.3.
2017-12-01guix system: 'init' displays a progress bar while copying.Ludovic Courtès
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'.
2017-12-01guix system: Simplify closure copy.Ludovic Courtès
* 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'.
2017-12-01weather: Use (guix progress) for progress report.Ludovic Courtès
* 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'.
2017-12-01progress: Add 'progress-reporter/bar'.Ludovic Courtès
* guix/progress.scm (progress-reporter/bar): New procedure.
2017-12-01progress: 'progress-bar' accounts for brackets.Ludovic Courtès
* guix/progress.scm (progress-bar): Subtract 2 to BAR-WIDTH to account for brackets.
2017-12-01progress: Factorize erase-in-line.Ludovic Courtès
* guix/progress.scm (erase-in-line): New procedure. (progress-reporter/file): Use it.
2017-12-01utils: Add target-arm32? procedure.Mathieu Othacehe
* guix/utils.scm (target-arm32?): New exported procedure.
2017-11-30ui: Present 'use-modules' hints with a question mark.Ludovic Courtès
Suggested by myglc2 <myglc2@gmail.com>. * guix/ui.scm (report-load-error): Write "Did you forget" rather than "Try adding."
2017-11-30build-system: Add scons-build-system.Arun Isaac
* 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.
2017-11-29gexp: Default to 'guile-2.2' for 'program-file'.Ludovic Courtès
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.
2017-11-29gexp: 'compiled-modules' disables deprecation warnings by default.Ludovic Courtès
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.
2017-11-28lint: Adjust file-name length test for out-of-tree file names.Ludovic Courtès
* guix/scripts/lint.scm (check-patch-file-names): Adjust file-name-length calculation.
2017-11-28lint: 'patch-file-names' checks for file name length.Ludovic Courtès
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.
2017-11-28ui: Avoid "pkg:out" syntax when reporting collisions.Ludovic Courtès
* guix/ui.scm (call-with-error-handling)[manifest-entry-output*]: New procedure. Use it when reporting collisions.
2017-11-24gnu-maintenance: Relax recursion cutoff in 'latest-ftp-release'.Ludovic Courtès
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.
2017-11-24ui: 'known-variable-definition' protects against module cycles.Ludovic Courtès
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.
2017-11-21Revert "Add (guix self) and use it when pulling."Ludovic Courtès
This reverts commit 5f93d97005897c2d859f0be1bdff34c88467ec61. 'guix pull' would fail because (guix self) needs 'scheme-files' from (guix discovery), which was not exported until now.
2017-11-21Add (guix self) and use it when pulling.Ludovic Courtès
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'.
2017-11-21git: Do not add '.git' to the store.Ludovic Courtès
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'.
2017-11-21pull: Trim import list.Ludovic Courtès
* guix/scripts/pull.scm: Remove useless imports.
2017-11-21gexp: 'directory-union' has a #:quiet? parameter.Ludovic Courtès
* guix/gexp.scm (directory-union): Add #:quiet? and honor it.
2017-11-21union: Parametrize the symlink procedure .Ludovic Courtès
* guix/gexp.scm (directory-union): Add #:hard-links and honor it. * guix/build/union.scm (union-build): Add #:symlink parameter.
2017-11-20compile: Put an upper bound on the number of workers.Ludovic Courtès
* guix/build/compile.scm (compile-files): Don't use more than 8 workers.
2017-11-20Add semicolon in commands that set GUIX_PROFILE.Ludovic Courtès
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.
2017-11-19zlib: Fix race condition when closing gzip ports.Ludovic Courtès
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.
2017-11-19ssh: Use (guix i18n).Ludovic Courtès
* guix/ssh.scm: Use (guix i18n) instead of (guix ui).
2017-11-18licenses: Add cddl1.1.Julien Lepiller
* guix/licenses.scm (cddl1.1): New variable.
2017-11-18build-system: texlive: Only make a union of directories.Ricardo Wurmus
* guix/build/texlive-build-system.scm (configure): Filter the input directories to ensure that source tarballs are excluded.
2017-11-17build-system/go: Don't let Go executables refer to the Go compiler.Leo Famulari
* 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.
2017-11-17workers: Display backtrace in pre-unwind handler.Ludovic Courtès
* 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.
2017-11-17workers: 'pool-idle?' returns true only if the workers are idle.Ludovic Courtès
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.
2017-11-16ui: Add source file name to the package search metrics.Ludovic Courtès
* guix/ui.scm (%package-metrics): Include 'package-location'. Increase score of the other fields.
2017-11-16cve: Use 'http-fetch/cached' instead of having custom caching.Ludovic Courtès
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'.
2017-11-16download: Improve efficiency of 'write-request' over TLS.Ludovic Courtès
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.
2017-11-14download: Pass the timeout to 'ftp-retr'.Ludovic Courtès
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'.
2017-11-14grafts: Clarify the status of the workaround for <http://bugs.gnu.org/24659>.Leo Famulari
* guix/build/graft.scm (mkdir-p*): Annotate.
2017-11-12download: Use HTTPS for the first ImageMagick mirror.Leo Famulari
* guix/download.scm (%mirrors)[imagemagick]: Use HTTPS for <sunsite.icm.edu.pl>.
2017-11-12download: Try FTP servers last.Leo Famulari
* guix/download.scm (%mirrors)[savannah, kernel.org, apache, xorg, imagemagick]: Re-arrange so that FTP is last.
2017-11-11git: Check whether 'clone-init-options' is defined.Ludovic Courtès
This is a followup to 195f0d05c3f64e17e84b2683a7045a14ec578d61. * guix/git.scm (clone*): Check whether 'clone-init-options' is defined before using it.
2017-11-11download: Work around more bogus HTTP handling in Guile 2.2 <= 2.2.2.Ludovic Courtès
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.
2017-11-10download: Work around bogus HTTP handling in Guile 2.2 <= 2.2.2.Ludovic Courtès
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.
2017-11-10git: Work around wrong default argument of 'clone'.Ludovic Courtès
Fixes <https://bugs.gnu.org/29238>. Reported by Benjamin Andresen <benny@in-ulm.de>. * guix/git.scm (clone*): Pass second argument to 'clone'.
2017-11-09ui: Add an 'unbound-variable' exception printer.Ludovic Courtès
* guix/ui.scm (print-unbound-variable-error): New variable. Use it as the 'unbound-variable' printer.
2017-11-09ui: Provide hints for unbound-variable errors.Ludovic Courtès
* guix/ui.scm (known-variable-definition): New procedure. (report-load-error): Handle 'unbound-variable'.
2017-11-09ui: Add 'display-hint'.Ludovic Courtès
* guix/ui.scm (known-variable-definition): New procedure. (report-load-error): Use it.
2017-11-08ui: Define and honor '&error-location' and '&fix-hint' conditions.Ludovic Courtès
* guix/utils.scm (&error-location, &fix-hint): New condition types. * guix/ui.scm (report-load-error): Handle them. (call-with-error-handling): Honor '&error-location'.
2017-11-08ui: Introduce (guix i18n).Ludovic Courtès
* guix/ui.scm (G_, N_, _P, %gettext-domain, %package-text-domain): Move to... * guix/i18n.scm: ... here. New file.