2013-08-24 17:23:17 +02:00
|
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
2018-02-19 00:06:23 +01:00
|
|
|
|
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
2017-01-01 10:42:46 +01:00
|
|
|
|
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
|
2017-07-18 10:37:07 +02:00
|
|
|
|
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
|
2017-08-25 21:43:23 +02:00
|
|
|
|
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
|
2017-10-27 11:17:43 +02:00
|
|
|
|
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
|
2018-01-17 22:03:57 +01:00
|
|
|
|
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
2018-03-02 23:11:46 +01:00
|
|
|
|
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
|
2013-08-24 17:23:17 +02:00
|
|
|
|
;;;
|
|
|
|
|
;;; This file is part of GNU Guix.
|
|
|
|
|
;;;
|
|
|
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
|
|
|
;;; under the terms of the GNU General Public License as published by
|
|
|
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
|
|
|
;;; your option) any later version.
|
|
|
|
|
;;;
|
|
|
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
|
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;;; GNU General Public License for more details.
|
|
|
|
|
;;;
|
|
|
|
|
;;; You should have received a copy of the GNU General Public License
|
|
|
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
(define-module (gnu packages package-management)
|
2013-12-11 13:55:17 +01:00
|
|
|
|
#:use-module (gnu packages)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages acl)
|
|
|
|
|
#:use-module (gnu packages autotools)
|
2015-10-26 00:13:03 +01:00
|
|
|
|
#:use-module (gnu packages backup)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages bdw-gc)
|
2017-07-27 16:41:42 +02:00
|
|
|
|
#:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin'
|
gnu: Move testing packages from python.scm to check.scm.
* gnu/packages/python.scm (python-behave-web-api, python2-behave-web-api,
python-mock, python2-mock, python-mock-2, python-nose, python2-nose,
python-nose2, python2-nose2, python-unittest2, python2-unittest2,
python-pytest, python2-pytest, python-pytest-3.0, python2-pytest-3.0,
python-pytest-cov, python2-pytest-cov, python-pytest-runner,
python2-pytest-runner, python-pytest-mock, python2-pytest-mock,
python-pytest-xdist, python2-pytest-xdist, python-scripttest,
python2-scripttest, python-testtools, python2-testtools, python-testscenarios,
python2-testscenarios, python-testresources, python2-testresources,
python-subunit, python2-subunit, python-fixtures, python2-fixtures,
python-testrepository, python2-testrepository, python-coverage,
python2-coverage, python-cov-core, python2-cov-core, python-testpath,
python2-testpath, python-testlib, python2-testlib, python-pytest-cache,
python2-pytest-cache, python-pytest-localserver, python-pytest-xprocess,
python-pytest-subtesthack, python2-pytest-subtesthack, python-hypothesis,
python2-hypothesis, python-lit, python2-lit, python-pytest-pep8,
python2-pytest-pep8, python-pytest-flakes, python2-pytest-flakes,
python2-coverage-test-runner, python-pylint, python2-pylint,
python-paramunittest, python2-python-paramunittest, python-pytest-warnings,
python2-pytest-warnings, python-pytest-capturelog, python2-pytest-capturelog,
python-pytest-catchlog, python2-pytest-catchlog, python-nosexcover,
python2-nosexcover, python-discover, python2-discover, behave, python-rednose,
python2-rednose, python-nose-randomly, python2-nose-randomly,
python-nose-timer, python2-nose-timer): Move from here...
* gnu/packages/check.scm: ...to here.
* gnu/packages/admin.scm,
gnu/packages/android.scm,
gnu/packages/backup.scm,
gnu/packages/bioinformatics.scm,
gnu/packages/calendar.scm,
gnu/packages/dav.scm,
gnu/packages/django.scm,
gnu/packages/freedesktop.scm,
gnu/packages/haskell.scm,
gnu/packages/image.scm,
gnu/packages/irc.scm,
gnu/packages/jrnl.scm,
gnu/packages/ldc.scm,
gnu/packages/libffi.scm,
gnu/packages/mail.scm,
gnu/packages/mpd.scm,
gnu/packages/openstack.scm,
gnu/packages/package-management.scm,
gnu/packages/password-utils.scm,
gnu/packages/python-crypto.scm,
gnu/packages/python-web.scm,
gnu/packages/rdf.scm,
gnu/packages/statistics.scm,
gnu/packages/storage.scm,
gnu/packages/time.scm,
gnu/packages/tls.scm,
gnu/packages/tor.scm,
gnu/packages/tryton.scm: Adjust accordingly.
2017-11-17 21:42:23 +01:00
|
|
|
|
#:use-module (gnu packages check)
|
2015-04-20 15:50:59 +02:00
|
|
|
|
#:use-module (gnu packages compression)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages cpio)
|
|
|
|
|
#:use-module (gnu packages curl)
|
gnu: Consolidate databases in (gnu packages databases).
* gnu/packages/databases.scm: New file, with the contents of the
following deleted files.
* gnu/packages/mysql.scm, gnu/packages/postgresql.scm,
gnu/packages/recutils.scm, gnu/packages/sqlite.scm,
gnu/packages/bdb.scm: Remove.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu/packages/apl.scm, gnu/packages/dc.scm, gnu/packages/games.scm,
gnu/packages/gnunet.scm, gnu/packages/linux.scm, gnu/packages/mail.scm,
gnu/packages/mpd.scm, gnu/packages/nvi.scm, gnu/packages/openldap.scm,
gnu/packages/package-management.scm, gnu/packages/python.scm,
gnu/packages/qt.scm, gnu/packages/rdf.scm,
gnu/packages/version-control.scm: Adjust to new module name.
2014-09-08 17:48:03 +02:00
|
|
|
|
#:use-module (gnu packages databases)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages file)
|
2014-06-27 23:06:55 +02:00
|
|
|
|
#:use-module (gnu packages gettext)
|
2018-01-19 02:52:22 +01:00
|
|
|
|
#:use-module (gnu packages glib)
|
2018-01-19 02:52:23 +01:00
|
|
|
|
#:use-module (gnu packages gnome)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages gnupg)
|
|
|
|
|
#:use-module (gnu packages gnuzilla)
|
|
|
|
|
#:use-module (gnu packages graphviz)
|
|
|
|
|
#:use-module (gnu packages guile)
|
2018-01-19 02:52:23 +01:00
|
|
|
|
#:use-module (gnu packages linux)
|
2017-10-27 11:17:43 +02:00
|
|
|
|
#:use-module (gnu packages lisp)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages man)
|
2015-10-26 00:13:03 +01:00
|
|
|
|
#:use-module (gnu packages nettle)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages patchutils)
|
2014-09-28 01:04:18 +02:00
|
|
|
|
#:use-module (gnu packages perl)
|
gnu: Move test packages from perl to perl-check.
* gnu/packages/perl.scm (perl-test2-bundle-extended,
perl-test2-plugin-nowarnings, perl-test-base, perl-test-class,
perl-test-class-most, perl-test-cleannamespaces, perl-test-command,
perl-test-cpan-meta, perl-test-cpan-meta-json, perl-test-deep,
perl-test-differences, perl-test-directory, perl-test-eol,
perl-test-exception, perl-test-fatal, perl-test-file-sharedir-dist,
perl-test-files, perl-test-harness, perl-test-leaktrace,
perl-test-longstring, perl-test-manifest, perl-test-memory-cycle,
perl-test-mockobject, perl-test-mocktime, perl-test-most, perl-test-needs,
perl-test-notabs, perl-test-nowarnings, perl-test-number-delta,
perl-test-output, perl-test-pod, perl-test-pod-coverage, perl-test-requires,
perl-test-script, perl-test-sharedfork, perl-test-simple, perl-test-taint,
perl-test-tester, perl-test-trap, perl-test-utf8, perl-test-warn,
perl-test-warnings, perl-test-without-module, perl-test-writevariants,
perl-test-yaml, perl-test-trailingspace): Move variables to ...
* gnu/packages/perl-check.scm: ... this new file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/admin.scm,
gnu/packages/bioinformatics.scm,
gnu/packages/crypto.scm,
gnu/packages/databases.scm,
gnu/packages/glib.scm,
gnu/packages/gnupg.scm,
gnu/packages/image-viewers.scm,
gnu/packages/language.scm,
gnu/packages/networking.scm,
gnu/packages/package-management.scm,
gnu/packages/perl.scm,
gnu/packages/terminals.scm,
gnu/packages/tex.scm,
gnu/packages/version-control.scm,
gnu/packages/web.scm,
gnu/packages/xml.scm,
gnu/packages/xorg.scm: Use perl-check module.
2017-11-13 23:03:01 +01:00
|
|
|
|
#:use-module (gnu packages perl-check)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages pkg-config)
|
|
|
|
|
#:use-module (gnu packages popt)
|
2015-10-26 00:13:03 +01:00
|
|
|
|
#:use-module (gnu packages python)
|
gnu: Move web packages from python to python-web.
This is in part to address <https://bugs.gnu.org/27284>.
* gnu/packages/python.scm (python-httplib2, python2-httplib2)
(python-sockjs-tornado, python2-sockjs-tornado)
(python-flask-babel, python2-flask-babel)
(python-html5lib, python2-html5lib)
(python-html5lib-0.9, python2-html5lib-0.9)
(python-html5-parser, python2-html5-parser)
(python-webencodings, python2-webencodings)
(python-openid, python2-openid, python-cssutils, python2-cssutils)
(python-cssselect, python2-cssutils)
(python-openid-cla, python2-openid-cla)
(python-openid-teams, python2-openid-teams)
(python-tornado, python2-tornado)
(python-tornado-http-auth, python-terminado, python2-terminado)
(python-webob, python2-webob, python-zope-event, python2-zope-event)
(python-zope-interface, python2-zope-interface)
(python-zope-exceptions, python2-zope-exceptions)
(python-zope-testing, python2-zope-testing)
(python-zope-testrunner, python2-zope-testrunner)
(python-zope-i18nmessageid, python2-zope-i18nmessageid)
(python-zope-schema, python2-zope-schema)
(python-zope-configuration, python2-zope-configuration)
(python-zope-proxy, python2-zope-proxy)
(python-zope-location, python2-zope-location)
(python-zope-security, python2-zope-security)
(python-zope-component, python2-zope-component)
(python-ndg-httpsclient, python2-ndg-httpsclient)
(python-websocket-client, python2-websocket-client)
(python-requests-toolbelt, python2-requests-toolbelt)
(python-rauth, python2-rauth, python-urllib3, python2-urllib3)
(awscli, python-wsgiproxy2, python2-wsgiproxy2)
(python-pastedeploy, python2-pastedeploy)
(python-webtest, python2-webtest, python-flask, python2-flask)
(python-flast-wtf, python2-flask-wtf)
(python-flask-multistatic, python2-flask-multistatic)
(python-cookies, python2-cookies)
(python-responses, python2-responses)
(python-geventhttpclient, python2-geventhttpclient)
(python-requests-oauthlib, python2-requests-oauthlib)
(python-url, python2-url, python-cachecontrol, python2-cachecontrol)
(python-betamax, python2-betamax)
(python-betamax-matchers, python2-betamax-matchers)
(python-s3transfer, python2-s3transfer)
(python-flask-restful, python-flask-basicauth)
(python-flask-sqlalchemy, python-flask-restplus)
(python-flask-restful-swagger, python-htmlmin, python2-htmlmin)
(python-flask-htmlmin, python2-flask-htmlmin)
(python-flask-login, python2-flask-login)
(python-oauth2client, python-flask-oidc)
(python-webassets, python-cssmin, python2-cssmin)
(python-elasticsearch, python2-elasticsearch)
(python-flask-script, python2-flask-script)
(python-flask-migrate, python2-flask-migrate)
(python-genshi, python2-genshi)
(python-flask-principal, python2-flask-principal)
(python-flask-httpauth, python2-flask-httpauth)
(python-uritemplate, python2-uritemplate): Move to...
* gnu/packages/python-web.scm: ... here. New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/admin.scm, gnu/packages/backup.scm,
gnu/packages/dav.scm, gnu/packages/django.scm,
gnu/packages/docker.scm, gnu/packages/ebook.scm,
gnu/packages/logging.scm, gnu/packages/mail.scm,
gnu/packages/music.scm, gnu/packages/openstack.scm,
gnu/packages/package-management.scm, gnu/packages/rdf.scm,
gnu/packages/tls.scm, gnu/packages/tor.scm,
gnu/packages/tryton.scm, gnu/packages/version-control.scm,
gnu/packages/web-browsers.scm,
gnu/packages/web.scm: Adjust accordingly.
2017-11-13 23:24:11 +01:00
|
|
|
|
#:use-module (gnu packages python-web)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages serialization)
|
|
|
|
|
#:use-module (gnu packages ssh)
|
|
|
|
|
#:use-module (gnu packages texinfo)
|
gnu: Move date/time packages from python.scm to time.scm.
* gnu/packages/python.scm (python-pytz, python2-pytz, python-dateutil,
python2-dateutil, python-parsedatetime, python2-parsedatetime,
python-tzlocal, python-isodate, python2-isodate, python-iso8601,
python2-iso8601, python-monotonic, python2-monotonic, python-pyrfc3339,
python2-pyrfc3339, python-arrow, python2-arrow, python-aniso8601,
python2-aniso8601): Move from here...
* gnu/packages/time.scm: ...to here.
* gnu/packages/calendar.scm,
gnu/packages/check.scm,
gnu/packages/django.scm,
gnu/packages/ebook.scm,
gnu/packages/gnome.scm,
gnu/packages/irc.scm,
gnu/packages/jrnl.scm,
gnu/packages/mail.scm,
gnu/packages/openstack.scm,
gnu/packages/package-management.scm,
gnu/packages/python-crypto.scm,
gnu/packages/python-web.scm,
gnu/packages/rdf.scm,
gnu/packages/statistics.scm,
gnu/packages/tls.scm,
gnu/packages/tryton.scm,
gnu/packages/version-control.scm: Adjust accordingly.
2017-11-18 11:58:44 +01:00
|
|
|
|
#:use-module (gnu packages time)
|
2016-06-19 22:26:59 +02:00
|
|
|
|
#:use-module (gnu packages tls)
|
2017-01-01 10:42:46 +01:00
|
|
|
|
#:use-module (gnu packages vim)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (gnu packages web)
|
2018-01-19 02:52:23 +01:00
|
|
|
|
#:use-module (gnu packages xml)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (guix build-system emacs)
|
|
|
|
|
#:use-module (guix build-system gnu)
|
2018-01-26 01:51:59 +01:00
|
|
|
|
#:use-module (guix build-system meson)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (guix build-system python)
|
|
|
|
|
#:use-module (guix download)
|
|
|
|
|
#:use-module (guix gexp)
|
|
|
|
|
#:use-module (guix git-download)
|
2018-01-17 22:03:57 +01:00
|
|
|
|
#:use-module ((guix licenses) #:prefix license:)
|
2018-01-17 21:49:48 +01:00
|
|
|
|
#:use-module (guix packages)
|
|
|
|
|
#:use-module (guix utils)
|
|
|
|
|
#:use-module (ice-9 match)
|
|
|
|
|
#:use-module (srfi srfi-1))
|
2013-08-24 17:23:17 +02:00
|
|
|
|
|
2015-01-27 10:17:28 +01:00
|
|
|
|
(define (boot-guile-uri arch)
|
|
|
|
|
"Return the URI for the bootstrap Guile tarball for ARCH."
|
2017-03-30 23:04:03 +02:00
|
|
|
|
(cond ((string=? "armhf" arch)
|
|
|
|
|
(string-append "http://alpha.gnu.org/gnu/guix/bootstrap/"
|
|
|
|
|
arch "-linux"
|
|
|
|
|
"/20150101/guile-2.0.11.tar.xz"))
|
|
|
|
|
((string=? "aarch64" arch)
|
2017-04-14 18:16:32 +02:00
|
|
|
|
(string-append "http://alpha.gnu.org/gnu/guix/bootstrap/"
|
|
|
|
|
arch "-linux/20170217/guile-2.0.14.tar.xz"))
|
2017-03-30 23:04:03 +02:00
|
|
|
|
(else
|
|
|
|
|
(string-append "http://alpha.gnu.org/gnu/guix/bootstrap/"
|
|
|
|
|
arch "-linux"
|
|
|
|
|
"/20131110/guile-2.0.9.tar.xz"))))
|
2015-01-27 10:17:28 +01:00
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(define-public guix
|
|
|
|
|
;; Latest version of Guix, which may or may not correspond to a release.
|
2017-05-06 22:59:05 +02:00
|
|
|
|
;; Note: the 'update-guix-package.scm' script expects this definition to
|
|
|
|
|
;; start precisely like this.
|
2017-12-06 10:58:17 +01:00
|
|
|
|
(let ((version "0.14.0")
|
2018-04-10 22:26:47 +02:00
|
|
|
|
(commit "486de7377f25438b0f44fd93f97e9ef822d558b8")
|
|
|
|
|
(revision 10))
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(package
|
|
|
|
|
(name "guix")
|
2017-04-22 18:53:47 +02:00
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(version (if (zero? revision)
|
|
|
|
|
version
|
|
|
|
|
(string-append version "-"
|
|
|
|
|
(number->string revision)
|
2017-05-08 00:22:30 +02:00
|
|
|
|
"." (string-take commit 7))))
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(source (origin
|
|
|
|
|
(method git-fetch)
|
|
|
|
|
(uri (git-reference
|
|
|
|
|
(url "https://git.savannah.gnu.org/r/guix.git")
|
|
|
|
|
(commit commit)))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2018-04-10 22:26:47 +02:00
|
|
|
|
"12ghbby83w335g7vbg7h52hjaal5l6mc6qmldlx8029340br8h1w"))
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(file-name (string-append "guix-" version "-checkout"))))
|
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:configure-flags (list
|
|
|
|
|
"--localstatedir=/var"
|
|
|
|
|
"--sysconfdir=/etc"
|
|
|
|
|
(string-append "--with-bash-completion-dir="
|
|
|
|
|
(assoc-ref %outputs "out")
|
|
|
|
|
"/etc/bash_completion.d")
|
|
|
|
|
(string-append "--with-libgcrypt-prefix="
|
|
|
|
|
(assoc-ref %build-inputs
|
|
|
|
|
"libgcrypt"))
|
|
|
|
|
|
|
|
|
|
;; Set 'DOT_USER_PROGRAM' to the empty string so
|
|
|
|
|
;; we don't keep a reference to Graphviz, whose
|
|
|
|
|
;; closure is pretty big (too big for the GuixSD
|
|
|
|
|
;; installation image.)
|
2017-05-08 00:22:30 +02:00
|
|
|
|
"ac_cv_path_DOT_USER_PROGRAM=dot"
|
|
|
|
|
|
|
|
|
|
;; To avoid problems with the length of shebangs,
|
|
|
|
|
;; choose a fixed-width and short directory name
|
|
|
|
|
;; for tests.
|
|
|
|
|
"ac_cv_guix_test_root=/tmp/guix-tests")
|
2017-05-06 00:25:00 +02:00
|
|
|
|
#:parallel-tests? #f ;work around <http://bugs.gnu.org/21097>
|
|
|
|
|
|
|
|
|
|
#:modules ((guix build gnu-build-system)
|
|
|
|
|
(guix build utils)
|
2017-07-30 21:36:18 +02:00
|
|
|
|
(srfi srfi-26)
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(ice-9 popen)
|
|
|
|
|
(ice-9 rdelim))
|
|
|
|
|
|
|
|
|
|
#:phases (modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'bootstrap
|
|
|
|
|
(lambda _
|
|
|
|
|
;; Make sure 'msgmerge' can modify the PO files.
|
|
|
|
|
(for-each (lambda (po)
|
|
|
|
|
(chmod po #o666))
|
|
|
|
|
(find-files "." "\\.po$"))
|
2017-04-22 18:53:47 +02:00
|
|
|
|
|
2017-11-30 11:14:34 +01:00
|
|
|
|
(patch-shebang "build-aux/git-version-gen")
|
|
|
|
|
|
2017-11-28 13:25:04 +01:00
|
|
|
|
(call-with-output-file ".tarball-version"
|
|
|
|
|
(lambda (port)
|
|
|
|
|
(display ,version port)))
|
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(zero? (system* "sh" "bootstrap"))))
|
2018-02-19 00:06:23 +01:00
|
|
|
|
(add-before 'check 'copy-bootstrap-guile
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(lambda* (#:key system inputs #:allow-other-keys)
|
2018-02-19 00:06:23 +01:00
|
|
|
|
;; Copy the bootstrap guile tarball in the store used
|
|
|
|
|
;; by the test suite.
|
|
|
|
|
(define (intern tarball)
|
|
|
|
|
(let ((base (strip-store-file-name tarball)))
|
|
|
|
|
(copy-file tarball base)
|
|
|
|
|
(invoke "./test-env" "guix" "download"
|
|
|
|
|
(string-append "file://" (getcwd)
|
|
|
|
|
"/" base))
|
|
|
|
|
(delete-file base)))
|
2015-01-27 10:17:28 +01:00
|
|
|
|
|
2013-08-24 17:23:17 +02:00
|
|
|
|
|
2018-02-19 00:06:23 +01:00
|
|
|
|
(intern (assoc-ref inputs "boot-guile"))
|
|
|
|
|
|
|
|
|
|
;; On x86_64 some tests need the i686 Guile.
|
|
|
|
|
,@(if (and (not (%current-target-system))
|
|
|
|
|
(string=? (%current-system)
|
|
|
|
|
"x86_64-linux"))
|
|
|
|
|
'((intern (assoc-ref inputs "boot-guile/i686")))
|
|
|
|
|
'())
|
2017-05-06 00:25:00 +02:00
|
|
|
|
#t))
|
2017-11-21 00:27:08 +01:00
|
|
|
|
(add-after 'unpack 'disable-failing-tests
|
2017-05-06 00:25:00 +02:00
|
|
|
|
;; XXX FIXME: These tests fail within the build container.
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "tests/syscalls.scm"
|
|
|
|
|
(("^\\(test-(assert|equal) \"(clone|setns|pivot-root)\"" all)
|
|
|
|
|
(string-append "(test-skip 1)\n" all)))
|
|
|
|
|
(substitute* "tests/containers.scm"
|
|
|
|
|
(("^\\(test-(assert|equal)" all)
|
|
|
|
|
(string-append "(test-skip 1)\n" all)))
|
|
|
|
|
(when (file-exists? "tests/guix-environment-container.sh")
|
|
|
|
|
(substitute* "tests/guix-environment-container.sh"
|
|
|
|
|
(("guix environment --version")
|
|
|
|
|
"exit 77\n")))
|
|
|
|
|
#t))
|
|
|
|
|
(add-before 'check 'set-SHELL
|
|
|
|
|
(lambda _
|
|
|
|
|
;; 'guix environment' tests rely on 'SHELL' having a
|
|
|
|
|
;; correct value, so set it.
|
|
|
|
|
(setenv "SHELL" (which "sh"))
|
|
|
|
|
#t))
|
|
|
|
|
(add-after 'install 'wrap-program
|
|
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
2017-11-28 13:29:47 +01:00
|
|
|
|
;; Make sure the 'guix' command finds GnuTLS,
|
|
|
|
|
;; Guile-JSON, and Guile-Git automatically.
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(guile (assoc-ref inputs "guile"))
|
|
|
|
|
(json (assoc-ref inputs "guile-json"))
|
2017-07-28 17:52:21 +02:00
|
|
|
|
(git (assoc-ref inputs "guile-git"))
|
2017-11-28 13:29:47 +01:00
|
|
|
|
(bs (assoc-ref inputs
|
|
|
|
|
"guile-bytestructures"))
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(ssh (assoc-ref inputs "guile-ssh"))
|
|
|
|
|
(gnutls (assoc-ref inputs "gnutls"))
|
2017-11-28 13:29:47 +01:00
|
|
|
|
(deps (list json gnutls git bs ssh))
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(effective
|
|
|
|
|
(read-line
|
|
|
|
|
(open-pipe* OPEN_READ
|
|
|
|
|
(string-append guile "/bin/guile")
|
|
|
|
|
"-c" "(display (effective-version))")))
|
2017-07-30 21:36:18 +02:00
|
|
|
|
(path (string-join
|
|
|
|
|
(map (cut string-append <>
|
|
|
|
|
"/share/guile/site/"
|
|
|
|
|
effective)
|
|
|
|
|
deps)
|
|
|
|
|
":"))
|
|
|
|
|
(gopath (string-join
|
|
|
|
|
(map (cut string-append <>
|
|
|
|
|
"/lib/guile/" effective
|
|
|
|
|
"/site-ccache")
|
|
|
|
|
deps)
|
|
|
|
|
":")))
|
2016-03-29 22:11:59 +02:00
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(wrap-program (string-append out "/bin/guix")
|
|
|
|
|
`("GUILE_LOAD_PATH" ":" prefix (,path))
|
2017-07-30 21:36:18 +02:00
|
|
|
|
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
|
2016-03-29 22:11:59 +02:00
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
#t))))))
|
|
|
|
|
(native-inputs `(("pkg-config" ,pkg-config)
|
2016-10-30 23:06:06 +01:00
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
;; XXX: Keep the development inputs here even though
|
|
|
|
|
;; they're unnecessary, just so that 'guix environment
|
|
|
|
|
;; guix' always contains them.
|
2018-03-09 23:11:48 +01:00
|
|
|
|
("autoconf" ,autoconf-wrapper)
|
2017-05-06 00:25:00 +02:00
|
|
|
|
("automake" ,automake)
|
|
|
|
|
("gettext" ,gettext-minimal)
|
|
|
|
|
("texinfo" ,texinfo)
|
|
|
|
|
("graphviz" ,graphviz)
|
2018-03-02 23:11:46 +01:00
|
|
|
|
("help2man" ,help2man)
|
|
|
|
|
("po4a" ,po4a)))
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(inputs
|
2017-07-27 16:41:42 +02:00
|
|
|
|
`(("bzip2" ,bzip2)
|
|
|
|
|
("gzip" ,gzip)
|
|
|
|
|
("zlib" ,zlib) ;for 'guix publish'
|
2013-09-24 22:37:51 +02:00
|
|
|
|
|
2017-07-27 16:41:42 +02:00
|
|
|
|
("sqlite" ,sqlite)
|
|
|
|
|
("libgcrypt" ,libgcrypt)
|
|
|
|
|
("guile" ,guile-2.2)
|
2013-08-24 17:23:17 +02:00
|
|
|
|
|
2018-02-19 00:06:23 +01:00
|
|
|
|
;; Many tests rely on the 'guile-bootstrap' package, which is why we
|
|
|
|
|
;; have it here.
|
|
|
|
|
("boot-guile" ,(bootstrap-guile-origin (%current-system)))
|
2018-03-11 01:13:01 +01:00
|
|
|
|
;; Some of the tests use "unshare" when it is available.
|
|
|
|
|
("util-linux" ,util-linux)
|
2018-02-19 00:06:23 +01:00
|
|
|
|
,@(if (and (not (%current-target-system))
|
|
|
|
|
(string=? (%current-system) "x86_64-linux"))
|
|
|
|
|
`(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")))
|
|
|
|
|
'())))
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(propagated-inputs
|
2017-05-26 14:58:21 +02:00
|
|
|
|
`(("gnutls" ,gnutls)
|
2017-05-13 21:49:01 +02:00
|
|
|
|
("guile-json" ,guile-json)
|
2017-07-28 17:52:21 +02:00
|
|
|
|
("guile-ssh" ,guile-ssh)
|
|
|
|
|
("guile-git" ,guile-git)))
|
2015-01-28 23:36:58 +01:00
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(home-page "https://www.gnu.org/software/guix/")
|
|
|
|
|
(synopsis "Functional package manager for installed software packages and versions")
|
|
|
|
|
(description
|
|
|
|
|
"GNU Guix is a functional package manager for the GNU system, and is
|
2014-09-13 15:31:31 +02:00
|
|
|
|
also a distribution thereof. It includes a virtual machine image. Besides
|
2013-12-01 22:33:23 +01:00
|
|
|
|
the usual package management features, it also supports transactional
|
2014-09-13 15:31:31 +02:00
|
|
|
|
upgrades and roll-backs, per-user profiles, and much more. It is based on
|
|
|
|
|
the Nix package manager.")
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license license:gpl3+)
|
2017-05-06 00:25:00 +02:00
|
|
|
|
(properties '((ftp-server . "alpha.gnu.org"))))))
|
2014-10-13 00:29:09 +02:00
|
|
|
|
|
2017-05-06 00:25:00 +02:00
|
|
|
|
;; Alias for backward compatibility.
|
|
|
|
|
(define-public guix-devel guix)
|
2014-09-28 01:04:18 +02:00
|
|
|
|
|
2018-04-08 16:38:53 +02:00
|
|
|
|
(define-public guix-register
|
|
|
|
|
;; This package is for internal consumption: it allows us to quickly build
|
|
|
|
|
;; the 'guix-register' program, which is referred to by (guix config).
|
|
|
|
|
;; TODO: Remove this hack when 'guix-register' has been superseded by Scheme
|
|
|
|
|
;; code.
|
|
|
|
|
(package
|
|
|
|
|
(inherit guix)
|
|
|
|
|
(properties `((hidden? . #t)))
|
|
|
|
|
(name "guix-register")
|
|
|
|
|
(arguments
|
|
|
|
|
(substitute-keyword-arguments (package-arguments guix)
|
|
|
|
|
((#:tests? #f #f)
|
|
|
|
|
#f)
|
|
|
|
|
((#:phases phases '%standard-phases)
|
|
|
|
|
`(modify-phases ,phases
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "make" "nix/libstore/schema.sql.hh")
|
|
|
|
|
(invoke "make" "-j" (number->string
|
|
|
|
|
(parallel-job-count))
|
|
|
|
|
"guix-register")))
|
|
|
|
|
(delete 'copy-bootstrap-guile)
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "make" "install-sbinPROGRAMS")))
|
|
|
|
|
(delete 'wrap-program)))))))
|
|
|
|
|
|
2017-05-20 20:00:53 +02:00
|
|
|
|
(define-public guile2.0-guix
|
|
|
|
|
(package
|
|
|
|
|
(inherit guix)
|
|
|
|
|
(name "guile2.0-guix")
|
|
|
|
|
(inputs
|
|
|
|
|
`(("guile" ,guile-2.0)
|
|
|
|
|
,@(alist-delete "guile" (package-inputs guix))))
|
|
|
|
|
(propagated-inputs
|
2017-05-26 14:58:21 +02:00
|
|
|
|
`(("gnutls" ,gnutls/guile-2.0)
|
2017-05-20 20:00:53 +02:00
|
|
|
|
("guile-json" ,guile2.0-json)
|
2017-07-28 17:52:21 +02:00
|
|
|
|
("guile-ssh" ,guile2.0-ssh)
|
|
|
|
|
("guile-git" ,guile2.0-git)))))
|
2017-05-20 20:00:53 +02:00
|
|
|
|
|
2016-06-19 22:26:59 +02:00
|
|
|
|
(define (source-file? file stat)
|
|
|
|
|
"Return true if FILE is likely a source file, false if it is a typical
|
|
|
|
|
generated file."
|
|
|
|
|
(define (wrong-extension? file)
|
|
|
|
|
(or (string-suffix? "~" file)
|
|
|
|
|
(member (file-extension file)
|
|
|
|
|
'("o" "a" "lo" "so" "go"))))
|
|
|
|
|
|
|
|
|
|
(match (basename file)
|
|
|
|
|
((or ".git" "autom4te.cache" "configure" "Makefile" "Makefile.in" ".libs")
|
|
|
|
|
#f)
|
|
|
|
|
((? wrong-extension?)
|
|
|
|
|
#f)
|
|
|
|
|
(_
|
|
|
|
|
#t)))
|
|
|
|
|
|
|
|
|
|
(define-public current-guix
|
2017-08-29 08:41:30 +02:00
|
|
|
|
(let* ((repository-root (canonicalize-path
|
|
|
|
|
(string-append (current-source-directory)
|
|
|
|
|
"/../..")))
|
|
|
|
|
(select? (delay (or (git-predicate repository-root)
|
|
|
|
|
source-file?))))
|
2016-06-19 22:26:59 +02:00
|
|
|
|
(lambda ()
|
|
|
|
|
"Return a package representing Guix built from the current source tree.
|
|
|
|
|
This works by adding the current source tree to the store (after filtering it
|
|
|
|
|
out) and returning a package that uses that as its 'source'."
|
|
|
|
|
(package
|
|
|
|
|
(inherit guix)
|
|
|
|
|
(version (string-append (package-version guix) "+"))
|
2017-08-29 08:41:30 +02:00
|
|
|
|
(source (local-file repository-root "guix-current"
|
2016-06-19 22:26:59 +02:00
|
|
|
|
#:recursive? #t
|
|
|
|
|
#:select? (force select?)))))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;
|
|
|
|
|
;;; Other tools.
|
|
|
|
|
;;;
|
|
|
|
|
|
2014-09-28 01:04:18 +02:00
|
|
|
|
(define-public nix
|
|
|
|
|
(package
|
|
|
|
|
(name "nix")
|
2017-05-06 11:38:39 +02:00
|
|
|
|
(version "1.11.9")
|
2014-09-28 01:04:18 +02:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "http://nixos.org/releases/nix/nix-"
|
|
|
|
|
version "/nix-" version ".tar.xz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2017-05-06 11:38:39 +02:00
|
|
|
|
"1qg7qrfr60dysmyfg3ijgani71l23p1kqadhjs8kz11pgwkkx50f"))))
|
2014-09-28 01:04:18 +02:00
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also
|
|
|
|
|
;; need '--localstatedir=/var'. But then! The thing would use /var/nix
|
|
|
|
|
;; instead of /var/guix. So in the end, we do nothing special.
|
2015-11-12 10:59:34 +01:00
|
|
|
|
(arguments
|
|
|
|
|
'(#:configure-flags
|
|
|
|
|
;; Set the prefixes of Perl libraries to avoid propagation.
|
|
|
|
|
(let ((perl-libdir (lambda (p)
|
|
|
|
|
(string-append
|
|
|
|
|
(assoc-ref %build-inputs p)
|
|
|
|
|
"/lib/perl5/site_perl"))))
|
|
|
|
|
(list (string-append "--with-dbi="
|
|
|
|
|
(perl-libdir "perl-dbi"))
|
|
|
|
|
(string-append "--with-dbd-sqlite="
|
|
|
|
|
(perl-libdir "perl-dbd-sqlite"))
|
|
|
|
|
(string-append "--with-www-curl="
|
|
|
|
|
(perl-libdir "perl-www-curl"))))))
|
2014-09-28 01:04:18 +02:00
|
|
|
|
(native-inputs `(("perl" ,perl)
|
|
|
|
|
("pkg-config" ,pkg-config)))
|
|
|
|
|
(inputs `(("curl" ,curl)
|
|
|
|
|
("openssl" ,openssl)
|
|
|
|
|
("libgc" ,libgc)
|
|
|
|
|
("sqlite" ,sqlite)
|
2015-11-12 10:59:34 +01:00
|
|
|
|
("bzip2" ,bzip2)
|
|
|
|
|
("perl-www-curl" ,perl-www-curl)
|
|
|
|
|
("perl-dbi" ,perl-dbi)
|
|
|
|
|
("perl-dbd-sqlite" ,perl-dbd-sqlite)))
|
2018-02-20 05:01:22 +01:00
|
|
|
|
(home-page "https://nixos.org/nix/")
|
2014-09-28 01:04:18 +02:00
|
|
|
|
(synopsis "The Nix package manager")
|
|
|
|
|
(description
|
|
|
|
|
"Nix is a purely functional package manager. This means that it treats
|
|
|
|
|
packages like values in purely functional programming languages such as
|
|
|
|
|
Haskell—they are built by functions that don't have side-effects, and they
|
|
|
|
|
never change after they have been built. Nix stores packages in the Nix
|
|
|
|
|
store, usually the directory /nix/store, where each package has its own unique
|
|
|
|
|
sub-directory.")
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license license:lgpl2.1+)))
|
2015-02-21 19:59:08 +01:00
|
|
|
|
|
2017-08-25 21:43:23 +02:00
|
|
|
|
(define-public emacs-nix-mode
|
|
|
|
|
(package
|
|
|
|
|
(inherit nix)
|
|
|
|
|
(name "emacs-nix-mode")
|
|
|
|
|
(build-system emacs-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'chdir-elisp
|
|
|
|
|
;; Elisp directory is not in root of the source.
|
|
|
|
|
(lambda _
|
|
|
|
|
(chdir "misc/emacs"))))))
|
|
|
|
|
(synopsis "Emacs major mode for editing Nix expressions")
|
|
|
|
|
(description "@code{nixos-mode} provides an Emacs major mode for editing
|
|
|
|
|
Nix expressions. It supports syntax highlighting, indenting and refilling of
|
|
|
|
|
comments.")))
|
|
|
|
|
|
2015-02-21 19:59:08 +01:00
|
|
|
|
(define-public stow
|
|
|
|
|
(package
|
|
|
|
|
(name "stow")
|
2015-11-11 23:45:29 +01:00
|
|
|
|
(version "2.2.2")
|
2015-02-21 19:59:08 +01:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/stow/stow-"
|
|
|
|
|
version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2015-11-11 23:45:29 +01:00
|
|
|
|
"1pvky9fayms4r6fhns8jd0vavszd7d979w62vfd5n88v614pdxz2"))))
|
2015-02-21 19:59:08 +01:00
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(inputs
|
|
|
|
|
`(("perl" ,perl)))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("perl-test-simple" ,perl-test-simple)
|
|
|
|
|
("perl-test-output" ,perl-test-output)
|
2015-11-11 23:45:29 +01:00
|
|
|
|
("perl-capture-tiny" ,perl-capture-tiny)
|
|
|
|
|
("perl-io-stringy" ,perl-io-stringy)))
|
2015-02-21 19:59:08 +01:00
|
|
|
|
(home-page "https://www.gnu.org/software/stow/")
|
|
|
|
|
(synopsis "Managing installed software packages")
|
|
|
|
|
(description
|
|
|
|
|
"GNU Stow is a symlink manager. It generates symlinks to directories
|
|
|
|
|
of data and makes them appear to be merged into the same directory. It is
|
|
|
|
|
typically used for managing software packages installed from source, by
|
|
|
|
|
letting you install them apart in distinct directories and then create
|
|
|
|
|
symlinks to the files in a common directory such as /usr/local.")
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license license:gpl2+)))
|
2015-10-26 00:13:03 +01:00
|
|
|
|
|
|
|
|
|
(define-public rpm
|
|
|
|
|
(package
|
|
|
|
|
(name "rpm")
|
2017-11-09 00:59:37 +01:00
|
|
|
|
(version "4.13.0.2")
|
2015-10-26 00:13:03 +01:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
2017-08-18 04:34:37 +02:00
|
|
|
|
(uri (string-append "http://ftp.rpm.org/releases/rpm-"
|
|
|
|
|
(version-major+minor version) ".x/rpm-"
|
2015-10-26 00:13:03 +01:00
|
|
|
|
version ".tar.bz2"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2017-11-09 00:59:37 +01:00
|
|
|
|
"1521y4ghjns449kzpwkjn9cksh686383xnfx0linzlalqc3jqgig"))))
|
2015-10-26 00:13:03 +01:00
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
'(#:configure-flags '("--with-external-db" ;use the system's bdb
|
|
|
|
|
"--enable-python"
|
|
|
|
|
"--without-lua")
|
|
|
|
|
#:phases (modify-phases %standard-phases
|
|
|
|
|
(add-before 'configure 'set-nspr-search-path
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
;; nspr.pc contains the right -I flag pointing to
|
|
|
|
|
;; 'include/nspr', but unfortunately 'configure' doesn't
|
|
|
|
|
;; use 'pkg-config'. Thus, augment CPATH.
|
|
|
|
|
;; Likewise for NSS.
|
|
|
|
|
(let ((nspr (assoc-ref inputs "nspr"))
|
|
|
|
|
(nss (assoc-ref inputs "nss")))
|
|
|
|
|
(setenv "CPATH"
|
2016-01-05 13:58:36 +01:00
|
|
|
|
(string-append (getenv "C_INCLUDE_PATH") ":"
|
2015-10-26 00:13:03 +01:00
|
|
|
|
nspr "/include/nspr:"
|
|
|
|
|
nss "/include/nss"))
|
|
|
|
|
(setenv "LIBRARY_PATH"
|
|
|
|
|
(string-append (getenv "LIBRARY_PATH") ":"
|
|
|
|
|
nss "/lib/nss"))
|
|
|
|
|
#t)))
|
|
|
|
|
(add-after 'install 'fix-rpm-symlinks
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
;; 'make install' gets these symlinks wrong. Fix them.
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bin (string-append out "/bin")))
|
|
|
|
|
(with-directory-excursion bin
|
|
|
|
|
(for-each (lambda (file)
|
|
|
|
|
(delete-file file)
|
|
|
|
|
(symlink "rpm" file))
|
|
|
|
|
'("rpmquery" "rpmverify"))
|
|
|
|
|
#t)))))))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("pkg-config" ,pkg-config)))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("python" ,python-2)
|
|
|
|
|
("xz" ,xz)
|
|
|
|
|
("bdb" ,bdb)
|
|
|
|
|
("popt" ,popt)
|
|
|
|
|
("nss" ,nss)
|
|
|
|
|
("nspr" ,nspr)
|
|
|
|
|
("libarchive" ,libarchive)
|
|
|
|
|
("nettle" ,nettle) ;XXX: actually a dependency of libarchive
|
|
|
|
|
("file" ,file)
|
|
|
|
|
("bzip2" ,bzip2)
|
|
|
|
|
("zlib" ,zlib)
|
|
|
|
|
("cpio" ,cpio)))
|
|
|
|
|
(home-page "http://www.rpm.org/")
|
|
|
|
|
(synopsis "The RPM Package Manager")
|
|
|
|
|
(description
|
|
|
|
|
"The RPM Package Manager (RPM) is a command-line driven package
|
|
|
|
|
management system capable of installing, uninstalling, verifying, querying,
|
|
|
|
|
and updating computer software packages. Each software package consists of an
|
|
|
|
|
archive of files along with information about the package like its version, a
|
|
|
|
|
description. There is also a library permitting developers to manage such
|
|
|
|
|
transactions from C or Python.")
|
|
|
|
|
|
|
|
|
|
;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+.
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license license:gpl2+)))
|
2015-10-26 00:13:03 +01:00
|
|
|
|
|
2015-10-27 21:01:55 +01:00
|
|
|
|
(define-public diffoscope
|
|
|
|
|
(package
|
|
|
|
|
(name "diffoscope")
|
2017-12-31 23:17:01 +01:00
|
|
|
|
(version "90")
|
2015-10-27 21:01:55 +01:00
|
|
|
|
(source (origin
|
2016-02-25 01:15:01 +01:00
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (pypi-uri name version))
|
2015-10-27 21:01:55 +01:00
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2017-12-31 23:17:01 +01:00
|
|
|
|
"0hhg26vi0z2q4gwklwq4k16hibc4kq16jvyzp6zhr4kspi07wl6i"))))
|
2015-10-27 21:01:55 +01:00
|
|
|
|
(build-system python-build-system)
|
|
|
|
|
(arguments
|
2016-02-25 01:15:01 +01:00
|
|
|
|
`(#:phases (modify-phases %standard-phases
|
|
|
|
|
;; setup.py mistakenly requires python-magic from PyPi, even
|
|
|
|
|
;; though the Python bindings of `file` are sufficient.
|
|
|
|
|
;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815844
|
|
|
|
|
(add-after 'unpack 'dependency-on-python-magic
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "setup.py"
|
2017-01-01 10:42:46 +01:00
|
|
|
|
(("'python-magic',") ""))))
|
|
|
|
|
(add-after 'unpack 'embed-tool-references
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
2017-02-21 15:59:10 +01:00
|
|
|
|
(substitute* "diffoscope/comparators/utils/compare.py"
|
2017-01-01 10:42:46 +01:00
|
|
|
|
(("\\['xxd',")
|
|
|
|
|
(string-append "['" (which "xxd") "',")))
|
|
|
|
|
(substitute* "diffoscope/comparators/elf.py"
|
|
|
|
|
(("@tool_required\\('readelf'\\)") "")
|
2017-11-24 21:58:57 +01:00
|
|
|
|
(("get_tool_name\\('readelf'\\)")
|
|
|
|
|
(string-append "'" (which "readelf") "'")))
|
|
|
|
|
(substitute* "diffoscope/comparators/directory.py"
|
|
|
|
|
(("@tool_required\\('stat'\\)") "")
|
|
|
|
|
(("@tool_required\\('getfacl'\\)") "")
|
|
|
|
|
(("\\['stat',")
|
|
|
|
|
(string-append "['" (which "stat") "',"))
|
|
|
|
|
(("\\['getfacl',")
|
|
|
|
|
(string-append "['" (which "getfacl") "',")))
|
2017-11-05 20:54:27 +01:00
|
|
|
|
#t))
|
|
|
|
|
(add-before 'check 'delete-failing-test
|
|
|
|
|
(lambda _
|
|
|
|
|
(delete-file "tests/test_tools.py") ;this requires /sbin to be on the path
|
2017-01-01 10:42:46 +01:00
|
|
|
|
#t)))))
|
2015-10-27 21:01:55 +01:00
|
|
|
|
(inputs `(("rpm" ,rpm) ;for rpm-python
|
2016-02-25 01:15:01 +01:00
|
|
|
|
("python-file" ,python-file)
|
|
|
|
|
("python-debian" ,python-debian)
|
|
|
|
|
("python-libarchive-c" ,python-libarchive-c)
|
|
|
|
|
("python-tlsh" ,python-tlsh)
|
2017-11-24 21:58:57 +01:00
|
|
|
|
("acl" ,acl) ;for getfacl
|
2017-01-01 10:42:46 +01:00
|
|
|
|
("colordiff" ,colordiff)
|
2017-09-22 12:14:58 +02:00
|
|
|
|
("xxd" ,xxd)
|
2015-10-27 21:01:55 +01:00
|
|
|
|
|
|
|
|
|
;; Below are modules used for tests.
|
2016-02-25 01:15:01 +01:00
|
|
|
|
("python-pytest" ,python-pytest)
|
|
|
|
|
("python-chardet" ,python-chardet)))
|
2017-08-04 04:30:11 +02:00
|
|
|
|
(home-page "https://diffoscope.org/")
|
2015-10-27 21:01:55 +01:00
|
|
|
|
(synopsis "Compare files, archives, and directories in depth")
|
|
|
|
|
(description
|
|
|
|
|
"Diffoscope tries to get to the bottom of what makes files or directories
|
|
|
|
|
different. It recursively unpacks archives of many kinds and transforms
|
|
|
|
|
various binary formats into more human readable forms to compare them. It can
|
|
|
|
|
compare two tarballs, ISO images, or PDFs just as easily.")
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license license:gpl3+)))
|
2017-07-18 10:37:07 +02:00
|
|
|
|
|
|
|
|
|
(define-public python-anaconda-client
|
|
|
|
|
(package
|
|
|
|
|
(name "python-anaconda-client")
|
|
|
|
|
(version "1.6.3")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "https://github.com/Anaconda-Platform/"
|
|
|
|
|
"anaconda-client/archive/" version ".tar.gz"))
|
|
|
|
|
(file-name (string-append name "-" version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1wv4wi6k5jz7rlwfgvgfdizv77x3cr1wa2aj0k1595g7fbhkjhz2"))))
|
|
|
|
|
(build-system python-build-system)
|
|
|
|
|
(propagated-inputs
|
|
|
|
|
`(("python-pyyaml" ,python-pyyaml)
|
|
|
|
|
("python-requests" ,python-requests)
|
|
|
|
|
("python-clyent" ,python-clyent)))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("python-pytz" ,python-pytz)
|
|
|
|
|
("python-dateutil" ,python-dateutil)
|
|
|
|
|
("python-mock" ,python-mock)
|
|
|
|
|
("python-coverage" ,python-coverage)
|
|
|
|
|
("python-pillow" ,python-pillow)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
;; This is needed for some tests.
|
|
|
|
|
(add-before 'check 'set-up-home
|
|
|
|
|
(lambda* _ (setenv "HOME" "/tmp") #t))
|
|
|
|
|
(add-before 'check 'remove-network-tests
|
|
|
|
|
(lambda* _
|
|
|
|
|
;; Remove tests requiring a network connection
|
|
|
|
|
(let ((network-tests '("tests/test_upload.py"
|
|
|
|
|
"tests/test_authorizations.py"
|
|
|
|
|
"tests/test_login.py"
|
|
|
|
|
"tests/test_whoami.py"
|
|
|
|
|
"utils/notebook/tests/test_data_uri.py"
|
|
|
|
|
"utils/notebook/tests/test_base.py"
|
|
|
|
|
"utils/notebook/tests/test_downloader.py"
|
|
|
|
|
"inspect_package/tests/test_conda.py")))
|
|
|
|
|
(with-directory-excursion "binstar_client"
|
|
|
|
|
(for-each delete-file network-tests)))
|
|
|
|
|
#t)))))
|
|
|
|
|
(home-page "https://github.com/Anaconda-Platform/anaconda-client")
|
|
|
|
|
(synopsis "Anaconda Cloud command line client library")
|
|
|
|
|
(description
|
|
|
|
|
"Anaconda Cloud command line client library provides an interface to
|
|
|
|
|
Anaconda Cloud. Anaconda Cloud is useful for sharing packages, notebooks and
|
|
|
|
|
environments.")
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license license:bsd-3)))
|
2017-07-18 10:37:07 +02:00
|
|
|
|
|
|
|
|
|
(define-public python2-anaconda-client
|
|
|
|
|
(package-with-python2 python-anaconda-client))
|
2017-07-18 10:37:08 +02:00
|
|
|
|
|
|
|
|
|
(define-public python-conda
|
|
|
|
|
(package
|
|
|
|
|
(name "python-conda")
|
|
|
|
|
(version "4.3.16")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "https://github.com/conda/conda/archive/"
|
|
|
|
|
version ".tar.gz"))
|
|
|
|
|
(file-name (string-append name "-" version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1jq8hyrc5npb5sf4vw6s6by4602yj8f79vzpbwdfgpkn02nfk1dv"))))
|
|
|
|
|
(build-system python-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-before 'build 'create-version-file
|
|
|
|
|
(lambda _
|
|
|
|
|
(with-output-to-file "conda/.version"
|
|
|
|
|
(lambda () (display ,version)))
|
|
|
|
|
#t))
|
|
|
|
|
(add-before 'check 'remove-failing-tests
|
|
|
|
|
(lambda _
|
|
|
|
|
;; These tests require internet/network access
|
|
|
|
|
(let ((network-tests '("test_cli.py"
|
|
|
|
|
"test_create.py"
|
|
|
|
|
"test_export.py"
|
|
|
|
|
"test_fetch.py"
|
|
|
|
|
"test_history.py"
|
|
|
|
|
"test_info.py"
|
|
|
|
|
"test_install.py"
|
|
|
|
|
"test_priority.py"
|
|
|
|
|
"conda_env/test_cli.py"
|
|
|
|
|
"conda_env/test_create.py"
|
|
|
|
|
"conda_env/specs/test_notebook.py"
|
|
|
|
|
"conda_env/utils/test_notebooks.py"
|
|
|
|
|
"core/test_index.py"
|
|
|
|
|
"core/test_repodata.py")))
|
|
|
|
|
(with-directory-excursion "tests"
|
|
|
|
|
(for-each delete-file network-tests)
|
|
|
|
|
|
|
|
|
|
;; FIXME: This test creates a file, then deletes it and tests
|
|
|
|
|
;; that the file was deleted. For some reason it fails when
|
|
|
|
|
;; building with guix, but does not when you run it in the
|
|
|
|
|
;; directory left when you build with the --keep-failed
|
|
|
|
|
;; option
|
|
|
|
|
(delete-file "gateways/disk/test_delete.py")
|
|
|
|
|
#t))))
|
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda _
|
|
|
|
|
(setenv "HOME" "/tmp")
|
|
|
|
|
(zero? (system* "py.test")))))))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("python-ruamel.yaml" ,python-ruamel.yaml)
|
|
|
|
|
("python-requests" ,python-requests)
|
|
|
|
|
("python-pycosat" ,python-pycosat)
|
|
|
|
|
("python-pytest" ,python-pytest)
|
|
|
|
|
("python-responses" ,python-responses)
|
|
|
|
|
("python-pyyaml" ,python-pyyaml)
|
|
|
|
|
("python-anaconda-client" ,python-anaconda-client)))
|
|
|
|
|
(home-page "https://github.com/conda/conda")
|
|
|
|
|
(synopsis "Cross-platform, OS-agnostic, system-level binary package manager")
|
|
|
|
|
(description
|
|
|
|
|
"Conda is a cross-platform, Python-agnostic binary package manager. It
|
|
|
|
|
is the package manager used by Anaconda installations, but it may be used for
|
|
|
|
|
other systems as well. Conda makes environments first-class citizens, making
|
|
|
|
|
it easy to create independent environments even for C libraries. Conda is
|
|
|
|
|
written entirely in Python.
|
|
|
|
|
|
|
|
|
|
This package provides Conda as a library.")
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license license:bsd-3)))
|
2017-07-18 10:37:08 +02:00
|
|
|
|
|
|
|
|
|
(define-public python2-conda
|
2017-08-02 20:36:05 +02:00
|
|
|
|
(let ((base (package-with-python2
|
|
|
|
|
(strip-python2-variant python-conda))))
|
|
|
|
|
(package (inherit base)
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("python2-enum34" ,python2-enum34)
|
|
|
|
|
,@(package-native-inputs base))))))
|
2017-07-18 10:37:09 +02:00
|
|
|
|
|
|
|
|
|
(define-public conda
|
|
|
|
|
(package (inherit python-conda)
|
|
|
|
|
(name "conda")
|
|
|
|
|
(arguments
|
|
|
|
|
(substitute-keyword-arguments (package-arguments python-conda)
|
|
|
|
|
((#:phases phases)
|
|
|
|
|
`(modify-phases ,phases
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
;; This test fails when run before installation.
|
|
|
|
|
(delete-file "tests/test_activate.py")
|
|
|
|
|
|
|
|
|
|
;; Fix broken defaults
|
|
|
|
|
(substitute* "conda/base/context.py"
|
|
|
|
|
(("return sys.prefix")
|
|
|
|
|
(string-append "return \"" (assoc-ref outputs "out") "\""))
|
|
|
|
|
(("return (prefix_is_writable\\(self.root_prefix\\))" _ match)
|
|
|
|
|
(string-append "return False if self.root_prefix == self.conda_prefix else "
|
|
|
|
|
match)))
|
|
|
|
|
|
|
|
|
|
;; The util/setup-testing.py is used to build conda in
|
|
|
|
|
;; application form, rather than the default, library form.
|
|
|
|
|
;; With this, we are able to run commands like `conda --help`
|
|
|
|
|
;; directly on the command line
|
|
|
|
|
(zero? (system* "python" "utils/setup-testing.py" "build_py"))))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(target (string-append out "/lib/python"
|
|
|
|
|
((@@ (guix build python-build-system)
|
|
|
|
|
get-python-version)
|
|
|
|
|
(assoc-ref inputs "python"))
|
|
|
|
|
"/site-packages/")))
|
|
|
|
|
;; The installer aborts if the target directory is not on
|
|
|
|
|
;; PYTHONPATH.
|
|
|
|
|
(setenv "PYTHONPATH"
|
|
|
|
|
(string-append target ":" (getenv "PYTHONPATH")))
|
|
|
|
|
|
|
|
|
|
;; And it aborts if the directory doesn't exist.
|
|
|
|
|
(mkdir-p target)
|
|
|
|
|
(zero? (system* "python" "utils/setup-testing.py" "install"
|
2017-11-03 00:10:36 +01:00
|
|
|
|
(string-append "--prefix=" out))))))
|
|
|
|
|
;; The "activate" and "deactivate" scripts don't need wrapping.
|
|
|
|
|
;; They also break when they are renamed.
|
|
|
|
|
(add-after 'wrap 'undo-wrap
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(with-directory-excursion (string-append (assoc-ref outputs "out") "/bin/")
|
|
|
|
|
(delete-file "deactivate")
|
|
|
|
|
(rename-file ".deactivate-real" "deactivate")
|
|
|
|
|
(delete-file "activate")
|
|
|
|
|
(rename-file ".activate-real" "activate")
|
|
|
|
|
#t)))))))
|
2017-07-18 10:37:09 +02:00
|
|
|
|
(description
|
|
|
|
|
"Conda is a cross-platform, Python-agnostic binary package manager. It
|
|
|
|
|
is the package manager used by Anaconda installations, but it may be used for
|
|
|
|
|
other systems as well. Conda makes environments first-class citizens, making
|
|
|
|
|
it easy to create independent environments even for C libraries. Conda is
|
|
|
|
|
written entirely in Python.")))
|
2017-10-27 11:17:43 +02:00
|
|
|
|
|
|
|
|
|
(define-public gwl
|
|
|
|
|
(package
|
|
|
|
|
(name "gwl")
|
2017-12-19 12:27:43 +01:00
|
|
|
|
(version "0.1.1")
|
2017-10-27 11:17:43 +02:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "https://www.guixwl.org/releases/gwl-"
|
|
|
|
|
version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2017-12-19 12:27:43 +01:00
|
|
|
|
"06pm967mq1wyggx7l0nfapw5s0k5qc5r9lawk2v3db868br779a7"))))
|
2017-10-27 11:17:43 +02:00
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("autoconf" ,autoconf)
|
|
|
|
|
("automake" ,automake)
|
|
|
|
|
("pkg-config" ,pkg-config)))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("guile" ,guile-2.2)))
|
|
|
|
|
(propagated-inputs
|
|
|
|
|
`(("guix" ,guix)
|
|
|
|
|
("guile-commonmark" ,guile-commonmark)))
|
|
|
|
|
(home-page "https://www.guixwl.org")
|
|
|
|
|
(synopsis "Workflow management extension for GNU Guix")
|
|
|
|
|
(description "This project provides two subcommands to GNU Guix and
|
|
|
|
|
introduces two record types that provide a workflow management extension built
|
|
|
|
|
on top of GNU Guix.")
|
|
|
|
|
;; The Scheme modules in guix/ and gnu/ are licensed GPL3+,
|
|
|
|
|
;; the web interface modules in gwl/ are licensed AGPL3+,
|
|
|
|
|
;; and the fonts included in this package are licensed OFL1.1.
|
2018-01-17 22:03:57 +01:00
|
|
|
|
(license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
|
2018-01-19 02:52:22 +01:00
|
|
|
|
|
|
|
|
|
(define-public gcab
|
|
|
|
|
(package
|
|
|
|
|
(name "gcab")
|
2018-02-27 01:46:58 +01:00
|
|
|
|
(version "1.1")
|
2018-01-19 02:52:22 +01:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
|
|
|
|
version "/" name "-" version ".tar.xz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2018-02-27 01:46:58 +01:00
|
|
|
|
"0l19sr6pg0cfcddmi5n79d08mjjbhn427ip5jlsy9zddq9r24aqr"))
|
|
|
|
|
;; gcab 1.1 has a hard dependency on git — even when building
|
|
|
|
|
;; from a tarball. Remove it early so ‘guix environment gcab’
|
|
|
|
|
;; can actually build what ‘guix build --source gcab’ returns.
|
|
|
|
|
(modules '((guix build utils)))
|
|
|
|
|
(snippet
|
|
|
|
|
'(begin
|
|
|
|
|
(substitute* "meson.build"
|
|
|
|
|
(("git_version = .*$") "git_version = []\n"))
|
|
|
|
|
#t))))
|
2018-01-26 01:51:59 +01:00
|
|
|
|
(build-system meson-build-system)
|
2018-01-19 02:52:22 +01:00
|
|
|
|
(native-inputs
|
2018-01-26 01:51:59 +01:00
|
|
|
|
`(("glib:bin" ,glib "bin") ; for glib-mkenums
|
|
|
|
|
("intltool" ,intltool)
|
|
|
|
|
("pkg-config" ,pkg-config)
|
|
|
|
|
("vala" ,vala)))
|
2018-01-19 02:52:22 +01:00
|
|
|
|
(inputs
|
|
|
|
|
`(("glib" ,glib)
|
|
|
|
|
("zlib" ,zlib)))
|
2018-01-26 01:51:59 +01:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:configure-flags
|
|
|
|
|
;; XXX This ‘documentation’ is for developers, and fails informatively:
|
|
|
|
|
;; Error in gtkdoc helper script: 'gtkdoc-mkhtml' failed with status 5
|
|
|
|
|
(list "-Ddocs=false"
|
|
|
|
|
"-Dintrospection=false")))
|
2018-01-19 02:52:22 +01:00
|
|
|
|
(home-page "https://wiki.gnome.org/msitools") ; no dedicated home page
|
|
|
|
|
(synopsis "Microsoft Cabinet file manipulation library")
|
|
|
|
|
(description
|
|
|
|
|
"The libgcab library provides GObject functions to read, write, and modify
|
|
|
|
|
Microsoft cabinet (.@dfn{CAB}) files.")
|
|
|
|
|
(license (list license:gpl2+ ; tests/testsuite.at
|
|
|
|
|
license:lgpl2.1+)))) ; the rest
|
2018-01-19 02:52:23 +01:00
|
|
|
|
|
|
|
|
|
(define-public msitools
|
|
|
|
|
(package
|
|
|
|
|
(name "msitools")
|
|
|
|
|
(version "0.97")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
|
|
|
|
version "/" name "-" version ".tar.xz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0pn6izlgwi4ngpk9jk2n38gcjjpk29nm15aad89bg9z3k9n2hnrs"))))
|
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("pkg-config" ,pkg-config)))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("gcab" ,gcab)
|
|
|
|
|
("glib" ,glib)
|
|
|
|
|
("libgsf" ,libgsf)
|
|
|
|
|
("libxml2" ,libxml2)
|
|
|
|
|
("uuid" ,util-linux)))
|
|
|
|
|
(home-page "https://wiki.gnome.org/msitools")
|
|
|
|
|
(synopsis "Windows Installer file manipulation tool")
|
|
|
|
|
(description
|
|
|
|
|
"msitools is a collection of command-line tools to inspect, extract, build,
|
|
|
|
|
and sign Windows@tie{}Installer (.@dfn{MSI}) files. It aims to be a solution
|
|
|
|
|
for packaging and deployment of cross-compiled Windows applications.")
|
|
|
|
|
(license license:lgpl2.1+)))
|