summaryrefslogtreecommitdiff
path: root/gnu/packages.scm
Commit message (Collapse)AuthorAgeFilesLines
* Move 'specification->package+output' to (gnu packages).Ludovic Courtès2015-06-181-1/+35
| | | | | | * guix/scripts/package.scm (specification->package+output): Move to... * gnu/packages.scm (specification->package+output): ... here * guix/scripts/archive.scm (guix): Adjust accordingly.
* packages: Allow package lookups with version prefixes.Ludovic Courtès2015-04-181-4/+8
| | | | | | | * gnu/packages.scm (find-packages-by-name): Sort MATCHING according to 'version>?'. Use 'string-prefix?' instead of 'string=?' to compare against VERSION. * doc/guix.texi (Invoking guix package): Add example and explanation.
* Merge branch 'master' into core-updates宋文武2015-04-081-1/+1
|\
| * packages: Fix typo.Alex Kost2015-04-031-1/+1
| | | | | | | | * gnu/packages.scm: Fix the name of an exported variable (%patch-path).
* | gnu: Emit a warning when a package module cannot be loaded.Ludovic Courtès2015-04-071-3/+9
|/ | | | | | * guix/ui.scm (warn-about-load-error): New procedure. * gnu/packages.scm (package-modules): Wrap 'resolve-interface' call in 'catch #t', and call 'warn-about-load-error' in handler.
* gnu: Raise an error when a bootstrap binary is not found.Ludovic Courtès2015-01-261-3/+10
| | | | | * gnu/packages.scm (search-bootstrap-binary): Raise an error when FILE-NAME is not found.
* gnu: 'search-patch' raises an error when a patch is not found.Ludovic Courtès2015-01-201-2/+7
| | | | | | | * gnu/packages.scm (search-patch): Raise an error condition when 'search-path' returns #f. * tests/packages.scm ("patch not found yields a run-time error"): New test.
* gnu: Search for patches under $GUIX_PACKAGE_PATH.Ludovic Courtès2015-01-031-6/+11
| | | | | | | | | | | Fixes <http://bugs.gnu.org/19364>. Reported by Tomáš Čech <sleep_walker@suse.cz> and Mark H Weaver <mhw@netris.org>. * gnu/packages.scm (%patch-path): Move after definition of %package-module-path'. Append "/gnu/packages/patches" only to %DISTRO-ROOT-DIRECTORY. * tests/guix-package.sh: Add 'emacs-foo-bar-patched' test.
* packages: Sort Scheme file lists used by 'fold-packages'.Ludovic Courtès2014-12-211-18/+23
| | | | * gnu/packages.scm (scheme-files): Call 'sort' on result.
* gnu-maintenance: Introduce <gnu-release> data type.Ludovic Courtès2014-11-111-6/+9
| | | | | | | | | | | | * guix/gnu-maintenance.scm (<gnu-release>): New record type. (release-file): Rename to... (release-file?): ... this. Return a Boolean. (tarball->version, coalesce-releases): New procedures. (releases): Call 'coalesce-releases' on RESULT. Return <gnu-release> objects instead of pairs. (latest-release): Likewise. (package-update-path): Adjust accordingly. * gnu/packages.scm (check-package-freshness): Adjust accordingly.
* packages: Optimize 'find-packages-by-name' to avoid disk accesses.Ludovic Courtès2014-09-291-15/+13
| | | | | | | | On a profile with 182 entries, "guix package --search-paths" goes from 4.5 seconds down to 0.4 second. * gnu/packages.scm (find-packages-by-name): Make a name -> package vhash in a promise; access it with 'vhash-fold*'.
* Introduce the 'GUIX_PACKAGE_PATH' environment variable.Ludovic Courtès2014-09-241-1/+12
| | | | | | | * gnu/packages.scm (%package-module-path): Honor $GUIX_PACKAGE_PATH. * test-env.in: Unset 'GUIX_PACKAGE_PATH'. * tests/guix-package.sh: Test it. * doc/guix.texi (Package Modules): Document it.
* packages: Add '%package-module-search-path'.Ludovic Courtès2014-09-241-8/+27
| | | | | | * gnu/packages.scm (%package-module-path): New variable. (all-package-modules): New procedure. (fold-packages): Use it instead of 'package-modules'.
* packages: Generalize package module search.Ludovic Courtès2014-09-241-22/+27
| | | | | | | | | | | * gnu/packages.scm (%distro-root-directory): New variable. (%distro-module-directory): Remove. (package-files): Rename to... (scheme-files): ... this. Return absolute file names, not stripped. (file-name->module-name): New procedure. (package-modules): Add 'directory' and 'sub-directory' parameters. Rewrite accordingly. (fold-packages): Adjust 'package-modules' call accordingly.
* Move specification->package to gnu/packages.scm.Cyril Roelandt2014-09-031-1/+25
| | | | | * guix/scripts/build.scm (specification->package): Move from here... * gnu/packages.scm: ... to here.
* Move 'check-package-freshness' from 'guix package' to 'packages'.Alex Kost2014-08-201-1/+83
| | | | | | | | * 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>
* packages: Remove dead code.Alex Kost2014-08-191-3/+1
| | | | | | | * gnu/packages.scm (_): Remove. Remove an extra space. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix: refresh: Add --list-dependent option.Eric Bavier2014-07-201-1/+65
| | | | | | | | | * guix/packages.scm (package-direct-inputs): New procedure. * gnu/packages.scm (vhash-refq, package-direct-dependents) (package-transitive-dependents, package-covering-dependents): New procedures. * guix/scripts/refresh.scm (%options, show-help, guix-refresh): Add --list-dependent option. * doc/guix.texi (Invoking guix refresh): Document '--list-dependent' option.
* Factorize package search between 'guix package' and 'guix build'.Ludovic Courtès2013-12-211-15/+28
| | | | | | | | | | * 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.
* ui: Add a 'define-diagnostic' macro.Nikita Karetnikov2013-04-211-3/+3
| | | | | | | | | | | | | | | | | * 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'.
* utils: Add `fold2'.Ludovic Courtès2013-04-141-8/+0
| | | | | | | * gnu/packages.scm (fold2): Remove. * guix/utils.scm (fold2): New procedure. Generalization of the above to one and two lists. * tests/utils.scm ("fold2, 1 list", "fold2, 2 lists"): New tests.
* store: Really disable file name canonicalization for derivation inputs.Ludovic Courtès2013-03-221-5/+3
| | | | | | | * guix/store.scm (write-contents)[call-with-binary-input-file]: Set %FILE-PORT-NAME-CANONICALIZATION to #f. * gnu/packages.scm (search-patch, search-bootstrap-binary): Leave %FILE-PORT-NAME-CANONICALIZATION unchanged. This reverts 9776ebb.
* gnu: Disable file name canonicalization in `search-*'.Ludovic Courtès2013-03-211-3/+5
| | | | | | * gnu/packages.scm (search-patch, search-bootstrap-binary): Make sure no canonicalization occurs. This reduces the number of 'stat' system calls.
* Build newest versions unless specified, and implement upgrades.Mark H Weaver2013-02-131-1/+25
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* Inhibit duplicates in fold-packages.Mark H Weaver2013-02-131-12/+28
| | | | | * gnu/packages.scm (fold2): New procedure. (fold-packages): Rework to suppress duplicates.
* distro: Rename (distro) to (gnu packages).Ludovic Courtès2013-01-181-0/+139
* distro.scm: Rename to... * gnu/packages.scm: ... this. Update all users accordingly. * Makefile.am (MODULES): Adjust accordingly. * po/POTFILES.in: Likewise.