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