1
0
forked from tribes/guix

Compare commits

...

15 Commits

Author SHA1 Message Date
nckx 9ea6ba31b9 revert 7e7487166b
Since commit 7e7487166b, Guix System treats devices starting with "/dev/" as special and won't even try to mount them if the whole string isn't an existing file name.

This strict naming policy is (AFAIK?) Guix-specific and breaks things like booting multi-device bcachefs file systems:

  waiting for partition '/dev/sda1:/dev/sdb1' to appear...
  waiting for partition '/dev/sda1:/dev/sdb1' to appear...

…ad infinitum until crashing to a Guile prompt.

Guix must not enforce custom naming policies like this. On the contrary: we should defer mounting to the kernel whenever possible, and handle failures only when they occur.

We can still delay mounts, retry failed mounts, and try to set up favourable mount conditions based on what we think the mount(2) SOURCE looks like, without adding our own arbitrary rules.
2026-03-29 13:12:19 +02:00
moksh 21946173a0 gnu: librewolf: Update to 149.0-1 [security-fixes].
* gnu/packages/librewolf.scm (librewolf): Update to 149.0-1.

Contains fixes for:
CVE-2026-4684: Race condition, use-after-free in the Graphics: WebRender component
CVE-2026-4685: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4686: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4687: Sandbox escape due to incorrect boundary conditions in the Telemetry component
CVE-2026-4688: Sandbox escape due to use-after-free in the Disability Access APIs component
CVE-2026-4689: Sandbox escape due to incorrect boundary conditions, integer overflow in the XPCOM component
CVE-2026-4690: Sandbox escape due to incorrect boundary conditions, integer overflow in the XPCOM component
CVE-2026-4691: Use-after-free in the CSS Parsing and Computation component
CVE-2026-4692: Sandbox escape in the Responsive Design Mode component
CVE-2026-4693: Incorrect boundary conditions in the Audio/Video: Playback component
CVE-2026-4694: Incorrect boundary conditions, integer overflow in the Graphics component
CVE-2026-4695: Incorrect boundary conditions in the Audio/Video: Web Codecs component
CVE-2026-4696: Use-after-free in the Layout: Text and Fonts component
CVE-2026-4697: Incorrect boundary conditions in the Audio/Video: Web Codecs component
CVE-2026-4698: JIT miscompilation in the JavaScript Engine: JIT component
CVE-2026-4699: Incorrect boundary conditions in the Layout: Text and Fonts component
CVE-2026-4700: Mitigation bypass in the Networking: HTTP component
CVE-2026-4701: Use-after-free in the JavaScript Engine component
CVE-2026-4722: Privilege escalation in the IPC component
CVE-2026-4702: JIT miscompilation in the JavaScript Engine component
CVE-2026-4723: Use-after-free in the JavaScript Engine component
CVE-2026-4724: Undefined behavior in the Audio/Video component
CVE-2026-4704: Denial-of-service in the WebRTC: Signaling component
CVE-2026-4705: Undefined behavior in the WebRTC: Signaling component
CVE-2026-4706: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4707: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4708: Incorrect boundary conditions in the Graphics component
CVE-2026-4709: Incorrect boundary conditions in the Audio/Video: GMP component
CVE-2026-4710: Incorrect boundary conditions in the Audio/Video component
CVE-2026-4711: Use-after-free in the Widget: Cocoa component
CVE-2026-4725: Sandbox escape due to use-after-free in the Graphics: Canvas2D component
CVE-2026-4712: Information disclosure in the Widget: Cocoa component
CVE-2026-4713: Incorrect boundary conditions in the Graphics component
CVE-2026-4714: Incorrect boundary conditions in the Audio/Video component
CVE-2026-4715: Uninitialized memory in the Graphics: Canvas2D component
CVE-2026-4716: Incorrect boundary conditions, uninitialized memory in the JavaScript Engine component
CVE-2026-4717: Privilege escalation in the Netmonitor component
CVE-2026-4726: Denial-of-service in the XML component
CVE-2025-59375: Denial-of-service in the XML component
CVE-2026-4727: Denial-of-service in the Libraries component in NSS
CVE-2026-4728: Spoofing issue in the Privacy: Anti-Tracking component
CVE-2026-4718: Undefined behavior in the WebRTC: Signaling component
CVE-2026-4719: Incorrect boundary conditions in the Graphics: Text component
CVE-2026-4720: Memory safety bugs fixed in Firefox ESR 140.9, Thunderbird ESR 140.9, Firefox 149 and Thunderbird 149
CVE-2026-4729: Memory safety bugs fixed in Firefox 149 and Thunderbird 149
CVE-2026-4721: Memory safety bugs fixed in Firefox ESR 115.34, Firefox ESR 140.9, Thunderbird ESR 140.9, Firefox 149 and
hunderbird 149

Change-Id: I40e76bf852087d71f8df869103c846032e8552c9
Signed-off-by: Ian Eure <ian@retrospec.tv>
2026-03-28 21:57:43 -07:00
moksh 23fb319fdd gnu/packages/librewolf: firefox-l10n: Update to d1394212aed0ce0063c0f818aa236e7d4f955ac9.
* gnu/packages/librewolf.scm (firefox-l10n): Update to d1394212aed0ce0063c0f818aa236e7d4f955ac9.

Change-Id: I7e152e1f384d7499aa4a368ca8b20d829d1a69ae
Signed-off-by: Ian Eure <ian@retrospec.tv>
2026-03-28 21:57:39 -07:00
Nicolas Graves 7073c9a124 gnu: libdecaf: Fix build on python@3.12.
* gnu/packages/crypto.scm (libdecaf)[native-inputs]: Add
python-setuptools.

Change-Id: Icc4da08867cba0f3cba93d50eee8ab8302061112
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 5da6907190 gnu: libapparmor: Fix build on python@3.12.
* gnu/packages/apparmor.scm (libapparmor)[native-inputs]: Add
python-setuptools.

Change-Id: I47d613f34024accf2f987a230517d773790ba35f
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves f0db9f5b35 gnu: python-pytest-mypy-plugins: Update to 4.0.0.
* gnu/packages/check.scm (python-pytest-mypy-plugins): Update to 4.0.0.
[source]: Switch to git-fetch.
[arguments]<#:test-flags>: Refresh failing tests.
[native-inputs]: Remove python-wheel.

Change-Id: I323658c2e4f9fc8aec0f4234dd9fbb4ed326e6dd
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves c8bc423b87 gnu: python-pysam: Update to 0.23.3.
* gnu/packages/bioinformatics.scm (python-pysam): Update to 0.23.3.
[native-inputs]: Replace python-cython-0 by python-cython.  Remove
python-wheel.

Change-Id: I4e93e7ab1a9e763d2d84b6b7601a64e918b0eda8
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 31affbfd60 gnu: liblouis: Fix build on python@3.12.
* gnu/packages/language.scm (liblouis)[native-inputs]: Add
python-setuptools.

Change-Id: Ie6956443ed44b70e8d1a844b3e9b66a2dddb2810
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 2c7ee93beb gnu: python-fb-re2: Fix tests for python@3.12.
* gnu/packages/python-xyz.scm (python-fb-re2)[arguments]
<#:phases>: Add phase 'fix-tests.

Change-Id: I0bf9d7a7e6a5101455f4cbdec0268160667da3ea
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 3050f81301 gnu: python-pypa-installer: Deprecate aliased python-installer.
* gnu/packages/python-build.scm (python-pypa-installer): Drop
variable, and redefine it as a deprecated version of python-installer.

Change-Id: I97467c9832eb7e23ffe67aea90fbf017864f312b
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves c5075bc31d gnu: xandikos: Update to 0.3.3.
* gnu/packages/dav.scm (xandikos): Update to 0.3.3.
[source]: Switch to git-fetch.
[arguments]<#:test-backend>: Drop it (use pytest).
<#:phases>: Drop 'create-entrypoints phase replacement, fixed by
https://github.com/jelmer/xandikos/pull/563 in version 0.3.1.
[native-inputs]: Add python-pytest.
[propagated-inputs]: Replace python-dulwich-0.24 by python-dulwich.

Change-Id: I6de5cd2a35aeface02946d1cec8b76035ae70708
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:00 +00:00
Nicolas Graves 4d80135c49 gnu: python-flake8-isort: Update to 7.0.0.
* gnu/packages/python-xyz.scm (python-flake8-isort): Update to 7.0.0.
[source]: Switch to git-fetch.
[arguments]<#:tests?, #:test-backend, #:test-flags>: Enable tests.
[native-inputs]: Add python-pytest.

Change-Id: I0c6253b8bd19c7087aa72584f307ebd804f2fabc
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:00 +00:00
Nicolas Graves b850e968e9 gnu: clang-python-bindings: Fix build on python@3.12.
* gnu/packages/llvm.scm (clang-python-bindings)[native-inputs]: Add
python-setuptools.

Change-Id: I86c3820bfe25e75a26f74409d3ee7c98d4b55c37
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 21:59:57 +00:00
bdunahu ceffc5eed0 gnu: emacs-exwm: Fix .desktop file.
* gnu/packages/emacs-xyz.scm (emacs-exwm)[arguments]:
<#:phases>: Add -mm flag to exported .desktop file, ensuring emacs starts with a frame the same size as the screen.  Use '(exwm-wm-mode)' instead of deprecated '(exwm-enable)'.

Change-Id: I5a7ddc017196171f44fe81016f4e16dbe4f4b545
Signed-off-by: Ian Eure <ian@retrospec.tv>
2026-03-28 14:36:28 -07:00
jgart 34683a7c42 gnu: trealla: Update to 2.92.6.
* gnu/packages/prolog.scm (trealla): Update to 2.92.6.

Change-Id: Ibf90764980593b0a72a42896a38e19600abaecab
2026-03-28 17:03:08 -04:00
13 changed files with 73 additions and 90 deletions
+6 -7
View File
@@ -1220,16 +1220,15 @@ file name or an nfs-root containing ':/')."
(sleep 1)
(loop (+ 1 count))))))))
(define (device-exists? device)
(and (file-exists? device)
device))
(match spec
((? string?)
(if (string-prefix? "/dev/" spec)
(if (or (string-contains spec ":/") ;nfs
(and (>= (string-length spec) 2)
(equal? (string-take spec 2) "//")) ;cifs
(string=? spec "none"))
spec ; do not resolve NFS / CIFS / tmpfs devices
;; Nothing to do, but wait until SPEC shows up.
(resolve device-exists? spec identity)
spec)) ; do not resolve NFS / CIFS / tmpfs devices
(resolve identity spec identity)))
((? file-system-label?)
;; Resolve the label.
(resolve find-partition-by-label
+2
View File
@@ -29,6 +29,7 @@
#:use-module (gnu packages perl)
#: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 ruby)
#:use-module (gnu packages swig)
@@ -92,6 +93,7 @@
libtool
perl
python-minimal
python-setuptools
ruby
swig-4.0
which))
+3 -5
View File
@@ -6070,17 +6070,16 @@ subgroups.")
(define-public python-pysam
(package
(name "python-pysam")
(version "0.23.0")
(version "0.23.3")
(source (origin
(method git-fetch)
;; Test data is missing on PyPi.
(uri (git-reference
(url "https://github.com/pysam-developers/pysam")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0hk0ks6kqsm8252d0v1lw2d22x1awmxcr165nnhyacwbqh246skl"))
"1kb70fp9mnjl4czhwiahb192lwkq1j357b774ddg533ibj3h7gcz"))
(modules '((guix build utils)))
(snippet '(begin
;; FIXME: Unbundle samtools and bcftools.
@@ -6118,10 +6117,9 @@ subgroups.")
(inputs
(list ncurses curl zlib))
(native-inputs
(list python-cython-0
(list python-cython
python-pytest
python-setuptools
python-wheel
;; Dependencies below are are for tests only.
samtools
bcftools))
+13 -6
View File
@@ -2875,19 +2875,27 @@ a Pytest test execution.")
(define-public python-pytest-mypy-plugins
(package
(name "python-pytest-mypy-plugins")
(version "3.1.2")
(version "4.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-mypy-plugins" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/TypedDjango/pytest-mypy-plugins")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1gpynypn13032by633dr2zhng54v2gl09kwgp3ysc4wpwl09pyhl"))))
(base32 "05vnv8m4qjrpyxw7f17wng6pnicvaps6vf8c6yn1a8lj10fkwazn"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "-k" (string-join
(list "not reveal_type_extension_is_loaded"
;; Unsupported operand types for / ("str" and "int")
"test_no_silence_site_packages_only"
"test_no_silence_site_packages_and_modify_pythonpath"
;; subprocess.CalledProcessError
;; pytest not found?
"test_pyproject_toml"
"test_ini_files")
" and not "))
@@ -2902,8 +2910,7 @@ a Pytest test execution.")
(with-directory-excursion "/tmp"
(apply invoke "pytest" "-v" test-flags))))))))
(native-inputs
(list python-setuptools
python-wheel))
(list python-setuptools))
(propagated-inputs
(list python-decorator
python-jinja2
+1 -1
View File
@@ -264,7 +264,7 @@ fast, secure, parallelizable, capable of incremental updates.")
(string-append
"--prefix="
(python:site-packages inputs outputs)))))))))
(native-inputs (list python-minimal-wrapper))
(native-inputs (list python-minimal-wrapper python-setuptools))
(synopsis "Decaf Elliptic Curve Library")
(description "The libdecaf library is an implementation of elliptic curve
cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
+9 -23
View File
@@ -169,43 +169,29 @@ clients.")
(define-public xandikos
(package
(name "xandikos")
(version "0.3.0")
(version "0.3.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xandikos" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/jelmer/xandikos")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "10j7qmwcrwql4ah6q8si3nf1ljwrx99w8ipiy85bzjd3qz2vackj"))))
(base32 "0db02hsdrrxpms9xfy8q5kkgsp5gxrgd15rgdjd5aw7lqpnhhmji"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-backend #~'unittest
#:phases
#~(modify-phases %standard-phases
(replace 'create-entrypoints
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((sitedir (site-packages inputs outputs))
(interpreter (which "python"))
(file-path (string-append #$output "/bin/xandikos")))
(mkdir-p (string-append #$output "/bin"))
(call-with-output-file file-path
(lambda (port)
(format port "#!~a -sP
# Auto-generated entry point script.
import sys
import asyncio
from xandikos.__main__ import main
if __name__ == '__main__':
sys.exit(asyncio.run(main(sys.argv[1:])))~%" interpreter)))
(chmod file-path #o755))))
(add-before 'check 'check-setup
(lambda _
(setenv "XANDIKOSPATH" (mkdtemp "/tmp/xandikospath-XXXXXX")))))))
(native-inputs (list python-setuptools))
(native-inputs (list python-pytest python-setuptools))
(propagated-inputs
(list python-aiohttp
python-defusedxml
python-dulwich-0.24
python-dulwich
python-icalendar
python-jinja2
python-multidict
+2 -2
View File
@@ -24500,7 +24500,7 @@ It should enable you to implement low-level X11 applications.")
(lambda _
(format #t "#!~a ~@
~a +SI:localuser:$USER ~@
exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
exec ~a --exit-with-session ~a \"$@\" -mm --eval '~s' ~%"
(search-input-file inputs "/bin/sh")
(search-input-file inputs "/bin/xhost")
(search-input-file inputs "/bin/dbus-launch")
@@ -24510,7 +24510,7 @@ It should enable you to implement low-level X11 applications.")
(load-file "~/.exwm"))
((not (featurep 'exwm))
(require 'exwm)
(exwm-enable)
(exwm-wm-mode)
(message
"exwm configuration not found.
Falling back to minimal configuration.
+2 -1
View File
@@ -378,7 +378,8 @@ method, one of the most popular choices for Traditional Chinese users.")
texinfo
perl
pkg-config
python-minimal))
python-minimal
python-setuptools))
(synopsis "Braille translator and back-translator")
(description "Liblouis is a braille translator and back-translator named in
honor of Louis Braille. It features support for computer and literary braille,
+7 -7
View File
@@ -125,14 +125,14 @@
;; ex:
;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \
;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision
(let ((commit "c316776e57fcf5c11054c115054b083ce0790ce7"))
(let ((commit "d1394212aed0ce0063c0f818aa236e7d4f955ac9"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mozilla-l10n/firefox-l10n.git")
(commit commit)))
(file-name (git-file-name "firefox-l10n" commit))
(sha256 (base32 "19ph6rj4s5f1vdmkifk2n1lb2lnlps87miy49552x5czxy40wwh4")))))
(sha256 (base32 "16s515xf0i7a7acv0m1bbgflbdx9a87b1dcg7q3yswym8x1bhvaj")))))
(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n)
(let* ((ff-src (firefox-source-origin
@@ -238,23 +238,23 @@
;;; but since in Guix only the latest packaged Rust is officially supported,
;;; it is a tradeoff worth making.
;;; 0: https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html
(define rust-librewolf rust-1.92)
(define rust-librewolf rust-1.93)
;; Update this id with every update to its release date.
;; It's used for cache validation and therefore can lead to strange bugs.
;; ex: date '+%Y%m%d%H%M%S'
;; or: (format-time-string "%Y%m%d%H%M%S")
(define %librewolf-build-id "20260319204056")
(define %librewolf-build-id "20260326135749")
(define-public librewolf
(package
(name "librewolf")
(version "148.0.2-3")
(version "149.0-1")
(source
(make-librewolf-source
#:version version
#:firefox-hash "142f4k4ykcm65kbvj60p472103r4k79v9fdsfljdav2rbr6qxjx6"
#:librewolf-hash "193yh89chifcvqn03h9xs39g0pdiiamzb4wjf8f7qczgc23b7y8w"
#:firefox-hash "12jb930qhqhpzjpn5smms7g4n6y40zvxcrg8w42696wxk7pgsqdq"
#:librewolf-hash "0igv0fr0vl2nf5rlgnidfz2a3gh55bsqwcray0jg7x2kl6qnkzwm"
#:l10n firefox-l10n))
(build-system gnu-build-system)
(arguments
+2
View File
@@ -2083,6 +2083,8 @@ generator targetting AMD hardware.")
(substitute* "clang/cindex.py"
(("libclang\\.so") libclang))))))))
(inputs (list clang))
(native-inputs (modify-inputs (package-native-inputs clang)
(append python-setuptools)))
(synopsis "Python bindings to libclang")))
(define-public python-clang-12
+2 -2
View File
@@ -236,7 +236,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.92.3")
(version "2.92.6")
(source
(origin
(method git-fetch)
@@ -245,7 +245,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "14cycv7cgnz24pzd2zghc401s21j2y70ir5hl2l5acw169snm9jk"))
(base32 "1qiqdq3bv5wmrss6hnwa7nn3fr2rj5a8g8v53khzfljppalwl401"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
+4 -24
View File
@@ -1067,30 +1067,6 @@ any dependency management. It aims to keep dependencies to a minimum, in
order to make bootstrapping easier.")
(license license:expat)))
;; There are quite a few amount of Python installers in the wild we need the
;; one from PyPa team.
(define-public python-pypa-installer
(package
(name "python-pypa-installer")
(version "0.7.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "installer" version))
(sha256
(base32 "0cdnqh3a3amw8k4s1pzfjh0hpvzw4pczgl702s1b16r82qqkwvd2"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f)) ; Depends on pytest, which we cannot import into this module.
(native-inputs
(list python-flit-core))
(home-page "https://installer.readthedocs.io/")
(synopsis "low-level library for installing from a Python wheel distribution")
(description
"This package provides a library for installing Python wheels.")
(license license:expat)))
(define-public python-poetry-core
(package
(name "python-poetry-core")
@@ -1526,6 +1502,10 @@ package from a wheel distribution. It provides basic functionality and
abstractions for handling wheels and installing packages from wheels.")
(license license:expat)))
;; Both packages have been merged into a single one.
(define-deprecated-package python-pypa-installer
python-installer)
(define-public python-jaraco-classes
(package
(name "python-jaraco-classes")
+20 -12
View File
@@ -6074,6 +6074,15 @@ commonly used storage backends.")
(base32
"0snprxdnh3m45r3b0az4v0l28h90ycmfbybzla6xg1qviwv9w1ak"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda _
(substitute* "tests/test_match.py"
(("assertRaisesRegexp")
"assertRaisesRegex")))))))
(native-inputs
(list python-pytest python-setuptools))
(inputs
@@ -16527,22 +16536,21 @@ TODO notes checker plugin for flake8.")
(define-public python-flake8-isort
(package
(name "python-flake8-isort")
(version "6.1.1")
(version "7.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "flake8_isort" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/gforcada/flake8-isort")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1cvh0d18scgq36gqa2vqbifjarln1r3axgq93lzc303ay0y2zy61"))))
(base32 "0d7j2ws59bm9143m69ah6h865i2pn97p4gjpwx6jrwi9sy26kj5z"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f)) ; no tests in PiPY or git checkout
(native-inputs
(list python-hatchling))
(propagated-inputs
(list python-flake8
python-isort))
(arguments (list #:test-backend #~'custom
#:test-flags #~(list "run_tests.py")))
(native-inputs (list python-hatchling python-pytest))
(propagated-inputs (list python-flake8 python-isort))
(home-page "https://github.com/gforcada/flake8-isort")
(synopsis "Flake8 plugin integrating isort")
(description