Commit graph

72674 commits

Author SHA1 Message Date
Lars-Dominik Braun
1a9d771f99
gnu: python-pytest-xdist: Add missing input, relax pytest requirement.
* gnu/packages/check.scm: (python-pytest-xdist)
[arguments]: Relax pytest version requirements.
[propagated-inputs]: Add python-pytest-forked.
2021-02-01 11:53:43 -05:00
Lars-Dominik Braun
09448c0994
build/python: Add a sanity check phase.
Add a new phase validating the usability of installed Python packages.

* gnu/packages/aux-files/python/sanity-check.py: New file.
* Makefile.am (AUX_FILES): Register it.
* guix/build-system/python.scm (sanity-check.py): New variable.
(lower): Add the script as an implicit input.
* guix/build/python-build-system.scm: Remove trailing #t.
(sanity-check): New phase.
(%standard-phases): Use it.
* tests/builders.scm: (make-python-dummy)
(dummy-ok, dummy-dummy-nosetuptools, dummy-fail-requirements)
(dummy-fail-import, dummy-fail-console-script): New variables.
("python-build-system: dummy-ok")
("python-build-system: dummy-dummy-nosetuptools")
("python-build-system: dummy-fail-requirements")
("python-build-system: dummy-fail-import")
("python-build-system: dummy-fail-console-script"): Add tests.
2021-02-01 11:53:43 -05:00
Maxim Cournoyer
8a15ecf0e3
build/python: Adjust wrap phase to use the new GUIX_PYTHONPATH.
* guix/build/python-build-system.scm (wrap): Adjust to use the new
GUIX_PYTHONPATH.  Remove trailing #t.
2021-02-01 11:53:43 -05:00
Maxim Cournoyer
15dcffecf2
build/python: Add the installation bin directory to PATH.
This also to reduce the need for boilerplate code found in check phase
overrides.

* guix/build/python-build-system.scm (add-install-to-path): New phase.
(%standard-phases): Order it before the check phase.
2021-02-01 11:53:43 -05:00
Maxim Cournoyer
91cf9d17f0
build/python: Always add the install prefix to the Guix PYTHONPATH.
This is to remove the need for common boilerplate code in check phase
overrides.

* guix/build/python-build-system.scm
(add-installed-pythonpath): Streamline.  This phase depends on the presence of
a "python" input; thus GUIX_PYTHONPATH is guaranteed to be defined.  Update doc.
(add-install-to-pythonpath): New phase.
(%standard-phases): Order it before the check phase.
2021-02-01 11:53:43 -05:00
Maxim Cournoyer
18e9979970
build/python: Replace PYTHONPATH by GUIX_PYTHONPATH.
* guix/build/python-build-system.scm (add-installed-pythonpath): Replace
"PYTHONPATH" by "GUIX_PYTHONPATH".
2021-02-01 11:53:43 -05:00
Maxim Cournoyer
cb72f9a773
gnu: python: Replace PYTHONPATH by GUIX_PYTHONPATH.
Using PYTHONPATH as a mean to discover the Python packages had the following
issues:

        1. It is not versioned, so different versions of Python would clash if
        installed in a shared profile.

        2. It would interfere with the host Python site on foreign
        distributions, sometimes preventing a a user to login their GDM
        session (!).

        3. It would take precedence over user installed Python packages
        installed through pip.

        4. It would leak into Python virtualenvs, which are supposed to create
        isolated Python environments.

This changes fixes the above issues by making use of a sitecustomize.py
module.  The newly introduced GUIX_PYTHONPATH environment variable is read
from the environment, filtered for the current Python version of the
interpreter, and spliced in 'sys.path' just before Python's own site location,
which provides the expected behavior.

* gnu/packages/aux-files/python/sitecustomize.py: New file.
* Makefile.am: Register it.
* gnu/packages/python.scm (customize-site)
(guix-pythonpath-search-path): New procedures.
(python-2.7)[phases]{install-sitecustomize.py}: New phase.
[native-inputs]{sitecustomize.py}: New input.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
(python-3.9)[native-search-paths]: Likewise.
[phases]{install-sitecustomize}: Override with correct version.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
* gnu/packages/commencement.scm (python-boot0):
[phases]{install-sitecustomize}: Likewise.
[native-inputs]{sitecustomize.py}: New input.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
* guix/build/python-build-system.scm (site-packages): Do not add a trailing
'/'.

squash! gnu: python: Replace PYTHONPATH by GUIX_PYTHONPATH.
2021-02-01 11:53:42 -05:00
Raghav Gururajan
6a4b336c42
gnu: pixman: Update to 0.40.0.
* gnu/packages/xdisorg.scm (pixman) [version]: Update to 0.40.0.
[license]: Change from X11 to expat.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-01-31 17:22:20 -05:00
Raghav Gururajan
711316946f
gnu: pixman: Enable some features.
* gnu/packages/xdisorg.scm (pixman) [arguments] Pass --enable-timers and
--enable-gnuplot to #:configure-flags.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-01-31 17:22:20 -05:00
Raghav Gururajan
ce5f9afcd1
gnu: openjpeg: Enable tests.
* gnu/packages/image.scm (openjpeg)[arguments]: Enable the test suite.
Pass -DBUILD_UNIT_TESTS, -DBUILD_TESTING, and -DOPJ_DATA_ROOT
to #:configure-flags. Add a new 'disable-failing-tests' phase.
[native-inputs]: Add openjpeg-data.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-01-31 17:22:13 -05:00
Maxim Cournoyer
0ad27959d8
gnu: fontconfig: Update to 2.13.93.
* gnu/packages/patches/fontconfig-hurd-path-max.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Un-register file.
* gnu/packages/fontutils.scm (fontconfig)[source]
{uri}: Use the .tar.xz archive.
{patches}: Remove field.  The patch was merged upstream.
[native-inputs]: Add python-minimal.
[phases]{skip-problematic-tests}: Add phase.
[configure-flags]: Do not set PYTHON to false.
* gnu/packages/fontutils.scm (fontconfig-with-documentation)
[native-inputs]: Add docbook-utils.
2021-01-29 15:05:41 -05:00
Maxim Cournoyer
7f9da31c31
gnu: fontconfig-with-documentation: New variable.
In what will become fontconfig 2.14, the complete documentation of fontconfig
requires multiple dependencies that would be problematic to add to this core
package; instead, keep the 'fontconfig' variable package lean and create a new
'fontconfig-with-documentation' package that will be known as "fontconfig" to
the users.

* gnu/packages/fontutils.scm (fontconfig): Hide package.
[outputs]: Remove doc output.
[configure-flags]: Add "--disable-docs" argument.
[phases]{remove-pdf-files}: Remove phase.
{move-man-sections}: Move to...
(fontconfig-with-documentation): ... this new variable with a doc output.
2021-01-29 14:55:07 -05:00
Maxim Cournoyer
82f5f6b14c
gnu: Replace all uses of texlive-union by texlive-updmap.cfg.
* doc/build.scm (pdf-manual) Replace texlive-union by texlive-updmap.cfg.
* gnu/packages/algebra.scm (pari-gp): Likewise.
* gnu/packages/bioinformatics.scm (discrover, velvet): Likewise.
* gnu/packages/chez.scm (chez-scheme, chez-web, chez-sockets): Likewise.
* gnu/packages/docbook.scm (dblatex): Likewise.
* gnu/packages/emacs-xyz.scm (emacs-auctex): Likewise.
* gnu/packages/engineering.scm (fastcap): Likewise.
* gnu/packages/guile-xyz.scm (emacsy, guile-cv): Likewise.
* gnu/packages/lisp.scm (sbcl): Likewise.
* gnu/packages/maths.scm (octave, hypre): Likewise.
* gnu/packages/music.scm (lilypond): Likewise.
* gnu/packages/plotutils.scm (asymptote): Likewise.
* gnu/packages/python-xyz.scm (python-numpy-documentation)
(python-matplotlib-documentation, python-ipython-documentation)
(python-pypandoc): Likewise.
* gnu/packages/radio.scm (gnuradio, libosmo-dsp): Likewise.
* gnu/packages/scheme.scm (mit-scheme): Likewise.
* gnu/packages/statistics.scm (r-with-tests): Likewise.
* gnu/packages/tex.scm (simple-texlive-package)
(texlive-xmltex, texlive-tiny, texlive-jadetex, teximpatient, lyx): Likewise.
2021-01-29 13:35:47 -05:00
Maxim Cournoyer
57fad03c4f
gnu: texlive-amsfonts: Adjust to build with texlive-updmap.cfg.
* gnu/packages/tex.scm (texlive-amsfonts)[phases]
{build-fonts}: Do not set SOURCE_DATE_EPOCH, already done by the build
system.  Let resources be auto-discovered by TeX Live machinery by simply
setting GUIX_TEXMF.  Remove references to the texlive-union input.  Remove
trailing #t.
{install-generated-fonts}: Remove trailing #t.
[native-inputs]: Replace texlive-union by texlive-updmap.cfg.  Remove the
texlive-cm and texlive-metafont arguments of texlive-updmap.cfg.
2021-01-29 13:35:47 -05:00
Maxim Cournoyer
04a0b1e09a
gnu: texlive-bin: Enable the use of multiple TeX Live trees.
Attempting to compose multiple TeX Live trees (such as can happen when using a
texlive-union generated package) proved problematic; only the texmf.cnf
configuration file from the union would be honored, causing other TeX Live
components to be ignored.

This change does away with TeX Live unions, instead relying on the default
texmf.cnf configuration file provided by the texlive-bin package to honor
individual TeX Live trees referred to via the newly introduced GUIX_TEXMF
variable, and replacing the texlive-union procedure by texlive-updmap.cfg, to
explicit that generating the fonts map configuration is now its sole purpose.

* gnu/packages/tex.scm (texlive-bin)[phases]{customize-texmf}: New phase.
{postint}: Move the patching of the texmf.cnf file to the new above phase.
Patch the updmap.pl script to find its Perl modules.
[native-search-paths]: Rename the TEXMF variable to GUIX_TEXMF.  Remove the
TEXMFCNF variable.
* guix/profiles.scm (texlive-configuration): Remove procedure.
(%default-profile-hooks)[texlive-configuration]: Unregister hook.
(texlive-union): Alias to what has moved to...
(texlivke-updmap.cfg): ... here.  Update doc.  Do not provide a different
texmf.cnf configuration.
[inherit]: Do not inherit from texlive-base.
[build-system]: Switch to the copy-build-system.
[arguments]{install-plan}: New argument.
[phases]{regenerate-updmap.cfg}: New phase, which keeps only the fonts map
generating code from the previous builder code.
[inputs]: Remove bash, and move to ...
[propagated-inputs]: ... here.
[native-inputs]: Remove field, and move the source of the base updmap.cfg file
to...
[source]: ... here.
[synopsis]: Update.
[description]: Likewise.
[license]: Delete duplicates.
2021-01-29 13:35:47 -05:00
Vincent Legoll
cf498048aa
gnu: libsigsegv: Update to 2.13.
* gnu/packages/libsigsegv.scm (libsigsegv): Update to 2.13.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-01-28 21:22:03 +02:00
Alexandros Theodotou
4c9a756ed9
gnu: libsndfile: Add opus support.
* gnu/packages/pulseaudio.scm (libsndfile)[inputs]: Move libvorbis,
libogg, flac ...
[propagated-inputs]: ... to here. Add opus.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-01-28 21:13:05 +02:00
Mathieu Othacehe
86cf4c0396
gnu: postgresql: Set default socket directory.
* gnu/packages/databases.scm (postgresql)[arguments]: Add 'set-socket-dir
phase.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 13:02:24 +01:00
Efraim Flashner
11a7bfbc46
gnu: certdata2pem: Fix cross compiling.
* gnu/packages/certs.scm (certdata2pem)[arguments]: Use cc-for-target.
2021-01-27 20:59:53 +02:00
Efraim Flashner
1001baa1e8
gnu: certdata2pem: Fix source URI.
* gnu/packages/certs.scm (certdata2pem)[source]: Download just the source.
2021-01-27 17:12:10 +02:00
Efraim Flashner
c643e6ca43
gnu: certs.scm: Add missing import.
* gnu/packages/certs.scm: Use (gnu packages perl).
2021-01-27 16:59:37 +02:00
Maxim Cournoyer
9e804e3880
gnu: nss-certs: Remove Python 2 and Perl build dependencies.
* gnu/packages/certs.scm (certdata2pem): Swap package to a C variant.
(nss-certs): Use 'openssl rehash' instead of the Perl 'c_rehash' script.
Adjust for the new certdata2pem program.  The number of certificates installed
compared to when using the previous script remains unchanged (139 at the time
of this commit).
2021-01-27 09:46:22 -05:00
Maxim Cournoyer
18c38c1898
gnu: nss-certs: Sync with the sources used for nss.
* gnu/packages/certs.scm (nss-certs)[version]: Reuse nss version.
[source]: Reuse nss source.
[phases]{install}: Adjust for the new NSS source files hierarchy.  Remove
trailing #t.
2021-01-27 09:30:16 -05:00
Maxim Cournoyer
cfcead2e51
build-systems/gnu: Allow unpacking/repacking more kind of files.
Before this change, only plain directories, tar or zip archives were supported
as the source of a package for the GNU build system; anything else would cause
the unpack phase to fail.  Origins relying on snippets would suffer from the
same problem.

This change adds the support to use files of the following extensions: .gz,
.Z, .bz2, .lz, and .xz, even when they are not tarballs.  Files of unknown
extensions are treated as uncompressed files and supported as well.

* guix/packages.scm (patch-and-repack): Only add the compressor utility to the
PATH when the file is compressed.  Bind more inputs in the mlet, and use them
for decompressing single files.  Adjust the decompression and compression
routines.
[decompression-type]: Remove nested variable.
* guix/build/utils.scm (compressor, tarball?): New procedures.  Move
%xz-parallel-args to the new 'compression helpers' section.
* tests/packages.scm: Add tests.  Add missing copyright year for Jan.
* guix/build/gnu-build-system.scm (first-subdirectory): Return #f when no
sub-directory was found.
(unpack): Support more file types, including uncompressed plain files.
2021-01-26 22:48:35 -05:00
Maxim Cournoyer
47a6a938c3
utils: Add NIX_STORE_DIR as a candidate for the value of the store directory.
On the daemon side, nixStore gets set to the environment variable
NIX_STORE_DIR, else the environment variable NIX_STORE else the compile time
macro NIX_STORE_DIR (see the Settings::processEnvironment method in
nix/libstore/globals.cc).  When creating a build environment, it sets
NIX_STORE with the value computed as described above.  Hence, it's safer to
look for both NIX_STORE_DIR and NIX_STORE in (guix build utils), so that it
works in any context (build context or external context).

* guix/build/utils.scm (%store-directory): Consider both NIX_STORE_DIR and
NIX_STORE as environment variables.
2021-01-26 22:48:35 -05:00
Greg Hogan
94cf367634
gnu: boost: Patch transitive linking bug.
* gnu/packages/patches/boost-fix-transitive-linking.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/boost.scm (boost)[source]: Use it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-01-26 23:32:54 +01:00
Maxim Cournoyer
ced3d5cbf9
gnu: nss: Update to the latest changeset to resolve test failures.
* gnu/packages/patches/nss-3.56-pkgconfig.patch: Update and ajdust.
* gnu/packages/patches/nss-increase-test-timeout.patch: Adjust.
* gnu/packages/nss.scm (nss)[version]: Compute with the git-version procedure.
[source]: Switch to use the latest changeset.  Adjust snippet to match
restructuring of the source file hierarchy.
[make-flags]: Do not chdir to the "nss" directory.
[phases]: Delete trailing #t.
{check}: Honor the '#:tests?' argument.  Update the date used with faketime
and adjust for the new all.sh script location.
{install}: Adapt to the location of the 'dist/' directory, which is now at the
same level as the 'source' checkout.
2021-01-26 14:22:34 -05:00
Nicolas Goaziou
3fe6281004
gnu: python-setuptools-scm: Update to 5.0.1.
* gnu/packages/python-xyz.scm (python-setuptools-scm): Update to 5.0.1.
2021-01-26 19:10:05 +01:00
Maxim Cournoyer
af3b67a28b
gnu: mercurial: Update to 5.6.1.
This fixes the build on Python 3.9.

* gnu/packages/version-control.scm (mercurial): Update to 5.6.1.  Delete
trailing #t.
[phases]{check}: Remove the "test-transaction-rollback-on-sigpipe.t" test
file and add a comment.
2021-01-26 08:21:03 -05:00
Efraim Flashner
fd2588472e
gnu: bison: Update to 3.7.5.
* gnu/packages/bison.scm (bison): Update to 3.7.5.
2021-01-26 11:27:13 +02:00
Efraim Flashner
77b5f4b195
gnu: binutils: Update to 2.36.
* gnu/packages/base.scm (binutils): Update to 2.36.
2021-01-26 11:26:41 +02:00
Efraim Flashner
6688d94ddb
gnu: %boot-tcc-inputs: Use gash-utils.
* gnu/packages/commencement.scm (%boot-tcc-inputs): Remove
diffutils-mesboot. Add gash-utils-boot.
(diffutils-mesboot): Remove variable.
2021-01-24 15:55:38 +02:00
Ludovic Courtès
2ea52f9014
gnu: guile: Disable parallel builds.
This works around <https://bugs.gnu.org/20272>, as discussed in
<https://lists.gnu.org/archive/html/guix-devel/2021-01/msg00273.html>.

* gnu/packages/guile.scm (guile-2.0)[arguments]: Pass #:parallel-build? #f.
2021-01-23 23:47:02 +01:00
Ludovic Courtès
ab62cbb340
gnu: ibus: Remove dependency on GConf.
GConf has been deprecated for a while.  This change removes GConf (and
thus ORBit) from the closure of GNOME.

* gnu/packages/ibus.scm (ibus)[inputs]: Remove GCONF.
2021-01-23 23:47:02 +01:00
Vincent Legoll
3c9e1faa95
gnu: zziplib: Update to 0.13.72.
* gnu/packages/compression.scm (zziplib): Update to 0.13.72.
[build-system]: Use cmake-build-system
[arguments]: Remove field.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-01-21 15:49:49 -05:00
Vincent Legoll
23386c12dc
gnu: libdrm: Update to 2.4.104.
* gnu/packages/xdisorg.scm (libdrm): Update to 2.4.104.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-01-21 15:44:04 -05:00
Vincent Legoll
e467bdb1f1
gnu: libarchive: Update to 3.5.1.
* gnu/packages/backup.scm (libarchive): Update to 3.5.1.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-01-19 23:01:47 -05:00
Efraim Flashner
26677ade68
gnu: automake: Update to 1.16.3.
* gnu/packages/autotools.scm (automake): Update to 1.16.3.
2021-01-19 21:31:57 +02:00
Ludovic Courtès
f41ff53293
packages: 'patch-and-repack' returns a directory when given a directory.
Previously, 'patch-and-repack' would always create a tar.xz archive as a
result, even if the input was a directory (a checkout).  This change
reduces gratuitous CPU and storage overhead.

* guix/packages.scm (patch-and-repack)[tarxz-name]: Remove 'checkout?' case.
[build](repack): New procedure, with "tar" invocation formerly at the
top level.
If SOURCE is a directory, call 'copy-recursively'; otherwise, call
'repack'.
Change NAME to ORIGINAL-FILE-NAME when it matches 'checkout?'.
2021-01-18 15:55:14 +01:00
Maxim Cournoyer
812a2931de
gnu: python-isort: Update to 5.7.0, fixing build on Python 3.9.
* gnu/packages/python-xyz.scm (python-isort): Update to 5.7.0.
[source]: Delete checked in binary wheels in a snippet.
[arguments]: New field.
[phases]: Replace the build and install phases, implementing the basics of a
PEP 517 build system.
{check}: Override phase.
{install-example-plugins}: New phase.
[native-inputs]: Remove python-mock.  Add git-minimal, python-black,
python-colorama, python-hypothesmith, python-libcst-minimal,
python-poetry-core, python-pylama, python-pypa-build and python-pytest-mock.
[home-page]: Update home page.
2021-01-15 16:33:11 -05:00
Maxim Cournoyer
762b9fe7be
gnu: python2-isort: Remove package.
* gnu/packages/python-xyz.scm (python-isort)[properties]: Remove field.
(python2-isort): Delete variable.
2021-01-15 16:33:11 -05:00
Maxim Cournoyer
9ea2fbd60d
gnu: python2-factory-boy: Remove package.
* gnu/packages/python-xyz.scm (python2-factory-boy): Remove variable.
2021-01-15 16:33:11 -05:00
Maxim Cournoyer
39be293c2c
gnu: python2-orator: Remove package.
* gnu/packages/databases.scm (python-orator)[properties]: Delete field.
(python2-orator): Remove variable.
2021-01-15 16:33:11 -05:00
Maxim Cournoyer
5d7d7e8505
gnu: python2-pylint: Remove package.
* gnu/packages/check.scm (python-pylint)[properties]: Delete field.
* gnu/packages/check.scm (python2-pylint): Remove variable.
2021-01-15 16:33:11 -05:00
Maxim Cournoyer
ccdc0e5e08
gnu: Add python-pylama.
* gnu/packages/python-check.scm (python-pylama): New variable.
2021-01-15 16:33:11 -05:00
Maxim Cournoyer
98b4466d67
gnu: Add python-mypy-minimal.
* gnu/packages/python-check.scm (python-mypy-minimal): New variable.
2021-01-15 16:33:10 -05:00
Maxim Cournoyer
0054cad5ad
gnu: python-typing-inspect: Fix build on Python 3.9.
* gnu/packages/patches/python-typing-inspect-fix.patch: Add patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/python-xyz.scm (python-typing-inspect)[patches]: Apply it.
2021-01-15 16:33:10 -05:00
Maxim Cournoyer
a6f49177c5
gnu: python-hypothesmith: Update to 0.1.8.
* gnu/packages/check.scm (python-hypothesmith): Update to 0.1.8.
[propagated-inputs]: Replace python-hypothesmith-5.23 by python-hypothesmith.
2021-01-15 16:33:10 -05:00
Maxim Cournoyer
9d44234960
gnu: Add python-libcst-minimal.
* gnu/packages/python-xyz.scm (python-libcst-minimal): New variable.
(python-libcst): Add a tests? argument to the check phase override and strip
trailing #t.
2021-01-15 16:33:10 -05:00
Maxim Cournoyer
255fc0898d
gnu: python-virtualenv: Update to 20.3.1.
* gnu/packages/python-xyz.scm (python-virtualenv): Update to 20.3.1.
[propagated-inputs]: Remove setuptools and python-importlib-metadata.
2021-01-15 16:33:10 -05:00