~ruther/guix-local

ref: a24b75d8e1753da629ecf945f4022eee4c340aed guix-local/guix/scripts/package.scm -rw-r--r-- 28.3 KiB
e49951eb — Mark H Weaver 13 years ago
Replace individual scripts with master 'guix' script.

* scripts/guix.in: New script.

* Makefile.am (bin_SCRIPTS): Add 'scripts/guix'.  Remove 'guix-build',
  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

  (MODULES): Add 'guix/scripts/build.scm', 'guix/scripts/download.scm',
  'guix/scripts/import.scm', 'guix/scripts/package.scm', and
  'guix/scripts/gc.scm'.

* configure.ac (AC_CONFIG_FILES): Add 'scripts/guix'.  Remove 'guix-build',
  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
  guix-package.in: Remove shell script boilerplate.  Move to guix-COMMAND.in
  to guix/scripts/COMMAND.scm.  Rename module from (guix-COMMAND) to
  (guix scripts COMMAND).  Change "guix-COMMAND" to "guix COMMAND" in
  usage help string.

* pre-inst-env.in: Add "@abs_top_builddir@/scripts" to the front of $PATH.
  Export $GUIX_UNINSTALLED.

* tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh,
  tests/guix-gc.sh, tests/guix-package.sh: Use "guix COMMAND" instead of
  "guix-COMMAND".

* doc/guix.texi: Replace all occurrences of "guix-COMMAND" with
  "guix COMMAND".

* po/POTFILES.in: Update.
dc5669cd — Mark H Weaver 13 years ago
Build newest versions unless specified, and implement upgrades.

* gnu/packages.scm (find-newest-available-packages):
  New exported procedure.

* guix-build.in (newest-available-packages, find-best-packages-by-name):
  New procedures.
  (find-package): Use find-best-packages-by-name, to guarantee that
  if a version number is not specified, only the newest versions will
  be considered.

* guix-package.in (%options): Add --upgrade/-u option.
  (newest-available-packages, find-best-packages-by-name, upgradeable?):
  New procedures.
  (find-package): Use find-best-packages-by-name, to guarantee that
  if a version number is not specified, only the newest versions will
  be considered.
  (process-actions): Implement upgrade option.

* doc/guix.texi (Invoking guix-package): In the description of --install,
  mention that if no version number is specified, the newest available
  version will be selected.
4dede022 — Ludovic Courtès 13 years ago
guix-package: Install propagated inputs.

* guix-package.in (profile-manifest): Return "version 1" manifests.
  (manifest-packages): Likewise.  When MANIFEST is "version 0", add
  '() as the list of "propagated inputs" of each package.
  (profile-derivation): Produce "version 1" manifests.  Pass each
  PACKAGES item's propagated inputs as an input for BUILDER.
  (input->name+path): New procedure.
  (guix-package)[find-package]: Add the transitive propagated inputs of
  each selected package as the last item of the tuple.
  [canonicalize-deps]: New procedure.
  [process-actions]: Adjust to support propagated inputs as the last item.
  [process-query]: Likewise.
cb09fb24 — Ludovic Courtès 13 years ago
guix-package: Make `--search' queries case-insensitive.

* guix-package.in (guix-package)[process-query]: Use `regexp/icase' for
  the `search' regexp.
299112d3 — Ludovic Courtès 13 years ago
guix-package: Report `--search' matches in recutils format.

* guix/ui.scm (fill-paragraph, string->recutils, package->recutils): New
  procedures.
* guix-package.in (guix-package)[process-query]: Use `package->recutils'
  to display package meta-data.
* tests/guix-package.sh: Adjust test.
* tests/ui.scm: New file.
* Makefile.am (TESTS): Add it.
* doc/guix.texi (Invoking guix-package): Adjust `--search'
  documentation, and give an example.
aa92cf98 — Ludovic Courtès 13 years ago
guix-package: Gracefully report non-existing outputs.

* guix-package.in (guix-package)[find-package](ensure-output): New
  procedure. Use it to validate SUB-DRV.
0f5378eb — Ludovic Courtès 13 years ago
guix-package: Reduce start-up time for queries.

* guix-package.in (guix-package): Call `open-connection' and
  `package-derivation' only after `process-query' has returned.
473b03b3 — Ludovic Courtès 13 years ago
Gracefully handle failure to install the current locale.

* guix/ui.scm (install-locale): New procedure.
* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
  guix-package.in: Use it instead of (setlocale LC_ALL "").
acc08466 — Nikita Karetnikov 13 years ago
guix-package: Add '--search'.

* guix-package.in (find-packages-by-description): New procedure.
  (show-help, %options): Add '--search'.
  (guix-package)[process-query]: Add support for '--search'.
* doc/guix.texi (Invoking guix-package): Document it.
* tests/guix-package.sh: Add tests.
82fe08ed — Ludovic Courtès 13 years ago
guix-package: Always use the next number for new generations.

Suggested by Andreas Enge <andreas@enge.fr> at
<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00325.html>.

* guix-package.in (latest-profile-number): Remove.
  (switch-symlinks): New procedure.
  (roll-back)[switch-link]: Use it.
  (guix-package)[process-actions]: Always choose NUMBER + 1 for the new
  profile.  Use `switch-symlinks' instead of `symlink'.  Remove code to
  delete PROFILE when it exists since `switch-symlinks' has the same
  effect.
* tests/guix-package.sh: Adjust existing `--roll-back' tests.
* doc/guix.texi (Invoking guix-package): Document this `--roll-back'
  behavior.
d9307267 — Ludovic Courtès 13 years ago
guix-package: When rolling back to nothingness, point to the empty profile.

Suggested by Andreas Enge <andreas@enge.fr> at
<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00316.html>.

* guix-package.in (roll-back): Check whether PROFILE is valid using
  `file-exists?'.  When NUMBER is zero, just emit a notice.  When
  PREVIOUS-NUMBER is zero and PREVIOUS-PROFILE does not exist, build the
  empty profile, and link to it.
* tests/guix-package.sh: Add tests.
* doc/guix.texi (Invoking guix-package): Document the new behavior.
3b9c0020 — Ludovic Courtès 13 years ago
guix-package: Error out when passed a non-option argument.

* guix-package.in (guix-package)[parse-options]: Call `leave' when
  passed a non-option argument.
  Reported by Andreas Enge <andreas@enge.fr>.
* tests/guix-package.sh: Add test.
67668155 — Ludovic Courtès 13 years ago
guix-package: Fix `--roll-back' when `--profile' is not passed.

* guix-package.in (roll-back): Fix file name of PREVIOUS-PROFILE, which
  could end up containing the dirname twice.
  Reported by Nikita and Andreas.
* tests/guix-package.sh: Add test.
59a43334 — Ludovic Courtès 13 years ago
distro: Rename (distro) to (gnu packages).

* distro.scm: Rename to...
* gnu/packages.scm: ... this.  Update all users accordingly.
* Makefile.am (MODULES): Adjust accordingly.
* po/POTFILES.in: Likewise.
1ffa7090 — Ludovic Courtès 13 years ago
distro: Change the module name space to (gnu ...).

* distro: Rename to...
* gnu: ... this.  Update module names accordingly.
* Makefile.am: Adjust accordingly.
* po/POTFILES.in: Likewise.
* distro.scm: Search for files under /gnu/packages instead of
  /distro/packages.
* gnu/packages/base.scm (ld-wrapper-boot3): Likewise.
9241172c — Ludovic Courtès 13 years ago
guix-package: Allow `--roll-back' to skip missing generations.

* guix-package.in (profile-numbers): New procedure.
  (latest-profile-number): Use it.
  (previous-profile-number): New procedure.
  (roll-back): Use it lieu of `1-'.  Check whether PREVIOUS-NUMBER is
  zero, and raise an error when it is.
* tests/guix-package.sh: Test whether we can roll back over a "hole".
24e262f0 — Ludovic Courtès 13 years ago
guix-package: Add `--roll-back'.

Based on a patch by Nikita Karetnikov <nikita@karetnikov.org>.

* guix-package.in (profile-regexp): New procedure.
  (latest-profile-number): Remove `%profile-rx', and use
  `profile-regexp' instead.
  (profile-number, roll-back): New procedure.
  (show-help): Add `--roll-back'.
  (%options): Likewise.
  (guix-package)[process-actions]: First check whether `roll-back?' is
  among OPTS, and call `roll-back' if it is, followed by a recursive
  call to `process-actions'.  Emit the "nothing to be done" message only
  when INSTALL or REMOVE is non-empty.
* tests/guix-package.sh (readlink_base): New function.
  Add tests for `--roll-back'.
* doc/guix.texi (Invoking guix-package): Document `--roll-back'.
c4d64534 — Ludovic Courtès 13 years ago
guix-package: Connect to the daemon only after arguments have been processed.

* guix-package.in (%store): Change to a SRFI-39 parameter.  Update all users.
  (guix-package): Parametrize %STORE to an open connection after
  `parse-options' has been called.
0ec1af59 — Ludovic Courtès 13 years ago
guix-package: Create or diagnose missing profile directory.

Reported by Andreas Enge.

* guix-package.in (%profile-directory): Honor $NIX_STATE_DIR.
  (guix-package)[ensure-default-profile]: Use it.
  [process-actions]: Call it when the `profile' option is
  %CURRENT-PROFILE.
* tests/guix-package.sh: Add installation test with $HOME set, using the
  default profile.
ae9e3288 — Ludovic Courtès 13 years ago
guix-package: Fix check for ~/.guix-profile existence.

* guix-package.in (guix-package): When testing whether
  %USER-ENVIRONMENT-DIRECTORY exists, use `lstat' instead of
  `file-exists?'.  Reported by Andreas Enge.
Next