Compare commits

...

107 commits

Author SHA1 Message Date
Cayetano Santos
5ab68b1adf
gnu: Add emacs-doric-themes.
* gnu/packages/emacs-xyz.scm (emacs-doric-themes): New variable.

Change-Id: I3bed3c1bb9bf13192585cfdef2a09e5b67d29953
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-09-29 06:25:00 +02:00
Nguyễn Gia Phong
b4003b40b0
gnu: Add tree-sitter-janet.
* gnu/packages/tree-sitter.scm (tree-sitter-janet): New variable.

Change-Id: I22d7e00e1120708f1da42452db187505fb10f94b
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-09-29 06:24:59 +02:00
Sharlatan Hellseher
5f8823f384
gnu: python-huey: Add a maintenance note.
* gnu/packages/python-xyz.scm (python-huey): Add a maintenance note.

Change-Id: I98397177a3d17f5564bd984538ff51545ba8533e
2025-09-29 00:26:06 +01:00
Jake Forster
bdfc3a0bcf
gnu: python-huey: Fix tests.
* gnu/packages/python-xyz.scm (python-huey):
[arguments]<#:phases>{pre-check}: Delete.
{check}: Replace.

Change-Id: I801baae9aa6a646bb9df452876a591db7da7a653
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-29 00:25:56 +01:00
Sharlatan Hellseher
2135ac63e1
gnu: python-flufl-bounce: Switch to pyproject, fix build.
* gnu/packages/python-xyz.scm (python-flufl-bounce):
[build-system]: Switch to pyporject-build-system.
[native-inputs]: Add python-setuptools.

Change-Id: I4d057a611bbad330ec4e0a94693acee6da1684a7
2025-09-29 00:12:25 +01:00
Sharlatan Hellseher
414cdf08b8
gnu: python-authheaders: Fix tests.
* gnu/packages/mail.scm (python-authheaders)[arguments] <test-flags>:
Skip one failing test.
[native-inputs]: Remove python-wheel; add python-pytest.

Change-Id: I5e1ca265fe14405c2d5cb634ac13071ea9988ef3
2025-09-29 00:06:55 +01:00
Rodion Goritskov
8a17c58ce3
gnu: fail2ban: Fix tests.
* gnu/packages/admin.scm (fail2ban): Fix tests.
[arguments] <phases>: Replace check phase to recommended one.
[native-inputs]: Add python-aiosmtpd to make all tests running; remove
python-wheel.

Change-Id: Ic8dcbbd66762c75469f8cc5eb82e001968f6b4b4
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-29 00:01:27 +01:00
Rodion Goritskov
c7a2955b74
gnu: python-aiosmtpd: Fix tests.
* gnu/packages/mail.scm (python-aiosmtpd): Fix tests.
[version]: Build from commit
98f578389ae86e5345cc343fa4e5a17b21d9c96d.
[native-inputs]: Remove python-pytest-asyncio, python-wheel.
[propagated-inputs]: Add python-attrs.

Change-Id: I75f7eaf6eef178ca78361b45ce36c116a7341b02
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-29 00:00:49 +01:00
Sharlatan Hellseher
7c8d450d85
gnu: python-autopep8: Move to python-check.
* gnu/packages/python-xyz.scm (python-autopep8): Move from here ...
* gnu/packages/python-check.scm: ... to here.

Change-Id: Icce2a85151398eae4be5c54982497897751a43b7
2025-09-28 23:57:39 +01:00
Sharlatan Hellseher
cf9f828427
gnu: python-autopep8: Update to 2.3.2.
* gnu/packages/python-xyz.scm (python-autopep8): Update to 2.3.2.
[native-inputs]: Remove python-wheel.

Change-Id: I8369c20cef2c89966efa243f12bfe7647817ff90
2025-09-28 23:52:24 +01:00
Hugo Buddelmeijer
edffdbe626
gnu: python-woob: Update to 3.7.
* gnu/packages/python-web.scm: Add iso-codes module.

* gnu/packages/python-web.scm (python-woob): Update to 3.7.
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[arguments] <#:tests?>: Enable.
<#:test-flags>: Disable tests that require internet.
<#phases>: Add 'relax-requirements phase.
[propagated-inputs]: Remove python-pyqt and python-six; add
python-packaging, python-pycountry, python-responses, python-rich, and
python-termcolor.
[native-inputs]: Remove python-coverage, python-flake8, python-nose,
python-selenium, and python-xunitparser; add nss-certs-for-test,
python-pytest, and python-setuptools.

Change-Id: I74fda9b960e5640600d59d5ae3163943f53a7804
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 23:46:09 +01:00
Hugo Buddelmeijer
e94b3fbd11
gnu: python-harmony: Update to 0.7.2.
* gnu/packages/messaging.scm (python-harmony): Update to 0.7.2.
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Remove python-tox; add python-setuptools.

Change-Id: Iaef8c2441d0db99ae8233098ffbe8839c2d00674
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 23:28:40 +01:00
Sharlatan Hellseher
2b1b170da5
gnu: python-aplus: Update to 0.11.1-0.1ab8ebe.
* gnu/packages/python-science.scm (python-aplus): Update to 0.11.1-0.1ab8ebe.
[source]: Switch to git-fetch and build from the latest commit.
[build-system]: Switch to pyproject-build-system.
[arguments] <tests?>: Disable them as depending on Nose test runner.
[native-inputs]: Add python-setuptools.

Change-Id: I34bf72f8d0103122dfcf399e6823eaca2db1d69d
2025-09-28 23:24:51 +01:00
Sharlatan Hellseher
185cb9ce5c
gnu: python-fbpca: Switch to pyproject.
* gnu/packages/python-science.scm (python-fbpca):
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Add python-pytest, and python-setuptools.

Change-Id: Ib02a92066f6c06b1de73fb5e5c4888544db7b9f8
2025-09-28 23:03:07 +01:00
Hugo Buddelmeijer
521e1bd140
gnu: python-pyjanitor: Fix build.
* gnu/packages/python-science.scm (python-pyjanitor): Fix build.
[propagated-inputs]: Add python-requests.
[native-inputs]: Remove python-wheel.
[arguments] <#:test-flags>: Disable failing test.

Change-Id: I74b40149a3b87f0e748d79be2aae9978fa18de52
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 22:56:55 +01:00
Sharlatan Hellseher
5ea8115afe
gnu: quicktile: Simplify tests.
* gnu/packages/wm.scm (quicktile)[arguments] <test-flags>: Provide
option for "tests" directory.
<phases>: Use default 'check; add 'pre-check.
[native-inputs]: Remove xvfb-run; add xorg-server-for-tests.

Change-Id: Ia6d5dea156fd8fb8949bbe26720a027a5591cf9d
2025-09-28 22:47:24 +01:00
Hugo Buddelmeijer
f3761b6545
gnu: Add quicktile.
* gnu/packages/wm.scm (quicktile): New variable.

Change-Id: I9d6f20044b28ef21bf26d097bc4e14e7cedb1523
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 22:39:06 +01:00
Anderson Torres
6853465ca0
gnu: Merge (gnu packages openbox) with (gnu packages wm).
This file contains two package definitions that should be on wm.scm.
They are not overly complex, not tightly couple and small, so there is
few to no reason keeping them in a dedicated file.

* gnu/packages/openbox.scm (obconf, openbox): Move from here ...
* gnu/packages/wm.scm: ... to here.

* gnu/packages/openbox.scm: Delete file.
* gnu/local.mk: Remove reference to openbox.scm.

* gnu/packages/kde-frameworks.scm: Fixup reference to (gnu packages openbox) module.
* gnu/packages/lxde.scm: Remove reference to (gnu packages openbox) module.
* gnu/packages/lxqt.scm: Fixup reference to (gnu packages openbox) module.
* gnu/tests/install.scm: Remove reference to (gnu packages openbox) module.
* po/packages/POTFILES.in: Remove reference to openbox.scm.

Change-Id: I0b887debb97e8fcc7880c9f05d29981226d06077
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 22:24:06 +01:00
Hugo Buddelmeijer
c2d38eba5e
gnu: gemrb: Switch to Python 3.11.
This is the only that explicitly refered to python-3.10.
Switch to python-3.11 is one step closer to removing 3.10
altogether and thereby closing several CVEs.

* gnu/packages/games.scm (gemrb)[native-inputs]: Remove python-3.10;
add python.

Change-Id: I66783b7fd2c4066cded400b753684384a2e1cff2
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:50:56 +01:00
Nicolas Graves
8c9fc75742
gnu: pwclient: Switch to pyproject.
* gnu/packages/patchutils.scm (pwclient):
[build-system]: Switch to pyproject-build-system.
[arguments]<#:phases>: Improve style, remove phase
'patch-requirements.
[native-inputs]: Add python-setuptools.

Change-Id: I59177c0dd35d577b5a7a988b9dbfd0c7772eefcf
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
3c62bfeba3
gnu: patchwork: Switch to pyproject.
* gnu/packages/patchutils.scm (patchwork): Run guix style.
[build-system]: Switch to pyproject-build-system.
[arguments]: Refresh them, run guix style, remove trailing #t.
[native-inputs]: Add python-setuptools.

Change-Id: I811c5ded2b517e35c49f2ae2a67178e4e3417e67
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
af4acb48a0
gnu: python-plover-stroke: Switch to pyproject.
* gnu/packages/stenography.scm (python-plover-stroke):
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Add python-setuptools.
[description]: Improve style.

Change-Id: Ia14ad0ecec308720c212168ed2e51cfcd5da1e7c
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
cf006b7f90
gnu: meteo-qt: Switch to pyproject.
* gnu/packages/weather.scm (meteo-qt):
[build-system]: Switch to pyproject-build-system.
[arguments]: Relocate, improve style.
[native-inputs]: Add python-setuptools.
[description]: Improve style.

Change-Id: I1053de72536158860ecb0cf6edfda873a8743728
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
8a24b7ee90
gnu: python-pycanberra: Switch to pyproject.
* gnu/packages/libcanberra.scm (python-pycanberra):
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Add python-setuptools.
[home-page]: Update it.

Change-Id: Ic6c5a527ed5b3447c64d9607ca91ca4ceee94bec
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
37ba886636
gnu: gramps: Switch to pyproject.
* gnu/packages/genealogy.scm (gramps):
[build-system]: Switch to pyproject-build-system.
[arguments]: Relocate, improve style.
<#:phases>: Refresh phase 'wrap-with-GI_TYPELIB_PATH.  Merge phases
'prepare-tests and 'set-home-for-tests.
[native-inputs]: Add python-setuptools.

Change-Id: I889bde2a6db4ed249c1e9137fc0274bb44e87f47
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
4a39d26468
gnu: rednotebook: Update to 2.41.
* gnu/packages/rednotebook.scm (rednotebook): Update to 2.41.
[arguments]: Improve style.
<#:phases>: Add phase 'configure-tests.
[native-inputs]: Add gettext-minimal.

Change-Id: I62be122b254c4158de4406ae49b070ab2094b196
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
9a026ab72e
gnu: rednotebook: Switch to pyproject.
* gnu/packages/rednotebook.scm (rednotebook):
[build-system]: Switch to pyproject-build-system.
[arguments]: Improve style, use gexps.
<#:tests?>: Enable them, as they seem to pass now.
<#:phases>: Refresh phase 'wrap-with-library-paths.
[native-inputs]: Add python-pytest, python-setuptools.

Change-Id: I147d51fd8106ff3ee88a9fe5ecc4220744163eac
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:30 +01:00
Nicolas Graves
8adc040827
gnu: folders: Switch to pyproject.
* gnu/packages/esolangs.scm (folders):
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[arguments]<#:phases>: Set a custom 'check phase.
[native-inputs]: Add python-setuptools.
[description, properties]: Run guix style.

Change-Id: Icb1ab9f7ea246747e08da7bbec5a9339aaf5431b
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:27:26 +01:00
Nicolas Graves
8f68657316
teams: Update Nicolas Graves' codeberg account.
* etc/teams.scm (Nicolas Graves): Adjust CodeBerg's account.

Change-Id: I338fc27a5654d8fd12d5ab9846fa05e42051b6fa
Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 21:23:13 +01:00
Nicolas Graves
b12f52809d
gnu: av-98: Update to 1.4.
* gnu/packages/web-browsers.scm (av-98): Update to 1.4.
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[arguments]<#:tests?>: Disable them.
<#:phases>: Add phase 'configure-sanity-check.
[native-inputs]: Add python-setuptools.
[home-page]: Refresh it, the project moved.

Change-Id: I589c4622f9c38a9d3e4b27e9e2a28d3767eed74b
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 19:23:54 +01:00
Nicolas Graves
22045e667d
gnu: leo: Switch to pyproject.
* gnu/packages/web-browsers.scm (leo):
[build-system]: Switch to pyproject-build-system.
[arguments]<#:tests?>: Disable them.
[native-inputs]: Add python-setuptools.

Change-Id: I04ad66f944fed21b832d85ea9b443293a337d942
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 19:23:54 +01:00
Nicolas Graves
9cd4bdd30a
gnu: python-mpi4py: Update to 4.1.0.
* gnu/packages/mpi.scm (python-mpi4py): Update to 4.1.0.
[arguments]<#:phases>: Add 'check phase replacement.
<#:test-flags>: Set them.
[native-inputs]: Replace python-cython-0 by python-cython.

Change-Id: I8d1ab87bdb27607fe73c1865fd5fa3c174421840
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 19:23:54 +01:00
Nicolas Graves
c608175c5d
gnu: python-mpi4py: Switch to pyproject.
* gnu/packages/mpi.scm (python-mpi4py):
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[arguments, description]: Improve style.
[native-inputs]: Add python-cython-0, python-pytest,
python-setuptools.

Change-Id: I3d21936ce3dc368d358174a984885f7450032195
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 19:23:54 +01:00
Nicolas Graves
281eb65a23
gnu: xapers: Switch to pyproject.
* gnu/packages/search.scm (xapers):
[build-system]: Switch to pyproject-build-system.
[arguments]: Relocate field.
<#:tests?>: Disable them, as a lot of them are failing.
<#:phases>: Replace 'check phase. Refrash phase 'install-doc.
[native-inputs]: Add python-setuptools.
[description]: Improve style.

Change-Id: I135aa42aca9f4c784798c38cf0a2f77b605ed338
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 19:23:54 +01:00
Nicolas Graves
03b67f4c0f
gnu: clikan: Switch to pyproject.
* gnu/packages/task-management.scm (clikan):
[build-system]: Switch to pyproject-build-system.
[arguments]<#:phases>: Replace 'check phase by a 'configure-tests
phase.
[native-inputs]: Add python-setuptools.
2025-09-28 19:23:53 +01:00
Nicolas Graves
b972e487a5
gnu: mygnuhealth: Switch to pyproject.
* gnu/packages/medical.scm (mygnuhealth):
[build-system]: Switch to pyproject-build-system.
[arguments]<#:tests>: Disable them.
<#:imported-modules, #:modules>: Refresh them.
<#:phases>: Run guix style.
[native-inputs]: Add python-setuptools.

Change-Id: Ieec8cbd7c1c87f1482a8dc8049fcb8ad1aae4f9e
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 19:23:53 +01:00
Nicolas Graves
c1344744d1
gnu: nicotine+: Switch to pyproject.
* gnu/packages/nicotine.scm (nicotine+):
[source]: Remove <modules> and <snippet>.
[build-system]: Switch to pyproject-build-system.
[arguments]: Improve style.
<#:phases>: Delete network test before running them.
<#:imported-modules, #:modules>: Refresh them.
[native-inputs]: Add python-setuptools.

Change-Id: Id9492a83fd1ae6916a6998f3cae2c014eb87644a
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 19:23:46 +01:00
Remco van 't Veer
23e58b7194
gnu: yt-dlp: Fix non-x86 build.
The `search-input-file` procedure raises an error when file is not
available, `which` returns #f when executable is not available.

* gnu/packages/video.scm (yt-dlp): Fix non-x86 build.
[arguments] <#:phases>: Use which to check for pandoc.

Change-Id: I2c7bba7500defc31e69f6d7144ff1020505e4d43
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-28 15:40:31 +03:00
jgart
686aaca898
gnu: trealla: Update to 2.83.11.
* gnu/packages/prolog.scm (trealla): Update to 2.83.11.

Change-Id: I265bcbd4c7b1e07917d9915904563d4560676db8
2025-09-27 20:22:01 -05:00
Mark H Weaver
39cfcae91b
gnu: yt-dlp: Update to 2025.09.26.
* gnu/packages/video.scm (yt-dlp): Update to 2025.09.26.
2025-09-27 20:39:25 -04:00
Sharlatan Hellseher
8c9572b68d
gnu: python-git-hammer: Update to 0.3.2.
* gnu/packages/python-xyz.scm (python-git-hammer): Update to 0.3.2. Fix
indentation.
[build-system]: Switch to pyproject-build-system.
[arguments] <phases>: Remove 'patch-setup.py, add 'relax-requirements.
[native-inputs]: Add python-pytest and python-setuptools.
[description]: Fix fill column.

Change-Id: I22609e48142c2dacf2d9dec7c07a9cc917f5db03
2025-09-28 01:02:14 +01:00
Hugo Buddelmeijer
b2c0723525
gnu: stpipeline: Update to 2.0.0.
* gnu/packages/bioinformatics.scm (stpipeline): Update to 2.0.0.
[source, homepage]: Switched to https://github.com/jfnavarro/st_pipeline.
[source]: Switch to git-fetch.
[arguments] <phases>: Skip check phase because dependencies are too narrow.
[propagated-inputs]: Remove python-cython, python-invoke, python-pympler,
python-setuptools, and python-sqlitedict; add python-distance,
python-dnaio, and python-types-regex.
[native-inputs]: Remove python-setuptools and python-wheel; add python-cython,
python-pytest, and python-poetry-core.

Change-Id: Iaa05b23e58e9f254ed9293244d955e63c2e69cd5
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:43:29 +01:00
Hugo Buddelmeijer
a6075f65c8
gnu: python-taggd: Update to 0.4.0.
* gnu/packages/bioinformatics.scm (python-taggd): Update to 0.4.0.
[origin, homepage]: Change to "https://github.com/jfnavarro/taggd"
[source]: Remove out-dated snippet.
[arguments] <test-flags>: Reenable fixed test.
[propagated-inputs]: Add python-tqdm, python-aiofiles, python-dnaio,
python-types-aiofiles, and python-types-tqdm.

Change-Id: I8c1c445bdf1b463b9ffd16602001608a3c9d4fcd
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:43:28 +01:00
Hugo Buddelmeijer
c6a808735a
gnu: Add python-types-tqdm.
* gnu/packages/python-xyz.scm (python-types-tqdm): New variable.

Change-Id: I91ba21d84b467c9bf172db48aeba5309a70fe51d
2025-09-28 00:43:28 +01:00
Hugo Buddelmeijer
6b48bd14df
gnu: Add python-types-aiofiles.
* gnu/packages/python-xyz.scm (python-types-aiofiles): New variable.

Change-Id: I7f21b80b47f1c0a71812623c574a6892a9782af0
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:43:28 +01:00
Hugo Buddelmeijer
622f2105eb
gnu: Add python-types-regex.
* gnu/packages/python-xyz.scm (python-types-regex): New variable.

Change-Id: Ie526b19c84c08c7778d41bc12619b4d2e8f0dd8b
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:43:28 +01:00
wrobell
60027b1c0f
gnu: Add python-blacksheep.
* gnu/packages/python-web.scm (python-blacksheep): New variable.

Change-Id: Ia6ffb6360f6ba932936dc2196161b4ef2cbcd733
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:34:27 +01:00
wrobell
7dca3b9e0a
gnu: Add python-guardpost.
* gnu/packages/python-web.scm (python-guardpost): New variable.

Change-Id: Ib77bb20020770ac5a3369e97279b19bd75bbcc8b
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:34:27 +01:00
wrobell
b286fc5ac1
gnu: Add python-essentials-openapi.
* gnu/packages/python-web.scm (python-essentials-openapi): New variable.

Change-Id: I80a6c65c2865b79ce01d541d53f8859e9aa9c157
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:34:27 +01:00
wrobell
bdde705c8c
gnu: Add python-rodi.
* gnu/packages/python-xyz.scm (python-rodi): New variable.

Change-Id: I72d04e61b7286047906d303af03e91696d6a66c0
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:34:26 +01:00
wrobell
e619542671
gnu: Add python-essentials.
* gnu/packages/python-xyz.scm (python-essentials): New variable.

Change-Id: Ief6d00aac122d33269f9237673770bfd7f98fbb8
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:34:23 +01:00
Sharlatan Hellseher
be923f9294
gnu: python-apprise: Move to python-web.
* gnu/packages/python-xyz.scm (python-apprise): Move from here ...
* gnu/packages/python-web.scm: ... to here.

Change-Id: Iec9be9ed71ea199bbcf9a0ad66a6251d51bc0484
2025-09-28 00:10:54 +01:00
Hugo Buddelmeijer
cf7a0a747e
gnu: python-apprise: Update to 1.9.4.
* gnu/packages/python-xyz.scm (python-apprise): Update to 1.9.4.
[arguments] <#:test-flags>: Remove --numprocesses in the hope to make
the tests more deterministic.
[propagated-inputs]: Add python-pygobject.
[native-inputs]: Remove python-pytest-xdist, and python-wheel.

Change-Id: I3c63be39433d9044b0c994c7adb5ab6a4e9f2a2d
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 00:04:52 +01:00
Hugo Buddelmeijer
0c3cac7e0e
gnu: python-geometric: Fix build.
* gnu/packages/chemistry.scm (python-geometric): Fix build.
[native-inputs]: Remove python-wheel.
[arguments] <#:phases>: Remove six dependency.

Change-Id: I2dd5191bf2b41719dc3b56c8b914eb090161b090
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:45:31 +01:00
Sören Tempel
460ef912ae
gnu: htop: Enable support for temperature readings via lm-sensors.
* gnu/packages/admin.scm (htop)[inputs]: add lm-sensors.
[arguments] <#:configure-flags>: pass --enable-sensors.
[arguments] <#:phases>: patch dlopen(3) invocation.

Change-Id: Ibb4476b85289d2200bd899adb785fa967a603c75
Reviewed-by: Cayetano Santos <csantosb@inventati.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:39:39 +01:00
Nicolas Graves
0c2c5fc8cf
gnu: python-pycountry-20.7.3: Switch to git source.
* gnu/packages/iso-codes.scm (python-pycountry-20.7.3): Hide package.
[source]: Switch to git-fetch.
[native-inputs]: Replace inherited python-poetry-core by
python-setuptools.

Change-Id: Ie8832b0dddb3f83d14ea43bf80585aa8fa6739d1
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:25:47 +01:00
Nicolas Graves
fdf06879c7
gnu: python-iso3166: Switch to pyproject.
* gnu/packages/iso-codes.scm (python-iso3166):
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Add python-pytest, python-setuptools.

Change-Id: I846061c4cba9edc9c795c8540c86dba02581ec5e
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:25:47 +01:00
Nicolas Graves
c8cea00406
gnu: python-iso639: Switch to pyproject.
* gnu/packages/iso-codes.scm (python-iso639):
[build-system]: Switch to pyproject-build-system.
[arguemnts]<#:test-flags>: Ignore failing tests.
[native-inputs]: Add python-pycountry, python-pytest,
python-pytest-cov.
[description]: Improve style.

Change-Id: I7e88a4d2e1a867937b7ce3f80774e8bb235e5b6e
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:25:47 +01:00
Nicolas Graves
8c7daa1e57
gnu: python-pycountry: Update to 24.6.1.
* gnu/packages/iso-codes.scm (python-pycountry): Update to 24.6.1.
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Add python-poetry-core, python-pytest,
python-pytest-cov.
[home-page]: Update them.

Change-Id: Ic78b2ea3b268a0da80186647164072b4e1909083
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:25:47 +01:00
Nicolas Graves
a99b3b8c20
gnu: python-pycountry: Move to (gnu packages iso-codes).
This package makes a lot more sense there, and is actually needed to
run tests of other python packages in this module.

* gnu/packages/python-xyz.scm (python-pycountry)
(python-pycountry@20.7.3): Move them...
* gnu/packages/iso-codes.scm (python-pycountry)
(python-pycountry-20.7.3): ... to this module.
* gnu/packages/music.scm: Import (gnu packages iso-codes).
* gnu/packages/tryton.scm: Import (gnu packages iso-codes).
(trytond-country): Correct python-pycountry@20.7.3 to
python-pycountry-20.7.3.

Change-Id: I7aa424663fb2edc73bca3fcac38de3226cc57a9b
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:25:47 +01:00
Nicolas Graves
31b4c153e1
gnu: python-mathlibtools: Switch to pyproject.
* gnu/packages/lean.scm (python-mathlibtools):
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[arguments]<#:test-flags>: Disable failing tests.
[native-inputs]: Add python-pytest, python-setuptools.

Change-Id: I48805383c0dd6fc4d033cbe7fe3e039cf388eb12
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:25:43 +01:00
Rodion Goritskov
7c1eb3247a
gnu: patman: Fix build.
* gnu/packages/bootloaders.scm (patman):[native-inputs]: Add python-setuptools.

Change-Id: Ia39f2aee4cb7480a445266d113407467207bbf2e
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:02:49 +01:00
Rodion Goritskov
b60bb57fb6
gnu: python-u-boot-pylib: Fix build.
* gnu/packages/bootloaders.scm (python-u-boot-pylib)[native-inputs]: Add
python-setuptools.

Change-Id: I94052f3a3db1aeb734025011e93e8efe279ccdb5
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 23:02:33 +01:00
Sharlatan Hellseher
c78545b334
gnu: python-iocapture: Fix tests.
* gnu/packages/python-xyz.scm (python-iocapture)[native-inputs]:
Remove python-wheel; add python-six.

Change-Id: Ifa2191412463b03759527cd8073e6760d648c2f4
2025-09-27 22:56:58 +01:00
Sharlatan Hellseher
f35a36f906
gnu: python-flexmock: Move to python-check.
* gnu/packages/check.scm (python-flexmock): Move from here ...
* gnu/packages/python-check.scm: ... to here.
* gnu/packages/shellutils.scm: Add python-check module.

Change-Id: I6aebe1eb1f9bdbeb140af4538a9af0becccc6e92
2025-09-27 22:49:59 +01:00
Hugo Buddelmeijer
e976d192a4
gnu: python-flexmock: Fix by using python-poetry-core
* gnu/packages/check.scm (python-flexmock): Fix.
[native-inputs]: Remove poetry; add python-poetry-core.
[homepage]: Switch to https://flexmock.readthedocs.io/ as lint suggested.

Change-Id: I0271a2af4c18c957cad86e26b5d2f833e8184fc1
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 22:41:38 +01:00
Sharlatan Hellseher
52081ff06b
gnu: python-pydes: Disable tests.
Project is not maintained since 2016, this change fix check phase by
skipping tests. Web search leads to <https://github.com/twhiteman/pyDes>
repository, while home-page URL is a dead link.

* gnu/packages/python-crypto.scm (python-pydes)[arguments] <tests?>: No
tests in PyPI, I could not find Git.
[native-inputs]: Remove python-wheel.

Change-Id: Icd47c0012dc1d2bab68d7f287e5f1af0254dae2b
2025-09-27 21:57:47 +01:00
Sharlatan Hellseher
0a0f1e30a8
gnu: python-mathics-pygments: Fix tests.
* gnu/packages/maths.scm (python-mathics-pygments)[native-inputs]:
Remove python-wheel; add python-pytest.

Change-Id: I01471fd8835c7cbc21fae497bedb177a1230eae1
2025-09-27 21:45:14 +01:00
Hugo Buddelmeijer
51fa44d093
gnu: python-grandalf: Update to 0.8.
* gnu/packages/python-xyz.scm (python-grandalf): Update to 0.8.
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Remove python-pytest-runner; add python-setuptools.
[arguments] <#:phases>: Add 'patch-requirements phase; remove
check-phase replacement.

Change-Id: Icaf77d0909b67b857bceffd21bb132c9e0e69edc
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-27 21:40:53 +01:00
Sharlatan Hellseher
3e634c5d19
gnu: python-calmjs-parse: Fix tests.
* gnu/packages/python-xyz.scmf (python-calmjs-parse)[native-inputs]:
Remove python-wheel; add python-pytest.

Change-Id: I0cde88ae9fa6f210e436a64a7a3f0ea1114506df
2025-09-27 21:37:17 +01:00
Sharlatan Hellseher
90b43a2333
gnu: python-attr: Fix tests.
* gnu/packages/python-xyz.scm (python-attr)[arguments] <test-backend>:
Use 'custom.
<test-flags>: Provide test script as seen in <tox.ini>.
[native-inputs]: Remove python-wheel.

Change-Id: Iee70e41ca607f0200ac2387fd62e01a2a7b5e49e
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
f00ebc2d5e
gnu: python-zeroc-ice-3.6: Fix build with gcc-14.
* gnu/packages/python-xyz.scm (python-zeroc-ice-3.6)[arguments]
<phases>: Add 'relax-gcc-14-strictness.

Change-Id: I205e103f6e8e5856a10fb716fec3831b555ab3cf
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
7ca5588e58
gnu: python-zeroc-ice: Disable tests.
* gnu/packages/python-xyz.scm (python-zeroc-ice)[arguments] <tests?>:
Test provided in Git, but there is no tag reflecting PyPI archive.
[native-inputs]: Remove python-wheel.

Change-Id: I1a9b2453fc53589e1701e5eb7d78575416881734
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
13ce997314
gnu: python-zeroc-ice-3.6: Move closer to python-zeroc-ice.
* gnu/packages/python-xyz.scm (python-zeroc-ice-3.6): Move variable
after python-zeroc-ice.

Change-Id: If63359d3b5fb1821a3d8232bdd266aba2225a597
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
dcf6ee11c7
gnu: python-kconfiglib: Disable tests.
* gnu/packages/python-xyz.scm (python-kconfiglib)[arguments] <tests?>:
They require some set up.
[native-inputs]: Remove python-wheel.

Change-Id: I50b415a1564a9a831bf7383f6eb6f00b46cdd998
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
06c8ae0c3d
gnu: python-rich-tables: Update to 0.8.0.
* gnu/packages/python-xyz.scm (python-rich-tables): Update to 0.8.0.
[arguments] <test-flags>: Skip one test.
[propagated-inputs]: Add python-humanize.

Change-Id: If6472174a057eba03ae9a9c5c367a577b5c29db0
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
8b627e931a
gnu: python-rgbxy: Disable tests.
* gnu/packages/python-xyz.scm (python-rgbxy)[arguments] <tests?>: No
tests.
[native-inputs]: Remove python-wheel.

Change-Id: I1a440d8e3f3e1b9d80c9d4c693e40de5ad4cd1ef
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
a8a93afce3
gnu: python-ndeflib: Fix tests.
* gnu/packages/python-xyz.scm (python-ndeflib)[arguments] <test-flags>:
Skip 2 test groups.
[native-inputs]: Remove python-wheel; add python-pytest.

Change-Id: I609f6d9ce7b4f98bae1639769d51f4fa83ac8531
2025-09-27 21:37:16 +01:00
Sharlatan Hellseher
6ba36049ae
gnu: python-columnize: Fix test.
* gnu/packages/python-xyz.scm (python-columnize)[native-inputs]:
Remove python-wheel; add python-pytest.

Change-Id: I25a274e2086a396d05119987915551102c20e727
2025-09-27 21:37:15 +01:00
Sharlatan Hellseher
df87078828
gnu: python-doxyqml: Fix tests.
* gnu/packages/python-xyz.scm (python-doxyqml)[arguments]
<test-backend>: Use 'custom.
<test-flags>: Provide path to the test file.
[native-inputs]: Remove python-wheel.

Change-Id: Ic89f338fec5cfc434a2d1a25bd903232236c4129
2025-09-27 21:37:15 +01:00
Sharlatan Hellseher
27f867ce57
gnu: python-elevate: Disable tests.
* gnu/packages/python-xyz.scm (python-elevate)[arguments] <tests?>: No
tests in PyPI or Git.
[native-inputs]: Remove python-wheel.

Change-Id: I91a7d6d6cbf534ec8881f1da850781ec79a54811
2025-09-27 21:37:01 +01:00
Guillaume Le Vaillant
283f64c9bb
gnu: qspectrumanalyzer: Fix build.
* gnu/packages/radio.scm (qspectrumanalyzer)[arguments]: Disable tests.

Change-Id: Ib0d1c87eb12e85a6d2673ebe371a0134eaf88266
2025-09-27 15:10:26 +02:00
Guillaume Le Vaillant
ed91db8a8c
gnu: python-simplesoapy: Fix build.
* gnu/packages/radio.scm (python-simplesoapy)[arguments]: Disable tests.

Change-Id: I634c83eb36cb7072a18b4555c45db5cf51e062cd
2025-09-27 15:08:01 +02:00
Guillaume Le Vaillant
6c859f10ef
gnu: python-qt.py: Fix build.
* gnu/packages/qt.scm (python-qt.py)[arguments]: Disable tests.

Change-Id: I0e224883d7f0e5fb83ff22e882e98930eebb163a
2025-09-27 15:03:30 +02:00
Guillaume Le Vaillant
d505b6fae3
gnu: electron-cash: Fix build.
* gnu/packages/finance.scm (electron-cash)[arguments]: Add
  'relax-requirements' phase.

Change-Id: Ic1e19f2bcdec9b68b35ab8b792f9b9b2a2b52858
2025-09-27 14:35:25 +02:00
John Kehayias
da04b3bb42
gnu: Add python-dotenv-0.13.0.
Old version just for docker-compose until it is updated.  Fixes build for
docker-compose

* gnu/packages/docker.scm (python-dotenv-0.13.0): New variable.
(docker-compose)[inputs]: Use it instead of python-dotenv.

Change-Id: I8efc30ad7d40601bb5ad88e7c56484edb36e328e
2025-09-26 16:57:40 -04:00
John Kehayias
3b55a14377
gnu: Add python-sh-1.
This is just for the old docker-compose we still ship (long pending an update
to Go version), via next commit for an older python-dotenv.

* gnu/packages/python-xyz.scm (python-sh-1): New variable.

Change-Id: Idb2b6d476bb9391d9fd8b71aa0184696f3b45aba
2025-09-26 16:54:38 -04:00
John Kehayias
f5d61ca686
gnu: python-websocket-client-0.59: Fix tests.
* gnu/packages/python-web.scm (python-websocket-client-0.59)[native-inputs]:
Add python-six.

Change-Id: I213b164858db5fe4e8aeea643daf1a1b98998835
2025-09-26 16:54:36 -04:00
Arun Isaac
bb2dacd811
gnu: mumi: Update to 0.14.0.
* gnu/packages/mail.scm (mumi): Update to 0.14.0.
2025-09-26 21:50:17 +01:00
Arun Isaac
3c422c6111
gnu: mumi: Update source URI.
* gnu/packages/mail.scm (mumi)[source]: Update URI.
2025-09-26 21:49:33 +01:00
Andy Tai
f2c9dabec8
gnu: gcal: Update to 4.2.0.
* gnu/packages/gcal.scm (gcal): Update to 4.2.0.
[argument]<#:configure-flags>: Add "-lm".
[native-inputs]: Add pkg-config and check.

Change-Id: Ia67f66b604ab428c8cbe546c47bbcdf7a52dd8de
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:55:09 +02:00
Martin Schitter
abc35bae81
gnu: guile-next: Use codeberg git repository.
Fetch code from the more reliable and faster repository at codeberg.org.

	modified:   gnu/packages/guile.scm

Change-Id: I9340e22abadf80931019acd566a8f4e9701988c0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:53:39 +02:00
Alissa Istleyeva
8a69897b7e
home: services: Fix binding options in sway-service-type.
* gnu/home/services/sway.scm (keybinding-options?): Add to-code option.
(codebinding-options?): Remove to-code option.

Change-Id: I0a43ccb7d997bb1ba2ec334721a9a7bdd5e5ce91
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:46:19 +02:00
Ludovic Courtès
8f7837e104
gnu: guix-jupyter: Update to 0.3.1.
* gnu/packages/package-management.scm (guix-jupyter): Update to 0.3.1.

Change-Id: I784c1fe10006c587d32b0b0bb1cb0f3677335ca9
2025-09-26 21:43:16 +02:00
Rodion Goritskov
054aae7bb2
services: Add miniflux-service-type.
* doc/guix.texi: Document Miniflux service and configuration.
* gnu/services/web.scm: New service.
* gnu/services/web.scm: Define shepherd service and account roles.
* gnu/tests/web.scm: (%miniflux-create-admin-credentials,
miniflux-base-system, %test-miniflux-admin-string, %test-miniflux-admin-file,
%test-miniflux-socket): Add system tests for Miniflux service.

Change-Id: I4a336e677ec8b46aed632f0ded9cc11c2d38975f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:39:40 +02:00
Ludovic Courtès
d411aff611
teams: Adjust team membership for myself.
* etc/teams.scm (civodul): Remove ‘home’, ‘bootstrap’ and ‘documentation’.
Add ‘hpc’.

Change-Id: I7946be1fc59fc292a7b92b92035ccaea722aadc9
2025-09-26 21:35:43 +02:00
Ludovic Courtès
e1038aee6d
gnu: shepherd@1.0: Build against Fibers 1.4.x.
This reinstates 2ba475d37a.

* gnu/packages/admin.scm (shepherd-1.0)[native-inputs, inputs]: Use
‘guile-fibers’.

Change-Id: I4dbbc2d32d114ed9d16a2da4efb831fc2044a314
2025-09-26 21:31:04 +02:00
Ludovic Courtès
55b39642e2
gnu: guile-fibers@1.4: Disable JIT for ‘make check’.
Fixes guix/guix#2474.

* gnu/packages/guile-xyz.scm (guile-fibers-1.4)[arguments]: Add ‘disable-jit’
phase on AArch64.

Change-Id: Idad1a5e1a84d29259bf1ed4a284f9981c50defb8
2025-09-26 21:31:04 +02:00
Sören Tempel
e10da6bff8
gnu: binsec: Enable support for z3-builtin solver.
This is much faster than an external solver as it doesn't rely on
forking an external solver and instead uses the API provided by
ocaml-z3.  This feature was added in binsec release 0.9.1.

* gnu/packages/ocaml.scm (binsec)[propagated-inputs]: Add ocaml-z3.
* gnu/packages/ocaml.scm (binsec)[native-inputs]: Add z3.

Change-Id: I246fd1a13e8c9d6a6764608281a2bea5ac0a054b
Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2025-09-26 21:26:41 +02:00
jgart
67f5f23c88
gnu: trealla: Update to 2.83.9.
* gnu/packages/prolog.scm (trealla): Update to 2.83.9.

Change-Id: I8ca5daedef142f6f88a9f22283a7c0e9a518320a
2025-09-26 11:30:07 -05:00
Sharlatan Hellseher
d4c1dc6df5
gnu: python-argparse-manpage: Update to 4.7.
* gnu/packages/python-xyz.scm (python-argparse-manpage): Update to 4.7.
[source]: Fix uri name as seen in PyPI archive.
[arguments] <test-flags>: Skip tests requiring pip.
[native-inputs]: Remove python-pip, python-tomli, and python-wheel.

Fixes: guix/guix#3015
Change-Id: I10b31aa295bd97673071ecaaecb9895cd4d8a6b0
2025-09-26 17:16:06 +01:00
Sharlatan Hellseher
771659666d
gnu: python-aiorpcx: Fix tests.
* gnu/packages/python-web.scm (python-aiorpcx)[native-inputs]: Remove
python-pytest-asyncio and python-wheel; add python-pytest-asyncio-0.26.

Change-Id: I8acf3eb36a0ab1a41038471456aa15d0fef92cbc
2025-09-26 15:35:27 +01:00
Sharlatan Hellseher
04f3f640a2
gnu: nerd-dictation: Fix tests.
* gnu/packages/machine-learning.scm (nerd-dictation)[arguments]
<test-backend>: Use 'custom.
<test-flags>: Provide the path to test file.
[native-inputs]: Remove python-wheel.

Change-Id: Ia6e2c497ffe9315a87dc20b4d845fea111a144c9
2025-09-26 15:23:45 +01:00
Sharlatan Hellseher
6851e548a3
gnu: epour: Fix bulid.
* gnu/packages/enlightenment.scm (epour)[native-inputs]: Remove
python-setuptools and python-wheel; add python-setuptools-67 and
python-wheel-0.40.

Change-Id: Ia3863aa7f0af1d9e20ae78a875b6108d973ee410
2025-09-26 15:16:00 +01:00
Sharlatan Hellseher
cb2c75aa92
gnu: instantmusic: Update to 1.0-2.0477dd3, fix build.
* gnu/packages/music.scm (instantmusic): Update to 1.0-2.0477dd3.
[arguments] <tests?>: No tests provided.
[native-inputs]: Remove python-wheel.

Change-Id: I928c4cc909b6d57738eb6bd8b0cae7debb53f085
2025-09-26 15:11:24 +01:00
Hugo Buddelmeijer
d59508b9b4
gnu: python-bcbio-gff: Update to 0.7.1.
* gnu/packages/bioinformatics.scm (python-bcbio-gff): Update to 0.7.1.
[source]: Switch to git-fetch.
[arguments] <#:phases>: Enter correct directory.
[propagated-inputs]: Remove python-setuptools and python-wheel.
[native-inputs]: Add python-setuptools.

Change-Id: Ie961c40e9335f31d512e23658cbc3269a61126d0
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-26 14:03:31 +01:00
Sharlatan Hellseher
1c22d29388
gnu: efitools: Fix build with gcc-14.
* gnu/packages/efi.scm (efitools):[arguments] <make-flags>: Add options
relaxing GCC 14 strictness.

Fixes: guix/guix#3012
Change-Id: I1466b6ded8039ec222e905554b23e9bf99dba486
2025-09-26 13:58:14 +01:00
61 changed files with 2107 additions and 947 deletions

View file

@ -144,6 +144,7 @@ Copyright @copyright{} 2024 Evgeny Pisemsky@*
Copyright @copyright{} 2025 jgart@*
Copyright @copyright{} 2025 Artur Wroblewski@*
Copyright @copyright{} 2025 Edouard Klein@*
Copyright @copyright{} 2025 Rodion Goritskov@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -35700,6 +35701,80 @@ The file which should store the logging output of Agate.
@end table
@end deftp
@subsubheading Miniflux
@cindex miniflux
The @uref{https://miniflux.app/, Miniflux} is a minimalist RSS feed reader
with a web interface.
Depending on the configuration, an initial administrator user can be pre-created
on startup. To enable this, @code{create-admin?} should be set to @code{#t}, and
both @code{admin-username-file} and @code{admin-password-file} should point to
files containing the username and password, respectively. However, it is
recommended to manually change the password to a secure one via the web
UI after the initial service startup.
@defvar miniflux-service-type
This is the type of the Miniflux service. Its value
must be a @code{miniflux-configuration} record as in this example:
@lisp
(service miniflux-service-type
(miniflux-configuration
(listen-address "0.0.0.0:8080")
(base-url "http://my-news-source.test")
(create-administrator-account? #t)
(administrator-account-name "/var/miniflux/initial-admin-username")
(administrator-account-password "/var/miniflux/initial-admin-password")))
@end lisp
The details of the @code{miniflux-configuration} record type are given below.
@end defvar
@deftp {Data Type} miniflux-configuration
Available @code{miniflux-configuration} fields are:
@table @asis
@item @code{listen-address} (default: @code{"127.0.0.1:8080"}) (type: string)
Address to listen on.
Use absolute path like @code{"/var/run/miniflux/miniflux.sock"} for a Unix socket.
@item @code{base-url} (default: @code{"http://127.0.0.1/"}) (type: string)
Base URL to generate HTML links and base path for cookies.
@item @code{create-administrator-account?} (default: @code{#f}) (type: boolean)
Create an initial administrator account.
@item @code{administrator-account-name} (type: maybe-string-or-file-path)
Initial administrator account name as a string or an absolute path
to a file with an account name inside.
@item @code{administrator-account-password} (type: maybe-string-or-file-path)
Initial administrator account password as a string or an absolute path
to a file with a password inside.
@item @code{run-migrations?} (default: @code{#t}) (type: boolean)
Run database migrations during application startup.
@item @code{database-url} (default: @code{"host=/var/run/postgresql"}) (type: string)
PostgreSQL connection string.
@item @code{user} (default: @code{"miniflux"}) (type: string)
User name for Postgresql and system account.
@item @code{group} (default: @code{"miniflux"}) (type: string)
Group for the system account.
@item @code{log-file} (default: @code{"/var/log/miniflux.log"}) (type: string)
Path to the log file.
@item @code{extra-settings} (type: maybe-list)
Extra configuration parameters as a list of strings.
@end table
@end deftp
@node High Availability Services
@subsection High Availability Services

View file

@ -1058,8 +1058,8 @@ the \"texlive\" importer."
(define-member (person "Ludovic Courtès"
"ludo@gnu.org"
"civodul")
core home bootstrap core-packages installer
documentation mentors)
core core-packages hpc installer
mentors)
(define-member (person "Andreas Enge"
"andreas@enge.fr"
@ -1305,7 +1305,7 @@ the \"texlive\" importer."
(define-member (person "Nicolas Graves"
"ngraves@ngraves.fr"
"ngraves")
"nicolas-graves")
javascript python ruby)
(define-member (person "Yelninei"

View file

@ -168,7 +168,7 @@
(lambda (e)
(or (member e
'("no-warn" "whole-window" "border" "exclude-titlebar"
"release" "locked" "inhibited" "no-repeat"))
"release" "locked" "to-code" "inhibited" "no-repeat"))
(string-prefix? "input-device=" e)))
lst))
@ -177,7 +177,7 @@
(lambda (e)
(or (member e
'("no-warn" "whole-window" "border" "exclude-titlebar"
"release" "locked" "to-code" "inhibited" "no-repeat"))
"release" "locked" "inhibited" "no-repeat"))
(string-prefix? "input-device=" e)))
lst))

View file

@ -512,7 +512,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/openkinect.scm \
%D%/packages/onc-rpc.scm \
%D%/packages/opencl.scm \
%D%/packages/openbox.scm \
%D%/packages/opencog.scm \
%D%/packages/openldap.scm \
%D%/packages/openpgp.scm \

View file

@ -601,8 +601,13 @@ interface and is based on GNU Guile.")
"/bin/gzip")
(string-append "--with-zstd=" #$(this-package-input "zstd")
"/bin/zstd")))))
(inputs (modify-inputs (package-inputs shepherd-0.10)
(append gzip zstd)))))
(native-inputs
(modify-inputs (package-native-inputs shepherd-0.10)
(replace "guile-fibers" guile-fibers))) ;use latest guile-fibers available
(inputs
(modify-inputs (package-inputs shepherd-0.10)
(replace "guile-fibers" guile-fibers) ;use latest guile-fibers available
(append gzip zstd)))))
(define-public shepherd shepherd-0.10)
@ -1110,8 +1115,21 @@ on memory usage on GNU/Linux systems.")
(base32 "058y4a4mvx9m179dyr4wi8mlm6i4ybywshadaj4cvfn9fv0r0nkx"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "--enable-sensors")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-dlopen
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "linux/LibSensors.c"
(("dlopen\\(\"libsensors\\.so")
(string-append "dlopen(\""
(search-input-file
inputs "/lib/libsensors.so")))))))))
(inputs
(list ncurses))
(list ncurses (list lm-sensors "lib")))
(native-inputs
(list autoconf automake python-minimal-wrapper)) ; for scripts/MakeHeader.py
(home-page "https://htop.dev")
@ -6294,6 +6312,10 @@ alias cysdig=sudo csysdig --modern-bpf
"fail2ban/client/fail2banregex.py")
(("/etc/fail2ban")
(string-append #$output "/etc/fail2ban")))))
(replace 'check
(lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests?
(invoke "./bin/fail2ban-testcases"))))
(add-after 'fix-default-config 'set-action-dependencies
(lambda* (#:key inputs #:allow-other-keys)
;; deleting things that are not feasible to fix
@ -6374,7 +6396,8 @@ alias cysdig=sudo csysdig --modern-bpf
"fail2ban-regex" "fail2ban-server"
"fail2ban-testcases"))
((install-man "5") "jail.conf")))))))
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-aiosmtpd
python-setuptools))
(inputs (list gawk
coreutils-minimal
curl

View file

@ -2204,26 +2204,38 @@ intended to behave exactly the same as the original BWK awk.")
(define-public python-bcbio-gff
(package
(name "python-bcbio-gff")
(version "0.6.9")
;; python-bcbio-gff can only be refreshed manually, because guix refresh
;; does not understand the tags on the github repository.
(version "0.7.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "bcbio-gff" version))
;; No tests in PyPI package.
(method git-fetch)
(uri (git-reference
(url "https://github.com/chapmanb/bcbb")
(commit (string-append "bcbio-gff-v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1pm1szyxabhn8jismrj9cjhf88ajgcmm39f0cgf36iagw5qakprl"))))
"0144xxzibq4mrg8a1w2scs120rd9svq07hm5ccs91n3a4nvwjfsd"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'enter-directory
(lambda _ (chdir "gff"))))))
(native-inputs
(list python-pytest))
(list python-setuptools python-pytest))
(propagated-inputs
(list python-biopython
python-setuptools
python-six
python-wheel))
python-six))
(home-page "https://github.com/chapmanb/bcbb/tree/master/gff")
(synopsis "Read and write GFF files with Biopython integration")
(description
"This package lets you read and write files in Generic Feature
Format (GFF) with Biopython integration.")
(properties
'((upstream-name . "bcbio-gff")))
(license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
(define-public python-bcbio-gff/biopython-1.73
@ -12153,26 +12165,19 @@ interpretation.")
(define-public python-taggd
(package
(name "python-taggd")
(version "0.3.6")
(version "0.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/SpatialTranscriptomicsResearch/taggd")
(url "https://github.com/jfnavarro/taggd")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0j19ah81z7aqrdljah9hyarp91gvgbk63pz6fz3pdpksy1yqyi6k"))
(modules '((guix build utils)))
(snippet
'(for-each delete-file
(find-files "taggd" "\\.c$")))))
"17hi1vs1qwhxx8jnradnl9k471li6fjb6w5sljkpzjxy7rkxwb85"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; AssertionError: 0 is not true : Running Normal BAM test failed.
#~(list "-k" "not test_normal_bam_run")
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'remove-local-taggd
@ -12181,10 +12186,16 @@ interpretation.")
;; taggd when running tests.
(delete-file-recursively "taggd"))))))
(propagated-inputs
(list python-numpy python-pysam))
(list python-numpy
python-pysam
python-tqdm
python-aiofiles
python-dnaio
python-types-aiofiles
python-types-tqdm))
(native-inputs
(list python-cython python-pytest python-setuptools))
(home-page "https://github.com/SpatialTranscriptomicsResearch/taggd")
(home-page "https://github.com/jfnavarro/taggd")
(synopsis "Genetic barcode demultiplexing")
(description "This package provides TagGD barcode demultiplexing utilities
for Spatial Transcriptomics data.")
@ -12193,40 +12204,45 @@ for Spatial Transcriptomics data.")
(define-public stpipeline
(package
(name "stpipeline")
(version "1.8.1")
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "stpipeline" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/jfnavarro/st_pipeline")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0har2g42fvaqpiz66lincy86aj1hvwzds26kxhxfamvyvv4721wk"))))
(base32 "1qah9sa7wy9ywf0si2ngqg0qyr9jjp5gxmjx3y65i78bxyq8pfyx"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases '(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "requirements.txt"
(("argparse.*")
"")))))))
;; requirements.txt and pyproject.toml have all versions
;; of the dependencies hardcoded. All tests pass, so it should
;; be good enough.
;; However, the sanity-check of any Python package that has
;; stpipelines a dependency, would fail too.
(delete 'sanity-check))))
(propagated-inputs (list htseq
python-cython
python-invoke
python-distance
python-dnaio
python-numpy
python-pandas
python-pympler
python-pysam
python-regex
python-scikit-learn
python-scipy
python-seaborn
python-setuptools
python-sqlitedict
python-taggd
python-types-regex
samtools
star))
(native-inputs (list python-setuptools python-wheel))
(home-page "https://github.com/SpatialTranscriptomicsResearch/st_pipeline")
(native-inputs (list
python-cython
python-pytest
python-poetry-core))
(home-page "https://github.com/jfnavarro/st_pipeline")
(synopsis "Pipeline for spatial mapping of unique transcripts")
(description
"This package provides an automated pipeline for spatial mapping of

View file

@ -1041,6 +1041,7 @@ CONFIG_TOOLS_KWBIMAGE=n")
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./u_boot_pylib")))))))
(native-inputs (list python-setuptools))
(synopsis "U-Boot Python library")
(description "This package provides common Python code used by some of the
commands part of the U-Boot project, such as Patman.")))
@ -1076,6 +1077,7 @@ commands part of the U-Boot project, such as Patman.")))
,(dirname (search-input-file
inputs
"libexec/git-core/git-send-email"))))))))))
(native-inputs (list python-setuptools))
(inputs
(list git
`(,git "send-email")

View file

@ -3184,25 +3184,6 @@ JSON APIs with Behave.")
time by mocking the datetime module.")
(license license:asl2.0)))
(define-public python-flexmock
(package
(name "python-flexmock")
(version "0.12.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "flexmock" version))
(sha256
(base32
"18dcr7mpldf3cxsqi9rak75n4z7x3j544l4ixdspairm7cf6cp23"))))
(build-system pyproject-build-system)
(native-inputs (list poetry python-pytest))
(home-page "https://flexmock.readthedocs.org")
(synopsis "Testing library for Python")
(description
"flexmock is a testing library for Python that makes it easy to create
mocks, stubs and fakes.")
(license license:bsd-3)))
(define-public python-flaky
(package
(name "python-flaky")

View file

@ -701,10 +701,20 @@ symmetries written in C. Spglib can be used to:
(sha256
(base32 "0w3c71wvhnc44pfafcjfgqkjimkcdkpjk3bahg9v6l1z8c0cyhfy"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-six
(lambda _
(substitute* "geometric/nifty.py"
(("import six") "")
(("six\\.string_types") "str"))
(substitute* "setup.py"
(("'six',") "")))))))
(native-inputs
(list python-pytest
python-setuptools
python-wheel))
python-setuptools))
(propagated-inputs
(list python-numpy
python-scipy

View file

@ -211,7 +211,7 @@ client.")
python-docker-5
python-dockerpty
python-docopt
python-dotenv
python-dotenv-0.13.0
python-jsonschema-3
python-pyyaml
python-requests

View file

@ -172,7 +172,7 @@ information.")
(arguments
`(#:tests? #f ; No tests exist.
#:make-flags
'("CC=gcc")
'("CC=gcc -g -O2 -Wno-error=implicit-function-declaration")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch

View file

@ -8455,6 +8455,29 @@ whose goal is to provide colorful yet legible options for users who want
something with a bit more flair than the Modus themes.")
(license license:gpl3+)))
(define-public emacs-doric-themes
(package
(name "emacs-doric-themes")
(version "0.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/protesilaos/doric-themes")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "06kvv5hvqig1sngzzvpxfpb9wln9fv2b7krjmvb0n3kvp0s0bxmd"))))
(build-system emacs-build-system)
(arguments (list #:tests? #f)) ;no tests
(home-page "https://github.com/protesilaos/doric-themes")
(synopsis "Highly readable minimalist Emacs themes")
(description
"This package provides a set of Emacs themes that conform with a
minimalist aesthetic: they use few colours and appear monochromatic in many
contexts")
(license license:gpl3+)))
(define-public emacs-eslint-flymake
(let ((commit "c78246330ee3ac1e0e07a709473d98a113d268e5")
(revision "1"))

View file

@ -561,6 +561,7 @@ directories.
@dfn{Enlightenment Foundation Libraries} (EFL).")
(license license:bsd-2)))
;; XXX: See: <https://codeberg.org/guix/guix/issues/3014>.
(define-public epour
(package
(name "epour")
@ -583,8 +584,8 @@ directories.
(substitute* "epour/gui/__init__.py"
(("join\\(data_path")
(string-append "join(\"" #$output "/share/epour\""))))))))
(native-inputs (list intltool python-distutils-extra python-setuptools
python-wheel))
(native-inputs (list intltool python-distutils-extra python-setuptools-67
python-wheel-0.40))
(inputs (list libtorrent-rasterbar-1.2 python-dbus python-efl python-pyxdg))
(home-page "https://www.enlightenment.org")
(synopsis "EFL Bittorrent client")

View file

@ -4,6 +4,7 @@
;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -26,12 +27,14 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages readline)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
@ -106,18 +109,32 @@ whenever possible to the extent that the above points are not compromised.
(name "folders")
(version "0.0.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Folders" version))
(sha256
(base32 "0qh80qx7sjx0zii1hf8fm853d9rcg4rginm6v4gpp0hgn2a4q4gh"))))
(build-system python-build-system)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/SinaKhalili/Folders.py")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "14fs8c7ilvsw6xbskr688s1dp3nd8vnwv7bg23ab1l6vj6fpzwmw"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
(invoke "Folders" "sample_programs/HelloWorld")
(format #t "test suite not run~%")))))))
(native-inputs (list python-setuptools))
(home-page "https://github.com/SinaKhalili/Folders.py")
(synopsis "Structural programming language")
(description "Folders is a programming language, in which programs
are encoded as (nested) directories. Note that the switches you pass to
@command{du} may affect your score when code golfing.")
(properties `((lint-hidden-cpe-vendors . ("premio" "jenkins"))))
(description
"Folders is a programming language, in which programs are encoded as
(nested) directories. Note that the switches you pass to @command{du} may
affect your score when code golfing.")
(properties `((lint-hidden-cpe-vendors "premio" "jenkins")))
(license license:expat)))
(define-public shakespeare-spl

View file

@ -799,6 +799,11 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(substitute* "electroncash/secp256k1.py"
(("libsecp256k1.so.0")
(search-input-file inputs "lib/libsecp256k1.so.0")))))
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "contrib/requirements/requirements.txt"
(("python-dateutil<2\\.9")
"python-dateutil"))))
(add-after 'install 'wrap-qt
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))

View file

@ -13408,7 +13408,7 @@ virtual reality devices.")
(list
#:configure-flags
#~(list "-DUSE_TESTS=ON" "-DOPENGL_BACKEND=OpenGL")))
(native-inputs (list python-3.10 glibc-locales googletest))
(native-inputs (list python glibc-locales googletest))
(inputs (list freetype
libiconv
libpng

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2025 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -20,19 +21,22 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses))
#:use-module (guix licenses)
#:use-module (gnu packages check)
#:use-module (gnu packages pkg-config))
(define-public gcal
(package
(name "gcal")
(version "4.1")
(version "4.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcal/gcal-"
(uri (string-append "https://www.alteholz.dev/gnu/gcal-"
version ".tar.xz"))
(sha256
(base32
"1av11zkfirbixn05hyq4xvilin0ncddfjqzc4zd9pviyp506rdci"))
"1p3q6his31bxs24nsgpfavw3nlhalqf0zak4f3b530p725s2vgfq"))
(modules '((guix build utils)))
(snippet
'(begin
@ -50,6 +54,8 @@
"/* BSD stdio derived implementations")))
#t))))
(build-system gnu-build-system)
(native-inputs (list check pkg-config))
(arguments `(#:configure-flags '("LDFLAGS=-lm")))
(home-page "https://www.gnu.org/software/gcal/")
(synopsis "Calculating and printing a wide variety of calendars")
(description

View file

@ -18,9 +18,10 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages genealogy)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@ -34,6 +35,7 @@
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages version-control)
@ -52,11 +54,48 @@
(file-name (git-file-name name version))
(sha256
(base32 "1gzhi5hxpgc6pxs40xsxf67hndjifnfhm89s3ly68c70x83qmwhd"))))
(build-system python-build-system)
(build-system pyproject-build-system)
(arguments
(list
#:imported-modules
`((guix build glib-or-gtk-build-system)
,@%pyproject-build-system-modules)
#:modules
`((ice-9 match)
(srfi srfi-1)
(guix build pyproject-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'prepare-tests
(lambda _
(setenv "HOME" (getenv "TMPDIR"))
;; Presence of .git directory is used to determine whether this
;; is a final installation. Without it, tests fail to determine
;; resource path.
(mkdir ".git")
;; Test is failing
(delete-file "gramps/gen/utils/test/file_test.py")))
(add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
(lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/gramps")
`("GI_TYPELIB_PATH" ":" prefix
,(filter-map
(match-lambda
((output . directory)
(let ((girepodir (string-append
directory
"/lib/girepository-1.0")))
(and (file-exists? girepodir)
girepodir))))
inputs)))))
(add-after 'wrap 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(native-inputs
`(("gettext" ,gettext-minimal)
("intltool" ,intltool)
("glibc-utf8-locales" ,glibc-utf8-locales))) ;; for one test
(list gettext-minimal intltool
glibc-utf8-locales ;for one test
python-setuptools))
(inputs
(list bash-minimal
cairo
@ -81,42 +120,6 @@
rcs
sqlite
xdg-utils))
(arguments
`(#:imported-modules ((guix build glib-or-gtk-build-system)
,@%python-build-system-modules)
#:modules ((ice-9 match)
(guix build python-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-before 'check 'set-home-for-tests
(lambda _
(setenv "HOME" (getenv "TMPDIR"))))
(add-before 'check 'prepare-tests
(lambda _
;; Presence of .git directory is used to determine whether this
;; is a final installation. Without it, tests fail to determine
;; resource path.
(mkdir ".git")
;; Test is failing
(delete-file "gramps/gen/utils/test/file_test.py")))
(add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(paths (map (match-lambda
((output . directory)
(let ((girepodir (string-append
directory
"/lib/girepository-1.0")))
(if (file-exists? girepodir)
girepodir
#f))))
inputs)))
(wrap-program (string-append out "/bin/gramps")
`("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))))
(add-after 'wrap 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(home-page "https://gramps-project.org")
(synopsis "Genealogical research software")
(description

View file

@ -1189,7 +1189,20 @@ is not available for Guile 2.0.")
(base32
"15ynxr3pfjscd6mz641zagv6i84jh9y65i5dnbb3j3q72j6bbvnb"))
(patches '())))
(arguments '())))
(arguments
(if (target-aarch64?)
(list #:phases
#~(modify-phases %standard-phases
(add-before 'check 'disable-jit
(lambda _
;; XXX: Due to a JIT bug in Guile 3.0.9 on AArch64,
;; some tests would hang:
;; <https://codeberg.org/fibers/fibers/issues/83>.
;; Disable JIT for now; re-enable it when Guile 3.0.10+
;; is used. (Note: The Shepherd disables JIT on
;; AArch64 so it can safely use Fibers.)
(setenv "GUILE_JIT_THRESHOLD" "-1")))))
'()))))
(define-public guile-fibers guile-fibers-1.4)

View file

@ -502,7 +502,7 @@ without requiring the source code to be rewritten.")
;; The main goal here is to allow for '--with-branch'.
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/guile.git")
(url "https://codeberg.org/guile/guile.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256

View file

@ -21,11 +21,11 @@
(define-module (gnu packages iso-codes)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (gnu packages check)
#:use-module (gnu packages gettext)
@ -152,17 +152,42 @@ region, WIOD classification, ccTLD.")
(version "0.4.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "iso-639" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/noumar/iso639")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0jffmh4m20q8j27xb2fqbnlghjj0cx8pgsbzqisdg65qh2wd976w"))))
(build-system python-build-system)
(base32 "02kx6kr3x43linxqafjlx85zdk04s6ab2fv5ikyglghwr5hsvic4"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "tests/tests.py"
"-k" (string-join
(list
;; module 'collections' has no attribute 'Iterable'
"not test_iter"
;; 'Moroccan Arabic' != 'Arabic'
"test_logic_part2"
;; 'Languages' object has no attribute 'indices'
"test_compare_alpha2"
"test_compare_bibliographic"
"test_compare_terminology")
" and not "))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'configure-tests
(lambda _
(setenv "PYTHONPATH"
(string-append (getcwd) ":"
(getenv "GUIX_PYTHONPATH"))))))))
(native-inputs (list python-pycountry python-pytest python-setuptools))
(home-page "https://github.com/noumar/iso639")
(synopsis "Python library for ISO 639 standard")
(description "This package provides a Python library for ISO 639 standard
that is concerned with representation of names for languages and language
groups.")
(description
"This package provides a Python library for ISO 639 standard that is
concerned with representation of names for languages and language groups.")
(license license:agpl3+)))
(define-public python-iso3166
@ -171,13 +196,64 @@ groups.")
(version "2.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "iso3166" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/deactivated/python-iso3166")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"068p94gavc8gbmp5a2kw8hi5l551wfzbpmp6z7ll8sx6vnw53mgw"))))
(build-system python-build-system)
(base32 "0j0bnm4bd23cyb7dga00gb20myg9skylchkw4d23yh31b7a315m8"))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/deactivated/python-iso3166")
(synopsis "Self-contained ISO 3166-1 country definitions")
(description "This package provides the ISO 3166-1 country definitions.")
(license license:expat)))
(define-public python-pycountry
(package
(name "python-pycountry")
(version "24.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pycountry/pycountry")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0qs99acz1vsj96s8pcwbnp3z3s01mzzvdayk7fm0nnl6lf3lz1g1"))))
(build-system pyproject-build-system)
(native-inputs (list python-poetry-core python-pytest python-pytest-cov))
(home-page "https://github.com/pycountry/pycountry")
(synopsis "ISO databases for languages, countries, currencies, etc.")
(description
"@code{pycountry} provides the ISO databases for the standards:
@enumerate
@item 639-3 (Languages)
@item 3166 (Countries)
@item 3166-3 (Deleted Countries)
@item 3166-2 (Subdivisions of countries)
@item 4217 (Currencies)
@item 15924 (Scripts)
@end enumerate
It includes a copy from Debians pkg-isocodes and makes the data accessible
through a Python API.")
(license license:lgpl2.1+)))
(define-public python-pycountry-20.7.3
(hidden-package
(package
(inherit python-pycountry)
(name "python-pycountry")
(version "20.7.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pycountry/pycountry")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1aqzbdqvy3pg0x33ay099vriazs28v6kw7fwc8ajg3avdcws2mgm"))))
(native-inputs (list python-pytest python-pytest-cov python-setuptools)))))

View file

@ -77,7 +77,6 @@
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
#:use-module (gnu packages mp3)
#:use-module (gnu packages openbox)
#:use-module (gnu packages pdf)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@ -96,6 +95,7 @@
#:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages wm)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)

View file

@ -24,11 +24,12 @@
#:use-module (ice-9 match)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages llvm)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
@ -165,18 +166,33 @@ interactive and automated theorem proving.")
(package
(name "python-mathlibtools")
(version "1.1.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "mathlibtools" version))
(sha256
(base32
"089pql105imx8z7ar1wiz9fn000jp6xqdfixw4jf2vric94vn9fj"))))
(build-system python-build-system)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/leanprover-community/mathlib-tools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1kllk99cd9vsbmb0ifi21gkhrg2w803z4y5xhx0a7hx3viyjb3cv"))))
(build-system pyproject-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'check 'fix-home-directory
(lambda _
(setenv "HOME" "/tmp"))))))
(list
#:test-flags
#~(list "-k"
;; These tests require network access.
(string-join (list "not test_new"
"test_add"
"test_upgrade_project"
"test_upgrade_mathlib"
"test_get_tutorials")
" and not "))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'fix-home-directory
(lambda _
(setenv "HOME" "/tmp"))))))
(native-inputs (list python-pytest python-setuptools))
(inputs (list python-toml
python-pygithub
python-certifi

View file

@ -26,7 +26,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (gnu packages autotools)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@ -34,6 +34,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python-build)
#:use-module (gnu packages xiph))
(define-public libcanberra
@ -133,15 +134,13 @@ sounds for various system events.")
(uri (string-append "http://ftp.n0.is/pub/releases/"
"pycanberra-" version ".tar.xz"))
(sha256
(base32
"16jjf8fcgaprmz6jacsxrh17l1ad891fns38bxv49lg3s3mn1nj2"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;No tests included.
(propagated-inputs
(list libcanberra))
(base32 "16jjf8fcgaprmz6jacsxrh17l1ad891fns38bxv49lg3s3mn1nj2"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;No tests included.
(native-inputs (list python-setuptools))
(propagated-inputs (list libcanberra))
(home-page "https://github.com/totdb/pycanberra")
(synopsis "Ctypes wrapper for the libcanberra API")
(description
"Pycanberra is a basic Python wrapper for libcanberra.")
(home-page "http://c.n0.is/ng0/pycanberra/")
(license lgpl2.1+)))

View file

@ -47,7 +47,6 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lsof)
#:use-module (gnu packages openbox)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)

View file

@ -57,7 +57,6 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages lxde)
#:use-module (gnu packages maths)
#:use-module (gnu packages openbox)
#:use-module (gnu packages pcre)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
@ -65,6 +64,7 @@
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages qt)
#:use-module (gnu packages textutils)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))

View file

@ -6121,12 +6121,14 @@ simple speech recognition.")
(build-system pyproject-build-system)
(arguments
(list
#:test-backend #~'custom
#:test-flags #~(list "../../tests/from_words_to_digits.py")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "package/python"))))))
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-setuptools))
(propagated-inputs (list python-vosk))
(home-page "https://github.com/ideasman42/nerd-dictation")
(synopsis "Offline speech-to-text for desktop Linux")

View file

@ -4353,16 +4353,16 @@ It is a replacement for the @command{urlview} program.")
(define-public mumi
(package
(name "mumi")
(version "0.13.0")
(version "0.14.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/guix/mumi.git/")
(url "https://codeberg.org/guix/mumi.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"04mcd1xkdpvxlvpf4k4mvnwi06sdy8vy1di6gxxsr9msgdb366ir"))))
"1v5gjzh8idz926518c0bv0qsmyggr6lvqn5vksf5j0qdh6r6dar7"))))
(build-system gnu-build-system)
(arguments
(list
@ -4743,11 +4743,15 @@ the RFC 8617 Authenticated Received Chain (ARC) protocol.")
(base32
"12hl93336w64iyqalpv4rma2ijigav68qy1xmgziibdi7inxr3hi"))))
(build-system pyproject-build-system)
(arguments
(list
;; dns.resolver.NoResolverConfiguration: cannot open /etc/resolv.conf
#:test-flags #~(list "-k" "not test_authenticate_dmarc_psdsub")))
(propagated-inputs
(list python-authres python-dkimpy python-dnspython
python-publicsuffix2))
(native-inputs
(list python-setuptools python-wheel))
(list python-pytest python-setuptools))
(home-page "https://github.com/ValiMail/authentication-headers")
(synopsis "Library wrapping email authentication header verification and generation")
(description
@ -4760,38 +4764,40 @@ DKIM and ARC sign messages and output the corresponding signature headers.")
(license (list license:zpl2.1 license:zlib license:mpl2.0))))
(define-public python-aiosmtpd
(package
(name "python-aiosmtpd")
(version "1.4.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aio-libs/aiosmtpd")
(commit (string-append "v" version))))
(sha256
(base32 "0b5y94zc8pq75sjwsifblzgjnliyclkwypi68b2zffrxcdnz27r2"))
(file-name (git-file-name name version))))
(build-system pyproject-build-system)
(arguments
;; This QA test requires git.
(list #:test-flags ''("-k" "not test_ge_master")))
(native-inputs
(list python-pytest
python-pytest-asyncio
python-pytest-cov
python-pytest-mock
python-setuptools
python-wheel))
(propagated-inputs
(list python-atpublic))
(home-page "https://aiosmtpd.readthedocs.io/")
(synopsis "Asyncio based SMTP server")
(description
"This project is a reimplementation of the Python stdlib @code{smtpd.py}
;; Tests run fixed on not yet released version.
(let ((commit "98f578389ae86e5345cc343fa4e5a17b21d9c96d")
(revision "0"))
(package
(name "python-aiosmtpd")
(version (git-version "1.4.6" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aio-libs/aiosmtpd")
(commit commit)))
(sha256
(base32 "1pmvlzxfcqjplvn2bzi9jd3m3941ff7nlgxxfwc7pzhmazlkqf8z"))
(file-name (git-file-name name version))))
(build-system pyproject-build-system)
(arguments
;; This QA test requires git.
(list #:test-flags ''("-k" "not test_ge_master")))
(native-inputs
(list python-pytest
python-pytest-cov
python-pytest-mock
python-setuptools))
(propagated-inputs
(list python-atpublic
python-attrs))
(home-page "https://aiosmtpd.readthedocs.io/")
(synopsis "Asyncio based SMTP server")
(description
"This project is a reimplementation of the Python stdlib @code{smtpd.py}
based on asyncio.")
(license (list license:asl2.0
license:lgpl3)))) ; only for setup_helpers.py
(license (list license:asl2.0
license:lgpl3))))) ; only for setup_helpers.py
(define-public python-imaplib2
(package

View file

@ -11316,8 +11316,12 @@ the Wolfram language.")
(sha256
(base32 "1iagdic8f0yjx01kdds40jfcxcpdbrd3i0ywydl01dhyyvd2yjk9"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-mathics-scanner python-pygments))
(native-inputs (list python-setuptools python-wheel))
(native-inputs
(list python-pytest
python-setuptools))
(propagated-inputs
(list python-mathics-scanner
python-pygments))
(home-page "http://github.com/Mathics3/mathics-pygments/")
(synopsis "Wolfram language lexer for Pygments")
(description "This package provides a Wolfram language lexer for Pygments.")

View file

@ -65,28 +65,32 @@
(package
(name "mygnuhealth")
(version "2.2.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "MyGNUHealth" version))
(sha256
(base32
"1jcrriccqzb4jx7zayhiqmpvi3cvfy3bbf9zr3m83878f94yww8j"))))
(build-system python-build-system)
(source
(origin
(method url-fetch)
(uri (pypi-uri "MyGNUHealth" version))
(sha256
(base32 "1jcrriccqzb4jx7zayhiqmpvi3cvfy3bbf9zr3m83878f94yww8j"))))
(build-system pyproject-build-system)
(arguments
(list
#:imported-modules `(,@%python-build-system-modules
,@%qt-build-system-modules)
#:modules `(((guix build qt-build-system) #:prefix qt:)
(guix build python-build-system)
(guix build utils))
#:phases #~(modify-phases %standard-phases
(add-after 'install 'qt-wrap
(assoc-ref qt:%standard-phases 'qt-wrap))
(add-before 'check 'env-setup
(lambda _
(mkdir-p "/tmp/mygh/")
(setenv "HOME" "/tmp"))))))
(native-inputs (list python-pyside-2))
#:tests? #f ; no tests.
#:imported-modules
`(,@%pyproject-build-system-modules
,@%qt-build-system-modules)
#:modules
`(((guix build qt-build-system) #:prefix qt:)
(guix build pyproject-build-system)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'qt-wrap
(assoc-ref qt:%standard-phases 'qt-wrap))
(add-before 'check 'env-setup
(lambda _
(mkdir-p "/tmp/mygh/")
(setenv "HOME" "/tmp"))))))
(native-inputs (list python-pyside-2 python-setuptools))
(inputs (list bash-minimal
kirigami-5
python

View file

@ -3611,21 +3611,24 @@ for notification of events.")
(license license:gpl3+)))
(define-public python-harmony
;; TODO: Remove python-harmony? Repository is archived.
(package
(name "python-harmony")
(version "0.7.1")
(version "0.7.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/taylordotfish/harmony.git")
(url "https://github.com/taylordotfish/harmony")
(commit version)))
(file-name (string-append name "-" version "-checkout"))
(file-name (git-file-name name version))
(sha256
(base32
"1bm9xcnzpnpj6rlhbrnl2abwclzl7ivgh1vb5644y9mnhcs489js"))))
(build-system python-build-system)
"1d202pymabzvkzmxpplyjv55x74g937abxmnxdg9bxjjvp85c1nv"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;no tests in repository
(native-inputs
(list python-tox))
(list python-setuptools))
(inputs
(list python-librecaptcha python-keyring python-requests))
(synopsis "Discord account management")

View file

@ -36,7 +36,7 @@
#:use-module (guix deprecation)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@ -62,6 +62,8 @@
#:use-module (gnu packages parallel)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages ssh)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
@ -528,36 +530,48 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
(define-public python-mpi4py
(package
(name "python-mpi4py")
(version "3.1.4")
(version "4.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mpi4py" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mpi4py/mpi4py")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "101lz7bnm9l17nrkbg6497kxscyh53aah7qd2b820ck2php8z18p"))))
(build-system python-build-system)
(base32 "1r4n2d3nacpa6sq18jp0xk4a81ha0iipgvlsdv0bhfmdvgpv2vqy"))))
(build-system pyproject-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'build 'mpi-setup
,%openmpi-setup)
(add-before 'check 'pre-check
(lambda _
;; Skip BaseTestSpawn class (causes error 'ompi_dpm_dyn_init()
;; failed --> Returned "Unreachable"' in chroot environment).
(substitute* "test/test_spawn.py"
(("unittest.skipMPI\\('openmpi\\(<3.0.0\\)'\\)")
"unittest.skipMPI('openmpi')"))
#t)))))
(inputs
(list openmpi))
(properties
'((updater-extra-inputs . ("openmpi"))))
(list
#:test-flags
#~(list ;; MPI errors are unrecoverable.
"--ignore=test/test_spawn.py"
"--ignore=test/test_util_pool.py"
"--ignore=demo/futures/test_futures.py")
#:phases
#~(modify-phases %standard-phases
(add-after 'build 'mpi-setup #$%openmpi-setup)
(add-before 'check 'pre-check
(lambda _
;; Skip BaseTestSpawn class (causes error 'ompi_dpm_dyn_init()
;; failed --> Returned "Unreachable"' in chroot environment).
(substitute* "test/test_spawn.py"
(("unittest.skipMPI\\('openmpi\\(<3.0.0\\)'\\)")
"unittest.skipMPI('openmpi')"))))
(replace 'check
(lambda* (#:key tests? test-flags #:allow-other-keys)
(if tests?
(apply invoke "mpiexec" "pytest" "-vv" test-flags)
(format #t "test suite not run~%")))))))
(native-inputs (list python-cython python-pytest python-setuptools))
(inputs (list openmpi))
(properties '((updater-extra-inputs "openmpi")))
(home-page "https://github.com/mpi4py/mpi4py")
(synopsis "Python bindings for the Message Passing Interface standard")
(description "MPI for Python (mpi4py) provides bindings of the Message
Passing Interface (MPI) standard for the Python programming language, allowing
any Python program to exploit multiple processors.
(description
"MPI for Python (mpi4py) provides bindings of the Message Passing
Interface (MPI) standard for the Python programming language, allowing any
Python program to exploit multiple processors.
mpi4py is constructed on top of the MPI-1/MPI-2 specification and provides an
object oriented interface which closely follows MPI-2 C++ bindings. It

View file

@ -154,6 +154,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages image-viewers)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages java)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libevent)
@ -4206,8 +4207,8 @@ websites such as Libre.fm.")
(license license:asl2.0)))
(define-public instantmusic
(let ((commit "300891d09c703525215fa5a116b9294af1c923c8")
(revision "1"))
(let ((commit "0477dd310e0aeb11d4d113bb96baa40d824cc330")
(revision "2"))
(package
(name "instantmusic")
(version (git-version "1.0" revision commit))
@ -4219,10 +4220,11 @@ websites such as Libre.fm.")
(file-name (git-file-name name version))
(sha256
(base32
"0j7qivaa04bpdz3anmgci5833dgiyfqqwq9fdrpl9m68b34gl773"))))
"0pxp1h0q4j7bidgdh4wgrvnm4ckdr4bvgk1wccr02mynfsjq8x5c"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;no tests
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'change-directory
@ -4243,7 +4245,7 @@ websites such as Libre.fm.")
(chmod file #o644))
(find-files "instantmusic.egg-info"
"PKG-INFO|.*\\.txt")))))))
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-setuptools))
(inputs (list yt-dlp))
(propagated-inputs (list python-requests eyed3 python-beautifulsoup4))
(home-page "https://github.com/yask123/Instant-Music-Downloader")

View file

@ -23,7 +23,7 @@
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (gnu packages bash)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
@ -31,6 +31,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages mp3)
#:use-module (gnu packages python-build)
#:use-module (gnu packages xorg))
(define-public nicotine+
@ -45,43 +46,42 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0xj7hlhgirgjyfmdchksvwhjhaqaf5n84brzih6fqlbsrr9gxkw9"))
(modules '((guix build utils)))
;; Remove test that relies on network access.
(snippet '(delete-file-recursively
"pynicotine/tests/unit/test_version.py"))))
(build-system python-build-system)
(base32 "0xj7hlhgirgjyfmdchksvwhjhaqaf5n84brzih6fqlbsrr9gxkw9"))))
(build-system pyproject-build-system)
(arguments
(list
#:imported-modules `((guix build glib-or-gtk-build-system)
,@%python-build-system-modules)
#:modules `((guix build utils)
(guix build python-build-system)
((guix build glib-or-gtk-build-system)
#:prefix glib-or-gtk:))
#:phases #~(modify-phases %standard-phases
(add-after 'install 'wrap-program
(lambda _
(wrap-program (string-append #$output "/bin/nicotine")
`("GI_TYPELIB_PATH" ":" prefix
(,(getenv "GI_TYPELIB_PATH"))))))
(add-after 'wrap-program 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases
'glib-or-gtk-wrap))
(add-after 'glib-or-gtk-wrap 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases
'glib-or-gtk-compile-schemas))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "xvfb-run" "python" "-m" "unittest")))))))
#:imported-modules
`((guix build glib-or-gtk-build-system)
,@%pyproject-build-system-modules)
#:modules
`((guix build utils)
(guix build pyproject-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'wrap-program
(lambda _
(wrap-program (string-append #$output "/bin/nicotine")
`("GI_TYPELIB_PATH" ":" prefix
(,(getenv "GI_TYPELIB_PATH"))))))
(add-after 'wrap-program 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
(add-after 'glib-or-gtk-wrap 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases
'glib-or-gtk-compile-schemas))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Remove test that relies on network access.
(delete-file "pynicotine/tests/unit/test_version.py")
(invoke "xvfb-run" "python" "-m" "unittest")))))))
(inputs (list bash-minimal
gspell
gtk
python-pygobject
libappindicator
python-pytaglib))
(native-inputs (list gettext-minimal xvfb-run))
(native-inputs (list gettext-minimal python-setuptools xvfb-run))
(home-page "https://nicotine-plus.org/")
(synopsis "Graphical client for Soulseek")
(description

View file

@ -1470,14 +1470,15 @@ Knuths LR(1) parser construction technique.")
(wrap-program (string-append #$output "/bin/" "binsec")
`("OCAMLPATH" ":" prefix ,ocamlpath))))))))
(inputs (list bash-minimal))
(native-inputs (list gmp ocaml-qcheck ocaml-ounit2))
(native-inputs (list gmp ocaml-qcheck ocaml-ounit2 z3))
(propagated-inputs (list dune-site
ocaml-base
ocaml-menhir
ocaml-graph
ocaml-zarith
ocaml-grain-dypgen
ocaml-toml))
ocaml-toml
ocaml-z3))
(synopsis "Binary-level analysis platform")
(description
"BINSEC is a binary analysis platform which implements analysis

View file

@ -1,120 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2022 Maxim Cournoyer <maxim@guixotic.coop>
;;;
;;; 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 openbox)
#:use-module ((guix licenses) #:select (gpl2+))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public openbox
(package
(name "openbox")
(version "3.6.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://openbox.org/dist/openbox/" name "-"
version ".tar.xz"))
(sha256
(base32
"0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))
(patches (search-patches "openbox-add-fix-for-glib2-exposed-segfault.patch" "openbox-python3.patch"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'force-reconfigure
;; This is made necessary by the openbox-python3 patch.
(lambda _
(delete-file "configure"))))))
(native-inputs (list autoconf automake gettext-minimal libtool pkg-config))
(propagated-inputs (list python-pyxdg))
(inputs (list imlib2
libxml2
(librsvg-for-system)
libsm
libxcursor
libxinerama
libxml2
libxrandr
libxft
pango
python-wrapper))
(synopsis "Box style window manager")
(description
"Openbox is a highly configurable, next generation window manager with
extensive standards support. The *box visual style is well known for its
minimalistic appearance. Openbox uses the *box visual style, while providing
a greater number of options for theme developers than previous *box
implementations.")
(home-page "http://openbox.org/wiki/Main_Page")
(license gpl2+)))
(define-public obconf
(package
(name "obconf")
(version "2.0.4")
(source
(origin
(method url-fetch)
(uri (string-append "http://openbox.org/dist/" name
"/" name "-" version ".tar.gz"))
(sha256
(base32
"1fanjdmd8727kk74x5404vi8v7s4kpq48l583d12fsi4xvsfb8vi"))))
(inputs (list gtk+-2
imlib2
libglade
libsm
librsvg
libxft
openbox
startup-notification))
(native-inputs (list gettext-minimal pkg-config))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "--enable-nls"
"CFLAGS=-g -O2 -Wno-error=implicit-function-declaration")))
(home-page "https://openbox.org/obconf")
(synopsis "Openbox configuration tool")
(description
"Obconf is a tool for configuring the Openbox window manager.
You can configure its appearance, themes, and much more.")
(license gpl2+)))
;;; openbox.scm ends here

View file

@ -1931,7 +1931,7 @@ This package just includes the agent component.")))
(define-public guix-jupyter
(package
(name "guix-jupyter")
(version "0.3.0")
(version "0.3.1")
(home-page "https://codeberg.org/guix-science/guix-jupyter")
(source (origin
(method git-fetch)
@ -1939,7 +1939,7 @@ This package just includes the agent component.")))
(commit (string-append "v" version))))
(sha256
(base32
"0cvjxv60la2bqmwb7m2bfpvjy8hx1hmjk2qy9wfzaffcabgr0x44"))
"1yvrmaj4qcb9vn2nfjz1q0cil830hvmxpp8cgi76aylbnv36aask"))
(file-name (string-append "guix-jupyter-" version "-checkout"))))
(build-system gnu-build-system)
(arguments

View file

@ -35,7 +35,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
#:use-module (guix build-system ocaml)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
@ -367,40 +367,37 @@ you to figure out what is going on in that merge you keep avoiding.")
(package
(name "patchwork")
(version "3.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/getpatchwork/patchwork")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"04ikawdyhjwspxvhazbp5f5vym672y0jcw8rd2m75h9ipcpnyxim"))))
(build-system python-build-system)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/getpatchwork/patchwork")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04ikawdyhjwspxvhazbp5f5vym672y0jcw8rd2m75h9ipcpnyxim"))))
(build-system pyproject-build-system)
(arguments
`(;; TODO: Tests require a running database
#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(add-after 'unpack 'replace-wsgi.py
(lambda* (#:key inputs outputs #:allow-other-keys)
(delete-file "patchwork/wsgi.py")
(call-with-output-file "patchwork/wsgi.py"
(lambda (port)
;; Embed the PYTHONPATH containing the dependencies, as well
;; as the python modules in this package in the wsgi.py file,
;; as this will ensure they are available at runtime.
(define pythonpath
(string-append (getenv "GUIX_PYTHONPATH")
":"
(site-packages inputs outputs)))
(display
(string-append "
import os, sys
sys.path.extend('" pythonpath "'.split(':'))
(list
#:tests? #f ;TODO: Tests require a running database
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(add-after 'unpack 'replace-wsgi.py
(lambda* (#:key inputs outputs #:allow-other-keys)
(delete-file "patchwork/wsgi.py")
(call-with-output-file "patchwork/wsgi.py"
(lambda (port)
;; Embed the PYTHONPATH containing the dependencies, as well
;; as the python modules in this package in the wsgi.py file,
;; as this will ensure they are available at runtime.
(define pythonpath
(string-append (getenv "GUIX_PYTHONPATH") ":"
(site-packages inputs outputs)))
(display (string-append
"\nimport os, sys\n\nsys.path.extend('" pythonpath
"'.split(':'))
from django.core.wsgi import get_wsgi_application
@ -415,89 +412,88 @@ os.environ['DJANGO_SETTINGS_MODULE'] = os.getenv(
)
application = get_wsgi_application()\n") port)))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "DJANGO_SETTINGS_MODULE" "patchwork.settings.dev")
(invoke "python" "-Wonce" "./manage.py" "test" "--noinput"))
#t))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(out-site-packages (site-packages inputs outputs)))
(for-each (lambda (directory)
(copy-recursively
directory
(string-append out-site-packages "/" directory)))
'(;; Contains the python code
"patchwork"
;; Contains the templates for the generated HTML
"templates"))
(delete-file-recursively
(string-append out-site-packages "/patchwork/tests"))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "DJANGO_SETTINGS_MODULE" "patchwork.settings.dev")
(invoke "python" "-Wonce" "./manage.py" "test" "--noinput"))))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(out-site-packages (site-packages inputs outputs)))
(for-each (lambda (directory)
(copy-recursively directory
(string-append out-site-packages
"/" directory)))
'( ;Contains the python code
"patchwork"
;; Contains the templates for the generated HTML
"templates"))
(delete-file-recursively (string-append out-site-packages
"/patchwork/tests"))
;; Install patchwork related tools
(for-each (lambda (file)
(install-file file (string-append out "/bin")))
(list
(string-append out-site-packages
"/patchwork/bin/parsemail.sh")
(string-append out-site-packages
"/patchwork/bin/parsemail-batch.sh")))
;; Install patchwork related tools
(for-each (lambda (file)
(install-file file
(string-append out "/bin")))
(list (string-append out-site-packages
"/patchwork/bin/parsemail.sh")
(string-append out-site-packages
"/patchwork/bin/parsemail-batch.sh")))
;; Collect the static assets, this includes JavaScript, CSS and
;; fonts. This is a standard Django process when running a
;; Django application for regular use, and includes assets for
;; dependencies like the admin site from Django.
;;
;; The intent here is that you can serve files from this
;; directory through a webserver, which is recommended when
;; running Django applications.
(let ((static-root
(string-append out "/share/patchwork/htdocs")))
(mkdir-p static-root)
(copy-file "patchwork/settings/production.example.py"
"patchwork/settings/assets.py")
(setenv "DJANGO_SECRET_KEY" "dummyvalue")
(setenv "DJANGO_SETTINGS_MODULE" "patchwork.settings.assets")
(setenv "STATIC_ROOT" static-root)
(invoke "./manage.py" "collectstatic" "--no-input"))
;; Collect the static assets, this includes JavaScript, CSS and
;; fonts. This is a standard Django process when running a
;; Django application for regular use, and includes assets for
;; dependencies like the admin site from Django.
;;
;; The intent here is that you can serve files from this
;; directory through a webserver, which is recommended when
;; running Django applications.
(let ((static-root (string-append out
"/share/patchwork/htdocs")))
(mkdir-p static-root)
(copy-file "patchwork/settings/production.example.py"
"patchwork/settings/assets.py")
(setenv "DJANGO_SECRET_KEY" "dummyvalue")
(setenv "DJANGO_SETTINGS_MODULE" "patchwork.settings.assets")
(setenv "STATIC_ROOT" static-root)
(invoke "./manage.py" "collectstatic" "--no-input"))
;; The lib directory includes example configuration files that
;; may be useful when deploying patchwork.
(copy-recursively "lib"
(string-append
out "/share/doc/" ,name "-" ,version)))
#t))
;; The hasher script is used from the post-receive.hook
(add-after 'install 'install-hasher
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(out-site-packages (site-packages inputs outputs))
(out-hasher.py (string-append out-site-packages
"/patchwork/hasher.py")))
(chmod out-hasher.py #o555)
(symlink out-hasher.py (string-append out "/bin/hasher")))
#t))
;; Create a patchwork specific version of Django's command line admin
;; utility.
(add-after 'install 'install-patchwork-admin
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/bin"))
(call-with-output-file (string-append out "/bin/patchwork-admin")
(lambda (port)
(simple-format port "#!~A
;; The lib directory includes example configuration files that
;; may be useful when deploying patchwork.
(copy-recursively "lib"
(string-append out "/share/doc/"
#$name "-"
#$version)))))
;; The hasher script is used from the post-receive.hook
(add-after 'install 'install-hasher
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(out-site-packages (site-packages inputs outputs))
(out-hasher.py (string-append out-site-packages
"/patchwork/hasher.py")))
(chmod out-hasher.py #o555)
(symlink out-hasher.py
(string-append out "/bin/hasher")))))
;; Create a patchwork specific version of Django's command line admin
;; utility.
(add-after 'install 'install-patchwork-admin
(lambda _
(mkdir-p (string-append #$output "/bin"))
(call-with-output-file (string-append #$output
"/bin/patchwork-admin")
(lambda (port)
(simple-format port "#!~A
import os, sys
if __name__ == \"__main__\":
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)" (which "python"))))
(chmod (string-append out "/bin/patchwork-admin") #o555))
#t)))))
(inputs
(list python-wrapper))
(chmod (string-append #$output "/bin/patchwork-admin")
#o555))))))
(native-inputs (list python-setuptools))
(inputs (list python-wrapper))
(propagated-inputs
(list python-django
;; TODO: Make this configurable
@ -553,47 +549,34 @@ patches do not match perfectly.")
(package
(name "pwclient")
(version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/getpatchwork/pwclient")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1xckwvcqklzpyh3xs4k2zm40ifp0q5fdkj2vmgb8vhfvl1ivs6jv"))))
(build-system python-build-system)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/getpatchwork/pwclient")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1xckwvcqklzpyh3xs4k2zm40ifp0q5fdkj2vmgb8vhfvl1ivs6jv"))))
(build-system pyproject-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-requirements
(lambda _
(substitute* "test-requirements.txt"
;; The pytest requirement is unnecessarily strict
(("pytest>=3.0,<5.0;")
"pytest>=3.0,<6.0;"))
#t))
(add-before 'build 'set-PBR_VERSION
(lambda _
(setenv "PBR_VERSION"
,version)
#t))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest"))
#t))
(add-after 'install 'install-man-page
(lambda* (#:key outputs #:allow-other-keys)
(install-file "man/pwclient.1"
(string-append
(assoc-ref outputs "out")
"/share/man/man1"))
#t)))))
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-PBR_VERSION
(lambda _
(setenv "PBR_VERSION" #$version)))
(add-after 'install 'install-man-page
(lambda _
(install-file "man/pwclient.1"
(string-append #$output "/share/man/man1")))))))
(native-inputs
(list python-pbr python-pytest python-pytest-cov python-mock))
(home-page
"https://github.com/getpatchwork/pwclient")
(list python-pbr
python-pytest
python-pytest-cov
python-mock
python-setuptools))
(home-page "https://github.com/getpatchwork/pwclient")
(synopsis "Command-line client for the Patchwork patch tracking tool")
(description
"pwclient is a VCS-agnostic tool for interacting with Patchwork, the

View file

@ -185,7 +185,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.83.8")
(version "2.83.11")
(source
(origin
(method git-fetch)
@ -194,7 +194,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "1bpfzrwsgbmjl1maiaw5b8ixkgh548gw1lkiznsjgkjm7dxr4ns4"))
(base32 "00kbcq9mzxqm3hgfgbxjblb733lzy1hvfwnf73a5gxnfdbqhr5dz"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs

View file

@ -1,8 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2015, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016 宋文武 <iyzsong@envs.net>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;; Copyright © 2017 Thomas Danckaert <thomas.danckaert@gmail.com>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018-2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019-2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019-2024 Maxim Cournoyer <maxim@guixotic.coop>
@ -23,6 +26,7 @@
;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2024 Danny Milosavljevic <dannym@friendly-machines.com>
;;; Copyright © 2024-2025 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Navid Afkhami <navid.afkhami@mdc-berlin.de>
;;; Copyright © 2024, 2025 David Elsing <david.elsing@posteo.net>
@ -226,6 +230,38 @@ the implementation of that name.")
(license (list license:asl2.0
license:lgpl3)))) ; only for setup_helpers.py
(define-public python-autopep8
(package
(name "python-autopep8")
(version "2.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "autopep8" version))
(sha256
(base32 "0n0pjdk39n6vlddjqvbpkxd4a7q33dkf0k2yk6dbd5wijr7hli49"))))
(build-system pyproject-build-system)
(propagated-inputs
(list python-pycodestyle python-tomli))
(native-inputs
(list python-setuptools))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'prepare-check
(lambda _
(setenv "HOME" "/tmp"))))))
(home-page "https://github.com/hhatto/autopep8")
(synopsis "Format Python code according to the PEP 8 style guide")
(description
"@code{autopep8} automatically formats Python code to conform to
the PEP 8 style guide. It uses the pycodestyle utility to determine
what parts of the code needs to be formatted. @code{autopep8} is
capable of fixing most of the formatting issues that can be reported
by pycodestyle.")
(license (license:non-copyleft
"https://github.com/hhatto/autopep8/blob/master/LICENSE"))))
(define-public python-avocado-framework
(package
(name "python-avocado-framework")
@ -786,6 +822,27 @@ list/set/dict comprehensions.")
providing hints about what deprecated methods should be replaced with.")
(license license:gpl2)))
(define-public python-flexmock
(package
(name "python-flexmock")
(version "0.12.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "flexmock" version))
(sha256
(base32 "18dcr7mpldf3cxsqi9rak75n4z7x3j544l4ixdspairm7cf6cp23"))))
(build-system pyproject-build-system)
(native-inputs
(list python-poetry-core
python-pytest))
(home-page "https://flexmock.readthedocs.io/")
(synopsis "Testing library for Python")
(description
"flexmock is a testing library for Python that makes it easy to create
mocks, stubs and fakes.")
(license license:bsd-3)))
(define-public python-gcovr
(package
(name "python-gcovr")

View file

@ -1771,6 +1771,7 @@ in different situations.
@end enumerate")
(license license:expat)))
;; XXX: Not maintained since 2016.
(define-public python-pydes
(package
(name "python-pydes")
@ -1782,8 +1783,10 @@ in different situations.
(sha256
(base32 "04lh71f47y04vspfrdrq6a0hn060ibxvdp5z1pcr0gmqs8hqxaz2"))))
(build-system pyproject-build-system)
(native-inputs (list python-setuptools python-wheel))
(home-page "http://twhiteman.netfirms.com/des.html")
(arguments
(list #:tests? #f)) ;no tests in PyPI, I could not fine Git
(native-inputs (list python-setuptools))
(home-page "http://twhiteman.netfirms.com/des.html") ;XXX: Dead link
(synopsis
"Pure python implementation of the DES and TRIPLE DES encryption algorithms")
(description

View file

@ -335,22 +335,34 @@ reduces the code overhead typically encountered when using a mostly
object-oriented library such as @code{scikit-learn}.")
(license license:bsd-3)))
;; XXX: See: <https://codeberg.org/guix/guix/issues/3093>.
(define-public python-aplus
(package
(name "python-aplus")
(version "0.11.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "aplus" version))
(sha256
(base32 "1rznc26nlp641rn8gpdngfp79a3fji38yavqakxi35mx2da04msg"))))
(build-system python-build-system)
(home-page "https://github.com/xogeny/aplus")
(synopsis "Promises/A+ for Python")
(description "This package is an implementation of the Promises/A+
specification and test suite in Python.")
(license license:expat)))
;; PyPI release lacks the latest version, Git has no tags.
(let ((commit "1ab8ebec987fb7213766784aad02cbf4410d9036")
(revision "0"))
(package
(name "python-aplus")
(version (git-version "0.11.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xogeny/aplus")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "02jcfj7dywvs0sd60c85pxwh0mwsj9p1q27445pba6j489x3dffj"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;they depend on Nose test runner
(native-inputs
(list python-setuptools))
(home-page "https://github.com/xogeny/aplus")
(synopsis "Promises/A+ for Python")
(description
"This package is an implementation of the Promises/A+ specification and
test suite in Python.")
(license license:expat))))
(define-public python-apted
;; PyPI release lacks tests and there is no Git tag.
@ -3930,19 +3942,25 @@ production-critical data pipelines or reproducible research settings. With
;; marked turtle can be skipped using "-m" "not turtle".
(arguments
(list
#:test-flags '(list
"-n" (number->string (parallel-job-count))
;; Tries to connect to the internet.
"-k" (string-append "not test_is_connected"
;; Test files are not included
" and not test_read_commandline_bad_cmd")
;; Test files are not included
"--ignore=tests/io/test_read_csvs.py"
;; Polars has not been packaged yet.
"--ignore=tests/polars"
;; PySpark has not been packaged yet.
"--ignore=tests/spark/functions/test_clean_names_spark.py"
"--ignore=tests/spark/functions/test_update_where_spark.py")
;; tests: 1042 passed, 2 skipped, 2 deselected, 45 xfailed, 6 xpassed,
;; 735 warnings
#:test-flags
;; The tests take quite long, so consider adding the "-n" line and
;; adding python-pytest-xdist to the native-inputs when testing.
;; However, the tests are not deterministic when ran with -n, so
;; disable again before committing.
#~(list ;; "-n" (number->string (parallel-job-count))
;; Test files are not included.
"--ignore=tests/io/test_read_csvs.py"
;; Polars has not been packaged yet.
"--ignore=tests/polars"
;; PySpark has not been packaged yet.
"--ignore=tests/spark/functions/test_clean_names_spark.py"
"--ignore=tests/spark/functions/test_update_where_spark.py"
;; Tries to connect to the internet.
"-k" (string-append "not test_is_connected"
;; Test files are not included.
" and not test_read_commandline_bad_cmd"))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'set-env-ci
@ -3950,20 +3968,22 @@ production-critical data pipelines or reproducible research settings. With
;; Some tests are skipped if the JANITOR_CI_MACHINE
;; variable is not set.
(setenv "JANITOR_CI_MACHINE" "1"))))))
;; TODO: Remove python-requests and inject its target data to make the
;; package behaviour reproducible.
(propagated-inputs (list python-multipledispatch
python-natsort
python-pandas-flavor
python-requests
python-scipy
;; Optional imports.
python-biopython ;biology submodule
python-unyt)) ;engineering submodule
(native-inputs (list python-pytest
python-pytest-xdist
;;python-pytest-xdist ;only for -n when testing
python-setuptools
;; Optional imports. We do not propagate them due to
;; their size.
python-numba ;speedup of joins
python-setuptools
python-wheel
rdkit)) ;chemistry submodule
(home-page "https://github.com/pyjanitor-devs/pyjanitor")
(synopsis "Tools for cleaning and transforming pandas DataFrames")
@ -4123,6 +4143,8 @@ changed, it made sense to abstract away the nuisance of having to re-learn
them.")
(license license:bsd-3)))
;; XXX: Not maintained since 2019. The project was archived by the owner on
;; Nov 2, 2020. It is now read-only.
(define-public python-fbpca
(package
(name "python-fbpca")
@ -4133,7 +4155,10 @@ them.")
(sha256
(base32
"1lbjqhqsdmqk86lb86q3ywf7561zmdny1dfvgwqkyrkr4ij7f1hm"))))
(build-system python-build-system)
(build-system pyproject-build-system)
(arguments
(list #:test-flags #~(list "fbpca.py")))
(native-inputs (list python-pytest python-setuptools))
(propagated-inputs
(list python-numpy python-scipy))
(home-page "https://fbpca.readthedocs.io/")

View file

@ -64,6 +64,8 @@
;;; Copyright © 2023 dan <i@dan.games>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
;;; Copyright © 2024 Fabio Natali <me@fabionatali.com>
;;; Copyright © 2024 Steve George <steve@futurile.net>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024, 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2024 normally_js <normally_js@posteo.net>
@ -120,6 +122,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages groff)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libidn)
@ -205,6 +208,112 @@ writing applications that talk to network enabled embedded
@acronym{IoT,Internet of Things} devices.")
(license license:expat)))
(define-public python-apprise
(package
(name "python-apprise")
(version "1.9.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "apprise" version))
(sha256
(base32 "126951n9lnlqrw5lbsvs9xs7jzg33bqqxm7cfnqag2csw6p24ca8"))))
(build-system pyproject-build-system)
(arguments
(list
;; These tests used to be ran with --numprocesses, but that seems to have
;; made them non-deterministic.
#:test-flags
#~(list "--ignore=tests/test_plugin_macosx.py"
"-k" "not test_plugin_glib_send_raises_generic")))
(native-inputs
(list python-babel
python-pytest
python-pytest-mock
python-setuptools))
(propagated-inputs
(list python-certifi
python-click
python-markdown
python-pygobject
python-pyyaml
python-requests
python-requests-oauthlib))
(home-page "https://github.com/caronc/apprise")
(synopsis "Push notification library")
(description
"Apprise is a Python library that allows sending push notifications to a
broad range of notification services, such as Telegram, Discord, Slack, Amazon
SNS, Gotify, etc.")
(license license:bsd-2)))
(define-public python-blacksheep
(package
(name "python-blacksheep")
(version "2.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Neoteroi/BlackSheep")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1iwlj6vl0rnvddbn9zsdgpya88z0lifr86wz3ci1d67li7w5bjiq"))))
(build-system pyproject-build-system)
(arguments
(list
;; tests: 1443 passed, 3 skipped
;;
;; 1. Ignore integration tests.
;; 2. Client tests use test fixture no longer available in
;; pytest-asyncio,
;;
;; See: <https://github.com/Neoteroi/BlackSheep/issues/596>.
#:test-flags
#~(list "--ignore=itests"
"--ignore=tests/client")
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'cythonize
(lambda _
(with-directory-excursion "blacksheep"
(for-each (lambda (file)
(invoke "cython" "-3" file "-I" "."))
(find-files "." ".*\\.pyx$"))))))))
(native-inputs
(list python-cython
python-flask
python-jinja2
python-pydantic
python-pyjwt
python-pytest
python-pytest-asyncio
python-setuptools))
(propagated-inputs
(list python-certifi
python-dateutil
python-essentials-openapi
python-guardpost
python-itsdangerous))
(home-page "https://github.com/Neoteroi/BlackSheep")
(synopsis "Asynchronous framework to build event based web applications")
(description
"BlackSheep is a lightweight, asynchronous, event driven Web framework.
The framework offers
@itemize
@item A rich code API, based on dependency injection and inspired by Flask and
ASP.NET Core.
@item A typing-friendly codebase, which enables a comfortable development
experience thanks to hints when coding with IDEs.
@item Built-in generation of OpenAPI Documentation, supporting version 3, YAML,
and JSON.
@item A cross-platform framework, using the most modern versions of Python.
@item Good performance.
@end itemize")
(license license:expat)))
(define-public python-devpi-common
(package
(name "python-devpi-common")
@ -606,6 +715,40 @@ Async mode for @url{https://domainconnect.org/, Domain Connect protocol}.")
Dropbox API v2.")
(license license:expat)))
(define-public python-essentials-openapi
(package
(name "python-essentials-openapi")
(version "1.2.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Neoteroi/essentials-openapi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0f3lhpkqhvv8sr1c34cvzdqkc61306m03w3jp0zdih1v6is05j8x"))))
(build-system pyproject-build-system)
(native-inputs
(list python-flask
python-hatchling
python-pydantic
python-pytest
python-rich))
(propagated-inputs
(list python-essentials
python-httpx
python-jinja2
python-markupsafe
python-pyyaml))
(home-page "https://github.com/Neoteroi/essentials-openapi/")
(synopsis "Generator for OpenAPI Documentation")
(description
"Generator for OpenAPI Documentation version 2 and 3, in JSON and YAML
formats. Generator for other kinds of documents from OpenAPI Documentation
files.")
(license license:expat)))
(define-public python-eventlet
(package
(name "python-eventlet")
@ -773,6 +916,51 @@ formats (PDF/XML/CSV).")
@url{https://www.globus.org/, Globus} APIs.")
(license license:asl2.0)))
(define-public python-guardpost
(package
(name "python-guardpost")
(version "1.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Neoteroi/guardpost")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1cwxxxhazpaphhcysgpivk51vp76zdf7hrryc1vr6vlp2zzgwsxd"))))
(build-system pyproject-build-system)
(arguments
(list
;; Possible timing issue, see:
;; <https://github.com/Neoteroi/GuardPost/issues/18>.
#:test-flags '(list "--ignore=tests/test_jwts.py")))
(native-inputs
(list python-cryptography
python-flask
python-hatchling
python-pyjwt
python-pytest
python-pytest-asyncio))
(propagated-inputs
(list python-rodi))
(home-page "https://github.com/Neoteroi/GuardPost/")
(synopsis
"Authentication and authorization framework for Python applications")
(description
"GuardPost is a framework to handle authentication and
authorization in asynchronous Python applications.
Its features include
@itemize
@item Strategy to implement authentication.
@item Strategy to implement authorization.
@item Support for dependency injection
@item Built-in support for JSON Web Tokens (JWTs) authentication.
@end itemize")
(license license:expat)))
(define-public python-hookdns
(package
(name "python-hookdns")
@ -1699,9 +1887,8 @@ It features a minimal TLS 1.3 implementation, a QUIC stack and an HTTP/3 stack."
;; This test opens a remote connection.
#~(list "-k" "not test_create_connection_resolve_good")))
(native-inputs (list python-pytest
python-pytest-asyncio
python-setuptools
python-wheel))
python-pytest-asyncio-0.26
python-setuptools))
(propagated-inputs
(list python-attrs python-websockets))
(home-page "https://github.com/kyuupichan/aiorpcX")
@ -5295,7 +5482,10 @@ WebSocket usage in Python programs.")
(method url-fetch)
(uri (pypi-uri "websocket-client" version))
(sha256
(base32 "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))))
(base32 "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))
(native-inputs
(modify-inputs (package-native-inputs python-websocket-client)
(append python-six)))))
(define-public python-purl
(package
@ -10640,19 +10830,44 @@ can be handled by the @code{colorsys} module in the Python standard library.")
(license license:bsd-3)))
(define-public python-woob
;; TODO: woob requires backends which are currently installed on the fly in
;; ~/.local/share/woob/modules/3.7/woob_modules/ , perhaps we should install
;; them in the store instead. Many modules are included in the modules
;; directory in the source tree, but it is unclear how to install them.
;; Many modules require extra dependencies though, so maybe they should be
;; packaged independently of woob itself.
(package
(name "python-woob")
(version "3.0")
(version "3.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "woob" version))
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/woob/woob.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "09hpxy5zhn2b8li0xjf3zd7s46lawb0315p5mdcsci3bj3s4v1j7"))))
(build-system python-build-system)
;; A small number of tests for optional applications fails due to missing
;; inputs.
(arguments `(#:tests? #f))
(base32 "1sy0aykff56xs4dnc7ak6m8is2zgz9fprf3i1pk8n861xz1z748i"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; Deselect tests that require DNS lookup.
#~(list
"--deselect=tests/browser/adapters.py::TestAdapter::test_ciphers"
"--deselect=tests/browser/browsers.py::TestBrowser::test_verify")
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'relax-requirements
(lambda _
;; "packaging ~= 23.0",
(substitute* "pyproject.toml"
(("\"packaging .*\",")
"")))))))
(native-inputs
(list nss-certs-for-test
python-pytest
python-setuptools))
(propagated-inputs
(list python-babel
python-colorama
@ -10661,19 +10876,20 @@ can be handled by the @code{colorsys} module in the Python standard library.")
python-feedparser
python-html2text
python-lxml
python-packaging
python-pillow
python-prettytable
python-pyqt
python-pycountry
python-pyyaml
python-requests
python-six
python-responses
python-rich
python-termcolor
python-unidecode))
(native-inputs
(list python-coverage python-flake8 python-nose python-selenium
python-xunitparser))
(home-page "https://woob.tech/")
(synopsis "Woob, Web Outside Of Browsers")
(description "Woob is a collection of applications able to interact with
(description
"Woob is a collection of applications able to interact with
websites, without requiring the user to open them in a browser. It also
provides well-defined APIs to talk to websites lacking one.")
(license license:lgpl3+)))

View file

@ -237,6 +237,7 @@
#:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages java)
#:use-module (gnu packages jupyter)
#:use-module (gnu packages kerberos)
@ -344,46 +345,6 @@ protocol of git-annex, while leaving the behavior of the remote up to the
user.")
(license license:gpl3)))
(define-public python-apprise
(package
(name "python-apprise")
(version "1.9.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "apprise" version))
(sha256
(base32 "19k51ici58134m61f6di0m36mbqgdyr6r31i8v6rk22vldz6d0zm"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "--numprocesses" (number->string (parallel-job-count))
"--ignore=test/test_plugin_macosx.py"
;; AssertionError
"--deselect=test/test_plugin_wxpusher.py::test_plugin_wxpusher_urls")))
(native-inputs
(list python-babel
python-pytest
python-pytest-mock
python-pytest-xdist
python-setuptools
python-wheel))
(propagated-inputs
(list python-certifi
python-click
python-markdown
python-pyyaml
python-requests
python-requests-oauthlib))
(home-page "https://github.com/caronc/apprise")
(synopsis "Push notification library")
(description
"Apprise is a Python library that allows sending push notifications to a
broad range of notification services, such as Telegram, Discord, Slack, Amazon
SNS, Gotify, etc.")
(license license:bsd-2)))
(define-public python-archspec
(package
(name "python-archspec")
@ -646,7 +607,8 @@ line drawing algorithm}.")
(sha256
(base32 "08dmi4chamk5dbdpvrc0nb09iybfhj3wqwxgffiqnkj7030qhqb8"))))
(build-system pyproject-build-system)
(native-inputs (list python-setuptools python-wheel))
;; tests: 797 passed, 1 warning
(native-inputs (list python-pytest python-setuptools))
(propagated-inputs (list python-ply))
(home-page "https://github.com/calmjs/calmjs.parse/")
(synopsis "Parsers for ECMA standards")
@ -1015,6 +977,8 @@ package. ")
It also supports IPython/Jupyter.")
(license license:expat)))
;; TODO: Move to ci or task-runners, see:
;; <https://codeberg.org/guix/guix/issues/3096>.
(define-public python-huey
(package
(name "python-huey")
@ -1038,9 +1002,12 @@ It also supports IPython/Jupyter.")
(substitute* "huey/tests/test_kt_huey.py"
(("^has_ktserver = sp.call\\(\\['which', 'ktserver'\\].*$")
"has_ktserver = False"))))
(add-before 'check 'pre-check
(lambda _ (spawn "redis-server" '("redis-server")))))))
(native-inputs (list python-setuptools python-wheel redis tzdata-for-tests))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(spawn "redis-server" '("redis-server"))
(invoke "python3" "-m" "runtests" "--verbosity" "2")))))))
(native-inputs (list python-setuptools redis tzdata-for-tests))
(propagated-inputs (list python-redis))
(home-page "https://huey.readthedocs.io")
(synopsis "Lightweight task queue for Python")
@ -4179,7 +4146,7 @@ with Numpy and SciPy.")
(define-public python-rich-tables
(package
(name "python-rich-tables")
(version "0.6.1")
(version "0.8.0")
(source
(origin
(method git-fetch) ; no tests data in PyPi package
@ -4188,8 +4155,13 @@ with Numpy and SciPy.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1wqr6sldf97ycs4gfvsqhbh1ki2kgsaicsy44g9lspvlda5nfcp1"))))
(base32 "1gkwgxcjnghn0alqw53kgb4ixf047dnb49kc0af3blvcwnmfmb5f"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; TypeError: can't subtract offset-naive and offset-aware datetimes
#~(list "--deselect=tests/test_outputs.py::test_outputs[tests/json/album.json]")))
(native-inputs
(list python-freezegun
python-poetry-core
@ -4197,6 +4169,7 @@ with Numpy and SciPy.")
python-pytest-cov))
(propagated-inputs
(list python-funcy
python-humanize
python-multimethod
python-platformdirs
python-rgbxy
@ -4809,6 +4782,31 @@ Unicode-to-LaTeX conversion.")
@code{subprocess} feature.")
(license license:expat)))
;; Old version just for python-dotenv-0.13.0 for docker-compose; remove once
;; that is updated.
(define-public python-sh-1
(package
(inherit python-sh)
(version "1.14.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sh" version))
(sha256
(base32
"03gyss1rhj4in7pgysg4q0hxp3230whinlpy1532ljs99lrx0ywx"))))
;(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
;; XXX: A Python 2 test fails when HOME=/homeless-shelter.
(setenv "HOME" "/tmp")
(invoke "python" "sh.py" "test"))))))
(native-inputs
(list python-setuptools))))
(define-public python-cftime
(package
(name "python-cftime")
@ -6499,9 +6497,11 @@ other Python program.")
(base32
"0skrs5i5pvpzvihgxw766zi1c9bbp33aisdldxgj470mlchvdgyy"))))
(build-system pyproject-build-system)
(arguments
(list #:test-backend #~'custom
#:test-flags #~(list "tests/functional/tests.py")))
(native-inputs
(list python-setuptools
python-wheel))
(list python-setuptools))
(home-page "https://agateau.com/projects/doxyqml")
(synopsis "Doxygen input filter for QML files")
(description
@ -7753,6 +7753,7 @@ something else) to Python data-types.")
(base32
"10zqvpaky51kgb8nd42bk7jwl8cn2zvayxjpdc1wwmpybj92x67s"))))))
;; XXX: See: <https://codeberg.org/guix/guix/issues/3029>.
(define-public python-kconfiglib
(package
(name "python-kconfiglib")
@ -7764,9 +7765,10 @@ something else) to Python data-types.")
(sha256
(base32 "0g690bk789hsry34y4ahvly5c8w8imca90ss4njfqf7m2qicrlmy"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;tests require complex set up
(native-inputs
(list python-setuptools
python-wheel
`(,python "tk")))
(home-page "https://github.com/ulfalizer/Kconfiglib")
(synopsis
@ -8518,6 +8520,7 @@ important tasks for becoming a daemon process:
;; Only setup.py is gpl3+, everything else is apache 2.0 licensed.
(license (list license:asl2.0 license:gpl3+))))
;; XXX: See: <https://codeberg.org/guix/guix/issues/3027>.
(define-public python-elevate
(package
(name "python-elevate")
@ -8530,13 +8533,14 @@ important tasks for becoming a daemon process:
(base32 "02g23lxzzl64j1b4fsnrdxqiahl9lnrqyxpqwcfzn0g33px1kbak"))))
(build-system pyproject-build-system)
(arguments
`(#:phases
`(#:tests? #f ;no tests in PyPI
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'clean-up
(lambda _
;; Uses stuff we don't have.
(delete-file "elevate/windows.py"))))))
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-setuptools))
(home-page "https://github.com/barneygale/elevate")
(synopsis "Python library for requesting root privileges")
(description "This package provides a Python library for requesting
@ -12292,39 +12296,6 @@ run simple @code{argparse} parsers from function signatures.")
from a program in a @dfn{pager} such as @command{less}.")
(license license:asl2.0)))
(define-public python-autopep8
(package
(name "python-autopep8")
(version "2.0.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "autopep8" version))
(sha256
(base32
"037yhzmc9lssmn6cifa5gvw23f1c0hgsfgn83jfl3cwppm50c4r9"))))
(build-system pyproject-build-system)
(propagated-inputs
(list python-pycodestyle python-tomli))
(native-inputs
(list python-setuptools python-wheel))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'prepare-check
(lambda _
(setenv "HOME" "/tmp"))))))
(home-page "https://github.com/hhatto/autopep8")
(synopsis "Format Python code according to the PEP 8 style guide")
(description
"@code{autopep8} automatically formats Python code to conform to
the PEP 8 style guide. It uses the pycodestyle utility to determine
what parts of the code needs to be formatted. @code{autopep8} is
capable of fixing most of the formatting issues that can be reported
by pycodestyle.")
(license (license:non-copyleft
"https://github.com/hhatto/autopep8/blob/master/LICENSE"))))
(define-public python-dirty-equals
(package
(name "python-dirty-equals")
@ -13745,10 +13716,10 @@ memoizing PEG/Packrat parser in Python.")
(define-public python-grandalf
(package
(name "python-grandalf")
(version "0.7")
;; `guix refresh` will try to upgrade to v0.55555, but that is older.
(version "0.8")
(source
(origin
;; There's no source tarball on PyPI.
(method git-fetch)
(uri (git-reference
(url "https://github.com/bdcht/grandalf")
@ -13756,16 +13727,18 @@ memoizing PEG/Packrat parser in Python.")
(file-name (git-file-name name version))
(sha256
(base32
"03p8w8ljpb87qbyldm3s6b7qi30hfcn43h33iwlgqcf31fjsyr4g"))))
(build-system python-build-system)
"199f86hz3g4p237ma4j27rzwmska3bxzsbgq20i4l4pczf9v7ax0"))))
(build-system pyproject-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "python" "setup.py" "pytest"))))))
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'patch-requirements
(lambda _
(substitute* "setup.py"
(("install_requires=\\['pyparsing'],") "")))))))
(native-inputs
(list python-pytest python-pytest-runner))
(list python-setuptools python-pytest))
(propagated-inputs
(list python-numpy python-ply))
(home-page "https://github.com/bdcht/grandalf")
@ -17279,7 +17252,7 @@ pseudo terminal (pty), and interact with both the process and its pty.")
;; XXX: Snippet below is required because on v1.1.30 the source code
;; has configshell_fb as softlink to configshell and guix
;; pyproject-build-system doesn't work with symlinks very well.
;;
;;
;; This package is only used in spdk for now and it's crucial to keep
;; it locked on version and keep the snipped for spdk to build
;; successfully.
@ -20156,18 +20129,22 @@ and dataclasses.")
(define-public python-argparse-manpage
(package
(name "python-argparse-manpage")
(version "4.5")
(version "4.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "argparse-manpage" version))
(uri (pypi-uri "argparse_manpage" version))
(sha256
(base32
"1nq4sq1zk1xzdsqq61hd27jhj978ys136aba1zjg02x1g0c0cg11"))))
(base32 "0clb20scp408gxac675v731vnj89pk9d5fb7pcy7bj1a45mvgshx"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; Tests require PIP.
#~(list "--ignore=tests/test_examples.py")))
(native-inputs
(list python-pip python-pytest python-setuptools python-tomli
python-wheel))
(list python-pytest
python-setuptools))
(home-page "https://github.com/praiskup/argparse-manpage")
(synopsis "Build manual page from Python's ArgumentParser object")
(description
@ -20367,6 +20344,33 @@ package and greatly reduce the number of imports for your users. It is a small
pure Python module that works on virtually all Python versions.")
(license license:expat)))
(define-public python-essentials
(package
(name "python-essentials")
(version "1.1.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Neoteroi/essentials")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1bh8yi79gn9fg26mp58nm9xhnxcfab7rhc076av4qg00mg5p9rn0"))))
(build-system pyproject-build-system)
(native-inputs
(list python-hatchling
python-pydantic
python-pytest-asyncio))
(home-page "https://github.com/Neoteroi/essentials/wiki")
(synopsis
"Utility functions, exceptions, and classes for Python applications")
(description
"Essentials is a collection of functions, exceptions, and classes for Python
applications. Examples of utilities are exceptions for common scenarios,
friendly JSON encoder, decorators for retries and logging.")
(license license:expat)))
(define-public python-execnet
(package
(name "python-execnet")
@ -23191,7 +23195,7 @@ specified in POSIX.1-2001 and POSIX.1-2008.")
(sha256
(base32 "1clb3lfw694crq8m767q0yjaazkplcrbzdr9fr2w39hhndivhcd6"))))
(build-system pyproject-build-system)
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/rocky/pycolumnize")
(synopsis "Format a simple (i.e. not nested) list into aligned columns.")
(description
@ -25286,6 +25290,41 @@ GraphQL schema describes your data model, and provides a GraphQL server with
an associated set of resolve methods that know how to fetch data.")
(license license:expat)))
(define-public python-rodi
(package
(name "python-rodi")
(version "2.0.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Neoteroi/rodi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0kf98yjllrq7vqcp07r2gmkqcviqglsnai3sdigdsrwrfc0b44yp"))))
(build-system pyproject-build-system)
(native-inputs
(list python-hatchling
python-pytest
python-pytest-asyncio))
(home-page "https://github.com/Neoteroi/rodi")
(synopsis "Dependency injection framework for Python")
(description
"Rodi is a dependency injection framework for Python applications.
Its features include
@itemize
@item Type resolution by signature types annotations.
@item Type resolution by class annotations.
@item Type resolution by names and aliases.
@item Build graph of objects without the need for source code changes.
@item Minimum overhead to obtain services, once the objects graph is built.
@item Support for singleton, transient, and scoped services.
@end itemize")
(license license:expat)))
;; XXX: The last time updated in 2015, consider to remove it when nothing is
;; depend on it.
(define-public python-snowballstemmer
@ -25990,46 +26029,6 @@ converting text with ANSI color codes to HTML or LaTeX.")
can even create animations with the cursor controls.")
(license license:expat)))
(define-public python-pycountry
(package
(name "python-pycountry")
(version "22.3.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycountry" version))
(sha256
(base32
"0ihnkh86zz01vi46gcwgq6h71jrpj7hq71zi13c98n2qdhj3l5mj"))))
(build-system python-build-system)
(home-page "https://bitbucket.org/flyingcircus/pycountry")
(synopsis "ISO databases for languages, countries, currencies, etc.")
(description
"@code{pycountry} provides the ISO databases for the standards:
@enumerate
@item 639-3 (Languages)
@item 3166 (Countries)
@item 3166-3 (Deleted Countries)
@item 3166-2 (Subdivisions of countries)
@item 4217 (Currencies)
@item 15924 (Scripts)
@end enumerate
It includes a copy from Debians pkg-isocodes and makes the data accessible
through a Python API.")
(license license:lgpl2.1+)))
(define-public python-pycountry@20.7.3
(package
(inherit python-pycountry)
(name "python-pycountry")
(version "20.7.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycountry" version))
(sha256
(base32 "0hnbabsmqimx5hqh0jbd2f64i8fhzhhbrvid57048hs5sd9ll241"))))))
(define-public python-pycosat
(package
(name "python-pycosat")
@ -26967,9 +26966,10 @@ filetypes can be easily added by creating plugins for them.")
(sha256
(base32 "0c3dgm1rf7ih79pgkj7adffn8hlyqh5qah8rbzlq436kz3srk83q"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;no tests in PyPI or Git
(native-inputs
(list python-setuptools
python-wheel))
(list python-setuptools))
(home-page "https://github.com/benknight/hue-python-rgb-converter")
(synopsis "RGB conversion tool in Python")
(description
@ -29437,29 +29437,32 @@ supports the globstar @code{**} operator to match an arbitrary number of
path components.")
(license license:asl2.0)))
;; XXX: Not maintained since 2021.
(define-public python-git-hammer
(package
(name "python-git-hammer")
(version "0.3.1")
(version "0.3.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/asharov/git-hammer")
(commit version)))
(url "https://github.com/asharov/git-hammer")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0f9xlk86ijzpdj25hr1q4wcy8k72v3w470ngwm9mpdkfj8ng84wr"))))
(build-system python-build-system)
(base32 "0j0skpbhi7js45hp1w2n87093yz1hjdg5y3kicwvm84fb8i38gvx"))))
(build-system pyproject-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-setup.py
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
(("setup\\(")
"setup(\n test_suite=\"test\",")))))))
(("matplotlib <3.1") "matplotlib")))))))
(native-inputs
(list python-pytest
python-setuptools))
(propagated-inputs
(list python-beautifultable
python-dateutil
@ -29471,8 +29474,8 @@ path components.")
(home-page "https://github.com/asharov/git-hammer")
(synopsis "Provide statistics for git repositories")
(description
"Git Hammer is a statistics tool for projects in git repositories.
Its major feature is tracking the number of lines authored by each person for every
"Git Hammer is a statistics tool for projects in git repositories. Its major
feature is tracking the number of lines authored by each person for every
commit, but it also includes some other useful statistics.")
(license license:asl2.0)))
@ -30962,6 +30965,7 @@ module.")
(properties '((upstream-name . "Wikidata")))
(license license:gpl3+)))
;; XXX: Not maintained since 2022, leaf package.
(define-public python-attr
(package
(name "python-attr")
@ -30973,8 +30977,11 @@ module.")
(sha256
(base32 "1x2627x0n2rxx8wib4cksbjjnncff8finq97k37dq70qd2kvrvhw"))))
(build-system pyproject-build-system)
(arguments
(list #:test-backend #~'custom
#:test-flags #~(list "-c" "import dry_attr; dry_attr.test()")))
(native-inputs
(list python-setuptools python-wheel))
(list python-setuptools))
(home-page "https://github.com/denis-ryzhkov/attr")
(synopsis "Decorator for attributes of target function or class")
(description "Simple decorator to set attributes of target function or
@ -32109,6 +32116,7 @@ register custom encoders and decoders.")
bindings for Python 3.")
(license license:bsd-3)))
;; XXX: See: <https://codeberg.org/guix/guix/issues/3054>.
(define-public python-iocapture
;; The latest release is more than a year older than this commit.
(let ((commit "fdc021c431d0840303908dfc3ca8769db383595c")
@ -32126,8 +32134,12 @@ bindings for Python 3.")
(sha256
(base32 "1mkbhqibxvgwg0p7slr8dfraa3g2s6bsayladhax2jccwj4kcndz"))))
(build-system pyproject-build-system)
(native-inputs (list python-flexmock python-pytest python-pytest-cov
python-setuptools python-wheel))
(native-inputs
(list python-flexmock
python-pytest
python-pytest-cov
python-setuptools
python-six))
(home-page "https://github.com/oinume/iocapture")
(synopsis "Python capturing tool for stdout and stderr")
(description
@ -34095,6 +34107,8 @@ to minimize duplication of information across files. The format supports schema
validation.")
(license license:lgpl3)))
;; XXX: Not maintained since 2021, there is no git available as seen in
;; <https://pypi.org/project/flufl.bounce>.
(define-public python-flufl-bounce
(package
(name "python-flufl-bounce")
@ -34106,7 +34120,7 @@ validation.")
(sha256
(base32
"0c9qc2l47lyqnpwskp6vvi7m3jqh6hx42v6d35dgxh3fjzmlll15"))))
(build-system python-build-system)
(build-system pyproject-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
@ -34119,7 +34133,7 @@ validation.")
(propagated-inputs
(list python-atpublic python-zope-interface))
(native-inputs
(list python-flufl-testing python-nose2))
(list python-flufl-testing python-nose2 python-setuptools))
(home-page "https://fluflbounce.readthedocs.io/en/latest/")
(synopsis "Email bounce detectors")
(description "The @code{flufl.bounce} library provides a set of heuristics
@ -36879,6 +36893,35 @@ systems in Python.")
key-value pairs from a @code{.env} file and set them as environment variables.")
(license license:bsd-3)))
;; Old version just for docker-compose; remove once that is updated.
(define-public python-dotenv-0.13.0
(package (inherit python-dotenv)
(name "python-dotenv")
(version "0.13.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-dotenv" version))
(sha256
(base32
"0x5dagmfn31phrbxlwacw3s4w5vibv8fxqc62nqcdvdhjsy0k69v"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(setenv "PATH" (string-append (getenv "PATH") ":"
(assoc-ref outputs "out") "/bin"))
;; Skip the ipython tests.
(delete-file "tests/test_ipython.py")
(invoke "python" "-m" "pytest")))))))
(native-inputs
(modify-inputs (package-native-inputs python-dotenv)
(append python-mock)
(replace "python-sh" python-sh-1)))))
(define-public date2name
(let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
(revision "1"))
@ -37943,6 +37986,43 @@ static types.")
(description "This package providis typing stubs for python-dateutil.")
(license license:asl2.0)))
(define-public python-types-aiofiles
(package
(name "python-types-aiofiles")
(version "24.1.0.20250822")
(source
(origin
(method url-fetch)
(uri (pypi-uri "types_aiofiles" version))
(sha256
(base32 "0ysar1an6il2rsd54fwzwdis209z3qq3i4zhgixfjzrh1j70vfcs"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;no tests in PyPI archive
(native-inputs (list python-setuptools))
(home-page "https://github.com/python/typeshed")
(synopsis "Typing stubs for python-aiofiles")
(description "This package providis typing stubs for python-aiofiles.")
(license license:asl2.0)))
(define-public python-types-tqdm
(package
(name "python-types-tqdm")
(version "4.67.0.20250809")
(source
(origin
(method url-fetch)
(uri (pypi-uri "types_tqdm" version))
(sha256
(base32 "006md2hnsq79p7d5z3kiaapvl9wwa4dz3yb39jf0n22n2awpmgq2"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;no tests in PyPI archive
(native-inputs (list python-setuptools))
(propagated-inputs (list python-types-requests))
(home-page "https://github.com/python/typeshed")
(synopsis "Typing stubs for python-tqdm")
(description "This package providis typing stubs for python-tqdm.")
(license license:asl2.0)))
(define-public python-types-docutils
(package
(name "python-types-docutils")
@ -39348,7 +39428,19 @@ client library.")
(sha256
(base32 "122a8prbcj070y3fl82kvxmbciv36hj1h1d448l6zcdrb22q4mhx"))))
(build-system pyproject-build-system)
(native-inputs (list python-setuptools python-wheel))
(arguments
(list
;; tests: 1571 passed, 37 deselected, 1 warning
;;
;; Two test fail with assertion not equal:
;;
;; test_decode_error[0001-unpack_from requires a buffer of at least 1
;; bytes] - AssertionError
;;
;; test_decode_error[00000101-unpack_from requires a buffer of at least
;; 1 bytes] - AssertionError
#:test-flags #~(list "-k" "not test_decode_error")))
(native-inputs (list python-pytest python-setuptools))
(home-page "https://ndeflib.readthedocs.io/")
(synopsis "NFC Data Exchange Format decoder and encoder.")
(description "This package provides a NFC (Near-Field Communication)
@ -39759,6 +39851,24 @@ package. It can be used by type-checking tools like mypy, PyCharm, pytype
etc. to check code that uses @code{orjson}.")
(license license:asl2.0)))
(define-public python-types-regex
(package
(name "python-types-regex")
(version "2025.9.18.20250921")
(source
(origin
(method url-fetch)
(uri (pypi-uri "types_regex" version))
(sha256
(base32 "0gqc8b9d38pdm1l6nryi9rq9vmpis575hqnxlvj904n3n4hhqw71"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;no tests in PyPI archive
(native-inputs (list python-setuptools))
(home-page "https://github.com/python/typeshed")
(synopsis "Typing stubs for regex")
(description "This package provides typing stubs for regex.")
(license license:asl2.0)))
(define-public python-rpds-py
(package
(name "python-rpds-py")
@ -40103,8 +40213,16 @@ read all zbar supported codes.")
(base32
"0r46q4hd7xbpvnidbra1prkg4xhmajxjjmclfqgp3pv0lgyslqxh"))))
(build-system pyproject-build-system)
(arguments
;; XXX: No tests in PyPI, tere are tests in Git, but there is no 3.7.10.1
;; tag.
;;
;; See:
;; - URL: <https://raw.githubusercontent.com/zeroc-ice>
;; - File: <ice/refs/heads/main/python/allTests.py>
(list #:tests? #f))
(inputs (list openssl))
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-setuptools))
(home-page "https://zeroc.com")
(synopsis "RPC framework")
(description
@ -40113,6 +40231,29 @@ software by taking care of all interactions with low-level network programming
interfaces.")
(license license:gpl2)))
;; Package variant to build python-omero-py@5.20.0
(define-public python-zeroc-ice-3.6
(package
(inherit python-zeroc-ice)
(version "3.6.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "zeroc-ice" version))
(sha256
(base32
"0mikjfvq26kh8asnn9v55z41pap4c5ypymqnwwi4xkavc3mzyda2"))
(patches
(search-patches
"python-zeroc-ice-3.6.5-python-3.11-support.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments python-zeroc-ice)
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(add-before 'build 'relax-gcc-14-strictness
(lambda _
(setenv "CFLAGS"
"-g -O2 -Wno-error=implicit-function-declaration")))))))))
(define-public python-islenska
(package
(name "python-islenska")
@ -40213,20 +40354,6 @@ instance in spelling correction, predictive typing, to help disabled people
write text fast, and for various text generation, statistics, and modeling tasks.")
(license license:expat)))
(define-public python-zeroc-ice-3.6
(package
(inherit python-zeroc-ice)
(version "3.6.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "zeroc-ice" version))
(sha256
(base32
"0mikjfvq26kh8asnn9v55z41pap4c5ypymqnwwi4xkavc3mzyda2"))
(patches
(search-patches
"python-zeroc-ice-3.6.5-python-3.11-support.patch"))))))
(define-public python-whenever
(package
(name "python-whenever")

View file

@ -4793,6 +4793,8 @@ PySide2, PyQt6, PySide6) and additional custom QWidgets.")
(base32 "07rvfwzjl378j75j2va0c6xylwx16icxa6dycsjgjc329pgpng40"))))
(build-system python-build-system)
(native-inputs (list python-pyqt))
(arguments
(list #:tests? #f)) ; No tests
(home-page "https://github.com/mottosso/Qt.py")
(synopsis "Abstraction layer for Python Qt bindings")
(description

View file

@ -766,6 +766,8 @@ a local network link.")
python-wheel))
(propagated-inputs
(list python-numpy soapysdr))
(arguments
(list #:tests? #f)) ; No tests
(home-page "https://github.com/xmikos/simplesoapy")
(synopsis "Python wrapper for SoapySDR")
(description
@ -820,7 +822,8 @@ devices that are supported by the SoapySDR library.")
python-simplesoapy
soapy-power))
(arguments
(list #:phases
(list #:tests? #f ; No tests
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'wrap-path
;; Add the location of the default backend to PATH.

View file

@ -18,21 +18,25 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages rednotebook)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages bash)
#:use-module (gnu packages python)
#:use-module (gnu packages check)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages webkit)
#:use-module (gnu packages python-xyz))
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages webkit))
(define-public rednotebook
(package
(name "rednotebook")
(version "2.22")
(version "2.41")
(source
(origin
(method git-fetch)
@ -41,35 +45,36 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11n970ad0j57vlll5j30ngkrfyil23v1b29ickbnblcldvjbgwa5"))))
(build-system python-build-system)
(base32 "1nljj227lykl4gq1qvvv0pj00k8pbi3njm4agz7wsfcihz6dlrxi"))))
(build-system pyproject-build-system)
(arguments
;; Tests fail to find the "_" function.
;; It should be defined in rednotebook/info.py if '_' is not a member of
;; 'builtins'. It is either not defined or not exported during the check
;; phase. The program does not have this problem after it is installed.
;; TODO: Fix tests.
`(#:tests? #f
#:imported-modules ((guix build glib-or-gtk-build-system)
,@%python-build-system-modules)
#:modules ((ice-9 match)
(guix build python-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases
(modify-phases %standard-phases
;; Make sure rednotebook can find the typelibs and webkitgtk shared
;; libraries.
(add-before 'wrap 'wrap-with-library-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(gi-typelib-path (getenv "GI_TYPELIB_PATH"))
(webkitgtk-path (string-append
(assoc-ref inputs "webkitgtk-for-gtk3")
"/lib")))
(wrap-program (string-append out "/bin/rednotebook")
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
`("LD_LIBRARY_PATH" ":" prefix (,webkitgtk-path)))))))))
(list
#:imported-modules
`((guix build glib-or-gtk-build-system)
,@%pyproject-build-system-modules)
#:modules
`((ice-9 match)
(guix build pyproject-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'configure-tests
(lambda _
(setenv "HOME" (getcwd))))
;; Make sure rednotebook can find the typelibs and webkitgtk shared
;; libraries.
(add-before 'wrap 'wrap-with-library-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((webkitgtk-bin (search-input-file inputs
"bin/WebKitWebDriver")))
(wrap-program (string-append #$output "/bin/rednotebook")
`("GI_TYPELIB_PATH" ":" prefix
(,(getenv "GI_TYPELIB_PATH")))
`("LD_LIBRARY_PATH" ":" prefix
(,(string-append (dirname (dirname webkitgtk-bin))
"/lib"))))))))))
(native-inputs (list gettext-minimal python-pytest python-setuptools))
(inputs
(list bash-minimal
gtk+
@ -79,7 +84,7 @@
webkitgtk-for-gtk3))
;; TODO: package the following for python3 (if possible), add them as
;; dependencies, and remove them from rednotebook source:
;; pygtkspellcheck, elib.intl, msgfmt, txt2tags
;; pygtkspellcheck, elib.intl, txt2tags
;; TODO: package and add pyenchant for python3 and add it as a dependency.
(home-page "https://www.rednotebook.app")
(synopsis "Daily journal with calendar, templates and keyword searching")

View file

@ -42,7 +42,7 @@
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system meson)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
@ -71,6 +71,7 @@
#:use-module (gnu packages pdf)
#:use-module (gnu packages photo)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
@ -640,65 +641,72 @@ search the generated indexes.")
(source
(origin
(method url-fetch)
(uri (string-append
"https://finestructure.net/xapers/releases/xapers-"
version ".tar.gz"))
(uri (string-append "https://finestructure.net/xapers/releases/xapers-"
version ".tar.gz"))
(sha256
(base32
"0ykz6hn3qj46w3c99d6q0pi5ncq2894simcl7vapv047zm3cylmd"))))
(build-system python-build-system)
(propagated-inputs
(list poppler python-urwid xclip xdg-utils))
(inputs
(list python-latexcodec
python-pybtex
python-pycurl
python-pyyaml
python-six
python-xapian-bindings))
(base32 "0ykz6hn3qj46w3c99d6q0pi5ncq2894simcl7vapv047zm3cylmd"))))
(build-system pyproject-build-system)
(arguments
`(#:modules ((ice-9 rdelim)
(guix build python-build-system)
(list
#:tests? #f ; A lot of tests are failing, unclear why.
#:modules `((ice-9 rdelim)
(guix build pyproject-build-system)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys)
(define (purge-term-support input output)
(let loop ((line (read-line input)))
(if (string-prefix? "if [[ \"$term\"" line)
(begin (display "eval \"$cmd\"\n" output)
#t)
(begin (display (string-append line "\n") output)
(loop (read-line input))))))
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(adder-out (string-append bin "/xapers-adder"))
(man1 (string-append out "/share/man/man1")))
(install-file "man/man1/xapers.1" man1)
(install-file "man/man1/xapers-adder.1" man1)
;; below is equivalent to setting --no-term option
;; permanently on; this is desirable to avoid imposing
;; an x-terminal installation on the user but breaks
;; some potential xapers-adder uses like auto browser
;; pdf handler, but user could instead still use
;; e.g. "xterm -e xapers-adder %F" for same use.
;; alternatively we could propagate xterm as an input
;; and replace 'x-terminal-emulator' with 'xterm'
(call-with-input-file "bin/xapers-adder"
(lambda (input)
(call-with-output-file adder-out
(lambda (output)
(purge-term-support input output)))))
(chmod adder-out #o555)))))))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys)
(define (purge-term-support input output)
(let loop
((line (read-line input)))
(if (string-prefix? "if [[ \"$term\"" line)
(display "eval \"$cmd\"\n" output)
(begin
(display (string-append line "\n") output)
(loop (read-line input))))))
(let* ((bin (string-append #$output "/bin"))
(adder-out (string-append bin "/xapers-adder"))
(man1 (string-append #$output "/share/man/man1")))
(install-file "man/man1/xapers.1" man1)
(install-file "man/man1/xapers-adder.1" man1)
;; below is equivalent to setting --no-term option
;; permanently on; this is desirable to avoid imposing
;; an x-terminal installation on the user but breaks
;; some potential xapers-adder uses like auto browser
;; pdf handler, but user could instead still use
;; e.g. "xterm -e xapers-adder %F" for same use.
;; alternatively we could propagate xterm as an input
;; and replace 'x-terminal-emulator' with 'xterm'
(mkdir-p (dirname adder-out))
(call-with-input-file "bin/xapers-adder"
(lambda (input)
(call-with-output-file adder-out
(lambda (output)
(purge-term-support input output)))))
(chmod adder-out #o555))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
(with-directory-excursion "test"
(setenv "HOME" (getcwd))
(invoke "bash" "all"))
(format #t "test suite not run~%")))))))
(native-inputs (list python-setuptools))
(propagated-inputs (list poppler python-urwid xclip xdg-utils))
(inputs (list python-latexcodec
python-pybtex
python-pycurl
python-pyyaml
python-six
python-xapian-bindings))
(home-page "https://finestructure.net/xapers/")
(synopsis "Personal document indexing system")
(description
"Xapers is a personal document indexing system,
geared towards academic journal articles build on the Xapian search engine.
Think of it as your own personal document search engine, or a local cache of
online libraries. It provides fast search of document text and
bibliographic data and simple document and bibtex retrieval.")
"Xapers is a personal document indexing system, geared towards academic
journal articles build on the Xapian search engine. Think of it as your own
personal document search engine, or a local cache of online libraries. It
provides fast search of document text and bibliographic data and simple
document and bibtex retrieval.")
(license license:gpl3+)))
(define-public ugrep

View file

@ -69,6 +69,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)

View file

@ -45,17 +45,21 @@
(package
(name "python-plover-stroke")
(version "1.1.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "plover_stroke" version))
(sha256
(base32
"0lyifam9xqpx2jzqcbah84sv909n4g2frm7pd5gvcrpf98zv40yy"))))
(build-system python-build-system)
(native-inputs (list python-pytest))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/benoit-pierre/plover_stroke")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "104ab1lr2xr8nbq98n7h3jvskfzzg8m41rhb1ik4b7w474rlxgh3"))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/benoit-pierre/plover_stroke")
(synopsis "Stroke handling helper library for Plover")
(description "This package provides a helper class for working with steno strokes.")
(description
"This package provides a helper class for working with steno strokes.")
(license license:gpl2+)))
(define-public plover

View file

@ -92,20 +92,16 @@
(file-name (git-file-name name version))
(sha256
(base32 "1nyx80z53xxlbhpb5k22jnv4jajxqhjm0gz7qb18w9pqqlrvkqd4"))))
(build-system python-build-system)
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(setenv "HOME" (getenv "TEMP"))
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv")))))))
(add-before 'check 'configure-tests
(lambda _
(setenv "HOME" (getenv "TEMP")))))))
(native-inputs
(list python-pytest
python-click))
(list python-pytest python-click python-setuptools))
(inputs
(list python-click
python-click-default-group

View file

@ -9,6 +9,7 @@
;;; Copyright © 2023, 2024 Raven Hallsby <karl@hallsby.com>
;;; Copyright © 2024 Foundation Devices, Inc. <hello@foundation.xyz>
;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
;;; Copyright © 2025 Nguyễn Gia Phong <mcsinyx@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -530,6 +531,14 @@ which will be used as a snippet in origin."
#:commit commit
#:license license:asl2.0)))
(define-public tree-sitter-janet
(tree-sitter-grammar
"janet" "Janet"
"1sg862gqxn5y86sqa4habyicsr1ax70i7w8ibnn2yyx1bzn99jqn"
"0.1.0"
#:repository-url "https://github.com/GrayJack/tree-sitter-janet"
#:license license:bsd-3))
(define-public tree-sitter-java
(tree-sitter-grammar
"java" "Java"

View file

@ -33,6 +33,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages pdf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
@ -1739,7 +1740,7 @@ month and a year of work.")
(arguments (tryton-arguments "country" "--no-doctest"))
(native-inputs (%standard-trytond-native-inputs))
(propagated-inputs
(list python-pycountry@20.7.3 trytond))
(list python-pycountry-20.7.3 trytond))
(home-page "http://www.tryton.org/")
(synopsis "Tryton module with countries")
(description

View file

@ -74,6 +74,7 @@
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.ccom>
;;; Copyright © 2025 VnPower <vnpower@loang.net>
;;; Copyright © 2025 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -3138,7 +3139,7 @@ video streaming services of the Finnish national broadcasting company Yle.")
(define-public yt-dlp
(package
(name "yt-dlp")
(version "2025.09.23")
(version "2025.09.26")
(source
(origin
(method git-fetch)
@ -3150,7 +3151,7 @@ video streaming services of the Finnish national broadcasting company Yle.")
(snippet #~(substitute* "pyproject.toml"
(("^.*Programming Language :: Python :: 3\\.13.*$") "")))
(sha256
(base32 "0x6yjvv0wwyx10bpk2s06k8amah4q6v1g2plwrng1ap2jza539x6"))))
(base32 "0j6l2zskmsvqk8h3ialbymk75i0bfzn2qmc2gk6s1ybhnpryrv7y"))))
(build-system pyproject-build-system)
(arguments
(list
@ -3172,7 +3173,7 @@ video streaming services of the Finnish national broadcasting company Yle.")
"'\n")))))
(add-before 'build 'build-generated-files
(lambda* (#:key inputs #:allow-other-keys)
(if (search-input-file inputs "bin/pandoc")
(if (which "pandoc")
(invoke "make"
"PYTHON=python"
"yt-dlp"

View file

@ -20,13 +20,14 @@
(define-module (gnu packages weather)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages python-build)
#:use-module (gnu packages qt)
#:use-module (gnu packages xml))
@ -65,30 +66,35 @@ precipitation amount and probability.")
(name "meteo-qt")
(version "4.2")
(source
(origin (method git-fetch)
(uri (git-reference (url "https://github.com/dglent/meteo-qt")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1cvmh5rq50dncd2fmp4amjb2hhl2mryb2ywg0zdzhz89dkjq0kdk"))))
(build-system python-build-system)
(native-inputs (list python-pyqt-6))
(propagated-inputs (list python-lxml python-pyqt-6 python-sip))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dglent/meteo-qt")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1cvmh5rq50dncd2fmp4amjb2hhl2mryb2ywg0zdzhz89dkjq0kdk"))))
(build-system pyproject-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-before 'build 'remove-translations
(lambda _
;; Translation processing is broken because Guix thinks lprodump
;; is in qtbase, not qttools. So, we'll skip it and exclude
;; qttools from the native input list until it is fixed.
(substitute* "setup.py"
(("/usr") #$output)
(("^.+lrelease-pro-qt6.+$") "")
(("^.+meteo_qt/translations.+$") "")))))))
(list
#:tests? #f ; No tests.
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'remove-translations
(lambda _
;; Translation processing is broken because Guix thinks lprodump
;; is in qtbase, not qttools. So, we'll skip it and exclude
;; qttools from the native input list until it is fixed.
(substitute* "setup.py"
(("/usr") #$output)
(("^.+lrelease-pro-qt6.+$") "")
(("^.+meteo_qt/translations.+$") "")))))))
(native-inputs (list python-pyqt-6 python-setuptools))
(propagated-inputs (list python-lxml python-pyqt-6 python-sip))
(home-page "https://github.com/dglent/meteo-qt")
(synopsis "Weather application for the system tray")
(description "meteo-qt is an application to display weather information in
desktop panels, desktop notifictions and its own window. Weather information is
(description
"meteo-qt is an application to display weather information in desktop
panels, desktop notifictions and its own window. Weather information is
retrieved from OpenWeatherMap.")
(license license:gpl3)))

View file

@ -48,7 +48,6 @@
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
@ -1095,7 +1094,9 @@ with a terminal interface, for Gemini also a GUI is available.")
(file-name (git-file-name name version))
(sha256
(base32 "0jp4v4jw82qqynqqs7x35g5yvm1sd48cvbqh7j2r1ixw1z6ldhc4"))))
(build-system python-build-system)
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ; No tests.
(native-inputs (list python-setuptools))
(home-page "https://github.com/xyzshantaram/leo")
(synopsis "Gemini client written in Python")
(description
@ -1107,21 +1108,31 @@ saved to a file for further viewing in another window.")
(define-public av-98
(package
(name "av-98")
(version "1.0.1")
(properties
'((upstream-name . "AV-98")))
(version "1.4")
(properties '((upstream-name . "AV-98")))
(source
(origin
(method url-fetch)
(uri (pypi-uri "AV-98" version))
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~solderpunk/AV-98")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"02fjnc2rvm010gb3i07p8r4xlhrmnv1wca1qymfjcymr7vm68h0i"))))
(build-system python-build-system)
(home-page "https://tildegit.org/solderpunk/AV-98/")
(base32 "04dzkzsan1cnrslsvfgn1whpwald8xy34wqzvq81hd2mvw9a2n69"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ; No tests.
#:phases
#~(modify-phases %standard-phases
(add-before 'sanity-check 'configure-sanity-check
(lambda _
(setenv "HOME" (getcwd)))))))
(native-inputs (list python-setuptools))
(home-page "https://git.sr.ht/~solderpunk/AV-98")
(synopsis "Command line Gemini client")
(description "AV-98 is an experimental client for the Gemini protocol.
Features include
(description
"AV-98 is an experimental client for the Gemini protocol. Features include
@itemize
@item TOFU or CA server certificate validation;
@item Extensive client certificate support if an openssl binary is available;

View file

@ -1,11 +1,12 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
;;; Copyright © 2015, 2016, 2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016, 2019, 2020, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2019-2020, 2023-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2016 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
@ -81,6 +82,7 @@
;;; Copyright © 2025 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
;;; Copyright © 2025 Hugo Buddelmeijer <hugo@buddelmeijer.nl>
;;;
;;; This file is part of GNU Guix.
;;;
@ -707,6 +709,85 @@ the i3 window manager through its i3bar component, as an alternative to
i3status.")
(license license:gpl3+)))
(define-public obconf
(package
(name "obconf")
(version "2.0.4")
(source
(origin
(method url-fetch)
(uri (string-append "http://openbox.org/dist/" name
"/" name "-" version ".tar.gz"))
(sha256
(base32
"1fanjdmd8727kk74x5404vi8v7s4kpq48l583d12fsi4xvsfb8vi"))))
(inputs (list gtk+-2
imlib2
libglade
libsm
librsvg
libxft
openbox
startup-notification))
(native-inputs (list gettext-minimal pkg-config))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "--enable-nls"
"CFLAGS=-g -O2 -Wno-error=implicit-function-declaration")))
(home-page "https://openbox.org/obconf")
(synopsis "Openbox configuration tool")
(description
"Obconf is a tool for configuring the Openbox window manager.
You can configure its appearance, themes, and much more.")
(license license:gpl2+)))
(define-public openbox
(package
(name "openbox")
(version "3.6.1")
(source
(origin
(method url-fetch)
(uri (string-append
"http://openbox.org/dist/openbox/" name "-"
version ".tar.xz"))
(sha256
(base32
"0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))
(patches (search-patches "openbox-add-fix-for-glib2-exposed-segfault.patch" "openbox-python3.patch"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'force-reconfigure
;; This is made necessary by the openbox-python3 patch.
(lambda _
(delete-file "configure"))))))
(native-inputs (list autoconf automake gettext-minimal libtool pkg-config))
(propagated-inputs (list python-pyxdg))
(inputs (list imlib2
libxml2
(librsvg-for-system)
libsm
libxcursor
libxinerama
libxml2
libxrandr
libxft
pango
python-wrapper))
(synopsis "Box style window manager")
(description
"Openbox is a highly configurable, next generation window manager with
extensive standards support. The *box visual style is well known for its
minimalistic appearance. Openbox uses the *box visual style, while providing
a greater number of options for theme developers than previous *box
implementations.")
(home-page "http://openbox.org/wiki/Main_Page")
(license license:gpl2+)))
(define-public papersway
(package
(name "papersway")
@ -991,6 +1072,65 @@ and locate windows on all your workspaces, using an interactive dmenu
prompt.")
(license license:wtfpl2))))
(define-public quicktile
;; Latest release, 0.4.0, is 5 years old and does not use pyproject.toml yet.
(let ((commit "2c499beedf31d5906e86c482f70129d94e429350")
(revision "0"))
(package
(name "quicktile")
(version (git-version "0.4.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ssokolow/quicktile")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "08kwilln32kx2cdg1sg7ffb214fkhacchx8jd64pyjbshmradgxr"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "tests")
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'pre-check
;; tests/test_functional.py moves windows around and thus needs
;; access to an X server.
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "HOME" "/tmp")
(mkdir-p "/tmp/.config")
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
;; First run creates /tmp/.config/quicktile.cfg.
(invoke "./quicktile.sh")))))))
(native-inputs
(list openbox ;necessary for test_functional.py
python-pluggy
python-pytest
python-pytest-cov
python-setuptools
xorg-server-for-tests))
(inputs
(list gtk+
libwnck
python-xlib
python-pygobject
python-dbus-python))
;; The actual home page https://ssokolow.com/quicktile/
;; gives an SSL error.
(home-page "https://github.com/ssokolow/quicktile")
(synopsis "window-tiling hotkeys to any X11 desktop")
(description
"QuickTile is a simple utility, inspired by
@url{https://github.com/dozius/winsplit-revolution, WinSplit Revolution} for
Windows, which adds window-tiling keybindings to existing X11 window manager.
It may be used as a standalone alternative to the keyboard related features of
the Compiz Grid plugin.")
(license license:gpl2+))))
(define-public i3lock-color
(package
(name "i3lock-color")

View file

@ -19,6 +19,7 @@
;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com>
;;; Copyright © 2024 Leo Nikkilä <hello@lnikki.la>
;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2025 Rodion Goritskov <rodion@goritskov.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -40,8 +41,10 @@
#:use-module (gnu services shepherd)
#:use-module (gnu services admin)
#:use-module (gnu services configuration)
#:use-module (gnu services databases)
#:use-module (gnu services getmail)
#:use-module (gnu services mail)
#:use-module (gnu system file-systems)
#:use-module (gnu system pam)
#:use-module (gnu system shadow)
#:use-module (gnu packages admin)
@ -59,7 +62,9 @@
#:use-module (gnu packages mail)
#:use-module (gnu packages rust-apps)
#:autoload (guix i18n) (G_)
#:autoload (gnu build linux-container) (%namespaces)
#:use-module (guix diagnostics)
#:use-module (guix least-authority)
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix modules)
@ -74,6 +79,7 @@
#:use-module (srfi srfi-34)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:use-module (ice-9 regex)
#:export (httpd-configuration
httpd-configuration?
httpd-configuration-package
@ -328,7 +334,23 @@
agate-configuration-group
agate-configuration-log-file
agate-service-type))
agate-service-type
miniflux-configuration
miniflux-configuration?
miniflux-configuration-listen-address
miniflux-configuration-base-url
miniflux-configuration-create-administrator-account?
miniflux-configuration-administrator-account-name
miniflux-configuration-administrator-account-password
miniflux-configuration-run-migrations?
miniflux-configuration-database-url
miniflux-configuration-user
miniflux-configuration-group
miniflux-configuration-log-file
miniflux-configuration-extra-settings
miniflux-service-type))
;;; Commentary:
;;;
@ -2279,3 +2301,173 @@ root=/srv/gemini
(default-value (agate-configuration))
(description "Run Agate, a simple Gemini protocol server written in
Rust.")))
(define (serialize-string field-name val)
(format #f "~a=~a\n" field-name val))
(define (string-or-file-path? val)
(string? val))
(define (serialize-string-or-file-path field-name val)
(serialize-string (if (absolute-file-name? val)
(format #f "~a_FILE" field-name) field-name) val))
(define-maybe string-or-file-path)
(define (serialize-list field-name val)
(string-append (string-join val "\n") "\n"))
(define-maybe list)
(define (serialize-boolean field-name val)
(if val (serialize-string field-name "1") (serialize-string field-name "0")))
(define-configuration/no-serialization miniflux-configuration
(listen-address
(string "127.0.0.1:8080")
"Address to listen on.
Use absolute path like @code{\"/var/run/miniflux/miniflux.sock\"} for a Unix socket.")
(base-url
(string "http://127.0.0.1/")
"Base URL to generate HTML links and base path for cookies.")
(create-administrator-account?
(boolean #f)
"Create an initial administrator account.")
(administrator-account-name
maybe-string-or-file-path
"Initial administrator account name as a string or an absolute path to a file with a account name inside.")
(administrator-account-password
maybe-string-or-file-path
"Initial administrator account password as a string or an absolute path to a file with a password inside.")
(run-migrations?
(boolean #t)
"Run database migrations during application startup.")
(database-url
(string "host=/var/run/postgresql")
"PostgreSQL connection string.")
(user
(string "miniflux")
"User name for Postgresql and system account.")
(group
(string "miniflux")
"Group for the system account.")
(log-file
(string "/var/log/miniflux.log")
"Path to the log file.")
(extra-settings
maybe-list
"Extra configuration parameters as a list of strings."))
(define (miniflux-serialize-configuration config)
(match-record config <miniflux-configuration>
(listen-address base-url create-administrator-account?
administrator-account-name administrator-account-password
run-migrations? database-url extra-settings)
(string-append (serialize-string "LISTEN_ADDR" listen-address)
(serialize-string "BASE_URL" base-url)
(serialize-boolean "CREATE_ADMIN" create-administrator-account?)
(serialize-maybe-string-or-file-path "ADMIN_USERNAME" administrator-account-name)
(serialize-maybe-string-or-file-path "ADMIN_PASSWORD" administrator-account-password)
(serialize-boolean "RUN_MIGRATIONS" run-migrations?)
(serialize-string "DATABASE_URL" database-url)
(serialize-maybe-list #f extra-settings))))
(define (miniflux-configuration-file config)
(mixed-text-file "miniflux.conf" (miniflux-serialize-configuration config)))
(define (pair->file-system-mapping pair previous)
(if (pair? pair)
(let ((path (car pair))
(writable (cdr pair)))
(if (or (and (string? path)
(absolute-file-name? path))
(computed-file? path))
(append previous (list (file-system-mapping
(source path)
(target source)
(writable? writable))))
previous))
previous))
(define (miniflux-shepherd-service config)
(match-record config <miniflux-configuration>
(user group log-file database-url listen-address
administrator-account-name administrator-account-password)
(let ((config-file (miniflux-configuration-file config)))
(list (shepherd-service
(documentation "Run Miniflux server")
(provision '(miniflux))
(requirement '(postgres networking))
(start #~(make-forkexec-constructor
(list #$(least-authority-wrapper
(file-append miniflux "/bin/miniflux")
#:name "miniflux"
#:user user
#:group group
#:preserved-environment-variables
(append %default-preserved-environment-variables
'("SSL_CERT_FILE"))
#:mappings
(fold pair->file-system-mapping
'()
`((,log-file . #t)
(,config-file . #f)
("/etc/ssl/certs/ca-certificates.crt" . #f)
(,administrator-account-name . #f)
(,administrator-account-password . #f)
(,(dirname listen-address) . #t)
,(let* ((db-socket-match (string-match ".*host=(/[^ ]*).*" database-url))
(db-socket (if db-socket-match (match:substring db-socket-match 1) #f)))
(if db-socket
`(,db-socket . #t)))))
#:namespaces
(fold delq %namespaces '(net user)))
"-config-file"
#$config-file)
#:log-file #$log-file))
(stop #~(make-kill-destructor)))))))
(define (miniflux-accounts config)
(match-record config <miniflux-configuration>
(user group)
`(,(user-group
(name group)
(system? #t))
,(user-account
(name user)
(group group)
(system? #t)
(comment "miniflux server user")
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin"))))))
(define (miniflux-postgresql-role config)
(list (postgresql-role
(name (miniflux-configuration-user config))
(create-database? #t))))
(define (miniflux-log-files config)
(list (miniflux-configuration-log-file config)))
(define (miniflux-activation-service-type config)
(match-record config <miniflux-configuration>
(user listen-address)
#~(begin
(use-modules (gnu build activation))
(let ((user (getpwnam #$user)))
(if (absolute-file-name? #$listen-address)
(mkdir-p/perms (dirname #$listen-address) user #o755))))))
(define miniflux-service-type
(service-type
(name 'miniflux)
(default-value (miniflux-configuration))
(extensions
(list (service-extension account-service-type
miniflux-accounts)
(service-extension postgresql-role-service-type
miniflux-postgresql-role)
(service-extension shepherd-root-service-type
miniflux-shepherd-service)
(service-extension log-rotation-service-type
miniflux-log-files)
(service-extension activation-service-type
miniflux-activation-service-type)))
(description "Run Miniflux, minimalist feed reader")))

View file

@ -43,7 +43,6 @@
#:use-module (gnu packages firmware)
#:use-module (gnu packages linux)
#:use-module (gnu packages ocr)
#:use-module (gnu packages openbox)
#:use-module (gnu packages package-management)
#:use-module (gnu packages ratpoison)
#:use-module (gnu packages suckless)

View file

@ -5,6 +5,7 @@
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2025 Rodion Goritskov <rodion@goritskov.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -37,6 +38,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages databases)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages patchutils)
#:use-module (gnu packages python)
#:use-module (gnu packages tls)
@ -56,7 +58,10 @@
%test-hpcguix-web
%test-anonip
%test-patchwork
%test-agate))
%test-agate
%test-miniflux-admin-string
%test-miniflux-admin-file
%test-miniflux-socket))
(define %index.html-contents
;; Contents of the /index.html file.
@ -848,3 +853,190 @@ HTTP-PORT."
(name "agate")
(description "Connect to a running Agate service.")
(value (run-agate-test name %agate-os %index.gmi-contents))))
;;;
;;; Miniflux
;;;
(define %miniflux-create-admin-credentials
#~(begin
(mkdir "/var/miniflux")
(call-with-output-file "/var/miniflux/admin-username"
(lambda (port)
(display "test" port)))
(call-with-output-file "/var/miniflux/admin-password"
(lambda (port)
(display "testpassword" port)))))
(define miniflux-base-system
(lambda (miniflux-config)
(simple-operating-system
(simple-service 'create-admin-credentials
activation-service-type
%miniflux-create-admin-credentials)
(service dhcpcd-service-type)
(service postgresql-service-type
(postgresql-configuration
(postgresql postgresql-13)))
(service miniflux-service-type
miniflux-config))))
(define %miniflux-with-admin-as-string
(miniflux-base-system
(miniflux-configuration
(listen-address "0.0.0.0:8080")
(create-administrator-account? #t)
(administrator-account-name "test")
(administrator-account-password "testpassword"))))
(define %miniflux-with-admin-as-file
(miniflux-base-system
(miniflux-configuration
(listen-address "0.0.0.0:8080")
(create-administrator-account? #t)
(administrator-account-name "/var/miniflux/admin-username")
(administrator-account-password "/var/miniflux/admin-password"))))
(define %miniflux-with-socket
(miniflux-base-system
(miniflux-configuration
(listen-address "/var/run/miniflux/miniflux.sock"))))
(define* (run-miniflux-test name test-os)
(define os
(marionette-operating-system
test-os
#:imported-modules '((gnu services herd)
(guix combinators))))
(define forwarded-port 8080)
(define vm
(virtual-machine
(operating-system os)
(memory-size 512)
(port-forwardings `((8080 . ,forwarded-port)))))
(define test
(with-extensions (list guile-gcrypt)
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (srfi srfi-64)
(srfi srfi-11)
(gnu build marionette)
(web client)
(web uri)
(web response)
(ice-9 match)
(ice-9 iconv)
(gcrypt base64))
(define marionette
(make-marionette (list #$vm)))
(test-runner-current (system-test-runner #$output))
(test-begin #$name)
(test-assert "Check Miniflux service is running"
(begin
(#$retry-on-error
(lambda ()
(marionette-eval
'(begin
(use-modules (gnu services herd))
(match (start-service '#$(string->symbol "miniflux"))
(#f #f)
(('service response-parts ...)
(match (assq-ref response-parts 'running)
(#f #f)
((running) #t)))))
marionette))
#:delay 1
#:times 10)))
(test-assert "Miniflux TCP port ready, IPv4"
(wait-for-tcp-port #$forwarded-port marionette))
(test-assert "Miniflux login page is opened"
(begin
(wait-for-tcp-port #$forwarded-port marionette)
(#$retry-on-error
(lambda ()
(let-values (((_ text)
(http-get
#$(format #f "http://localhost:~A/" forwarded-port)
#:decode-body? #t)))
(string-contains text "<title>Sign In - Miniflux</title>")))
#:times 10
#:delay 2)))
(define authorization-header
(let ((encoded (base64-encode (string->bytevector "test:testpassword" "utf-8"))))
`(authorization . (basic . ,encoded))))
(test-equal "Miniflux initial admin API call is successful"
200
(begin
(wait-for-tcp-port #$forwarded-port marionette)
(#$retry-on-error
(lambda ()
(let-values (((response _)
(http-get #$(format #f "http://localhost:~A/v1/me" forwarded-port)
#:headers (list authorization-header)
#:decode-body? #t)))
(response-code response)))
#:times 10
#:delay 2)))
(test-end)))))
(gexp->derivation (string-append name "-test") test))
(define* (run-miniflux-socket-test name test-os)
(define os
(marionette-operating-system
test-os
#:imported-modules '((gnu services herd)
(guix combinators))))
(define vm
(virtual-machine
(operating-system os)
(memory-size 512)))
(define test
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (srfi srfi-64)
(gnu build marionette))
(define marionette
(make-marionette (list #$vm)))
(test-runner-current (system-test-runner #$output))
(test-begin #$name)
(test-assert "Check socket file is created"
(wait-for-unix-socket "/var/run/miniflux/miniflux.sock" marionette))
(test-end))))
(gexp->derivation (string-append name "-test") test))
(define %test-miniflux-admin-string
(system-test
(name "miniflux-admin-string")
(description "Run Miniflux with initial admin credentials as string.")
(value (run-miniflux-test name %miniflux-with-admin-as-string))))
(define %test-miniflux-admin-file
(system-test
(name "miniflux-admin-file")
(description "Run Miniflux with initial admin credentials as file.")
(value (run-miniflux-test name %miniflux-with-admin-as-file))))
(define %test-miniflux-socket
(system-test
(name "miniflux-socket")
(description "Run Miniflux on unix socket.")
(value (run-miniflux-socket-test name %miniflux-with-socket))))

View file

@ -461,7 +461,6 @@ gnu/packages/nushell.scm
gnu/packages/ocaml.scm
gnu/packages/ocr.scm
gnu/packages/onc-rpc.scm
gnu/packages/openbox.scm
gnu/packages/opencog.scm
gnu/packages/openldap.scm
gnu/packages/openstack.scm