summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2017-06-30Merge branch 'master' into core-updatesLudovic Courtès
2017-06-30vm: Estimate the disk size by default.Ludovic Courtès
* gnu/build/vm.scm (estimated-partition-size): New procedure. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:disk-image-size default to 'guess. [builder]: When DISK-IMAGE-SIZE is 'guess, use 'estimated-partition-size' and compute and estimate of the image size. (qemu-image): Likewise. * guix/build/store-copy.scm (file-size, closure-size): New procedures. * guix/scripts/system.scm (%default-options): Change 'image-size' to 'guess. * doc/guix.texi (Building the Installation Image): Remove '--image-size' flag from example. (Invoking guix system): Document the image size estimate.
2017-06-29Merge branch 'master' into core-updatesLeo Famulari
2017-06-26guix package: Allow '--rollback', after all.Ludovic Courtès
* guix/scripts/package.scm (%options): Add "rollback" as an alias for "roll-back".
2017-06-26guix package: 'guix package -r PKG -u' does not upgrade PKG.Ludovic Courtès
Fixes <http://bugs.gnu.org/27262>. Reported by Mark H Weaver <mhw@netris.org>. * guix/scripts/package.scm (transaction-upgrade-entry): Check if ENTRY matches 'manifest-transaction-removal-candidate?' and return TRANSACTION if it does. (process-actions): Move 'options->removable' from step 2 to step 1.
2017-06-26profiles: Add 'manifest-transaction-removal-candidate?'.Ludovic Courtès
* guix/profiles.scm (manifest-transaction-removal-candidate?): New procedure. * tests/profiles.scm ("manifest-transaction-removal-candidate?"): New test.
2017-06-26import cran: Generate a valid 'license' field for "GPL".Ludovic Courtès
Fixes <http://bugs.gnu.org/27294>. Reported by Joshua Sierles <joshua@joshua.si>. * guix/import/cran.scm (string->license) <"GPL">: Return a quoted list.
2017-06-26Merge branch 'master' into core-updatesMark H Weaver
2017-06-25guix package: Warn about packages that no longer exist.Ludovic Courtès
Fixes <http://bugs.gnu.org/27261>. Reported by Mark H Weaver <mhw@netris.org>. * guix/scripts/package.scm (transaction-upgrade-entry): Add call to 'warning' when NAME cannot be found in the package set.
2017-06-24refresh: Be more verbose when passed an explicit package list.Ludovic Courtès
* guix/scripts/refresh.scm (check-for-package-update): Use 'version-compare' instead of 'version>?'. When WARN? is true, print something for the '=' and '<' cases.
2017-06-22store: Define a default port for TCP connections.Ludovic Courtès
* guix/store.scm (%default-guix-port): New variable. (connect-to-daemon)[connect]: Use it when (uri-port uri) is #f. * doc/guix.texi (The Store): Mention the default port number.
2017-06-22store: Pass a socket type hint to 'getaddrinfo'.Ludovic Courtès
* guix/store.scm (open-inet-socket): Pass hints in the 'getaddrinfo' call.
2017-06-21environment: Disable profile collision checks.Ludovic Courtès
Reported by Efraim Flashner. This is a followup to a654dc4bcf7c8e205bdefa1a1d5f23444dd22778. * guix/profiles.scm (profile-derivation): Add #:allow-collisions? and honor it. * guix/scripts/environment.scm (inputs->profile-derivation): Pass #:allow-collisions? #f to 'profile-derivation'. * tests/guix-environment.sh: Test "guix environment guix".
2017-06-21profiles: Move 'manifest-entry-dependencies' user after definition.Ludovic Courtès
Reported by Efraim Flashner. * guix/profiles.scm (manifest-transitive-entries): Move after <manifest-entry> definition.
2017-06-21guix package: '--search-paths' shows search paths from propagated inputs.Ludovic Courtès
* guix/scripts/package.scm (process-query) <'search-paths>: Use 'manifest-transitive-entries' instead of 'manifest-entries'.
2017-06-21profiles: Catch and report collisions in the profile.Ludovic Courtès
* guix/profiles.scm (&profile-collision-error): New error condition. (manifest-transitive-entries, manifest-entry-lookup, lower-manifest-entry) (check-for-collisions): New procedures. (profile-derivation): Add call to 'check-for-collisions'. * guix/ui.scm (call-with-error-handling): Handle '&profile-collision-error'. * tests/profiles.scm ("collision", "collision of propagated inputs") ("no collision"): New tests.
2017-06-21guix package: Always upgrade packages that have propagated inputs.Ludovic Courtès
* guix/scripts/package.scm (transaction-upgrade-entry): Always upgrade packages that have propagated inputs.
2017-06-21profiles: Manifest entries keep a reference to their parent entry.Ludovic Courtès
* guix/profiles.scm (<manifest-entry>)[parent]: New field. (package->manifest-entry): Add #:parent parameter. Fill out the 'parent' field of <manifest-entry>; pass #:parent in recursive calls. * guix/profiles.scm (sexp->manifest)[sexp->manifest-entry]: New procedure. Use it for version 3. * tests/profiles.scm ("manifest-entry-parent"): New procedure. ("read-manifest")[entry->sexp]: Add 'manifest-entry-parent' to the result.
2017-06-21profiles: Represent propagated inputs as manifest entries.Ludovic Courtès
* guix/profiles.scm (package->manifest-entry): Turn DEPS into a list of manifest entries. (manifest->gexp)[entry->gexp]: Call 'entry->gexp' on DEPS. Bump version to 3. (sexp->manifest)[infer-dependency]: New procedure. Use it for versions 1 and 2. Parse version 3. (manifest-inputs)[entry->gexp]: New procedure. Adjust to 'dependencies' being a list of <manifest-entry>. * tests/profiles.scm ("packages->manifest, propagated inputs") ("read-manifest"): New fields.
2017-06-20gnu: Move contents of zip module into compression module.Arun Isaac
* gnu/packages/zip.scm (zip, unzip, zziplib, perl-zip): Move to... * gnu/packages/compression.scm: ...here. * gnu/packages/zip.scm: Delete file. * gnu/local.mk (GNU_SYSTEM_MODULES): Unregister deleted file. * po/packages/POTFILES.in: Unregister deleted file. * gnu/packages/{audio, avr, bioinformatics, busybox, cdrom, ci, compression, docbook, documentation, fonts, fpga, game-development, games, gl, gnome, gnuzilla, graphics, guile, haskell, image, java, kodi, ldc, libreoffice, markup, maths, mc, monitoring, music, php, pretty-print, python, scheme, smalltalk, statistics, synergy, tex, textutils, video, web-browsers, xml, zip}.scm, guix/build-system/{ant, font}.scm, guix/{download, packages}.scm: Adapt module import.
2017-06-20Merge branch 'master' into core-updatesMark H Weaver
2017-06-19store: Buffer RPC writes.Ludovic Courtès
For a command like: guix build python2-numpy -n this reduces the number of 'write' syscalls from 9.5K to 2.0K. * guix/store.scm (<nix-server>)[buffer, flush]: New fields. (open-connection): Adjust accordingly. Call 'buffering-output-port' to compute the two new fields. (write-buffered-output, buffering-output-port): New procedures. (operation): Write to (nix-server-output-port server). Call 'write-buffered-output'.
2017-06-19build-system/texlive: Update to texlive-2017.1, revision 44591.Ricardo Wurmus
* guix/build-system/texlive.scm (%texlive-tag): Change to texlive-2017.1. (%texlive-revision): Change to 44591.
2017-06-18Merge branch 'master' into core-updatesMark H Weaver
2017-06-18discovery: 'scheme-files' returns '() for a non-accessible directory.Ludovic Courtès
Fixes a regression introduced in d27cc3bfaafe6b5b0831e88afb1c46311d382a0b. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/discovery.scm (scheme-files): Catch 'scandir*' system errors. Return '() and optionally raise a warning upon 'system-error'. * tests/discovery.scm ("scheme-modules, non-existent directory"): New test.
2017-06-18syscalls: 'opendir*' error message shows the file name.Ludovic Courtès
* guix/build/syscalls.scm (opendir*): Add NAME to the 'system-error' message.
2017-06-16store: Add an RPC counter.Ludovic Courtès
* guix/store.scm (%rpc-calls): New variable. (show-rpc-profile, record-operation): New procedures. (operation): Add call to 'record-operation'. * guix/ui.scm (run-guix-command): Wrap COMMAND-MAIN in 'dynamic-wind'. Run EXIT-HOOK.
2017-06-16discovery: Rewrite 'scheme-files' using 'scandir*'.Ludovic Courtès
On a command like: guix environment --ad-hoc coreutils -- true this reduces the number of 'stat' calls from 14.1K to 9.7K on my setup (previously each getdents(2) call would be followed by one stat(2) call per entry). * guix/discovery.scm (scheme-files): Rewrite using 'scandir*'.
2017-06-16syscalls: Add 'scandir*'.Ludovic Courtès
* guix/build/syscalls.scm (%struct-dirent-header): New C struct. (string->pointer/utf-8, pointer->string/utf-8): New procedures. (opendir*, closedir*, readdir*, scandir*): New procedures. * tests/syscalls.scm ("scandir*, ENOENT") ("scandir*, ASCII file names", "scandir*, UTF-8 file names") ("scandir*, properties): New tests.
2017-06-15ui: Remove the empty string from '%load-extensions'.Ludovic Courtès
* guix/ui.scm (run-guix): Set %LOAD-EXTENSIONS.
2017-06-15packages: Patches can be any lowerable object.Ludovic Courtès
* guix/packages.scm (patch-and-repack)[instantiate-patch]: Replace 'origin?' with 'struct?'.
2017-06-15guix: Add texlive importer.Ricardo Wurmus
* guix/import/texlive.scm: New file. * guix/scripts/import/texlive.scm: New file. * Makefile.am (MODULES): Add them. * tests/texlive.scm: New file. * Makefile.am (SCM_TESTS): Add it. * guix/scripts/import.scm (importers): Add texlive importer. * doc/guix.texi (Invoking guix import): Document it.
2017-06-15build-system: Add 'texlive-build-system'.Ricardo Wurmus
* guix/build-system/texlive.scm: New file. * guix/build/texlive-build-system.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document it. * gnu/packages/tex.scm (%texlive-tag, %texlive-revision): Remove variables. (texlife-ref): Remove procedure.
2017-06-15licenses: Add common TeX and LaTeX licenses.Ricardo Wurmus
* guix/licenses.scm (knuth, lppl, lppl1.0+, lppl1.2, lppl1.2+, lppl1.3, lppl1.3+, lppl1.3a, lppl1.3a+, lppl1.3b, lppl1.3b+, lppl1.3c, lppl1.3c+): New variables.
2017-06-15guix: Add download-svn-to-store.Ricardo Wurmus
* guix/svn-download.scm (download-svn-to-store): New procedure.
2017-06-15import: pypi: Always use pypi.io URL with downcased package name.Danny Milosavljevic
* guix/import/pypi.scm (make-pypi-sexp): Always use pypi.io URL with downcased package name.
2017-06-13guix package: '--search' sorts by relevance.Ludovic Courtès
* guix/scripts/package.scm (find-packages-by-description): Rewrite to compute a score based on the number of regexps matched and the number of matches for each regexp. Sort according to this score and return it as a second value. (process-query) <'search>: Capture the two return values of 'find-packages-by-description'. Pass #:extra-fields to 'package->recutils'. * doc/guix.texi (Invoking guix package): Mention relevance, give an example.
2017-06-13ui: 'package->recutils' takes #:extra-fields.Ludovic Courtès
* guix/ui.scm (package->recutils): Add #:extra-fields and honor it.
2017-06-12derivations: Introduce 'read-derivation-from-file'.Ludovic Courtès
This avoids the open/fstat/close syscalls upon a cache hit that we had with the previous idiom: (call-with-input-file file read-derivation) where caching happened in 'read-derivation' itself. * guix/derivations.scm (%read-derivation): Rename to... (read-derivation): ... this. (read-derivation-from-file): New procedure. (derivation-prerequisites, substitution-oracle) (derivation-prerequisites-to-build): (derivation-path->output-path, derivation-path->output-paths): (derivation-path->base16-hash, map-derivation): Use 'read-derivation-from-file' instead of (call-with-input-file … read-derivation). * guix/grafts.scm (item->deriver): Likewise. * guix/scripts/build.scm (log-url, options->things-to-build): Likewise. * guix/scripts/graph.scm (file->derivation): Remove. (derivation-dependencies, %derivation-node-type): Use 'read-derivation-from-file' instead. * guix/scripts/offload.scm (guix-offload): Likewise. * guix/scripts/perform-download.scm (guix-perform-download): Likewise. * guix/scripts/publish.scm (load-derivation): Remove. (narinfo-string): Use 'read-derivation-from-file'.
2017-06-12store: Speed up 'add-to-store'.Ludovic Courtès
* guix/store.scm (add-to-store): Remove 'lstat' call.
2017-06-11build-system/gnu: Work around 'time-monotonic' bug in Guile 2.2.2.Ludovic Courtès
Fixes <http://bugs.gnu.org/27303>. Reported by Leo Famulari <leo@famulari.name>. * guix/build/gnu-build-system.scm (time-monotonic) [guile-2.2]: Define.
2017-06-11Merge branch 'master' into core-updatesMarius Bakke
Conflicts: * gnu/packages/tls.scm (gnutls): Incorporated 3.5.13 graft (88e2511e217f2).
2017-06-10bootloader: Rename boot-name to bootloader-name.Mathieu Othacehe
* gnu/system (<boot-parameters>)[boot-name]: Rename field to... [bootloader-name]: ... this. Adjust users. * gnu/scripts/system.scm: Adjust accordingly.
2017-06-10Merge branch 'master' into core-updatesMarius Bakke
2017-06-09guix: git: Add new module.Mathieu Othacehe
* guix/git.scm: New file. * configure.ac: Check for (guile git). * Makefile.am: Build guix/git.scm if (guile git) is available.
2017-06-08build-system: emacs: Factorize include/exclude default arguments.Maxim Cournoyer
The `install' phase of the emacs-build-system contained default arguments duplicated from the host side `emacs-build' procedure. This change factorizes them so that: 1. They are not duplicated. 2. They can be reused and extended easily when defining emacs packages. * guix/build/emacs-build-system.scm (%default-include, %default-exclude): New variables. (install): Use %default-include and %default-exclude as default arguments. * guix/build-system/emacs.scm: Use and re-export %default-include, %default-exclude from (guix build emacs-build-system). (emacs-build): Use %default-include and %default-exclude as default arguments. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2017-06-07Merge branch 'master' into core-updatesLeo Famulari
This merge commit includes a fix for CVE-2017-6512 in Perl 5.26.0.
2017-06-07import: cpan: Update CPAN importer to use MetaCPAN v1 API.James Richardson
* guix/import/cpan.scm (module->dist-name, cpan-fetch): Use metacpan.org URLs. * tests/cpan.scm ("cpan->guix-package"): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-06-04ssh: Improve error reporting when 'send-files' fails.Ludovic Courtès
Fixes <http://bugs.gnu.org/26972>. * guix/ssh.scm (store-import-channel)[import]: Add 'consume-input' procedure. Wrap body in 'catch' and 'guard'. Use 'open-remote-pipe' with OPEN_BOTH instead of 'open-remote-output-pipe'. (send-files): After the 'channel-send-eof' call, do (read port). Interpret the result sexp and raise an error condition if needed.
2017-06-04Merge branch 'master' into core-updatesLeo Famulari