1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-09 14:34:06 +02:00

Compare commits

..

53 Commits

Author SHA1 Message Date
宋文武 8ce414a206 gnu: xfce: Add 'stable-version-regexp' property for packages.
* gnu/packages/xfce.scm (libxfce4util, xfconf, libxfce4ui, catfish, exo)
(garcon, tumbler, libxfce4windowing, xfce4-appfinder, xfce4-session)
(xfce4-settings, thunar, thunar-volman, xfwm4, xfdesktop, parole)
(xfce4-power-manager, orage, xfce4-screensaver, xfce4-dev-tools)
[properties]: Add stable-version-regexp.

Merges: guix/guix!5222
Change-Id: Ia296b1ea3dbca95b4c9e99c43a52b4503d5f481a
2026-05-30 10:02:03 +08:00
宋文武 5c41a431df import: git: Support 'stable-version-regexp' property.
Some packages (eg: xfce4-panel) use even number for minor version to indicate
a stable release, when refresh such packages to latest versions we'd like them
to be stable ones.  Introduce 'stable-version-regexp' as a package property,
so that unwanted releases can be filtered out.

* doc/guix.texi (Invoking guix refresh): Document 'stable-version-regexp'.
* guix/import/git.scm (import-git-release): Filter out unstable releases when
target-version is unset but 'stable-version-regexp' is available.

Change-Id: I7bbb2cb41b19175a7e3fb79e00cd8dbb20d049ad
2026-05-30 10:01:58 +08:00
Vagrant Cascadian 5863808183 gnu: linux-libre: Update default version to 7.0.
* gnu/packages/linux.scm (linux-libre-version, linux-libre-gnu-revision,
linux-libre-pristine-source, linux-libre-source, linux-libre,
linux-libre-arm64-mnt-reform): Update to 7.0.

Merges: guix/guix#8954
2026-05-29 14:29:00 -07:00
Cayetano Santos 0b083f0dc9 gnu: qucs-s: Update to 26.1.1.
* gnu/packages/electronics.scm (qucs-s): Update to 26.1.1.

Change-Id: I910a976a69230aac6bf99add71e07bdab122887e
2026-05-29 22:19:16 +02:00
Cayetano Santos 32328a29ce gnu: netgen: Update to 1.5.320.
* gnu/packages/electronics.scm (netgen): Update to 1.5.320.

Change-Id: I64efc82c9164211a063043e609f561033a94bf59
2026-05-29 22:19:16 +02:00
Cayetano Santos 5a889494d5 gnu: magic: Update to 8.3.652.
* gnu/packages/electronics.scm (magic): Update to 8.3.652.

Change-Id: I2aaaa407101952bcd19f869a7d6272488bcbda56
2026-05-29 22:19:16 +02:00
Cayetano Santos 31cbb38266 gnu: klayout: Update to 0.30.9.
* gnu/packages/electronics.scm (klayout): Update to 0.30.9.

Change-Id: If080a1f4ac14b724f5e2b729e6a71a62e40281c9
2026-05-29 22:19:15 +02:00
Jake Forster ac7d094687 gnu: insight-toolkit: Replace zlib with zlib-ng-compat.
* gnu/packages/image-processing.scm (insight-toolkit)[inputs]: Replace zlib
with zlib-ng-compat.

Change-Id: I2286a321420311a8260ce15b30a04519ea88fc90
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:42:08 +02:00
Jake Forster 4093bf9e95 gnu: Add zlib-ng-compat.
* gnu/packages/compression.scm (zlib-ng-compat): New variable.

Change-Id: I765cef93406dc975e93a1c87590abc61b2ef3bd2
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:42:08 +02:00
Jake Forster 66a8184c46 gnu: Add zlib-ng.
* gnu/packages/compression.scm (zlib-ng): New variable.

Change-Id: Ic4f5b9fa005ccc89160f4dc8a275ca6c9adadc30
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:42:08 +02:00
Sören Tempel 26368214a6 gnu: chicken: Refer to required programs by path, not name.
Fixes #8471

* gnu/packages/chicken.scm (chicken)[#:phases]<fix-paths>: Refer
to sh and cp by full path in the Scheme source, instead of by name.
[inputs]: Add bash-minimal.

Change-Id: Id5fc66044c4ae736d7c847d5c781d9317313d3ac
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:42:07 +02:00
Sören Tempel f032a41f41 gnu: chicken: Bootstrap from Scheme source code.
The CHICKEN compiler is itself written in CHICKEN.  To mitigate the
compiler bootstrapping problem, the CHICKEN release tarball includes
auto-generated C code, from which the CHICKEN compiler is build using
a C compiler.

However, if we want to patch the CHICKEN Scheme source (for  #8471), we
need to be able to build the CHICKEN compiler from its Scheme source
files.  This is achieved here by separate the build into two packages
chicken-bootstrap (build from the auto-generated C code) and chicken
(build from the Scheme source).

Note that this still isn't a full-source bootstrap, we still require
the auto-generated C source code, but at least we can now patch the
package based on the Scheme source. Hence, it improves the situation.

See also: https://issues.guix.gnu.org/22366

* gnu/packages/chicken.scm (chicken-bootstrap): Rename from chicken.
* gnu/packages/chicken.scm (chicken): New package.

Change-Id: Ie656e95e2112241b066158a62e55ac07c722c150
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:42:03 +02:00
bdunahu a13589b2b9 gnu: openrct2: Update to 0.5.0.
* gnu/packages/games.scm (openrct2): Update to 0.5.0.
[source]: Unbundle sfl-library and quickjs-ng.
[#:configure-flags]: Do not download music or sound effects.
Disable version checks on startup and Discord RPC.
[#:phases]<fix-usr-share-paths&data>: Also copy sfl includes.
[inputs]: Add flac, libvorbis, quickjs-ng, sfl-library, and ztsd:lib.
Remove duktape.
Replace nlohmann-json with nlohmann-json-no-char8-t.
[license]: Update comment.

Change-Id: I4a6b2952ba0425b8d25e52af78a0ccc9dcdca64e
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:41:32 +02:00
bdunahu 1f146dc38f gnu: openrct2-title-sequences: Update to 0.4.26.
* gnu/packages/games.scm (openrct2-title-sequences): Update to 0.4.26.
[source]: Adjust uri accordingly.

Change-Id: I55b2e7bbb4abc436e390ff89ae2be42613eeab36
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:41:13 +02:00
bdunahu 89d9027f18 gnu: openrct2-objects: Update to 1.7.9.
* gnu/packages/games.scm (openrct2-objects): Update to 1.7.9.

Change-Id: I24d33b3e1f804fb633ed903c8356cf03a93e7b41
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:41:11 +02:00
bdunahu c32a2a2e5d gnu: openrct2-title-sequences: Modernize package declaration.
* gnu/packages/games.scm (openrct2-title-sequences)[source]: Split uri to respect line size limit.
[build-system]: Switch to copy-build-system.
[native-inputs]: Remove bash and coreutils.  Remove input labels.
[homepage]: Use “https://openrct2.io”.

Change-Id: I66171fb3e594f27150d656edc1fc815a2d024ac7
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:40:50 +02:00
bdunahu e02071dae1 gnu: openrct2-objects: Modernize package declaration.
* gnu/packages/games.scm (openrct2-objects)[source]: Split uri to respect line size limit.
[build-system]: Switch to copy-build-system
[native-inputs]: Remove bash and coreutils.  Remove input labels.
[homepage]: Use “https://openrct2.io”

Change-Id: Id0477bde171420676a2f99c68a09f27b4bec5797
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:40:46 +02:00
bdunahu 255921621b gnu: openrct2: Modernize package declaration.
* gnu/packages/games.scm (openrct2)[arguments]: Change to list of
G-Expressions.
<#:phases>: Remove trailing #t.  Use #$output to refer to outputs.
[inputs]: Remove input labels.
[homepage]: Use “https://openrct2.io”.

Change-Id: I8b47d345cd82718d1a2bd40009c480aca7c2c5b3
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:40:44 +02:00
bdunahu 0853a1671f gnu: Add nlohmann-json-no-char8-t.
* gnu/packages/patches/nlohmann_json_fix_char8_t.patch: New file.
* gnu/local.mk: (dist_patch_DATA): Register it.
* gnu/packages/cpp.scm (nlohmann-json-no-char8-t): New variable.

Change-Id: I8b47d345cd82718d1a2bd40009c480aca7c2c5b3
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:40:42 +02:00
bdunahu 54d29defe0 gnu: Add sfl-library.
* gnu/packages/cpp.scm (sfl-library): New variable.

Change-Id: I4c4d054c2cc9fadd1c57996296e382f72ed84864
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-29 20:40:41 +02:00
Charles Roelli 42ab6a3899 gnu: Update default prometheus-node-exporter-configuration-package.
* gnu/services/monitoring.scm
(prometheus-node-exporter-configuration) [package]: Use the
non-deprecated prometheus-node-exporter package as a default value.

Merges: guix/guix!8935
Change-Id: I39a0c4eb3cf9e8d82ec0dc134c4f5abe40f1bc4d
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 16:41:42 +01:00
Lars Bilke 2c279760e4 gnu: ogs-serial: Update to 6.5.8
* gnu/packages/geo.scm (ogs-serial): Update to 6.5.8.
* gnu/packages/geo.scm (ogs-serial): Remove patch.
* gnu/packages/geo.scm (ogs-serial): Add xdmf input.
* packages/patches/ogs-6.5.7-netcdfconverter.patch: Removed.
* gnu/local.mk: Deregister patch.

Merges: guix/guix!8841
Change-Id: I9b4e502c37ca9470669296d6a038bb1b5e2de8b7
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 16:36:27 +01:00
Lars Bilke fa5a46958f gnu: Add xdmf.
* gnu/packages/math.scm (xdmf): New variable.
* gnu/packages/patches/xdmf-3.0.0-hdf5.patch: Patch for xdmf.
* gnu/local.mk: Register patch.

Relates-to: guix/guix!8841
Change-Id: I0606eaf8f6524f3efe71b442405438e4df070ff7
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 16:36:18 +01:00
orahcio e87c221cd2 gnu: Add whatscli.
* gnu/packages/messaging.scm (whatscli): New variable.

Merges: guix/guix!8655
Change-Id: I2c2f03afc93a538bdaf83424d3186665e9749e13
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:35 +01:00
orahcio a2b4e406b9 gnu: mautrix-whatsapp: Update to 0.2605.0.
* gnu/packages/matrix.scm (mautrix-whatsapp): Update to 0.2605.0.

Relates-to: guix/guix!8655
Change-Id: I39d044b02437d2b63f79e0ad9f19c7434c6acf9b
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:35 +01:00
orahcio 347d83f6b4 gnu: go-go-mau-fi-util: Update to 0.9.9.
* gnu/packages/golang-xyz.scm (go-go-mau-fi-util): Update to 0.9.9.

Relates-to: guix/guix!8655
Change-Id: Ibae7a9301e491c5e9b47937ee04862179ef536d9
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio 50fde0c4f1 gnu: go-maunium-net-go-mautrix: Update to 0.28.0.
* gnu/packages/golang-web.scm (go-maunium-net-go-mautrix): Update to 0.28.0.
[arguments] <test-flags>: Rework skipped tests.
[propagated-inputs]: Remove go-github-com-gorilla-mux and
go-github-com-gorilla-websocket; add go-github-com-coder-websocket, and
olm.
[native-inputs]: olm move to [propagated-inputs].

Relates-to: guix/guix!8655
Change-Id: I1946010f414edb46caa38eb33f034f0e68ee1397
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio 153c2aa234 gnu: go-go-mau-fi-whatsmeow: Update to 0.0.0-20260529101937-a7ea56383ec4.
* gnu/packages/golang-web.scm (go-go-mau-fi-whatsmeow): Update to
0.0.0-20260529101937-a7ea56383ec4.
[propagated-inputs]: Remove go-github-com-gorilla-websocket; add
go-github-com-beeper-argo-go, go-github-com-coder-websocket and
go-golang-org-x-sync.

Relates-to: guix/guix!8655
Change-Id: If0f2e561b68a91e30b5068558077f6d433e3c403
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio dd96fdd983 gnu: go-go-mau-fi-libsignal: Update to 0.2.1.
* gnu/packages/golang-crypto.scm (go-go-mau-fi-libsignal): Update to 0.2.1.

Relates-to: guix/guix!8655
Change-Id: Ie89222a54e530c8336dcc41a30cc57d173669c78
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio c1ad3df229 gnu: Add go-github-com-beeper-argo-go.
* gnu/packages/golang-web.scm (go-github-com-beeper-argo-go): New variable.

Relates-to: guix/guix!8655
Change-Id: Ic53a29ec2659c7d3c8abd8ac59853193212757ee
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio 1099daf023 gnu: Add go-code-rocketnine-space-tslocum-cbind.
* gnu/packages/golang-xyz.scm (go-code-rocketnine-space-tslocum-cbind): New variable.

Relates-to: guix/guix!8655
Change-Id: I72febb98a17fb30372629542ccfbaacd28789dfe
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio c82ff29e50 gnu: Add go-github-com-elliotchance-orderedmap-v3.
* gnu/packages/golang-xyz.scm (go-github-com-elliotchance-orderedmap-v3): New variable.

Relates-to: guix/guix!8655
Change-Id: I67e941a00316d44bed154472fa30dbd7f7388834
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio 9b26838b93 gnu: Add go-github-com-gen2brain-beeep.
* gnu/packages/golang-xyz.scm (go-github-com-gen2brain-beeep): New variable.

Relates-to: guix/guix!8655
Change-Id: Ia67c794b6cf2697710f7dec39ffcaa662c7abdb0
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:34 +01:00
orahcio 7f676b2756 gnu: Add go-github-com-esiqveland-notify.
* gnu/packages/golang-xyz.scm (go-github-com-esiqveland-notify): New variable.

Relates-to: guix/guix!8655
Change-Id: I9711d42925dad3018872e8b5d52de6e3d9daf228
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:33 +01:00
orahcio a011ccb66a gnu: Add go-github-com-jackmordaunt-icns-v3.
* gnu/packages/golang-graphics.scm (go-github-com-jackmordaunt-icns-v3):
New variable.

Relates-to: guix/guix!8655
Change-Id: I306a31ec0ff372b29faa234be760b6cb60d46eff
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:33 +01:00
orahcio beee9fb721 gnu: Add go-github-com-sergeymakinen-go-ico.
* gnu/packages/golang-graphics.scm (go-github-com-sergeymakinen-go-ico):
New variable.

Relates-to: guix/guix!8655
Change-Id: I99edcfb5ab9ea430cbaf6f44547b1d8293da58f0
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:33 +01:00
orahcio 7bb3f86293 gnu: Add go-github-com-sergeymakinen-go-bmp.
* gnu/packages/golang-graphics.scm (go-github-com-sergeymakinen-go-bmp): New variable.

Relates-to: guix/guix!8655
Change-Id: Icfd72c90bdf55258d39632cb39a76384c2887919
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:33 +01:00
orahcio d668bc43ee gnu: Add go-github-com-zyedidia-clipboard.
* gnu/packages/golang-xyz.scm (go-github-com-zyedidia-clipboard): New variable.

Relates-to: guix/guix!8655
Change-Id: Ie9360b3944464cc6026794f09acccaaf562797da
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 15:51:31 +01:00
jgart a500ce3177 gnu: trealla: Update to 2.100.25.
* gnu/packages/prolog.scm (trealla): Update to 2.100.25.

Change-Id: Ie39bfe037c19902198b2ab066f6c36c5913e73d8
2026-05-29 10:27:37 -04:00
luca 77eb5a4a3c gnu: thunar: Update to 4.20.8.
* gnu/packages.xfce.scm (thunar): Update to 4.20.8.

Merges: guix/guix!8937
Change-Id: I0e95410bf2cc6548496170e17eb4ebc9f1ff16d0
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2026-05-29 20:32:45 +08:00
Andreas Enge a7d4c7fe4b gnu: thunarx-python: Fix build.
* gnu/packages/xfce.scm (thunarx-python)[native-inputs]: Add
python-setuptools.

Merges: guix/guix!8931
Change-Id: Id3ebf04ce0a03b58e880bd1f0993c0a71e50f93c
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2026-05-29 20:32:45 +08:00
Josep Bigorra 7134d139d4 gnu: Add guile-scriba.
* gnu/packages/guile-xyz.scm (guile-scriba): New variable.

Change-Id: I7ed365dedb307a8619b54f9978e135e0214a90bc
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8868
2026-05-29 14:28:29 +02:00
Josep Bigorra 9591ab8c99 gnu: guile-veritas: Update to 0.3.0.
* gnu/packages/guile-xyz.scm (guile-veritas): Update to 0.3.0.

- Added guile-json-4 to propagated-inputs

add forgotten dependency

Change-Id: I9c9e195657217ebae4b5b4b00e96c6a728263a49
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8815
2026-05-29 14:27:34 +02:00
Herman Rimm 4514f4cf19 scripts: lint: Add 'whole-file' option with ordering checker.
* guix/scripts/lint.scm (show-help): Describe option.
(%options): Add 'whole-file' option.
(guix-lint): Run checkers on packages defined in files.
* doc/guix.texi (Invoking guix lint): Document option.
* tests/guix-lint.sh: Define unordered package and invoke new option.

Change-Id: I52b48a9a6982d0c4a03416e3d070887c64716485
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8796
2026-05-29 14:23:28 +02:00
Herman Rimm 1d3d136bb0 guix: Move ‘package-location<?’ to (guix packages).
* guix/scripts/style.scm (package-location<?): Move to…
* guix/packages.scm (package-location<?): … here.

Change-Id: I8ebb37c261a1bb3fa5772177b27fd62a2553e318
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-29 14:23:28 +02:00
Sergio Pastor Pérez b7a618f9f2 gnu: tensile: Set executable permissions for Tensile Python scripts.
* gnu/packages/rocm-libs.scm (tensile): Set executable permissions for Tensile
Python scripts.

Fixes: guix/guix#8553

Change-Id: I29c07898877325af5fd8f448e74ef8ea7111a640
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8845
2026-05-29 14:17:27 +02:00
Ricardo Wurmus 33acdbdfb1 gnu: pigx-chipseq: Use latest Snakemake.
* gnu/packages/bioinformatics.scm (pigx-chipseq)[inputs]: Replace
snakemake-7 with snakemake.

Change-Id: I2b12fce7ed04be71643ae4b72931a123bbc63b36
2026-05-29 12:03:06 +02:00
Ricardo Wurmus ce49115168 gnu: pigx-bsseq: Update to 0.1.10-0.1b3a69b.
* gnu/packages/bioinformatics.scm (pigx-bsseq): Update to 0.1.10-0.1b3a69b.
[source]: Fetch git repository.
[arguments]: Add phase 'delete-GNUmakefile.
[native-inputs]: Add autoconf and automake.

Change-Id: I1be72e1016b57c0bc576de689a2edcc31a101d1e
2026-05-29 12:03:06 +02:00
Ricardo Wurmus 8be76ae944 gnu: pigx-sars-cov-2: Use latest Snakemake.
* gnu/packages/bioinformatics.scm (pigx-sars-cov-2)[inputs]: Replace
snakemake-7 with snakemake.

Change-Id: I3cd53aa84a3b49b4eabea2b93e40095d5ee957b6
2026-05-29 12:03:05 +02:00
Anderson Torres 72d813155f gnu: Add let-go.
* gnu/packages/clojure.scm (let-go): New variable.

Merges: guix/guix!8619
Change-Id: I7e2ba76758a16a6a60040582b07cca8d9c70833a
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 10:18:59 +01:00
Anderson Torres decfac5d56 gnu: clojure.scm: Reorder #:use-module directives alphabetically.
* gnu/packages/clojure.scm: Reorder #:use-module directives alphabetically.

Relates-to: guix/guix!8619
Change-Id: I2c73c5fd9902cff2222964b375544f42f711be5a
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 10:18:59 +01:00
Anderson Torres 7519fe23c0 gnu: Add go-github-com-zeebo-bencode.
* gnu/packages/golang-xyz.scm (go-github-com-zeebo-bencode): New variable.

Relates-to: guix/guix!8619
Change-Id: I43b6841b81f99afa1417367715cb492e4d34acb6
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-29 10:18:59 +01:00
Anderson Torres 01d66eb90b gnu: Add go-github-com-alimpfard-line.
* gnu/packages/golang-xyz.scm (go-github-com-alimpfard-line): New variable.

Relates-to: guix/guix!8619
Change-Id: I60ea28e595c1ae80db635449abcd360ca6cd6a8c
2026-05-29 10:18:59 +01:00
84 changed files with 4105 additions and 1691 deletions
+29 -69
View File
@@ -77,7 +77,7 @@ Copyright @copyright{} 2020 Damien Cassou@*
Copyright @copyright{} 2020 Jakub Kądziołka@*
Copyright @copyright{} 2020 Jack Hill@*
Copyright @copyright{} 2020 Naga Malleswari@*
Copyright @copyright{} 2020, 2021, 2025 Brice Waegeneire@*
Copyright @copyright{} 2020, 2021 Brice Waegeneire@*
Copyright @copyright{} 2020 R Veera Kumar@*
Copyright @copyright{} 2020, 2021, 2022 Pierre Langlois@*
Copyright @copyright{} 2020 pinoaffe@*
@@ -124,7 +124,7 @@ Copyright @copyright{} 2023 Thomas Ieong@*
Copyright @copyright{} 2023 Saku Laesvuori@*
Copyright @copyright{} 2023 Graham James Addis@*
Copyright @copyright{} 2023-2025 Tomas Volf@*
Copyright @copyright{} 2024, 2025 Herman Rimm@*
Copyright @copyright{} 2024-2026 Herman Rimm@*
Copyright @copyright{} 2024 Matthew Trzcinski@*
Copyright @copyright{} 2024 Richard Sent@*
Copyright @copyright{} 2024 Dariqq@*
@@ -16124,6 +16124,10 @@ the tag name for separating the numbers of the version.
pre-releases; to make it also look for pre-releases, set the this
property to @code{#t}.
@item @code{stable-version-regexp}: a regular expression for matching the
version string, if specified the updater will pick the latest version from
matching ones when the @option{--target-version} option is omitted.
@end itemize
@lisp
@@ -16710,6 +16714,12 @@ guix lint @var{options} @var{package}@dots{}
@end example
If no package is given on the command line, then all packages are checked.
To check packages in particular source files, the syntax is:
@example
guix lint @var{options} --whole-file @var{file}@dots{}
@end example
The @var{options} may be zero or more of the following:
@table @code
@@ -16747,9 +16757,23 @@ Only enable the checkers that do not depend on Internet access.
Add @var{directory} to the front of the package module search path
(@pxref{Package Modules}).
This allows users to define their own packages and make them visible to
the command-line tools.
@item --whole-file
@itemx -f
Check the top-level package definitions in the given files; subsequent
arguments are treated as file names rather than package names. This
option also enables a special checker which checks if a package
alphabetically succeeds the one above it.
For example, to check if the packages in @file{gnu/packages/matrix.scm}
are sorted alphabetically, and if the package names therein follow
established conventions, run:
@example
guix lint -c name -f gnu/packages/matrix.scm
@end example
The previous two options allow users to define their own packages and
make them visible to the command-line tools.
@end table
@node Invoking guix size
@@ -52979,8 +53003,7 @@ subset of applications. This field will be ignored if @code{layout} is set
to @code{'plain}.
@item @code{excluded} (default: @code{'(".*~" ".*\\.swp" "/\\.git/.*" "\\.gitignore")}) (type: list-of-strings)
The list of file patterns (including directories)
@code{home-dotfiles-service-type} will exclude
The list of file patterns @code{home-dotfiles-service-type} will exclude
while visiting each one of the @code{directories}.
@end table
@@ -54396,69 +54419,6 @@ Where the service will write its logs. If unset, it defaults to
@end table
@end deftp
@node XDG Home Services
@subsection XDG Home Services
The @code{(gnu home services xdg)} module provides services related to
XDG specifications for the desktop.
@subsubheading XDG User Directories
@defvar{home-xdg-user-directories-service-type}
This service sets the names of default user directories such as
@samp{Downloads} and @samp{Documents}. These settings are respected by
most applications via @var{xdg-user-dirs}.
To disable a directory, set it to @code{"$HOME"}.
@end defvar
@c %start of fragment
@deftp {Data Type} home-xdg-user-directories-configuration
Available @code{home-xdg-user-directories-configuration} fields are:
@table @asis
@item @code{desktop} (default: @code{"$HOME/Desktop"}) (type: string)
Default @samp{Desktop} directory, this is what you see on your
background when using a desktop environment, e.g. KDE.
@item @code{documents} (default: @code{"$HOME/Documents"}) (type: string)
Default directory to put documents like PDFs.
@item @code{download} (default: @code{"$HOME/Downloads"}) (type: string)
Default directory downloaded files, this is where your Web-broser will
put downloaded files in.
@item @code{music} (default: @code{"$HOME/Music"}) (type: string)
Default directory for audio files.
@item @code{pictures} (default: @code{"$HOME/Pictures"}) (type: string)
Default directory for pictures and images.
@item @code{projects} (default: @code{"$HOME/Projects"}) (type: string)
Default directory for projects.
@item @code{publicshare} (default: @code{"$HOME/Public"}) (type: string)
Default directory for shared files, which can be accessed by other users
on local machine or via network.
@item @code{templates} (default: @code{"$HOME/Templates"}) (type: string)
Default directory for templates. They can be used by graphical file
manager or other apps for creating new files with some pre-populated
content.
@item @code{videos} (default: @code{"$HOME/Videos"}) (type: string)
Default directory for videos.
@end table
@end deftp
@c %end of fragment
@node Guix Home Services
@subsection Guix Home Services
+3 -7
View File
@@ -1,7 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2024, 2026 Giacomo Leidi <therewasa@fishinthecalculator.me>
;;; Copyright © 2025 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -127,21 +126,18 @@ user's home directory, excluding files that match any of the patterns in EXCLUDE
(define (home-dotfiles-configuration->files config)
"Return a list of objects compatible with @code{home-files-service-type}'s
value, excluding files and directories that match any of the patterns configured."
value, excluding files that match any of the patterns configured."
(define stow? (eq? (home-dotfiles-configuration-layout config) 'stow))
(define excluded
(home-dotfiles-configuration-excluded config))
(define exclusion-rx
(make-regexp (string-append "^.*(" (string-join excluded "|") ")$")))
(define* (excluded-file? file stat #:optional result)
(not (regexp-exec exclusion-rx file)))
(define* (directory-contents directory #:key (packages #f))
(define (filter-files directory)
(find-files directory
excluded-file?
#:enter?
excluded-file?))
(lambda (file stat)
(not (regexp-exec exclusion-rx file)))))
(if (and stow? packages (maybe-value-set? packages))
(append-map filter-files
(map (lambda (pkg)
+3 -5
View File
@@ -204,8 +204,9 @@ for example).")))
(define-configuration home-xdg-user-directories-configuration
(desktop
(string "$HOME/Desktop")
"Default @samp{Desktop} directory, this is what you see on your background
when using a desktop environment, e.g. KDE.")
"Default ``desktop'' directory, this is what you see on your
desktop when using a desktop environment,
e.g. GNOME (@pxref{XWindow,,,guix.info}).")
(documents
(string "$HOME/Documents")
"Default directory to put documents like PDFs.")
@@ -219,9 +220,6 @@ will put downloaded files in.")
(pictures
(string "$HOME/Pictures")
"Default directory for pictures and images.")
(projects
(string "$HOME/Projects")
"Default directory for projects.")
(publicshare
(string "$HOME/Public")
"Default directory for shared files, which can be accessed by other
+5 -1
View File
@@ -1174,6 +1174,7 @@ dist_patch_DATA = \
%D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/cups-relax-root-ownership-check.patch \
%D%/packages/patches/cura-engine-gcc-14.patch \
%D%/packages/patches/curl-CVE-2024-8096.patch \
%D%/packages/patches/curl-use-ssl-cert-env.patch \
%D%/packages/patches/curlftpfs-fix-error-closing-file.patch \
%D%/packages/patches/curlftpfs-fix-file-names.patch \
@@ -1831,6 +1832,7 @@ dist_patch_DATA = \
%D%/packages/patches/libtgvoip-disable-webrtc.patch \
%D%/packages/patches/libtheora-config-guess.patch \
%D%/packages/patches/libtiff-CVE-2022-34526.patch \
%D%/packages/patches/libtirpc-CVE-2021-46828.patch \
%D%/packages/patches/libtirpc-hurd.patch \
%D%/packages/patches/libtool-grep-compat.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
@@ -1991,6 +1993,7 @@ dist_patch_DATA = \
%D%/packages/patches/nhc98-c-update.patch \
%D%/packages/patches/nheko-0-12-1-fix-rendering-replies.patch \
%D%/packages/patches/nix-dont-build-html-doc.diff \
%D%/packages/patches/nlohmann_json_fix_char8_t.patch \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/neovim-tree-sitter-grammar-path.patch \
%D%/packages/patches/network-manager-plugin-ownership.patch \
@@ -2003,6 +2006,7 @@ dist_patch_DATA = \
%D%/packages/patches/nss-getcwd-nonnull.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-3.56-pkgconfig.patch \
%D%/packages/patches/nss-disable-broken-tests.patch \
%D%/packages/patches/nss-3.115-disable-broken-tests.patch \
%D%/packages/patches/nss-3.115-disable-pkix-ocsp-tests.patch \
%D%/packages/patches/ntp-fix-dereferencing-the-wrong-variable.patch \
@@ -2020,7 +2024,6 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-4.07-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-multiple-definitions.patch \
%D%/packages/patches/ogs-6.5.7-netcdfconverter.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/oneko-remove-nonfree-characters.patch \
%D%/packages/patches/onetbb-other-arches.patch \
@@ -2625,6 +2628,7 @@ dist_patch_DATA = \
%D%/packages/patches/x265-arm-flags.patch \
%D%/packages/patches/x265-4-arm-flags.patch \
%D%/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch\
%D%/packages/patches/xdmf-3.0.0-hdf5.patch \
%D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
%D%/packages/patches/xfig-Enable-error-message-for-missing-libraries.patch \
%D%/packages/patches/xfig-Fix-double-free-when-requesting-MediaBox.patch \
+2 -2
View File
@@ -52,7 +52,7 @@
(define-public aspell
(package
(name "aspell")
(version "0.60.8.2")
(version "0.60.8.1")
(source
(origin
(method url-fetch)
@@ -60,7 +60,7 @@
version ".tar.gz"))
(sha256
(base32
"06b9szgm9cj1zh58r7sbl5fbi3vi9fs7b1as4ir8y176x9ilizjp"))
"06yjhwlgpcvbrl5g83qjrpzjwjx7hka5lhsfc3x5gm229nri5nnn"))
(patches (search-patches "aspell-default-dict-dir.patch"))))
(build-system gnu-build-system)
(arguments
+3 -1
View File
@@ -276,7 +276,9 @@ has strong support for macros.")
'(#:parallel-tests? #f)) ; Some tests fail
; non-deterministically when run in
; parallel
(inputs (list python-wrapper xmlto))
(inputs
`(("python" ,python-wrapper)
("xmlto" ,xmlto)))
(home-page "https://yasm.tortall.net/")
(synopsis "Rewrite of the NASM assembler")
(description
+10 -1
View File
@@ -1858,9 +1858,18 @@ R. Seaman's protocol}
(file-name (git-file-name name version))
(sha256
(base32 "0n2jzlpwvjgj8ydg7hsqxnvy8s9pdi5z96id0231kgi87pyfkh7s"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "thirdparty" "thirdparty.cmake")))))
(build-system cmake-build-system)
(arguments
+17 -17
View File
@@ -98,24 +98,24 @@
(cut patch-shebang <> path)
(find-files (string-append #$output "/etc/avahi"))))))))
(inputs
(cons* bash-minimal
dbus
expat
gdbm
glib
libdaemon
libevent
;; Do not use libcap when cross-compiling since it's not quite
;; cross-compilable; and use it only for supported systems.
(if (and (not (%current-target-system))
(member (%current-system)
(package-supported-systems libcap)))
(list libcap) ;to enable chroot support in avahi-daemon
(list))))
`(("bash-minimal" ,bash-minimal)
("dbus" ,dbus)
("expat" ,expat)
("gdbm" ,gdbm)
("glib" ,glib)
;; Do not use libcap when cross-compiling since it's not quite
;; cross-compilable; and use it only for supported systems.
,@(if (and (not (%current-target-system))
(member (%current-system)
(package-supported-systems libcap)))
`(("libcap" ,libcap)) ;to enable chroot support in avahi-daemon
'())
("libdaemon" ,libdaemon)
("libevent" ,libevent)))
(native-inputs
(list gettext-minimal
(list glib "bin")
pkg-config))
`(("gettext" ,gettext-minimal)
("glib" ,glib "bin")
("pkg-config" ,pkg-config)))
(synopsis "Implementation of mDNS/DNS-SD protocols")
(description
"Avahi is a system which facilitates service discovery on a local
+91 -77
View File
@@ -3864,13 +3864,20 @@ familiar to anyone with experience of scikit-learn or scipy.")
(file-name (git-file-name name version))
(sha256
(base32 "0hznpj15kx2sla16wlmcqz21n2vi2qb1493v30vz75hnm1m4iwm1"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)))
(snippet
#~(begin
;; Delete everything except for examples directory:
(delete-all-but ".""pysnptools" "tests")
(delete-all-but "pysnptools" "examples")
(delete-all-but "tests" "datasets"))))))
(define (delete-except exceptions)
(lambda (file)
(unless (member file `("." ".." ,@exceptions))
(delete-file-recursively file))))
(for-each (delete-except '("pysnptools" "tests")) (scandir "."))
(with-directory-excursion "pysnptools"
(for-each (delete-except '("examples")) (scandir ".")))
(with-directory-excursion "tests"
(for-each (delete-except '("datasets")) (scandir "."))))))))
(define-public python-pysnptools
(package
@@ -17995,7 +18002,7 @@ expression report comparing samples in an easily configurable manner.")
fastqc
bowtie
idr
snakemake-7
snakemake
samtools
bedtools
kentutils))
@@ -18013,80 +18020,87 @@ in an easily configurable manner.")
(license license:gpl3+)))
(define-public pigx-bsseq
(package
(name "pigx-bsseq")
(version "0.1.10")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
"releases/download/v" version
"/pigx_bsseq-" version ".tar.gz"))
(sha256
(base32
"1vy3mhbrfdnjbhikwg3mgkfnwnzk96a1n27cxrr7gsffpmz9q6wa"))))
(build-system gnu-build-system)
(arguments
(list
;; TODO: tests currently require 12+GB of RAM. See
;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
#:tests? #f
#:phases
'(modify-phases %standard-phases
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone
;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys)
(setenv "TZ" "UTC+1")
(setenv "TZDIR"
(search-input-directory inputs
"share/zoneinfo"))))
(add-before 'check 'pre-check
(lambda _
;; Needed for tests
(setenv "HOME" "/tmp"))))))
(native-inputs
(list tzdata-for-tests))
(inputs
(list coreutils
sed
grep
r-minimal
r-annotationhub
r-dt
r-genomation
r-ggbio
r-ggrepel
r-matrixstats
r-methylkit
r-reshape2
r-rtracklayer
r-rmarkdown
r-bookdown
r-ggplot2
r-ggbio
pandoc
python-wrapper
python-pyyaml
snakemake-7
bismark
bowtie
bwa-meth
fastqc
methyldackel
multiqc
trim-galore
cutadapt
samblaster
samtools))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/")
(synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
(description "PiGx BSseq is a data processing pipeline for raw fastq read
(let ((commit "1b3a69bd5363fa882af4193215de7fb475bae066"))
(package
(name "pigx-bsseq")
(version (git-version "0.1.10" "0" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/BIMSBbioinfo/pigx_bsseq/")
(commit commit)
(recursive? #true)))
(file-name (git-file-name name version))
(sha256
(base32
"0r0gjfycgh1hqba7ma03bwxlvr2kz68yzclx5iba3wrxxqmivil6"))))
(build-system gnu-build-system)
(arguments
(list
;; TODO: tests currently require 12+GB of RAM. See
;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
#:tests? #f
#:phases
'(modify-phases %standard-phases
;; This file is meant for development, but it interferes with
;; Makefile.
(add-after 'unpack 'delete-GNUmakefile
(lambda _ (delete-file "GNUmakefile")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone
;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys)
(setenv "TZ" "UTC+1")
(setenv "TZDIR"
(search-input-directory inputs
"share/zoneinfo"))))
(add-before 'check 'pre-check
(lambda _
;; Needed for tests
(setenv "HOME" "/tmp"))))))
(native-inputs
(list tzdata-for-tests autoconf automake))
(inputs
(list coreutils
sed
grep
r-minimal
r-annotationhub
r-dt
r-genomation
r-ggbio
r-ggrepel
r-matrixstats
r-methylkit
r-reshape2
r-rtracklayer
r-rmarkdown
r-bookdown
r-ggplot2
r-ggbio
pandoc
python-wrapper
python-pyyaml
snakemake
bismark
bowtie
bwa-meth
fastqc
methyldackel
multiqc
trim-galore
cutadapt
samblaster
samtools))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/")
(synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
(description "PiGx BSseq is a data processing pipeline for raw fastq read
data of bisulfite experiments; it produces reports on aggregate methylation
and coverage and can be used to produce information on differential
methylation and segmentation.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public pigx-scrnaseq
(package
@@ -18259,7 +18273,7 @@ based methods.")
r-tidyr
r-viridis
samtools
snakemake-7
snakemake
wget))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/")
(synopsis "Analysis pipeline for wastewater sequencing")
+3 -4
View File
@@ -271,8 +271,7 @@ across a broad spectrum of applications.")
"0yrgn6syk260ckq9ld44vjv1bl6bamhy3jbp10kikcipcv0d5na6"))))))
(define-public boost-1.83
(package
(inherit boost)
(hidden-package (package (inherit boost)
(name "boost")
(version "1.83.0")
(source (origin
@@ -283,7 +282,7 @@ across a broad spectrum of applications.")
(patches
(list (boost-patch
"0001-unordered-fix-copy-assign.patch" version
"0l520lqh2vxdlyzvpki6hy2ylqimag8v18n2sdbmliifxiiha4gl")))
"09j61m5xh7099k5na9i43x5rra51znf7vm2nyh89yqpizcll9q66")))
(patch-flags '("-p2"))
(sha256
(base32
@@ -313,7 +312,7 @@ across a broad spectrum of applications.")
(else
#~())))
;; Not cross-compiling.
#~())))))))
#~()))))))))
(define-deprecated-package boost-with-python3
boost)
+2 -1
View File
@@ -1139,7 +1139,8 @@ Anything Protocol} compliant programs can also be executed through Kyua.")
(arguments
`(#:tests? #f
#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
(native-inputs (list python-wrapper))
(native-inputs
`(("python" ,python-wrapper)))
(home-page "https://github.com/google/googletest/")
(synopsis "Test discovery and XUnit test framework")
(description "Google Test features an XUnit test framework, automated test
+95 -47
View File
@@ -20,65 +20,113 @@
(define-module (gnu packages chicken)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system chicken)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module ((guix licenses)
#:prefix license:))
#:prefix license:)
#:use-module (srfi srfi-1))
;; This package is build from pre-built C source code, provided in the CHICKEN
;; release tarball. Based on this bootstrap compiler, we build CHICKEN from
;; the Scheme source, thus enabling us to (at least) patch it.
;;
;; See <https://issues.guix.gnu.org/22366>.
(define-public chicken-bootstrap
(hidden-package
(package
(name "chicken-bootstrap")
(version "5.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://code.call-cc.org/releases/"
version "/chicken-" version ".tar.gz"))
(sha256
(base32
"0pzcrnzkjw2sa44vy59wbygvlc3nva8zisprkdnvyrqi3jk4lp9w"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
;; No `configure' script; run "make check" after "make install" as
;; prescribed by README.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(add-after 'install 'check
(assoc-ref %standard-phases 'check)))
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list "PLATFORM=linux"
(string-append "PREFIX=" out)
(string-append "VARDIR=" out "/var/lib")))
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
(native-search-paths
(list (search-path-specification
(variable "CHICKEN_REPOSITORY_PATH")
;; TODO extract binary version into a module level definition.
(files (list "var/lib/chicken/11")))))
;; Reference gcc-toolchain lazily to avoid circular module dependency
;; problems.
(propagated-inputs (list (module-ref (resolve-interface
'(gnu packages commencement))
'gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
(description
"CHICKEN is a compiler for the Scheme programming language. CHICKEN
pr oduces portable and efficient C, supports almost all of the R5RS Scheme
la nguage standard, and includes many enhancements and extensions.")
(license license:bsd-3))))
;; The CHICKEN compiler is itself written in CHICKEN, the CHICKEN release
;; tarballs includes auto-generated C code to mitigate the compiler
;; bootstrapping problem. To be able to patch the original Scheme source,
;; we compile from this Scheme source here using the chicken-bootstrap
;; compiler obtained from the autogenerated C code.
;;
;; See <https://issues.guix.gnu.org/22366>.
(define-public chicken
(package
(inherit chicken-bootstrap)
(name "chicken")
(version "5.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://code.call-cc.org/releases/"
version "/chicken-" version ".tar.gz"))
(sha256
(base32
"0pzcrnzkjw2sa44vy59wbygvlc3nva8zisprkdnvyrqi3jk4lp9w"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
;; No `configure' script; run "make check" after "make install" as
;; prescribed by README.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(add-after 'install 'check
(assoc-ref %standard-phases 'check)))
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list "PLATFORM=linux"
(string-append "PREFIX=" out)
(string-append "VARDIR=" out "/var/lib")))
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
(native-search-paths
(list (search-path-specification
(variable "CHICKEN_REPOSITORY_PATH")
;; TODO extract binary version into a module level definition.
(files (list "var/lib/chicken/11")))))
;; Reference gcc-toolchain lazily to avoid circular module dependency
;; problems.
(propagated-inputs (list (module-ref (resolve-interface
'(gnu packages commencement))
'gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
(description
"CHICKEN is a compiler for the Scheme programming language. CHICKEN
produces portable and efficient C, supports almost all of the R5RS Scheme
language standard, and includes many enhancements and extensions.")
(license license:bsd-3)))
(substitute-keyword-arguments (package-arguments chicken-bootstrap)
((#:phases phases)
#~(modify-phases #$phases
;; CHICKEN contains auto-generated C code, remove it and
;; compile from the Scheme source using chicken-bootstrap.
(add-after 'unpack 'remove-auto-generated-code
(lambda _
(invoke "make" "spotless")))
;; Invoke commands by name, not by path.
;;
;; See <https://codeberg.org/guix/guix/issues/8471>.
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((sh (search-input-file inputs "/bin/sh"))
(cp (search-input-file inputs "/bin/cp")))
(substitute* "egg-compile.scm"
(("/bin/sh") sh)
(("\"cp\"") (string-append "\"" cp "\"")))
(substitute* "posixunix.scm"
(("/bin/sh") sh))
(substitute* "chicken-install.scm"
(("\"sh \"") (string-append "\"" sh " \""))))))))))
(inputs (list chicken-bootstrap))
(properties
(alist-delete 'hidden? (package-properties chicken-bootstrap)))))
(define-public chicken-compile-file
(package
+53 -7
View File
@@ -23,19 +23,24 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages clojure)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages golang)
#:use-module (gnu packages guile)
#:use-module (gnu packages java)
#:use-module (gnu packages maven)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (gnu packages)
#:use-module (guix build-system ant)
#:use-module (guix build-system clojure)
#:use-module (guix build-system copy)
#:use-module (guix build-system clojure))
#:use-module (guix build-system go)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public clojure-spec-alpha
(package
@@ -1253,3 +1258,44 @@ an operation on the service. invoke takes a map and returns a map, and works
the same way for every operation on every service.")
(home-page "https://github.com/cognitect-labs/aws-api")
(license license:asl2.0)))
(define-public let-go
(package
(name "let-go")
(version "1.7.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nooga/let-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "139a129fw3w9a4bcfgms60ll90vy2vmqinbmjn44zmgx4fr2adif"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.26
#:install-source? #f
#:import-path "github.com/nooga/let-go"))
(native-inputs
(list go-github-com-davecgh-go-spew
go-github-com-alimpfard-line
go-github-com-hashicorp-go-uuid
go-github-com-kr-pretty
go-github-com-pmezard-go-difflib
go-github-com-stretchr-testify
go-github-com-zeebo-bencode
go-golang-org-x-sys
go-gopkg-in-check-v1
go-gopkg-in-yaml-v3))
(home-page "https://nooga.github.io/let-go")
(synopsis "Clojure dialect written in Go")
(description
"let-go is a Clojure dialect with a bytecode compiler and a stack virtual
machine, written in the Go programming language.
It is not a drop-in replacement for Clojure JVM. It does not load JARs and
does not aim to. Most idiomatic Clojure code runs unmodified, but a real
project with library dependencies will need adjustments.")
(license license:expat)))
+31
View File
@@ -42,6 +42,7 @@
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024, 2025 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2026 Jake Forster <jakecameron.forster@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3191,3 +3192,33 @@ exported by the zlib library.")
ratio at the cost of high CPU/memory usage.")
(home-page "https://github.com/byronknoll/cmix")
(license license:gpl3)))
(define-public zlib-ng
(package
(name "zlib-ng")
(version "2.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zlib-ng/zlib-ng")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0g4pxy7gc1slw9n6j583hzps32mml30f08gmmg1adsq4y3dl2cny"))))
(build-system cmake-build-system)
(native-inputs (list googletest))
(home-page "https://github.com/zlib-ng/zlib-ng")
(synopsis "Fork of the zlib data compression library")
(description
"zlib-ng is a @code{zlib} replacement with optimizations for next
generation systems.")
(license license:zlib)))
(define-public zlib-ng-compat
(package/inherit zlib-ng
(name "zlib-ng-compat")
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags #~(list))
#~(cons "-DZLIB_COMPAT=ON" #$flags))))))
+67
View File
@@ -53,6 +53,7 @@
;;; Copyright © 2025 Murilo <murilo@disroot.org>
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2026 Daniel Littlewood <dan@danielittlewood.xyz>
;;; Copyright © 2026 bdunahu <bdunahu@operationnull.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1433,6 +1434,9 @@ data transfer object.")
(define-public nlohmann-json
(package
(name "nlohmann-json")
;; XXX: Merge related package `nlohmann-json-no-char8-t' back into here when
;; updating from 3.12.0, as the unique patch it applies will already be
;; incorporated in.
(version "3.12.0")
(home-page "https://github.com/nlohmann/json")
(source
@@ -1506,6 +1510,46 @@ intuitive syntax and trivial integration.")
(define-deprecated-package json-modern-cxx
nlohmann-json)
(define-public nlohmann-json-no-char8-t
(package
;; XXX: Version 3.12.0 does not work without char8_t support.
;; OpenRCT2 compiles with -fno-char8_t, and thus requires this patch.
;; See https://github.com/nlohmann/json/pull/4736
(inherit nlohmann-json)
(name "nlohmann-json-no-char8-t")
(version "3.12.0")
(source
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/nlohmann/json")
(commit (string-append "v" version))))
(sha256
(base32 "09nqq56ighr3lghhn3fs399lkllghz717j0xyp87x0giw86ayh3h"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
#~(begin
;; Delete bundled software. Preserve doctest_compatibility.h, which
;; is a wrapper library added by this package.
(install-file "./tests/thirdparty/doctest/doctest_compatibility.h"
"/tmp")
(delete-file-recursively "./tests/thirdparty")
(install-file "/tmp/doctest_compatibility.h"
"./tests/thirdparty/doctest")
;; Adjust for the unbundled fifo_map and doctest.
(substitute* (find-files "./tests/" "\\.h(pp)?")
(("#include \"doctest\\.h\"") "#include <doctest/doctest.h>")
(("#include <doctest\\.h>") "#include <doctest/doctest.h>"))
(with-directory-excursion "tests/src"
(let ((files (find-files "." "\\.cpp$")))
(substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))))
(patches
(search-patches "nlohmann_json_fix_char8_t.patch"))))))
(define-public jthread
(let ((commit "0fa8d394254886c555d6faccd0a3de819b7d47f8")
(revision "0"))
@@ -4480,6 +4524,29 @@ file name and location, as well as filters with friendly names (such as
"This package provides a simple S-Expression parser for C++.")
(license license:gpl3+))))
(define-public sfl-library
(package
(name "sfl-library")
(version "2.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/slavenf/sfl-library")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ngy86b9y1b8a4j37c14m1jrg0q5b12jj8b0gdnpl5sjb1r2fljk"))))
(build-system cmake-build-system)
(arguments (list #:tests? #f)) ;no tests
(home-page "https://github.com/slavenf/sfl-library")
(synopsis "Header-only C++11/20 container library")
(description "sfl-library provides many STL-like (Standard Template Library)
containers including vectors, associative containers, and unordered containers
based on hash tables. These containers are designed for C++11 and C++20
constant expression usage.")
(license license:zlib)))
(define-public string-view-lite
(package
(name "string-view-lite")
+34 -26
View File
@@ -68,15 +68,16 @@
(define-public curl
(package
(name "curl")
(version "8.20.0")
(version "8.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://curl.se/download/curl-"
version ".tar.xz"))
(sha256
(base32
"15mqw8y9vdxlz9cpr2z7q9r6552wgs7q7vr2k7lfl35s930jvzk3"))
(patches (search-patches "curl-use-ssl-cert-env.patch"))))
"05fv468yjrb7qwrxmfprxkrcckbkij0myql0vwwnalgr3bcmbk9w"))
(patches (search-patches "curl-use-ssl-cert-env.patch"
"curl-CVE-2024-8096.patch"))))
(outputs '("out"
"doc")) ;1.2 MiB of man3 pages
(build-system gnu-build-system)
@@ -105,20 +106,36 @@
(mkdir-p (string-append #$output:doc "/share/man"))
(rename-file (string-append #$output "/share/man/man3")
(string-append #$output:doc "/share/man/man3"))))
(add-after 'unpack 'patch-runtests
(lambda _
(replace 'check
(lambda* (#:key tests? parallel-tests? make-flags #:allow-other-keys)
(substitute* "tests/runtests.pl"
(("/bin/sh") (which "sh")))))
#$@(if (or (target-arm32?)
(target-aarch64?))
#~((add-after 'unpack 'skip-tests
(lambda _
(let ((port (open-file "tests/data/DISABLED" "a")))
(display "1474\n" port)
(close port)))))
#~())
(("/bin/sh") (which "sh")))
(when tests?
(let* ((job-count (string-append
"-j"
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
;; Ignore test 1477 due to a missing file in the 8.5.0
;; release. See
;; <https://github.com/curl/curl/issues/12462>.
(arguments `("-C" "tests" "test"
,@make-flags
,(if #$(or (system-hurd?)
(target-arm32?)
(target-aarch64?))
;; protocol FAIL
(string-append "TFLAGS=~1474 "
"!1477 "
job-count)
(string-append "TFLAGS=\"~1477 "
job-count "\"")))))
;; The top-level "make check" does "make -C tests quiet-test", which
;; is too quiet. Use the "test" target instead, which is more
;; verbose.
(apply invoke "make" arguments)))))
#$@(if (system-hurd?)
#~((add-after 'unpack 'skip-tests/hurd
#~((add-after 'unpack 'skip-tests
(lambda _
(let ((port (open-file "tests/data/DISABLED" "a")))
(display "526\n" port)
@@ -130,20 +147,11 @@
(display "564\n" port)
(display "575\n" port)
(display "1021\n" port)
(display "1474\n" port)
(display "1501\n" port)
(close port)))))
#~())
(add-after 'install 'sanitize-libcurl.pc
(lambda _
;; The pkgconfig file has all dependencies in Requires.private
;; which is unnecessary for our shared library use and would
;; require propagating them.
(substitute* (string-append #$output "/lib/pkgconfig/libcurl.pc")
(("^Requires.private:.*") "")))))))
#~()))))
(native-inputs
(list nghttp2 perl pkg-config python-minimal-wrapper
openssl)) ;for tests
(list nghttp2 perl pkg-config python-minimal-wrapper))
(inputs
(list gnutls libidn libpsl mit-krb5 `(,nghttp2 "lib") zlib))
(native-search-paths
+9 -1
View File
@@ -1112,9 +1112,17 @@ to aid in debugging.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32 "0ppx8r9isc772y0ahpgl8g5b3yxka7ffqzlcsa920aib5nj39lrg"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(substitute* "pyproject.toml"
;; Python is linked with GNU readline on all Guix targets.
((".*gnureadline.*") "")
+42 -23
View File
@@ -1021,7 +1021,7 @@ files.")
(define-public klayout
(package
(name "klayout")
(version "0.30.8")
(version "0.30.9")
(source
(origin (method git-fetch)
(uri (git-reference
@@ -1030,7 +1030,7 @@ files.")
(file-name (git-file-name name version))
(sha256
(base32
"0aw0y5k27pslql9pir6nplapj6ml6fkhzd815s13rlnw3bm0fcs6"))))
"1v5ddw7xixvdc3qshd0lkrc3ayk2q5wkk1zbhvsidq0kzlqbr2z5"))))
(build-system copy-build-system)
(arguments
(list
@@ -1750,21 +1750,31 @@ exploration and optimization.")
(commit version)
(recursive? #t)))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(delete-all-but "libs"
"delaunay-triangulation"
"dxflib"
;; "fontobene-qt"
;; "googletest"
;; "hoedown"
"librepcb"
;; "muparser"
"optional"
"parseagle"
;; "polyclipping"
;; "quazip"
"type_safe"))
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "libs"
"delaunay-triangulation"
"dxflib"
;; "fontobene-qt"
;; "googletest"
;; "hoedown"
"librepcb"
;; "muparser"
"optional"
"parseagle"
;; "polyclipping"
;; "quazip"
"type_safe")))
(sha256
(base32 "1g3k2g2p5yy7zk971bg7qh4k38p30aydp27c5bfb02gn7djknz7w"))))
(build-system cmake-build-system)
@@ -2197,7 +2207,7 @@ which allows one to install the M8 firmware on any Teensy.")
(define-public magic
(package
(name "magic")
(version "8.3.644")
(version "8.3.652")
(source
(origin
(method git-fetch)
@@ -2206,7 +2216,7 @@ which allows one to install the M8 firmware on any Teensy.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0qp1alm4pczfm77r8lxwgzrwh02ihvfmk9sbwjlfbrixg1dn85xb"))))
(base32 "07q2lldcq6zb1apa5d3paciha92r6jlp7xny8pc31f56k5s9jnmz"))))
(build-system gnu-build-system)
(arguments
(list
@@ -2302,7 +2312,7 @@ coverage.")
(define-public netgen
(package
(name "netgen")
(version "1.5.319")
(version "1.5.320")
(source
(origin
(method git-fetch)
@@ -2311,7 +2321,7 @@ coverage.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "16xd2xcsny1bb6yk4lz34jfpwfb5xi2i9izxjymmalnzhg32i9cz"))))
(base32 "11mvf0nrsfc1lxbgqhmczi0maw4n10lib2xqnhpkyy73ci489147"))))
(build-system gnu-build-system)
(arguments
(list
@@ -2348,9 +2358,18 @@ layout of a circuit corresponds to the desired netlists.")
;; no longer have their original upstream.
(recursive? #t)))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
#~(begin
(use-modules (guix build utils)
(ice-9 ftw)
(srfi srfi-26))
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "3rdparty"
;; The following sources have all been patched, so
;; cannot easily be unbundled.
@@ -4357,7 +4376,7 @@ input and outputs an XML dataset.")
(define-public qucs-s
(package
(name "qucs-s")
(version "26.1.0") ;update qucsator-rf accordingly
(version "26.1.1") ;update qucsator-rf accordingly
(source
(origin
(method git-fetch)
@@ -4367,7 +4386,7 @@ input and outputs an XML dataset.")
(file-name (git-file-name name version))
(sha256
(base32
"0aiyrcrxln4v6qm2dmigb54wl0mj499q3g18pz87m1s2lfgicpb1"))))
"009siqmn76r2l17hnjqmr6ap8nw969hd5fyqigb4p3i8cvjq7gmx"))))
(build-system qt-build-system)
(arguments
(list
+10 -1
View File
@@ -16148,9 +16148,18 @@ placed at the margin of the minibuffer for your completion candidates.")
(url "https://github.com/Fuco1/smartparens")
(commit commit)))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
'(begin
;; Taken from nextpnr package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred
(negate (cut member <> (append '("." "..") preserve))))
(items (scandir "." pred)))
(for-each delete-file items))))
;; Only activate basic tests.
(delete-all-but "test"
"test-helper.el"
+80 -5
View File
@@ -464,6 +464,13 @@ It aims to support Nintendo DSi and 3DS as well.")
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
;; Clean up the source from bundled libraries we don't need.
(delete-all-but "Externals"
;; XXX: The build system is currently hard-coded
@@ -653,6 +660,14 @@ turbo speed, networked multiplayer, and graphical enhancements.")
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
;; Clean up the source from bundled libraries we don't need.
(delete-all-but "Externals"
;; XXX: The build system is currently hard-coded
@@ -1068,9 +1083,17 @@ The following systems are supported:
(sha256
(base32
"0dfsz4dsh49dc9xx9rjhfzfkg4h91i2ksgp2inlr9yhgldw9q8h3"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <> (cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "src/third-party"
"blip_buf"
"inih")))))
@@ -2301,9 +2324,42 @@ physical device and the RetroPad virtual controller.")
(modules '((guix build utils)))
(snippet
'(begin
(use-modules (guix build utils)
(ice-9 ftw)
(srfi srfi-1)
(srfi srfi-26))
(define (delete-all-but . preserve)
;; Walk the file tree and delete everything except the paths
;; listed in PRESERVE. Directories listed PRESERVE will cause
;; their whole contents to be preserved.
(let ((preserve (map (compose (cut string-trim-right <> #\/)
(cut string-append "./" <>))
preserve)))
(file-system-fold
(lambda (path stat result) ;enter
(or (any (lambda (x)
(or (string-prefix? path x)
(string-prefix? x path)))
preserve)
(begin
(delete-file-recursively path)
#f)))
(lambda (path stat result) ;leaf (file)
(unless (any (cut string-prefix? <> path) preserve)
(delete-file path)))
(const #t) ;down (directory)
(const #t) ;up (directory)
(lambda (path stat result) ;skip
(when (file-exists? path)
(error "could not enter unreadable directory" path)))
(lambda (path stat errno result) ;error
(error "error processing" path (strerror errno)))
0
".")))
;; This is an allow-list of the shaders explicitly licensed as
;; free software.
(delete-all-but "."
(delete-all-but
"anamorphic/shaders/anamorphic.slang" ;expat
"anamorphic/anamorphic.slangp"
"annotated_passthru.slang" ;public license
@@ -2960,7 +3016,16 @@ GLSL (@file{.slang}) shaders for use with RetroArch.")
(commit (string-append "v" version))))
(snippet
#~(begin
(use-modules (guix build utils))
(use-modules (guix build utils)
(ice-9 ftw)
(srfi srfi-26))
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
;; Remove as much bundled sources as possible, shaving off about
;; 65 MiB.
(delete-all-but "deps"
@@ -3769,14 +3834,24 @@ de-interlacing patches for use with PCSX2.")
(file-name (git-file-name name version))
(sha256
(base32 "0nr53cjifqwnz3icxsj01yd3aw1vfsfxga4zz5zi8aqr175mvq27"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(substitute* "cmake/Pcsx2Utils.cmake"
(("(PCSX2_GIT_REV \")Unknown" _ prefix)
(string-append prefix #$version "-guix")))
(delete-file "3rdparty/include/Packet32.h") ;"not open source"
(delete-all-but "3rdparty"
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but
"3rdparty"
;; asl2.0 and cc0
"glad" ;Is tailored.
;; bsd-3
+47 -48
View File
@@ -23,6 +23,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages fltk)
#:use-module ((guix licenses) #:select (lgpl2.0 lgpl2.0+))
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages build-tools)
@@ -34,10 +35,8 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system waf)
@@ -57,63 +56,63 @@
(sha256
(base32 "0pnifyhhvcqfjd6iaa4m14kvfyqhjjdw0aqbcizcdhhqrl6q4pjg"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
automake
pkg-config))
(inputs
`(("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libx11" ,libx11)
("libxft" ,libxft)
("mesa" ,mesa)
("zlib" ,zlib)))
(arguments
(list
#:tests? #f ;TODO: compile programs in "test" dir
#:configure-flags
#~(list "--enable-shared"
(string-append "DSOFLAGS=-Wl,-rpath=" %output "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'patch-makeinclude
(lambda _
(substitute* "makeinclude.in"
(("/bin/sh")
(which "sh")))))
(add-after 'install 'patch-config
;; Provide -L flags for image libraries when querying fltk-config to
;; avoid propagating inputs.
(lambda* (#:key inputs #:allow-other-keys)
(let ((conf (string-append #$output "/bin/fltk-config"))
(libjpeg-so (search-input-file inputs "lib/libjpeg.so"))
(libpng-so (search-input-file inputs "lib/libpng.so"))
(libz-so (search-input-file inputs "lib/libz.so")))
(substitute* conf
(("-ljpeg")
(string-append "-L" (dirname libjpeg-so) " -ljpeg"))
(("-lpng")
(string-append "-L" (dirname libpng-so) " -lpng"))
(("-lz")
(string-append "-L" (dirname libz-so) " -lz")))))))))
(native-inputs (list autoconf automake pkg-config))
(inputs
(list libjpeg-turbo
libpng
libx11
libxft
mesa
zlib))
`(#:tests? #f ;TODO: compile programs in "test" dir
#:configure-flags
(list "--enable-shared"
(string-append "DSOFLAGS=-Wl,-rpath=" %output "/lib"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-makeinclude
(lambda _
(substitute* "makeinclude.in"
(("/bin/sh") (which "sh")))
#t))
(add-after 'install 'patch-config
;; Provide -L flags for image libraries when querying fltk-config to
;; avoid propagating inputs.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((conf (string-append (assoc-ref outputs "out")
"/bin/fltk-config"))
(jpeg (assoc-ref inputs "libjpeg"))
(png (assoc-ref inputs "libpng"))
(zlib (assoc-ref inputs "zlib")))
(substitute* conf
(("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg"))
(("-lpng") (string-append "-L" png "/lib -lpng"))
(("-lz") (string-append "-L" zlib "/lib -lz"))))
#t)))))
(home-page "https://www.fltk.org")
(synopsis "3D C++ GUI library")
(description
"FLTK is a C++ GUI toolkit providing modern GUI functionality without the
bloat. It supports 3D graphics via OpenGL and its built-in GLUT emulation.
FLTK is designed to be small and modular enough to be statically linked, but
works fine as a shared library. FLTK also includes an excellent UI builder
called FLUID that can be used to create applications in minutes.")
(license license:lgpl2.0))) ; plus certain additional permissions
(description "FLTK is a C++ GUI toolkit providing modern GUI functionality
without the bloat. It supports 3D graphics via OpenGL and its built-in GLUT
emulation. FLTK is designed to be small and modular enough to be statically
linked, but works fine as a shared library. FLTK also includes an excellent
UI builder called FLUID that can be used to create applications in minutes.")
(license lgpl2.0))) ; plus certain additional permissions
(define-public fltk
(package
(inherit fltk-1.3)
(version "1.4.5")
(version "1.4.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fltk/fltk")
(commit (string-append "release-" version))))
(sha256
(base32 "19bl0ryarg31wkhw01ryilp9iwwh6vwnsq9mnzmarzm0dkwhjc7c"))))))
(base32 "1nfl37c9yplp4gxjjlajysfj2vsr47xjlcq78ambd7im4wbjgj76"))))))
(define-public ntk
@@ -163,4 +162,4 @@ called FLUID that can be used to create applications in minutes.")
library, adding improved graphics rendering via Cairo, a streamlined and
enhanced widget set, and other features designed to improve the appearance and
performance of the Non applications.")
(license license:lgpl2.0+))) ; plus certain additional permissions
(license lgpl2.0+))) ; plus certain additional permissions
+10 -12
View File
@@ -792,16 +792,16 @@ the freedesktop.org XDG Base Directory specification.")
(define-public elogind
(package
(name "elogind")
(version "255.22")
(version "255.17")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/elogind/elogind")
(commit (string-append "V" version))))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0hnzks8f0jl2hkf954pqky5490zacqaipz20k38qvzl5g8i1if5l"))))
"0cb6p559281dzh24is91v6d4v4kz45yhyizibi4sfql9nign865h"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -2733,20 +2733,18 @@ Rendering Manager devices.")
(define-public xdg-user-dirs
(package
(name "xdg-user-dirs")
(version "0.20")
(version "0.17")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/xdg/xdg-user-dirs.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "http://user-dirs.freedesktop.org/releases/"
name "-" version ".tar.gz"))
(sha256
(base32
"1s235wp6z0d94z5qhwf408ppli1p3s3zah8rynm9ljh3hmmv0p2g"))))
(build-system meson-build-system)
(base32 "13216b8rfkzak5k6bvpx6jvqv3cnbgpijnjwj8a8d3kq4cl0a1ra"))))
(build-system gnu-build-system)
(native-inputs
(list gettext-minimal
docbook-xsl
docbook-xml-4.3
libxslt))
(home-page "https://www.freedesktop.org/wiki/Software/xdg-user-dirs/")
(synopsis "Tool to help manage \"well known\" user directories")
+9 -1
View File
@@ -1181,9 +1181,17 @@ It is capable of creating games for SCUMM version 6 and partially version 7.")
(sha256
(base32
"12f1d45995qf5sazjmmfdydllcd6alhqs1s4xwv3jiq1fw66hcy9"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
'(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <> (cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "extlibs/headers"
"glad"))))) ;pre-generated headers
(build-system cmake-build-system)
+102 -100
View File
@@ -6148,39 +6148,22 @@ have a steep learning curve.")))
(define-public openrct2-title-sequences
(package
(name "openrct2-title-sequences")
(version "0.1.2")
(version "0.4.26")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/OpenRCT2/title-sequences/releases/download/v"
version "/title-sequence-v" version ".zip"))
(uri (string-append "https://github.com/OpenRCT2/title-sequences"
"/releases/download/v" version
"/title-sequences.zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"0qbyxrsw8hlgaq0r5d7lx7an3idy4qbfv7yiw9byhldk763n9cfw"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
("coreutils" ,coreutils)
("unzip" ,unzip)))
"0n680llpcyzl22bbphp9diz4m86gz2rn97yxlky44qspn63rgfys"))))
(build-system copy-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(openrct2-title-sequences (string-append out
"/share/openrct2/title-sequences"))
(source (assoc-ref %build-inputs "source"))
(unzip (search-input-file %build-inputs "/bin/unzip")))
(copy-file source (string-append ,name "-" ,version ".zip"))
(invoke unzip (string-append ,name "-" ,version ".zip"))
(delete-file (string-append ,name "-" ,version ".zip"))
(mkdir-p openrct2-title-sequences)
(copy-recursively "."
openrct2-title-sequences)
#t))))
(home-page "https://github.com/OpenRCT2/OpenRCT2")
(list #:install-plan #~'(("." "/share/openrct2/title-sequences"))))
(native-inputs (list unzip))
(home-page "https://openrct2.io")
(synopsis "Title sequences for OpenRCT2")
(description
"openrct2-title-sequences is a set of title sequences for OpenRCT2.")
@@ -6190,38 +6173,22 @@ have a steep learning curve.")))
(define-public openrct2-objects
(package
(name "openrct2-objects")
(version "1.0.20")
(version "1.7.9")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/OpenRCT2/objects/releases/download/v"
version "/objects.zip"))
(uri (string-append "https://github.com/OpenRCT2/objects"
"/releases/download/v" version "/objects.zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32 "1q7a38kcwrfijav6app1gf253yfv8b0rljbkah8040y6i7snw9mw"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
("coreutils" ,coreutils)
("unzip" ,unzip)))
(base32 "1mpa4vpgs4m9izak8h5rkfcn80jbcm2di717k97g30kf1k91wijm"))))
(build-system copy-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(openrct2-objects (string-append out
"/share/openrct2/objects"))
(source (assoc-ref %build-inputs "source"))
(unzip (search-input-file %build-inputs "/bin/unzip")))
(copy-file source (string-append ,name "-" ,version ".zip"))
(invoke unzip (string-append ,name "-" ,version ".zip"))
(delete-file (string-append ,name "-" ,version ".zip"))
(mkdir-p openrct2-objects)
(copy-recursively "."
openrct2-objects)
#t))))
(home-page "https://github.com/OpenRCT2/OpenRCT2")
;; zip has multiple top-level directories to install.
(list #:install-plan #~'((".." "/share/openrct2/objects"
#:exclude ("environment-variables")))))
(native-inputs (list unzip))
(home-page "https://openrct2.io")
(synopsis "Objects for OpenRCT2")
(description
"openrct2-objects is a set of objects for OpenRCT2.")
@@ -6317,7 +6284,7 @@ that follows two aliens who come to Earth in search of a stolen artifact.")
(define-public openrct2
(package
(name "openrct2")
(version "0.3.3")
(version "0.5.0")
(source
(origin
(method git-fetch)
@@ -6326,53 +6293,88 @@ that follows two aliens who come to Earth in search of a stolen artifact.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "01nanpbz5ycdhkyd46fjfvj18sw729l4vk7xg12600f9rjngjk76"))))
(base32 "0pxlk3a8akl0ghcbqqq5xw8chmxss7kwbvi52ixfqri68n46srxh"))
(modules '((guix build utils)))
(snippet
#~(begin
(with-directory-excursion "src/thirdparty"
(for-each delete-file-recursively
'("quickjs-ng" "sfl")))
(substitute* "src/openrct2/CMakeLists.txt"
;; use sys quickjs for scripting features
(("if \\(ENABLE_SCRIPTING\\)") "if (false)")
(("add_library\\(OpenRCT2[^\n]+" all)
(string-join
`(,all
"find_library(QJS_L NAMES qjs REQUIRED)"
"find_path(QJS_I NAMES quickjs.h REQUIRED)"
"target_link_libraries(libopenrct2 ${QJS_L})"
"target_include_directories(libopenrct2 SYSTEM PRIVATE ${QJS_I})")
"\n")))))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DDOWNLOAD_OBJECTS=OFF"
"-DDOWNLOAD_TITLE_SEQUENCES=OFF")
#:tests? #f ; tests require network access
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-usr-share-paths&add-data
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((titles (assoc-ref inputs "openrct2-title-sequences"))
(objects (assoc-ref inputs "openrct2-objects")))
;; Fix some references to /usr/share.
(substitute* "src/openrct2/platform/Platform.Linux.cpp"
(("/usr/share")
(string-append (assoc-ref %outputs "out") "/share")))
(copy-recursively
(string-append titles "/share/openrct2/title-sequences")
"data/title")
(copy-recursively
(string-append objects "/share/openrct2/objects")
"data/object"))))
(add-before 'configure 'get-rid-of-errors
(lambda _
;; Don't treat warnings as errors.
(substitute* "CMakeLists.txt"
(("-Werror") ""))
#t)))))
(inputs `(("curl" ,curl)
("duktape" ,duktape)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("icu4c" ,icu4c)
("jansson" ,jansson)
("nlohmann-json" ,nlohmann-json)
("libpng" ,libpng)
("libzip" ,libzip)
("mesa" ,mesa)
("openrct2-objects" ,openrct2-objects)
("openrct2-title-sequences" ,openrct2-title-sequences)
("openssl" ,openssl)
("sdl2" ,sdl2)
("speexdsp" ,speexdsp)
("zlib" ,zlib)))
(native-inputs
(list pkg-config))
(home-page "https://github.com/OpenRCT2/OpenRCT2")
(list
#:configure-flags #~(list "-DDOWNLOAD_OBJECTS=OFF"
"-DDOWNLOAD_TITLE_SEQUENCES=OFF"
"-DDOWNLOAD_OPENSFX=OFF"
"-DDOWNLOAD_OPENMUSIC=OFF"
"-DDISABLE_DISCORD_RPC=ON"
"-DDISABLE_VERSION_CHECKER=ON")
;; many issues such as https://github.com/OpenRCT2/OpenRCT2/issues/12719
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-usr-share-paths&add-data
;; TODO: OpenRCT2 can optionally use free music and sounds!
;; https://github.com/OpenRCT2/OpenMusic
;; https://github.com/OpenRCT2/OpenSoundEffects
;; ideally we package these instead of the ones the user is supposed
;; to supply.
(lambda* (#:key inputs #:allow-other-keys)
(let ((titles (assoc-ref inputs "openrct2-title-sequences"))
(objects (assoc-ref inputs "openrct2-objects"))
(sfl (assoc-ref inputs "sfl-library")))
;; Fix some references to /usr/share.
(substitute* "src/openrct2/platform/Platform.Linux.cpp"
(("/usr/share")
(string-append #$output "/share")))
(copy-recursively
(string-append titles "/share/openrct2/title-sequences")
"data/title")
(copy-recursively
(string-append objects "/share/openrct2/objects")
"data/object")
(copy-recursively
(string-append sfl "/include")
"src/thirdparty"))))
(add-before 'configure 'get-rid-of-errors
(lambda _
;; Don't treat warnings as errors.
(substitute* "CMakeLists.txt"
(("-Werror") "")))))))
(inputs
(list curl
flac
fontconfig
freetype
icu4c
jansson
libpng
libvorbis
libzip
mesa
nlohmann-json-no-char8-t
openrct2-objects
openrct2-title-sequences
openssl
quickjs-ng
sdl2
sfl-library
speexdsp
zlib
(list zstd "lib")))
(native-inputs (list pkg-config))
(home-page "https://openrct2.io")
(synopsis "Free software re-implementation of RollerCoaster Tycoon 2")
(description "OpenRCT2 is a free software re-implementation of
RollerCoaster Tycoon 2 (RCT2). The gameplay revolves around building and
@@ -6380,8 +6382,8 @@ maintaining an amusement park containing attractions, shops and facilities.
Note that this package does @emph{not} provide the game assets (sounds,
images, etc.)")
;; See <https://github.com/OpenRCT2/OpenRCT2/wiki/Required-RCT2-files>
;; regarding assets.
;; See bottom of:
;; https://github.com/OpenRCT2/OpenRCT2/blob/develop/distribution/readme.txt
(license license:gpl3+)))
(define-public openriichi
+3 -4
View File
@@ -807,7 +807,7 @@ OpenGeoSys")
(define-public ogs-serial
(package
(name "ogs-serial")
(version "6.5.7")
(version "6.5.8")
(source
(origin
(method git-fetch)
@@ -816,9 +816,7 @@ OpenGeoSys")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1wflgkbcsa4sr8g63img0ld6h4jm1b7hjzsa2m4gsbzc6j7kd41w"))
;; Remove patch on next release, likely 6.5.8
(patches (search-patches "ogs-6.5.7-netcdfconverter.patch"))))
(base32 "037il6jw2j1g7bvrwvbp20yf0cnz7c7f3wmszxfv5ay7l54sffqg"))))
(build-system cmake-build-system)
(arguments
(list
@@ -873,6 +871,7 @@ OpenGeoSys")
tclap
tfel
vtk
xdmf
xmlpatch
zlib))
(propagated-inputs
+9 -1
View File
@@ -192,9 +192,17 @@ definitions in Go programs.")
(file-name (git-file-name name version))
(sha256
(base32 "0c1rxbj3v3m0fqb8q96xlbawxm9scyx6vvr8pddkiwp7zkx4ajym"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "cmd" "godoc")
(delete-all-but "." "cmd")))))
(build-system go-build-system)
+29 -4
View File
@@ -1535,9 +1535,17 @@ Go programming language.")
(file-name (git-file-name name version))
(sha256
(base32 "0sjvngpahkb5x573i855fjlb1fdmr6n269nmb5xxnbabjb27mnvg"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "go" "expect")
(delete-all-but "." "go")))))
(build-system go-build-system)
@@ -1567,9 +1575,17 @@ Go source code (including go.mod and go.work files) as test expectations.")
(file-name (git-file-name name version))
(sha256
(base32 "0sjvngpahkb5x573i855fjlb1fdmr6n269nmb5xxnbabjb27mnvg"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "go" "packages")
(delete-all-but "go/packages" "packagestest")
(delete-all-but "." "go")))))
@@ -1602,9 +1618,18 @@ tools on.")
(file-name (git-file-name name version))
(sha256
(base32 "1blk22apy424j9v58lfy4pxnrgh93yqchqhxsnf78dmx4vx5yi9r"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "godoc")))))
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "godoc")))))
(build-system go-build-system)
(arguments
(list
+2 -2
View File
@@ -4293,7 +4293,7 @@ purpose of improving obfs4proxy's meek_lite transport.")
(define-public go-go-mau-fi-libsignal
(package
(name "go-go-mau-fi-libsignal")
(version "0.1.2")
(version "0.2.1")
(source
(origin
(method git-fetch)
@@ -4309,7 +4309,7 @@ purpose of improving obfs4proxy's meek_lite transport.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1pd2kijza7dr5nbgfw176ca1r3rmgpx8h22gqjp557awxqhw9lzr"))))
(base32 "0jwqhaaqjf5fb322karppisbg5s1la459a0cwvhbii899nzyd59k"))))
(build-system go-build-system)
(arguments
(list
+86
View File
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2026 Sughosha <sughosha@disroot.org>
;;; Copyright © 2026 orahcio <orahcio@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -249,3 +250,88 @@ multiple return values, Go's native multiple return values are used instead.
Whenever a native GTK call could return an unexpected NULL pointer, an
additional error is returned in the Go binding.")
(license license:isc)))
(define-public go-github-com-jackmordaunt-icns-v3
(package
(name "go-github-com-jackmordaunt-icns-v3")
(version "3.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JackMordaunt/icns")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04wnxv79b1xbca16kgz98zc929q60lwcgcc6q784lkz2a1clh2z2"))
(modules '((guix build utils)))
(snippet
#~(begin
;; Submodules with their own go.mod files and packaged separately:
(delete-file-recursively "cmd")))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/jackmordaunt/icns/v3"
#:test-flags #~(list "-vet=off")))
(propagated-inputs
(list go-github-com-nfnt-resize))
(home-page "https://github.com/jackmordaunt/icns")
(synopsis "Easily create .icns files")
(description
"This package provides Go library to easily convert @code{.jpg} and
@code{.png} to @code{.icns}, or to convert from any @code{image.Image} to
@code{.icns}.")
(license license:expat)))
(define-public go-github-com-sergeymakinen-go-bmp
(package
(name "go-github-com-sergeymakinen-go-bmp")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sergeymakinen/go-bmp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0bglvxqmjvgclcfjpkznxyifj5r0bh837c2iw6x1vylc7lqcq07h"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/sergeymakinen/go-bmp"))
(home-page "https://github.com/sergeymakinen/go-bmp")
(synopsis "BMP image decoder and encoder")
(description "Package bmp implements a BMP image decoder and encoder.")
(license license:bsd-3)))
(define-public go-github-com-sergeymakinen-go-ico
(package
(name "go-github-com-sergeymakinen-go-ico")
(version "1.0.0-beta.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sergeymakinen/go-ico")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "115fgnhn1j91zvkigl1x03jkc2dn6vx7qvfmm6l59d24qkfv6cwn"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/sergeymakinen/go-ico"))
(propagated-inputs
(list go-github-com-sergeymakinen-go-bmp))
(home-page "https://github.com/sergeymakinen/go-ico")
(synopsis "ICO and CUR file decoders and encoders")
(description "Package ico implements an ICO file decoder and encoder.")
(license license:bsd-3)))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above in alphabetic order:
;;; guix import --insert=gnu/packages/golang-graphics.scm pypi <package-name>.
;;;
File diff suppressed because it is too large Load Diff
+364 -26
View File
@@ -78,6 +78,7 @@
;;; Copyright © 2026 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2026 Daniel Littlewood <dan@danielittlewood.xyz>
;;; Copyright © 2026 Sughosha <sughosha@disroot.org>
;;; Copyright © 2026 orahcio <orahcio@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -113,6 +114,7 @@
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-graphics)
#:use-module (gnu packages golang-maths)
#:use-module (gnu packages golang-vcs)
#:use-module (gnu packages golang-web)
@@ -443,6 +445,33 @@ a human-readable byte format.")
time dependencies in tests.")
(license license:asl2.0)))
(define-public go-code-rocketnine-space-tslocum-cbind
(package
(name "go-code-rocketnine-space-tslocum-cbind")
(version "0.1.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/tslocum/cbind.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0a0gpzapm3jsivdf5h6lvlxhzngrmyj7xp5fdk20l8r4yba7yqsy"))))
(build-system go-build-system)
(arguments
(list
#:import-path "code.rocketnine.space/tslocum/cbind"
#:test-flags #~(list "--skip" "TestConfiguration")))
(propagated-inputs
(list go-github-com-gdamore-tcell-v2))
(home-page "https://codeberg.org/tslocum/cbind")
(synopsis "Key event handling library for tcell")
(description
"Package cbind provides a tcell key event encoding, decoding and handling
as human-readable strings.")
(license license:expat)))
(define-public go-codeberg-org-anaseto-gruid
(package
(name "go-codeberg-org-anaseto-gruid")
@@ -1304,8 +1333,26 @@ may be interactive or produce standard formats such as SVG or PDF.")
(file-name (git-file-name name version))
(sha256
(base32 "1np11if704xzyhsx9mqhz7djx23g6wnz62r1v9ra6xaz91yfic0n"))
(modules '((guix build utils)))
(snippet #~(delete-all-but "." "generate"))))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(define (directory? x)
(and=> (stat x #f)
(compose (cut eq? 'directory <>) stat:type)))
(with-directory-excursion directory
(let* ((pred
(negate (cut member <> (append '("." "..") preserve))))
(items (scandir "." pred)))
(for-each (lambda (item)
(if (directory? item)
(delete-file-recursively item)
(delete-file item)))
items))))
(delete-all-but "." "generate")))))
(build-system go-build-system)
(arguments
(list
@@ -1822,6 +1869,33 @@ software (based on Python's
@uref{https://github.com/pycontribs/tendo, tendo}).")
(license license:expat)))
(define-public go-github-com-alimpfard-line
(package
(name "go-github-com-alimpfard-line")
(version "0.0.0-20230131232016-03b4e7dee324")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alimpfard/line")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "0swjy1z7hqy4xgq2hfa457rs7p9d7fw5lmdh0zaf3n25rqv10ds1"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/alimpfard/line"))
(propagated-inputs
(list go-golang-org-x-sys))
(home-page "https://github.com/alimpfard/line")
(synopsis "Terminal line editor")
(description
"This package provides a full reimplementation of SerenityOS's LibLine in
Go language. It supports flexible autocompletion, live prompt, buffer update
and stylisation, multiline editing and more.")
(license license:bsd-2)))
(define-public go-github-com-alsm-ioprogress
(package
(name "go-github-com-alsm-ioprogress")
@@ -5047,8 +5121,18 @@ and multi-selects with a focus on user experience and aesthetics.")
(file-name (git-file-name name version))
(sha256
(base32 "1nr09574rdrgnsj7c2z11233zljl3gcqax0jb3na6v4ixl7gnhq2"))
(modules '((guix build utils)))
(snippet #~(delete-all-but "." "ansi"))))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "ansi")))))
(build-system go-build-system)
(arguments
(list
@@ -5085,7 +5169,14 @@ ECMA-48} specs.")
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "cellbuf")))))
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "cellbuf")))))
(build-system go-build-system)
(arguments
(list
@@ -5143,8 +5234,18 @@ ECMA-48} specs.")
(file-name (git-file-name name version))
(sha256
(base32 "088786ak8jsgvssbb5y16z066vfq9f6078sjc7iv766knfr2i0x2"))
(modules '((guix build utils)))
(snippet #~(delete-all-but "." "errors"))))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "errors")))))
(build-system go-build-system)
(arguments
(list
@@ -5296,9 +5397,18 @@ package provides an API for comparing Golden files.")
(file-name (git-file-name name version))
(sha256
(base32 "1shw55110fnn4xz80wmgr18czmiil6z1j064m90iw8c7j9llfzn5"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "term")))))
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "term")))))
(build-system go-build-system)
(arguments
(list
@@ -5386,8 +5496,21 @@ package provides an API for comparing Golden files.")
(file-name (git-file-name name version))
(sha256
(base32 "0blpb8vpl7sc6pb43h0730wdcwrkvnhly6qhik6wljrzn2nqz5g2"))
(modules '((guix build utils)))
(snippet #~(delete-all-but "." "xpty"))))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
;; Consider implementing it as a reusable procedure in
;; guix/build/utils or guix/build-system/go.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "xpty")))))
(build-system go-build-system)
(arguments
(list
@@ -6470,8 +6593,21 @@ packages.")
(file-name (git-file-name name version))
(sha256
(base32 "0afaljkkd388f6igr3f2vjnd14yr8h20fcfzglw8j5q1q7a1cvik"))
(modules '((guix build utils)))
(snippet #~(delete-all-but "." "pkg"))))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
;; Consider implementing it as a reusable procedure in
;; guix/build/utils or guix/build-system/go.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "pkg")))))
(build-system go-build-system)
(arguments
(list
@@ -9690,6 +9826,37 @@ O(1) for @code{Set}, @code{Get}, @code{Delete} and @code{Len}.")
#~(modify-phases %standard-phases
(delete 'remove-submodule)))))))
(define-public go-github-com-elliotchance-orderedmap-v3
(package
(name "go-github-com-elliotchance-orderedmap-v3")
(version "3.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/elliotchance/orderedmap")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1w681qsybcf34g0wn9hm6nnzc9jcdv59ahjiqdq9hs22xq0qgnjj"))))
(build-system go-build-system)
(arguments
(list
;; Projects includes v1, v2 and v3 in the same source tree.
#:import-path "github.com/elliotchance/orderedmap/v3"
#:unpack-path "github.com/elliotchance/orderedmap"))
(native-inputs
(list go-github-com-stretchr-testify))
(home-page "https://github.com/elliotchance/orderedmap")
(synopsis "Ordered map in with amortized O(1) for Set, Get, Delete and Len")
(description
"An @code{*OrderedMap} is a high performance ordered map that maintains
amortized O(1) for @code{Set}, @code{Get}, @code{Delete} and @code{Len}.
Internally an @code{*OrderedMap} uses the composite type
@url{https://go.dev/blog/maps, map} combined with a trimmed down linked list
to maintain the order.")
(license license:expat)))
(define-public go-github-com-elliotwutingfeng-asciiset
(package
(name "go-github-com-elliotwutingfeng-asciiset")
@@ -10022,6 +10189,36 @@ and @code{io.ReadCloser}) with overwrites
" This package is a fork of dlclark/regexp2 providing a
more similar API to regexp."))))
(define-public go-github-com-esiqveland-notify
(package
(name "go-github-com-esiqveland-notify")
(version "0.13.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/esiqveland/notify")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "03d27a8rl55j6dqclg3233dj3j7v0i0p9cda06f9c4a21djamrfb"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/esiqveland/notify"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-godbus-dbus-v5))
(home-page "https://github.com/esiqveland/notify")
(synopsis "Delivering desktop notifications over DBus")
(description
"Notify is a Go library for interacting with the DBus notification
service defined by freedesktop.org at
@url{https://developer.gnome.org/notification-spec/}. Notify can deliver
desktop notifications over DBus, ala how @code{libnotify} does it.")
(license license:bsd-3)))
(define-public go-github-com-ettle-strcase
(package
(name "go-github-com-ettle-strcase")
@@ -10813,6 +11010,37 @@ library in go standard library.")
"Go library that pluralizes and singularizes English nouns.")
(license license:bsd-2)))
(define-public go-github-com-gen2brain-beeep
(package
(name "go-github-com-gen2brain-beeep")
(version "0.11.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gen2brain/beeep")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0jvfspz941r93djf83gsjqw8w9v34fa9dys1465iwbq769ayizmw"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/gen2brain/beeep"
#:test-flags #~(list "--skip" "TestAlert|TestNotify")))
(propagated-inputs
(list go-github-com-esiqveland-notify
go-github-com-godbus-dbus-v5
go-github-com-jackmordaunt-icns-v3
go-github-com-sergeymakinen-go-ico
go-golang-org-x-sys))
(home-page "https://github.com/gen2brain/beeep")
(synopsis "Sending desktop notifications, alerts and beeps")
(description
"Package beeep provides a cross-platform library for sending desktop
notifications and beeps.")
(license license:bsd-2)))
(define-public go-github-com-ghemawat-stream
(package
(name "go-github-com-ghemawat-stream")
@@ -16056,9 +16284,18 @@ Twisted's manhole library} .")
(file-name (git-file-name name version))
(sha256
(base32 "0xj782ghf0iv8r2xxmg2vrh72b02h216y4yfyi60y9z0691lrsip"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "tools")))))
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "tools")))))
(build-system go-build-system)
(arguments
(list
@@ -19843,9 +20080,18 @@ publishsubscribe pattern}.")
(file-name (git-file-name name version))
(sha256
(base32 "0an8ypp8v9gfxbbb71mpimb1g9labl4v7lgazcphysn6c5smgmiw"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "atomicwriter")))))
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "atomicwriter")))))
(build-system go-build-system)
(arguments
(list
@@ -19900,9 +20146,18 @@ https://github.com/syndtr/gocapability.")
(file-name (git-file-name name version))
(sha256
(base32 "1nh1disclgydvq7k10awzks6k8kw9cjj3q19f83ksi4b76p5l475"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "mount")))))
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "mount")))))
(build-system go-build-system)
(arguments
(list
@@ -29658,6 +29913,31 @@ utilities for cty Golang module.")
"Package yaml can marshal and unmarshal cty values in YAML format.")
(license license:asl2.0)))
(define-public go-github-com-zeebo-bencode
(package
(name "go-github-com-zeebo-bencode")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zeebo/bencode")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0c6bw1if1vbcr9l4684a4jdri8z31m8msjpp7z6y2p9s1jqjhkrp"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/zeebo/bencode"))
(home-page "https://github.com/zeebo/bencode")
(synopsis "Bencode marshal and unmarshal library")
(description
"This library implements encoding and decoding of
@url{https://wiki.theory.org/BitTorrentSpecification#Bencoding, bencoded}
objects.")
(license license:expat)))
(define-public go-github-com-zeebo-errs
(package
(name "go-github-com-zeebo-errs")
@@ -29971,6 +30251,31 @@ connections.")
"This package provides a pretty printing library for Golang values.")
(license license:expat)))
(define-public go-github-com-zyedidia-clipboard
(package
(name "go-github-com-zyedidia-clipboard")
(version "1.0.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zyedidia/clipboard")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1nrs2ll6dh31wyzxh2zbykwvpavhlpzysfk6qgfj5s4rz6ck8glz"))))
(build-system go-build-system)
(arguments
(list
#:tests? #f ;requires clipboard (xclip or xsel)
#:import-path "github.com/zyedidia/clipboard"))
(home-page "https://github.com/zyedidia/clipboard")
(synopsis "Clipboard for Golang")
(description
"Package clipboard read/write on clipboard. It's an alternative fork of
@url{https://github.com/atotto/clipboard}.")
(license license:bsd-3)))
(define-public go-github-com-zyedidia-clipper
(package
(name "go-github-com-zyedidia-clipper")
@@ -30479,7 +30784,7 @@ Identifier (RFC3986) specification in Go.")
(define-public go-go-mau-fi-util
(package
(name "go-go-mau-fi-util")
(version "0.8.4")
(version "0.9.9")
(source
(origin
(method git-fetch)
@@ -30488,7 +30793,7 @@ Identifier (RFC3986) specification in Go.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0zzkrbwgbxfppsxjck8qgj4xxzpiq25sx4p3zwjh6s1yz3kfb97p"))))
(base32 "1d6365n4j5hx172mi5f9rk49l7cgcbf8qvi721b0l34j2m036rsy"))))
(build-system go-build-system)
(arguments
(list
@@ -30960,8 +31265,21 @@ when they'd prefer a more familiar, loosely typed API.")
(file-name (git-file-name name version))
(sha256
(base32 "05i15278swdmpif3p6g18sy0sn7rnfdl3m2rj5p30cnyb0j29vig"))
(modules '((guix build utils)))
(snippet #~(delete-all-but "." "exp"))))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
;; Consider implementing it as a reusable procedure in
;; guix/build/utils or guix/build-system/go.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "exp")))))
(build-system go-build-system)
(arguments
(list
@@ -32442,9 +32760,18 @@ code.")
(name "go-modernc-org-ccgo-v4")
(source (origin
(inherit (package-source go-modernc-org-ccgo-v3))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "v4")))))
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "v4")))))
(arguments
(substitute-keyword-arguments
(package-arguments go-modernc-org-ccgo-v3)
@@ -33400,9 +33727,20 @@ unmarshaling functions based on @code{encoding/json} @code{Unmarshal()}.")
(file-name (git-file-name name version))
(sha256
(base32 "12n8ij4gisah5mvxcgq263iic61gjpxdj3ml03826zckzn7wlv46"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
;; Consider implementing it as a reusable procedure in
;; guix/build/utils or guix/build-system/go.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "cmd")
(delete-all-but "cmd" "config")))))
(build-system go-build-system)
+68 -63
View File
@@ -44,7 +44,6 @@
;;; Copyright © 2025 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2026 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2026 Sughosha <sughosha@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1533,71 +1532,77 @@ frames per second (FPS), temperatures, CPU/GPU load and more.")
(define-public openexr
(package
(name "openexr")
(version "3.4.11")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AcademySoftwareFoundation/openexr")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32 "0c0l62s42i4jxp6bsf47fqlmdrazpk783jfpgj4jnprsm2spdp75"))
(modules '((guix build utils)))
;; Unbundle third party libraries.
(snippet #~(with-directory-excursion "external"
(for-each delete-file-recursively
'("deflate" "OpenJPH"))))))
(version "3.2.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/AcademySoftwareFoundation/openexr")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"00s1a05kggk71vfbnsvykyjc2j7y6yyzgl63sy4yiddshz2k2mcr"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list #$@(match (%current-system)
;; A test explicitly checks for SSE2 (would fail on
;; i686-linux), so make sure it is enabled for both C
;; and CPP.
((or "x86_64-linux" "i686-linux")
'("-DCMAKE_CXX_FLAGS=-mfpmath=sse -msse2"
"-DCMAKE_C_FLAGS=-mfpmath=sse -msse2"))
(_ '())))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-test-directory
(lambda _
(substitute* '("src/test/OpenEXRTest/tmpDir.h"
"src/test/OpenEXRCoreTest/main.cpp")
(("/var/tmp") "/tmp"))))
;; Disable tests that fail at least on i686-linux.
#$@(if (target-32bit?)
#~((add-after 'patch-test-directory 'disable-broken-tests
(lambda _
(substitute* "src/test/OpenEXRCoreTest/main.cpp"
((".*testNoCompression, .*") "")
((".*testRLECompression, .*") "")
((".*testZIPCompression, .*") "")
((".*testZIPSCompression, .*") "")
((".*testB44Compression, .*") "")
((".*testB44ACompression, .*") ""))
(substitute* "src/test/OpenEXRTest/main.cpp"
((".*testCompression, .*") "")
((".*testOptimizedInterleavePatterns, .*") "")))))
#~())
;; Disable tests known to fail on aarch64. Remove once
;; https://github.com/AcademySoftwareFoundation/openexr/issues/1460
;; is fixed.
#$@(if (target-aarch64?)
#~((add-after 'patch-test-directory 'disable-broken-tests
(lambda _
(substitute* '("src/test/OpenEXRCoreTest/main.cpp")
(("TEST \\(testDWAACompression, \"core_compression\"\\);")
"")
(("TEST \\(testDWABCompression, \"core_compression\"\\);")
"")))))
#~()))))
(list #:configure-flags
#~(list #$@(match (%current-system)
;; A test explicitly checks for SSE2 (would fail on
;; i686-linux), so make sure it is enabled for both C
;; and CPP.
((or "x86_64-linux" "i686-linux")
'("-DCMAKE_CXX_FLAGS=-mfpmath=sse -msse2"
"-DCMAKE_C_FLAGS=-mfpmath=sse -msse2"))
(_ '())))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-test-directory
(lambda _
(substitute* (list
"src/test/OpenEXRTest/tmpDir.h"
"src/test/OpenEXRCoreTest/main.cpp")
(("/var/tmp")
"/tmp"))))
#$@(if (target-32bit?)
#~((add-after 'patch-test-directory 'disable-broken-tests
(lambda _
;; Disable tests that fail at least on i686-linux.
(substitute* '("src/test/OpenEXRCoreTest/main.cpp"
"src/test/OpenEXRTest/main.cpp")
(("TEST \\(testCompression, \"basic\"\\);")
"")
(("TEST\\( testNoCompression, \"core_compression\" \\);")
"")
(("TEST\\( testRLECompression, \"core_compression\" \\);")
"")
(("TEST\\( testZIPCompression, \"core_compression\" \\);")
"")
(("TEST\\( testZIPSCompression, \"core_compression\" \\);")
"")
(("TEST\\( testB44Compression, \"core_compression\" \\);")
"")
(("TEST\\( testB44ACompression, \"core_compression\" \\);")
"")
(("TEST \\(testOptimizedInterleavePatterns, \"basic\"\\);")
"")))))
#~())
#$@(if (target-aarch64?)
#~((add-after 'patch-test-directory 'disable-broken-aarch64-tests
;; Disable tests known to fail on aarch64. Remove once
;; https://github.com/AcademySoftwareFoundation/openexr/issues/1460
;; is fixed.
(lambda _
(substitute* '("src/test/OpenEXRCoreTest/main.cpp")
(("TEST \\(testDWAACompression, \"core_compression\"\\);")
"")
(("TEST \\(testDWABCompression, \"core_compression\"\\);")
"")))))
#~()))))
(inputs (list imath))
(propagated-inputs
(list libdeflate ;marked as Requires.private in OpenEXR.pc
imath ;marked as Requires in OpenEXR.pc
openjph)) ;marked as Requires.private in OpenEXR.pc
(home-page "https://openexr.com")
(list libdeflate ; Marked as Requires.private in OpenEXR.pc.
imath)) ; Marked as Requires in OpenEXR.pc.
(home-page "https://www.openexr.com/")
(synopsis "High-dynamic-range file format library")
(description
"OpenEXR provides the specification and reference implementation of the
+2 -2
View File
@@ -47,13 +47,13 @@
(define-public groff
(package
(name "groff")
(version "1.24.0")
(version "1.22.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/groff/groff-" version
".tar.gz"))
(sha256 (base32
"0w3mf9jb5j1gbw1160lr5498q4ayl5i3jpf5g8721l1yzzcbr6z7"))))
"14q2mldnr1vx0l9lqp9v2f6iww24gj28iyh4j2211hyynx67p3p7"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;12MiB of PS, PDF, HTML, and examples
+35 -3
View File
@@ -4019,6 +4019,38 @@ with documentation.
;; details.
(license license:gpl3+)))
(define-public guile-scriba
(package
(name "guile-scriba")
(version "0.1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/jjba23/scriba.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1chhbhy21g6zghc3alpqhvb6nizylmzzapjariykv41f47ynhljs"))))
(build-system guile-build-system)
(arguments
(list
#:source-directory "src"))
(propagated-inputs (list guile-json-4))
(inputs (list guile-3.0))
(synopsis "Structured logging framework for Guile Scheme")
(description
"Scriba is a structured logging library for GNU Guile that prioritizes
flexibility and observability. It provides modular log routing, formatting,
and filtering, allowing developers to generate human-readable console logs
during development and machine-readable JSON logs for production environments.
Key features include an auto-logger configured via environment variables,
dynamically scoped log contexts using Scheme parameters, ahead-of-time log
level filtering, and minimal runtime overhead achieved through memoization
and compile-time macros.")
(home-page "https://codeberg.org/jjba23/scriba")
(license license:lgpl3+)))
(define-public guile-simple-iterators
(let ((commit "50f16a2b2aa57e657e52e19fb3c35bdc182cfa36")
(revision "0"))
@@ -7526,7 +7558,7 @@ in a large number of randomly generated test cases.")
(define-public guile-veritas
(package
(name "guile-veritas")
(version "0.1.6")
(version "0.3.0")
(source
(origin
(method git-fetch)
@@ -7535,13 +7567,13 @@ in a large number of randomly generated test cases.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1h4si2p8gj4wfhvn4cshga2kjxf59vd4nwvxkc2i3g5gv3kxhm3k"))))
(base32 "1i64pd5pcx37i25hnks7zj8pbwf1fdy0s5y9ic2sgn800zqq1dxy"))))
(build-system guile-build-system)
(arguments
(list
#:source-directory "src"))
(native-inputs (list guile-3.0))
(propagated-inputs (list guile-fibers))
(propagated-inputs (list guile-fibers guile-json-4))
(home-page "https://codeberg.org/jjba23/veritas")
(synopsis "Testing framework for Guile")
(description
+1 -1
View File
@@ -713,7 +713,7 @@ exec ${system}/rc \"$@\"
("libpciaccess" ,libpciaccess-static)
;; For NFS support
("libtirpc" ,libtirpc)
("libtirpc" ,libtirpc/hurd)
;; Tools for the /libexec/* scripts.
("bash-minimal" ,bash-minimal)
+16 -8
View File
@@ -600,16 +600,24 @@ different data arrays similar to those available in the numdiff software.")
(file-name (git-file-name name version))
(snippet
#~(begin
(use-modules (guix build utils))
(use-modules (guix build utils)
(ice-9 ftw)
(srfi srfi-26))
;; Delete any bundled .jar files.
(for-each delete-file (find-files "." "\\.jar$"))
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "3rdparty"
"fastcv" ;TODO: Unbundle these
"libspng"
"libtim-vx"
"orbbecsdk"
"quirc"
"zlib-ng")))
"fastcv" ;TODO: Unbundle these
"libspng"
"libtim-vx"
"orbbecsdk"
"quirc"
"zlib-ng")))
(sha256
(base32
"15w4fqjqv5k1yw70jbjsnlgiky39mqpy05rvmm2fbyjrif4kbgkl"))))
@@ -1513,7 +1521,7 @@ libraries designed for computer vision research and implementation.")
python
onetbb
vxl-1
zlib))
zlib-ng-compat))
(native-inputs
(list castxml
git-minimal
+65 -82
View File
@@ -2987,101 +2987,86 @@ by AOM, including with alpha.")
Format) file format decoder and encoder.")
(license license:lgpl3+)))
(define libjxl-testdata
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libjxl/testdata")
(commit "ff8d743aaba05b3014f17e5475e576242fa979fc")))
(sha256
(base32 "05nba2h0m74n5f9jzl3vzvnj74fj3si09ncwk2dqg41qdc49d1ng"))))
(define-public libjxl
(package
(name "libjxl")
(version "0.11.2")
(version "0.11.1")
(outputs (list "out" "pixbuf-loader"))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libjxl/libjxl")
(commit (string-append "v" version))))
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "0a6fg2v81rqsbrzi97x1d7wadcikh2fizr64rsza668cwvsk631q"))))
(base32 "1wfxzrhj8a19z6x47ib1qbmgyg56jsxjs955xcvqhdkrx8l2271r"))
(modules '((guix build utils)))
(snippet
;; Delete the bundles that will not be used.
'(begin
(for-each (lambda (directory)
(delete-file-recursively
(string-append "third_party/" directory)))
'("brotli" "googletest" "highway" "lcms" "libjpeg-turbo"
"libpng" "zlib"))))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~'("-DJPEGXL_FORCE_SYSTEM_GTEST=true"
"-DJPEGXL_FORCE_SYSTEM_BROTLI=true"
"-DJPEGXL_FORCE_SYSTEM_LCMS2=true"
"-DJPEGXL_FORCE_SYSTEM_HWY=true"
"-DJPEGXL_BUNDLE_LIBPNG=false"
"-DJPEGXL_ENABLE_PLUGINS=true")
#:phases
#~(modify-phases %standard-phases
#$@(cond
((target-riscv64?)
#~((add-after 'unpack 'fix-atomic
(lambda _
(substitute* "lib/jxl/enc_xyb.cc"
(("#include \"lib/jxl/enc_xyb.h\"" a)
(string-append a "\n#include <atomic>")))))))
((target-x86-32?)
#~((add-after 'unpack 'loosen-test-parameter
(lambda _
;; This test fails likely due to a floating point
;; rounding difference.
(substitute* "lib/jxl/color_management_test.cc"
(("8\\.7e-4") "8.7e-3"))))))
(#t
#~()))
(add-after 'unpack 'patch-dependencies
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "third_party"
;; HACK: Create dummy files to pretend the bundled sjpeg and
;; skcms exist.
(apply invoke "touch"
'("sjpeg/CMakeLists.txt"
"sjpeg/COPYING"
"skcms/skcms.h"
"skcms/LICENSE"))
(substitute* "CMakeLists.txt"
(("include\\(skcms\\.cmake\\)")
"find_library(SKCMS_LIB NAMES skcms REQUIRED)")
(("include\\(sjpeg\\.cmake\\)")
"find_package(sjpeg REQUIRED)")))
(with-directory-excursion "lib"
(substitute* "jxl_cms.cmake"
(("target_link_skcms\\(jxl_cms\\)")
"target_link_libraries(jxl_cms PRIVATE ${SKCMS_LIB})"))
(substitute* "jxl_extras.cmake"
(("\\.\\.\\/third_party\\/sjpeg\\/src")
(dirname (search-input-file inputs "src/sjpegi.h")))))))
(add-after 'unpack 'unpack-testdata
(lambda _
(rmdir "testdata")
(copy-recursively #$libjxl-testdata "testdata")))
`(#:modules ((guix build cmake-build-system)
(guix build utils)
(srfi srfi-26))
#:configure-flags
(list "-DJPEGXL_FORCE_SYSTEM_GTEST=true"
"-DJPEGXL_FORCE_SYSTEM_BROTLI=true"
"-DJPEGXL_FORCE_SYSTEM_LCMS2=true"
"-DJPEGXL_FORCE_SYSTEM_HWY=true"
"-DJPEGXL_BUNDLE_LIBPNG=false"
"-DJPEGXL_ENABLE_PLUGINS=true")
#:phases
(modify-phases %standard-phases
,@(cond
((target-riscv64?)
'((add-after 'unpack 'fix-atomic
(lambda _
(substitute* "lib/jxl/enc_xyb.cc"
(("#include \"lib/jxl/enc_xyb.h\"" a)
(string-append a "\n#include <atomic>")))))))
((target-x86-32?)
'((add-after 'unpack 'loosen-test-parameter
(lambda _
;; This test fails likely due to a floating point
;; rounding difference.
(substitute* "lib/jxl/color_management_test.cc"
(("8\\.7e-4") "8.7e-3"))))))
(#t '()))
(add-after 'install 'split
(lambda _
(for-each
(lambda (path)
(let ((old (string-append #$output path))
(new (string-append #$output:pixbuf-loader path)))
(install-file old (dirname new))
(delete-file old)
(chmod new #o555)))
'("/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jxl.so"
"/share/thumbnailers/jxl.thumbnailer")))))))
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(out:pixbuf (assoc-ref outputs "pixbuf-loader"))
(thumbnailer (string-append
out
"/share/thumbnailers/jxl.thumbnailer"))
(thumbnailer* (string-append
out:pixbuf
"/share/thumbnailers/jxl.thumbnailer"))
(pixbuf-loader (string-append
out
"/lib/gdk-pixbuf-2.0/2.10.0/loaders/"
"libpixbufloader-jxl.so"))
(pixbuf-loader* (string-append
out:pixbuf
"/lib/gdk-pixbuf-2.0/2.10.0/loaders/"
"libpixbufloader-jxl.so")))
(for-each (lambda (old new)
(install-file old (dirname new))
(delete-file old)
(chmod new #o555))
(list thumbnailer pixbuf-loader)
(list thumbnailer* pixbuf-loader*))))))))
(native-inputs
(list asciidoc
doxygen
googletest
pkg-config
python
(package-source sjpeg))) ;for sjpegi.h
(list asciidoc doxygen googletest pkg-config python))
(inputs
(list freeglut
gdk-pixbuf
@@ -3094,8 +3079,6 @@ Format) file format decoder and encoder.")
libpng
libwebp
openexr
sjpeg
skcms
zlib))
;; These are in Requires.private of libjxl.pc.
(propagated-inputs
+14 -2
View File
@@ -1362,9 +1362,21 @@ code prior to it getting merged into @code{go-cid}.")
(file-name (git-file-name name version))
(sha256
(base32 "00lwizzdfdx6kynxddal3all6q9dhwqanpkw0d0vxlwik4nkvxa5"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin (delete-all-but "." "ipfs")))))
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
;; Consider to implement it as re-usable procedure in
;; guix/build/utils or guix/build-system/go.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "ipfs")))))
(build-system go-build-system)
(arguments
(list
+2 -2
View File
@@ -36,7 +36,7 @@
(define-public jemalloc
(package
(name "jemalloc")
(version "5.3.1")
(version "5.3.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -44,7 +44,7 @@
version "/jemalloc-" version ".tar.bz2"))
(sha256
(base32
"14kgf0hs864hp5xxqfqh37l1d8wwg57h7wv28rffs8ig4f0bq9iq"))))
"1apyxjd1ixy4g8xkr61p0ny8jiz8vyv1j0k4nxqkxpqrf4g2vf1d"))))
(build-system gnu-build-system)
(arguments
(list
+5 -5
View File
@@ -588,11 +588,14 @@ This package is part of the KDE multimedia module.")
(add-after 'install 'wrap-executable
(lambda _
(let* ((ffmpeg #$(this-package-input "ffmpeg"))
(frei0r #$(this-package-input "frei0r-plugins"))
(ladspa #$(this-package-input "ladspa"))
(qtbase #$(this-package-input "qtbase")))
(wrap-program (string-append #$output "/bin/kdenlive")
`("PATH" ":" prefix
,(list (string-append ffmpeg "/bin")))
`("FREI0R_PATH" ":" =
(,(string-append frei0r "/lib/frei0r-1")))
`("LADSPA_PATH" ":" =
(,(string-append ladspa "/lib/ladspa")))
`("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
@@ -600,12 +603,13 @@ This package is part of the KDE multimedia module.")
`("MLT_PREFIX" ":" =
(,#$(this-package-input "mlt"))))))))))
(native-inputs
(list extra-cmake-modules frei0r-api kdoctools pkg-config qttools))
(list extra-cmake-modules kdoctools pkg-config qttools))
(inputs
(list bash-minimal
breeze ; make dark theme available easily
breeze-icons ; recommended icon set
ffmpeg
frei0r-plugins
imath
karchive
kcrash
@@ -634,10 +638,6 @@ This package is part of the KDE multimedia module.")
qtsvg
qtwayland
shared-mime-info))
(native-search-paths
(list (search-path-specification
(variable "FREI0R_PATH")
(files (list "lib/frei0r-1")))))
(home-page "https://kdenlive.org")
(synopsis "Non-linear video editor")
(description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
+27 -3
View File
@@ -92,8 +92,16 @@ tree for exported @acronym{CustomResourceDefinition, CRD} types.")
(file-name (git-file-name name version))
(sha256
(base32 "0d9rjyl5h0xm9isgr8b2fz8528wk3pds71rjl8g08fgsmsa5kicb"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet #~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
;; Replace symlinks to tests with file contents
(for-each
(lambda (f)
@@ -174,8 +182,16 @@ tree for exported @acronym{CustomResourceDefinition, CRD} types.")
(file-name (git-file-name name version))
(sha256
(base32 "0d9rjyl5h0xm9isgr8b2fz8528wk3pds71rjl8g08fgsmsa5kicb"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet #~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "server")
(rename-file "server" "server.tmp")
(mkdir-p "server/v3")
@@ -249,8 +265,16 @@ system.")
(file-name (git-file-name name version))
(sha256
(base32 "0d9rjyl5h0xm9isgr8b2fz8528wk3pds71rjl8g08fgsmsa5kicb"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet #~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "pkg")
(rename-file "pkg" "pkg.tmp")
(mkdir-p "pkg/v3")
+15 -15
View File
@@ -69,6 +69,17 @@
(search-patches "libcanberra-sound-theme-freedesktop.patch"
"libcanberra-wayland-crash.patch"))))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
("gstreamer" ,gstreamer)
("gtk+" ,gtk+)
("libltdl" ,libltdl)
("libvorbis" ,libvorbis)
("pulseaudio" ,pulseaudio)
("udev" ,eudev)
("sound-theme-freedesktop" ,sound-theme-freedesktop)))
(native-inputs
(list pkg-config))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -76,21 +87,10 @@
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/sound-theme-spec.c"
(("@SOUND_THEME_DIRECTORY@")
(dirname
(dirname
(search-input-directory inputs
"share/sounds/freedesktop"))))))))))
(inputs
(list alsa-lib
gstreamer
gtk+
libltdl
libvorbis
pulseaudio
eudev
sound-theme-freedesktop))
(native-inputs
(list pkg-config))
(string-append
(assoc-ref inputs "sound-theme-freedesktop")
"/share")))
#t)))))
(home-page "https://0pointer.de/lennart/projects/libcanberra/")
(synopsis
"Implementation of the XDG Sound Theme and Name Specifications")
+103 -90
View File
@@ -86,7 +86,6 @@
;;; Copyright © 2025 Mathieu Laparie <mlaparie@disr.it>
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2025 Arjan Adriaanse <arjan@adriaan.se>
;;; Copyright © 2025 Dariqq <dariqq@posteo.net>
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2026 Simen Endsjø <contact@simendsjo.me>
;;;
@@ -1219,6 +1218,12 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
(define-public linux-libre-version linux-libre-7.0-version)
(define-public linux-libre-gnu-revision linux-libre-7.0-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-7.0-pristine-source)
(define-public linux-libre-source linux-libre-7.0-source)
(define-public linux-libre linux-libre-7.0)
(define-public linux-libre-6.19
(make-linux-libre* linux-libre-6.19-version
linux-libre-6.19-gnu-revision
@@ -1235,12 +1240,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
(define-public linux-libre-version linux-libre-6.18-version)
(define-public linux-libre-gnu-revision linux-libre-6.18-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-6.18-pristine-source)
(define-public linux-libre-source linux-libre-6.18-source)
(define-public linux-libre linux-libre-6.18)
(define-public linux-libre-6.12
(make-linux-libre* linux-libre-6.12-version
linux-libre-6.12-gnu-revision
@@ -1980,6 +1979,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2-dsi.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform-next.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
(define-public linux-libre-arm64-mnt-reform linux-libre-arm64-mnt-reform-7.0)
(define-public linux-libre-arm64-mnt-reform-6.19
;; Kernel for use on the MNT/Reform systems
;; https://mntre.com/reform.html
@@ -2316,8 +2317,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2-dsi.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform-next.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
(define-public linux-libre-arm64-mnt-reform linux-libre-arm64-mnt-reform-6.18)
(define-public linux-libre-arm64-mnt-reform-6.12
;; Kernel for use on the MNT/Reform systems
;; https://mntre.com/reform.html
@@ -3037,45 +3036,57 @@ which need to be installed separately.")
(define-public linux-pam
(package
(name "linux-pam")
(version "1.7.2")
(version "1.5.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/linux-pam/linux-pam")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append
"https://github.com/linux-pam/linux-pam/releases/download/v"
version "/Linux-PAM-" version ".tar.xz"))
(sha256
(base32
"1z5apric696zsci28c7651spvdll0zrpfm9z574gcjf45mp22gmi"))
"0kgrsj2scv5mx6w925h9hxf11jnqqs9z8s22aw94b90xm4qp3v74"))
(patches (search-patches "linux-pam-unix_chkpwd.patch"
"linux-pam-no-setfsuid.patch"))))
(build-system meson-build-system)
(outputs '("out" "doc")) ;; 0.8 MiB of html
(build-system gnu-build-system)
(inputs (list libxcrypt))
(native-inputs
(list gettext-minimal
flex bison
;; manpages
libxslt
libxml2
docbook-xml
docbook-xsl))
(list flex
;; TODO: optional dependencies
;; ("cracklib" ,cracklib)
))
(arguments
(list
#:configure-flags
#~(list
;; lastlog is deprecated since 1.5.3
"-Dpam_lastlog=enabled"
(string-append "-Dvendordir=" #$output "/share/pam")
(string-append "-Ddocbook-rng="
#$(let ((docbook-xml (this-package-native-input
"docbook-xml")))
(file-append docbook-xml
"/xml/docbook/"
(package-version docbook-xml)
"/rng/docbookxi.rng")))
(string-append "-Dhtmldir=" #$output:doc "/share/doc/" #$name "/html"))
;; Most users, such as `shadow', expect the headers to be under
;; `security'.
#:configure-flags #~(list (string-append "--includedir="
(assoc-ref %outputs "out")
"/include/security")
;; explicit libdir for pkgconfig files
;; drop with 1.5.3, which fixes
;; https://github.com/linux-pam/linux-pam/issues/466
(string-append "--libdir="
(assoc-ref %outputs "out")
"/lib")
;; XXX: <rpc/rpc.h> is missing from glibc when
;; cross-compiling, so we have to disable NIS
;; support altogether.
#$@(if (%current-target-system)
#~("--disable-nis")
#~()))
#:phases (if (target-hurd?)
#~(modify-phases %standard-phases
(add-after 'unpack 'skip-pam-limits
(lambda _
;; 'pam_limits.c' uses <sys/prctl.h>, which is
;; Linux-specific. Skip it on GNU/Hurd.
(substitute* "modules/Makefile.in"
(("pam_limits") "")))))
#~%standard-phases)
;; XXX: Tests won't run in chroot, presumably because /etc/pam.d
;; isn't available.
#:tests? #f))
@@ -4550,7 +4561,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
(define-public iproute
(package
(name "iproute2")
(version "7.0.0")
(version "6.4.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -4558,7 +4569,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
version ".tar.xz"))
(sha256
(base32
"0kiggxwnjsglxnj43wqkc0rmq0acxf6xqcgk7ddc0qyynpvr0a76"))))
"0wm2g70vfhnf8wb6py3zmzwxp4zv1icny1pvkwaxmr67rggbhlac"))))
(build-system gnu-build-system)
(arguments
(list
@@ -4570,7 +4581,6 @@ that the Ethernet protocol is much simpler than the IP protocol.")
"HOSTCC=gcc"
(string-append "BASH_COMPDIR=" out
"/etc/bash_completion.d")
(string-append "PREFIX=" out)
(string-append "LIBDIR=" out "/lib")
(string-append "HDRDIR=" out "/include")
(string-append "SBINDIR=" out "/sbin")
@@ -4595,7 +4605,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
(substitute* "Makefile"
(("^.*ARPDDIR.*$") "")))))))
(inputs
(list bdb iptables libbpf libcap libelf libmnl libselinux libtirpc))
(list bdb iptables libmnl))
(native-inputs
(list bison flex pkg-config))
;; For tests.
@@ -4624,62 +4634,65 @@ inadequately in modern network environments, and both should be deprecated.")
(revision "0"))
(package
(name "net-tools")
(version (string-append "1.60-" revision "."
(string-take commit 7)))
(source
(origin
(method url-fetch)
(uri (string-append "https://sourceforge.net/code-snapshots/git/"
"n/ne/net-tools/code.git/net-tools-code-" commit
".zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32 "0hz9fda9d78spp774b6rr5xaxav7cm4h0qcpxf70rvdbrf6qx7vy"))))
(version (string-append "1.60-" revision "." (string-take commit 7)))
(source (origin
(method url-fetch)
(uri (string-append "https://sourceforge.net/code-snapshots/git/"
"n/ne/net-tools/code.git/net-tools-code-"
commit ".zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"0hz9fda9d78spp774b6rr5xaxav7cm4h0qcpxf70rvdbrf6qx7vy"))))
(home-page "https://net-tools.sourceforge.net/")
(build-system gnu-build-system)
(arguments
(list
;; Binaries that depend on libnet-tools.a don't declare that
;; dependency, making it parallel-unsafe.
#:parallel-build? #f
#:tests? #f ;no test suite
#:make-flags
#~(list #$(string-append "CC=" (cc-for-target))
(string-append "BASEDIR=" #$output)
(string-append "INSTALLNLSDIR=" #$output "/share/locale")
(string-append "mandir=/share/man"))
#:modules `((guix build gnu-build-system)
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda _
(mkdir-p (string-append #$output "/bin"))
(mkdir-p (string-append #$output "/sbin"))
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/bin"))
(mkdir-p (string-append out "/sbin"))
;; Pretend we have everything...
(system "yes | make config")
;; Pretend we have everything...
(system "yes | make config")
;; ... except for the things we don't have.
;; HAVE_AFDECnet requires libdnet, which we don't have.
;; HAVE_HWSTRIP and HAVE_HWTR require kernel headers
;; that have been removed.
;; XXX SELINUX and AFBLUETOOTH are removed for now, but we should
;; think about adding them later.
(substitute* '("config.make" "config.h")
(("^.*HAVE_(AFDECnet|HWSTRIP|HWTR|SELINUX|AFBLUETOOTH)[ =]1.*$")
""))))
(add-after 'install 'remove-redundant-commands
(lambda _
;; Remove commands and man pages redundant with Inetutils.
(for-each delete-file
(append-map (cute find-files #$output <>)
'("^hostname"
"^(yp|nis|dns)?domainname"))))))))
(native-inputs (list gettext-minimal unzip))
;; ... except for the things we don't have.
;; HAVE_AFDECnet requires libdnet, which we don't have.
;; HAVE_HWSTRIP and HAVE_HWTR require kernel headers
;; that have been removed.
;; XXX SELINUX and AFBLUETOOTH are removed for now, but we should
;; think about adding them later.
(substitute* '("config.make" "config.h")
(("^.*HAVE_(AFDECnet|HWSTRIP|HWTR|SELINUX|AFBLUETOOTH)[ =]1.*$")
""))
#t)))
(add-after 'install 'remove-redundant-commands
(lambda* (#:key outputs #:allow-other-keys)
;; Remove commands and man pages redundant with Inetutils.
(let* ((out (assoc-ref outputs "out"))
(dup (append-map (cut find-files out <>)
'("^hostname"
"^(yp|nis|dns)?domainname"))))
(for-each delete-file dup)
#t))))
;; Binaries that depend on libnet-tools.a don't declare that
;; dependency, making it parallel-unsafe.
#:parallel-build? #f
#:tests? #f ; no test suite
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list ,(string-append "CC=" (cc-for-target))
(string-append "BASEDIR=" out)
(string-append "INSTALLNLSDIR=" out "/share/locale")
(string-append "mandir=/share/man")))))
(native-inputs `(("gettext" ,gettext-minimal)
("unzip" ,unzip)))
(supported-systems (remove target-hurd? %supported-systems))
(synopsis "Tools for controlling the network subsystem in Linux")
(description
+14 -4
View File
@@ -785,10 +785,20 @@ operating systems.")
(file-name (git-file-name name version))
(sha256
(base32 "1sg6ifabci7xyp3zds1w906vx6jsmyjlfr6bqld7m7hj07by9ndd"))
(modules '((guix build utils)))
(snippet #~(delete-all-but "autosetup"
"mutt-gettext.tcl"
"mutt-iconv.tcl"))))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "autosetup"
"mutt-gettext.tcl"
"mutt-iconv.tcl")))))
(build-system gnu-build-system)
(inputs
(list cyrus-sasl
+90 -60
View File
@@ -3592,24 +3592,23 @@ can solve two kinds of problems:
(variable "CURLOPT_CAPATH")
(files '("etc/ssl/certs")))))
(arguments
(list
#:configure-flags
#~(list (string-append "--with-shell="
(assoc-ref %build-inputs "bash")
"/bin/sh")
`(#:configure-flags
(list (string-append "--with-shell="
(assoc-ref %build-inputs "bash")
"/bin/sh")
;; XXX: Without this flag, linking octave-cli fails with
;; undefined references to 'logf@GLIBCXX_3.4' et.al. due to
;; not pulling in liboctinterp.la for -lstdc++.
"--enable-link-all-dependencies")
#:phases
#~(modify-phases %standard-phases
(add-after 'configure 'configure-makeinfo
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libinterp/corefcn/help.h"
(("\"makeinfo\"")
(format #f "~s"
(search-input-file inputs "bin/makeinfo")))))))))
;; XXX: Without this flag, linking octave-cli fails with
;; undefined references to 'logf@GLIBCXX_3.4' et.al. due to
;; not pulling in liboctinterp.la for -lstdc++.
"--enable-link-all-dependencies")
#:phases
(modify-phases %standard-phases
(add-after 'configure 'configure-makeinfo
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libinterp/corefcn/help.h"
(("\"makeinfo\"")
(string-append
"\"" (assoc-ref inputs "texinfo") "/bin/makeinfo\""))))))))
(home-page "https://www.gnu.org/software/octave/")
(synopsis "High-level language for numerical computation (no GUI)")
(description "GNU Octave is a high-level interpreted language that is
@@ -5822,14 +5821,13 @@ software from KarypisLab, such as METIS.")
`((release-monitoring-url
. "http://glaros.dtc.umn.edu/gkhome/metis/metis/download")))
(build-system cmake-build-system)
(inputs
`(("blas" ,openblas)))
(arguments
(list
#:tests? #f ;no tests
#:configure-flags
#~(list "-DSHARED=ON"
(string-append "-DGKLIB_PATH="
(getcwd) "/metis-" #$version "/GKlib"))))
(inputs (list openblas))
`(#:tests? #f ;no tests
#:configure-flags `("-DSHARED=ON"
,(string-append "-DGKLIB_PATH=" (getcwd)
"/metis-" ,version "/GKlib"))))
(home-page "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview")
(synopsis "Graph partitioning and fill-reducing matrix ordering library")
(description
@@ -7531,47 +7529,47 @@ factorization.")
#t))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no "check" target
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"TBB=-ltbb"
"MY_METIS_LIB=-lmetis"
`(#:tests? #f ;no "check" target
#:make-flags
(list (string-append "CC=" ,(cc-for-target))
"TBB=-ltbb"
"MY_METIS_LIB=-lmetis"
;; The default is to link against netlib lapack. Use OpenBLAS
;; instead.
"BLAS=-lopenblas"
"LAPACK=-lopenblas"
;; The default is to link against netlib lapack. Use OpenBLAS
;; instead.
"BLAS=-lopenblas" "LAPACK=-lopenblas"
;; Flags for cmake (required to build GraphBLAS and Mongoose)
(string-append
"CMAKE_OPTIONS=-DCMAKE_INSTALL_PREFIX=" #$output
" -DCMAKE_VERBOSE_MAKEFILE=ON"
" -DCMAKE_C_FLAGS_RELEASE=\"$(CFLAGS) $(CPPFLAGS)\""
" -DCMAKE_CXX_FLAGS_RELEASE=\"$(CXXFLAGS) $(CPPFLAGS)\""
" -DCMAKE_SKIP_RPATH=TRUE"
" -DCMAKE_BUILD_TYPE=Release"
" -DCMAKE_INSTALL_LIBDIR=lib")
(string-append "INSTALL_LIB=" #$output "/lib")
(string-append "INSTALL_INCLUDE=" #$output "/include")
"library")
#:phases
#~(modify-phases %standard-phases
#$@(if (target-riscv64?)
;; GraphBLAS FTBFS on riscv64-linux
#~((add-after 'unpack 'skip-graphblas
(lambda _
(substitute* "Makefile"
((".*cd GraphBLAS.*")
"")
(("metisinstall gbinstall moninstall")
"metisinstall moninstall")))))
#~())
(delete 'configure)))) ;no configure script
;; Flags for cmake (required to build GraphBLAS and Mongoose)
(string-append "CMAKE_OPTIONS=-DCMAKE_INSTALL_PREFIX="
(assoc-ref %outputs "out")
" -DCMAKE_VERBOSE_MAKEFILE=ON"
" -DCMAKE_C_FLAGS_RELEASE=\"$(CFLAGS) $(CPPFLAGS)\""
" -DCMAKE_CXX_FLAGS_RELEASE=\"$(CXXFLAGS) $(CPPFLAGS)\""
" -DCMAKE_SKIP_RPATH=TRUE"
" -DCMAKE_BUILD_TYPE=Release"
" -DCMAKE_INSTALL_LIBDIR=lib")
(string-append "INSTALL_LIB="
(assoc-ref %outputs "out") "/lib")
(string-append "INSTALL_INCLUDE="
(assoc-ref %outputs "out") "/include")
"library")
#:phases
(modify-phases %standard-phases
,@(if (target-riscv64?)
;; GraphBLAS FTBFS on riscv64-linux
`((add-after 'unpack 'skip-graphblas
(lambda _
(substitute* "Makefile"
((".*cd GraphBLAS.*") "")
(("metisinstall gbinstall moninstall")
"metisinstall moninstall")))))
'())
(delete 'configure)))) ;no configure script
(inputs
(list tbb openblas gmp mpfr metis))
(native-inputs
(list cmake-minimal m4))
`(("cmake" ,cmake-minimal)
("m4" ,m4)))
(home-page "https://faculty.cse.tamu.edu/davis/suitesparse.html")
(synopsis "Suite of sparse matrix software")
(description
@@ -11734,3 +11732,35 @@ use the library and researchers to make new capabilities available under a
common interface.
")
(license license:bsd-3)))
(define-public xdmf
(package
(name "xdmf")
;; Project does not publish releases / tags
(properties '((commit . "04a84bab0eb1568e0f1a27c8fb60c6931efda003")
(revision . "0")))
(version (git-version "3.0.0"
(assoc-ref properties 'revision)
(assoc-ref properties 'commit)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.kitware.com/xdmf/xdmf")
(commit (assoc-ref properties 'commit))))
(file-name (git-file-name name version))
(patches
(search-patches "xdmf-3.0.0-hdf5.patch"))
(sha256
(base32 "06k4vibkvgxlzkn06x470aq5q18p7yhql8awrpdz3czys3z8i288"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f)) ;has no tests
(inputs
(list boost hdf5 libxml2))
(home-page "https://www.xdmf.org/index.html")
(synopsis "XDMF library")
(description
"This package provides the eXtensible Data Model and Format (XDMF) C++
library.")
(license license:bsd-4)))
+10 -3
View File
@@ -11,6 +11,7 @@
;;; Copyright © 2025 Arjan Adriaanse <arjan@adriaan.se>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2026 Zheng Junjie <z572@z572.online>
;;; Copyright © 2026 orahcio <orahcio@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -59,7 +60,7 @@
(define-public mautrix-whatsapp
(package
(name "mautrix-whatsapp")
(version "0.11.2")
(version "0.2605.0")
(source
(origin
(method git-fetch)
@@ -68,7 +69,7 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wn9kldhh865w5mbg3cl61m0db9nr7zl1j8lqs2dixsaihv1lbnx"))))
(base32 "02gmzby57vn5cc23m2laqcqqkvghlabm08fzjzqfzx8g18cmymas"))))
(build-system go-build-system)
(arguments
(list
@@ -105,7 +106,13 @@
;; go.mau.fi/webp/webp.go:14:12: pattern internal: cannot embed
;; directory internal: contains no embeddable files
".*\\.c"
".*\\.h")))
".*\\.h"
;; go.mau.fi/whatsmeow/argo/argo.go:16:13:
;; pattern argo-wire-type-store.argo: cannot embed
".*\\.argo"
;; go.mau.fi/whatsmeow/argo/argo.go:19:13:
;; pattern name-to-queryids.json: cannot embed
".*\\.json")))
(native-inputs
(list olm
go-github-com-gorilla-mux
+51
View File
@@ -47,6 +47,7 @@
;;; Copyright © 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Adrien 'neox' Bourmault <neox@gnu.org>
;;; Copyright © 2026 orahcio <orahcio@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3459,6 +3460,56 @@ a persistent connection to an IRC server, acting as a proxy and buffer for
a number of clients.")
(license license:gpl3+)))
(define-public whatscli
(package
(name "whatscli")
(version "1.1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/normen/whatscli")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ijp0783h4hivj33qi10azhq1bl512jq1wrva2alpkv7wp4qhnw6"))))
(build-system go-build-system)
(arguments
(list
#:install-source? #f
#:import-path "github.com/normen/whatscli"
#:embed-files #~(list ".*\\.argo" ".*\\.json" ".*\\.sql")))
(native-inputs
(list go-code-rocketnine-space-tslocum-cbind
go-github-com-adrg-xdg
go-github-com-gdamore-tcell-v2
go-github-com-gen2brain-beeep
go-github-com-mattn-go-colorable
go-github-com-mattn-go-sqlite3
go-github-com-rivo-tview
go-github-com-skip2-go-qrcode
go-github-com-skratchdot-open-golang
go-github-com-zyedidia-clipboard
go-go-mau-fi-whatsmeow
go-google-golang-org-protobuf
go-gopkg-in-ini-v1))
(home-page "https://github.com/normen/whatscli")
(synopsis "Command line interface for WhatsApp")
(description
"WhatsCLI is a command-line interface for WhatsApp that connects
through the Web App API without requiring a browser. It provides a
terminal-based user interface built with tview, featuring:
@itemize
@item Sending and receiving WhatsApp messages in a terminal
@item QR code setup for simple authentication
@item Downloading and opening image, video, audio, and document attachments
@item Sending images, video, audio, and document attachments
@item Basic group management capabilities
@item Desktop notifications support
@item Color customization options
@end itemize")
(license license:expat)))
(define-public weechat-wee-slack
(package
(name "weechat-wee-slack")
+10 -1
View File
@@ -336,9 +336,18 @@ software vendors, application developers and computer science researchers.")
(uri (string-append "https://www.open-mpi.org/software/ompi/v"
(version-major+minor version)
"/downloads/openmpi-" version ".tar.bz2"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
'(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
;; Delete as many bundled libraries as permitted by the build
;; system.
(delete-all-but "3rd-party" "treematch" "Makefile.in" "Makefile.am")
+16 -12
View File
@@ -103,6 +103,18 @@
#t))))
(build-system gnu-build-system)
(inputs `(("ghostscript" ,ghostscript)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libtiff" ,libtiff)
("libxml2" ,libxml2)
("xorg-rgb" ,xorg-rgb)
("zlib" ,zlib)))
(native-inputs
`(("flex" ,flex)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
@@ -160,7 +172,8 @@
;; Skip tests that use nonfree programs that we don't build.
(("ps-alt-roundtrip.test") "" )
(("pbm-misc-converters.test") ""))))
(("pbm-misc-converters.test") ""))
#t))
(replace 'install
(lambda* (#:key outputs make-flags #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@@ -177,17 +190,8 @@
(symlink
(match (find-files "." "^libnetpbm\\.so\\.[^.]*\\.[^.]*$")
((head _ ...) head))
"libnetpbm.so")))))))))
(inputs
(list ghostscript
libjpeg-turbo
libpng
libtiff
libxml2
xorg-rgb
zlib))
(native-inputs
(list flex perl pkg-config python-wrapper))
"libnetpbm.so"))
#t)))))))
(synopsis "Toolkit for manipulation of images")
(description
"Netpbm is a toolkit for the manipulation of graphic images, including
+3 -4
View File
@@ -103,7 +103,7 @@ in the Mozilla clients.")
(define-public nss
(package
(name "nss")
(version "3.112.5") ;update to latest ESR release
(version "3.101.4") ;update to latest ESR release
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@@ -114,13 +114,12 @@ in the Mozilla clients.")
"nss-" version ".tar.gz")))
(sha256
(base32
"03chsv0bjd2fi8lab241grbyqd4blapll5lbrpraddpd5mc8rjx4"))
"1sqvh49qi9vq55sbg42c5n0kz6w6ni383hgiyhaym6drsmbzb86a"))
;; Create nss.pc and nss-config.
(patches (search-patches "nss-3.56-pkgconfig.patch"
"nss-getcwd-nonnull.patch"
"nss-increase-test-timeout.patch"
"nss-3.115-disable-broken-tests.patch"
"nss-3.115-disable-pkix-ocsp-tests.patch"))
"nss-disable-broken-tests.patch"))
(modules '((guix build utils)))
(snippet
'(begin
+44 -26
View File
@@ -40,39 +40,42 @@
(define-public libtirpc
(package
(name "libtirpc")
(version "1.3.7")
(version "1.3.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libtirpc/libtirpc/"
version "/libtirpc-"
version ".tar.bz2"))
(patches (search-patches "libtirpc-hurd.patch"))
(patches (search-patches "libtirpc-CVE-2021-46828.patch"))
(sha256
(base32
"00n7cq5dggfknvyqr193c5qxlx0681n9l0fh0m5faj9mkp0klzdl"))))
"05zf16ilwwkzv4cccaac32nssrj3rg444n9pskiwbgk6y359an14"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "--disable-static"
;; When cross-building use the target system's krb5-config
#$@(if (%current-target-system)
#~((string-append "ac_cv_prog_KRB5_CONFIG="
#$(this-package-input "mit-krb5")
"/bin/krb5-config"))
'()))
`(#:configure-flags '("--disable-static")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'adjust-netconfig-reference
(lambda* (#:key outputs #:allow-other-keys)
(substitute* '("man/netconfig.5"
"man/getnetconfig.3t"
"man/getnetpath.3t"
"man/rpc.3t"
"src/getnetconfig.c"
"tirpc/netconfig.h")
(("/etc/netconfig") (string-append (assoc-ref outputs "out")
"/etc/netconfig"))))))))
(modify-phases %standard-phases
(add-after 'unpack 'adjust-netconfig-reference
(lambda* (#:key outputs #:allow-other-keys)
(substitute* '("man/netconfig.5"
"man/getnetconfig.3t"
"man/getnetpath.3t"
"man/rpc.3t"
"src/getnetconfig.c"
"tirpc/netconfig.h")
(("/etc/netconfig") (string-append (assoc-ref outputs "out")
"/etc/netconfig")))))
,@(if (%current-target-system)
`((add-after 'unpack 'adjust-pkg-config
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libtirpc.pc.in"
(("-ltirpc")
(string-append "-ltirpc"
" -L" (dirname (search-input-file
inputs "/lib/libkrb5.so"))
" -lkrb5"))))))
`()))))
(native-inputs (list mit-krb5)) ;; for cross-compilation
(inputs (list mit-krb5))
(home-page "https://sourceforge.net/projects/libtirpc/")
(synopsis "Transport-independent Sun/ONC RPC implementation")
@@ -82,8 +85,19 @@ procedure calls) protocol in a transport-independent manner. It supports both
IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).")
(license bsd-3)))
;; XXX: Deprecated on 2026-05-26.
(define-deprecated-package libtirpc/hurd libtirpc)
(define-public libtirpc/hurd
(package/inherit libtirpc
(name "libtirpc-hurd")
(source (origin (inherit (package-source libtirpc))
(patches (search-patches "libtirpc-hurd.patch"
"libtirpc-CVE-2021-46828.patch"))))
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags ''())
;; When cross-building the target system's krb5-config should be used.
#~(list (string-append "ac_cv_prog_KRB5_CONFIG="
#$(this-package-input "mit-krb5")
"/bin/krb5-config")))))))
(define-public rpcbind
(package
@@ -151,7 +165,11 @@ from the protocol files.")
(arguments
`(#:configure-flags '("--disable-static")))
(native-inputs
(list autoconf automake gettext-minimal libtool pkg-config))
`(("autoconf" ,autoconf)
("automake" ,automake)
("gettext" ,gettext-minimal)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(inputs
(list libtirpc))
(synopsis "Public client interface for NIS(YP) and NIS+")
@@ -5,74 +5,60 @@ must be called when no other threads exist).
This fixes network functionality in rust:cargo, and probably removes the need
for other future workarounds.
===================================================================
Index: curl-8.19.0/lib/easy.c
===================================================================
--- curl-8.19.0.orig/lib/easy.c
+++ curl-8.19.0/lib/easy.c
@@ -117,6 +117,9 @@ curl_calloc_callback Curl_ccalloc = (cur
--- curl-8.5.0.orig/lib/easy.c 2023-12-17 00:36:32.400468561 -0500
+++ curl-8.5.0/lib/easy.c 2023-12-17 00:39:08.898612331 -0500
@@ -137,6 +137,9 @@
static char *leakpointer;
#endif
+char * Curl_ssl_cert_dir = NULL;
+char * Curl_ssl_cert_file = NULL;
+
/**
* curl_global_init() globally initializes curl given a bitwise set of the
* different features of what to initialize.
@@ -140,6 +143,9 @@ static CURLcode global_init(long flags,
@@ -163,6 +166,9 @@
goto fail;
}
+ Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR");
+ Curl_ssl_cert_file = curl_getenv("SSL_CERT_FILE");
+
if(!Curl_ssl_init()) {
DEBUGF(curl_mfprintf(stderr, "Error: Curl_ssl_init failed\n"));
DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n"));
goto fail;
@@ -269,6 +275,9 @@ void curl_global_cleanup(void)
@@ -287,6 +293,9 @@
Curl_ssl_cleanup();
Curl_async_global_cleanup();
Curl_resolver_global_cleanup();
+ free(Curl_ssl_cert_dir);
+ free(Curl_ssl_cert_file);
+
#ifdef _WIN32
Curl_win32_cleanup(easy_init_flags);
#endif
Index: curl-8.19.0/lib/vtls/vtls.c
===================================================================
--- curl-8.19.0.orig/lib/vtls/vtls.c
+++ curl-8.19.0/lib/vtls/vtls.c
@@ -294,10 +294,8 @@ static void free_primary_ssl_config(stru
CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
{
struct ssl_config_data *sslc = &data->set.ssl;
-#if defined(CURL_CA_PATH) || defined(CURL_CA_BUNDLE)
struct UserDefined *set = &data->set;
CURLcode result;
-#endif
if(Curl_ssl_backend() != CURLSSLBACKEND_SCHANNEL) {
#if defined(USE_APPLE_SECTRUST) || defined(CURL_CA_NATIVE)
@@ -318,6 +316,21 @@ CURLcode Curl_ssl_easy_config_complete(s
return result;
}
diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c
--- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100
+++ curl-7.66.0/lib/url.c 2020-01-02 16:21:11.563880346 +0100
@@ -524,6 +524,21 @@
if(result)
return result;
#endif
+ extern char * Curl_ssl_cert_dir;
+ extern char * Curl_ssl_cert_file;
+ if(Curl_ssl_cert_dir) {
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH], Curl_ssl_cert_dir))
+ return result;
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_PROXY], Curl_ssl_cert_dir))
+ return result;
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH], Curl_ssl_cert_dir))
+ return result;
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_PROXY], Curl_ssl_cert_dir))
+ return result;
+ }
+
+ if(Curl_ssl_cert_file) {
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE], Curl_ssl_cert_file))
+ return result;
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_PROXY], Curl_ssl_cert_file))
+ return result;
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE], Curl_ssl_cert_file))
+ return result;
+ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_PROXY], Curl_ssl_cert_file))
+ return result;
+ }
}
sslc->primary.CAfile = data->set.str[STRING_SSL_CAFILE];
sslc->primary.CRLfile = data->set.str[STRING_SSL_CRLFILE];
set->wildcard_enabled = FALSE;
@@ -0,0 +1,567 @@
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-46828
https://nvd.nist.gov/vuln/detail/CVE-2021-46828
http://git.linux-nfs.org/?p=steved/libtirpc.git;a=commit;h=86529758570cef4c73fb9b9c4104fdc510f701ed
From 86529758570cef4c73fb9b9c4104fdc510f701ed Mon Sep 17 00:00:00 2001
From: Dai Ngo <dai.ngo@oracle.com>
Date: Sat, 21 Aug 2021 13:16:23 -0400
Subject: [PATCH] Fix DoS vulnerability in libtirpc
Currently svc_run does not handle poll timeout and rendezvous_request
does not handle EMFILE error returned from accept(2 as it used to.
These two missing functionality were removed by commit b2c9430f46c4.
The effect of not handling poll timeout allows idle TCP conections
to remain ESTABLISHED indefinitely. When the number of connections
reaches the limit of the open file descriptors (ulimit -n) then
accept(2) fails with EMFILE. Since there is no handling of EMFILE
error this causes svc_run() to get in a tight loop calling accept(2).
This resulting in the RPC service of svc_run is being down, it's
no longer able to service any requests.
RPC service rpcbind, statd and mountd are effected by this
problem.
Fix by enhancing rendezvous_request to keep the number of
SVCXPRT conections to 4/5 of the size of the file descriptor
table. When this thresold is reached, it destroys the idle
TCP connections or destroys the least active connection if
no idle connnction was found.
Fixes: 44bf15b8 rpcbind: don't use obsolete svc_fdset interface of libtirpc
Signed-off-by: dai.ngo@oracle.com
Signed-off-by: Steve Dickson <steved@redhat.com>
---
INSTALL | 371 +----------------------------------------------------------
src/svc.c | 17 ++-
src/svc_vc.c | 62 +++++++++-
3 files changed, 78 insertions(+), 372 deletions(-)
mode change 100644 => 120000 INSTALL
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index 2099840..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,370 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
-Inc.
-
- Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved. This file is offered as-is,
-without warranty of any kind.
-
-Basic Installation
-==================
-
- Briefly, the shell command `./configure && make && make install'
-should configure, build, and install this package. The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package. Some packages provide this
-`INSTALL' file but do not implement all of the features documented
-below. The lack of an optional feature in a given package is not
-necessarily a bug. More recommendations for GNU packages can be found
-in *note Makefile Conventions: (standards)Makefile Conventions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
-
- The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system.
-
- Running `configure' might take a while. While running, it prints
- some messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package, generally using the just-built uninstalled binaries.
-
- 4. Type `make install' to install the programs and any data files and
- documentation. When installing into a prefix owned by root, it is
- recommended that the package be configured and built as a regular
- user, and only the `make install' phase executed with root
- privileges.
-
- 5. Optionally, type `make installcheck' to repeat any self-tests, but
- this time using the binaries in their final installed location.
- This target does not install anything. Running this target as a
- regular user, particularly if the prior `make install' required
- root privileges, verifies that the installation completed
- correctly.
-
- 6. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
- 7. Often, you can also type `make uninstall' to remove the installed
- files again. In practice, not all packages have tested that
- uninstallation works correctly, even though it is required by the
- GNU Coding Standards.
-
- 8. Some packages, particularly those that use Automake, provide `make
- distcheck', which can by used by developers to test that all other
- targets like `make install' and `make uninstall' work correctly.
- This target is generally not run by end users.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you can use GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'. This
-is known as a "VPATH" build.
-
- With a non-GNU `make', it is safer to compile the package for one
-architecture at a time in the source code directory. After you have
-installed the package for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
- On MacOS X 10.5 and later systems, you can create libraries and
-executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple `-arch' options to the
-compiler but only a single `-arch' option to the preprocessor. Like
-this:
-
- ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CPP="gcc -E" CXXCPP="g++ -E"
-
- This is not guaranteed to produce working output in all cases, you
-may have to build one architecture at a time and combine the results
-using the `lipo' tool if you have problems.
-
-Installation Names
-==================
-
- By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX', where PREFIX must be an
-absolute file name.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them. In general, the
-default for these options is expressed in terms of `${prefix}', so that
-specifying just `--prefix' will affect all of the other directory
-specifications that were not explicitly provided.
-
- The most portable way to affect installation locations is to pass the
-correct locations to `configure'; however, many packages provide one or
-both of the following shortcuts of passing variable assignments to the
-`make install' command line to change installation locations without
-having to reconfigure or recompile.
-
- The first method involves providing an override variable for each
-affected directory. For example, `make install
-prefix=/alternate/directory' will choose an alternate location for all
-directory configuration variables that were expressed in terms of
-`${prefix}'. Any directories that were specified during `configure',
-but not in terms of `${prefix}', must each be overridden at install
-time for the entire installation to be relocated. The approach of
-makefile variable overrides for each directory variable is required by
-the GNU Coding Standards, and ideally causes no recompilation.
-However, some platforms have known limitations with the semantics of
-shared libraries that end up requiring recompilation when using this
-method, particularly noticeable in packages that use GNU Libtool.
-
- The second method involves providing the `DESTDIR' variable. For
-example, `make install DESTDIR=/alternate/directory' will prepend
-`/alternate/directory' before all installation names. The approach of
-`DESTDIR' overrides is not required by the GNU Coding Standards, and
-does not work on platforms that have drive letters. On the other hand,
-it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of `${prefix}'
-at `configure' time.
-
-Optional Features
-=================
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
- Some packages offer the ability to configure how verbose the
-execution of `make' will be. For these packages, running `./configure
---enable-silent-rules' sets the default to minimal output, which can be
-overridden with `make V=1'; while running `./configure
---disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
-
-Particular systems
-==================
-
- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
-CC is not installed, it is recommended to use the following options in
-order to use an ANSI C compiler:
-
- ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
-
-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-
- HP-UX `make' updates targets which have the same time stamps as
-their prerequisites, which makes it generally unusable when shipped
-generated files such as `configure' are involved. Use GNU `make'
-instead.
-
- On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its `<wchar.h>' header file. The option `-nodtk' can be used as
-a workaround. If GNU CC is not installed, it is therefore recommended
-to try
-
- ./configure CC="cc"
-
-and if that doesn't work, try
-
- ./configure CC="cc -nodtk"
-
- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
-directory contains several dysfunctional programs; working variants of
-these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
-in your `PATH', put it _after_ `/usr/bin'.
-
- On Haiku, software installed for all users goes in `/boot/common',
-not `/usr/local'. It is recommended to use the following options:
-
- ./configure --prefix=/boot/common
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS
- KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
- Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf limitation. Until the limitation is lifted, you can use
-this workaround:
-
- CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-`configure' Invocation
-======================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
- Print a summary of all of the options to `configure', and exit.
-
-`--help=short'
-`--help=recursive'
- Print a summary of the options unique to this package's
- `configure', and exit. The `short' variant lists options used
- only in the top level, while the `recursive' variant lists options
- also present in any nested packages.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--prefix=DIR'
- Use DIR as the installation prefix. *note Installation Names::
- for more details, including other options available for fine-tuning
- the installation locations.
-
-`--no-create'
-`-n'
- Run the configure checks, but stop before creating any output
- files.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
diff --git a/INSTALL b/INSTALL
new file mode 120000
index 0000000..e3f22c0
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1 @@
+/usr/share/automake-1.16/INSTALL
\ No newline at end of file
diff --git a/src/svc.c b/src/svc.c
index 6db164b..3a8709f 100644
--- a/src/svc.c
+++ b/src/svc.c
@@ -57,7 +57,7 @@
#define max(a, b) (a > b ? a : b)
-static SVCXPRT **__svc_xports;
+SVCXPRT **__svc_xports;
int __svc_maxrec;
/*
@@ -194,6 +194,21 @@ __xprt_do_unregister (xprt, dolock)
rwlock_unlock (&svc_fd_lock);
}
+int
+svc_open_fds()
+{
+ int ix;
+ int nfds = 0;
+
+ rwlock_rdlock (&svc_fd_lock);
+ for (ix = 0; ix < svc_max_pollfd; ++ix) {
+ if (svc_pollfd[ix].fd != -1)
+ nfds++;
+ }
+ rwlock_unlock (&svc_fd_lock);
+ return (nfds);
+}
+
/*
* Add a service program to the callout list.
* The dispatch routine will be called when a rpc request for this
diff --git a/src/svc_vc.c b/src/svc_vc.c
index f1d9f00..3dc8a75 100644
--- a/src/svc_vc.c
+++ b/src/svc_vc.c
@@ -64,6 +64,8 @@
extern rwlock_t svc_fd_lock;
+extern SVCXPRT **__svc_xports;
+extern int svc_open_fds();
static SVCXPRT *makefd_xprt(int, u_int, u_int);
static bool_t rendezvous_request(SVCXPRT *, struct rpc_msg *);
@@ -82,6 +84,7 @@ static void svc_vc_ops(SVCXPRT *);
static bool_t svc_vc_control(SVCXPRT *xprt, const u_int rq, void *in);
static bool_t svc_vc_rendezvous_control (SVCXPRT *xprt, const u_int rq,
void *in);
+static int __svc_destroy_idle(int timeout);
struct cf_rendezvous { /* kept in xprt->xp_p1 for rendezvouser */
u_int sendsize;
@@ -313,13 +316,14 @@ done:
return (xprt);
}
+
/*ARGSUSED*/
static bool_t
rendezvous_request(xprt, msg)
SVCXPRT *xprt;
struct rpc_msg *msg;
{
- int sock, flags;
+ int sock, flags, nfds, cnt;
struct cf_rendezvous *r;
struct cf_conn *cd;
struct sockaddr_storage addr;
@@ -379,6 +383,16 @@ again:
gettimeofday(&cd->last_recv_time, NULL);
+ nfds = svc_open_fds();
+ if (nfds >= (_rpc_dtablesize() / 5) * 4) {
+ /* destroy idle connections */
+ cnt = __svc_destroy_idle(15);
+ if (cnt == 0) {
+ /* destroy least active */
+ __svc_destroy_idle(0);
+ }
+ }
+
return (FALSE); /* there is never an rpc msg to be processed */
}
@@ -820,3 +834,49 @@ __svc_clean_idle(fd_set *fds, int timeout, bool_t cleanblock)
{
return FALSE;
}
+
+static int
+__svc_destroy_idle(int timeout)
+{
+ int i, ncleaned = 0;
+ SVCXPRT *xprt, *least_active;
+ struct timeval tv, tdiff, tmax;
+ struct cf_conn *cd;
+
+ gettimeofday(&tv, NULL);
+ tmax.tv_sec = tmax.tv_usec = 0;
+ least_active = NULL;
+ rwlock_wrlock(&svc_fd_lock);
+
+ for (i = 0; i <= svc_max_pollfd; i++) {
+ if (svc_pollfd[i].fd == -1)
+ continue;
+ xprt = __svc_xports[i];
+ if (xprt == NULL || xprt->xp_ops == NULL ||
+ xprt->xp_ops->xp_recv != svc_vc_recv)
+ continue;
+ cd = (struct cf_conn *)xprt->xp_p1;
+ if (!cd->nonblock)
+ continue;
+ if (timeout == 0) {
+ timersub(&tv, &cd->last_recv_time, &tdiff);
+ if (timercmp(&tdiff, &tmax, >)) {
+ tmax = tdiff;
+ least_active = xprt;
+ }
+ continue;
+ }
+ if (tv.tv_sec - cd->last_recv_time.tv_sec > timeout) {
+ __xprt_unregister_unlocked(xprt);
+ __svc_vc_dodestroy(xprt);
+ ncleaned++;
+ }
+ }
+ if (timeout == 0 && least_active != NULL) {
+ __xprt_unregister_unlocked(least_active);
+ __svc_vc_dodestroy(least_active);
+ ncleaned++;
+ }
+ rwlock_unlock(&svc_fd_lock);
+ return (ncleaned);
+}
--
1.8.3.1
+43 -111
View File
@@ -1,10 +1,10 @@
This is a combination of three patches:
This is a combination of two patches:
1) Taken from https://salsa.debian.org/debian/libtirpc/-/raw/master/debian/patches/03-kfreebsd.diff
Description: Fix build on non Linux architectures
Author: Andreas Beckmann <anbe@debian.org>
Last-Update: 2025-03-17
Last-Update: 2019-09-01
2) Taken from https://salsa.debian.org/debian/libtirpc/-/raw/master/debian/patches/05-hurd-port.diff
@@ -13,39 +13,10 @@ Description: Get source building on Hurd
- Define MAXHOSTNAMELEN to 64 if missing.
- Bind sockets on Hurd like on Linux.
Author: Petter Reinholdtsen <pere@hungry.com>
Last-Update: 2025-03-17
3) Taken from https://salsa.debian.org/debian/libtirpc/-/raw/master/debian/patches/06-hurd-client-port.diff
Description: Fix client code for hurd, avoiding malloc overflow
When trying to setup a inet connection, it happens the following:
- in libtirp, src/clnt_vc.c, clnt_vc_create gets called
- when trying to allocate vc_fd_locks, __rpc_dtbsize() is used as size
for that array of fd locks
- __rpc_dtbsize(), in src/rpc_generic.c, queries using rlimit the
maximum (rlim_max) number of file descriptors (RLIMIT_NOFILE):
- on Linux, the default is { rlim_cur = 1024, rlim_max = 4096 }
- on kFreeBSD, the default is { rlim_cur = 1024, rlim_max = 1024 }
- on Hurd, the default is { rlim_cur = 1024, rlim_max = RLIM_INFINITY }
meaning that on Hurd the memory allocation fails (as
__rpc_dtbsize() * sizeof(int) overflows and is negative)
Change libtiprc so __rpc_dtbsize falls back on rlim_cur if rlim_max
is unlimited.
This patch fixes the client connection using inet sockets; local unix
sockets are not working, for two reasons so far:
- getpeername on them gives EOPNOTSUPP
- SO_REUSEADDR is not implemented for them
Author: Pino Toscano <pino@debian.org>
Bug-Debian: http://bugs.debian.org/739674
Last-Update: 2020-03-03
--- a/src/svc_dg.c
+++ b/src/svc_dg.c
@@ -650,6 +650,7 @@
@@ -648,6 +648,7 @@
void
svc_dg_enable_pktinfo(int fd, const struct __rpc_sockinfo *si)
{
@@ -53,7 +24,7 @@ Last-Update: 2020-03-03
int val = 1;
switch (si->si_af) {
@@ -662,6 +663,7 @@
@@ -660,6 +661,7 @@
break;
#endif
}
@@ -61,7 +32,7 @@ Last-Update: 2020-03-03
}
/*
@@ -672,6 +674,7 @@
@@ -670,6 +672,7 @@
int
svc_dg_valid_pktinfo(struct msghdr *msg)
{
@@ -69,7 +40,7 @@ Last-Update: 2020-03-03
struct cmsghdr *cmsg;
if (!msg->msg_name)
@@ -718,4 +721,7 @@
@@ -716,4 +719,7 @@
}
return 1;
@@ -79,7 +50,7 @@ Last-Update: 2020-03-03
}
--- a/src/clnt_vc.c
+++ b/src/clnt_vc.c
@@ -76,10 +76,12 @@
@@ -71,10 +71,12 @@
#define MCALL_MSG_SIZE 24
#define CMGROUP_MAX 16
@@ -93,7 +64,7 @@ Last-Update: 2020-03-03
/*
* Credentials structure, used to verify the identity of a peer
* process that has sent us a message. This is allocated by the
@@ -95,6 +97,7 @@
@@ -90,6 +92,7 @@
short cmcred_ngroups; /* number or groups */
gid_t cmcred_groups[CMGROUP_MAX]; /* groups */
};
@@ -103,18 +74,30 @@ Last-Update: 2020-03-03
struct cmsghdr cmsg;
--- a/src/getpeereid.c
+++ b/src/getpeereid.c
@@ -31,6 +31,7 @@
@@ -25,9 +25,14 @@
*/
+#include "config.h"
+
#include <sys/param.h>
#include <sys/socket.h>
#include <sys/un.h>
+#include <sys/user.h>
+#ifdef HAVE_SYS_USER_H
+# include <sys/user.h>
+#endif /* HAVE_SYS_USER_H */
#include <errno.h>
#include <unistd.h>
@@ -40,12 +41,22 @@
--- a/src/getpeereid.c
+++ b/src/getpeereid.c
@@ -35,12 +36,25 @@
int
getpeereid(int s, uid_t *euid, gid_t *egid)
{
+#ifndef HAVE_SYS_USER_H
+ return(-1);
+#else
+#ifdef XUCRED_VERSION
+ struct xucred uc;
+#define uid cr_uid
@@ -134,17 +117,34 @@ Last-Update: 2020-03-03
if (error != 0)
return (error);
// if (uc.cr_version != XUCRED_VERSION)
@@ -59,4 +66,5 @@
*euid = uc.uid;
*egid = uc.gid;
return (0);
+#endif /* HAVE_SYS_USER_H */
}
--- a/tirpc/reentrant.h
+++ b/tirpc/reentrant.h
@@ -36,6 +36,6 @@
@@ -36,7 +36,7 @@
* These definitions are only guaranteed to be valid on Linux.
*/
-#if defined(__linux__) || defined(__APPLE__)
-#if defined(__linux__)
+#if defined(__linux__) || defined(__GLIBC__)
#include <pthread.h>
--- a/configure.ac
+++ b/configure.ac
@@ -93,7 +93,7 @@
AC_PROG_LIBTOOL
AC_HEADER_DIRENT
AC_PREFIX_DEFAULT(/usr)
-AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h features.h gssapi/gssapi_ext.h])
+AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h features.h gssapi/gssapi_ext.h sys/user.h])
AC_CHECK_LIB([pthread], [pthread_create])
AC_CHECK_FUNCS([getrpcbyname getrpcbynumber setrpcent endrpcent getrpcent])
--- a/src/auth_unix.c
+++ b/src/auth_unix.c
@@ -56,6 +56,11 @@
@@ -170,71 +170,3 @@ Last-Update: 2020-03-03
#define STARTPORT 600
#define LOWPORT 512
--- a/src/getpeereid.c
+++ b/src/getpeereid.c
@@ -28,10 +28,14 @@
#include "config.h"
#endif
+#include "config.h"
+
#include <sys/param.h>
#include <sys/socket.h>
#include <sys/un.h>
-#include <sys/user.h>
+#ifdef HAVE_SYS_USER_H
+# include <sys/user.h>
+#endif /* HAVE_SYS_USER_H */
#include <errno.h>
#include <unistd.h>
@@ -41,6 +45,9 @@
int
getpeereid(int s, uid_t *euid, gid_t *egid)
{
+#ifndef HAVE_SYS_USER_H
+ return(-1);
+#else
#ifdef XUCRED_VERSION
struct xucred uc;
#define uid cr_uid
@@ -64,6 +71,7 @@
*euid = uc.uid;
*egid = uc.gid;
return (0);
+#endif /* HAVE_SYS_USER_H */
}
#endif
--- a/configure.ac
+++ b/configure.ac
@@ -200,7 +200,7 @@
AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h
netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h
sys/param.h sys/socket.h sys/time.h syslog.h unistd.h features.h
-gssapi/gssapi_ext.h endian.h machine/endian.h])
+gssapi/gssapi_ext.h endian.h machine/endian.h sys/user.h])
AX_PTHREAD
AC_CHECK_FUNCS([getpeereid getrpcbyname getrpcbynumber setrpcent endrpcent getrpcent])
--- a/src/rpc_generic.c
+++ b/src/rpc_generic.c
@@ -107,12 +107,17 @@
{
static int tbsize;
struct rlimit rl;
+ rlim_t lim;
if (tbsize) {
return (tbsize);
}
if (getrlimit(RLIMIT_NOFILE, &rl) == 0) {
- return (tbsize = (int)rl.rlim_cur);
+ lim = rl.rlim_max;
+ if (lim == RLIM_INFINITY) {
+ lim = rl.rlim_cur;
+ }
+ return (tbsize = (int)lim);
}
/*
* Something wrong. I'll try to save face by returning a
@@ -2,14 +2,8 @@ unix_chkpwd is designed to have a suid bit, but it's not possible to set it
for files in the store. This patch tells unix_pam.so to look for
unix_chkpwd in setuid program directory on Guix System.
--- a/modules/module-meson.build
+++ b/modules/module-meson.build
@@ -114,7 +114,7 @@ if module == 'pam_unix'
if enable_nis
pam_module_src += ['yppasswd_xdr.c']
endif
- pam_module_c_args += ['-DCHKPWD_HELPER="@0@"'.format(sbindir / 'unix_chkpwd'),
+ pam_module_c_args += ['-DCHKPWD_HELPER="@0@"'.format('/run/privileged/bin' / 'unix_chkpwd'),
'-DUPDATE_HELPER="@0@"'.format(sbindir / 'unix_update')]
pam_module_deps += [libcrypt, libselinux, libtirpc, libnsl]
endif
--- a/modules/pam_unix/Makefile.in
+++ b/modules/pam_unix/Makefile.in
@@ -651,1 +651,1 @@
- -DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \
+ -DCHKPWD_HELPER=\"/run/setuid-programs/unix_chkpwd\" \
@@ -0,0 +1,141 @@
From 756ca22ec5b0d89b5d107b4c30891d1293650c87 Mon Sep 17 00:00:00 2001
From: Sergiu Deitsch <sergiud@users.noreply.github.com>
Date: Wed, 23 Apr 2025 18:36:41 +0200
Subject: [PATCH] Provide fallback for missing `char8_t` support (#4736)
---
.../nlohmann/detail/conversions/from_json.hpp | 5 +++-
.../nlohmann/detail/conversions/to_json.hpp | 21 ++++++++++-----
single_include/nlohmann/json.hpp | 26 +++++++++++++------
tests/src/unit-deserialization.cpp | 5 ++--
4 files changed, 39 insertions(+), 18 deletions(-)
diff --git a/include/nlohmann/detail/conversions/from_json.hpp b/include/nlohmann/detail/conversions/from_json.hpp
index 797f714dfae1dcc7fd8d2435ae7015023da76b97..3a24a6f4d26c0162531d8100a99a05291d8a2090 100644
--- a/include/nlohmann/detail/conversions/from_json.hpp
+++ b/include/nlohmann/detail/conversions/from_json.hpp
@@ -539,7 +539,10 @@ inline void from_json(const BasicJsonType& j, std_fs::path& p)
JSON_THROW(type_error::create(302, concat("type must be string, but is ", j.type_name()), &j));
}
const auto& s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
-#ifdef JSON_HAS_CPP_20
+ // Checking for C++20 standard or later can be insufficient in case the
+ // library support for char8_t is either incomplete or was disabled
+ // altogether. Use the __cpp_lib_char8_t feature test instead.
+#if defined(__cpp_lib_char8_t) && (__cpp_lib_char8_t >= 201907L)
p = std_fs::path(std::u8string_view(reinterpret_cast<const char8_t*>(s.data()), s.size()));
#else
p = std_fs::u8path(s); // accepts UTF-8 encoded std::string in C++17, deprecated in C++20
diff --git a/include/nlohmann/detail/conversions/to_json.hpp b/include/nlohmann/detail/conversions/to_json.hpp
index f8413850d5d7f8dd4bd6d2f174959a8ddd5c233a..8b910dd1615b710308392eed4999d3b7533a26e7 100644
--- a/include/nlohmann/detail/conversions/to_json.hpp
+++ b/include/nlohmann/detail/conversions/to_json.hpp
@@ -15,7 +15,8 @@
#include <algorithm> // copy
#include <iterator> // begin, end
-#include <string> // string
+#include <memory> // allocator_traits
+#include <string> // basic_string, char_traits
#include <tuple> // tuple, get
#include <type_traits> // is_same, is_constructible, is_floating_point, is_enum, underlying_type
#include <utility> // move, forward, declval, pair
@@ -440,15 +441,21 @@ inline void to_json(BasicJsonType& j, const T& t)
}
#if JSON_HAS_FILESYSTEM || JSON_HAS_EXPERIMENTAL_FILESYSTEM
+#if defined(__cpp_lib_char8_t)
+template<typename BasicJsonType, typename Tr, typename Allocator>
+inline void to_json(BasicJsonType& j, const std::basic_string<char8_t, Tr, Allocator>& s)
+{
+ using OtherAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<char>;
+ j = std::basic_string<char, std::char_traits<char>, OtherAllocator>(s.begin(), s.end(), s.get_allocator());
+}
+#endif
+
template<typename BasicJsonType>
inline void to_json(BasicJsonType& j, const std_fs::path& p)
{
-#ifdef JSON_HAS_CPP_20
- const std::u8string s = p.u8string();
- j = std::string(s.begin(), s.end());
-#else
- j = p.u8string(); // returns std::string in C++17
-#endif
+ // Returns either a std::string or a std::u8string depending whether library
+ // support for char8_t is enabled.
+ j = p.u8string();
}
#endif
diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp
index 13b07c0fbc87e5c24127922fb2ef45fc3ea2bff5..93e5983cf1b1cdbe0452d89dcfa487c7b18dd4df 100644
--- a/single_include/nlohmann/json.hpp
+++ b/single_include/nlohmann/json.hpp
@@ -5324,7 +5324,10 @@ inline void from_json(const BasicJsonType& j, std_fs::path& p)
JSON_THROW(type_error::create(302, concat("type must be string, but is ", j.type_name()), &j));
}
const auto& s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
-#ifdef JSON_HAS_CPP_20
+ // Checking for C++20 standard or later can be insufficient in case the
+ // library support for char8_t is either incomplete or was disabled
+ // altogether. Use the __cpp_lib_char8_t feature test instead.
+#if defined(__cpp_lib_char8_t) && (__cpp_lib_char8_t >= 201907L)
p = std_fs::path(std::u8string_view(reinterpret_cast<const char8_t*>(s.data()), s.size()));
#else
p = std_fs::u8path(s); // accepts UTF-8 encoded std::string in C++17, deprecated in C++20
@@ -5379,7 +5382,8 @@ NLOHMANN_JSON_NAMESPACE_END
#include <algorithm> // copy
#include <iterator> // begin, end
-#include <string> // string
+#include <memory> // allocator_traits
+#include <string> // basic_string, char_traits
#include <tuple> // tuple, get
#include <type_traits> // is_same, is_constructible, is_floating_point, is_enum, underlying_type
#include <utility> // move, forward, declval, pair
@@ -6086,15 +6090,21 @@ inline void to_json(BasicJsonType& j, const T& t)
}
#if JSON_HAS_FILESYSTEM || JSON_HAS_EXPERIMENTAL_FILESYSTEM
+#if defined(__cpp_lib_char8_t)
+template<typename BasicJsonType, typename Tr, typename Allocator>
+inline void to_json(BasicJsonType& j, const std::basic_string<char8_t, Tr, Allocator>& s)
+{
+ using OtherAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<char>;
+ j = std::basic_string<char, std::char_traits<char>, OtherAllocator>(s.begin(), s.end(), s.get_allocator());
+}
+#endif
+
template<typename BasicJsonType>
inline void to_json(BasicJsonType& j, const std_fs::path& p)
{
-#ifdef JSON_HAS_CPP_20
- const std::u8string s = p.u8string();
- j = std::string(s.begin(), s.end());
-#else
- j = p.u8string(); // returns std::string in C++17
-#endif
+ // Returns either a std::string or a std::u8string depending whether library
+ // support for char8_t is enabled.
+ j = p.u8string();
}
#endif
diff --git a/tests/src/unit-deserialization.cpp b/tests/src/unit-deserialization.cpp
index 84a970a183e4392166a8fe9bf76b582a53b76dd5..5c450c23d3042991cfc8959d4632208cfb21f400 100644
--- a/tests/src/unit-deserialization.cpp
+++ b/tests/src/unit-deserialization.cpp
@@ -1134,9 +1134,10 @@ TEST_CASE("deserialization")
}
}
-// select the types to test - char8_t is only available in C++20
+// select the types to test - char8_t is only available since C++20 if and only
+// if __cpp_char8_t is defined.
#define TYPE_LIST(...) __VA_ARGS__
-#ifdef JSON_HAS_CPP_20
+#if defined(__cpp_char8_t) && (__cpp_char8_t >= 201811L)
#define ASCII_TYPES TYPE_LIST(char, wchar_t, char16_t, char32_t, char8_t)
#else
#define ASCII_TYPES TYPE_LIST(char, wchar_t, char16_t, char32_t)
@@ -0,0 +1,33 @@
These tests are broken in 3.101.3.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1964304
--- nss-3.101.3/nss/tests/tools/tools.sh 1969-12-31 16:00:01.000000000 -0800
+++ nss-3.101.3/nss/tests/tools/tools.sh 2025-05-05 16:36:47.835447542 -0700
@@ -540,26 +540,6 @@
ret=$?
html_msg $ret 0 "Importing private key pbmac1 hmac-sha-512 from PKCS#12 file"
check_tmpfile
-
- echo "${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-iter.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234'"
- ${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-iter.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234' 2>&1
- ret=$?
- html_msg $ret 19 "Fail to list private key with bad iterator"
- check_tmpfile
-
- echo "${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-salt.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234'"
- ${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-salt.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234' 2>&1
- ret=$?
- echo "Fail to list private key with bad salt val=$ret"
- html_msg $ret 19 "Fail to import private key with bad salt"
- check_tmpfile
-
- echo "${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-no-length.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234'"
- ${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-no-length.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234' 2>&1
- ret=$?
- echo "Fail to import private key with no length val=$ret"
- html_msg $ret 19 "Fail to import private key with no length"
- check_tmpfile
}
############################## tools_p12 ###############################
@@ -1,23 +0,0 @@
Upstream fix
https://gitlab.opengeosys.org/ogs/ogs/-/commit/9a8399b0d3cff032e70fe79a85dc35c4e7c662f2
diff --git a/Applications/Utils/FileConverter/NetCdfConverter.cpp b/Applications/Utils/FileConverter/NetCdfConverter.cpp
index c6fb9f151d..622bd2cd54 100644
--- a/Applications/Utils/FileConverter/NetCdfConverter.cpp
+++ b/Applications/Utils/FileConverter/NetCdfConverter.cpp
@@ -232,11 +232,12 @@ static bool dimensionSelectionLoop(NcVar const& var,
if (n_dims > 1)
{
std::string temp_str("");
- cout << "Is the parameter time-dependent?\n";
+ std::cout << "Is the parameter time-dependent?\n";
while (dim_idx_map[0] == std::numeric_limits<std::size_t>::max() &&
is_time_dep == true)
{
- cout << "Enter ID for temporal dimension or \"c\" to continue: ";
+ std::cout
+ << "Enter ID for temporal dimension or \"c\" to continue: ";
std::getline(std::cin, temp_str);
std::stringstream str_stream(temp_str);
if (str_stream.str() == "c" || str_stream.str() == "continue")
@@ -0,0 +1,45 @@
From 92a851f1acb87ad5367eb62f9b97785bedb700bb Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <github@naumov.de>
Date: Thu, 28 Oct 2021 22:34:00 +0200
Subject: [PATCH] Detect if hid_t is defined in new versions of HDF5
In HDF5 development the header file guards were changed,
namely the leading underscore was removed. This lead to
a redefinition of the hid_t type, which is int64_t.
The change happened in commit
https://github.com/HDFGroup/hdf5/commit/c17b4b93d680340af2b3f2c026f2c03c3baeb33ahttps://github.com/HDFGroup/hdf5/commit/c17b4b93d680340af2b3f2c026f2c03c3baeb33a
and is published in HDF5 version hdf5-1_13_0-rc6.
---
core/XdmfHDF5Controller.hpp | 2 +-
core/XdmfHDF5Writer.hpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/core/XdmfHDF5Controller.hpp b/core/XdmfHDF5Controller.hpp
index c5c15d0a..b52bab3f 100644
--- a/core/XdmfHDF5Controller.hpp
+++ b/core/XdmfHDF5Controller.hpp
@@ -30,7 +30,7 @@
// So that hdf5 does not need to be included in the header files
// It would add a dependancy to programs that use Xdmf
-#ifndef _H5Ipublic_H
+#if !defined(_H5Ipublic_H) && !defined(H5Ipublic_H)
#ifndef XDMF_HID_T
#define XDMF_HID_T
typedef int hid_t;
diff --git a/core/XdmfHDF5Writer.hpp b/core/XdmfHDF5Writer.hpp
index cfbec6f4..6f8cfd4f 100644
--- a/core/XdmfHDF5Writer.hpp
+++ b/core/XdmfHDF5Writer.hpp
@@ -31,7 +31,7 @@
// So that hdf5 does not need to be included in the header files
// It would add a dependancy to programs that use Xdmf
-#ifndef _H5Ipublic_H
+#if !defined(_H5Ipublic_H) && !defined(H5Ipublic_H)
#ifndef XDMF_HID_T
#define XDMF_HID_T
typedef int hid_t;
--
GitLab
+1 -1
View File
@@ -6658,7 +6658,7 @@ a safe way.")
(base32
"0y70qh5kn2hyrrvbsfhg0iws2qggk5vkpz37f7rbd5rd9cjc57dp"))))
(build-system perl-build-system)
(native-inputs (list perl-test-script))
(native-inputs `(("test-script" ,perl-test-script)))
(synopsis "Portable implementation of the `which' utility")
(description
"File::Which was created to be able to get the paths to executable
+2 -2
View File
@@ -237,7 +237,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.100.24")
(version "2.100.25")
(source
(origin
(method git-fetch)
@@ -246,7 +246,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "09jm5hs2lv481yzf76p646jx6467zx98bbbsg24xh3glk1f9gaaq"))
(base32 "1si84zaihsi2zwr0qdfr6kjcrly6ih1br0r6v58xm9v9db5zpx6x"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
+18 -3
View File
@@ -107,9 +107,24 @@ data in motion, or as a file format for data at rest.")
(uri (git-reference
(url "https://github.com/protocolbuffers/protobuf/")
(commit (string-append "v" version))))
(modules '((guix build utils)))
;; "utf8_range" development now takes place in main protobuf repository.
(snippet #~(delete-all-but "third_party" "utf8_range"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(define (directory? x)
(and=> (stat x #f)
(compose (cut eq? 'directory <>) stat:type)))
(with-directory-excursion directory
(let* ((pred
(negate (cut member <> (append '("." "..") preserve))))
(items (scandir "." pred)))
(for-each delete-file-recursively items))))
;; "utf8_range" development now takes place in main protobuf
;; repository.
(delete-all-but "third_party" "utf8_range")))
(file-name (git-file-name name version))
(sha256
(base32 "1rdxm75bqwjj4qd3hz4vlydra6bw5dq391kwln2q0pjfx9gbrjhk"))))
+21 -9
View File
@@ -5005,11 +5005,26 @@ readable.")
(base32 "1m6h6m0vm8vdx2nk26nvlbyfvlj0g9ph8cdh38258gn18fd2db0l"))
(patches
(search-patches "python-vaex-core-fix-tsl-use.patch"))
(modules '((guix build utils)))
(snippet #~(begin
(delete-all-but "." "packages")
(delete-all-but "packages" "vaex-core")
(delete-file-recursively "packages/vaex-core/vendor")))))
(modules '((guix build utils)
(ice-9 ftw)))
(snippet
#~(begin
;; Delete everything except for vaex-core itself:
(define (delete-except exception)
(lambda (file)
(unless (member file `("." ".." ,exception))
(delete-file-recursively file))))
(for-each (delete-except "packages") (scandir "."))
(with-directory-excursion "packages"
(for-each (delete-except "vaex-core") (scandir ".")))
(for-each (lambda (file)
(unless (member file '("." ".."))
(rename-file
(string-append "packages/vaex-core/" file)
file)))
(scandir "packages/vaex-core"))
(delete-file-recursively "packages")
(delete-file-recursively "vendor")))))
(build-system pyproject-build-system)
(arguments
(list
@@ -5018,10 +5033,7 @@ readable.")
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "packages/vaex-core")))
(add-after 'chdir 'relax-requirements
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
;; "dask!=2022.4.0,<2024.9"; there is a note "fingerprinting
+11 -1
View File
@@ -297,7 +297,17 @@ configurations deterministically based on compute and memory latencies.")
"availableArchs = ['"
(string-join (current-amd-gpu-targets) "', '") "']")))
(setenv "TENSILE_ROCM_ASSEMBLER_PATH"
(string-append (which "clang"))))))))
(string-append (which "clang")))))
;; Packages, such as rocblas, expect to be able to run those scripts
;; in their CMake builds.
(add-after 'install 'adjust-tensile-binaries-permissions
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((site-packages (site-packages inputs outputs)))
(with-directory-excursion (string-append site-packages
"/Tensile/bin")
;; Use `make-file-executable' once #7224 is merged.
(chmod "Tensile" #o555)
(chmod "TensileCreateLibrary" #o555))))))))
(native-inputs
(list python-filelock
python-pandas
+88 -93
View File
@@ -132,104 +132,99 @@ both WSD and eSCL.")
(("asctime \\(localtime \\(&current_time\\)\\)")
"\"1970-01-01\""))))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'bootstrap 'zap-unnecessary-git-dependency
(lambda _
;; This runs before default patch-shebangs phase.
(substitute* "tools/git-version-gen"
(("/bin/sh")
(which "sh")))
(with-output-to-file ".tarball-version"
(lambda _
(format #t #$version)))))
(add-before 'configure 'disable-backends
(lambda _
(setenv "BACKENDS" " ")
;; Disable tests that may require back ends to be built.
(substitute* "testsuite/Makefile.in"
((" backend ")
" "))))
(add-before 'configure 'disable-failing-tests
(lambda _
;; Disable unmaintained tests that that fail with errors resembling:
;;
;; < # by sane-desc 3.5 from sane-backends 1.0.24git on Jul 31 2013
;; ---
;; > # by sane-desc 3.5 from sane-backends 1.0.27 on 1970-01-01#
;; FAIL: sane-desc -m usermap -s ./data
(for-each (lambda (pattern)
(substitute* "testsuite/tools/Makefile.in"
(((string-append " " pattern " "))
" ")))
(list "usermap"
"db"
"udev"
"udev\\+acl"
"udev\\+hwdb"
"hwdb"))
;; Disable tests that try to connect to actual USB hardware & fail
;; with the following error when no USB access is allowed at all:
;;
;; sanei_usb_test: sanei_usb_test.c:849: main: Assertion
;; `test_init (1)' failed.
(substitute* "testsuite/sanei/Makefile.in"
(("sanei_usb_test\\$\\(EXEEXT\\) ")
""))))
(add-before 'build 'build-pixma_sane_options.c
;; "No rule to make target '../backend/pixma/pixma_sane_options.c',
;; needed by 'sane-backends.pot-update'."
(lambda _
(invoke "make" "-C" "backend" "pixma/pixma_sane_options.c")))
(add-after 'install 'install-udev-rules
(lambda _
(let ((dest (string-append #$output "/lib/udev/rules.d/"
"60-libsane.rules")))
(mkdir-p (dirname dest))
(copy-file "tools/udev/libsane.rules" dest))))
(add-after 'install 'remove-dll.conf
(lambda _
;; dll.conf lists enabled backends, so it should be removed as
;; there are none in this package
(delete-file (string-append #$output "/etc/sane.d/dll.conf"))))
(add-after 'install 'make-reproducible
;; XXX Work around an old bug <https://issues.guix.gnu.org/26247>.
;; Then work around "Throw to key `decoding-error' ..." by using sed.
(lambda _
(with-directory-excursion (string-append #$output "/share/locale")
(for-each (lambda (file)
(invoke "sed" "-i" "/^PO-Revision-Date:/d" file))
(list "en@boldquot/LC_MESSAGES/sane-backends.mo"
"en@quot/LC_MESSAGES/sane-backends.mo"))))))))
(native-inputs
(list autoconf
autoconf-archive
automake
gettext-minimal
libtool
pkg-config
;; For scripts/pixma_gen_options.py.
python-wrapper))
(inputs (list libusb))
`(("autoconf" ,autoconf)
("autoconf-archive" ,autoconf-archive)
("automake" ,automake)
("gettext" ,gettext-minimal)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
;; For scripts/pixma_gen_options.py.
("python" ,python-wrapper)))
(inputs
(list libusb))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'bootstrap 'zap-unnecessary-git-dependency
(lambda _
;; This runs before default patch-shebangs phase.
(substitute* "tools/git-version-gen"
(("/bin/sh") (which "sh")))
(with-output-to-file ".tarball-version"
(lambda _ (format #t ,version)))))
(add-before 'configure 'disable-backends
(lambda _
(setenv "BACKENDS" " ")
;; Disable tests that may require back ends to be built.
(substitute* "testsuite/Makefile.in"
((" backend ") " "))))
(add-before 'configure 'disable-failing-tests
(lambda _
;; Disable unmaintained tests that that fail with errors resembling:
;;
;; < # by sane-desc 3.5 from sane-backends 1.0.24git on Jul 31 2013
;; ---
;; > # by sane-desc 3.5 from sane-backends 1.0.27 on 1970-01-01#
;; FAIL: sane-desc -m usermap -s ./data
(for-each
(lambda (pattern)
(substitute* "testsuite/tools/Makefile.in"
(((string-append " " pattern " ")) " ")))
(list "usermap" "db" "udev" "udev\\+acl" "udev\\+hwdb" "hwdb"))
;; Disable tests that try to connect to actual USB hardware & fail
;; with the following error when no USB access is allowed at all:
;;
;; sanei_usb_test: sanei_usb_test.c:849: main: Assertion
;; `test_init (1)' failed.
(substitute* "testsuite/sanei/Makefile.in"
(("sanei_usb_test\\$\\(EXEEXT\\) ") ""))))
(add-before 'build 'build-pixma_sane_options.c
;; "No rule to make target '../backend/pixma/pixma_sane_options.c',
;; needed by 'sane-backends.pot-update'."
(lambda _
(invoke "make" "-C" "backend" "pixma/pixma_sane_options.c")))
(add-after 'install 'install-udev-rules
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/lib/udev/rules.d"))
(copy-file "tools/udev/libsane.rules"
(string-append out
"/lib/udev/rules.d/"
"60-libsane.rules")))))
(add-after 'install 'remove-dll.conf
(lambda _
;; dll.conf lists enabled backends, so it should be removed as
;; there are none in this package
(delete-file (string-append %output "/etc/sane.d/dll.conf"))))
(add-after 'install 'make-reproducible
;; XXX Work around an old bug <https://issues.guix.gnu.org/26247>.
;; Then work around "Throw to key `decoding-error' ..." by using sed.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(locale (string-append out "/share/locale")))
(with-directory-excursion locale
(for-each (lambda (file)
(invoke "sed" "-i" "/^PO-Revision-Date:/d" file))
(list "en@boldquot/LC_MESSAGES/sane-backends.mo"
"en@quot/LC_MESSAGES/sane-backends.mo")))))))))
(native-search-paths
(list (search-path-specification
(variable "SANE_CONFIG_DIR")
(files '("etc/sane.d")))
(search-path-specification
(variable "SANE_BACKEND_LIB_PATH")
(files '("lib/sane")))))
(list
(search-path-specification
(variable "SANE_CONFIG_DIR")
(files '("etc/sane.d")))
(search-path-specification
(variable "SANE_BACKEND_LIB_PATH")
(files '("lib/sane")))))
(home-page "http://www.sane-project.org")
(synopsis
"Raster image scanner library and drivers, without scanner support")
(description
"SANE stands for \"Scanner Access Now Easy\" and is an API proving access
to any raster image scanner hardware (flatbed scanner, hand-held scanner,
video- and still-cameras, frame-grabbers, etc.). The package contains the
library, but no drivers.")
(description "SANE stands for \"Scanner Access Now Easy\" and is an API
proving access to any raster image scanner hardware (flatbed scanner,
hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The
package contains the library, but no drivers.")
(license license:gpl2+))) ; plus linking exception
(define-public sane-backends
+2 -2
View File
@@ -893,7 +893,7 @@ A @code{andglob} program is also provided along with s.")
(define-public oksh
(package
(name "oksh")
(version "7.8")
(version "7.5")
(source
(origin
(method url-fetch)
@@ -902,7 +902,7 @@ A @code{andglob} program is also provided along with s.")
version "/oksh-" version ".tar.gz"))
(sha256
(base32
"0l59x9mm6nbixcpz3zf3iplqili2gyw8l382rj89b0iv32hxac1v"))))
"0pgdxvy8jgydsyzk7vcc93pm09bihqvrn3i35gz1ncg9z31rbf20"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests available
+9 -1
View File
@@ -46,11 +46,19 @@
(file-name (git-file-name name version))
(sha256
(base32 "17iqvqs7w3z5c4acnjc6mixqkqz4rff2c7flfpnlwgfjgqy1a2zw"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
;; XXX: Keep just some portion with valulable data and no license
;; issues.
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "."
"allsky"
"coordinates"
+40 -34
View File
@@ -89,43 +89,49 @@
;; XXX:
;; There numerous issues with the testsuite.
;; Enable all of them once they are fixed in upstream.
(list
#:tests? #f
#:parallel-build? #f
#:configure-flags
#~(list "--enable-shared"
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-rpath
(lambda _
(substitute* "main/Makefile"
(("flite_LIBS_flags \\+= -Wl,-rpath [^ ]*")
"flite_LIBS_flags +="))))
(delete 'check)
;; Modifying testsuite/Makefile is not done in favor of
;; overriding 'check.
;; The path not taken would be:
;; test:\n\t$(foreach x,$(subst tris1,,$(subst dcoffset_wave,,$(subst flite_test,,$(subst by_word,,$(subst bin2ascii,,$(subst lpc_resynth,,$(subst rfc,,$(subst compare_wave,,$(subst record_in_noise,,$(subst combine_waves,,$(patsubst play_%,,$(subst record_wave,,$(subst lex_lookup,,$(patsubst lpc_test%,,$(patsubst asciiS2U%,,$(patsubst asciiU2S%,,$(ALL))))))))))))))))),echo TEST $x && ./$x data.one && ) true
(add-after 'install 'check
(lambda _
(invoke "make" "-C" "testsuite")
(with-directory-excursion "testsuite"
(invoke "./token_test")
(invoke "./hrg_test")
(invoke "./regex_test")
(invoke "./nums_test")
(invoke "./lex_test")
(invoke "./utt_test")
(invoke "./multi_thread"))))
(add-after 'install 'remove-static-libs
(lambda _
(for-each delete-file
(find-files #$output "\\.a$")))))))
`(#:tests? #f
#:parallel-build? #f
#:configure-flags
(list
"--enable-shared"
(string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
"/lib"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-rpath
(lambda _
(substitute* "main/Makefile"
(("flite_LIBS_flags \\+= -Wl,-rpath [^ ]*")
"flite_LIBS_flags +="))
#t))
(delete 'check)
;; Modifying testsuite/Makefile is not done in favor of
;; overriding 'check.
;; The path not taken would be:
;; test:\n\t$(foreach x,$(subst tris1,,$(subst dcoffset_wave,,$(subst flite_test,,$(subst by_word,,$(subst bin2ascii,,$(subst lpc_resynth,,$(subst rfc,,$(subst compare_wave,,$(subst record_in_noise,,$(subst combine_waves,,$(patsubst play_%,,$(subst record_wave,,$(subst lex_lookup,,$(patsubst lpc_test%,,$(patsubst asciiS2U%,,$(patsubst asciiU2S%,,$(ALL))))))))))))))))),echo TEST $x && ./$x data.one && ) true
(add-after 'install 'check
(lambda _
(invoke "make" "-C" "testsuite")
(with-directory-excursion "testsuite"
(invoke "./token_test")
(invoke "./hrg_test")
(invoke "./regex_test")
(invoke "./nums_test")
(invoke "./lex_test")
(invoke "./utt_test")
(invoke "./multi_thread"))
#t))
(add-after 'install 'remove-static-libs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(for-each delete-file
(find-files out "\\.a$"))
#t))))))
(native-inputs
(list perl))
(inputs
(list alsa-lib))
`(("alsa" ,alsa-lib)))
(synopsis "Speech synthesis system")
(description "Flite (festival-lite) is a small, fast run-time text to speech
synthesis engine developed at CMU and primarily designed for small embedded
+38 -33
View File
@@ -216,40 +216,45 @@ X11 GUIs.")
(patches (search-patches "tk-find-library.patch"))))
(build-system gnu-build-system)
(arguments
(list
;; The tests require a running X server, so we just skip them.
#:tests? #f
#:configure-flags
#~(list (string-append "--with-tcl="
(assoc-ref %build-inputs "tcl") "/lib")
;; This is needed when cross-compiling, see:
;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=719247
#$@(if (%current-target-system)
'("tcl_cv_strtod_buggy=1" "ac_cv_func_strtod=yes")
'()))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda _
(chdir "unix")))
(add-after 'install 'create-wish-symlink
(lambda _
(let ((version #$(version-major+minor (package-version tk)))
(dest (string-append #$output "/bin/wish")))
(symlink (string-append dest version)
dest))))
(add-after 'install 'add-fontconfig-flag
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Add the missing -L flag for Fontconfig in 'tk.pc' and
;; 'tkConfig.sh'.
(let ((fontconfig (search-input-file inputs
"lib/libfontconfig.so")))
(substitute* (find-files #$output "^(tkConfig\\.sh|tk\\.pc)$")
(("-lfontconfig")
(string-append "-L" (dirname fontconfig)
" -lfontconfig")))))))))
`(#:phases (modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda _ (chdir "unix")))
(add-after 'install 'create-wish-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(symlink (string-append out "/bin/wish"
,(version-major+minor
(package-version tk)))
(string-append out "/bin/wish")))))
(add-after 'install 'add-fontconfig-flag
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Add the missing -L flag for Fontconfig in 'tk.pc' and
;; 'tkConfig.sh'.
(let ((out (assoc-ref outputs "out"))
(fontconfig (assoc-ref inputs "fontconfig")))
(substitute* (find-files out
"^(tkConfig\\.sh|tk\\.pc)$")
(("-lfontconfig")
(string-append "-L" fontconfig
"/lib -lfontconfig")))))))
#:configure-flags
(list (string-append "--with-tcl="
(assoc-ref %build-inputs "tcl")
"/lib")
;; This is needed when cross-compiling, see:
;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=719247
,@(if (%current-target-system)
'("tcl_cv_strtod_buggy=1"
"ac_cv_func_strtod=yes")
'()))
;; The tests require a running X server, so we just skip them.
#:tests? #f))
(native-inputs (list pkg-config))
(inputs (list libxft fontconfig tcl))
(inputs `(("libxft" ,libxft)
("fontconfig" ,fontconfig)
("tcl" ,tcl)))
;; tk.h refers to X11 headers, hence the propagation.
(propagated-inputs (list libx11 libxext))
+63 -61
View File
@@ -182,68 +182,70 @@ used as drop-in replacement for the non-free code from RFC 3591.")
(build-system gnu-build-system)
(outputs '("out" "doc" "static")) ;doc contains HTML documentation
(arguments
(list
#:configure-flags #~'("--enable-doc=yes" "--enable-tests=yes")
#:parallel-build? #f ;non-deterministic build failures may occur otherwise
#:parallel-tests? #f ;fails removing the same the files twice otherwise
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-configure.ac
(lambda _
;; spandsp looks at hard coded locations of the FHS to
;; find libxml2.
(substitute* "configure.ac"
(("AC_MSG_CHECKING\\(for libxml/xmlmemory\\.h.*" all)
(string-append all
"PKG_CHECK_MODULES(XML2, libxml-2.0)\n"
"CPPFLAGS+=\" $XML2_CFLAGS\"\n")))
;; Force a regeneration of the autotools build system.
(delete-file "autogen.sh")
(delete-file "configure")))
(add-after 'unpack 'do-not-install-data-files
;; The .tiff images produced for tests are not
;; reproducible and it is not desirable to have those
;; distributed.
(lambda _
(substitute* '("test-data/itu/fax/Makefile.am"
"test-data/etsi/fax/Makefile.am")
(("nobase_data_DATA")
"noinst_DATA"))))
(add-after 'install 'install-doc
(lambda _
(copy-recursively "doc/t38_manual"
(string-append #$output:doc
"/share/doc/"
#$name "-"
#$version))))
(add-after 'install 'move-static-libraries
(lambda _
(let ((static #$output:static))
(mkdir-p (string-append static "/lib"))
(with-directory-excursion #$output
(for-each (lambda (file)
(rename-file file
(string-append static "/" file)))
(find-files "lib" "\\.a$")))))))))
`(#:configure-flags '("--enable-doc=yes" "--enable-tests=yes")
#:parallel-build? #f ;non-deterministic build failures may occur otherwise
#:parallel-tests? #f ;fails removing the same the files twice otherwise
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-configure.ac
(lambda _
;; spandsp looks at hard coded locations of the FHS to
;; find libxml2.
(substitute* "configure.ac"
(("AC_MSG_CHECKING\\(for libxml/xmlmemory\\.h.*" all)
(string-append all
"PKG_CHECK_MODULES(XML2, libxml-2.0)\n"
"CPPFLAGS+=\" $XML2_CFLAGS\"\n")))
;; Force a regeneration of the autotools build system.
(delete-file "autogen.sh")
(delete-file "configure")
#t))
(add-after 'unpack 'do-not-install-data-files
;; The .tiff images produced for tests are not
;; reproducible and it is not desirable to have those
;; distributed.
(lambda _
(substitute* '("test-data/itu/fax/Makefile.am"
"test-data/etsi/fax/Makefile.am")
(("nobase_data_DATA")
"noinst_DATA"))
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc")
"/share/doc/" ,name "-" ,version)))
(copy-recursively "doc/t38_manual" doc)
#t)))
(add-after 'install 'move-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(mkdir-p (string-append static "/lib"))
(with-directory-excursion out
(for-each (lambda (file)
(rename-file file
(string-append static "/"
file)))
(find-files "lib" "\\.a$")))
#t))))))
(native-inputs
(list autoconf
automake
libtool
pkg-config
;; For the tests
fftw
libpcap
libsndfile
libjpeg-turbo ;XXX: should be propagated from libtiff
libtiff
netpbm
sox
;; For the documentation
docbook-xml-4.3
docbook-xsl
doxygen
libxml2
libxslt))
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
;; For the tests
("fftw" ,fftw)
("libpcap" ,libpcap)
("libsndfile" ,libsndfile)
("libjpeg" ,libjpeg-turbo) ;XXX: should be propagated from libtiff
("libtiff" ,libtiff)
("netpbm" ,netpbm)
("sox" ,sox)
;; For the documentation
("docbook-xml" ,docbook-xml-4.3)
("docbook-xsl" ,docbook-xsl)
("doxygen" ,doxygen)
("libxml2" ,libxml2)
("libxslt" ,libxslt)))
(synopsis "DSP library for telephony")
(description "SpanDSP is a library of DSP functions for telephony, in the
8000 sample per second world of E1s, T1s, and higher order PCM channels. It
+6 -6
View File
@@ -191,7 +191,7 @@ libenca and several charset conversion libraries and tools.")
(hidden-package
(package
(name "utf8proc-bootstrap")
(version "2.11.3")
(version "2.10.0")
(source
(origin
(method git-fetch)
@@ -200,7 +200,7 @@ libenca and several charset conversion libraries and tools.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1ssix4zf3lac1afzlw2gbfg3n52gmggip8lv224gywqf3zyvyp8c"))))
(base32 "1n1k67x39sk8xnza4w1xkbgbvgb1g7w2a7j2qrqzqaw1lyilqsy2"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;To break dependency cycle.
@@ -223,7 +223,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
(inherit utf8proc-bootstrap)
(name "utf8proc")
(native-inputs
(let ((UNICODE_VERSION "17.0.0")) ; defined in data/Makefile
(let ((UNICODE_VERSION "16.0.0")) ; defined in data/Makefile
;; Only if the tests will be run should these be added.
(if (and (%current-system)
(supported-package? julia))
@@ -235,7 +235,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
UNICODE_VERSION "/ucd/NormalizationTest.txt"))
(sha256
(base32
"1nw7i89q42r0plwlc8qj6qm18brk23hc0jf800cp86km63azy6ah")))
"1cffwlxgn6sawxb627xqaw3shnnfxq0v7cbgsld5w1z7aca9f4fq")))
(origin
(method url-fetch)
(uri (string-append
@@ -243,7 +243,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
UNICODE_VERSION "/ucd/auxiliary/GraphemeBreakTest.txt"))
(sha256
(base32
"1v4k2x52bzwgqxw89hdf3wdgwm8q3ianmfrya37bl699qp939lg2")))
"1d9w6vdfxakjpp38qjvhgvbl2qx0zv5655ph54dhdb3hs9a96azf")))
(origin
(method url-fetch)
(uri (string-append
@@ -251,7 +251,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
UNICODE_VERSION "/ucd/DerivedCoreProperties.txt"))
(sha256
(base32
"021clafsjmjblsxcszp0dpxy2phwhbmyghfmxym2yj2w378zxir4")))
"1gfsq4vdmzi803i2s8ih7mm4fgs907kvkg88kvv9fi4my9hm3lrr")))
;; For tests.
julia
perl
+28 -12
View File
@@ -329,7 +329,7 @@ Python 3.3 and later, rather than on Python 2.")
;; The size of the closure of 'git-minimal' is two thirds that of 'git'.
;; Its test suite runs slightly faster and most importantly it doesn't
;; depend on packages that are expensive to build such as Subversion.
(define-public git-minimal/pinned
(define-public git-minimal
(package
(name "git-minimal")
(version "2.54.0")
@@ -529,8 +529,6 @@ Python 3.3 and later, rather than on Python 2.")
(for-each mkdir-p (list bash zsh))
(copy-file "contrib/completion/git-completion.bash"
(string-append bash "/git"))
(copy-file "contrib/completion/git-completion.bash"
(string-append zsh "/git-completion.bash"))
(copy-file "contrib/completion/git-prompt.sh"
(string-append #$output "/bin/git-prompt"))
(copy-file "contrib/completion/git-completion.zsh"
@@ -604,18 +602,11 @@ Python 3.3 and later, rather than on Python 2.")
(description
"Git is a free distributed version control system designed to handle
everything from small to very large projects with speed and efficiency.")
(properties '((hidden? . #t) ;pinned variant for Graphene/GTK+
(lint-hidden-cpe-vendors . ("jenkins"))
(properties '((lint-hidden-cpe-vendors . ("jenkins"))
(upstream-name . "git")))
(license license:gpl2)
(home-page "https://git-scm.com/")))
(define-public git-minimal
(package
(inherit git-minimal/pinned)
(properties (alist-delete 'hidden?
(package-properties git-minimal/pinned)))))
(define-public git
(package/inherit git-minimal
(name "git")
@@ -830,6 +821,23 @@ everything from small to very large projects with speed and efficiency.")
;;; (security or else) and this deprecation could be removed.
(define-deprecated/public-alias git-minimal/fixed git-minimal/pinned)
(define-public git-minimal/pinned
;; Version that rarely changes, depended on by Graphene/GTK+.
(package/inherit git-minimal
(version "2.50.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
"0if0vqn3fj22p95a0125zpgwz3mqfqxqnvwa7fkf7b00wh0c1wyz"))))
;; Temporary measure to prevent unnecessary package rebuilds.
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags #~'())
(if (%current-target-system) git-cross-configure-flags #~(list)))))))
(define-public mergiraf
(package
(name "mergiraf")
@@ -3527,9 +3535,17 @@ modification time.")
(check-in version)))
(sha256
(base32 "0haaczpjnjpkiikf0q70nfabm2csdk6dl9rh80j0sh90wfvkyqwm"))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "autosetup" "proj.tcl" "wh-common.tcl")
(delete-file-recursively "extsrc")
;; Re-create Fossil check-out manifests,
+108 -150
View File
@@ -520,19 +520,22 @@ video decode, encode and filtering on Intel's Gen graphics hardware platforms.")
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'move-docs
(lambda _
(let ((doc #$output:doc))
(mkdir-p (string-append doc "/share"))
(rename-file (string-append #$output "/share/gtk-doc")
(string-append doc "/share/gtk-doc"))))))))
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'move-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc")))
(mkdir-p (string-append doc "/share"))
(rename-file
(string-append out "/share/gtk-doc")
(string-append doc "/share/gtk-doc"))
#t))))))
(native-inputs
(list dash gtk-doc/stable pkg-config))
(inputs
(list glew mesa))
`(("glew" ,glew)
("opengl" ,mesa)))
(propagated-inputs
(list orc))
(synopsis "Dirac video codec")
@@ -936,8 +939,9 @@ television and DVD. It is also known as AC-3.")
(define-public libaom
(package
(replacement libaom/fixed)
(name "libaom")
(version "3.13.3")
(version "3.8.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -946,7 +950,7 @@ television and DVD. It is also known as AC-3.")
(file-name (git-file-name name version))
(sha256
(base32
"1i5sd7zbjz5jy1w8cdrrm09cqi4ai8vdf08nvjf75dlszmmvl9j5"))))
"04zfgvzi4h4ybvjc4zfpfsmldz8w6vasjlrry7j4p6g3g7wk64r7"))))
(build-system cmake-build-system)
(native-inputs
(list perl pkg-config python)) ; to detect the version
@@ -971,6 +975,21 @@ television and DVD. It is also known as AC-3.")
shared library and encoder and decoder command-line executables.")
(license license:bsd-2)))
(define-public libaom/fixed
(package
(inherit libaom)
(name "libaom")
(version "3.9.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://aomedia.googlesource.com/aom/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0wpbc2vnwnvgr2ig64rgy38bi3wg24kaxizzc0i403ar8dx6q3ax"))))))
(define-public libmpeg2
(package
(name "libmpeg2")
@@ -1463,10 +1482,10 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.")
(native-inputs
(list pkg-config nasm))
(propagated-inputs
(list freetype
fribidi
fontconfig
harfbuzz))
`(("freetype" ,freetype)
("fribidi" ,fribidi)
("fontconfig" ,fontconfig)
("harfbuzz" ,harfbuzz)))
(home-page "https://github.com/libass/libass")
(synopsis "Subtitle rendering library for the ASS/SSA format")
(description "libass is a subtitle rendering library for the
@@ -1764,6 +1783,7 @@ operate properly.")
(list dav1d
fontconfig
freetype
frei0r-plugins
gnutls
opus
ladspa
@@ -1802,7 +1822,6 @@ operate properly.")
zlib)))
(native-inputs
(list bc
frei0r-api
perl
pkg-config
texinfo
@@ -1965,10 +1984,6 @@ filter-scale2ref_keep_aspect,sws-floatimg-cmp")
(path (string-join (map dirname dso) ":")))
(format #t "setting LD_LIBRARY_PATH to ~s~%" path)
(setenv "LD_LIBRARY_PATH" path)))))))
(native-search-paths
(list (search-path-specification
(variable "FREI0R_PATH")
(files (list "lib/frei0r-1")))))
(home-page "https://www.ffmpeg.org/")
(synopsis "Audio and video framework")
(description "FFmpeg is a complete, cross-platform solution to record,
@@ -4100,7 +4115,8 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
#~(modify-phases %standard-phases
(add-after 'install 'wrap-executable
(lambda _
(let* ((ladspa #$(this-package-input "ladspa"))
(let* ((frei0r #$(this-package-input "frei0r-plugins"))
(ladspa #$(this-package-input "ladspa"))
;; In MLT 7, 'melt' symlinks to 'melt-7'. Try to keep
;; compatibility with MLT 6 where it's only 'melt'.
(major #$(version-major version))
@@ -4109,6 +4125,8 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(string-append "melt-" major)
"melt")))
(wrap-program (string-append #$output "/bin/" exec)
`("FREI0R_PATH" ":" =
(,(string-append frei0r "/lib/frei0r-1")))
`("LADSPA_PATH" ":" =
(,(string-append ladspa "/lib/ladspa"))))))))))
(inputs
@@ -4118,6 +4136,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
eigen ; movit requires.private
ffmpeg
fftw
frei0r-plugins
gdk-pixbuf
gtk+
jack-1
@@ -4140,11 +4159,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
sox
vidstab))
(native-inputs
(list frei0r-api pkg-config python-minimal swig-4.0))
(native-search-paths
(list (search-path-specification
(variable "FREI0R_PATH")
(files (list "lib/frei0r-1")))))
(list pkg-config python-minimal swig-4.0))
(home-page "https://www.mltframework.org/")
(synopsis "Author, manage, and run multitrack audio/video compositions")
(description
@@ -5196,14 +5211,14 @@ specifications.")
(define-public libaacs
(package
(name "libaacs")
(version "0.11.1")
(version "0.11.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://ftp.videolan.org/pub/videolan/libaacs/"
version "/libaacs-" version ".tar.bz2"))
(sha256
(base32 "0f8ax9dp49mrm1484bl2df659b34xyrjmngzmvvpg2n9wkms12m8"))))
(base32 "11skjqjlldmbjkyxdcz4fmcn6y4p95r1xagbcnjy4ndnzf0l723d"))))
(inputs
(list libgcrypt))
(native-inputs
@@ -6057,117 +6072,58 @@ these formats and provides some elementary operations (copying, scaling,
alpha blending etc).")
(license license:gpl3)))
(define-public frei0r
(define-public frei0r-plugins
(package
(name "frei0r")
(version "3.1.3")
(name "frei0r-plugins")
(version "1.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dyne/frei0r")
(commit (string-append "v" version))))
(method url-fetch)
(uri (string-append "https://files.dyne.org/frei0r"
"/old-releases/frei0r-plugins-"
version
".tar.gz"))
(sha256
(base32 "0mhqcqjvibb4lw28n7mqhmcnxkiyi6n2k60jqqm8mgz74k2jqk8g"))
(file-name (git-file-name name version))
(modules (list '(guix build utils)))
(snippet
#~(begin
;; Delete public api headers, as they are provided by frei0r-api.
(delete-file "include/frei0r.h")
(delete-file "include/frei0r.hpp")
;; Prevent installation of pkg-config file.
(substitute* "CMakeLists.txt"
(("^install .*/frei0r\\.pc.*/pkgconfig.*") ""))))))
(build-system cmake-build-system)
(base32
"0fjji3060r4fwr7vn91lwfzl80lg3my9lkp94kbyw8xwz7qgh7qv"))))
(build-system gnu-build-system)
(arguments
(list
;; The package does not contain any tests.
#:tests? #f))
(inputs (list cairo gavl opencv))
(native-inputs (list frei0r-api pkg-config))
(home-page "https://dyne.org/software/frei0r/")
(synopsis "Collection of free and portable video plugins")
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-Makefile
(lambda _
;; XXX: The 1.7.0 Makefile looks for files that have slightly different
;; names in the tarball. Try removing this for future versions.
(substitute* "Makefile.in"
(("README\\.md ChangeLog TODO AUTHORS")
"README.txt ChangeLog.txt TODO.txt AUTHORS.txt"))
#t)))))
;; TODO: opencv for additional face detection filters.
(inputs
(list gavl cairo))
(native-inputs
(list pkg-config))
(home-page "https://www.dyne.org/software/frei0r/")
(synopsis "Minimalistic plugin API for video effects")
(description
"Frei0r is a minimalistic plugin API and collection of video effects. The
main emphasis is on simplicity for an API that will round up the most common
video effects into simple filters, sources and mixers that can be controlled by
parameters. Frei0r wants to provide a way to share these simple effects between
many applications, avoiding their reimplementation by different projects. It
counts more than 100 plugins.")
"Frei0r is a minimalistic plugin API for video effects.
The main emphasis is on simplicity for an API that will round up
the most common video effects into simple filters, sources and
mixers that can be controlled by parameters. Frei0r wants to
provide a way to share these simple effects between many
applications, avoiding their reimplementation by different projects.
It counts more than 100 plugins.")
(license (list license:gpl2+
;; The following files are licensed as LGPL2.1+:
;; src/mixer2/sleid0r/sleid0r_wipe-up.c
;; src/mixer2/sleid0r/sleid0r_wipe-right.c
;; src/mixer2/sleid0r/sleid0r_wipe-rect.c
;; src/mixer2/sleid0r/sleid0r_wipe-left.c
;; src/mixer2/sleid0r/sleid0r_wipe-down.c
;; src/mixer2/sleid0r/sleid0r_wipe-circle.c
;; src/mixer2/sleid0r/sleid0r_wipe-barn-door-v.c
;; src/mixer2/sleid0r/sleid0r_wipe-barn-door-h.c
;; src/mixer2/sleid0r/sleid0r_push-up.c
;; src/mixer2/sleid0r/sleid0r_slide-up.c
;; src/mixer2/sleid0r/sleid0r_push-right.c
;; src/mixer2/sleid0r/sleid0r_slide-right.c
;; src/mixer2/sleid0r/sleid0r_push-left.c
;; src/mixer2/sleid0r/sleid0r_slide-left.c
;; src/mixer2/sleid0r/sleid0r_push-down.c
;; src/mixer2/sleid0r/sleid0r_slide-down.c
;; src/generator/ising0r/ising0r.c
;; src/generator/onecol0r/onecol0r.cpp
;; src/generator/nois0r/nois0r.cpp
;; src/generator/lissajous0r/lissajous0r.cpp
;; src/generator/ising0r/ising0r.c
;; src/filter/ndvi/ndvi.cpp
;; src/filter/ndvi/gradientlut.hpp
;; src/filter/ndvi/ndvi.cpp
;; src/filter/facedetect/facedetect.cpp
license:lgpl2.1+))))
;; XXX: Deprecated on 2026-05-18.
(define-deprecated-package frei0r-plugins frei0r)
(define-public frei0r-api
(package
(name "frei0r-api")
(version "1.2")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://github.com/dyne/frei0r")
;; This release contains the latest version of the headers.
;; It should only be updated if the headers change.
(commit "v3.0.0")))
(sha256
(base32 "1wgsja14b4ihcakm5w7ndn0dflsp8xyv7r90hi4x2yipc7gf46iy"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("include/frei0r.h" "include/")
("include/frei0r.hpp" "include/")
("frei0r.pc" "lib/pkgconfig/"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'write-pkg-config-file
(lambda _
(with-output-to-file "frei0r.pc"
(lambda _
(format #t
"Name: frei0r
Description: minimalistic plugin API for video effects
Version: ~a
Libs:
Cflags: -I~a~%"
#$(package-version this-package)
(string-append #$output "/include")))))))))
(home-page "https://frei0r.dyne.org/codedoc/html/")
(synopsis "Public API of frei0r")
(description
"Public header files of frei0r, a large collection of free and portable
video plugins.")
(license license:gpl2+)))
(define-public motion
(package
(name "motion")
@@ -6311,30 +6267,32 @@ spec for MP4), which can be obtained from the ISO or found online.")
(license license:expat)))
(define-public vidstab
(package
(name "vidstab")
(version "1.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/georgmartius/vid.stab")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"19k822bwsnw58ikbfh4fhh97zpn89ji9k1gdvh9r2ljy82g52md7"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; tests are not run as part of standard build process
(home-page "http://public.hronopik.de/vid.stab/")
(synopsis "Video stabilization library")
(description "Vidstab is a video stabilization library which can be used
(let ((commit "aeabc8daa7904f9edf7441a11f293965a5ef53b8")
(revision "0"))
(package
(name "vidstab")
(version (git-version "1.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/georgmartius/vid.stab")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"042iy0f3khwzr68djzvqgn301sy21ljvkf52rnc2c73q7ircnzzn"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; tests are not run as part of standard build process
(home-page "http://public.hronopik.de/vid.stab/")
(synopsis "Video stabilization library")
(description "Vidstab is a video stabilization library which can be used
with FFmpeg. A video acquired using a hand-held camera or a camera mounted on a
vehicle typically suffers from undesirable shakes and jitters. Activities such
as surfing, skiing, riding and walking while shooting videos are especially
prone to erratic camera shakes. Vidstab targets these video contents to help
create smoother and stable videos.")
(license license:gpl2+)))
(license license:gpl2+))))
(define-public libopenshot
(package
@@ -6499,11 +6457,14 @@ transitions, and effects and then export your film to many common formats.")
(("\"melt-7\"") (string-append "\"" mlt "/bin/melt-7\""))))))
(add-after 'install 'wrap-executable
(lambda _
(let ((jack #$(this-package-input "jack"))
(let ((frei0r #$(this-package-input "frei0r-plugins"))
(jack #$(this-package-input "jack"))
(ladspa #$(this-package-input "ladspa"))
(mlt #$(this-package-input "mlt"))
(sdl2 #$(this-package-input "sdl2")))
(wrap-program (string-append #$output "/bin/shotcut")
`("FREI0R_PATH" ":" =
(,(string-append frei0r "/lib/frei0r-1")))
`("LADSPA_PATH" ":" =
(,(string-append ladspa "/lib/ladspa")))
`("LD_LIBRARY_PATH" ":" prefix
@@ -6511,11 +6472,12 @@ transitions, and effects and then export your film to many common formats.")
`("PATH" ":" prefix
,(list (string-append mlt "/bin"))))))))))
(native-inputs
(list frei0r-api pkg-config python-wrapper qttools vulkan-headers))
(list pkg-config python-wrapper qttools vulkan-headers))
(inputs
(list bash-minimal
ffmpeg
fftw
frei0r-plugins
jack-1
ladspa
libxkbcommon
@@ -6528,10 +6490,6 @@ transitions, and effects and then export your film to many common formats.")
qtwebsockets
sdl2
vulkan-loader))
(native-search-paths
(list (search-path-specification
(variable "FREI0R_PATH")
(files (list "lib/frei0r-1")))))
(home-page "https://www.shotcut.org/")
(synopsis "Video editor built on the MLT framework")
(description
+9 -1
View File
@@ -183,7 +183,9 @@ RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network protocols are supported.")
(uri (git-reference
(url "https://github.com/TurboVNC/turbovnc")
(commit version)))
(modules '((guix build utils)))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; There are a few bundled Java libraries, such as jsch and jzlib,
@@ -191,6 +193,12 @@ RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network protocols are supported.")
;; bundled under java/org. These are used by the 'vncviewer'
;; program. The jsch copy is modified and integrates changes from
;; https://github.com/mwiede/jsch, so cannot easily be un-bundled.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
;; d3des, rfb (headers) and turbojpeg-jni are small and not
;; packaged in Guix, so preserve them.
+5 -5
View File
@@ -75,7 +75,7 @@
;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net>"
;;; Copyright © 2025 Daniel Khodabakhsh <d@niel.khodabakh.sh>
;;; Copyright © 2025 Josep Bigorra <jjbigorra@gmail.com>
;;; Copyright © 2025, 2026 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Philippe Swartvagher <phil.swart@gmx.fr>
;;; Copyright © 2025 pinoaffe <pinoaffe@gmail.com>
;;; Copyright © 2025, 2026 gemmaro <gemmaro.dev@gmail.com>
@@ -1474,7 +1474,7 @@ used to train large language models, and poisoning the collected data.")
(define-public jansson
(package
(name "jansson")
(version "2.15.0")
(version "2.14")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/akheron/jansson"
@@ -1482,7 +1482,7 @@ used to train large language models, and poisoning the collected data.")
"/jansson-" version ".tar.bz2"))
(sha256
(base32
"0m49glsr5v376jpyj2y0xyr11703pr4bfgipz5jk2dq0a1vcgsm7"))))
"1fdgji964mrrz19glx0zh91asji542fvybymvzk6rrbagkr5dagv"))))
(build-system gnu-build-system)
(arguments
(list
@@ -9124,7 +9124,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.")
(define-public nghttp2
(package
(name "nghttp2")
(version "1.68.1")
(version "1.58.0")
(source
(origin
(method url-fetch)
@@ -9133,7 +9133,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.")
"nghttp2-" version ".tar.xz"))
(sha256
(base32
"1cph2j688zxxxl3944g5grjma15qbv4b6z252ichsn7ilyq7mgba"))))
"1q4ps8acr7nyia7mf2z11m0yh3fn1imhyv855j3xjbx91l2a6s2a"))))
(build-system gnu-build-system)
(outputs (list "out"
"lib")) ; only libnghttp2
+49 -25
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2024 宋文武 <iyzsong@envs.net>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2026 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
;;; Copyright © 2016, 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -68,6 +68,7 @@
#:use-module (gnu packages polkit)
#:use-module (gnu packages popt)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages search)
@@ -93,6 +94,8 @@
#:use-module (guix packages)
#:use-module (guix utils))
(define %xfce-stable-version "^4[.][0-9]*[02468][.]")
(define-public libxfce4util
(package
(name "libxfce4util")
@@ -122,7 +125,8 @@
"A general-purpose utility library with core application support for the
Xfce Desktop Environment.")
(license lgpl2.0+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfconf
(package
@@ -165,7 +169,8 @@ Xfce Desktop Environment.")
"Settings daemon for Xfce, implemented as a D-Bus-based configuration
storage system.")
(license lgpl2.0+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public libxfce4ui
(package
@@ -199,7 +204,8 @@ storage system.")
"Libxfce4ui is the replacement of the old libxfcegui4 library. It is used
to share commonly used Xfce widgets among the Xfce applications.")
(license lgpl2.0+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public catfish
(package
@@ -253,7 +259,8 @@ to share commonly used Xfce widgets among the Xfce applications.")
intentionally lightweight and simple, using only GTK+ 3. You can configure
it to your needs by using several command line options.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public elementary-xfce-icon-theme
(package
@@ -321,7 +328,8 @@ that are targeted at desktop development, libexo is targeted at application
development.")
;; Libraries are under LGPLv2+, and programs under GPLv2+.
(license (list gpl2+ lgpl2.1+))
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public garcon
(package
@@ -354,7 +362,8 @@ GLib and GIO. It was started as a complete rewrite of the former Xfce menu
library called libxfce4menu, which, in contrast to garcon, was lacking menu
merging features essential for loading menus modified with menu editors.")
(license lgpl2.0+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public tumbler
(package
@@ -390,7 +399,8 @@ merging features essential for loading menus modified with menu editors.")
various URI schemes and MIME types. It is an implementation of the thumbnail
management D-Bus specification.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public libxfce4windowing
(package
@@ -424,7 +434,8 @@ management D-Bus specification.")
windowing concepts (screens, toplevel windows, workspaces, etc.) in a
windowing-system-independent manner.")
(license lgpl2.1+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfce4-panel
(package
@@ -473,7 +484,8 @@ windowing-system-independent manner.")
applications menu, workspace switcher and more.")
;; Libraries are under LGPLv2.1+, and programs under GPLv2+.
(license (list gpl2+ lgpl2.1+))
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfce4-battery-plugin
(package
@@ -698,7 +710,8 @@ per window.")
"Application finder for Xfce, it will show the applications installed on
your system in categories, so you can quickly find and launch them.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfce4-session
(package
@@ -769,7 +782,8 @@ your system in categories, so you can quickly find and launch them.")
"Session manager for Xfce, it will restore your session on startup and
allows you to shut down the computer from Xfce.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfce4-settings
(package
@@ -820,12 +834,13 @@ allows you to shut down the computer from Xfce.")
"Settings manager for Xfce, it can control various aspects of the desktop
like appearance, display, keyboard and mouse settings.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public thunar
(package
(name "thunar")
(version "4.20.6") ;stable version = even minor
(version "4.20.8") ;stable version = even minor
(source
(origin
(method git-fetch)
@@ -834,7 +849,7 @@ like appearance, display, keyboard and mouse settings.")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1ayjnnpl15v4h3rpay1a127cvrlaj6qwydk496083i9494j6cp9f"))))
(base32 "0605a9vxva3bplnv4pj0qf1gk1jxacqg03czhi396qs1fgs6ihw1"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags '("--enable-maintainer-mode" ;for thunar-marshal.c
@@ -866,7 +881,8 @@ like appearance, display, keyboard and mouse settings.")
"A modern file manager for graphical desktop, aiming to be easy-to-use and
fast.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public thunar-volman
(package
@@ -895,7 +911,8 @@ thunar-volman is installed and configured properly, and you plug in your
digital camera, it will automatically spawn your preferred photo application
and import the new pictures from your camera.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public thunar-archive-plugin
(package
@@ -1027,7 +1044,7 @@ menu.")
(base32 "1x39pbdx4186f7bkrc9ab5q7qs783mivm2j1msyf9m1nh09y617f"))))
(build-system gnu-build-system)
(native-inputs
(list xfce4-dev-tools))
(list python-setuptools xfce4-dev-tools))
(inputs
(list exo
thunar
@@ -1075,7 +1092,8 @@ menu.")
"Window manager for Xfce, it handles the placement of windows
on the screen.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfwm4-themes
(package
@@ -1162,7 +1180,8 @@ window manager.")
optional application menu or icons for minimized applications or launchers,
devices and folders.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public gigolo
(package
@@ -1240,7 +1259,8 @@ local and remote file systems and manage bookmarks of such.")
GStreamer framework and written to fit well in the Xfce desktop. Parole
features playback of local media files, DVD/CD and live streams.")
(license gpl2) ;version 2 only
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfce4-terminal
(package
@@ -1435,7 +1455,8 @@ freedesktop-compliant DBus interfaces to inform other applications about current
power level so that they can adjust their power consumption, and it provides the
inhibit interface which allows applications to prevent automatic sleep.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public ristretto
(package
@@ -1530,7 +1551,8 @@ calendar applications. It also includes a panel clock plugin and an
international clock application capable of simultaneously showing clocks from
several different time zones.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfce4-notifyd
(package
@@ -1703,7 +1725,8 @@ A plugin for the Xfce panel is also available.")
"Xfce Screensaver is a screen saver and locker that aims to have simple,
sane, secure defaults and be well integrated with the Xfce desktop.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
(define-public xfce4-volumed-pulse
(package
@@ -2424,4 +2447,5 @@ local weather in the panel, using forecast data provided by the
developers and people that want to build Xfce from Git In addition it contains
the Xfce developer's handbook.")
(license gpl2+)
(properties `((release-tag-prefix . ,(string-append name "-"))))))
(properties `((release-tag-prefix . ,(string-append name "-"))
(stable-version-regexp . ,%xfce-stable-version)))))
+32 -35
View File
@@ -1479,7 +1479,8 @@ treat it as part of their software base when porting.")
(inputs
(list libxt xorgproto libxext))
(native-inputs
(list gettext-minimal pkg-config))
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(home-page "https://www.x.org/wiki/")
(synopsis "Xorg XPM library")
(description "XPM (X Pixmap) image file format library.")
@@ -6341,43 +6342,39 @@ to answer a question. Xmessage can also exit after a specified time.")
(search-patches "xterm-370-explicit-xcursor.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:configure-flags
#~(list "--enable-wide-chars"
"--enable-load-vt-fonts"
"--enable-i18n"
"--enable-doublechars"
"--enable-luit"
"--enable-mini-luit"
"X_EXTRA_LIBS=-lXcursor")
#:phases
#~(modify-phases %standard-phases
(add-after 'build 'patch-file-names
(lambda _
(substitute* "uxterm"
(("([ `\\|])(sh|sed|awk|xmessage) " _ prefix command)
(string-append prefix (which command) " "))
(("(`|\"|LANG=C )(locale) " _ prefix command)
(string-append prefix (which command) " "))
(("=xterm")
(string-append "=" #$output "/bin/xterm"))))))))
'(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
"--enable-i18n" "--enable-doublechars"
"--enable-luit" "--enable-mini-luit"
"X_EXTRA_LIBS=-lXcursor")
#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(add-after 'build 'patch-file-names
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "uxterm"
(("([ `\\|])(sh|sed|awk|xmessage) " _ prefix command)
(string-append prefix (which command) " "))
(("(`|\"|LANG=C )(locale) " _ prefix command)
(string-append prefix (which command) " "))
(("=xterm")
(string-append "=" out "/bin/xterm")))))))))
(native-inputs
(list pkg-config))
(inputs
(list luit
libxft
fontconfig
freetype
ncurses
libice
libsm
libx11
libxcursor
libxext
libxt
xorgproto
libxaw))
`(("luit" ,luit)
("libXft" ,libxft)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("ncurses" ,ncurses)
("libICE" ,libice)
("libSM" ,libsm)
("libX11" ,libx11)
("libXcursor" ,libxcursor)
("libXext" ,libxext)
("libXt" ,libxt)
("xorgproto" ,xorgproto)
("libXaw" ,libxaw)))
(home-page "https://invisible-island.net/xterm/")
(synopsis "Terminal emulator for the X Window System")
(description
+1 -1
View File
@@ -225,7 +225,7 @@ HTTP.")
make-prometheus-node-exporter-configuration
prometheus-node-exporter-configuration?
(package prometheus-node-exporter-configuration-package
(default go-github-com-prometheus-node-exporter))
(default prometheus-node-exporter))
(web-listen-address prometheus-node-exporter-web-listen-address
(default ":9100"))
(textfile-directory prometheus-node-exporter-textfile-directory
+4 -16
View File
@@ -10,7 +10,6 @@
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2023 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2025 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -78,7 +77,6 @@
make-file-writable
copy-recursively
delete-file-recursively
delete-all-but
file-name-predicate
find-files
false-if-file-not-found
@@ -524,14 +522,6 @@ errors."
;; Don't follow symlinks.
lstat)))
(define (delete-all-but directory . preserve)
"Delete DIRECTORY recursively except for the files in PRESERVE immediately
found under it."
(with-directory-excursion directory
(let* ((pred (negate (cut member <> (cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(define (file-name-predicate regexp)
"Return a predicate that returns true when passed a file name whose base
name matches REGEXP."
@@ -544,21 +534,19 @@ name matches REGEXP."
(define* (find-files dir #:optional (pred (const #t))
#:key (stat lstat)
directories?
fail-on-error?
(enter? (const #t)))
fail-on-error?)
"Return the lexicographically sorted list of files under DIR for which PRED
returns true. PRED is passed two arguments: the absolute file name, and its
stat buffer; the default predicate always returns true. PRED can also be a
regular expression, in which case it is equivalent to (file-name-predicate
PRED). STAT is used to obtain file information; using 'lstat' means that
symlinks are not followed. If DIRECTORIES? is true, then directories will also
be included. If FAIL-ON-ERROR? is true, raise an exception upon error. Enter
sub-directories only when (ENTER? path stat result) returns true."
symlinks are not followed. If DIRECTORIES? is true, then directories will
also be included. If FAIL-ON-ERROR? is true, raise an exception upon error."
(let ((pred (if (procedure? pred)
pred
(file-name-predicate pred))))
;; Sort the result to get deterministic results.
(sort (file-system-fold enter?
(sort (file-system-fold (const #t)
(lambda (file stat result) ; leaf
(if (pred file stat)
(cons file result)
+8 -1
View File
@@ -206,7 +206,14 @@ a version prefix when PARTIAL-VERSION? is #t."
(old-reference (origin-uri (package-source package)))
(tags (get-package-tags package))
(versions (map car tags))
(version (find-version versions version partial-version?))
(stable-rx (and=> (assq-ref (package-properties package)
'stable-version-regexp)
make-regexp))
(version (find-version
(if (and stable-rx (not version))
(filter (cut regexp-exec stable-rx <>) versions)
versions)
version partial-version?))
(tag (assoc-ref tags version)))
(and version
(upstream-source
+11
View File
@@ -120,6 +120,8 @@
define-deprecated-package
package-field-location
package-location<?
this-package-input
this-package-native-input
@@ -874,6 +876,15 @@ if FIELD could not be found."
#f)))
(_ #f)))
(define (package-location<? p1 p2)
"Return true if P1's location is \"before\" P2's."
(let ((loc1 (package-location p1))
(loc2 (package-location p2)))
(and loc1 loc2
(if (string=? (location-file loc1) (location-file loc2))
(< (location-line loc1) (location-line loc2))
(string<? (location-file loc1) (location-file loc2))))))
(define-syntax-rule (this-package-input name)
"Return the input NAME of the package being defined--i.e., an input
from the inputs or propagated-inputs field. Native inputs are not
+49 -6
View File
@@ -11,6 +11,7 @@
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019, 2020 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2024, 2026 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,8 +29,10 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix scripts lint)
#:use-module (guix diagnostics)
#:use-module (guix packages)
#:use-module (guix lint)
#:use-module (guix modules)
#:use-module (guix ui)
#:use-module (guix store)
#:use-module (guix scripts)
@@ -87,6 +90,28 @@
checkers)
(exit 0))
(define* (process-whole-file file checkers #:key store)
"Run the given CHECKERS on packages in FILE and check that the
packages are sorted alphabetically."
(load* file '())
(let* ((module (resolve-interface (file-name->module-name file)))
(packages (sort (fold-packages cons '() (list module))
package-location<?)))
(fold (lambda (package previous)
(let ((line (location-line (package-location package)))
(name (package-name package)))
(run-checkers package checkers #:store store)
(and (string<? name previous)
(emit-warnings
(list (lint-warning
(package package)
(location (location file line 0))
(message-text
(G_ "breaks from alphabetical order"))
(message-data '())))))
name))
"" packages)))
;;;
;;; Command-line options.
@@ -115,6 +140,9 @@ run the checkers on all packages.\n"))
-L, --load-path=DIR prepend DIR to the package module search path"))
(newline)
(display (G_ "
-f, --whole-file check the packages defined in the given file(s)"))
(newline)
(display (G_ "
-h, --help display this help and exit"))
(display (G_ "
-l, --list-checkers display the list of available lint checkers"))
@@ -161,6 +189,9 @@ run the checkers on all packages.\n"))
(lambda args
(leave-on-EPIPE (show-help))
(exit 0)))
(option '(#\f "whole-file") #f #f
(lambda (opt name arg result)
(alist-cons 'whole-file? #t result)))
(option '(#\l "list-checkers") #f #f
(lambda (opt name arg result)
(alist-cons 'list? #t result)))
@@ -187,12 +218,17 @@ run the checkers on all packages.\n"))
#:build-options? #f))
(let* ((opts (parse-options))
(args (filter-map (match-lambda
(('argument . spec)
(specification->package spec))
(('expression . exp)
(read/eval-package-expression exp))
(_ #f))
(whole-file? (assoc-ref opts 'whole-file?))
(args (filter-map (if whole-file?
(match-lambda
(('argument . file) file)
(_ #f))
(match-lambda
(('argument . spec)
(specification->package spec))
(('expression . exp)
(read/eval-package-expression exp))
(_ #f)))
(reverse opts)))
(no-checkers (or (assoc-ref opts 'exclude) '()))
(the-checkers (filter (lambda (checker)
@@ -221,6 +257,13 @@ run the checkers on all packages.\n"))
(call-maybe-with-store
(lambda (store)
(cond
(whole-file?
(when (null? args)
(warning (G_ "no files specified, nothing to do~%")))
(for-each
(lambda (file)
(process-whole-file file checkers #:store store))
args))
((null? args)
(fold-packages (lambda (p r) (run-checkers p checkers
#:store store)) '()))
-9
View File
@@ -603,15 +603,6 @@ bailing out~%"))
#:format-comment canonicalize-comment
#:format-vertical-space canonicalize-vertical-space)))))
(define (package-location<? p1 p2)
"Return true if P1's location is \"before\" P2's."
(let ((loc1 (package-location p1))
(loc2 (package-location p2)))
(and loc1 loc2
(if (string=? (location-file loc1) (location-file loc2))
(< (location-line loc1) (location-line loc2))
(string<? (location-file loc1) (location-file loc2))))))
;;;
;;; Whole-file formatting.
+18 -2
View File
@@ -1,5 +1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
# Copyright © 2026 Herman Rimm <herman@rimm.ee>
#
# This file is part of GNU Guix.
#
@@ -35,12 +36,20 @@ cat > "$module_dir/foo.scm"<<EOF
#:use-module (guix packages)
#:use-module (gnu packages base))
;; This definition uses (the line number of) the hello package location
;; instead of generating a new one.
(define-public hi hello)
(define-public dummy
(package (inherit hello)
(name "dummy")
(version "42")
(synopsis "dummy package")
(description "dummy package. Only used for testing purposes.")))
(define-public bar
(package (inherit dummy)
(name "bar")))
EOF
GUIX_PACKAGE_PATH="$module_dir"
@@ -52,10 +61,11 @@ grep_warning ()
echo $res
}
# Three issues with the dummy package:
# Issues with the dummy package:
# 1) the synopsis starts with the package name;
# 2) the synopsis starts with a lower-case letter;
# 3) the description has a single space following the end-of-sentence period.
# 3) the description has a single space following the end-of-sentence period;
# 4) the alphabetically lesser bar package succeeds it.
out=`guix lint -c synopsis,description dummy 2>&1`
test `grep_warning "$out"` -eq 3
@@ -69,6 +79,12 @@ test `grep_warning "$out"` -eq 1
out=`guix lint -c description,synopsis dummy 2>&1`
test `grep_warning "$out"` -eq 3
working_dir="$(pwd)"
cd "$module_dir"
out=`guix lint -c name -f foo.scm 2>&1`
cd "$working_dir"
test `echo "$out" | grep -E -c "breaks from alphabetical order"` -eq 1
guix lint -c synopsis,invalid-checker dummy 2>&1 | \
grep -q 'invalid-checker: invalid checker'