Age | Commit message (Expand) | Author |
2015-04-19 | guix package: Fix 'readlink*' implementation....* guix/scripts/package.scm (readlink*): Fix to handle symlinks with
relative targets. Taken from ld-wrapper2.in.
| Ludovic Courtès |
2015-04-19 | guix package: -A and -s take supported systems into account....* guix/scripts/package.scm (guix-package)[process-query]
<list-available>: Restrict results to packages matching
'supported-package?".
* guix/ui.scm (package->recutils): Print "systems:".
* tests/guix-package.sh: Add tests.
* doc/guix.texi (Invoking guix package): Adjust description of
'--list-available' accordingly.
| Ludovic Courtès |
2015-04-15 | profiles: Generalize "hooks" for 'profile-derivation'....* guix/profiles.scm (info-dir-file): Remove (null? (manifest-entries
manifest)) test.
(ca-certificate-bundle): Likewise.
(ghc-package-cache-file): Turn 'if' into 'and', and remove second
arm.
(%default-profile-hooks): New variable.
(profile-derivation): Remove #:info-dir?, #:ghc-package-cache?, and
#:ca-certificate-bundle?. Add #:hooks. Iterate over HOOKS. Adjust
'inputs' accordingly.
* guix/scripts/package.scm (guix-package): Adjust 'profile-derivation'
call accordingly.
* tests/packages.scm ("--search-paths with pattern"): Likewise.
* tests/profiles.scm ("profile-derivation",
"profile-derivation, inputs"): Likewise.
| Ludovic Courtès |
2015-04-14 | guix package: Add '--do-not-upgrade' option....* guix/scripts/package.scm (%options): Add the '--do-not-upgrade' option.
(show-help): Document it.
(options->installable): Add 'do-not-upgrade-regexps' variable.
Use it in 'packages-to-upgrade'.
* doc/guix.texi (Invoking guix package): Document the '--do-not-upgrade'
option.
| Mark H Weaver |
2015-04-08 | profiles: Generate GHC's package database cache....* guix/profiles.scm (ghc-package-cache-file): New procedure.
(profile-derivation): Add 'ghc-package-cache?' keyword argument. If true
(the default), add the result of 'ghc-package-cache-file' to 'inputs'.
* guix/scripts/package.scm (guix-package)[process-actions]: Pass
#:ghc-package-cache? to 'profile-generation'.
* tests/packages.scm ("--search-paths with pattern"): Likewise.
* tests/profiles.scm ("profile-derivation"): Likewise.
| Federico Beffa |
2015-04-06 | guix package: Avoid 'exit' calls in 'delete-matching-generations'....* guix/scripts/package.scm (delete-matching-generations): Remove call to
'exit' when PATTERN is "0". Call 'leave' instead of 'exit'
when (null-list? number).
| Ludovic Courtès |
2015-04-06 | guix package: Never remove the current generation and warn about it....Fixes <http://bugs.gnu.org/19978>.
Reported by taylanbayirli@gmail.com (Taylan Ulrich Bayırlı/Kammer).
* guix/scripts/package.scm (delete-matching-generations): Warn when
CURRENT is in NUMBERS, and always remove it before calling
'delete-generations'.
* tests/guix-package.sh: Add --switch-generation=2 invocation before
--delete-generations=3 invocation.
Add --delete-generations=1.. test case.
| Ludovic Courtès |
2015-04-06 | guix package: Move generation deletion to its own procedure....* guix/scripts/package.scm (delete-matching-generations): New procedure,
with code formerly found...
(guix-package)[process-actions]: ... here. Use it.
Remove 'current-generation-number'.
| Ludovic Courtès |
2015-03-20 | guix package: '-s' sorts packages by name, then by version....Before that it would sort them by name only, so the order in which two
packages with the same name but a different version would appear was
non-deterministic.
Reported by Tomáš Čech <sleep_walker@gnu.org>.
* guix/scripts/package.scm (find-packages-by-description)[version<?]:
New variable.
Change the 2nd argument to 'sort' to use 'string-compare' and resort
to 'version<?' when P1 and P2 have the same name.
| Ludovic Courtès |
2015-03-20 | guix package: '-s' displays different packages that have the same location....Before that, 'guix package -s foobarbaz' would display only one package
when several match but they have the same location (which is common when
using 'inherit'.)
The original rationale was given at
<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00280.html> but
it was arguably misguided because it led to "real" packages being
hidden.
Reported by Tomáš Čech <sleep_walker@gnu.org>.
* guix/scripts/package.scm (find-packages-by-description)[same-location?]:
Remove.
Remove call to 'delete-duplicates'.
| Ludovic Courtès |
2015-03-04 | tests: Remove dependency on 'glibc-utf8-locales' for profile tests....This fixes a regression introduced in commit 536c3ee.
* guix/profiles.scm (ca-certificate-bundle): When MANIFEST is empty,
make a trivial derivation.
* guix/scripts/package.scm (guix-package)[process-actions]: Pass
#:ca-certificate-bundle? to 'profile-generation'.
* tests/packages.scm ("--search-paths with pattern"): Likewise.
* tests/profiles.scm ("profile-derivation"): Likewise.
| Ludovic Courtès |
2015-02-26 | ui: Factorize command-line + env. var. option parsing....* guix/ui.scm (%default-argument-handler, parse-command-line): New
procedures.
(environment-build-options): Make private.
* guix/scripts/archive.scm (guix-archive)[parse-options,
parse-options-from]: Remove. Use 'parse-command-line' instead.
* guix/scripts/build.scm (guix-build): Likewise.
* guix/scripts/environment.scm (guix-environment): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/system.scm (guix-system): Likewise.
* tests/ui.scm (with-environment-variable): New macro.
("parse-command-line"): New test.
| Ludovic Courtès |
2015-02-06 | guix package: Make custom profiles actual indirect roots....Before that, any profile generation built when '-p' is used would
effectively become a permanent GC root because the symlink in
/var/guix/gcroots/auto would point directly to /gnu/store/...-profile.
* guix/scripts/package.scm (maybe-register-gc-root): Rename to...
(register-gc-root): ... this. Remove conditional, and replace call to
'canonicalize-path' with (string-append (getcwd) "/" ...).
(guix-package): Call 'register-gc-root' only if PROFILE is different
from %CURRENT-PROFILE.
* tests/guix-package.sh: Add test case.
| Ludovic Courtès |
2015-01-20 | guix package: Avoid spurious warnings from 'find-files'....Reported by Andreas Enge <andreas@enge.fr>.
* guix/scripts/package.scm (with-null-error-port): New macro.
(search-path-environment-variables): Wrap 'search-path-as-list' call
in 'with-null-error-port'.
| Ludovic Courtès |
2015-01-03 | guix package: Follow symlinks for pattern search paths....* guix/scripts/package.scm (search-path-environment-variables): Add
local 'files' variable.
* tests/packages.scm ("--search-paths with pattern"): New test.
| Ludovic Courtès |
2014-12-27 | guix package: Use 'search-path-as-list' instead of custom code....This will handle the new 'file-type' and 'file-pattern' fields correctly.
* guix/scripts/package.scm (search-path-environment-variables)[search-path-definition]:
Rewrite in terms of 'search-path-as-list'.
| Ludovic Courtès |
2014-12-06 | guix: scripts: Parse $GUIX_BUILD_OPTIONS separately....Appending to "raw" args broke optional parameters in 'guix package -I'
and 'guix package -A', and possibly other places. Therefore, switch to
parsing each set of options on its own and append resulting alists
together afterwards.
* guix/scripts/archive.scm (parse-options-from): Rename from
(parse-options) and add explicit argument. New form of (parse-options)
using its old algorithm via -from function.
* guix/scripts/build.scm: Ditto.
* guix/scripts/environment.scm: Ditto.
* guix/scripts/package.scm: Ditto.
* guix/scripts/system.scm: Ditto.
* tests/guix-package.sh: Add test.
* doc/guix.texi (Invoking guix build): Make it clear that the options
are parsed independently.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| nebuli |
2014-11-30 | guix: scripts: Add GUIX_BUILD_OPTIONS environment handling....* doc/guix.texi (Invoking guix build): Mention 'GUIX_BUILD_OPTIONS'.
* guix/scripts/archive.scm: (append args (environment-build-options)).
* guix/scripts/build.scm: Ditto.
* guix/scripts/environment.scm: Ditto.
* guix/scripts/package.scm: Ditto.
* guix/scripts/system.scm: Ditto.
* guix/ui.scm (environment-build-options): New function.
* guix/utils.scm (arguments-from-environment-variable): New function.
* tests/guix-build.sh: Add tests.
* test-env.in: Unset GUIX_BUILD_OPTIONS.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| nebuli |
2014-10-12 | guix package: Add '--switch-generation' option....* guix/scripts/package.scm (switch-to-generation): New procedure.
(switch-to-previous-generation): Use it.
(guix-package): Adjust for '--switch-generation' option.
* tests/guix-package.sh: Test it.
* doc/guix.texi (Invoking guix package): Document it.
| Alex Kost |
2014-10-12 | profiles: Add condition types for profiles and generations....Suggested by Ludovic Courtès.
* guix/profiles.scm (&profile-error, &profile-not-found-error,
&missing-generation-error): New condition types.
* guix/ui.scm (call-with-error-handling): Handle new types.
* guix/scripts/package.scm (roll-back, guix-package): Raise
'&profile-not-found-error' where needed.
| Alex Kost |
2014-10-10 | ui: Move 'show-manifest-transaction' from (guix profiles)....* guix/profiles.scm: Do not use (guix ui) module.
(right-arrow, manifest-show-transaction): Move and rename to...
* guix/ui.scm (right-arrow, show-manifest-transaction): ... here.
* tests/profiles.scm ("manifest-show-transaction"): Move to...
* tests/ui.scm ("show-manifest-transaction"): ... here.
(guile-1.8.8, guile-2.0.9): New variables.
* emacs/guix-main.scm (process-package-actions): Rename
'manifest-show-transaction' to 'show-manifest-transaction'.
* guix/scripts/package.scm (guix-package): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Alex Kost |
2014-10-05 | guix package: Export generation procedures....* guix/scripts/package.scm: Export 'roll-back', 'delete-generation',
'delete-generations'.
(link-to-empty-profile, roll-back): Add 'store' argument.
(delete-generations): New procedure.
(guix-package): Adjust accordingly.
[delete-generation]: Move to the top level. Add 'store' and 'profile'
arguments.
[display-and-delete]: Move to 'delete-generation'.
| Alex Kost |
2014-09-22 | guix package: Use 'profile-generations'....* guix/scripts/package.scm (guix-package)[process-actions]: Use
'profile-generations' instead of the equivalent code.
| Alex Kost |
2014-08-31 | guix package: Fix search path lookup when an obsolete version is installed....Before that, 'guix package --search-paths' would not work if, say,
'foo-0.2' is installed but the distro provides 'foo-0.3'.
* guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]:
Handle the case where 'find-best-packages-by-name' returns '().
| Ludovic Courtès |
2014-08-28 | gnu: Split (gnu packages base), adding (gnu packages commencement)....* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
| Ludovic Courtès |
2014-08-23 | profiles: Produce a top-level Info 'dir' file....Fixes <http://bugs.gnu.org/18305>.
Reported by Brandon Invergo <brandon@gnu.org>.
* guix/profiles.scm (manifest-inputs, info-dir-file): New procedures.
(profile-derivation): Use them. Add #:info-dir? parameter and honor
it.
* guix/scripts/package.scm (guix-package): Call 'profile-derivation'
with #:info-dir? #f when the 'bootstrap? option is set.
* tests/profiles.scm ("profile-derivation"): Pass #:info-dir? #f.
| Ludovic Courtès |
2014-08-20 | Move 'check-package-freshness' from 'guix package' to 'packages'....* guix/scripts/package.scm (%sigint-prompt, call-with-sigint-handler)
(waiting, ftp-open*, check-package-freshness): Move to...
* gnu/packages.scm: ... here.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Alex Kost |
2014-08-19 | guix package: Use 'manifest-transaction'....* guix/scripts/package.scm (guix-package)[process-actions]: Use
'manifest-transaction' instead of the equivalent code.
(show-what-to-remove/install): Remove.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Alex Kost |
2014-08-12 | guix package: Remove leftover internal procedure....Reported by Alex Kost <alezost@gmail.com>.
* guix/scripts/package.scm (guix-package)[process-actions]: Remove
'same-package?'.
| Ludovic Courtès |
2014-08-12 | guix package: Use 'manifest-add'....* guix/scripts/package.scm (guix-package)[process-actions]: Use
'manifest-add' instead of the equivalent code.
| Ludovic Courtès |
2014-08-11 | guix package: Remove dead code and unused variables....Suggested by Alex Kost <alezost@gmail.com>.
* guix/scripts/package.scm (options->installable)[deduplicate]: Remove.
[packages-to-upgrade]: Remove unused variable 'newest'.
(roll-back): Remove unused variable 'manifest'.
(guix-package): Remove unused variables 'guile-missing?', 'verbose?',
and 'packages'.
| Ludovic Courtès |
2014-07-26 | profiles: Add 'package->manifest-entry'....Suggested by Alex Kost <alezost@gmail.com>.
* guix/scripts/package.scm (options->installable)[package->manifest-entry]:
Move to (guix profiles).
[package->manifest-entry*]: New procedure.
Use it.
* guix/profiles.scm (package->manifest-entry): New procedure.
* tests/profiles.scm (guile-for-build): New variable.
Call '%guile-for-build'.
("profile-derivation"): New test.
| Ludovic Courtès |
2014-07-26 | profiles: Get rid of the 'inputs' field of 'manifest-entry'....* guix/profiles.scm (<manifest-entry>)[inputs]: Remove.
(profile-derivation): Rely on 'item' and 'deps' instead of 'inputs'.
Adjust 'builder' accordingly.
* guix/scripts/package.scm (options->installable)[package->manifest-entry]:
Remove 'inputs' field. Change 'dependencies' field to contain
packages.
| Ludovic Courtès |
2014-07-26 | profiles: Switch to gexps....* guix/profiles.scm (<manifest-entry>)[path]: Rename to...
[item]: ... this. Update users.
(manifest->sexp): Rename to...
(manifest->gexp): ... this. Return a gexp.
(lower-input): Remove.
(profile-derivation): Remove 'store' parameter, and turn into a
monadic procedure.
[inputs]: New variable.
[builder]: Turn into a gexp.
Replace call to 'build-expression->derivation' with call to
'gexp->derivation'.
* guix/scripts/package.scm (link-to-empty-profile): Adjust call to
'profile-derivation', and wrap it in 'run-with-store'.
(show-what-to-remove/install): Rename 'path' to 'item'. Check whether
ITEM is a package, and return its output path if it is.
(input->name+path): Remove.
(options->installable): Set 'item' to P.
(guix-package): Adjust call to 'profile-derivation'.
* tests/profiles.scm (guile-2.0.9): Change 'path' to 'item'.
| Ludovic Courtès |
2014-07-26 | profiles: Do away with 'manifest=?'....* guix/profiles.scm (manifest=?): Remove.
* guix/scripts/package.scm (readlink*): New procedure.
(guix-package)[process-actions]: Use 'readlink*' and compare the
profile to be built, PROF, with PROFILE to determine whether there's
nothing to be done.
| Ludovic Courtès |
2014-07-21 | guix package: add a "show" option....* doc/guix.texi: Update the documentation.
* guix/scripts/package.scm: Add a "show" option.
* tests/guix-package.sh: Add a test for the "show" option.
| Cyril Roelandt |
2014-07-05 | guix package: Try $LOGNAME in addition to $USER....Fixes <http://bugs.gnu.org/17946>.
Notoriously, cron jobs may set LOGNAME only and not USER. See
e.g. crontab(5) under Debian 7 (wheezy).
* guix/scripts/package.scm (%profile-directory)
(guix-package): Also try LOGNAME if USER is unset.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Taylan Ulrich Bayirli/Kammer |
2014-07-05 | guix package: Do the right thing for '-p ~/.guix-profile'....Fixes <http://bugs.gnu.org/17939>.
Reported by Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>.
* guix/scripts/package.scm (canonicalize-profile): New procedure.
(%options): Use it for --profile.
* tests/guix-package.sh: Add test.
| Ludovic Courtès |
2014-06-13 | Separate package description translations from string translations....* po/packages/LINGUAS, po/packages/Makevars, po/packages/POTFILES.in:
New files.
* po/guix/Makevars (DOMAIN): Change to "guix".
(XGETTEXT_OPTIONS): Remove "--keyword=synopsis --keyword=description".
* po/guix/POTFILES.in: Remove gnu/packages/*.scm.
* configure.ac: Change to gettext 0.18.3. Produce
po/packages/Makefile.in.
* Makefile.am (SUBDIRS): Add po/packages.
* guix/ui.scm (%package-text-domain): New variable.
(P_): New procedure.
(package->recutils): Use 'P_' instead of '_'.
* guix/scripts/package.scm (find-packages-by-description): Use 'P_'
instead of 'gettext'.
| Ludovic Courtès |
2014-04-05 | guix package: Fix indentation of packages to remove....* guix/scripts/package.scm (show-what-to-remove/install): Add space when
showing packages to remove.
| Ludovic Courtès |
2014-04-02 | guix package: 'search-path-environment-variables' traverses module tree once....* guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]:
Use 'find-best-packages-by-name' instead of 'find-packages-by-name'.
On a profile with 140 packages, this reduces execution time of this
procedure from 5.8 seconds to 2.9 seconds (50% improvement.)
| Ludovic Courtès |
2014-04-02 | guix package: Register non-default profiles as GC roots....* guix/scripts/package.scm (maybe-register-gc-root): New procedure.
* tests/guix-package.sh (profile): Grep the output of "guix gc
--list-live" in a couple of places.
| Ludovic Courtès |
2014-03-01 | guix package: Use the common build options from (guix scripts build)....* guix/scripts/build.scm (%standard-build-options): Change option
handlers to support multiple seeds.
* guix/scripts/package.scm (show-help): Remove --dry-run, --fallback,
--no-substitutes, and --max-silent-time.
(%options): Likewise, and add %STANDARD-BUILD-OPTIONS.
(%default-options): Add 'verbosity'.
(guix-package): Call 'set-build-options-from-command-line' instead of
'set-build-options'.
| Ludovic Courtès |
2014-01-13 | guix package: Gracefully handle EPIPE on '--search'....* guix/scripts/package.scm (guix-package): Wrap body of 'search' in
'leave-on-EPIPE'.
| Ludovic Courtès |
2014-01-08 | config: '%state-directory' always honors $NIX_STATE_DIR....* guix/config.scm.in (%state-directory): Honor $NIX_STATE_DIR.
* guix/scripts/package.scm (%profile-directory): Use %state-directory
directly.
* guix/store.scm (%default-socket-path, log-file): Likewise.
| Ludovic Courtès |
2014-01-04 | guix package: Gracefully deal with EPIPE on stdout for --list-*....* guix/scripts/package.scm (leave-on-EPIPE): New macro.
(guix-package): Use it for 'list-installed', 'list-available', and
'--list-generations'.
* tests/guix-package.sh: Add test.
| Ludovic Courtès |
2013-12-22 | Add 'guix archive'....* guix/scripts/archive.scm, tests/guix-archive.sh: New files.
* Makefile.am (MODULES): Add 'archive.scm'.
(SH_TESTS): Add 'guix-archive.sh'.
* doc/guix.texi (Invoking guix archive): New section.
* guix/scripts/build.scm: Export 'derivation-from-expression'.
* guix/scripts/package.scm: Export 'specification->package+output'.
| Ludovic Courtès |
2013-12-21 | Factorize package search between 'guix package' and 'guix build'....* guix/scripts/package.scm (newest-available-packages): Remove.
(find-best-packages-by-name): Move to...
* gnu/packages.scm (find-best-packages-by-name): ... here.
(find-newest-available-packages): Memoize.
* guix/scripts/build.scm (specification->package): New procedure,
formerly called 'find-package' within 'guix-build'.
(guix-build): Adjust accordingly.
| Ludovic Courtès |
2013-12-14 | guix package: allow multiple arguments after -i, -r, and -u....* guix/scripts/package.scm (%options): Adapt option processors to accept and
return a second seed value: 'arg-handler', which handles bare arguments (if
not false). The install, remove, and upgrade option processors return an
arg-handler that repeat the same operation. All other option processors
return #f as the arg-handler. Make the arguments to install and remove
optional. The upgrade option processor deletes (upgrade . #f) from the
alist before adding a new entry.
(guix-package): Procedures passed to 'args-fold*' accept the new seed value
'arg-handler'. The 'operand-proc' uses 'arg-handler' (if not false).
* doc/guix.texi (Invoking guix package): Update docs.
* tests/guix-package.sh: Add test.
| Mark H Weaver |
2013-11-24 | guix package: Honor the current output when upgrading....* guix/scripts/package.scm (specification->package+output): Pass OUTPUT
to 'package-specification->name+version+output'.
| Ludovic Courtès |