* gnu/packages/virtualization.scm (ganeti): Remove trailing #t.
[phases]{build-bash-completions}: Do not set PYTHONPATH.
{pre-check}: Do patch PYTHONPATH from script.
{wrap}: Use the new GUIX_PYTHONPATH environment variable.
* gnu/packages/web.scm (linkchecker): Remove trailing #t.
[phases]: Do not reorder the check phase after the install phase.
{check}: Do not set PYTHONPATH.
* gnu/packages/bioinformatics.scm (bamm): Delete trailing #t.
[phases]{check}: Override rather than delete phase. Remove trailing #t.
{post-install-check}: Delete phase.
{wrap-executable}: Also wrap with the new GUIX_PYTHONPATH.
* gnu/packages/bioinformatics.scm (python-pysam)[arguments]: Remove the
'#:modules' argument.
[phases]: Remove trailing #t.
{check}: Do not manually set PYTHONPATH.
* gnu/packages/bioinformatics.scm (python-pybedtools): Remove trailing #t.
[phases]{check}: Do not manually set PYTHONPATH.
[arguments]: Remove the '#:modules' argument.
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.
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.
* gnu/packages/xdisorg.scm (pixman) [arguments] Pass --enable-timers and
--enable-gnuplot to #:configure-flags.
Signed-off-by: Leo Famulari <leo@famulari.name>
* 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>
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.
* 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.
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.
* 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).
* 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>
* 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.
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.
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.
* 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.
* 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.
Python 3.9 implemented PEP 615 (<)https://www.python.org/dev/peps/pep-0615/>),
which relies on either a compiled time default value or the PYTHONTZPATH
environment variable to find the system tzdata database.
* gnu/packages/python.scm (python-3.9)[native-search-paths]: Add a new search
path specification for PYTHONTZPATH.
Based on a reading of the install_requires field of its setup.cfg file.
* gnu/packages/check.scm (python-pytest)[native-inputs]: Move
python-iniconfig...
[propagated-inputs]: ... to here. Add python-toml. Remove
python-atomicwrites, apparently only required on the win32 platform.
This follows commit b5ccc6cc9a, which updated python-pytest to version 6 and
removed the python-pytest-6 variable.
* gnu/packages/python-check.scm (python-mypy)
[native-inputs]: Rename python-pytest-6 to python-pytest.
* gnu/packages/python-xyz.scm (python-pep517): Inherit from
python-pep517-bootstrap. Remove the inherited common fields.
(python-poetry-core, python-wheel)
(python-toml): Move to ...
* gnu/packages/python-build.scm: ... here, a new module.
(python-pep517-bootstrap): New package.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register the new module.
Fixes a regression introduced in
959a397d22, whereby directory names in
'libzstd.pc' would lack a slash after $prefix.
* gnu/packages/compression.scm (zstd)[arguments]: In
'adjust-library-locations' phase, add trailing slash for $prefix in .pc
file.
Previously, it would error out, not finding its Perl modules, and later not
finding config.guess. This utility is useful to query the local TeX Live
package database (texlive.tlpdb).
(texlive-bin)[inputs]{config}: New input.
[phases]{postint}: Add a symlink to the 'config.guess' script. Patch the
tlmgr.pl script so that it can find its Perl modules and other resources.
This allows the sources to processed normally by the other phases such as
patch-source-shebangs.
* gnu/packages/tex.scm (texlive-bin)[arguments]: Specify #:modules.
[phases]{unpack-texlive-extra, unpack-texlive-scripts}: New phases.
{postint}: Move the unpacking of the texlive-extra and texlive-scripts inputs
to the above newly added phases. The installation of these extra directories
now simply uses copy-recursively.