gnu: python-lxml: Switch to pyproject.
* gnu/packages/xml.scm (python-lxml) [build-system]: Switch to
pyproject-build-system.
[native-inputs]: Add python-setuptools.
(python-lxml-4.9)[arguments] <phases>: Add custom 'check.
Change-Id: Ib64a5e181dbc70fdb03607e05d79549ef2e51738
gnu: python-setuptools: Update to 80.9.0.
* gnu/packages/python-build.scm (python-setuptools): Update to 80.9.0.
Change-Id: I76ecbbfd4aeb3334fc3544912ded256ff058f3db
build-system/pyproject: Handle wheel not found exception.
The current error is very uninformative, use a proper exception to
give more information when this happens:
`In procedure map: Wrong type argument: #f`
After this patch:
`In procedure raise-exception:
ERROR:
1. &no-wheels-found`
* guix/build/pyproject-build-system.scm (&no-wheels-found): Add exception.
(install): Handle exception.
Change-Id: Ie72d3b50dfededb2d598162672cdb4321c42b632
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Avoid PEP427 substitution on binary files.
In some rare cases, the dest-path can be an elf-file, which are
unreadable by substitute*, leading to an error instead of just
continuing which makes more sense in this case.
* guix/build-system/pyproject.scm (check): Guard substitution attempt
with basic readability guarantees.
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Add stestr, unittest and custom options.
* guix/build-system/pyproject.scm (check): Add stestr, unittest and
custom test-backends.
Change-Id: I2d44b3b8dd928ab844b4479fb073afff845e13ee
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Use copy-recursively instead of merge-dirs.
Using rename-file, the destination had to be empty otherwise it would error
out. This has been fixed by the use of copy-recursively, really merging them.
Changing this makes merge-directories mostly a duplicate of
copy-recursively, thus fully switch to copy-recursively.
* guix/build/pyproject-build-system.scm (install)
<python-hashbang>: Remove it, used only once.
<merge-directories>: Remove it, replace its calls by copy-recursively
and delete-file-recursively.
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Add python test-backend.
* guix/build/pyproject-build-system(check): Add python test-backend.
This will help in cases where a simple `python -m module args` call has
to be made instead of fully replacing the 'check phase, e.g. unittest
or django. This is never enabled unless #:test-backend 'python is set,
so it doesn't break anything.
As an example, the following snippet...
(arguments
(list #:phases #~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "unittest"
"diff_match_patch.tests")))))))
...can be transformed like this:
(arguments
'(#:test-backend 'python
#:test-flags (list "-m" "unittest" "diff_match_patch.tests")))
Change-Id: I4919a3e01d64864e3c328609fbcce7df5b3dfe51
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build/pyproject: Fix indentation.
* guix/build/pyproject-build-system.scm: Re-indent file with Emacs.
Change-Id: Ie8a119ce9cf4beccffde93674adb98dc07462ea7
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build/pyproject: Resolve import warning.
* guix/build/pyproject-build-system.scm: Hide the 'delete' symbol from
the imported (guix build utils) module to avoid a naming clash warning.
Change-Id: I48f97bf29b5282de1440c68d533c8300d4d11362
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build/pyproject: Update PEP 427 reference URL in comment.
* guix/build/pyproject-build-system.scm (install): Update reference URL.
Change-Id: Icf5dcc7254c33e8e466773ee66a2fd5648d583da
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build/pyproject: Really merge directories in install phase.
Using rename-file, the destination had to be empty otherwise it would
error out. By using copy-recursively, a directory can be copied onto a
pre-existing directory, really merging them. This problem manifested
itself attempting to build the python-pyre package.
Solving #596.
* guix/build/pyproject-build-system.scm (install)
<merge-directories>: Use copy-recursively instead of rename-file.
Change-Id: Iceb8609a86f29b17e5fbe6a9629339d0bc26e11f
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
gnu: guile-for-guile-emacs: Fix build with gcc-14.
Reported by Serentty via IRC.
* gnu/packages/guile.scm (guile-for-guile-emacs)[arguments]: Add CFLAGS
to #:configure-flags to relax gcc-14's strictness.
Change-Id: I6b3f871695eb25fbf84a2334525e1d0e15e36b92
services: mumi: Add Debbugs rsync as shepherd timer.
* gnu/services/web.scm (<mumi-configuration>)[data-directory, rsync-remote,
rsync-flags]: New fields.
(%mumi-worker-log): Delete variable.
(%mumi-rsync-and-index-log): New variable.
(mumi-rsync-and-index): New function.
(mumi-shepherd-services): Remove mumi-worker service. Add mumi-rsync-and-index
service.
(mumi-service-type): Remove default value.
* doc/guix.texi (Web Services)[mumi]: Document data-directory, rsync-remote
and rsync-flags fields.
Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
gnu: schiffbruch: Fix build with GCC 14.
* gnu/packages/patches/schiffbruch-fix-build-for-gcc-13.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/games.scm (schiffbruch): Apply it.
Change-Id: I539c749e57323dc305a022066d3b07de1cf5ec1d
Reviewed-by: Andreas Enge <andreas@enge.fr>
gnu: trealla: Update to 2.83.5.
* gnu/packages/prolog.scm (trealla): Update to 2.83.5.
Change-Id: I9d36c4d23ca8412c466d69fbb8387185f54b9684
gnu: Add emacs-treesit-auto.
* gnu/packages/emacs-xyz.scm (emacs-treesit-auto): New variable.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
import: utils: Add default-git-error.
* guix/import/utils.scm (default-git-error): Add procedure.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
import: utils: Add function git->origin.
* guix/import/utils.scm: (git-origin, git->origin): Add procedures.
* guix/import/elpa.scm
(download-git-repository): Remove function download-git-repository.
(git-repository->origin): Remove function git-repository->origin.
(ref): Add function ref.
(melpa-recipe->origin): Use functions git->origin and ref.
* guix/import/go.scm
(git-checkout-hash): Remove function git-checkout-hash.
(transform-version): Add function transform-version.
(vcs->origin): Use functions git->origin and transform-version. Add
optional argument transform-version.
* tests/import/go.scm
(go-module->guix-package): Adapt test case to changes in guix/import/go.scm.
* guix/import/luanti.scm
(download-git-repository): Remove function download-git-repository.
(make-luanti-sexp): Use function git->origin.
* tests/luanti.scm
(make-package-sexp): Refresh function accordingly.
* guix/import/composer.scm
(make-php-sexp): Use function git->origin.
Change-Id: Ied05a63bdd60fbafe26fbbb4e115ff6f0bb9db3c
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
import: utils: Add API to peek procedure bodies.
* guix/import/utils.scm (peekable-lambda, peek-body): Add procedures.
* .dir-locals.el: Add peekable-lambda indentation.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
gnu: Add sword.
* gnu/packages/books.scm (sword): New variable.
Change-Id: I0173b1cdf6cfafe8554552d3e6e88baa0a0827ad
Signed-off-by: Andreas Enge <andreas@enge.fr>