Commit Graph

4279 Commits (186de634a79c94d4524f477675c67ae533caeb55)

Author SHA1 Message Date
Ludovic Courtès 9ffc1c00e5 packages: Optimize 'find-packages-by-name' to avoid disk accesses.
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*'.
2014-09-29 22:03:46 +02:00
Ludovic Courtès 34942e9597 nls: Recognize 'N_' as equivalent to 'ngettext'.
This fixes i18n of plural messages.

* po/guix/Makevars (XGETTEXT_OPTIONS): Change 'N_' to 'N_:1,2'.
2014-09-29 22:03:46 +02:00
Mark H Weaver 2d5d63d718 gnu: bash: Update to 4.3.27 and fix out-of-bounds memory accesses.
Based on a patch by Ludovic Courtès <ludo@gnu.org>.

* gnu/packages/bash.scm (%patch-series-4.3): Add two patches.
  (bash)[source]: Add parser-oob patch.  Add 'snippet'.
  [native-inputs]: New field.
* gnu/packages/commencement.scm (bison-boot1): New variable.
  (static-bash-for-glibc): Add 'native-inputs'.

Co-Authored-By: Ludovic Courtès <ludo@gnu.org>
2014-09-29 14:14:54 -04:00
Eric Bavier b5f4bb855d gnu: Add synergy.
* gnu/packages/synergy.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-09-29 09:40:31 -05:00
Eric Bavier 335bc6833f gnu: duplicity: Fix and disable some tests.
* gnu/packages/patches/duplicity-piped-password.patch: New patch.
* gnu/packages/patches/duplicity-test_selection-tmp.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add them.
* gnu/packages/backup.scm (duplicity)[source]: Add patches field.
  [inputs]: Add util-linux and tzdata.
  [arguments]: rename patch-tests phase to check-setup.  Set HOME and TZDIR
  for tests.
2014-09-28 18:24:25 -05:00
Mathieu Lirzin 182d6311c2 gnu: Add dionysus.
* gnu/packages/maths.scm (dionysus): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-09-29 00:16:28 +02:00
David Thompson acf735f2be gnu: Add ruby-i18n.
* gnu/packages/ruby.scm (ruby-i18n): New variable.
2014-09-28 15:09:24 -04:00
David Thompson c08f9818f9 build: Add ruby build system.
* guix/build-system/ruby.scm: New file.
* guix/build/ruby-build-system: New file.
* Makefile.am (MODULES): Add new files.
* doc/guix.texi (Build Systems): Document ruby-build-system.
2014-09-28 15:09:24 -04:00
Pjotr Prins 6ef8c59a7a gnu: Add ruby.
Co-authored-by: David Thompson <davet@gnu.org>

* gnu/packages/ruby.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* guix/licenses.scm (ruby): New variable.
2014-09-28 15:09:24 -04:00
Alex Kost 3472bb20c5 emacs: Use package/output type variables where needed.
* emacs/guix-list.el (guix-package-list-type, guix-output-list-describe-type):
  Move to...
* emacs/guix-base.el: ... here.  Rename 'guix-output-list-describe-type' to
  'guix-package-info-type'.
* emacs/guix-info.el (guix-generation-info-insert-number): Use
  'guix-package-list-type'.
* emacs/guix.el (guix-get-show-packages): Use 'guix-package-info-type'.
2014-09-28 22:46:15 +04:00
Alex Kost 2e269860c4 emacs: Support font-locking.
Avoid breaking highlighting after adding new font-lock keywords.

* emacs/guix-base.el (guix-insert-package-strings): Use 'propertize' instead
  of 'guix-get-string'.
* emacs/guix-info.el (guix, guix-action, guix-file, guix-url,
  guix-package-location, guix-package-name): New button types.
  (guix-info-insert-action-button, guix-info-insert-file-path,
  guix-info-insert-url, guix-package-info-insert-location,
  guix-package-info-insert-full-names,
  guix-package-info-insert-non-unique-text): Adjust for 'guix-insert-button'
  and button types.
  (guix-package-info-name-button): New face.
  (guix-package-info-define-insert-inputs): Use it.  Add new button types.
  (guix-package-info-insert-full-name): Remove.
* emacs/guix-utils.el (guix-get-string): Replace 'face' with 'font-lock-face'.
  (guix-insert-button): Adjust for using button types.
2014-09-28 22:46:15 +04:00
Alex Kost ce8b295352 emacs: Fix errors in receiving information.
* emacs/guix-main.scm (package-pattern-transformer,
  output-pattern-transformer): Add fallback 'match' clauses.
  (find-generations): Fix getting generations by IDs.
2014-09-28 22:46:14 +04:00
Ian Denhardt 79f5dd5915 doc: Use 'define-public' in example package recipe.
* doc/guix.texi (Defining Packages): Use 'define-public' instead of
  'define'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-09-28 12:01:45 +02:00
Manolis Ragkousis 29a61bd0a5 gnu: hurd-headers: Use --build instead of --host.
* gnu/packages/hurd.scm (hurd-headers): Replace '--host' with
  '--build'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-09-28 11:53:20 +02:00
Andreas Enge 47e225cde8 gnu: qt-4: Explicitly link with icu.
* gnu/packages/qt.scm (qt-4): Explicitly link with libicui18n, which is
    dlopened by QtCore.so.
2014-09-28 09:35:32 +02:00
Ludovic Courtès fcb0109d09 gnu: Add Nix.
This commit is dedicated to the Nix project, without which we wouldn't
be hacking all this today.  :-)

* gnu/packages/package-management.scm (nix): New variable.
2014-09-28 01:04:18 +02:00
Ludovic Courtès d22d72fc50 gnu: Add perl-www-curl.
* gnu/packages/web.scm (perl-www-curl): New variable.
2014-09-28 00:52:05 +02:00
Ludovic Courtès 274da61d51 gnu: Add perl-dbi and perl-dbd-sqlite.
* gnu/packages/databases.scm (perl-dbi, perl-dbd-sqlite): New variable.
2014-09-28 00:41:39 +02:00
Ludovic Courtès a0efb39ad4 gnu: mit-scheme: Rename top-level helper.
Suggested by Mark H. Weaver.

* gnu/packages/scheme.scm (source-directory): Rename to...
  (mit-scheme-source-directory): ... this.
2014-09-27 23:59:30 +02:00
Andreas Enge 319e2d1736 gnu: Add graphite2.
* gnu/packages/fontutils.scm (graphite2): New variable.
2014-09-27 23:48:30 +02:00
Andreas Enge 68dddcad62 gnu: mit-scheme: Delete more dangling symlinks for non-x86 systems.
* gnu/packages/scheme.scm (mit-scheme): Delete more dangling symlinks for
    non-x86 systems.
2014-09-27 20:04:43 +02:00
Andreas Enge ecb26c101e gnu: mit-scheme: Fix source file name for mips64el.
* gnu/packages/scheme.scm (mit-scheme): Fix source file name for
     architectures other than x86_64 and i686.
2014-09-27 19:36:57 +02:00
Andreas Enge dc47939172 gnu: phonon: Update to 4.8.0.
* gnu/packages/kde.scm (phonon): Update to 4.8.0.
2014-09-27 17:50:14 +02:00
Ludovic Courtès a9638ac413 build: Don't install elisp files when Emacs is unavailable.
* emacs.am (dist_lisp_DATA, nodist_lisp_DATA): Wrap in 'if HAVE_EMACS'.
2014-09-27 17:30:10 +02:00
Ludovic Courtès 596fcbf768 build: Don't generate Emacs autoloads when Emacs is unavailable.
Reported by Andreas Enge.

* configure.ac: Define 'HAVE_EMACS' Automake conditional.
* emacs.am ($(AUTOLOADS)): Wrap in 'if HAVE_EMACS'.
2014-09-27 17:27:21 +02:00
Andreas Enge 6c4a2884b6 gnu: mit-scheme: Update to 9.2.
* gnu/packages/scheme.scm (mit-scheme): Update to 9.2.
2014-09-27 16:51:44 +02:00
Andreas Enge 17b9d16fa2 gnu: libxscrnsaver: Propagate input scrnsaverproto.
* gnu/packages/xorg.scm (libxscrnsaver): Propagate input scrnsaverproto,
    since scrnsaver.h from libxscrnsaver includes saver.h from scrnsaverproto.
2014-09-27 15:49:06 +02:00
Andreas Enge 38877bf346 gnu: help2man: Update to 1.46.3.
* gnu/packages/man.scm (help2man): Update to 1.46.3.
2014-09-27 12:31:37 +02:00
Andreas Enge 237c048609 gnu: gcl: Update to 2.6.11.
* gnu/packages/lisp.scm (gcl): Update to 2.6.11.
2014-09-27 12:13:53 +02:00
Andreas Enge 483ca9d88d gnu: parallel: Update to 20140922.
* gnu/packages/parallel.scm (parallel): Update to 20140922.
2014-09-27 12:08:21 +02:00
Andreas Enge 5520c94c94 gnu: libidn: Update to 1.29.
* gnu/packages/libidn.scm (libidn): Update to 1.29.
2014-09-27 11:30:33 +02:00
Andreas Enge 53f896f23f gnu: rcs: Update to 5.9.3.
* gnu/packages/version-control.scm (rcs): Update to 5.9.3.
2014-09-27 11:27:47 +02:00
Federico Beffa f36afe4d05 gnu: maxima: Install .el files in the right place, and help find Gnuplot.
* gnu/packages/maths.scm (maxima): Remove Tcl from 'inputs'.  Add
  'post-install' phase.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-09-27 11:22:58 +02:00
Andreas Enge dd0b0e681b gnu: ucommon: Update to 6.1.11.
* gnu/packages/telephony.scm (ucommon): Update to 6.1.11.
2014-09-27 10:25:22 +02:00
Andreas Enge 05681d7388 gnu: libassuan: Update to 2.1.2.
* gnu/packages/gnupg.scm (libassuan): Update to 2.1.2.
2014-09-27 09:17:56 +02:00
Ludovic Courtès b5c5d763ca Merge branch 'bash-cve-2014-6271' 2014-09-26 09:49:09 +02:00
Alex Kost 223ecaba7f gnu: Add scrot.
* gnu/packages/scrot.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-09-26 09:23:11 +04:00
Alex Kost f7d28082bb gnu: Add giblib.
* gnu/packages/image.scm (giblib): New variable.
2014-09-26 09:23:10 +04:00
Alex Kost 76d88cfa57 gnu: Add imlib2.
* gnu/packages/image.scm (imlib2): New variable.
2014-09-26 09:23:10 +04:00
David Thompson fddb640971 gnu: libtoxcore: Update to 1.0.0.
* gnu/packages/crypto.scm (libsodium): Update version and change home-page.
2014-09-24 17:17:24 -04:00
Ludovic Courtès c1fe82d586 gnu: bash: Apply patch series up to 25 [CVE-2014-6271].
* gnu/packages/bash.scm (patch-url, bash-patch): New procedures.
  (patch-series): New macro.
  (%patch-series-4.3): New variable.
  (download-patches): New procedure.
  (bash): Change version to include the patch level; pass
  %PATCH-SERIES-4.3 in the origin.
2014-09-24 19:19:03 +02:00
Ludovic Courtès ce517b20d4 gnu: bootstrap: Correctly handle patches that are origins.
* gnu/packages/bootstrap.scm (bootstrap-origin): Rewrite the patches of
  SOURCES that are also origins.
2014-09-24 19:08:54 +02:00
Ludovic Courtès 27afb11a22 gnupg: Correctly parse current 'SIG_ID' lines.
* guix/gnupg.scm (gnupg-verify)[sigid-rx]: Adjust to handle current
  signature ID encoding.
2014-09-24 19:08:03 +02:00
Ludovic Courtès 3f6f7b36d3 packages: Allow use of origins as patches.
* guix/packages.scm (patch-and-repack)[patch-inputs]: Use 'add-to-store'
  only if the PATCH is a file name, and 'package-source-derivation' if
  PATCH is an origin.
2014-09-24 19:07:22 +02:00
Alex Kost a54a237b5f emacs: Add support for displaying outputs.
Suggested by Taylan Ulrich Bayirli/Kammer and Ludovic Courtès.

* emacs/guix-base.el (guix-param-titles): Add output titles.
  (guix-messages): Add output messages.
  (guix-get-package-id-and-output-by-output-id): New procedure.
  (guix-define-buffer-type): Add ':buffer-name' key.
* emacs/guix-info.el: Add "output-info" buffer type.
  (guix-info-insert-methods): Add output methods.
  (guix-info-displayed-params): Add output params.
  (guix-output-info-insert-version, guix-output-info-insert-output): New
  procedures.
* emacs/guix-list.el: Add "output-list" buffer type.
  (guix-list-column-format): Add output formats.
  (guix-list-column-value-methods): Add output methods.
  (guix-package-list-type): New variable.
  (guix-generation-list-show-packages): Use it.
  (guix-package-list-marking-check): Use 'guix-output-list-mode'.
  (guix-list-mark-package-upgrades): New procedure.
  (guix-package-list-mark-upgrades): Use it.
  (guix-list-execute-package-actions): New procedure.
  (guix-package-list-execute): Use it.
  (guix-list-describe-maybe): New procedure.
  (guix-list-describe): Use it.
  (guix-output-list-mark-install, guix-output-list-mark-delete,
  guix-output-list-mark-upgrade, guix-output-list-mark-upgrades,
  guix-output-list-execute, guix-output-list-make-action,
  guix-output-list-describe): New procedures.
  (guix-output-list-describe-type): New variable.
* emacs/guix.el (guix-get-show-packages): Use 'guix-package-list-type'.
* doc/emacs.texi (emacs Commands): Mention 'guix-package-list-type'.
  (emacs List buffer): Adjust accordingly.
  (emacs Info buffer): Likewise.
  (emacs Buffer Names): New node.
  (emacs Keymaps): Add keymaps for output buffers.
2014-09-24 16:09:20 +04:00
Alex Kost 81b339fe31 emacs: Rewrite scheme side in a functional manner.
* emacs/guix-main.scm: Rewrite in a functional way.  Add support for output
  entries.
  (%current-manifest, %current-manifest-entries-table,
  set-current-manifest-maybe!): Replace with...
  (manifest-entries->hash-table, manifest->hash-table): ... this.
  (manifest-entries-by-name+version): Replace with...
  (manifest-entries-by-name): ... this.
  (fold-manifest-entries): Rename to...
  (fold-manifest-by-name): ... this.
  (package-installed-param-alist): Rename to...
  (%manifest-entry-param-alist): ... this.
  (package-param-alist): Rename to...
  (%package-param-alist): this.
  (manifest-entry->installed-entry): Rename to...
  (manifest-entry->sexp): ... this.
  (manifest-entries->installed-entries): Rename to...
  (manifest-entries->sexps): ... this.
  (matching-generation-entries): Replace with...
  (matching-generations): ... this.
  (last-generation-entries): Replace with...
  (last-generations): ... this.
  (get-entries): Rename to...
  (entries): ... this.
  (installed-entries-by-name+version, installed-entries-by-package,
  matching-package-entries, fold-object, package-entries-by-name+version,
  package-entries-by-spec, package-entries-by-regexp, package-entries-by-ids,
  newest-available-package-entries, all-available-package-entries,
  manifest-package-entries, installed-package-entries,
  generation-package-entries, obsolete-package-entries,
  all-generation-entries, generation-entries-by-ids, profile-generations,
  %package-entries-functions, %generation-entries-functions): Remove.
  (manifest=?, manifest-entry->name+version+output, manifest-entry-by-output,
  list-maybe, matching-packages, filter-packages-by-output, packages-by-name,
  manifest-entry->packages, all-available-packages, newest-available-packages,
  specification->package-pattern, specification->output-pattern,
  id->package-pattern, id->output-pattern, specifications->package-patterns,
  specifications->output-patterns, ids->package-patterns,
  ids->output-patterns, manifest-patterns-result, obsolete-package-patterns,
  obsolete-output-patterns, manifest-package-patterns,
  manifest-output-patterns, obsolete-package-sexp,
  package-pattern-transformer, output-pattern-transformer, entry-type-error,
  search-type-error, pattern-transformer, patterns-maker,
  package/output-sexps, find-generations, generation-sexps): New procedures.
  (%pattern-transformers, %patterns-makers): New variables.
* emacs/guix-base.el (guix-continue-package-operation-p): Adjust accordingly.
* emacs/guix-info.el (guix-package-info-insert-action-button): Likewise.
2014-09-24 16:09:20 +04:00
Alex Kost dfeb023927 emacs: Use general functions instead of generated ones.
* emacs/guix-base.el: Add and use general functions instead of
  specialized functions generated by 'guix-define-buffer-type' macro.
  (guix-buffer-type, guix-entry-type): New variables.
  (guix-set-vars): Add new variables.
  (guix-get-show-entries, guix-show-entries, guix-set-buffer)
  (guix-history-call, guix-make-history-item)
  (guix-get-params-for-receiving, guix-revert-buffer)
  (guix-redisplay-buffer): New functions.
  (guix-define-buffer-type): Do not generate specialized functions.
* emacs/guix-info.el (guix-package-info-insert-full-names): Use
  'guix-get-show-entries'.
  (guix-generation-info-insert-number): Likewise.
* emacs/guix-list.el (guix-list-describe): New function.
  (guix-list-define-entry-type): Do not generate specialized one.
  (guix-generation-list-show-packages): Use 'guix-get-show-entries'.
* emacs/guix.el (guix-show-generations-function): Remove.
  (guix-get-show-packages): Use new functions.
  (guix-get-show-generations): Likewise.
2014-09-24 16:09:20 +04:00
Ludovic Courtès 8689901f95 Introduce the 'GUIX_PACKAGE_PATH' environment variable.
* 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.
2014-09-24 14:06:09 +02:00
Ludovic Courtès 300868ba57 guix build: Add -L/--load-path as a common option.
* guix/scripts/build.scm (show-build-options-help): Document -L.
  (%standard-build-options): Add -L/--load-path.
* tests/guix-package.sh: Test it.
2014-09-24 14:06:09 +02:00
Ludovic Courtès c107b54108 packages: Add '%package-module-search-path'.
* gnu/packages.scm (%package-module-path): New variable.
  (all-package-modules): New procedure.
  (fold-packages): Use it instead of 'package-modules'.
2014-09-24 14:06:08 +02:00