Age | Commit message (Expand) | Author |
2021-02-01 | 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.
| Maxim Cournoyer |
2021-01-29 | 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.
| Maxim Cournoyer |
2021-01-26 | 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.
| Maxim Cournoyer |
2021-01-26 | 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.
| Maxim Cournoyer |
2021-01-15 | build-system/gnu: Really ignore the return value of phases....This is a followup to 04baa011e9122205009d6d5f15b8162bf6f3fb8a.
* guix/build/gnu-build-system.scm (gnu-build): Really ignore the return
value of PROC. Wrap PROC call in 'with-throw-handler'. Add
'end-of-phase' procedure and use it.
| Ludovic Courtès |
2021-01-13 | Merge branch 'staging' into 'core-updates'....Conflicts:
gnu/local.mk
gnu/packages/cmake.scm
gnu/packages/curl.scm
gnu/packages/gl.scm
gnu/packages/glib.scm
gnu/packages/guile.scm
gnu/packages/node.scm
gnu/packages/openldap.scm
gnu/packages/package-management.scm
gnu/packages/python-xyz.scm
gnu/packages/python.scm
gnu/packages/tls.scm
gnu/packages/vpn.scm
gnu/packages/xorg.scm
| Maxim Cournoyer |
2021-01-08 | build-systems/emacs: No longer skip patching of files containing NULs....This follows the fix to <https://bugs.gnu.org/30116>.
* guix/build/emacs-build-system.scm (patch-el-files)
[file-contains-nul-char]: Remove nested procedure.
[el-file]: Do no filter out files containing NUL characters.
| Maxim Cournoyer |
2021-01-08 | utils: Allow text substitution even in the presence of NUL characters....Fixes <https://issues.guix.gnu.org/30116>.
Before this change, the presence of a NUL character on a line meant that
the (glibc) regexp engine used by Guile would either 1. stop scanning the
string or 2. crash with the error "string contains #\\nul character",
depending on the locale used.
This change works around this limitation by first replacing the NUL character
by an unused Unicode code point, doing the substitution, then reverting the
replacement.
* guix/build/utils.scm (unused-private-use-code-point)
(replace-char): New procedures.
(substitute): Make use of the above procedures to work around the NUL
character regexp engine limitation.
* tests/build-utils.scm: Add tests.
Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
| Mark H Weaver |
2020-12-31 | build-system/cargo: Use argument "--no-track" in "cargo install"....* guix/build/cargo-build-system(install):
Add argument "--no-track" in "cargo install".
Remove stale hack.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
| Zhu Zihao |
2020-12-29 | build-systems/gnu: Add compressor file extension to symbolic links....Otherwise man and info readers are not able to read their content as they rely
on the file extension to detect if compression is used.
* guix/build/gnu-build-system.scm (compress-documentation)
[retarget-symlink]: Append the compressor file extension to the link file name.
| Maxim Cournoyer |
2020-12-23 | build-system/gnu: Allow overriding of bootstrap scripts....* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Accept
bootstrap-scripts keyword argument and pass it to gnu-build.
(%bootstrap-scripts): New variable.
* guix/build/gnu-build-system.scm (%bootstrap-scripts): Remove variable.
(bootstrap): Remove default value for bootstrap-scripts argument.
| Ricardo Wurmus |
2020-12-15 | guix system: 'init' copies, resets timestamps, and deduplicates at once....Partly fixes <https://bugs.gnu.org/44760>.
* guix/build/store-copy.scm (copy-store-item): New procedure.
(populate-store): Use it instead of the inline 'copy-recursively' call.
* guix/scripts/system.scm (copy-item): Likewise.
Pass #:reset-timestamps? and #:deduplicate? to 'register-path'.
| Ludovic Courtès |
2020-12-15 | store-copy: 'populate-store' can optionally deduplicate files....Until now deduplication was performed as an additional pass after
copying files, which involve re-traversing all the files that had just
been copied.
* guix/store/deduplication.scm (copy-file/deduplicate): New procedure.
* tests/store-deduplication.scm ("copy-file/deduplicate"): New test.
* guix/build/store-copy.scm (populate-store): Add #:deduplicate?
parameter and honor it.
* tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f
to 'populate-store'.
* gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate?
to 'populate-store'. Pass #:deduplicate? #f to 'register-closure'.
* gnu/build/vm.scm (root-partition-initializer): Likewise.
* gnu/build/install.scm (populate-single-profile-directory): Pass
#:deduplicate? #f to 'populate-store'.
* gnu/build/linux-initrd.scm (build-initrd): Likewise.
* guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New
procedure.
[build]: Pass it as an argument to 'source-module-closure'.
* guix/scripts/pack.scm (squashfs-image)[build]: Wrap in
'with-extensions'.
* gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New
procedure.
[builder]: Pass it to 'source-module-closure'.
* gnu/system/install.scm (cow-store-service-type)[import-module?]: New
procedure. Pass it to 'source-module-closure'.
| Ludovic Courtès |
2020-12-15 | store-copy: 'populate-store' resets timestamps....Until now, 'populate-store' would reset permissions but not timestamps,
so callers would resort to going through an extra directory traversal to
reset timestamps.
* guix/build/store-copy.scm (reset-permissions): Remove.
(copy-recursively): New procedure.
(populate-store): Pass #:keep-permissions? to 'copy-recursively'.
Remove call to 'reset-permissions'.
* tests/gexp.scm ("gexp->derivation, store copy"): In BUILD-DRV, check
whether 'populate-store' canonicalizes permissions and timestamps.
* gnu/build/image.scm (initialize-root-partition): Pass #:reset-timestamps? #f
to 'register-closure'.
* gnu/build/vm.scm (root-partition-initializer): Likewise.
| Ludovic Courtès |
2020-12-13 | utils: 'copy-recursively' keeps symlink mtime when #:keep-mtime? is true....* guix/build/utils.scm (copy-recursively): In the "leaf" procedure, call
'set-file-time' also on symlinks.
| Ludovic Courtès |
2020-12-13 | utils: 'set-file-time' passes AT_SYMLINK_NOFOLLOW....* guix/build/utils.scm (AT_SYMLINK_NOFOLLOW): New variable.
(set-file-time): Use it.
| Ludovic Courtès |
2020-12-13 | build/python: Fix cythonize check phase....* guix/build/python-build-system.scm (ensure-no-cythonized-files): Use
format when printing the warning.
| Efraim Flashner |
2020-12-09 | build/python: Check for cythonized files....* guix/build/python-build-system.scm (ensure-no-cythonized-files): New procedure.
(%standard-phases): Add it.
| Efraim Flashner |
2020-12-07 | build-system/gnu: Remove the source directory from search paths....Fixes <https://issues.guix.gnu.org/44924>.
* guix/build/gnu-build-system.scm (set-paths): Delete 'source' from
'input-directories'.
| 宋文武 |
2020-12-03 | build-system: Add chicken-build-system....* guix/build-system/chicken.scm: New file.
* guix/build/chicken-build-system.scm: New file.
* Makefile.am: Add them.
* doc/guix.texi: Document it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| raingloom |
2020-12-01 | build-system/gnu: Add 'make-dynamic-linker-cache' phase....* guix/build/gnu-build-system.scm (make-dynamic-linker-cache): New
procedure.
(%standard-phases): Add it.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Add
#:make-dynamic-linker-cache? and honor it.
| Ludovic Courtès |
2020-12-01 | gremlin: Add 'file-needed/recursive'....* guix/build/gremlin.scm (file-needed/recursive): New procedure.
* tests/gremlin.scm ("file-needed/recursive"): New test.
| Ludovic Courtès |
2020-12-01 | gremlin: Fix typo in docstring....* guix/build/gremlin.scm (file-runpath): Fix typo.
| Ludovic Courtès |
2020-11-29 | Merge remote-tracking branch 'origin/master' into core-updates | Christopher Baines |
2020-11-25 | build-system/texlive: Phases no longer return a Boolean....* guix/build/texlive-build-system.scm (configure): Remove trailing #t.
(build): Use 'for-each' instead of 'every'.
(install): Remove trailing #t.
| Ludovic Courtès |
2020-11-25 | build-system/minify: Phases no longer return a Boolean....* guix/build/minify-build-system.scm (minify): Use 'for-each' instead of
'every'. Call 'close-pipe' and call error when it returns non-zero.
(build): Use 'for-each' instead of 'every'.
(install): Remove trailing #t.
| Ludovic Courtès |
2020-11-25 | build-system/gnu: Ignore the result of phase procedures....* guix/build/gnu-build-system.scm (set-SOURCE-DATE-EPOCH)
(set-paths, install-locale, unpack, bootstrap)
(patch-usr-bin-file, patch-source-shebangs)
(patch-generated-file-shebangs, check)
(patch-shebangs, strip, validate-runpath)
(validate-documentation-location, reset-gzip-timestamps)
(compress-documentation, delete-info-dir-file)
(patch-dot-desktop-files, install-license-files): Remove trailing #t.
(gnu-build): Use 'for-each' instead of 'every', ignore the result if
each phase procedure, and remove warning about non #t phase results.
| Ludovic Courtès |
2020-11-22 | Merge branch 'master' into staging | Marius Bakke |
2020-11-22 | build-system/cargo: Set gettext environment variable when available....* guix/build/cargo-build-system.scm (configure): When gettext is
available in the build environment set the GETTEXT_SYSTEM variable.
* gnu/packages/crates-io.scm (rust-gettext-rs-0.5, rust-gettext-rs-0.4,
rust-gettext-sys-0.19)[arguments]: Remove phase to help find system gettext.
| Efraim Flashner |
2020-11-22 | build-system/cargo: Set libclang environment variable when available....* guix/build/cargo-build-system.scm (configure): When clang is available
in the build environment set the LIBCLANG_PATH variable.
* gnu/packages/crates-graphics.scm (rust-aom-sys-0.1,
uust-dav1d-sys-0.3),
* gnu/packages/crates-io.scm (rust-bindgen-0.55, rust-bindgen-0.54,
rust-bindgen-0.53, rust-bindgen-0.52, rust-cexpr-0.4, rust-cexpr-0.3,
rust-cexpr-0.2, rust-clang-sys-1, rust-clang-sys-0.29,
rust-clang-sys-0.26, rust-clang-sys-0.22, rust-clang-sys-0.11,
rust-libpijul-0.12, rust-nettle-7, rust-nettle-sys-2,
rust-sequoia-openpgp-0.9)[arguments]: Remove phases which set an
environment variable to find clang.
[inputs]: Rename instances of libclang with clang.
| Efraim Flashner |
2020-11-22 | build-system/cargo: Set openssl environment variable when available....* guix/build/cargo-build-system.scm (configure): When openssl is
available set the OPENSSL_DIR variable to discover its location.
* gnu/packages/crates-io.scm (rust-curl-sys-0.4, rust-libgit2-sys-0.10,
rust-libpijul-0.12, rust-libssh2-sys-0.2, rust-native-tls-0.2,
rust-openssl-sys-0.9, rust-openssl-0.7, rust-trust-dns-rustls-0.6),
* gnu/packages/rust-apps.scm (tokei, exa)[arguments]: Remove redundant
setenv for openssl.
| Efraim Flashner |
2020-11-20 | build-system/python: Set PYTHONDONTWRITEBYTECODE....* guix/build/python-build-system.scm (enable-bytecode-determinism): Set
PYTHONDONTWRITEBYTECODE.
| Maxim Cournoyer |
2020-11-20 | build-system/cargo: Do not pass --features to Cargo unless specified....Fixes <https://bugs.gnu.org/44692>.
* guix/build/cargo-build-system.scm (build): Default to the empty list for
FEATURES. Check whether the list is empty when building the Cargo arguments.
| Marius Bakke |
2020-11-19 | utils: Add #:keep-permissions? parameter to 'copy-recursively'....* guix/build/utils.scm (copy-recursively): Add #:keep-permissions? and
honor it.
* doc/guix.texi (Build Utilities): Adjust accordingly.
| Ludovic Courtès |
2020-11-19 | utils: Add #:copy-file parameter to 'copy-recursively'....* guix/build/utils.scm (copy-recursively): Add #:copy-file and honor it.
* doc/guix.texi (Build Utilities): Adjust accordingly.
| Ludovic Courtès |
2020-11-19 | utils: 'copy-recursively' keeps directory mtime when #:keep-mtime? is true....Fixes <https://bugs.gnu.org/44741>.
* guix/build/utils.scm (copy-recursively): Move 'set-file-time' call
from 'down' to 'up'.
| Ludovic Courtès |
2020-11-17 | utils: 'wrap-script' doesn't pass a non-literal string to 'format'....Reported by Vagrant Cascadian <vagrant@debian.org>
in <https://bugs.gnu.org/44626>.
* guix/build/utils.scm (wrap-script): Use 'display' instead of passing a
non-literal string to 'format'.
| Ludovic Courtès |
2020-11-07 | Merge branch 'master' into staging... Conflicts:
gnu/local.mk
gnu/packages/gdb.scm
gnu/packages/lisp-xyz.scm
gnu/packages/web-browsers.scm
| Marius Bakke |
2020-11-06 | build-system/meson: Do not apply strip-runpath to the "debug" output....Because the debug files are read-only, the strip-runpath procedure would throw
an exception when attempting to open them.
* guix/build/meson-build-system.scm (shrink-runpath): Remove "debug" from the
list of outputs to be processed.
| Maxim Cournoyer |
2020-10-28 | build/maven: Fix typo....* guix/build/maven/pom: Fix spelling of "with".
| Vagrant Cascadian |
2020-10-28 | build/maven: fix-pom-dependencies: Fix typo....* guix/build/maven/pom (fix-pom-dependencies): Fix spelling of "overrides".
| Vagrant Cascadian |
2020-10-28 | build/maven: fix-pom-dependencies: Fix typo....* guix/build/maven/pom (fix-pom-dependencies): Fix spelling of "overridden".
| Vagrant Cascadian |
2020-10-26 | build/maven-build-system: Return #t in fix-pom-files phase....* guix/build/maven-build-system.scm (fix-pom-files): Return #t.
| Björn Höfling |
2020-10-20 | build-system/python: Revert changing of phase order....Commit c94a2864d4 moved the 'check' phase back into its original place before
the 'install' phase, but such a change would require adapting the definition
of many Python packages which have come to rely on such phase ordering.
* guix/build/python-build-system.scm (%standard-phases): Move the check phase
back after the install phase, and update comment.
| Maxim Cournoyer |
2020-10-19 | build-system/python: Do not embed timestamps in the .pyc byte code files....Fixes <https://issues.guix.gnu.org/22129>.
A previously worked around problem where running the test suite after byte
compiling the sources in commit 6bbb37a545912c6bb2513ee08587ee4fe39cc330 could
be broken by adding built sources to the PYTHONPATH, as is done for
python-matplotlib and many others. This seems to be caused by the timestamps
embedded in the sources (mtime), that can somehow change when running the
tests, or by picking up the different installed source files mtimes when their
location is added to the PYTHONPATH.
Since Python 3.7.0, it is possible to produce .pyc byte code files that do not
embed any timestamp, which solves the problem in a definitive way. This patch
makes use of this new feature.
* guix/build/python-build-system.scm (install): Add '--no-compile' parameter
to setup.py, and instead invoke the 'compileall' module with the
"--invalidation-mode=unchecked-hash" option to byte compile the source files.
(%standard-phases): Revert the workaround that moved the check phase after the
install phase, as it is no longer necessary. Update comment.
Reported-by: Mark H Weaver <mhw@netris.org>
| Maxim Cournoyer |
2020-10-19 | Merge branch 'staging'...Conflicts:
gnu/packages/admin.scm
gnu/packages/commencement.scm
gnu/packages/gdb.scm
gnu/packages/llvm.scm
gnu/packages/package-management.scm
gnu/packages/tls.scm
| Maxim Cournoyer |
2020-10-19 | Merge branch 'master' into staging | Marius Bakke |
2020-10-16 | build: Fix docstring typos....* gnu/build/image.scm (estimate-partition-size): Fix typo in docstring.
* guix/build/copy-build-system.scm (install): Likewise.
* guix/build/lisp-utils.scm (generate-executable): Likewise.
* guix/build/maven/pom.scm (find-parent, fix-pom-dependencies): Likewise.
* guix/build-system/cargo.scm (expand-crate-sources): Likewise.
| Tobias Geerinckx-Rice |
2020-10-15 | build-system/go: Install license files....* guix/build/go-build-system.scm (install-license-files): New procedure.
(%standard-phases): Replace inherited 'install-license-files phase.
| Efraim Flashner |
2020-10-13 | Merge branch 'master' into staging | Marius Bakke |