mirror of
https://codeberg.org/guix/guix.git
synced 2026-04-28 14:43:51 +00:00
Compare commits
280 Commits
python-tea
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb9580d25c | ||
|
|
39666ccc9a | ||
|
|
4f4c35738a | ||
|
|
41f2dda306 | ||
|
|
9578d1b040 | ||
|
|
b2ff307a6e | ||
|
|
f7f8a16764 | ||
|
|
a5f9bcf5bb | ||
|
|
de4a5e2b3d | ||
|
|
8d07dd9ef7 | ||
|
|
e2173901c2 | ||
|
|
9163b17ce9 | ||
|
|
e72baf6d34 | ||
|
|
4a3633caf5 | ||
|
|
895605e489 | ||
|
|
afe281ae0f | ||
|
|
121c4d1b2f | ||
|
|
a54a340f84 | ||
|
|
ee5c11248c | ||
|
|
c64c8edc05 | ||
|
|
715a9d2f66 | ||
|
|
44f0c89d6e | ||
|
|
d0863faf0a | ||
|
|
4a42082fcd | ||
|
|
0171cb5cc8 | ||
|
|
558a49ad28 | ||
|
|
432e4379cf | ||
|
|
614d71d344 | ||
|
|
9e9531cc2c | ||
|
|
426e9eb469 | ||
|
|
37bbea3c78 | ||
|
|
dec9d8eb30 | ||
|
|
7bf7b6b254 | ||
|
|
b34d91aa72 | ||
|
|
c1e3ab413d | ||
|
|
c46ef1de31 | ||
|
|
af19e97db6 | ||
|
|
f0af14e624 | ||
|
|
085686f462 | ||
|
|
955447987e | ||
|
|
80df703178 | ||
|
|
490f733f7f | ||
|
|
5ee3aa443e | ||
|
|
98c7a2139e | ||
|
|
3072e01ca8 | ||
|
|
353020c918 | ||
|
|
230cf6cb0d | ||
|
|
922c10243d | ||
|
|
b50f2402f3 | ||
|
|
ffcc903abb | ||
|
|
0ad53ad924 | ||
|
|
75939ebd70 | ||
|
|
45d47d2c60 | ||
|
|
592cb0186b | ||
|
|
c54f6246c8 | ||
|
|
16f0e5fa43 | ||
|
|
0fe307efbd | ||
|
|
b1bb9ce655 | ||
|
|
006d7b22c0 | ||
|
|
a71f019471 | ||
|
|
ecff761ac9 | ||
|
|
0440638cce | ||
|
|
d6134742e2 | ||
|
|
b47684fa86 | ||
|
|
76a3764495 | ||
|
|
190f654d6c | ||
|
|
6fe729a5a8 | ||
|
|
fc648a5bea | ||
|
|
9d3432a7b6 | ||
|
|
354fd0e174 | ||
|
|
092acf3fc5 | ||
|
|
0460ee1892 | ||
|
|
bebd9bd3f2 | ||
|
|
c2c9ddb6bc | ||
|
|
d7ea83a143 | ||
|
|
3db099e19b | ||
|
|
6c85b71b4e | ||
|
|
bb1e100ffb | ||
|
|
392f34f6b5 | ||
|
|
55d7c3c0e2 | ||
|
|
974bb6e8b1 | ||
|
|
07173ebcd0 | ||
|
|
bd9a6e692c | ||
|
|
209c5f601f | ||
|
|
bcaffa627a | ||
|
|
f693c077fa | ||
|
|
bdf329399d | ||
|
|
09d854e8c9 | ||
|
|
b7c039799c | ||
|
|
9d7ba1b2e9 | ||
|
|
9e1293fd73 | ||
|
|
2c0d3c5f9f | ||
|
|
f94a4c6d2e | ||
|
|
591656991e | ||
|
|
9ff0ec5f6c | ||
|
|
1f10ba0fe1 | ||
|
|
3d1ab88af2 | ||
|
|
2f75414c6c | ||
|
|
aab337c837 | ||
|
|
1aac5fe3ee | ||
|
|
a24cb4abdd | ||
|
|
9e19bfc501 | ||
|
|
81c48340da | ||
|
|
153dc7fcc7 | ||
|
|
7e8181641c | ||
|
|
48f83813bb | ||
|
|
1b55191d6c | ||
|
|
6a9e17f25d | ||
|
|
3cfb39d7e6 | ||
|
|
2bffc5f647 | ||
|
|
de8eb77b59 | ||
|
|
da255bd17f | ||
|
|
d99cf9d38a | ||
|
|
584b812211 | ||
|
|
a356889513 | ||
|
|
eb330ca8b4 | ||
|
|
02a4133033 | ||
|
|
51428eeec5 | ||
|
|
d0f19d1a26 | ||
|
|
f5a36a07a3 | ||
|
|
565f776d1a | ||
|
|
1975d801fa | ||
|
|
3c2fef2a40 | ||
|
|
305d755a4d | ||
|
|
51db064e43 | ||
|
|
a6bd771301 | ||
|
|
9be2b65816 | ||
|
|
1499542001 | ||
|
|
3099de8e73 | ||
|
|
447c51b728 | ||
|
|
1c4934111d | ||
|
|
3b88750737 | ||
|
|
e2ef00614e | ||
|
|
6553258aa7 | ||
|
|
4e1160e837 | ||
|
|
0645572055 | ||
|
|
791e86d4cb | ||
|
|
0d5a4fd01c | ||
|
|
8c3e5a1621 | ||
|
|
8d32c01209 | ||
|
|
4fba0cfdd6 | ||
|
|
0647e22fcc | ||
|
|
a24214d128 | ||
|
|
3cab4606f0 | ||
|
|
cf55dcd5a4 | ||
|
|
dcb5c6797e | ||
|
|
8c24eb7815 | ||
|
|
d9281f2ba1 | ||
|
|
44030a9f14 | ||
|
|
9b62dcd2dd | ||
|
|
6141fe2376 | ||
|
|
ed15b7ebf5 | ||
|
|
3f72660398 | ||
|
|
a574ebdf38 | ||
|
|
5213639e31 | ||
|
|
36cb3f4fdc | ||
|
|
5eded80160 | ||
|
|
898584355b | ||
|
|
9f6f330a13 | ||
|
|
1681c73beb | ||
|
|
5bfb062d51 | ||
|
|
721f20cbaf | ||
|
|
33a75625f7 | ||
|
|
cac0158b8a | ||
|
|
7ffe7842ee | ||
|
|
ddedd1d5c9 | ||
|
|
d1f1a177a6 | ||
|
|
d04f8fddf1 | ||
|
|
84e69015d7 | ||
|
|
2cd99842ce | ||
|
|
0ccb5c5601 | ||
|
|
c6a06616b1 | ||
|
|
a1596ce9c4 | ||
|
|
1c377e82c6 | ||
|
|
d3e363812a | ||
|
|
e16f1e271f | ||
|
|
5649e46381 | ||
|
|
91069589af | ||
|
|
c0d9a5f0c5 | ||
|
|
c2ae4e08d9 | ||
|
|
e1158d18c9 | ||
|
|
7848283798 | ||
|
|
1b9bd709a1 | ||
|
|
3859b334a3 | ||
|
|
22ab99ef43 | ||
|
|
244710e5c1 | ||
|
|
2db1ca0c82 | ||
|
|
41345143fa | ||
|
|
0379a84cb3 | ||
|
|
42c01a6d4b | ||
|
|
5b7a9ba2c7 | ||
|
|
9f190a6f38 | ||
|
|
d5c0b392ad | ||
|
|
e717e4645b | ||
|
|
cd93a2d931 | ||
|
|
e8005869a7 | ||
|
|
68dd717d9b | ||
|
|
d7ccfafbac | ||
|
|
1b8b2e3c3c | ||
|
|
5a4531c8fe | ||
|
|
938c4e65f8 | ||
|
|
98c2316377 | ||
|
|
fa2a46be0b | ||
|
|
5192cd0f37 | ||
|
|
1ed87b6338 | ||
|
|
0b3cb58286 | ||
|
|
19e629f0cc | ||
|
|
5b5c6e5089 | ||
|
|
f745fcd2dd | ||
|
|
46f41339ea | ||
|
|
dc4c04a435 | ||
|
|
958d5387bb | ||
|
|
3074ef6ae5 | ||
|
|
6a39be4de0 | ||
|
|
4f373dc2d4 | ||
|
|
e4973ce3ec | ||
|
|
74958d45f5 | ||
|
|
00fd60c839 | ||
|
|
d2a00bf5a7 | ||
|
|
4eb595f98e | ||
|
|
039f42cacf | ||
|
|
300ad1eae1 | ||
|
|
e91add3e5d | ||
|
|
b623f93a1c | ||
|
|
ff0ac745a3 | ||
|
|
79caf62e0e | ||
|
|
2427e2c927 | ||
|
|
ade48de757 | ||
|
|
eb8fb07869 | ||
|
|
e5809f9dfe | ||
|
|
d618b746ab | ||
|
|
81e7897426 | ||
|
|
139275f541 | ||
|
|
0d3e6c9067 | ||
|
|
170430ae56 | ||
|
|
0d872d8feb | ||
|
|
18514ac581 | ||
|
|
634e01e63c | ||
|
|
0ba382ed46 | ||
|
|
3914c0b0d4 | ||
|
|
77926495b9 | ||
|
|
24b4cac721 | ||
|
|
736493c469 | ||
|
|
2313cfe545 | ||
|
|
20703c3798 | ||
|
|
33fdbbf0ec | ||
|
|
fb44842b2b | ||
|
|
e6cea80a08 | ||
|
|
b1241b9837 | ||
|
|
fa529d1008 | ||
|
|
7a85759090 | ||
|
|
3cd0fafdd1 | ||
|
|
b6e3f8e6b6 | ||
|
|
a43943d964 | ||
|
|
c11f5915ed | ||
|
|
56f3be50c4 | ||
|
|
1bb57f474b | ||
|
|
e5eae4c58a | ||
|
|
27d8040bb8 | ||
|
|
0ac03eb38c | ||
|
|
6601fd0402 | ||
|
|
363ad0fc8c | ||
|
|
02421ea3fb | ||
|
|
48f6b21f1c | ||
|
|
8227c6e7b3 | ||
|
|
abaf568edf | ||
|
|
75ea9c1857 | ||
|
|
c9652dcc06 | ||
|
|
4fd78658a7 | ||
|
|
da514e3e8f | ||
|
|
9ae428f9ca | ||
|
|
3ce60cd35e | ||
|
|
80fcc26390 | ||
|
|
723dc0512c | ||
|
|
66ca9d5331 | ||
|
|
7c93e85206 | ||
|
|
19a2b2f026 | ||
|
|
e087bad5e9 | ||
|
|
54f071fb05 | ||
|
|
90cd859382 |
@@ -274,6 +274,7 @@ guix/build-system/ant\.scm @guix/java
|
||||
guix/build-system/clojure\.scm @guix/java
|
||||
guix/build-system/maven\.scm @guix/java
|
||||
|
||||
gnu/packages/javascript\.scm @guix/javascript
|
||||
gnu/packages/node-xyz\.scm @guix/javascript
|
||||
gnu/packages/node\.scm @guix/javascript
|
||||
guix/build-system/node\.scm @guix/javascript
|
||||
|
||||
@@ -45251,6 +45251,12 @@ Extra command line options for @code{guix-data-service}.
|
||||
@item @code{extra-process-jobs-options} (default: @var{'()})
|
||||
Extra command line options for @code{guix-data-service-process-jobs}.
|
||||
|
||||
@item @code{extra-environment-variables} (default: @var{'()})
|
||||
Extra environment variables for @code{guix-data-service}.
|
||||
|
||||
@item @code{extra-process-jobs-environment-variables} (default: @var{'()})
|
||||
Extra environment variables for @code{guix-data-service-process-jobs}.
|
||||
|
||||
@item @code{git-repositories} (default: @var{#f})
|
||||
List of git-repository information to insert into the database.
|
||||
|
||||
|
||||
@@ -844,7 +844,8 @@ and the maven-build-system."
|
||||
#:name "JavaScript team"
|
||||
#:description
|
||||
"JavaScript/Node.js packages, the node build system."
|
||||
#:scope (list "gnu/packages/node-xyz.scm"
|
||||
#:scope (list "gnu/packages/javascript.scm"
|
||||
"gnu/packages/node-xyz.scm"
|
||||
"gnu/packages/node.scm"
|
||||
"guix/build-system/node.scm"
|
||||
"guix/build/node-build-system.scm"
|
||||
|
||||
@@ -2349,8 +2349,16 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/renpy-fix-integer-slots.patch \
|
||||
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
|
||||
%D%/packages/patches/rdkit-unbundle-external-dependencies.patch \
|
||||
%D%/packages/patches/r-biostrings-r4.6.0-compat.patch \
|
||||
%D%/packages/patches/r-h5mread-0001-h5mread-1.3.2-Get-rid-of-non-API-calls-to-R.patch \
|
||||
%D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \
|
||||
%D%/packages/patches/r-mscoreutils-0001-fix-non-API-call-to-R-SETLENGTH-by-using-lengthgets.patch \
|
||||
%D%/packages/patches/r-rsamtools-r-4.6.0-compat.patch \
|
||||
%D%/packages/patches/r-snpstats-0001-fixed-non-API-except-for-IS_S4_OBJECT.patch \
|
||||
%D%/packages/patches/r-snpstats-0002-fixed-IS_S4_OBJECT.patch \
|
||||
%D%/packages/patches/r-sapa-lapack.patch \
|
||||
%D%/packages/patches/r-shortread-0001-ShortRead-1.69.3-Get-rid-of-non-API-calls-to-R.patch \
|
||||
%D%/packages/patches/r-sparsearray-r-4.6.0-compat.patch \
|
||||
%D%/packages/patches/ripperx-missing-file.patch \
|
||||
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
|
||||
%D%/packages/patches/rtosc-0.3.1-fix-invalid-comparison-operator.patch \
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -913,7 +913,7 @@ suite native in R.")
|
||||
(define-public r-bpcells
|
||||
(package
|
||||
(name "r-bpcells")
|
||||
(version "0.3.0")
|
||||
(version "0.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -922,7 +922,7 @@ suite native in R.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "12h1di45fg06nhsliii7v0h1z567pkpis1xm4ar1qr8ns1n8iljw"))
|
||||
(base32 "0yqgcajq83g25mznwcngaw7pi6vcqxqdnynpgb95yci57k3wrp6j"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(delete-file-recursively "r/src/vendor/highway"))))
|
||||
@@ -931,13 +931,15 @@ suite native in R.")
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
'(modify-phases %standard-phases
|
||||
`(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(substitute* "r/configure"
|
||||
(("tools/hwy-test.cpp" m)
|
||||
(string-append m " $HWY_LIBS $HWY_CFLAGS")))
|
||||
(chdir "r"))))))
|
||||
(lambda _ (chdir "r")))
|
||||
,@(if (target-x86-32?)
|
||||
'((add-after 'chdir 'require-sse2
|
||||
;; This avoids falling back to the scalar backend in
|
||||
;; highway, which fails to build.
|
||||
(lambda _ (setenv "CFLAGS" "-msse2"))))
|
||||
'()))))
|
||||
(propagated-inputs
|
||||
(list r-dplyr
|
||||
r-ggplot2
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -148,13 +148,13 @@ system.")
|
||||
(define-public r-duckdb
|
||||
(package
|
||||
(name "r-duckdb")
|
||||
(version "1.5.1")
|
||||
(version "1.5.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "duckdb" version))
|
||||
(sha256
|
||||
(base32 "177621m08whqqk4yhj3zrr08l3d9hhlqh3gm9jzhi5cplg47cksq"))
|
||||
(base32 "1dldlfwvc33czvlxfmwaj4p9y6sjjj5iqy98yda47a8kclrqmyam"))
|
||||
;; This package bundles the duckdb sources and builds a custom variant
|
||||
;; of duckdb. I'd be happy to link it with our duckdb library instead,
|
||||
;; but it does not seem possible to do that.
|
||||
|
||||
@@ -2331,7 +2331,7 @@ Automation}, portable and vendor neutral FPGA place and route tool.")
|
||||
(define-public nvc
|
||||
(package
|
||||
(name "nvc")
|
||||
(version "1.19.3")
|
||||
(version "1.20.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -2340,7 +2340,7 @@ Automation}, portable and vendor neutral FPGA place and route tool.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zizz2dafm53lzpjayy6vig5pz5ri9cszdivg0jzzh8s3ggkpy1i"))))
|
||||
"1b38x2ch468s4p6mrq6c8s0d95vb84p6w4v8in79l4w7sfy8jnr0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:out-of-source? #t
|
||||
@@ -3461,7 +3461,7 @@ form of AXI, AXI lite, and AXI stream modules.")
|
||||
(define-public python-edalize
|
||||
(package
|
||||
(name "python-edalize")
|
||||
(version "0.6.6")
|
||||
(version "0.6.8")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -3470,7 +3470,7 @@ form of AXI, AXI lite, and AXI stream modules.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "115nc15n2cx4x9irjim07zkg0287418djqd6ja7rm8jrnyldvln9"))))
|
||||
(base32 "04m2lhkclw9fj92k43c06j003qnq9i1yhy2131fvcnkkr0d9438m"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -4516,7 +4516,7 @@ unique design feature of Trilinos is its focus on packages.")
|
||||
(define-public verilator
|
||||
(package
|
||||
(name "verilator")
|
||||
(version "5.046")
|
||||
(version "5.048")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4525,7 +4525,7 @@ unique design feature of Trilinos is its focus on packages.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1gr1qhxvl4856hnmnx46dqd2qp0jhdh959zm2qfmxzzh19np7xkm"))))
|
||||
(base32 "16c1x66kqmc5ldqjij81kypj471fibfihcqn6kz4wbxvnn0smyn6"))))
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
automake
|
||||
|
||||
@@ -3418,49 +3418,49 @@ interfaces.")
|
||||
(package
|
||||
(name "xdg-desktop-portal-wlr")
|
||||
(version "0.8.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emersion/xdg-desktop-portal-wlr")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1jj0a9s3h3i04qsxkhcpxjzbb17hs9ngdy7wkypja09233zdz10w"))
|
||||
(patches (search-patches "xdg-desktop-portal-wlr-harcoded-length.patch"))))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emersion/xdg-desktop-portal-wlr")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1jj0a9s3h3i04qsxkhcpxjzbb17hs9ngdy7wkypja09233zdz10w"))
|
||||
(patches (search-patches "xdg-desktop-portal-wlr-harcoded-length.patch"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("-Dsystemd=disabled"
|
||||
"-Dsd-bus-provider=libelogind")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'hardcode-binaries
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((sh (search-input-file inputs "/bin/sh"))
|
||||
(grim (search-input-file inputs "/bin/grim"))
|
||||
(slurp (search-input-file inputs "/bin/slurp")))
|
||||
(substitute* "src/screenshot/screenshot.c"
|
||||
(("grim") grim)
|
||||
(("slurp") slurp)
|
||||
(("execl\\(\"/bin/sh\", \"/bin/sh\"")
|
||||
(string-append "execl(\"" sh "\", \"" sh "\"")))
|
||||
(substitute* "src/screencast/screencast.c"
|
||||
(("execvp\\(\"sh")
|
||||
(string-append "execvp(\"" sh))))))
|
||||
(add-after 'install 'install-documentation
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(install-file "../source/README.md"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/share/doc/" ,name)))))))
|
||||
(native-inputs
|
||||
(list cmake-minimal pkg-config scdoc))
|
||||
(inputs (list elogind
|
||||
bash-minimal
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list "-Dsystemd=disabled"
|
||||
"-Dsd-bus-provider=libelogind")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'hardcode-binaries
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((sh (search-input-file inputs "/bin/sh"))
|
||||
(grim (search-input-file inputs "/bin/grim"))
|
||||
(slurp (search-input-file inputs "/bin/slurp")))
|
||||
(substitute* '("src/screencast/chooser.c"
|
||||
"src/screenshot/screenshot.c")
|
||||
(("grim") grim)
|
||||
(("slurp") slurp)
|
||||
(("/bin/sh") sh))
|
||||
(substitute* "src/screencast/screencast.c"
|
||||
(("execvp\\(\"sh")
|
||||
(format #f "execvp(\"~a" sh))))))
|
||||
(add-after 'install 'install-documentation
|
||||
(lambda _
|
||||
(install-file "../source/README.md"
|
||||
(string-append #$output "/share/doc/"
|
||||
#$name)))))))
|
||||
(native-inputs (list cmake-minimal pkg-config scdoc))
|
||||
(inputs (list bash-minimal
|
||||
elogind
|
||||
grim
|
||||
iniparser
|
||||
mesa
|
||||
libinih
|
||||
mesa
|
||||
pipewire
|
||||
slurp
|
||||
wayland
|
||||
|
||||
@@ -425,14 +425,29 @@ hierarchical hexagonal geospatial indexing system")
|
||||
(base32
|
||||
"00qdk9a4048pzfj2rhzkfw3lvm642znf6kr4x29i3d94494pxsnn"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments `(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after
|
||||
'unpack 'patch-test-shebangs
|
||||
(lambda _
|
||||
(substitute* '("tests/xmltester/testrunner.sh"
|
||||
"tests/xmltester/safe_to_xml.sh")
|
||||
(("/bin/sh") (which "sh"))))))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
,@(if (or (target-x86-32?) (target-arm32?))
|
||||
'((add-after 'unpack 'disable-broken-tests
|
||||
(lambda _
|
||||
;; This test fails due to limited accuracy.
|
||||
(delete-file "tests/xmltester/tests/general/TestCentroid.xml")
|
||||
(with-directory-excursion "tests/unit"
|
||||
;; These also fail due to limited accuracy.
|
||||
(delete-file "algorithm/MinimumAreaRectangleTest.cpp")
|
||||
(delete-file "capi/GEOSMinimumRotatedRectangleTest.cpp")
|
||||
;; It is unclear why these fail, but I'm guessing:
|
||||
;; limited accuracy.
|
||||
(delete-file "linearref/LengthIndexedLineTest.cpp")
|
||||
(delete-file "math/DDTest.cpp")))))
|
||||
'())
|
||||
(add-after
|
||||
'unpack 'patch-test-shebangs
|
||||
(lambda _
|
||||
(substitute* '("tests/xmltester/testrunner.sh"
|
||||
"tests/xmltester/safe_to_xml.sh")
|
||||
(("/bin/sh") (which "sh"))))))))
|
||||
(inputs
|
||||
(list glib))
|
||||
(home-page "https://libgeos.org/")
|
||||
@@ -955,6 +970,29 @@ hydrology and waste deposition.")
|
||||
(base32
|
||||
"03r6mspfv22fs4x4jcgv25v9gsj5k6zy8incvyf94qf50g47s2bc"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(if (target-32bit?)
|
||||
(list
|
||||
#:phases
|
||||
'(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-tests
|
||||
(lambda _
|
||||
;; These regression tests fail due to accuracy problems.
|
||||
(substitute* "test/unit/test_factory.cpp"
|
||||
(("^TEST\\(factory, AuthorityFactory_createUnitOfMeasure_linear_us_survey_foot\\) \\{" m)
|
||||
(string-append m "\nGTEST_SKIP();\n")))
|
||||
(substitute* "test/unit/test_grids.cpp"
|
||||
(("^TEST_F\\(GridTest, VerticalShiftGridSet_gtx\\) \\{" m)
|
||||
(string-append m "\nGTEST_SKIP();\n")))
|
||||
(substitute* "test/unit/test_defmodel.cpp"
|
||||
(("^TEST\\(defmodel, evaluator_horizontal_unit_metre\\) \\{" m)
|
||||
(string-append m "\nGTEST_SKIP();\n")))
|
||||
;; These regression tests fail due to accuracy problems.
|
||||
(substitute* "test/CMakeLists.txt"
|
||||
(("proj_add_gie_test\\(\"4D-API-cs2cs-style\".+") "")
|
||||
(("proj_add_gie_test\\(\"Builtins\".+") "")
|
||||
(("proj_add_gie_test\\(\"peirce_q\".+") ""))))))
|
||||
'()))
|
||||
(native-inputs (list googletest pkg-config))
|
||||
(propagated-inputs (list curl libtiff sqlite)) ;required by proj.pc
|
||||
(home-page "https://proj.org/")
|
||||
@@ -984,7 +1022,34 @@ lets developers use the functionality of Proj in their own software.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1g0hkpiablvhsmw0kn5frwgdir3q7avc45p6lc1zhhhzkv5ikydh"))))))
|
||||
"1g0hkpiablvhsmw0kn5frwgdir3q7avc45p6lc1zhhhzkv5ikydh"))))
|
||||
(arguments
|
||||
(if (target-32bit?)
|
||||
(list
|
||||
#:phases
|
||||
'(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-tests
|
||||
(lambda _
|
||||
;; These regression tests fail due to accuracy problems.
|
||||
(substitute* "test/unit/test_factory.cpp"
|
||||
(("^TEST\\(factory, AuthorityFactory_createUnitOfMeasure_linear_us_survey_foot\\) \\{" m)
|
||||
(string-append m "\nGTEST_SKIP();\n")))
|
||||
(substitute* "test/unit/test_grids.cpp"
|
||||
(("^TEST_F\\(GridTest, VerticalShiftGridSet_gtx\\) \\{" m)
|
||||
(string-append m "\nGTEST_SKIP();\n")))
|
||||
(substitute* "test/unit/test_defmodel.cpp"
|
||||
(("^TEST\\(defmodel, evaluator_horizontal_unit_metre\\) \\{" m)
|
||||
(string-append m "\nGTEST_SKIP();\n")))
|
||||
;; These regression tests fail due to accuracy problems.
|
||||
(substitute* "test/CMakeLists.txt"
|
||||
(("proj_add_gie_test\\(\"4D-API-cs2cs-style\".+") "")
|
||||
(("proj_add_gie_test\\(\"Builtins\".+") "")
|
||||
(("proj_add_gie_test\\(\"peirce_q\".+") "")
|
||||
(("proj_add_gie_test\\(\"adams_ws2\".+") ""))
|
||||
(substitute* "test/cli/CMakeLists.txt"
|
||||
(("proj_add_test_script_sh\\(\"testvarious\" CS2CS_BIN\\)") ""))))))
|
||||
'()))))
|
||||
|
||||
|
||||
(define-public python-obspy
|
||||
(package
|
||||
|
||||
@@ -7764,8 +7764,8 @@ is an attempt to combine both into something useful.")
|
||||
(license license:asl2.0))))
|
||||
|
||||
(define-public guile-knots
|
||||
(let ((commit "f767eca066495e6582e89ba1b91907c0c5657878")
|
||||
(revision "34"))
|
||||
(let ((commit "49996c432a4616e03ecaf01cb42afc5fd78eafd5")
|
||||
(revision "35"))
|
||||
(package
|
||||
(name "guile-knots")
|
||||
(version (git-version "0.1" revision commit))
|
||||
@@ -7776,7 +7776,7 @@ is an attempt to combine both into something useful.")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"18fqmpyrrxy8phxxm5b7d1qhhvc3rsrs243xiinkj2hn2ca1cqi8"))
|
||||
"0i6vk432shy7qmsq1hli71a9kmgf8yy9hx3bck0r9qzsldv1m3m9"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2014-2019, 2021, 2026 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2021, 2026 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017, 2022 Marius Bakke <marius@gnu.org>
|
||||
@@ -226,6 +226,18 @@ JNI.")
|
||||
(setenv "JAVACMD" (search-input-file inputs "/bin/jamvm"))
|
||||
(setenv "JAVAC" (search-input-file inputs "/bin/jikes"))
|
||||
(setenv "CLASSPATH" (search-input-file inputs "/lib/rt.jar"))))
|
||||
,@(if (target-x86-32?)
|
||||
;; XXX: On i686 isFile() always seems to return true. Patching
|
||||
;; this here is very ugly, but the effects are limited. None
|
||||
;; of these changes remain by the time we've built Icedtea and
|
||||
;; the other JDKs.
|
||||
'((add-after 'unpack 'disable-isFile-checks
|
||||
(lambda _
|
||||
(substitute* "src/main/org/apache/tools/ant/util/ResourceUtils.java"
|
||||
(("destFile = \\(\\(FileProvider\\).*") ""))
|
||||
(substitute* "src/main/org/apache/tools/ant/taskdefs/Mkdir.java"
|
||||
(("dir.isFile\\(\\)") "false")))))
|
||||
'())
|
||||
(replace 'build
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Ant complains if this file doesn't exist.
|
||||
|
||||
@@ -1285,7 +1285,13 @@ new Date();"))))
|
||||
;; It looks like the "--disable-warnings-as-errors" option of
|
||||
;; the 'configure' phase is not working.
|
||||
(substitute* "make/autoconf/generated-configure.sh"
|
||||
(("-Werror") ""))))))
|
||||
(("-Werror") ""))))
|
||||
#$@(if (target-x86-32?)
|
||||
;; On i686 the C2 compiler sometimes crashes when importing
|
||||
;; certificates.
|
||||
#~((add-before 'install-keystore 'disable-C2-compiler
|
||||
(lambda _ (setenv "_JAVA_OPTIONS" "-XX:TieredStopAtLevel=1"))))
|
||||
#~())))
|
||||
((#:disallowed-references refs '())
|
||||
(cons* (this-package-native-input "openjdk")
|
||||
(gexp-input (this-package-native-input "openjdk") "jdk")
|
||||
@@ -1844,12 +1850,50 @@ blacklisted.certs.pem"
|
||||
(define-public openjdk24
|
||||
(make-openjdk
|
||||
openjdk23 "24.0.1"
|
||||
"0h6sbzbjyqg85iml41pswdh2z3d7h2hhb0sd5yll37r1mj5lsxmx"))
|
||||
"0h6sbzbjyqg85iml41pswdh2z3d7h2hhb0sd5yll37r1mj5lsxmx"
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base)
|
||||
((#:configure-flags flags #~(list))
|
||||
(if (target-x86-32?)
|
||||
#~(cons* "--enable-deprecated-ports=yes" #$flags)
|
||||
flags))))))
|
||||
|
||||
(define-public openjdk25
|
||||
(make-openjdk
|
||||
openjdk24 "25.0.2"
|
||||
"03aa34lscr3qbdl6qz3gqyp0nzkqfj02362mzmpkiq3y2g5xdnrj"))
|
||||
"03aa34lscr3qbdl6qz3gqyp0nzkqfj02362mzmpkiq3y2g5xdnrj"
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base)
|
||||
((#:configure-flags flags #~(list))
|
||||
(if (target-x86-32?)
|
||||
;; Full builds on 32-bit x86 architectures are not supported as of
|
||||
;; this version. Best we can do is to build with the "zero" variant.
|
||||
#~(cons* "--with-jvm-variants=zero"
|
||||
"--disable-precompiled-headers"
|
||||
#$flags)
|
||||
flags))
|
||||
((#:phases phases #~%standard-phases)
|
||||
(if (target-x86-32?)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((images (car (find-files "build" "-zero-release"
|
||||
#:directories? #t))))
|
||||
(copy-recursively (string-append images "/images/jdk")
|
||||
#$output:jdk)
|
||||
(copy-recursively (string-append images "/images/jre")
|
||||
#$output)
|
||||
(copy-recursively (string-append images "/images/docs")
|
||||
#$output:doc))))
|
||||
(replace 'install-libjvm
|
||||
(lambda _
|
||||
(let ((lib-out (string-append #$output "/lib"))
|
||||
(lib-jdk (string-append #$output:jdk "/lib")))
|
||||
(symlink (string-append lib-jdk "/zero/libjvm.so")
|
||||
(string-append lib-jdk "/libjvm.so"))
|
||||
(symlink (string-append lib-out "/zero/libjvm.so")
|
||||
(string-append lib-out "/libjvm.so"))))))
|
||||
phases))))))
|
||||
|
||||
;;; Convenience alias to point to the latest version of OpenJDK.
|
||||
(define-public openjdk openjdk25)
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2025 Arjan Adriaanse <arjan@adriaan.se>
|
||||
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
|
||||
;;; Copyright © 2026 Simen Endsjø <contact@simendsjo.me>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -2797,6 +2798,76 @@ kernel modules to control the keyboard on most Tuxedo computers. The @code{tuxed
|
||||
module is also needed for the @code{tuxedo-control-center} (short tcc) package.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public evdi
|
||||
(package
|
||||
(name "evdi")
|
||||
(version "1.14.15") ;inherited by libevdi
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/DisplayLink/evdi")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "065mfwmb4nw71s0f0ax9si8xpbr1sah1bhxvq1k81yicvi83wsxn"))))
|
||||
(build-system linux-module-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f ;no test suite
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "module")))
|
||||
;; Looks like the value is only there to detect RHEL
|
||||
;; derivatives, so we can safely delete the include.
|
||||
(add-after 'unpack 'embed-/etc/os-release
|
||||
(lambda _
|
||||
(substitute* "module/Makefile"
|
||||
(("include /etc/os-release") "")))))))
|
||||
(home-page "https://github.com/DisplayLink/evdi")
|
||||
(synopsis
|
||||
"@acronym{EVDI, Extensible Virtual Display Interface} Linux kernel module")
|
||||
(description
|
||||
"The @acronym{EVDI, Extensible Virtual Display Interface} is a Linux kernel
|
||||
module that enables management of multiple screens, allowing user-space programs
|
||||
to take control over what happens with the image. It is essentially a virtual
|
||||
display for which applications using the @code{libevdi} library can add, remove,
|
||||
and receive screen updates.
|
||||
|
||||
The EVDI driver uses the standard Linux @acronym{DRM, Direct Rendering Manager}.
|
||||
Its displays can be controlled by standard tools such as @command{xrandr} and
|
||||
display settings applets in graphical environments.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public libevdi
|
||||
(package
|
||||
(inherit evdi)
|
||||
(name "libevdi")
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f ;no test suite
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target)))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "library")))
|
||||
(replace 'install
|
||||
(lambda* _
|
||||
(let* ((lib (string-append #$output "/lib")))
|
||||
(mkdir-p lib)
|
||||
(install-file "libevdi.so" lib)))))))
|
||||
(inputs (list libdrm))
|
||||
(native-inputs (list pkg-config))
|
||||
(synopsis
|
||||
"@acronym{EVDI, Extensible Virtual Display Interface} user-space library")
|
||||
(description
|
||||
"Libevdi is a library that gives applications easy access to
|
||||
@acronym{EVDI, Extensible Virtual Display Interface} devices provided by the
|
||||
@code{evdi} driver package.")
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public ec
|
||||
(package
|
||||
(name "ec")
|
||||
|
||||
@@ -22847,16 +22847,6 @@ specification}, a toolkit for writing GUIs in Common Lisp.")
|
||||
(define-public cl-mcclim
|
||||
(sbcl-package->cl-source-package sbcl-mcclim))
|
||||
|
||||
(define-public ecl-mcclim
|
||||
(let ((pkg (sbcl-package->ecl-package sbcl-mcclim)))
|
||||
(package
|
||||
(inherit pkg)
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
;; Tests fail with "FUNCTION: Not a valid argument (R1
|
||||
;; (GENERATE-REGION))." on ECL.
|
||||
((#:tests? _ #f) #f))))))
|
||||
|
||||
(define-public sbcl-md5
|
||||
(package
|
||||
(name "sbcl-md5")
|
||||
@@ -29767,7 +29757,7 @@ the Processing language and shares some of the API.")
|
||||
;; Update together with emacs-slime.
|
||||
(package
|
||||
(name "sbcl-slime-swank")
|
||||
(version "2.31")
|
||||
(version "2.32")
|
||||
(source
|
||||
(origin
|
||||
(file-name (git-file-name "cl-slime-swank" version))
|
||||
@@ -29776,7 +29766,7 @@ the Processing language and shares some of the API.")
|
||||
(url "https://github.com/slime/slime/")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "0nv99wq2vz053p0rn9953rhmyz4g40zdl01mz7z9xbklxzbsx6x7"))
|
||||
(base32 "0s7m7j7y1p8fb6ncpxcxdrrrxp5aw67xl7wrqy8zjjvwzljbs548"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; The doc folder drags `gawk' into the closure. Doc is already
|
||||
|
||||
@@ -1355,7 +1355,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
|
||||
(define-public mu
|
||||
(package
|
||||
(name "mu")
|
||||
(version "1.14.0")
|
||||
(version "1.14.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -1364,7 +1364,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1fhnnm58ndfd6hzdagrsgcdcm2qlcjlda13vyx5d9lclhxgdn0vf"))))
|
||||
(base32 "0dv27pq2jmgqlzsy2gcmh7vddiwiwd55j299blb9k8g0xhkg8riz"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
(list pkg-config
|
||||
|
||||
@@ -2475,6 +2475,9 @@ similar to MATLAB, GNU Octave or SciPy.")
|
||||
;; "--enable-doxygen"
|
||||
"--enable-dot"
|
||||
"--enable-netcdf-4"
|
||||
#$@(if (or (target-x86-32?) (target-arm32?))
|
||||
'("CFLAGS=-Wno-error=incompatible-pointer-types")
|
||||
'())
|
||||
(string-append "--with-plugin-dir=" #$output "/lib/hdf5-plugins"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
@@ -2486,7 +2489,15 @@ similar to MATLAB, GNU Octave or SciPy.")
|
||||
(("testurl.sh") ""))
|
||||
(substitute* "nczarr_test/Makefile.in"
|
||||
(("/bin/bash")
|
||||
(search-input-file inputs "bin/bash")))))
|
||||
(search-input-file inputs "bin/bash")))
|
||||
;; This test fails on 32 bit platforms.
|
||||
#$@(if (or (target-x86-32?) (target-arm32?))
|
||||
'((substitute* '("ncdump/tst_netcdf4_4.sh"
|
||||
"ncdump/tst_nccopy4.sh")
|
||||
(("#!/bin/sh" m) (string-append m "\nexit 0\n")))
|
||||
(substitute* "ncdump/Makefile.in"
|
||||
(("tst_netcdf4_4.log") "")))
|
||||
'())))
|
||||
(add-before 'configure 'fix-source-date
|
||||
(lambda _
|
||||
;; As we ${SOURCE_DATE_EPOCH} evaluates to "1" in the build
|
||||
|
||||
@@ -7465,31 +7465,6 @@ standalone JACK application.")
|
||||
;; Expat or CC0
|
||||
(license (list license:expat license:cc0))))
|
||||
|
||||
(define-public regrader
|
||||
(package
|
||||
(inherit vl1-emulator)
|
||||
(name "regrader")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/linuxmao-org/regrader")
|
||||
(commit (string-append "v" version))
|
||||
;; bundles a specific commit of the DISTRHO plugin framework
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gl4d5lf2afqknz22jz7hh7029sc9v1xrz6nbz9dlv42bwc0cvl0"))))
|
||||
(home-page "https://github.com/linuxmao-org/regrader")
|
||||
(synopsis "Delay effect plugin")
|
||||
(description
|
||||
"Regrader is a delay effect where the repeats degrade in resolution.
|
||||
This is an unofficial port of the Regrader plugin created by Igorski. It
|
||||
is available as an LV2 plugin and a standalone JACK application.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public fogpad
|
||||
(package
|
||||
(inherit vl1-emulator)
|
||||
|
||||
@@ -2139,62 +2139,6 @@ replies, fping will send out a ping packet and move on to the next target in a
|
||||
round-robin fashion.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public gandi-cli
|
||||
(package
|
||||
(name "gandi-cli")
|
||||
(version "1.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32 "1h36jahbp7273wn3yd747kbiwjc0bm3sja67bcxdsd54ln0vyndg"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-flags
|
||||
#~(list "--pyargs" "gandi.cli")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'embed-store-file-names
|
||||
(lambda _
|
||||
(substitute* (list "gandi/cli/modules/cert.py"
|
||||
"gandi/cli/tests/commands/test_certificate.py")
|
||||
(("openssl") (which "openssl")))))
|
||||
(add-after 'install 'install-documentation
|
||||
;; The included man page may be outdated but we install it anyway,
|
||||
;; since it's mentioned in 'gandi --help' and better than nothing.
|
||||
(lambda _
|
||||
(let* ((man1 (string-append #$output "/share/man/man1")))
|
||||
(mkdir-p man1)
|
||||
(with-output-to-file (string-append man1 "/gandi.1")
|
||||
(lambda _
|
||||
(invoke "rst2man.py" "gandicli.man.rst")))))))))
|
||||
(native-inputs
|
||||
(list python-docutils-0.19
|
||||
python-pytest
|
||||
python-pytest-cov
|
||||
python-setuptools
|
||||
python-wheel))
|
||||
(inputs
|
||||
(list openssl
|
||||
python-click-7
|
||||
python-ipy
|
||||
python-pyyaml
|
||||
python-requests))
|
||||
(propagated-inputs
|
||||
(list openssh))
|
||||
(home-page "https://cli.gandi.net")
|
||||
(synopsis "Command-line interface to the Gandi.net Web API")
|
||||
(description
|
||||
"This package provides a command-line client (@command{gandi}) to buy,
|
||||
manage, and delete Internet resources from Gandi.net such as domain names,
|
||||
virtual machines, and certificates.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-deprecated-package gandi.cli
|
||||
gandi-cli)
|
||||
|
||||
(define-public go-sctp
|
||||
;; docker-libnetwork-cmd-proxy requires this exact commit.
|
||||
;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf.
|
||||
|
||||
@@ -1204,8 +1204,8 @@ transactions from C or Python.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public bffe
|
||||
(let ((commit "723fd5ea6af1b14c215baf80524c8ff4b21fcc82")
|
||||
(revision "17"))
|
||||
(let ((commit "d6c90f217595674c7910a858edcb735f88d3a14f")
|
||||
(revision "18"))
|
||||
(package
|
||||
(name "bffe")
|
||||
(version (git-version "0" revision commit))
|
||||
@@ -1216,7 +1216,7 @@ transactions from C or Python.")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1sd62arq80kkfjnynivrp7jh8j359965ank8sglq1wgfdah9k8ii"))
|
||||
"0f7i68k6l5ylg8nch54xw4bxn0hayx2ng9j5dvwvai1vi887vmbj"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
|
||||
513
gnu/packages/patches/r-biostrings-r4.6.0-compat.patch
Normal file
513
gnu/packages/patches/r-biostrings-r4.6.0-compat.patch
Normal file
@@ -0,0 +1,513 @@
|
||||
This patch shas been backported from the development version or Biostrings.
|
||||
|
||||
From 100602242840322b5f6c267faaf8198c1a5aa2af Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
|
||||
Date: Thu, 5 Mar 2026 22:36:30 -0800
|
||||
Subject: [PATCH] Biostrings 2.79.5: Get rid of never-used SparseMIndex and
|
||||
SparseList classes
|
||||
|
||||
This also eliminates the non-API calls to R.
|
||||
---
|
||||
DESCRIPTION | 3 +-
|
||||
NAMESPACE | 2 -
|
||||
R/MIndex-class.R | 79 -------------------------
|
||||
R/SparseList-class.R | 80 -------------------------
|
||||
man/Biostrings-internals.Rd | 9 ---
|
||||
src/Biostrings.h | 41 -------------
|
||||
src/MIndex_class.c | 67 ---------------------
|
||||
src/R_init_Biostrings.c | 1 -
|
||||
src/SparseList_utils.c | 113 ------------------------------------
|
||||
9 files changed, 1 insertion(+), 394 deletions(-)
|
||||
delete mode 100644 R/SparseList-class.R
|
||||
delete mode 100644 src/SparseList_utils.c
|
||||
|
||||
diff --git a/DESCRIPTION b/DESCRIPTION
|
||||
index a5d027cc..dbc323ea 100644
|
||||
--- a/DESCRIPTION
|
||||
+++ b/DESCRIPTION
|
||||
@@ -76,3 +76,3 @@ Collate: utils.R IUPAC_CODE_MAP.R AMINO_ACID_CODE.R GENETIC_CODE.R
|
||||
injectHardMask.R padAndClip.R strsplit-methods.R misc.R
|
||||
- SparseList-class.R MIndex-class.R lowlevel-matching.R
|
||||
+ MIndex-class.R lowlevel-matching.R
|
||||
match-utils.R matchPattern.R maskMotif.R matchLRPatterns.R
|
||||
diff --git a/NAMESPACE b/NAMESPACE
|
||||
index ba1e3bfa..cf14db67 100644
|
||||
--- a/NAMESPACE
|
||||
+++ b/NAMESPACE
|
||||
@@ -206,7 +206,6 @@ exportMethods(
|
||||
### ==========================================================================
|
||||
### STRING MATCHING
|
||||
### --------------------------------------------------------------------------
|
||||
-### SparseList-class.R
|
||||
### MIndex-class.R
|
||||
### lowlevel-matching.R
|
||||
### match-utils.R
|
||||
@@ -220,7 +219,6 @@ exportMethods(
|
||||
### matchPDict.R
|
||||
|
||||
exportClasses(
|
||||
- #SparseList,
|
||||
MIndex, ByPos_MIndex,
|
||||
PreprocessedTB, Twobit, ACtree2,
|
||||
PDict3Parts,
|
||||
diff --git a/R/MIndex-class.R b/R/MIndex-class.R
|
||||
index 022f6746..f50f215e 100644
|
||||
--- a/R/MIndex-class.R
|
||||
+++ b/R/MIndex-class.R
|
||||
@@ -218,82 +218,3 @@ ByPos_MIndex.combine <- function(mi_list)
|
||||
new("ByPos_MIndex", width0=ans_width0, NAMES=ans_names, ends=ans_ends)
|
||||
}
|
||||
|
||||
-
|
||||
-### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-### The "SparseMIndex" class (DISABLED FOR NOW).
|
||||
-###
|
||||
-### Slot description:
|
||||
-###
|
||||
-### ends_envir: a key-value list (environment) where the values are integer
|
||||
-### vectors containing the ending positions of the pattern whose
|
||||
-### position in the original dictionary is given by the key (the keys are
|
||||
-### strings representing positive integers).
|
||||
-###
|
||||
-
|
||||
-if (FALSE) {
|
||||
-
|
||||
- setClass("SparseMIndex",
|
||||
- contains="MIndex",
|
||||
- representation(
|
||||
- ends_envir="environment"
|
||||
- )
|
||||
- )
|
||||
-
|
||||
- setMethod("show", "SparseMIndex",
|
||||
- function(object)
|
||||
- {
|
||||
- cat("Sparse MIndex object of length ", length(object), "\n", sep="")
|
||||
- }
|
||||
- )
|
||||
-
|
||||
- setMethod("[[", "SparseMIndex",
|
||||
- function(x, i, j, ...)
|
||||
- {
|
||||
- i <- normalizeDoubleBracketSubscript(i, x)
|
||||
- ans_end <- x@ends_envir[[formatC(i, width=10, format="d", flag="0")]]
|
||||
- if (is.null(ans_end))
|
||||
- ans_end <- integer(0)
|
||||
- ans_width <- rep.int(x@width0[i], length(ans_end))
|
||||
- ans_start <- ans_end - x@width0[i] + 1L
|
||||
- new2("IRanges", start=ans_start, width=ans_width, check=FALSE)
|
||||
- }
|
||||
- )
|
||||
-
|
||||
- ### An example of a SparseMIndex object of length 5 where only the
|
||||
- ### 2nd pattern has matches:
|
||||
- ### > width0 <- c(9L, 10L, 8L, 4L, 10L)
|
||||
- ### > ends_envir <- new.env(hash=TRUE, parent=emptyenv())
|
||||
- ### > ends_envir[['0000000002']] <- c(199L, 402L)
|
||||
- ### > mindex <- new("SparseMIndex", width0=width0, NAMES=letters[1:5], ends_envir=ends_envir)
|
||||
- ### > mindex[[1]]
|
||||
- ### > mindex[[2]]
|
||||
- ### > mindex[[6]] # Error in mindex[[6]] : subscript out of bounds
|
||||
- ### > names(mindex)
|
||||
- ### > mindex[["a"]]
|
||||
- ### > mindex[["b"]]
|
||||
- ### > mindex[["aa"]] # Error in mindex[["aa"]] : pattern name ‘aa’ not found
|
||||
- ### > startIndex(mindex)
|
||||
- ### > endIndex(mindex)
|
||||
- ### > elementNROWS(mindex)
|
||||
- ###
|
||||
- setMethod("startIndex", "SparseMIndex",
|
||||
- function(x)
|
||||
- {
|
||||
- all.names <- TRUE
|
||||
- .Call2("SparseMIndex_endIndex",
|
||||
- x@ends_envir, x@width0, x@NAMES, all.names,
|
||||
- PACKAGE="Biostrings")
|
||||
- }
|
||||
- )
|
||||
- setMethod("endIndex", "SparseMIndex",
|
||||
- function(x)
|
||||
- {
|
||||
- all.names <- TRUE
|
||||
- .Call2("SparseMIndex_endIndex",
|
||||
- x@ends_envir, NULL, x@NAMES, all.names,
|
||||
- PACKAGE="Biostrings")
|
||||
- }
|
||||
- )
|
||||
-
|
||||
-}
|
||||
-
|
||||
diff --git a/R/SparseList-class.R b/R/SparseList-class.R
|
||||
deleted file mode 100644
|
||||
index 8295fd0f..00000000
|
||||
--- a/R/SparseList-class.R
|
||||
+++ /dev/null
|
||||
@@ -1,80 +0,0 @@
|
||||
-### =========================================================================
|
||||
-### SparseList objects
|
||||
-### -------------------------------------------------------------------------
|
||||
-###
|
||||
-
|
||||
-setClass("SparseList",
|
||||
- representation(
|
||||
- length="integer",
|
||||
- env="environment"
|
||||
- )
|
||||
-)
|
||||
-
|
||||
-### Typical use:
|
||||
-### env <- new.env(hash=TRUE, parent=emptyenv())
|
||||
-### key <- formatC(98L, width=10, format="d", flag="0")
|
||||
-### value <- 3:-2
|
||||
-### assign(key, value, envir=env)
|
||||
-### x <- new("SparseList", length=100L, env=env)
|
||||
-### length(x)
|
||||
-### ls(x)
|
||||
-### ls(x, all.names=TRUE)
|
||||
-### as.list(x)
|
||||
-### as.list(x, all.names=TRUE)
|
||||
-### x[[1]]
|
||||
-### x[[98]
|
||||
-### x[[101]]]
|
||||
-###
|
||||
-
|
||||
-setMethod("length", "SparseList", function(x) x@length)
|
||||
-
|
||||
-### 'pos', 'envir' and 'pattern' args are ignored
|
||||
-setMethod("ls", signature(name="SparseList"),
|
||||
- function(name, pos, envir, all.names=FALSE, pattern)
|
||||
- {
|
||||
- if (!all.names)
|
||||
- return(ls(name@env, all.names=TRUE))
|
||||
- seq_len(length(name))
|
||||
- }
|
||||
-)
|
||||
-
|
||||
-setMethod("as.list", "SparseList",
|
||||
- function(x, all.names=FALSE, ...)
|
||||
- {
|
||||
- if (!all.names)
|
||||
- return(as.list(x@env, all.names=TRUE))
|
||||
- ans <- vector(mode="list", length=length(x))
|
||||
- symbols <- ls(x)
|
||||
- for (symb in symbols)
|
||||
- ans[[as.integer(symb)]] <- get(symb, envir=x@env)
|
||||
- ans
|
||||
- }
|
||||
-)
|
||||
-
|
||||
-### Supported 'i' types: character or numeric vector of length 1.
|
||||
-setMethod("[[", "SparseList",
|
||||
- function(x, i, j, ...)
|
||||
- {
|
||||
- if (!missing(j) || length(list(...)) > 0)
|
||||
- stop("invalid subsetting")
|
||||
- if (missing(i))
|
||||
- stop("subscript is missing")
|
||||
- if (!is.character(i) && !is.numeric(i))
|
||||
- stop("invalid subscript type")
|
||||
- if (length(i) < 1L)
|
||||
- stop("attempt to select less than one element")
|
||||
- if (length(i) > 1L)
|
||||
- stop("attempt to select more than one element")
|
||||
- if (is.na(i))
|
||||
- stop("subscript cannot be NA")
|
||||
- if (is.character(i))
|
||||
- return(get(i, envir=x@env))
|
||||
- if (!is.integer(i))
|
||||
- i <- as.integer(i)
|
||||
- if (i < 1L || i > length(x))
|
||||
- stop("subscript out of bounds")
|
||||
- i <- formatC(i, width=10, format="d", flag="0")
|
||||
- get(i, envir=x@env)
|
||||
- }
|
||||
-)
|
||||
-
|
||||
diff --git a/man/Biostrings-internals.Rd b/man/Biostrings-internals.Rd
|
||||
index 791b0870..609b7694 100644
|
||||
--- a/man/Biostrings-internals.Rd
|
||||
+++ b/man/Biostrings-internals.Rd
|
||||
@@ -26,15 +26,6 @@
|
||||
\alias{make_XStringSet_from_strings}
|
||||
\alias{make_XStringSet_from_strings,XStringSet-method}
|
||||
|
||||
-% SparseList class and methods:
|
||||
-\alias{class:SparseList}
|
||||
-\alias{SparseList-class}
|
||||
-\alias{SparseList}
|
||||
-
|
||||
-\alias{length,SparseList-method}
|
||||
-%\alias{ls,SparseList-method}
|
||||
-\alias{as.list,SparseList-method}
|
||||
-\alias{[[,SparseList-method}
|
||||
|
||||
\title{Biostrings internals}
|
||||
|
||||
diff --git a/src/Biostrings.h b/src/Biostrings.h
|
||||
index 6e725bd5..e86d0ff2 100644
|
||||
--- a/src/Biostrings.h
|
||||
+++ b/src/Biostrings.h
|
||||
@@ -446,40 +446,6 @@ SEXP XStringSetList_unstrsplit(
|
||||
);
|
||||
|
||||
|
||||
-/* SparseList_utils.c */
|
||||
-
|
||||
-SEXP _SparseList_int2symb(int symb_as_int);
|
||||
-
|
||||
-int _SparseList_symb2int(SEXP symbol);
|
||||
-
|
||||
-SEXP _get_val_from_env(
|
||||
- SEXP symbol,
|
||||
- SEXP env,
|
||||
- int error_on_unbound_value
|
||||
-);
|
||||
-
|
||||
-SEXP _get_val_from_SparseList(
|
||||
- int symb_as_int,
|
||||
- SEXP env,
|
||||
- int error_on_unbound_value
|
||||
-);
|
||||
-
|
||||
-int _get_int_from_SparseList(
|
||||
- int symb_as_int,
|
||||
- SEXP env
|
||||
-);
|
||||
-
|
||||
-void _set_env_from_IntAE(
|
||||
- SEXP env,
|
||||
- const IntAE *int_ae
|
||||
-);
|
||||
-
|
||||
-void _set_env_from_IntAEAE(
|
||||
- SEXP env,
|
||||
- const IntAEAE *int_aeae
|
||||
-);
|
||||
-
|
||||
-
|
||||
/* match_reporting.c */
|
||||
|
||||
int _get_match_storing_code(const char *ms_mode);
|
||||
@@ -558,13 +524,6 @@ SEXP ByPos_MIndex_endIndex(
|
||||
SEXP x_width0
|
||||
);
|
||||
|
||||
-SEXP SparseMIndex_endIndex(
|
||||
- SEXP x_ends_envir,
|
||||
- SEXP x_width0,
|
||||
- SEXP x_names,
|
||||
- SEXP all_names
|
||||
-);
|
||||
-
|
||||
SEXP ByPos_MIndex_combine(SEXP ends_listlist);
|
||||
|
||||
|
||||
diff --git a/src/MIndex_class.c b/src/MIndex_class.c
|
||||
index 00212fe9..dd6ad546 100644
|
||||
--- a/src/MIndex_class.c
|
||||
+++ b/src/MIndex_class.c
|
||||
@@ -157,73 +157,6 @@ SEXP ByPos_MIndex_endIndex(SEXP x_high2low, SEXP x_ends, SEXP x_width0)
|
||||
return ans;
|
||||
}
|
||||
|
||||
-/*
|
||||
- * --- .Call ENTRY POINT ---
|
||||
- * All the keys in 'x_ends_envir' must be representing integers left-padded with 0s
|
||||
- * so they have the same length. This works properly:
|
||||
- library(Biostrings)
|
||||
- ends_envir <- new.env(parent=emptyenv())
|
||||
- ends_envir[['0000000010']] <- -2:1
|
||||
- ends_envir[['0000000004']] <- 9:6
|
||||
- .Call("SparseMIndex_endIndex",
|
||||
- ends_envir, NULL, letters[1:10], TRUE,
|
||||
- PACKAGE="Biostrings")
|
||||
- .Call("SparseMIndex_endIndex",
|
||||
- ends_envir, NULL, letters[1:10], FALSE,
|
||||
- PACKAGE="Biostrings")
|
||||
- * but this doesn't:
|
||||
- ends_envir[['3']] <- 33L
|
||||
- .Call("SparseMIndex_endIndex",
|
||||
- ends_envir, NULL, letters[1:10], FALSE,
|
||||
- PACKAGE="Biostrings")
|
||||
- */
|
||||
-SEXP SparseMIndex_endIndex(SEXP x_ends_envir, SEXP x_width0, SEXP x_names, SEXP all_names)
|
||||
-{
|
||||
- SEXP ans, ans_elt, ans_names, symbols, end;
|
||||
- int nelt, i, j;
|
||||
- IntAE *poffsets, *poffsets_order;
|
||||
-
|
||||
- PROTECT(symbols = R_lsInternal(x_ends_envir, 1));
|
||||
- poffsets = new_IntAE_from_CHARACTER(symbols, -1);
|
||||
- nelt = IntAE_get_nelt(poffsets);
|
||||
- if (LOGICAL(all_names)[0]) {
|
||||
- PROTECT(ans = NEW_LIST(LENGTH(x_names)));
|
||||
- for (i = 0; i < nelt; i++) {
|
||||
- j = poffsets->elts[i];
|
||||
- end = _get_val_from_env(STRING_ELT(symbols, i), x_ends_envir, 1);
|
||||
- PROTECT(ans_elt = duplicate(end));
|
||||
- if (x_width0 != R_NilValue)
|
||||
- add_val_to_INTEGER(ans_elt, 1 - INTEGER(x_width0)[j]);
|
||||
- SET_ELEMENT(ans, j, ans_elt);
|
||||
- UNPROTECT(1);
|
||||
- }
|
||||
- SET_NAMES(ans, duplicate(x_names));
|
||||
- UNPROTECT(1);
|
||||
- } else {
|
||||
- //poffsets_order = new_IntAE(nelt, 0, 0);
|
||||
- //get_order_of_int_array(poffsets->elts, nelt, 0, 0,
|
||||
- // poffsets_order->elts, 0);
|
||||
- //IntAE_set_nelt(poffsets_order) = nelt; /* = poffsets_order->_buflength */
|
||||
- PROTECT(ans = NEW_LIST(nelt));
|
||||
- PROTECT(ans_names = NEW_CHARACTER(nelt));
|
||||
- for (i = 0; i < nelt; i++) {
|
||||
- //j = poffsets_order->elts[i];
|
||||
- j = i;
|
||||
- end = _get_val_from_env(STRING_ELT(symbols, j), x_ends_envir, 1);
|
||||
- PROTECT(ans_elt = duplicate(end));
|
||||
- if (x_width0 != R_NilValue)
|
||||
- add_val_to_INTEGER(ans_elt, 1 - INTEGER(x_width0)[i]);
|
||||
- SET_ELEMENT(ans, i, ans_elt);
|
||||
- UNPROTECT(1);
|
||||
- SET_STRING_ELT(ans_names, i, duplicate(STRING_ELT(x_names, poffsets->elts[j])));
|
||||
- }
|
||||
- SET_NAMES(ans, ans_names);
|
||||
- UNPROTECT(2);
|
||||
- }
|
||||
- UNPROTECT(1);
|
||||
- return ans;
|
||||
-}
|
||||
-
|
||||
/*
|
||||
* --- .Call ENTRY POINT ---
|
||||
*/
|
||||
diff --git a/src/R_init_Biostrings.c b/src/R_init_Biostrings.c
|
||||
index 4d2943f8..c1410dbd 100644
|
||||
--- a/src/R_init_Biostrings.c
|
||||
+++ b/src/R_init_Biostrings.c
|
||||
@@ -88,7 +88,6 @@ static const R_CallMethodDef callMethods[] = {
|
||||
|
||||
/* MIndex_class.c */
|
||||
CALLMETHOD_DEF(ByPos_MIndex_endIndex, 3),
|
||||
- CALLMETHOD_DEF(SparseMIndex_endIndex, 4),
|
||||
CALLMETHOD_DEF(ByPos_MIndex_combine, 1),
|
||||
|
||||
/* lowlevel_matching.c */
|
||||
diff --git a/src/SparseList_utils.c b/src/SparseList_utils.c
|
||||
deleted file mode 100644
|
||||
index 18597b55..00000000
|
||||
--- a/src/SparseList_utils.c
|
||||
+++ /dev/null
|
||||
@@ -1,113 +0,0 @@
|
||||
-/****************************************************************************
|
||||
- * Fast SparseList utilities *
|
||||
- * Author: H. Pag\`es *
|
||||
- ****************************************************************************/
|
||||
-#include "Biostrings.h"
|
||||
-#include "S4Vectors_interface.h"
|
||||
-
|
||||
-
|
||||
-SEXP _SparseList_int2symb(int symb_as_int)
|
||||
-{
|
||||
- char symbbuf[11];
|
||||
-
|
||||
- snprintf(symbbuf, sizeof(symbbuf), "%010d", symb_as_int);
|
||||
- return mkChar(symbbuf); /* UNPROTECTED! */
|
||||
-}
|
||||
-
|
||||
-int _SparseList_symb2int(SEXP symbol)
|
||||
-{
|
||||
- int symb_as_int;
|
||||
-
|
||||
- sscanf(CHAR(symbol), "%d", &symb_as_int);
|
||||
- return symb_as_int;
|
||||
-}
|
||||
-
|
||||
-/* 'symbol' must be a CHARSXP */
|
||||
-SEXP _get_val_from_env(SEXP symbol, SEXP env, int error_on_unbound_value)
|
||||
-{
|
||||
- SEXP ans;
|
||||
-
|
||||
- /* The following code was inspired by R's do_get() code.
|
||||
- * Note that do_get() doesn't use PROTECT at all and so do we...
|
||||
- */
|
||||
- ans = findVar(install(translateChar(symbol)), env);
|
||||
- if (ans == R_UnboundValue) {
|
||||
- if (error_on_unbound_value)
|
||||
- error("Biostrings internal error in _get_val_from_env(): "
|
||||
- "unbound value");
|
||||
- return R_UnboundValue;
|
||||
- }
|
||||
- if (TYPEOF(ans) == PROMSXP)
|
||||
- ans = eval(ans, env);
|
||||
- if (ans != R_NilValue && NAMED(ans) == 0)
|
||||
- SET_NAMED(ans, 1);
|
||||
- return ans;
|
||||
-}
|
||||
-
|
||||
-SEXP _get_val_from_SparseList(int symb_as_int, SEXP env, int error_on_unbound_value)
|
||||
-{
|
||||
- SEXP symbol, ans;
|
||||
-
|
||||
- PROTECT(symbol = _SparseList_int2symb(symb_as_int));
|
||||
- ans = _get_val_from_env(symbol, env, error_on_unbound_value);
|
||||
- UNPROTECT(1);
|
||||
- return ans;
|
||||
-}
|
||||
-
|
||||
-int _get_int_from_SparseList(int symb_as_int, SEXP env)
|
||||
-{
|
||||
- SEXP value;
|
||||
- int val;
|
||||
-
|
||||
- value = _get_val_from_SparseList(symb_as_int, env, 0);
|
||||
- if (value == R_UnboundValue)
|
||||
- return NA_INTEGER;
|
||||
- if (LENGTH(value) != 1)
|
||||
- error("Biostrings internal error in _get_int_from_SparseList(): "
|
||||
- "value is not a single integer");
|
||||
- val = INTEGER(value)[0];
|
||||
- if (val == NA_INTEGER)
|
||||
- error("Biostrings internal error in _get_int_from_SparseList(): "
|
||||
- "value is NA");
|
||||
- return val;
|
||||
-}
|
||||
-
|
||||
-void _set_env_from_IntAE(SEXP env, const IntAE *int_ae)
|
||||
-{
|
||||
- int nelt, symb_as_int, elt;
|
||||
- SEXP symbol, value;
|
||||
-
|
||||
- nelt = IntAE_get_nelt(int_ae);
|
||||
- for (symb_as_int = 1; symb_as_int <= nelt; symb_as_int++)
|
||||
- {
|
||||
- elt = int_ae->elts[symb_as_int - 1];
|
||||
- if (elt == NA_INTEGER)
|
||||
- continue;
|
||||
- PROTECT(symbol = _SparseList_int2symb(symb_as_int));
|
||||
- PROTECT(value = ScalarInteger(elt));
|
||||
- defineVar(install(translateChar(symbol)), value, env);
|
||||
- UNPROTECT(2);
|
||||
- }
|
||||
- return;
|
||||
-}
|
||||
-
|
||||
-void _set_env_from_IntAEAE(SEXP env, const IntAEAE *int_aeae)
|
||||
-{
|
||||
- int nelt, symb_as_int;
|
||||
- IntAE *ae;
|
||||
- SEXP symbol, value;
|
||||
-
|
||||
- nelt = IntAEAE_get_nelt(int_aeae);
|
||||
- for (symb_as_int = 1; symb_as_int <= nelt; symb_as_int++)
|
||||
- {
|
||||
- ae = int_aeae->elts[symb_as_int - 1];
|
||||
- if (IntAE_get_nelt(ae) == 0)
|
||||
- continue;
|
||||
- PROTECT(symbol = _SparseList_int2symb(symb_as_int));
|
||||
- PROTECT(value = new_INTEGER_from_IntAE(ae));
|
||||
- defineVar(install(translateChar(symbol)), value, env);
|
||||
- UNPROTECT(2);
|
||||
- }
|
||||
- return;
|
||||
-}
|
||||
-
|
||||
@@ -0,0 +1,142 @@
|
||||
From 7fe34542bff0183c3a6a35a62df9035a71698eb2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
|
||||
Date: Fri, 6 Mar 2026 15:54:23 -0800
|
||||
Subject: [PATCH] h5mread 1.3.2: Get rid of non-API calls to R
|
||||
|
||||
---
|
||||
DESCRIPTION | 2 +-
|
||||
R/H5File-class.R | 27 ++++++++++++++++-----------
|
||||
src/h5mread_index.c | 5 +++--
|
||||
src/h5mread_startscounts.c | 3 ++-
|
||||
4 files changed, 22 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/R/H5File-class.R b/R/H5File-class.R
|
||||
index 2735166..6aeb80f 100644
|
||||
--- a/R/H5File-class.R
|
||||
+++ b/R/H5File-class.R
|
||||
@@ -73,19 +73,23 @@
|
||||
}
|
||||
}
|
||||
|
||||
-.h5openfile <- function(filepath, s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
|
||||
+.h5openfile <- function(filepath, readonly=TRUE,
|
||||
+ s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
|
||||
{
|
||||
if (!isSingleString(filepath))
|
||||
stop(wmsg("'filepath' must be a single string specifying ",
|
||||
"the path or URL to an HDF5 file"))
|
||||
+ if (!isTRUEorFALSE(readonly))
|
||||
+ stop(wmsg("'readonly' must be TRUE or FALSE"))
|
||||
if (!isTRUEorFALSE(s3))
|
||||
stop(wmsg("'s3' must be TRUE or FALSE"))
|
||||
-
|
||||
+ if (s3 && !readonly)
|
||||
+ stop(wmsg("'readonly' must be set to TRUE when 's3' is TRUE"))
|
||||
if (s3) {
|
||||
ID <- .h5openS3file(filepath, s3credentials=s3credentials,
|
||||
use.rhdf5=use.rhdf5)
|
||||
} else {
|
||||
- ID <- .h5openlocalfile(filepath, readonly=TRUE, use.rhdf5=use.rhdf5)
|
||||
+ ID <- .h5openlocalfile(filepath, readonly=readonly, use.rhdf5=use.rhdf5)
|
||||
}
|
||||
ID
|
||||
}
|
||||
@@ -136,16 +140,16 @@
|
||||
|
||||
.ID_is_closed <- function(ID) { is.null(ID) || is.na(ID) }
|
||||
|
||||
-.open_H5FileID_xp <- function(xp, filepath, s3=FALSE, s3credentials=NULL,
|
||||
- use.rhdf5=FALSE)
|
||||
+.open_H5FileID_xp <- function(xp, filepath, readonly=TRUE,
|
||||
+ s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
|
||||
{
|
||||
ID <- .get_H5FileID_xp_ID(xp)
|
||||
if (!.ID_is_closed(ID)) {
|
||||
## H5FileID object is already open.
|
||||
return(FALSE)
|
||||
}
|
||||
- ID <- .h5openfile(filepath, s3=s3, s3credentials=s3credentials,
|
||||
- use.rhdf5=use.rhdf5)
|
||||
+ ID <- .h5openfile(filepath, readonly=readonly,
|
||||
+ s3=s3, s3credentials=s3credentials, use.rhdf5=use.rhdf5)
|
||||
.set_H5FileID_xp_ID(xp, ID)
|
||||
TRUE
|
||||
}
|
||||
@@ -183,10 +187,11 @@ close.H5FileID <- function(con, ...)
|
||||
.close_H5FileID_xp(con@xp, ..., use.rhdf5=con@from_rhdf5)
|
||||
}
|
||||
|
||||
-H5FileID <- function(filepath, s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
|
||||
+H5FileID <- function(filepath, readonly=TRUE,
|
||||
+ s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
|
||||
{
|
||||
- ID <- .h5openfile(filepath, s3=s3, s3credentials=s3credentials,
|
||||
- use.rhdf5=use.rhdf5)
|
||||
+ ID <- .h5openfile(filepath, readonly=readonly,
|
||||
+ s3=s3, s3credentials=s3credentials, use.rhdf5=use.rhdf5)
|
||||
xp <- .new_H5FileID_xp(ID)
|
||||
reg.finalizer(xp,
|
||||
function(e) .close_H5FileID_xp(e, use.rhdf5=use.rhdf5),
|
||||
@@ -272,7 +277,7 @@ H5File <- function(filepath, s3=FALSE, s3credentials=NULL, .no_rhdf5_h5id=FALSE)
|
||||
rhdf5_h5id <- new("H5FileID")
|
||||
} else {
|
||||
rhdf5_h5id <- H5FileID(filepath, s3=s3, s3credentials=s3credentials,
|
||||
- use.rhdf5=TRUE)
|
||||
+ use.rhdf5=TRUE)
|
||||
}
|
||||
if (!s3)
|
||||
filepath <- file_path_as_absolute(filepath)
|
||||
diff --git a/src/h5mread_index.c b/src/h5mread_index.c
|
||||
index 7284815..ec93c25 100644
|
||||
--- a/src/h5mread_index.c
|
||||
+++ b/src/h5mread_index.c
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "h5mread_helpers.h"
|
||||
#include "TouchedChunks.h"
|
||||
|
||||
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
|
||||
#include <stdlib.h> /* for malloc, free */
|
||||
#include <string.h> /* for memcmp */
|
||||
//#include <time.h>
|
||||
@@ -444,7 +445,7 @@ static int read_chunk_data_4_5(const H5DSetDescriptor *h5dset,
|
||||
const size_t *Rarray_dim, SEXP Rarray,
|
||||
int method, int use_H5Dread_chunk)
|
||||
{
|
||||
- void *out = DATAPTR(Rarray);
|
||||
+ void *out = DATAPTR_RW(Rarray);
|
||||
if (out == NULL)
|
||||
return -1;
|
||||
|
||||
@@ -874,7 +875,7 @@ static int read_data_6(const AllTChunks *all_tchunks,
|
||||
size_t *inner_nchip_buf = R_alloc0_size_t_array(ndim);
|
||||
LLongAEAE *inner_breakpoint_bufs = new_LLongAEAE(ndim, ndim);
|
||||
|
||||
- void *out = DATAPTR(Rarray);
|
||||
+ void *out = DATAPTR_RW(Rarray);
|
||||
if (out == NULL) {
|
||||
_destroy_TChunkIterator(&tchunk_iter);
|
||||
return -1;
|
||||
diff --git a/src/h5mread_startscounts.c b/src/h5mread_startscounts.c
|
||||
index de57fd5..959014f 100644
|
||||
--- a/src/h5mread_startscounts.c
|
||||
+++ b/src/h5mread_startscounts.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "uaselection.h"
|
||||
#include "h5mread_helpers.h"
|
||||
|
||||
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
|
||||
#include <stdlib.h> /* for malloc, free */
|
||||
//#include <time.h>
|
||||
|
||||
@@ -402,7 +403,7 @@ SEXP _h5mread_startscounts(const H5DSetDescriptor *h5dset,
|
||||
SEXP ans = PROTECT(allocVector(h5dset->h5type->Rtype, ans_len));
|
||||
|
||||
if (ans_len != 0) {
|
||||
- void *mem = DATAPTR(ans);
|
||||
+ void *mem = DATAPTR_RW(ans);
|
||||
if (mem == NULL)
|
||||
goto on_error;
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
From a827c9fdeb77edefe6cca81bdb9e0344bc8d3742 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Gibb <mail@sebastiangibb.de>
|
||||
Date: Sat, 13 Dec 2025 23:06:12 +0100
|
||||
Subject: [PATCH] fix: non-API call to R: SETLENGTH by using lengthgets
|
||||
|
||||
---
|
||||
DESCRIPTION | 2 +-
|
||||
NEWS.md | 6 ++++++
|
||||
src/join.c | 12 ++++--------
|
||||
src/reduce.c | 6 ++----
|
||||
4 files changed, 13 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/join.c b/src/join.c
|
||||
index f13a703..3849fdf 100644
|
||||
--- a/src/join.c
|
||||
+++ b/src/join.c
|
||||
@@ -111,12 +111,10 @@ SEXP C_join_inner(SEXP x, SEXP y, SEXP tolerance, SEXP nomatch) {
|
||||
++j;
|
||||
}
|
||||
}
|
||||
- SETLENGTH(rx, j);
|
||||
- SETLENGTH(ry, j);
|
||||
SEXP out = PROTECT(allocVector(VECSXP, 2));
|
||||
SEXP nms = PROTECT(allocVector(STRSXP, 2));
|
||||
- SET_VECTOR_ELT(out, 0, rx);
|
||||
- SET_VECTOR_ELT(out, 1, ry);
|
||||
+ SET_VECTOR_ELT(out, 0, lengthgets(rx, j));
|
||||
+ SET_VECTOR_ELT(out, 1, lengthgets(ry, j));
|
||||
SET_STRING_ELT(nms, 0, mkChar("x"));
|
||||
SET_STRING_ELT(nms, 1, mkChar("y"));
|
||||
setAttrib(out, R_NamesSymbol, nms);
|
||||
@@ -201,12 +199,10 @@ SEXP C_join_outer(SEXP x, SEXP y, SEXP tolerance, SEXP nomatch) {
|
||||
++i;
|
||||
}
|
||||
|
||||
- SETLENGTH(rx, i);
|
||||
- SETLENGTH(ry, i);
|
||||
SEXP out = PROTECT(allocVector(VECSXP, 2));
|
||||
SEXP nms = PROTECT(allocVector(STRSXP, 2));
|
||||
- SET_VECTOR_ELT(out, 0, rx);
|
||||
- SET_VECTOR_ELT(out, 1, ry);
|
||||
+ SET_VECTOR_ELT(out, 0, lengthgets(rx, i));
|
||||
+ SET_VECTOR_ELT(out, 1, lengthgets(ry, i));
|
||||
SET_STRING_ELT(nms, 0, mkChar("x"));
|
||||
SET_STRING_ELT(nms, 1, mkChar("y"));
|
||||
setAttrib(out, R_NamesSymbol, nms);
|
||||
diff --git a/src/reduce.c b/src/reduce.c
|
||||
index 5f87966..8e48058 100644
|
||||
--- a/src/reduce.c
|
||||
+++ b/src/reduce.c
|
||||
@@ -66,11 +66,9 @@ SEXP C_reduce(SEXP start, SEXP end, SEXP check) {
|
||||
}
|
||||
}
|
||||
|
||||
- SETLENGTH(rs, pos + 1);
|
||||
- SETLENGTH(re, pos + 1);
|
||||
SEXP out = PROTECT(allocVector(VECSXP, 2));
|
||||
- SET_VECTOR_ELT(out, 0, rs);
|
||||
- SET_VECTOR_ELT(out, 1, re);
|
||||
+ SET_VECTOR_ELT(out, 0, lengthgets(rs, pos + 1));
|
||||
+ SET_VECTOR_ELT(out, 1, lengthgets(re, pos + 1));
|
||||
|
||||
UNPROTECT(4);
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
114
gnu/packages/patches/r-rsamtools-r-4.6.0-compat.patch
Normal file
114
gnu/packages/patches/r-rsamtools-r-4.6.0-compat.patch
Normal file
@@ -0,0 +1,114 @@
|
||||
From 57dc6579d8b53af9e633016705fa9a1cbe58c8c8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
|
||||
Date: Fri, 6 Mar 2026 16:48:20 -0800
|
||||
Subject: [PATCH] Rsamtools 2.27.1: Get rid of non-API calls to R
|
||||
|
||||
---
|
||||
DESCRIPTION | 2 +-
|
||||
src/utilities.h | 3 +--
|
||||
2 files changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/utilities.h b/src/utilities.h
|
||||
index bffb98f7..f9d5e09f 100644
|
||||
--- a/src/utilities.h
|
||||
+++ b/src/utilities.h
|
||||
@@ -51,8 +51,7 @@ SEXP find_mate_within_groups(SEXP group_sizes,
|
||||
/* call-building macros */
|
||||
|
||||
#define NEW_CALL(S, T, NAME, ENV, N) \
|
||||
- PROTECT(S = T = allocList(N)); \
|
||||
- SET_TYPEOF(T, LANGSXP); \
|
||||
+ PROTECT(S = T = LCONS(R_NilValue, allocList(N-1))); \
|
||||
SETCAR(T, findFun(install(NAME), ENV)); \
|
||||
T = CDR(T)
|
||||
#define CSET_CDR(T, NAME, VALUE) \
|
||||
|
||||
From 8cdec143023e8348a4f8bdc310acd609d14fe493 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
|
||||
Date: Fri, 6 Mar 2026 16:59:42 -0800
|
||||
Subject: [PATCH] oops, forgot to also get rid of non-API call to FORMALS()
|
||||
|
||||
---
|
||||
src/pileupbam.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/pileupbam.c b/src/pileupbam.c
|
||||
index f3256ba..7725628 100644
|
||||
--- a/src/pileupbam.c
|
||||
+++ b/src/pileupbam.c
|
||||
@@ -655,7 +655,7 @@ SEXP apply_pileups(SEXP files, SEXP names, SEXP regions, SEXP param,
|
||||
if (R_NilValue == regions)
|
||||
Rf_error("'NULL' regions not (yet) supported");
|
||||
_checkparams(regions, R_NilValue, R_NilValue);
|
||||
- if (!Rf_isFunction(callback) || 1L != Rf_length(FORMALS(callback)))
|
||||
+ if (!Rf_isFunction(callback) || 1L != Rf_length(R_ClosureFormals(callback)))
|
||||
Rf_error("'callback' must be a function of 1 argument");
|
||||
call = PROTECT(Rf_lang2(callback, R_NilValue));
|
||||
|
||||
|
||||
From ee01a1f13f3b012b0717247d1f21580225b6f3a0 Mon Sep 17 00:00:00 2001
|
||||
From: vjcitn <stvjc@channing.harvard.edu>
|
||||
Date: Wed, 8 Apr 2026 14:04:26 -0400
|
||||
Subject: [PATCH] API solutions
|
||||
|
||||
---
|
||||
DESCRIPTION | 2 +-
|
||||
src/tabixfile.c | 4 ++++
|
||||
src/utilities.c | 13 ++++++++++---
|
||||
3 files changed, 15 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/tabixfile.c b/src/tabixfile.c
|
||||
index 230a381..6f96568 100644
|
||||
--- a/src/tabixfile.c
|
||||
+++ b/src/tabixfile.c
|
||||
@@ -187,8 +187,12 @@ SEXP index_tabix(SEXP filename, SEXP format, SEXP seq, SEXP begin, SEXP end,
|
||||
LOGICAL(zeroBased)[0] == TRUE)
|
||||
conf.preset |= TBX_UCSC;
|
||||
|
||||
+/* following is deprecated in HTSLIB with no precise replacement proposed */
|
||||
+/* seems unimportant */
|
||||
+/*
|
||||
if (bgzf_is_bgzf(fn) != 1)
|
||||
Rf_error("file does not appear to be bgzip'd");
|
||||
+*/
|
||||
if (tbx_index_build(fn, 0, &conf) == -1)
|
||||
Rf_error("index build failed");
|
||||
|
||||
diff --git a/src/utilities.c b/src/utilities.c
|
||||
index e224f91..d15c1d1 100644
|
||||
--- a/src/utilities.c
|
||||
+++ b/src/utilities.c
|
||||
@@ -5,6 +5,13 @@
|
||||
#include "XVector_interface.h"
|
||||
#include <htslib/khash.h>
|
||||
|
||||
+#include <Rversion.h>
|
||||
+
|
||||
+#if R_VERSION < R_Version(4, 6, 0)
|
||||
+# define R_getVar(x,y,z) findVar(x,y)
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
void *_Rs_Realloc_impl(void *p, size_t n, size_t t)
|
||||
{
|
||||
/* R_Realloc(p, 0, *) fails inappropriately */
|
||||
@@ -30,7 +37,7 @@ SEXP _get_namespace(const char *pkg)
|
||||
void _as_strand(SEXP vec)
|
||||
{
|
||||
SEXP nmspc = PROTECT(_get_namespace("Rsamtools"));
|
||||
- SEXP lvls = PROTECT(eval(findVar(install(".STRAND_LEVELS"), nmspc), nmspc));
|
||||
+ SEXP lvls = PROTECT(eval(R_getVar(install(".STRAND_LEVELS"), nmspc, TRUE), nmspc));
|
||||
_as_factor_SEXP(vec, lvls);
|
||||
UNPROTECT(2);
|
||||
}
|
||||
@@ -38,8 +45,8 @@ void _as_strand(SEXP vec)
|
||||
void _as_nucleotide(SEXP vec)
|
||||
{
|
||||
SEXP nmspc = PROTECT(_get_namespace("Rsamtools"));
|
||||
- SEXP lvls = PROTECT(eval(findVar(install(".PILEUP_NUCLEOTIDE_LEVELS"),
|
||||
- nmspc), nmspc));
|
||||
+ SEXP lvls = PROTECT(eval(R_getVar(install(".PILEUP_NUCLEOTIDE_LEVELS"),
|
||||
+ nmspc, TRUE), nmspc));
|
||||
_as_factor_SEXP(vec, lvls);
|
||||
UNPROTECT(2);
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
From e39852a54312bbc6ba435848890cc2a7f612357c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
|
||||
Date: Fri, 6 Mar 2026 17:04:19 -0800
|
||||
Subject: [PATCH] ShortRead 1.69.3: Get rid of non-API calls to R
|
||||
|
||||
---
|
||||
DESCRIPTION | 2 +-
|
||||
src/call.h | 3 +--
|
||||
src/io.c | 10 +++++-----
|
||||
3 files changed, 7 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/call.h b/src/call.h
|
||||
index e15bb5e..e72bbd6 100644
|
||||
--- a/src/call.h
|
||||
+++ b/src/call.h
|
||||
@@ -6,8 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define NEW_CALL(S, T, NAME, ENV, N) \
|
||||
- PROTECT((S) = (T) = allocList((N))); \
|
||||
- SET_TYPEOF((T), LANGSXP); \
|
||||
+ PROTECT((S) = (T) = LCONS(R_NilValue, allocList((N)-1))); \
|
||||
SETCAR((T), findFun(install((NAME)), (ENV))); \
|
||||
(T) = CDR((T))
|
||||
#define CSET_CDR(T, NAME, VALUE) \
|
||||
diff --git a/src/io.c b/src/io.c
|
||||
index 25a0111..9cf4bf8 100644
|
||||
--- a/src/io.c
|
||||
+++ b/src/io.c
|
||||
@@ -46,9 +46,9 @@ SEXP write_fastq(SEXP id, SEXP sread, SEXP quality,
|
||||
SEXP fname, SEXP fmode, SEXP full, SEXP compress,
|
||||
SEXP max_width)
|
||||
{
|
||||
- if (!(IS_S4_OBJECT(id) && strcmp(get_classname(id), "BStringSet") == 0))
|
||||
+ if (!(Rf_isS4(id) && strcmp(get_classname(id), "BStringSet") == 0))
|
||||
Rf_error("'%s' must be '%s'", "id", "BStringSet");
|
||||
- if (!(IS_S4_OBJECT(sread) &&
|
||||
+ if (!(Rf_isS4(sread) &&
|
||||
strcmp(get_classname(sread), "DNAStringSet") == 0))
|
||||
Rf_error("'%s' must be '%s'", "sread", "DNAStringSet");
|
||||
/* check in R -- C-level R_check_super... is not adequate */
|
||||
@@ -693,14 +693,14 @@ int _solexa_export_make_id(SEXP result)
|
||||
*x = INTEGER(VECTOR_ELT(result, SLX_X)),
|
||||
*y = INTEGER(VECTOR_ELT(result, SLX_Y)), *pairedReadNumber = NULL;
|
||||
const SEXP
|
||||
- * run = STRING_PTR(VECTOR_ELT(result, SLX_RUN)),
|
||||
+ * run = STRING_PTR_RO(VECTOR_ELT(result, SLX_RUN)),
|
||||
*multiplexIndex = NULL,
|
||||
- *machine = STRING_PTR(VECTOR_ELT(result, SLX_MACHINE));
|
||||
+ *machine = STRING_PTR_RO(VECTOR_ELT(result, SLX_MACHINE));
|
||||
const Rboolean
|
||||
withMultiplexIndex = R_NilValue != VECTOR_ELT(result, SLX_MULTIPLEX),
|
||||
withPairedReadNumber = R_NilValue != VECTOR_ELT(result, SLX_PAIRID);
|
||||
if (withMultiplexIndex)
|
||||
- multiplexIndex = STRING_PTR(VECTOR_ELT(result, SLX_MULTIPLEX));
|
||||
+ multiplexIndex = STRING_PTR_RO(VECTOR_ELT(result, SLX_MULTIPLEX));
|
||||
if (withPairedReadNumber)
|
||||
pairedReadNumber = INTEGER(VECTOR_ELT(result, SLX_PAIRID));
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
From 2e3368a35e3955a0a92b7f3e2c8dface6709d135 Mon Sep 17 00:00:00 2001
|
||||
From: vjcitn <stvjc@channing.harvard.edu>
|
||||
Date: Thu, 16 Apr 2026 16:54:15 +0000
|
||||
Subject: [PATCH] fixapi
|
||||
|
||||
---
|
||||
src/util.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/util.c b/src/util.c
|
||||
index 4a10a90..59c089b 100644
|
||||
--- a/src/util.c
|
||||
+++ b/src/util.c
|
||||
@@ -6,6 +6,14 @@ unsigned char _bDecode(char);
|
||||
unsigned char _dnaDecode(char);
|
||||
unsigned char _rnaDecode(char);
|
||||
|
||||
+
|
||||
+#include <Rversion.h>
|
||||
+
|
||||
+#if R_VERSION < R_Version(4, 6, 0)
|
||||
+# define R_getVar(x,y,z) findVar(x,y)
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
/*
|
||||
* Encode / decode XString wrappers
|
||||
*/
|
||||
@@ -80,7 +88,7 @@ SEXP _get_namespace(const char *pkg)
|
||||
SEXP _get_strand_levels()
|
||||
{
|
||||
SEXP nmspc = PROTECT(_get_namespace("ShortRead"));
|
||||
- SEXP ans = eval(findVar(install(".STRAND_LEVELS"), nmspc), nmspc);
|
||||
+ SEXP ans = eval(R_getVar(install(".STRAND_LEVELS"), nmspc, TRUE), nmspc);
|
||||
UNPROTECT(1);
|
||||
return ans;
|
||||
}
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -0,0 +1,412 @@
|
||||
From 803cda41994a22890e0a6e379e6588084d4bc91b Mon Sep 17 00:00:00 2001
|
||||
From: vjcitn <stvjc@channing.harvard.edu>
|
||||
Date: Fri, 13 Mar 2026 04:04:59 -0400
|
||||
Subject: [PATCH 1/2] fixed non-API except for IS_S4_OBJECT
|
||||
|
||||
---
|
||||
src/bind.c | 8 ++++----
|
||||
src/glm_test_R.c | 20 ++++++++++----------
|
||||
src/imputation.c | 8 ++++----
|
||||
src/input.c | 2 +-
|
||||
src/plink.c | 2 +-
|
||||
src/read_uncertain.c | 4 ++--
|
||||
src/readped.c | 2 +-
|
||||
src/single_snp_tests.c | 8 ++++----
|
||||
src/snp_summary.c | 8 ++++----
|
||||
src/snpmpy.c | 8 ++++----
|
||||
src/structure.c | 4 ++--
|
||||
src/subset.c | 2 +-
|
||||
src/switch.c | 2 +-
|
||||
src/tdt.c | 8 ++++----
|
||||
src/testBig.c | 2 +-
|
||||
15 files changed, 44 insertions(+), 44 deletions(-)
|
||||
|
||||
diff --git a/src/bind.c b/src/bind.c
|
||||
index 44b1536..fa87e7c 100644
|
||||
--- a/src/bind.c
|
||||
+++ b/src/bind.c
|
||||
@@ -19,7 +19,7 @@ SEXP snp_rbind(SEXP args) {
|
||||
const SEXP This = CAR(args);
|
||||
Class = getAttrib(This, R_ClassSymbol);
|
||||
if (TYPEOF(Class) != STRSXP) {
|
||||
- Class = R_data_class(This, FALSE);
|
||||
+ Class = R_class(This);
|
||||
}
|
||||
const char *cli = CHAR(STRING_ELT(Class, 0));
|
||||
if(!IS_S4_OBJECT(This)) {
|
||||
@@ -66,7 +66,7 @@ SEXP snp_rbind(SEXP args) {
|
||||
SEXP Result, Rnames, Dnames, Diploid = R_NilValue;
|
||||
PROTECT(Result = allocMatrix(RAWSXP, nr, nc));
|
||||
classgets(Result, duplicate(Class));
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
PROTECT(Rnames = allocVector(STRSXP, nr));
|
||||
PROTECT(Dnames = allocVector(VECSXP, 2));
|
||||
SET_VECTOR_ELT(Dnames, 0, Rnames);
|
||||
@@ -148,7 +148,7 @@ SEXP snp_cbind(SEXP args) {
|
||||
SEXP This = CAR(args);
|
||||
Class = getAttrib(This, R_ClassSymbol);
|
||||
if (TYPEOF(Class) != STRSXP) {
|
||||
- Class = R_data_class(This, FALSE);
|
||||
+ Class = R_class(This);
|
||||
}
|
||||
const char *cli = CHAR(STRING_ELT(Class, 0));
|
||||
if(!IS_S4_OBJECT(This)) {
|
||||
@@ -205,7 +205,7 @@ SEXP snp_cbind(SEXP args) {
|
||||
SEXP Result, Cnames, Dnames;
|
||||
PROTECT(Result = allocMatrix(RAWSXP, nr, nc));
|
||||
classgets(Result, duplicate(Class));
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
PROTECT(Dnames = allocVector(VECSXP, 2));
|
||||
setAttrib(Result, R_DimNamesSymbol, Dnames);
|
||||
PROTECT(Cnames = allocVector(STRSXP, nc));
|
||||
diff --git a/src/glm_test_R.c b/src/glm_test_R.c
|
||||
index d865182..dc8ebef 100644
|
||||
--- a/src/glm_test_R.c
|
||||
+++ b/src/glm_test_R.c
|
||||
@@ -19,8 +19,8 @@ SEXP snp_lhs_score(const SEXP Y, const SEXP X, const SEXP Stratum,
|
||||
|
||||
/* Y should be a SnpMatrix or an XSnpMatrix */
|
||||
const char *classY = NULL;
|
||||
- if (TYPEOF(R_data_class(Y, FALSE)) == STRSXP) {
|
||||
- classY = CHAR(STRING_ELT(R_data_class(Y, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Y)) == STRSXP) {
|
||||
+ classY = CHAR(STRING_ELT(R_class(Y), 0));
|
||||
} else {
|
||||
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
|
||||
}
|
||||
@@ -431,8 +431,8 @@ SEXP snp_rhs_score(SEXP Y, SEXP family, SEXP link,
|
||||
/* Z should be a SnpMatrix or an XSnpMatrix */
|
||||
|
||||
const char *classZ = NULL;
|
||||
- if (TYPEOF(R_data_class(Z, FALSE)) == STRSXP) {
|
||||
- classZ = CHAR(STRING_ELT(R_data_class(Z, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Z)) == STRSXP) {
|
||||
+ classZ = CHAR(STRING_ELT(R_class(Z), 0));
|
||||
} else {
|
||||
classZ = CHAR(STRING_ELT(getAttrib(Z, R_ClassSymbol), 0));
|
||||
}
|
||||
@@ -1003,8 +1003,8 @@ SEXP snp_lhs_estimate(const SEXP Y, const SEXP X, const SEXP Stratum,
|
||||
|
||||
/* Y should be a SnpMatrix or an XSnpMatrix */
|
||||
const char *classY = NULL;
|
||||
- if (TYPEOF(R_data_class(Y, FALSE)) == STRSXP) {
|
||||
- classY = CHAR(STRING_ELT(R_data_class(Y, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Y)) == STRSXP) {
|
||||
+ classY = CHAR(STRING_ELT(R_class(Y), 0));
|
||||
} else {
|
||||
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
|
||||
}
|
||||
@@ -1286,7 +1286,7 @@ SEXP snp_lhs_estimate(const SEXP Y, const SEXP X, const SEXP Stratum,
|
||||
LOGICAL(Lhs)[0] = 1;
|
||||
setAttrib(Estimates, install("snpLHS"), Lhs);
|
||||
UNPROTECT(6);
|
||||
- SET_S4_OBJECT(Estimates);
|
||||
+ Rf_asS4(Estimates, TRUE, 0);
|
||||
return(Estimates);
|
||||
}
|
||||
|
||||
@@ -1360,8 +1360,8 @@ SEXP snp_rhs_estimate(SEXP Y, SEXP family, SEXP link,
|
||||
/* Z should be a SnpMatrix or an XSnpMatrix */
|
||||
|
||||
const char *classZ = NULL;
|
||||
- if (TYPEOF(R_data_class(Z, FALSE)) == STRSXP) {
|
||||
- classZ = CHAR(STRING_ELT(R_data_class(Z, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Z)) == STRSXP) {
|
||||
+ classZ = CHAR(STRING_ELT(R_class(Z), 0));
|
||||
} else {
|
||||
classZ = CHAR(STRING_ELT(getAttrib(Z, R_ClassSymbol), 0));
|
||||
}
|
||||
@@ -1724,7 +1724,7 @@ SEXP snp_rhs_estimate(SEXP Y, SEXP family, SEXP link,
|
||||
|
||||
UNPROTECT(gen_names? 7: 6);
|
||||
|
||||
- SET_S4_OBJECT(Estimates);
|
||||
+ Rf_asS4(Estimates, TRUE, 0);
|
||||
return(Estimates);
|
||||
|
||||
}
|
||||
diff --git a/src/imputation.c b/src/imputation.c
|
||||
index ff9403b..d796c1b 100644
|
||||
--- a/src/imputation.c
|
||||
+++ b/src/imputation.c
|
||||
@@ -77,7 +77,7 @@ SEXP snp_impute(const SEXP X, const SEXP Y, const SEXP Xord, const SEXP Yord,
|
||||
int *diploid = NULL;
|
||||
SEXP cl = GET_CLASS(X);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(X, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(X); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
|
||||
SEXP Diploid = R_do_slot(X, mkString("diploid"));
|
||||
@@ -395,7 +395,7 @@ SEXP snp_impute(const SEXP X, const SEXP Y, const SEXP Xord, const SEXP Yord,
|
||||
PROTECT(Maxpred = allocVector(INTSXP, 1));
|
||||
INTEGER(Maxpred)[0] = maxpred;
|
||||
setAttrib(Result, install("Max.predictors"), Maxpred);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
|
||||
/* Tidy up */
|
||||
|
||||
@@ -701,7 +701,7 @@ SEXP impute_snps(const SEXP Rules, const SEXP Snps, const SEXP Subset,
|
||||
int *diploid_in=NULL, *diploid=NULL;
|
||||
SEXP cl = GET_CLASS(Snps);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Snps); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
|
||||
SEXP Diploid = R_do_slot(Snps, mkString("diploid"));
|
||||
@@ -753,7 +753,7 @@ SEXP impute_snps(const SEXP Rules, const SEXP Snps, const SEXP Subset,
|
||||
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
|
||||
setAttrib(Class, install("package"), Package);
|
||||
classgets(Result, Class);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
}
|
||||
PROTECT(Dimnames = allocVector(VECSXP, 2));
|
||||
SET_VECTOR_ELT(Dimnames, 0, VECTOR_ELT(names, 0));
|
||||
diff --git a/src/input.c b/src/input.c
|
||||
index 1d2a95b..60cdad8 100644
|
||||
--- a/src/input.c
|
||||
+++ b/src/input.c
|
||||
@@ -330,7 +330,7 @@ SEXP insnp_new(const SEXP Filenames, const SEXP Sample_id, const SEXP Snp_id,
|
||||
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
|
||||
setAttrib(Class, install("package"), Package);
|
||||
classgets(Result, Class);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
unsigned char *result = RAW(Result);
|
||||
memset(result, 0x00, Nsample*Nsnp);
|
||||
|
||||
diff --git a/src/plink.c b/src/plink.c
|
||||
index a413440..9095c2d 100644
|
||||
--- a/src/plink.c
|
||||
+++ b/src/plink.c
|
||||
@@ -59,7 +59,7 @@ SEXP readbed(SEXP Bed, SEXP Id, SEXP Snps, SEXP Rsel, SEXP Csel) {
|
||||
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
|
||||
setAttrib(Class, install("package"), Package);
|
||||
classgets(Result, Class);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
|
||||
unsigned char *result = RAW(Result);
|
||||
R_xlen_t ncell = (R_xlen_t)nrow*(R_xlen_t)ncol;
|
||||
diff --git a/src/read_uncertain.c b/src/read_uncertain.c
|
||||
index 2e3b901..fd82617 100644
|
||||
--- a/src/read_uncertain.c
|
||||
+++ b/src/read_uncertain.c
|
||||
@@ -137,7 +137,7 @@ SEXP read_mach(const SEXP Filename, const SEXP Colnames, const SEXP Nsubject) {
|
||||
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
|
||||
setAttrib(Class, install("package"), Package);
|
||||
classgets(Result, Class);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
UNPROTECT(2);
|
||||
|
||||
/* Read in data */
|
||||
@@ -278,7 +278,7 @@ SEXP read_impute(const SEXP Filename, const SEXP Rownames, const SEXP Nsnp,
|
||||
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
|
||||
setAttrib(Class, install("package"), Package);
|
||||
classgets(Result, Class);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
UNPROTECT(2);
|
||||
|
||||
char buffer[BUFFERSIZE];
|
||||
diff --git a/src/readped.c b/src/readped.c
|
||||
index 4e8563e..020d05f 100644
|
||||
--- a/src/readped.c
|
||||
+++ b/src/readped.c
|
||||
@@ -327,7 +327,7 @@ SEXP readped(SEXP filename, SEXP snp_names, SEXP missing, SEXP X, SEXP sep) {
|
||||
else
|
||||
SET_STRING_ELT(SMClass, 0, mkChar("SnpMatrix"));
|
||||
classgets(Smat, SMClass);
|
||||
- SET_S4_OBJECT(Smat);
|
||||
+ Rf_asS4(Smat, TRUE, 0);
|
||||
PROTECT(DimNames = allocVector(VECSXP, 2));
|
||||
SET_VECTOR_ELT(DimNames, 0, duplicate(Rnames));
|
||||
protected += 2;
|
||||
diff --git a/src/single_snp_tests.c b/src/single_snp_tests.c
|
||||
index a242e17..08bd098 100644
|
||||
--- a/src/single_snp_tests.c
|
||||
+++ b/src/single_snp_tests.c
|
||||
@@ -53,8 +53,8 @@ SEXP score_single(const SEXP Phenotype, const SEXP Stratum, const SEXP Snps,
|
||||
/* SNPs ---- should be a SnpMatrix or an XSnpMatrix */
|
||||
|
||||
const char *classS = NULL;
|
||||
- if (TYPEOF(R_data_class(Snps, FALSE)) == STRSXP) {
|
||||
- classS = CHAR(STRING_ELT(R_data_class(Snps, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Snps)) == STRSXP) {
|
||||
+ classS = CHAR(STRING_ELT(R_class(Snps), 0));
|
||||
} else {
|
||||
classS = CHAR(STRING_ELT(getAttrib(Snps, R_ClassSymbol), 0));
|
||||
}
|
||||
@@ -108,8 +108,8 @@ SEXP score_single(const SEXP Phenotype, const SEXP Stratum, const SEXP Snps,
|
||||
index_db name_index;
|
||||
if (!isNull(Rules)) {
|
||||
const char *classR = NULL;
|
||||
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
|
||||
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
|
||||
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
|
||||
} else {
|
||||
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
|
||||
}
|
||||
diff --git a/src/snp_summary.c b/src/snp_summary.c
|
||||
index 9b53693..6f181c9 100644
|
||||
--- a/src/snp_summary.c
|
||||
+++ b/src/snp_summary.c
|
||||
@@ -47,8 +47,8 @@ SEXP X_snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
|
||||
SEXP ruleNames = R_NilValue;
|
||||
if (!isNull(Rules)) {
|
||||
const char *classR = NULL;
|
||||
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
|
||||
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
|
||||
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
|
||||
} else {
|
||||
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
|
||||
}
|
||||
@@ -321,8 +321,8 @@ SEXP snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
|
||||
SEXP ruleNames = R_NilValue;
|
||||
if (!isNull(Rules)) {
|
||||
const char *classR = NULL;
|
||||
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
|
||||
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
|
||||
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
|
||||
} else {
|
||||
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
|
||||
}
|
||||
diff --git a/src/snpmpy.c b/src/snpmpy.c
|
||||
index 2447048..56b84d9 100644
|
||||
--- a/src/snpmpy.c
|
||||
+++ b/src/snpmpy.c
|
||||
@@ -34,7 +34,7 @@ SEXP snp_pre(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
|
||||
int *ifdiploid = NULL;
|
||||
SEXP cl = GET_CLASS(Snps);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Snps); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
|
||||
SEXP diploid = R_do_slot(Snps, mkString("diploid"));
|
||||
@@ -55,7 +55,7 @@ SEXP snp_pre(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
|
||||
|
||||
cl = GET_CLASS(Mat);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Mat, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Mat); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (strcmp(CHAR(STRING_ELT(cl, 0)), "matrix"))
|
||||
error("Argument error - Mat wrong type");
|
||||
@@ -161,7 +161,7 @@ SEXP snp_post(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
|
||||
int *ifdiploid = NULL;
|
||||
SEXP cl = GET_CLASS(Snps);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Snps); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
|
||||
SEXP diploid = R_do_slot(Snps, mkString("diploid"));
|
||||
@@ -182,7 +182,7 @@ SEXP snp_post(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
|
||||
|
||||
cl = GET_CLASS(Mat);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Mat, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Mat); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (strcmp(CHAR(STRING_ELT(cl, 0)), "matrix"))
|
||||
error("Argument error - Mat wrong type");
|
||||
diff --git a/src/structure.c b/src/structure.c
|
||||
index 2a05635..1f9b62e 100644
|
||||
--- a/src/structure.c
|
||||
+++ b/src/structure.c
|
||||
@@ -66,7 +66,7 @@ SEXP xxt(const SEXP Snps, const SEXP Strata, const SEXP Correct_for_missing,
|
||||
int *ifDiploid = NULL;
|
||||
SEXP cl = GET_CLASS(Snps);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Snps); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
|
||||
SEXP Diploid = R_do_slot(Snps, mkString("diploid"));
|
||||
@@ -409,7 +409,7 @@ SEXP ibs_count(const SEXP Snps, const SEXP Uncertain) {
|
||||
int *ifDiploid = NULL;
|
||||
SEXP cl = GET_CLASS(Snps);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Snps); /* S4 way of getting class attribute */
|
||||
}
|
||||
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
|
||||
SEXP Diploid = R_do_slot(Snps, mkString("diploid"));
|
||||
diff --git a/src/subset.c b/src/subset.c
|
||||
index cc7992d..4c2e2c4 100644
|
||||
--- a/src/subset.c
|
||||
+++ b/src/subset.c
|
||||
@@ -55,7 +55,7 @@ SEXP subset(SEXP X, SEXP Rows, SEXP Cols) {
|
||||
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
|
||||
setAttrib(Rclass, install("package"), Package);
|
||||
setAttrib(Result, R_ClassSymbol, Rclass);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
PROTECT(Rdim = allocVector(INTSXP, 2));
|
||||
int *rdim = INTEGER(Rdim);
|
||||
rdim[0] = nrows;
|
||||
diff --git a/src/switch.c b/src/switch.c
|
||||
index 60f7e6c..e2a3287 100644
|
||||
--- a/src/switch.c
|
||||
+++ b/src/switch.c
|
||||
@@ -16,7 +16,7 @@ SEXP test_switch(const SEXP Snps, const SEXP Snps2, const SEXP Split,
|
||||
int *female = NULL;
|
||||
SEXP cl = GET_CLASS(Snps);
|
||||
if (TYPEOF(cl) != STRSXP) {
|
||||
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
|
||||
+ cl = R_class(Snps); /* S4 way of getting class attribute */
|
||||
}
|
||||
SEXP diploid = NULL;
|
||||
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
|
||||
diff --git a/src/tdt.c b/src/tdt.c
|
||||
index cece0d9..000d1c7 100644
|
||||
--- a/src/tdt.c
|
||||
+++ b/src/tdt.c
|
||||
@@ -43,8 +43,8 @@ SEXP score_tdt(const SEXP Proband, const SEXP Father, const SEXP Mother,
|
||||
/* SNPs ---- should be a SnpMatrix or an XSnpMatrix */
|
||||
|
||||
const char *classS = NULL;
|
||||
- if (TYPEOF(R_data_class(Snps, FALSE)) == STRSXP) {
|
||||
- classS = CHAR(STRING_ELT(R_data_class(Snps, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Snps)) == STRSXP) {
|
||||
+ classS = CHAR(STRING_ELT(R_class(Snps), 0));
|
||||
} else {
|
||||
classS = CHAR(STRING_ELT(getAttrib(Snps, R_ClassSymbol), 0));
|
||||
}
|
||||
@@ -84,8 +84,8 @@ SEXP score_tdt(const SEXP Proband, const SEXP Father, const SEXP Mother,
|
||||
GTYPE **gt2ht = NULL;
|
||||
if (!isNull(Rules)) {
|
||||
const char *classR = NULL;
|
||||
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
|
||||
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
|
||||
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
|
||||
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
|
||||
} else {
|
||||
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
|
||||
}
|
||||
diff --git a/src/testBig.c b/src/testBig.c
|
||||
index a6eb76f..3dca1da 100644
|
||||
--- a/src/testBig.c
|
||||
+++ b/src/testBig.c
|
||||
@@ -18,7 +18,7 @@ SEXP snp_big(SEXP nrow, SEXP ncol) {
|
||||
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
|
||||
setAttrib(Class, install("package"), Package);
|
||||
classgets(Result, Class);
|
||||
- SET_S4_OBJECT(Result);
|
||||
+ Rf_asS4(Result, TRUE, 0);
|
||||
|
||||
PROTECT(Dnames = allocVector(VECSXP, 2));
|
||||
setAttrib(Result, R_DimNamesSymbol, Dnames);
|
||||
--
|
||||
2.52.0
|
||||
|
||||
149
gnu/packages/patches/r-snpstats-0002-fixed-IS_S4_OBJECT.patch
Normal file
149
gnu/packages/patches/r-snpstats-0002-fixed-IS_S4_OBJECT.patch
Normal file
@@ -0,0 +1,149 @@
|
||||
From a505297e347aa72510ecfc83e7009668693e1260 Mon Sep 17 00:00:00 2001
|
||||
From: vjcitn <stvjc@channing.harvard.edu>
|
||||
Date: Fri, 13 Mar 2026 04:06:37 -0400
|
||||
Subject: [PATCH 2/2] fixed IS_S4_OBJECT
|
||||
|
||||
---
|
||||
src/bind.c | 4 ++--
|
||||
src/fst.c | 2 +-
|
||||
src/glm_test_R.c | 8 ++++----
|
||||
src/single_snp_tests.c | 2 +-
|
||||
src/snp_summary.c | 6 +++---
|
||||
src/tdt.c | 2 +-
|
||||
6 files changed, 12 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/src/bind.c b/src/bind.c
|
||||
index fa87e7c..b3ef928 100644
|
||||
--- a/src/bind.c
|
||||
+++ b/src/bind.c
|
||||
@@ -22,7 +22,7 @@ SEXP snp_rbind(SEXP args) {
|
||||
Class = R_class(This);
|
||||
}
|
||||
const char *cli = CHAR(STRING_ELT(Class, 0));
|
||||
- if(!IS_S4_OBJECT(This)) {
|
||||
+ if(!Rf_isS4(This)) {
|
||||
warning("rbinding SnpMatrix object without S4 object bit");
|
||||
}
|
||||
int nci = ncols(This);
|
||||
@@ -151,7 +151,7 @@ SEXP snp_cbind(SEXP args) {
|
||||
Class = R_class(This);
|
||||
}
|
||||
const char *cli = CHAR(STRING_ELT(Class, 0));
|
||||
- if(!IS_S4_OBJECT(This)) {
|
||||
+ if(!Rf_isS4(This)) {
|
||||
warning("cbinding SnpMatrix object without S4 object bit");
|
||||
}
|
||||
SEXP Di = R_NilValue;
|
||||
diff --git a/src/fst.c b/src/fst.c
|
||||
index bbc39c0..5451a51 100644
|
||||
--- a/src/fst.c
|
||||
+++ b/src/fst.c
|
||||
@@ -23,7 +23,7 @@ SEXP Fst(SEXP Snps, SEXP Group, SEXP HapMap) {
|
||||
ifX = 0; /* to avoid warning message */
|
||||
error("Argument error - class(Snps)");
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Snps)) {
|
||||
+ if(!Rf_isS4(Snps)) {
|
||||
error("Argument error - Snps is not S4 object");
|
||||
}
|
||||
|
||||
diff --git a/src/glm_test_R.c b/src/glm_test_R.c
|
||||
index dc8ebef..fe9d9c8 100644
|
||||
--- a/src/glm_test_R.c
|
||||
+++ b/src/glm_test_R.c
|
||||
@@ -24,7 +24,7 @@ SEXP snp_lhs_score(const SEXP Y, const SEXP X, const SEXP Stratum,
|
||||
} else {
|
||||
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Y)) {
|
||||
+ if(!Rf_isS4(Y)) {
|
||||
error("Y in snp_lhs_score is missing S4 Object bit");
|
||||
}
|
||||
int ifX = 0;
|
||||
@@ -443,7 +443,7 @@ SEXP snp_rhs_score(SEXP Y, SEXP family, SEXP link,
|
||||
ifX = 1;
|
||||
else
|
||||
error("Argument error - class(Z)");
|
||||
- if (!IS_S4_OBJECT(Z)) {
|
||||
+ if (!Rf_isS4(Z)) {
|
||||
error("Z in snp_rhs_score is missing S4 Object bit");
|
||||
}
|
||||
|
||||
@@ -1008,7 +1008,7 @@ SEXP snp_lhs_estimate(const SEXP Y, const SEXP X, const SEXP Stratum,
|
||||
} else {
|
||||
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Y)) {
|
||||
+ if(!Rf_isS4(Y)) {
|
||||
error("Y in snp_lhs_score is missing S4 Object bit");
|
||||
}
|
||||
int ifX = 0;
|
||||
@@ -1365,7 +1365,7 @@ SEXP snp_rhs_estimate(SEXP Y, SEXP family, SEXP link,
|
||||
} else {
|
||||
classZ = CHAR(STRING_ELT(getAttrib(Z, R_ClassSymbol), 0));
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Z)) {
|
||||
+ if(!Rf_isS4(Z)) {
|
||||
error("Z in snp_rhs_score is missing S4 Object bit");
|
||||
}
|
||||
int ifX = 0;
|
||||
diff --git a/src/single_snp_tests.c b/src/single_snp_tests.c
|
||||
index 08bd098..b577300 100644
|
||||
--- a/src/single_snp_tests.c
|
||||
+++ b/src/single_snp_tests.c
|
||||
@@ -67,7 +67,7 @@ SEXP score_single(const SEXP Phenotype, const SEXP Stratum, const SEXP Snps,
|
||||
ifX = 0; /* to avoid warning message */
|
||||
error("Argument error - class(Snps)");
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Snps)) {
|
||||
+ if(!Rf_isS4(Snps)) {
|
||||
error("Argument error - Snps is not S4 object");
|
||||
}
|
||||
|
||||
diff --git a/src/snp_summary.c b/src/snp_summary.c
|
||||
index 6f181c9..c2f1c73 100644
|
||||
--- a/src/snp_summary.c
|
||||
+++ b/src/snp_summary.c
|
||||
@@ -24,7 +24,7 @@ SEXP X_snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
|
||||
if (Snps == R_NilValue) {
|
||||
error("Argument error - Snps = NULL");
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Snps)) {
|
||||
+ if(!Rf_isS4(Snps)) {
|
||||
error("Argument error - Snps is not S4 object");
|
||||
}
|
||||
const unsigned char *snps = RAW(Snps);
|
||||
@@ -298,7 +298,7 @@ SEXP snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
|
||||
if (Snps == R_NilValue) {
|
||||
error("Argument error - Snps = NULL");
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Snps)) {
|
||||
+ if(!Rf_isS4(Snps)) {
|
||||
error("Argument error - Snps is not S4 object");
|
||||
}
|
||||
const unsigned char *snps = RAW(Snps);
|
||||
@@ -538,7 +538,7 @@ SEXP row_summary(const SEXP Snps) {
|
||||
if (Snps == R_NilValue) {
|
||||
error("Argument error - Snps = NULL");
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Snps)) {
|
||||
+ if(!Rf_isS4(Snps)) {
|
||||
error("Argument error - Snps is not S4 object");
|
||||
}
|
||||
const unsigned char *snps = RAW(Snps);
|
||||
diff --git a/src/tdt.c b/src/tdt.c
|
||||
index 000d1c7..634e1b3 100644
|
||||
--- a/src/tdt.c
|
||||
+++ b/src/tdt.c
|
||||
@@ -57,7 +57,7 @@ SEXP score_tdt(const SEXP Proband, const SEXP Father, const SEXP Mother,
|
||||
ifX = 0; /* to avoid warning message */
|
||||
error("Argument error - class(Snps)");
|
||||
}
|
||||
- if(!IS_S4_OBJECT(Snps)) {
|
||||
+ if(!Rf_isS4(Snps)) {
|
||||
error("Argument error - Snps is not S4 object");
|
||||
}
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
259
gnu/packages/patches/r-sparsearray-r-4.6.0-compat.patch
Normal file
259
gnu/packages/patches/r-sparsearray-r-4.6.0-compat.patch
Normal file
@@ -0,0 +1,259 @@
|
||||
From 633aa6e3f671e9b58b3508b3944ff0dd45f34f8a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
|
||||
Date: Thu, 5 Mar 2026 14:58:23 -0800
|
||||
Subject: [PATCH] SparseArray 1.11.11: Get rid of non-API calls to R
|
||||
|
||||
From 65383c02f986832b1416c6ad39da800d8ced05df Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
|
||||
Date: Tue, 31 Mar 2026 11:38:20 -0700
|
||||
Subject: [PATCH] SparseArray 1.11.13: Use R_getVar() instead of findVar() when
|
||||
R >= 4.6.0
|
||||
|
||||
---
|
||||
DESCRIPTION | 2 +-
|
||||
src/Makevars | 1 +
|
||||
src/Rvector_utils.c | 15 ++++++++-------
|
||||
src/SparseArray_aperm.c | 2 +-
|
||||
src/SparseArray_matrixStats.c | 5 +++--
|
||||
src/SparseArray_subassignment.c | 6 +++---
|
||||
src/SparseVec.h | 3 ++-
|
||||
src/leaf_utils.c | 5 +++--
|
||||
src/test.c | 3 +++
|
||||
9 files changed, 25 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/src/Makevars b/src/Makevars
|
||||
index 0ee3615..1c5b86e 100644
|
||||
--- a/src/Makevars
|
||||
+++ b/src/Makevars
|
||||
@@ -1,2 +1,3 @@
|
||||
+## See https://cran.r-project.org/doc/manuals/r-release/R-exts.html#OpenMP-support
|
||||
PKG_CFLAGS = $(SHLIB_OPENMP_CFLAGS)
|
||||
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
|
||||
diff --git a/src/Rvector_utils.c b/src/Rvector_utils.c
|
||||
index ad80168..7e61ac1 100644
|
||||
--- a/src/Rvector_utils.c
|
||||
+++ b/src/Rvector_utils.c
|
||||
@@ -4,6 +4,7 @@
|
||||
****************************************************************************/
|
||||
#include "Rvector_utils.h"
|
||||
|
||||
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
|
||||
#include <string.h> /* for memset() and memcpy() */
|
||||
|
||||
|
||||
@@ -242,7 +243,7 @@ void _fill_Rvector_block_with_val(SEXP Rvector,
|
||||
(const SEXP) val);
|
||||
return;
|
||||
}
|
||||
- _set_elts_to_val(TYPEOF(Rvector), DATAPTR(Rvector),
|
||||
+ _set_elts_to_val(TYPEOF(Rvector), DATAPTR_RW(Rvector),
|
||||
block_offset, block_len, val);
|
||||
}
|
||||
|
||||
@@ -260,7 +261,7 @@ void _fill_Rvector_block_with_zeros(SEXP Rvector,
|
||||
R_NilValue);
|
||||
return;
|
||||
}
|
||||
- _set_elts_to_zero(Rtype, DATAPTR(Rvector), block_offset, block_len);
|
||||
+ _set_elts_to_zero(Rtype, DATAPTR_RW(Rvector), block_offset, block_len);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -268,7 +269,7 @@ void _fill_Rvector_block_with_zeros(SEXP Rvector,
|
||||
void _fill_Rvector_block_with_ones(SEXP Rvector,
|
||||
R_xlen_t block_offset, R_xlen_t block_len)
|
||||
{
|
||||
- _set_elts_to_one(TYPEOF(Rvector), DATAPTR(Rvector),
|
||||
+ _set_elts_to_one(TYPEOF(Rvector), DATAPTR_RW(Rvector),
|
||||
block_offset, block_len);
|
||||
return;
|
||||
}
|
||||
@@ -277,7 +278,7 @@ void _fill_Rvector_block_with_ones(SEXP Rvector,
|
||||
void _fill_Rvector_block_with_minus_one(SEXP Rvector,
|
||||
R_xlen_t block_offset, R_xlen_t block_len)
|
||||
{
|
||||
- _set_elts_to_minus_one(TYPEOF(Rvector), DATAPTR(Rvector),
|
||||
+ _set_elts_to_minus_one(TYPEOF(Rvector), DATAPTR_RW(Rvector),
|
||||
block_offset, block_len);
|
||||
return;
|
||||
}
|
||||
@@ -293,7 +294,7 @@ void _fill_Rvector_block_with_NA(SEXP Rvector,
|
||||
NA_STRING);
|
||||
return;
|
||||
}
|
||||
- _set_elts_to_NA(Rtype, DATAPTR(Rvector), block_offset, block_len);
|
||||
+ _set_elts_to_NA(Rtype, DATAPTR_RW(Rvector), block_offset, block_len);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -460,7 +461,7 @@ void _fill_Rvector_subset_with_zeros(SEXP Rvector,
|
||||
R_NilValue);
|
||||
return;
|
||||
}
|
||||
- _set_selected_elts_to_zero(Rtype, DATAPTR(Rvector),
|
||||
+ _set_selected_elts_to_zero(Rtype, DATAPTR_RW(Rvector),
|
||||
selection, selection_len, selection_offset);
|
||||
return;
|
||||
}
|
||||
@@ -470,7 +471,7 @@ void _fill_Rvector_subset_with_ones(SEXP Rvector,
|
||||
const int *selection, int selection_len,
|
||||
R_xlen_t selection_offset)
|
||||
{
|
||||
- _set_selected_elts_to_one(TYPEOF(Rvector), DATAPTR(Rvector),
|
||||
+ _set_selected_elts_to_one(TYPEOF(Rvector), DATAPTR_RW(Rvector),
|
||||
selection, selection_len, selection_offset);
|
||||
return;
|
||||
}
|
||||
diff --git a/src/SparseArray_aperm.c b/src/SparseArray_aperm.c
|
||||
index 0bd092e..bbeaf2c 100644
|
||||
--- a/src/SparseArray_aperm.c
|
||||
+++ b/src/SparseArray_aperm.c
|
||||
@@ -721,7 +721,7 @@ static SEXP REC_grow_output_tree(const int *dim, int ndim,
|
||||
const type *nzvals_p = NULL; /* -Wmaybe-uninitialized */ \
|
||||
type v; \
|
||||
if (nzvals != R_NilValue) { /* standard leaf */ \
|
||||
- nzvals_p = (const type *) DATAPTR(nzvals); \
|
||||
+ nzvals_p = DATAPTR_RO(nzvals); \
|
||||
} else { /* lacunar leaf */ \
|
||||
v = type ## 1; \
|
||||
} \
|
||||
diff --git a/src/SparseArray_matrixStats.c b/src/SparseArray_matrixStats.c
|
||||
index b626553..debacf6 100644
|
||||
--- a/src/SparseArray_matrixStats.c
|
||||
+++ b/src/SparseArray_matrixStats.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "leaf_utils.h"
|
||||
#include "SparseArray_summarization.h"
|
||||
|
||||
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
|
||||
#include <string.h> /* for memcpy() and memset() */
|
||||
|
||||
|
||||
@@ -272,7 +273,7 @@ SEXP C_colStats_SVT(SEXP x_dim, SEXP x_dimnames, SEXP x_type,
|
||||
int warn = 0;
|
||||
REC_colStats_SVT(x_SVT, x_bg_is_na, INTEGER(x_dim), LENGTH(x_dim),
|
||||
&summarize_op,
|
||||
- DATAPTR(ans), ans_Rtype,
|
||||
+ DATAPTR_RW(ans), ans_Rtype,
|
||||
out_incs, ans_ndim, pardim,
|
||||
&warn);
|
||||
if (warn)
|
||||
@@ -1175,7 +1176,7 @@ SEXP C_rowStats_SVT(SEXP x_dim, SEXP x_dimnames, SEXP x_type,
|
||||
SVT_rowMinsMaxs(x_SVT, x_Rtype, x_bg_is_na,
|
||||
INTEGER(x_dim), LENGTH(x_dim),
|
||||
opcode, narm,
|
||||
- DATAPTR(ans), LENGTH(ans), ans_Rtype,
|
||||
+ DATAPTR_RW(ans), LENGTH(ans), ans_Rtype,
|
||||
out_incs, ans_ndim, nstrata);
|
||||
break;
|
||||
case SUM_OPCODE:
|
||||
diff --git a/src/SparseArray_subassignment.c b/src/SparseArray_subassignment.c
|
||||
index 4cf1c3d..c3b2d5e 100644
|
||||
--- a/src/SparseArray_subassignment.c
|
||||
+++ b/src/SparseArray_subassignment.c
|
||||
@@ -966,13 +966,13 @@ static inline int next_coords0(NindexIterator *Nindex_iter)
|
||||
midx_p++;
|
||||
coords0_p++;
|
||||
}
|
||||
- printf("coords0: ");
|
||||
+ //printf("coords0: ");
|
||||
coords0_p = Nindex_iter->coords0_buf;
|
||||
for (along = Nindex_iter->margin; along < Nindex_iter->ndim; along++) {
|
||||
- printf(" %3d", *coords0_p);
|
||||
+ //printf(" %3d", *coords0_p);
|
||||
coords0_p++;
|
||||
}
|
||||
- printf("\n");
|
||||
+ //printf("\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
diff --git a/src/SparseVec.h b/src/SparseVec.h
|
||||
index 894709b..73cd841 100644
|
||||
--- a/src/SparseVec.h
|
||||
+++ b/src/SparseVec.h
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "Rvector_utils.h"
|
||||
|
||||
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
|
||||
#include <limits.h> /* for INT_MAX */
|
||||
|
||||
|
||||
@@ -122,7 +123,7 @@ static inline SparseVec toSparseVec(SEXP nzvals, SEXP nzoffs,
|
||||
if (IS_STRSXP_OR_VECSXP(Rtype)) {
|
||||
sv.nzvals = nzvals;
|
||||
} else {
|
||||
- sv.nzvals = DATAPTR(nzvals);
|
||||
+ sv.nzvals = DATAPTR_RW(nzvals);
|
||||
}
|
||||
}
|
||||
sv.nzoffs = INTEGER(nzoffs);
|
||||
diff --git a/src/leaf_utils.c b/src/leaf_utils.c
|
||||
index e8066c3..c5ff3aa 100644
|
||||
--- a/src/leaf_utils.c
|
||||
+++ b/src/leaf_utils.c
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "SparseVec_subsetting.h"
|
||||
#include "SparseVec_subassignment.h"
|
||||
|
||||
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
|
||||
#include <string.h> /* for memcpy() */
|
||||
|
||||
|
||||
@@ -129,7 +130,7 @@ SEXP _make_leaf_from_two_arrays(SEXPTYPE Rtype,
|
||||
return ans;
|
||||
}
|
||||
ans_nzvals = PROTECT(allocVector(Rtype, nzcount));
|
||||
- memcpy(DATAPTR(ans_nzvals), nzvals_p, Rtype_size * nzcount);
|
||||
+ memcpy(DATAPTR_RW(ans_nzvals), nzvals_p, Rtype_size * nzcount);
|
||||
}
|
||||
SEXP ans = zip_leaf(ans_nzvals, ans_nzoffs, 0);
|
||||
UNPROTECT(2);
|
||||
@@ -156,7 +157,7 @@ static SEXP make_leaf_from_Rvector_subset(SEXP Rvector,
|
||||
|
||||
if (avoid_copy_if_all_selected &&
|
||||
selection_offset == 0 && selection_len == XLENGTH(Rvector) &&
|
||||
- ATTRIB(Rvector) == R_NilValue)
|
||||
+ !ANY_ATTRIB(Rvector))
|
||||
{
|
||||
/* The full 'Rvector' is selected so can be reused as-is
|
||||
with no need to copy the selected elements to a new SEXP. */
|
||||
diff --git a/src/test.c b/src/test.c
|
||||
index 493538f..2205fa2 100644
|
||||
--- a/src/test.c
|
||||
+++ b/src/test.c
|
||||
@@ -111,6 +111,9 @@ SEXP C_simple_omp_parallel_for_loop(SEXP nloop)
|
||||
for (int i = 0; i < INTEGER(nloop)[0]; i++) {
|
||||
#ifdef _OPENMP
|
||||
int thread_num = omp_get_thread_num();
|
||||
+ /* Can't use Rprintf() here because it's not thread-safe (it
|
||||
+ can trigger R's garbage collector which itself is not
|
||||
+ thread-safe). */
|
||||
printf("thread_num = %d\n", thread_num);
|
||||
#endif
|
||||
}
|
||||
diff --git a/src/readSparseCSV.c b/src/readSparseCSV.c
|
||||
index a3d8da0..de1cb95 100644
|
||||
--- a/src/readSparseCSV.c
|
||||
+++ b/src/readSparseCSV.c
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "ExtendableJaggedArray.h"
|
||||
|
||||
#include <R_ext/Connections.h>
|
||||
+#include <Rversion.h>
|
||||
|
||||
#include <string.h> /* for memcpy() */
|
||||
|
||||
@@ -111,7 +112,11 @@ static SEXP dump_env_as_list_or_R_NilValue(SEXP env, int ans_len)
|
||||
is_empty = 1;
|
||||
for (i = 0; i < ans_len; i++) {
|
||||
key = PROTECT(idx0_to_key(i));
|
||||
+#if R_VERSION < R_Version(4, 6, 0)
|
||||
ans_elt = findVar(install(translateChar(key)), env);
|
||||
+#else
|
||||
+ ans_elt = R_getVar(install(translateChar(key)), env, FALSE);
|
||||
+#endif
|
||||
UNPROTECT(1);
|
||||
if (ans_elt == R_UnboundValue)
|
||||
continue;
|
||||
@@ -237,7 +237,7 @@ it.")
|
||||
(define-public trealla
|
||||
(package
|
||||
(name "trealla")
|
||||
(version "2.94.4")
|
||||
(version "2.94.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -246,7 +246,7 @@ it.")
|
||||
(url "https://github.com/trealla-prolog/trealla")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "050x9m79j1bi17mj7zzbhlnn7ia26k51qrhp5z43wsx0rpp0hfqb"))
|
||||
(base32 "1q56l81ph4brmmxka8kpld9rw0qxksdhgg30cqdcmnll45y688f4"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
||||
@@ -384,15 +384,15 @@ comparison and diagnostics.")
|
||||
(define r-with-tests
|
||||
(package
|
||||
(name "r-with-tests")
|
||||
(version "4.5.3")
|
||||
(version "4.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/base/R-"
|
||||
(version-major version) "/R-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wmqnm813lb58c0vwhjymnkfih3a6mq4cr9xa6n72wiw57a1wp5a"))))
|
||||
"09sszy5fykpl2lyzxw5rgiabb3f5l62bqamnm7g2q9d57xlv7wli"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
@@ -115,16 +115,16 @@ Firefox locales.")
|
||||
|
||||
;; We copy the official build id, which is defined at
|
||||
;; tor-browser-build/rbm.conf (browser_release_date).
|
||||
(define %torbrowser-build-date "20260404073000")
|
||||
(define %torbrowser-build-date "20260420133000")
|
||||
|
||||
;; To find the last version, look at https://www.torproject.org/download/.
|
||||
(define %torbrowser-version "15.0.9")
|
||||
(define %torbrowser-version "15.0.10")
|
||||
|
||||
;; To find the last Firefox version, browse
|
||||
;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version>
|
||||
;; There should be only one archive that starts with
|
||||
;; "src-firefox-tor-browser-".
|
||||
(define %torbrowser-firefox-version "140.9.1esr-15.0-1-build1")
|
||||
(define %torbrowser-firefox-version "140.10.0esr-15.0-1-build2")
|
||||
|
||||
;; See tor-browser-build/rbm.conf for the list.
|
||||
(define %torbrowser-locales (list "ar" "be" "bg" "ca" "cs" "da" "de" "el" "es-ES" "fa"
|
||||
@@ -139,11 +139,11 @@ Firefox locales.")
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.torproject.org/tpo/translation.git")
|
||||
(commit "ce651a6f8aa3a6c5ff9c3f9c77d3cb9585dcc903")))
|
||||
(commit "b09d79a755bda88aa22580243e335b7187099aef")))
|
||||
(file-name "translation-base-browser")
|
||||
(sha256
|
||||
(base32
|
||||
"0cr82adjkqkbamb4qk7xpr84lch4js4n126pzsm1993np0ap7vjp"))))
|
||||
"1rafwbb27z9bscsqzb3n4bfda0k1x4mhwnnl0cy6hkk5av0wjq27"))))
|
||||
|
||||
;; See tor-browser-build/projects/translation/config.
|
||||
(define torbrowser-translation-specific
|
||||
@@ -151,11 +151,11 @@ Firefox locales.")
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.torproject.org/tpo/translation.git")
|
||||
(commit "685a144cb5cfdb50afc1e4effae48a63b3a81ee3")))
|
||||
(commit "acc7524bf476d29487aa85641c68b99e28c47e7d")))
|
||||
(file-name "translation-tor-browser")
|
||||
(sha256
|
||||
(base32
|
||||
"02z1cfzyg10g4z4iz5z1k3jjv7k0ydmsf6i923iir02yw2jgznp7"))))
|
||||
"1ic4cqi35qycli6j7k0dm760npi7bp9m9sgdzjj7aid83bp5kb4j"))))
|
||||
|
||||
(define torbrowser-assets
|
||||
;; This is a prebuilt Torbrowser from which we take the assets we need.
|
||||
@@ -171,7 +171,7 @@ Firefox locales.")
|
||||
version "/tor-browser-linux-x86_64-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"039nys7h83avkva16rg7lvrxh08pczw08vklxrh90pm38fpipddk"))))
|
||||
"1vmax8ynwmrcgjr55xggrrs7dpkx9j1q505plgb84cmn4f9s6l9y"))))
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan
|
||||
@@ -212,7 +212,7 @@ Browser.")
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jvlznd2rc68c9bl7al405dpgk0806hznxn198ji0nryjr5hmzd5"))))
|
||||
"0q059g1aj14403ixs3drw4z3w8q8w34w01cy92zzmq2cnxjhqglj"))))
|
||||
(build-system mozilla-build-system)
|
||||
(inputs
|
||||
(list lyrebird
|
||||
@@ -789,17 +789,17 @@ attacks on the privacy of Tor users.")
|
||||
|
||||
;; We copy the official build id, which can be found there:
|
||||
;; https://cdn.mullvad.net/browser/update_responses/update_1/release.
|
||||
(define %mullvadbrowser-build-date "20260404073000")
|
||||
(define %mullvadbrowser-build-date "20260420133000")
|
||||
|
||||
;; To find the last version, look at
|
||||
;; https://mullvad.net/en/download/browser/linux.
|
||||
(define %mullvadbrowser-version "15.0.9")
|
||||
(define %mullvadbrowser-version "15.0.10")
|
||||
|
||||
;; To find the last Firefox version, browse
|
||||
;; https://archive.torproject.org/tor-package-archive/mullvadbrowser/<%mullvadbrowser-version>
|
||||
;; There should be only one archive that starts with
|
||||
;; "src-firefox-mullvad-browser-".
|
||||
(define %mullvadbrowser-firefox-version "140.9.1esr-15.0-1-build1")
|
||||
(define %mullvadbrowser-firefox-version "140.10.0esr-15.0-1-build2")
|
||||
|
||||
;; See tor-browser-build/projects/translation/config.
|
||||
(define mullvadbrowser-translation-base
|
||||
@@ -807,11 +807,11 @@ attacks on the privacy of Tor users.")
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.torproject.org/tpo/translation.git")
|
||||
(commit "ce651a6f8aa3a6c5ff9c3f9c77d3cb9585dcc903")))
|
||||
(commit "b09d79a755bda88aa22580243e335b7187099aef")))
|
||||
(file-name "translation-base-browser")
|
||||
(sha256
|
||||
(base32
|
||||
"0cr82adjkqkbamb4qk7xpr84lch4js4n126pzsm1993np0ap7vjp"))))
|
||||
"1rafwbb27z9bscsqzb3n4bfda0k1x4mhwnnl0cy6hkk5av0wjq27"))))
|
||||
|
||||
;; See tor-browser-build/projects/translation/config.
|
||||
(define mullvadbrowser-translation-specific
|
||||
@@ -839,7 +839,7 @@ attacks on the privacy of Tor users.")
|
||||
version "/mullvad-browser-linux-x86_64-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"154nraw83lhyrhrahvd35zvclnshcfvgjq16cr2z9jg5sz7c4hhs"))))
|
||||
"03y9z302xjvsnwac4x4ghb88y40pm78vhikli1yyary65qyicxfm"))))
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan
|
||||
@@ -882,7 +882,7 @@ Mullvad Browser.")
|
||||
%mullvadbrowser-firefox-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0i860k6i2dc86jj9hg2hvm0g071iha7zxngnrn21kbilqr4hi61z"))))
|
||||
"19wr2jkc2p0i3y7j43xjx54g6ckpxfr5bgsawqvrfkx6ls81mfh4"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:phases phases)
|
||||
|
||||
@@ -5852,8 +5852,8 @@ Cloud.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public guix-data-service
|
||||
(let ((commit "9a03cdff18c097a2987dfd12d55d0e3572969a98")
|
||||
(revision "75"))
|
||||
(let ((commit "58744bbdc513331e5d5129fffd27e8c5d0336d2e")
|
||||
(revision "76"))
|
||||
(package
|
||||
(name "guix-data-service")
|
||||
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
|
||||
@@ -5865,7 +5865,7 @@ Cloud.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lc9np1ijr10ym9xn3bhanq3zgsl2br6k5lnq90f4igmpc5jf1bh"))))
|
||||
"0ijwhmf42nriwp5770yh0pikszqnymhvgzpziy72a19dq58cv1lj"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
;;; Copyright © 2021 Aljosha Papsch <ep@stern-data.com>
|
||||
;;; Copyright © 2025, 2026 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2025, 2026 Ashvith Shetty <ashvithshetty0010@zohomail.in>
|
||||
;;; Copyright © 2026 Mattia Bunel <mattia.bunel@ehess.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -115,8 +116,8 @@
|
||||
(plain-file "pg_hba.conf"
|
||||
"
|
||||
local all all peer
|
||||
host all all 127.0.0.1/32 md5
|
||||
host all all ::1/128 md5"))
|
||||
host all all 127.0.0.1/32 scram-sha-256
|
||||
host all all ::1/128 scram-sha-256"))
|
||||
|
||||
(define %default-postgres-ident
|
||||
(plain-file "pg_ident.conf"
|
||||
|
||||
@@ -108,6 +108,10 @@
|
||||
guix-data-service-host
|
||||
guix-data-service-getmail-idle-mailboxes
|
||||
guix-data-service-commits-getmail-retriever-configuration
|
||||
guix-data-service-extra-options
|
||||
guix-data-service-extra-process-jobs-options
|
||||
guix-data-service-extra-environment-variables
|
||||
guix-data-service-extra-process-jobs-environment-variables
|
||||
guix-data-service-configuration-git-repositories
|
||||
guix-data-service-configuration-build-servers
|
||||
|
||||
@@ -587,6 +591,12 @@
|
||||
(extra-process-jobs-options
|
||||
guix-data-service-extra-process-jobs-options
|
||||
(default '()))
|
||||
(extra-environment-variables
|
||||
guix-data-service-extra-environment-variables
|
||||
(default '()))
|
||||
(extra-process-jobs-environment-variables
|
||||
guix-data-service-extra-process-jobs-environment-variables
|
||||
(default '()))
|
||||
(git-repositories guix-data-service-configuration-git-repositories
|
||||
(default #f))
|
||||
(build-servers guix-data-service-configuration-build-servers
|
||||
@@ -601,6 +611,8 @@ ca-certificates.crt file in the system profile."
|
||||
(define (guix-data-service-shepherd-services config)
|
||||
(match-record config <guix-data-service-configuration>
|
||||
(package user group port host extra-options extra-process-jobs-options
|
||||
extra-environment-variables
|
||||
extra-process-jobs-environment-variables
|
||||
git-repositories build-servers)
|
||||
(list
|
||||
(shepherd-service
|
||||
@@ -626,7 +638,8 @@ ca-certificates.crt file in the system profile."
|
||||
`(,(string-append
|
||||
"GUIX_LOCPATH="
|
||||
#$(libc-utf8-locales-for-target) "/lib/locale")
|
||||
"LC_ALL=en_US.UTF-8")
|
||||
"LC_ALL=en_US.UTF-8"
|
||||
#$@extra-environment-variables)
|
||||
#:log-file "/var/log/guix-data-service/web.log"))
|
||||
(stop #~(make-kill-destructor)))
|
||||
|
||||
@@ -678,7 +691,8 @@ ca-certificates.crt file in the system profile."
|
||||
`(,(string-append
|
||||
"GUIX_LOCPATH="
|
||||
#$(libc-utf8-locales-for-target) "/lib/locale")
|
||||
"LC_ALL=en_US.utf8")
|
||||
"LC_ALL=en_US.utf8"
|
||||
#$@extra-environment-variables)
|
||||
#:log-file "/var/log/guix-data-service/setup-database.log"))
|
||||
(auto-start? #t))
|
||||
|
||||
@@ -700,7 +714,8 @@ ca-certificates.crt file in the system profile."
|
||||
,(string-append
|
||||
"GUIX_LOCPATH="
|
||||
#$(libc-utf8-locales-for-target) "/lib/locale")
|
||||
"LC_ALL=en_US.UTF-8")
|
||||
"LC_ALL=en_US.UTF-8"
|
||||
#$@extra-process-jobs-environment-variables)
|
||||
#:log-file "/var/log/guix-data-service/process-jobs.log"))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user