Age | Commit message (Expand) | Author |
2013-11-01 | guix package: Show the output name of what's being removed....* guix/scripts/package.scm (show-what-to-remove/install): Show the
output name of packages being removed.
| Ludovic Courtès |
2013-11-01 | guix package: Fix indentation of "will be removed" messages....* guix/scripts/package.scm (show-what-to-remove/install): Remove extra
indentation from the removal sentences.
| Ludovic Courtès |
2013-11-01 | guix package: Allow removal of a specific package output....Fixes <http://bugs.gnu.org/15756>.
* guix/profiles.scm (<manifest-pattern>): New record type.
(remove-manifest-entry): Remove.
(entry-predicate, manifest-matching-entries): New procedures.
(manifest-remove): Accept a list of <manifest-pattern>.
(manifest-installed?): Replace 'name' parameter by 'pattern', a
<manifest-pattern>.
* guix/scripts/package.scm (options->removable): Return a list of
<manifest-pattern>.
(guix-package)[process-action]: Use 'manifest-matching-entries' to
compute the list of packages to remove.
* tests/profiles.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
| Ludovic Courtès |
2013-11-01 | guix package: Separate '--remove' option processing....* guix/scripts/package.scm (options->removable): New procedure.
(guix-package)[process-actions]: Use it. Rename 'remove*' to 'remove'
and 'install*' to 'install'.
| Ludovic Courtès |
2013-11-01 | ui: Factorize package specification parsing....* guix/ui.scm (package-specification->name+version+output): New
procedure.
* guix/scripts/package.scm (specification->package+output): Use it.
* tests/ui.scm ("package-specification->name+version+output"): New test.
| Ludovic Courtès |
2013-11-01 | Add (guix profiles)....* guix/scripts/package.scm (show-what-to-remove/install): New procedure,
moved from...
(guix-package): ... here.
(<manifest>, make-manifest, <manifest-entry>,
profile-manifest, manifest->sexp, sexp->manifest, read-manifest,
write-manifest, remove-manifest-entry, manifest-remove,
manifest-installed?, manifest=?, profile-regexp, generation-numbers,
previous-generation-number, profile-derivation, generation-number,
generation-file-name, generation-time, lower-input): Move to...
* guix/profiles.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
| Ludovic Courtès |
2013-10-30 | guix package: Factorize generation file name computation....* guix/scripts/package.scm (generation-file-name): New procedure.
Change all occurrences of (format #f "~a-~a-link" profile number) to
use it.
| Ludovic Courtès |
2013-10-30 | guix package: Specify inputs for each manifest entry....* guix/scripts/package.scm (<manifest-entry>): Add 'inputs' field.
(manifest=?, lower-input): New procedure.
(profile-derivation)[builder]: Add #:log-port argument to
'union-build'.
[ensure-valid-input]: Remove.
Add each entry's inputs to the input list.
(options->installable): Return just the list of entries.
[package->manifest-entry]: Set 'inputs' field.
[canonicalize-deps]: Rename to...
[deduplicate]: ... this. Remove input fiddling.
(guix-package)[process-actions]: Use 'manifest=?' to compare the new
and old manifests. Pass directly PROF-DRV to 'show-what-to-build'.
Pass #:print-build-trace #f to 'set-build-options'.
| Ludovic Courtès |
2013-10-30 | guix package: Always use the term "profile", not "user environment"....* guix/scripts/package.scm (%user-environment-directory): Rename to...
(%user-profile-directory): ... this. Update users accordingly.
(profile-derivation): Use the term "profile" instead of "user
environment", and use "profile" as the derivation name.
| Ludovic Courtès |
2013-10-30 | guix package: Introduce <manifest> and <manifest-entry> types....* guix/scripts/package.scm (<manifest>, <manifest-entry>): New record
types.
(make-manifest, read-manifest, manifest->sexp, sexp->manifest,
read-manifest, write-manifest, remove-manifest-entry, manifest-remove,
manifest-installed?): New procedures.
(profile-derivation): Take a manifest as the second parameter. Use
'manifest->sexp'. Expect <manifest-entry> objects instead of
"tuples". Adjust callers accordingly.
(search-path-environment-variables): Changes 'packages' parameter to
'entries'. Rename 'package-in-manifest->package' to
'manifest-entry->package'; expect <manifest-entry> objects.
(display-search-paths): Rename 'packages' to 'entries'.
(options->installable): Change 'installed' to 'manifest'. Have
'canonicalize-deps' return name/path tuples instead of raw packages.
Rename 'package->tuple' to 'package->manifest-entry'. Use
<manifest-entry> objects instead of tuples.
(guix-package)[process-actions]: Likewise. Rename 'packages' to
'entries'.
[process-query]: Use 'manifest-entries' instead of
'manifest-packages'.
| Ludovic Courtès |
2013-10-30 | guix package: Better separate option processing....* guix/scripts/package.scm (find-package): Rename to...
(specification->package+output): ... this. Rename 'name' parmameter
to 'spec'. Return a package and output name instead of a tuple.
(options->installable): New procedure
(guix-package)[process-actions]: Use it, and remove corresponding
code.
| Ludovic Courtès |
2013-10-29 | guix package: Declutter the entry point....* guix/scripts/package.scm (newest-available-packages,
find-best-packages-by-name, find-package, upgradeable?): New
procedures, moved from...
(guix-package): ... here.
| Ludovic Courtès |
2013-10-15 | guix package: '--search' matches against package names....* guix/scripts/package.scm (find-packages-by-description): Return
packages whose name matches RX.
| Ludovic Courtès |
2013-09-27 | guix package: '--delete-generations' deletes generations older than specified....* guix/scripts/package.scm (matching-generations): Add
'duration-relation' keyword parameter.
(guix-package)[process-action](delete-generations): Pass
#:duration-relation >.
* tests/guix-package.sh: Add test.
* doc/guix.texi (Invoking guix package): Clarify the meaning of
durations for '--list-durations' and '--delete-durations'.
| Ludovic Courtès |
2013-09-26 | guix package: Add '--delete-generations'....* guix/scripts/package.scm (switch-to-previous-generation): New function.
(roll-back): Use the new function instead of 'switch-link'.
(show-help): Add '--delete-generations'.
(%options): Likewise.
(guix-package)[process-actions]: Add 'current-generation-number',
'display-and-delete', and 'delete-generation'. Add support for
'--delete-generations', and reindent the code.
* tests/guix-package.sh: Test '--delete-generations'.
* doc/guix.texi (Invoking guix-package): Document '--delete-generations'.
| Nikita Karetnikov |
2013-09-26 | guix package: Add 'link-to-empty-profile'....* guix/scripts/package.scm (link-to-empty-profile): New function.
(roll-back): Use it.
| Nikita Karetnikov |
2013-09-26 | guix package: Exit with 0 when there is nothing to list....* guix/scripts/package.scm (guix-package)[process-query]: Exit with 0
when there are no generations containing packages or no profiles.
| Nikita Karetnikov |
2013-09-25 | guix package: Show which generation is the current one....* guix/scripts/package.scm (guix-package)[process-query]: Show that a
generation is the current one if the profile points to it.
* tests/guix-package.sh: Test it.
| Nikita Karetnikov |
2013-09-25 | guix package: Do not list the zeroth generation....* guix/scripts/package.scm (guix-package)[process-query]: Change
'list-generation' to not list the zeroth generation.
* tests/guix-package.sh: Test it.
* doc/guix.texi (Invoking guix package): Document it, and use the
right term when talking about generations.
| Nikita Karetnikov |
2013-09-25 | guix package: Exit with 1 when a generation cannot be listed....* guix/scripts/package.scm (guix-package)[process-query]: Exit with 1
when a generation does not exist or the profile points to the zeroth
generation.
* tests/guix-package.sh: Test the former case.
| Nikita Karetnikov |
2013-09-23 | guix package: Show most recently installed packages last....Suggested by Andreas Enge <andreas@enge.fr>.
* guix/scripts/package.scm (guix-package)[list-generations,
list-installed]: Reverse the result of 'manifest-packages'.
* doc/guix.texi (Invoking guix package): Document the order of packages
for '--list-generations' and '--list-installed'.
| Ludovic Courtès |
2013-09-21 | guix package: Sort the list of generation numbers in '--list-generations'....* guix/scripts/package.scm (generation-numbers): Sort the result.
| Ludovic Courtès |
2013-09-21 | guix package: Internationalize "Generation" string....* guix/scripts/package.scm (guix-package): Internationalize generation
listing.
| Ludovic Courtès |
2013-09-19 | guix package: Add '--list-generations'....* guix/scripts/package.scm: Import (srfi srfi-19).
(generation-time, matching-generations): New functions.
(show-help): Add '--list-generations'.
(%options): Likewise.
(guix-package)[process-query]: Add support for '--list-generations'.
* guix/ui.scm: Import (srfi srfi-19) and (ice-9 regex).
(string->generations, string->duration): New functions.
* tests/guix-package.sh: Test '--list-generations'.
* tests/ui.scm: Import (srfi srfi-19).
Test 'string->generations' and 'string->duration'.
* doc/guix.texi (Invoking guix-package): Document '--list-generations'.
| Nikita Karetnikov |
2013-09-18 | derivations: 'derivation' and related procedures return a single value....* guix/derivations.scm (derivation->output-path,
derivation->output-paths): New procedures.
(derivation-path->output-path): Use 'derivation->output-path'.
(derivation-path->output-paths): Use 'derivation->output-paths'.
(derivation): Accept 'derivation?' objects as inputs. Return a single
value.
(build-derivations): New procedure.
(compiled-modules): Use 'derivation->output-paths'.
(build-expression->derivation)[source-path]: Add case for when the
input matches 'derivation?'.
[prologue]: Accept 'derivation?' objects in INPUTS.
[mod-dir, go-dir]: Use 'derivation->output-path'.
* guix/download.scm (url-fetch): Adjust to the single-value return.
* guix/packages.scm (package-output): Use 'derivation->output-path'.
* guix/scripts/build.scm (guix-build): When the argument is
'derivation-path?', pass it through 'read-derivation'.
Use 'derivation-file-name' to print out the .drv file names, and to
register them. Use 'derivation->output-path' instead of
'derivation-path->output-path'.
* guix/scripts/package.scm (roll-back): Adjust to the single-value
return.
(guix-package): Use 'derivation->output-path'.
* guix/ui.scm (show-what-to-build): Adjust to deal with 'derivation?'
objects instead of .drv file names.
* gnu/system/grub.scm (grub-configuration-file): Use
'derivation->output-path' instead of 'derivation-path->output-path'.
* gnu/system/vm.scm (qemu-image, system-qemu-image): Likewise.
* tests/builders.scm, tests/derivations.scm, tests/packages.scm,
tests/store.scm, tests/union.scm: Adjust to the new calling
convention.
* doc/guix.texi (Defining Packages, The Store, Derivations): Adjust
accordingly.
| Ludovic Courtès |
2013-09-13 | guix package: Rename generation-related procedures....* guix/scripts/package.scm (profile-numbers): Rename to 'generation-numbers'.
(previous-profile-number): Rename to 'previous-generation-number'.
(profile-number): Rename to 'generation-number'.
(roll-back): Rename 'previous-profile' to 'previous-generation'.
| Nikita Karetnikov |
2013-07-15 | guix package: Allow separate install of several outputs of the same package....* guix/scripts/package.scm (guix-package)[process-actions](same-package?):
New procedure. Use it instead of `alist-delete' when filtering out
duplicate packages from the profile.
| Ludovic Courtès |
2013-07-12 | guix package: Fix handling of `-e'....This fixes a bug whereby a command like
guix package -e '(@@ (gnu packages base) gnu-make-boot0)'
would only succeed when the outputs of that package are available, and
otherwise fail with "/nix/store/... is not valid".
* guix/scripts/package.scm (guix-package)[process-action](package->tuple):
Leave P as is in the result. Move `package->tuple' call from INSTALL*
to INSTALL.
| Ludovic Courtès |
2013-07-12 | guix package: Reuse FTP connections for subsequent `latest-release' calls....* guix/gnu-maintenance.scm (latest-release): Add `ftp-close' and
`ftp-open' keyword parameters.
* guix/scripts/package.scm (ftp-open*): New variable.
(check-package-freshness): Call `latest-release' with `ftp-open*' and
a no-op procedure.
| Ludovic Courtès |
2013-06-20 | package: Fix i18n of the number of packages message....* guix/scripts/package.scm (guix-package)[process-actions]: Use `N_' for
i18n of the number of packages message.
| Ludovic Courtès |
2013-06-19 | package: Display the number of installed packages upon completion....* guix/scripts/package.scm (guix-package)[process-actions]: Display the
number of packages in the profile upon completion.
| Ludovic Courtès |
2013-05-29 | build, package: Add `--fallback' option....* guix/scripts/build.scm (%options, show-help): Add `--fallback'.
(guix-build): Call `set-build-options' with #:fallback?.
* guix/scripts/package.scm (%options, show-help): Add `--fallback'.
(guix-package): Call `set-build-options' with #:fallback?.
* doc/guix.texi (Invoking guix package, Invoking guix build): Document
`--fallback'.
| Ludovic Courtès |
2013-05-24 | package: Fix default profile ownership check when it's just been created....* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
whether S is true before checking its owner. Fixes the case where we
built %PROFILE-DIRECTORY just above.
| Ludovic Courtès |
2013-05-20 | Add `--max-silent-time' to `guix build' and `guix package'....* guix/scripts/build.scm (%default-options): Add default
`max-silent-time' value.
(show-help, %options): Add `--max-silent-time'.
(guix-build): Pass `max-silent-time' to `set-build-options'.
* guix/scripts/package.scm (%default-options): Add default
`max-silent-time' value.
(show-help, %options): Add `--max-silent-time'.
(guix-package): Pass `max-silent-time' to `set-build-options'.
* guix/ui.scm (string->number*): New procedure.
* tests/derivations.scm ("build-expression->derivation and
max-silent-time"): New test.
* doc/guix.texi (Invoking guix package, Invoking guix build): Document
`--max-silent-time'.
| Ludovic Courtès |
2013-05-16 | package: Make sure the profile directory is owned by the user....* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
the owner of %PROFILE-DIRECTORY. Report an error when the owner is
not the current user. Add `rtfm' procedure.
* doc/guix.texi (Invoking guix package): Mention the ownership test.
| Ludovic Courtès |
2013-05-14 | package: Always clear the SIGINT handler....* guix/scripts/package.scm (call-with-sigint-handler): Wrap THUNK in
`dynamic-wind' so that the SIGINT handler is always cleared.
| Ludovic Courtès |
2013-05-14 | ftp-client: Let callers handle `ftp-open' exceptions....* guix/ftp-client.scm (ftp-open): Let exceptions through.
* guix/scripts/package.scm (waiting): Wrap EXP in a `dynamic-wind', so
the line is always cleared.
| Ludovic Courtès |
2013-05-10 | package: Store the output path of packages installed with `-e'....* guix/scripts/package.scm (guix-package)[process-actions](package->tuple):
Put the output path in the tuple, not the derivation path.
* tests/guix-package.sh: Add test.
| Ludovic Courtès |
2013-05-10 | package: Make sure the dependencies get built along with the manifest....Before this, something like "guix package -i glibc" could fail because
glibc lists linux-libre-headers as a propagated input (which would be
added as a dependency in the manifest) but the linux-libre-headers
output could be unavailable, leading to an error like this:
path `/nix/store/4v2bk8sx5cm166gks3fi3q7d9zchibnk-linux-libre-headers-3.3.8' is not valid
This patch adds such dependencies as inputs of the profile derivation.
* guix/scripts/package.scm (profile-derivation): Accept package objects
in the `deps' field of an element of PACKAGES. Convert them to their
output path for BUILDER, and add them to the inputs of the
`build-expression->derivation' call.
(input->name+path): When INPUT doesn't contain a package object,
return it as is.
(guix-package)[process-actions](canonicalize-deps): Expect DEPS to
contain package objects, and leave them as is.
| Ludovic Courtès |
2013-05-10 | package: Use ~/.guix-profile as the default for --search-paths....* guix/scripts/package.scm (search-path-environment-variables): Prefer
%USER-ENVIRONMENT-DIRECTORY when it points to PROFILE.
(display-search-paths): Use 3 spaces for indentation.
| Ludovic Courtès |
2013-05-08 | package: Display the output of packages to be installed/removed....* guix/scripts/package.scm (guix-package)[show-what-to-remove/install]:
Display the output name.
| Ludovic Courtès |
2013-05-08 | package: Preserve the installed package output when upgrading....* guix/scripts/package.scm (guix-package)[find-package]: Add optional
parameter `output'. Use it.
[process-actions]: When computing UPGRADE, pass OUTPUT to
`find-package'.
| Ludovic Courtès |
2013-05-07 | package: Fix spacing in user messages....* guix/scripts/package.scm (guix-package)[process-actions]: Fix spacing.
| Ludovic Courtès |
2013-04-30 | Merge branch 'core-updates' | Ludovic Courtès |
2013-04-28 | guix package: Add `--search-paths' & co....* guix/scripts/package.scm (search-path-environment-variables,
display-search-paths): New procedures.
(show-help, %options): Add `--search-paths'.
(guix-package)[process-actions]: Call `display-search-paths' once the
profile is ready.
[process-query]: Honor `search-paths'.
| Ludovic Courtès |
2013-04-27 | ui: Add `args-fold*' and use it....* guix/ui.scm (args-fold*): New procedure.
* guix/scripts/build.scm, guix/scripts/download.scm,
guix/scripts/gc.scm, guix/scripts/hash.scm, guix/scripts/import.scm,
guix/scripts/package.scm, guix/scripts/pull.scm,
guix/scripts/refresh.scm: Use `args-fold*' instead of `args-fold'.
| Ludovic Courtès |
2013-04-21 | ui: Add a 'define-diagnostic' macro....* guix/ui.scm (define-diagnostic): New macro, which is based on the
previous version of 'warning'.
(warning, leave): Redefine using 'define-diagnostic'.
(report-error): New macro.
(install-locale): Use 'warning' instead of 'format'.
(call-with-error-handling): Adjust 'leave'.
* gnu/packages.scm (package-files): Use 'warning' instead of 'format'.
* guix/gnu-maintenance.scm (http-fetch): Use 'warning' and 'leave'.
* guix/scripts/build.scm (derivations-from-package-expressions, guix-build):
Adjust 'leave'.
* guix/scripts/download.scm (guix-download): Adjust 'leave'.
* guix/scripts/gc.scm (size->number, %options): Adjust 'leave'.
* guix/scripts/package.scm (roll-back, guix-package): Adjust 'leave'.
* po/POTFILES.in: Add 'guix/gnu-maintenance.scm'.
| Nikita Karetnikov |
2013-04-17 | guix package: Allow the search of the latest release to be interrupted....* guix/scripts/package.scm (%sigint-prompt): New variable.
(call-with-sigint-handler): New procedure.
(waiting): Use it.
| Ludovic Courtès |
2013-04-17 | scripts: Report what will be substituted....* guix/derivations.scm (derivation-input-output-paths): New procedure.
(derivation-prerequisites-to-build): New `use-substitutes?' keyword
argument. Change two return the list of substitutable paths as a
second argument.
* guix/ui.scm (show-what-to-build): Turn `dry-run?' into a keyword
argument. New `use-substitutes?' keyword argument. Use `fold2' and
adjust to use both return values of
`derivation-prerequisites-to-build'. Display what will/would be
downloaded.
* guix/scripts/build.scm (guix-build): Adjust accordingly.
* guix/scripts/package.scm (guix-package): Likewise.
* tests/derivations.scm ("derivation-prerequisites-to-build and
substitutes"): New test.
| Ludovic Courtès |
2013-04-16 | package: allow users to upgrade the whole system by not providing a regexp....* guix/scripts/packages.scm (guix-package) [process-actions]: When upgrading,
use "" when REGEXP is #f.
* doc/guix.texi: update the documentation accordingly.
| Cyril Roelandt |