merge 56989 56990 56991 56992 56993
thanks
Regarding the patch title, just one level of grouping is enough.
That is, use "gnu: Add dbqn."
Also, you're missing a ChangeLog, i.e.
* gnu/packages/bqn.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it here.
Note that the second change is lacking from your patch.
Am Freitag, dem 05.08.2022 um 01:46 -0400 schrieb Christopher
Rodriguez:
Toggle quote (41 lines)
> Thanks to some help from upstream and on IRC (thanks, dzaima and
> lilyp!) I
> was able to remove the non-determinism issue. Here's an updated
> patch.
>
> ---
> gnu/packages/bqn.scm | 102
> +++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 102 insertions(+)
> create mode 100644 gnu/packages/bqn.scm
>
> diff --git a/gnu/packages/bqn.scm b/gnu/packages/bqn.scm
> new file mode 100644
> index 0000000000..261f29ece5
> --- /dev/null
> +++ b/gnu/packages/bqn.scm
> @@ -0,0 +1,102 @@
> +(define-module (gnu packages bqn)
> + #:use-module ((guix licenses) #:prefix license:)
> + #:use-module (guix gexp)
> + #:use-module (guix packages)
> + #:use-module (guix download)
> + #:use-module (guix git-download)
> + #:use-module (guix build-system copy)
> + #:use-module (guix build-system gnu)
> + #:use-module (guix utils)
> + #:use-module (guix deprecation)
> + #:use-module (gnu packages)
> + #:use-module (gnu packages libffi)
> + #:use-module (gnu packages base)
> + #:use-module (gnu packages pkg-config)
> + #:use-module (gnu packages llvm)
> + #:use-module (gnu packages java)
> + #:use-module (gnu packages compression))
> +(define-public dbqn
> + (let* ((tag "0.2.1")
> + (revision "1")
> + (commit "0bbe096fc07d278b679a8479318f1722d096a03e")
> + (hash
> "1kxzxz2hrd1871281s4rsi569qk314aqfmng9pkqn8gv9nqhmph0")
> + (version (git-version tag revision commit)))
Don't let-bind tag, version and hash, use them inline.
Toggle quote (9 lines)
> + (package
> + (name "dbqn")
> + (version version)
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/dzaima/BQN")
> + (commit commit)))
> + (file-name (git-file-name name version))
Note that version will be bound here even if you use the version field
to do so.
Toggle quote (19 lines)
> + (sha256
> + (base32
> + hash))))
> + (outputs '("out"))
> + (build-system gnu-build-system)
> + (arguments
> + (list #:tests? #f ;While there is a "test" directory, there
> is no
> + ;; mechanism to run the tests other than to feed the
> files into the
> + ;; binary and check for an error. This is outside the
> scope of a
> + ;; packaging workflow, and would need to be fixed
> upstream
> + ;; instead. Issue Reported:
> https://github.com/dzaima/BQN/issues/12
> + ;; Maintainer says many of the tests fail, and so they
> will remain off
> + ;; until this is sorted out.
You could do
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(for-each (lambda (known-good-test)
(invoke my-glorious-bin known-good-test))
known-good-tests))))
FSVO my-glorious-bin and known-good-tests.
Toggle quote (51 lines)
> + #:imported-modules `(,@%gnu-build-system-modules (guix
> build
> +
> syscalls)
> + (guix build ant-build-system))
> + #:modules `((guix build gnu-build-system)
> + ((guix build ant-build-system)
> + #:prefix ant:)
> + (guix build utils))
> + #:phases #~(modify-phases %standard-phases
> + (delete 'configure)
> + (replace 'build
> + (lambda* _
> + (invoke "./build")))
> + (add-after 'build 'strip-jar-timestamps
> + (lambda* (#:key outputs #:allow-other-
> keys)
> + (write %standard-phases)))
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-
> keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (dest-bin (string-append out
> "/bin"))
> + (dest-jar (string-append out
> +
> "/share/java")))
> + (mkdir-p dest-bin)
> + (mkdir-p dest-jar)
> + (copy-recursively "BQN"
> + (string-append
> dest-bin
> +
> "/dbqn"))
> + (chmod (string-append dest-bin
> "/dbqn") 493)
> + (install-file "BQN.jar" dest-jar))))
> + (add-after 'install 'subjars
> + (lambda* (#:key outputs #:allow-other-
> keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (dest-bin (string-append out
> "/bin"))
> + (dest-jar (string-append out
> +
> "/share/java")))
> + (substitute* (string-append dest-bin
> "/dbqn")
> + (("BQN.jar")
> + (string-append dest-jar
> "/BQN.jar"))))))
Could this be done in/before install?
Toggle quote (8 lines)
> + (add-after 'subjars 'reorder-jar-content
> + (lambda* (#:key outputs #:allow-other-
> keys)
> + (apply (cdr (assoc 'reorder-jar-
> content
> + ant:%standard-
> phases))
> + #:outputs (list outputs))))
You can use #:rest args to bind args for apply. Also use assoc-ref
rather than cdr + assoc.
Toggle quote (19 lines)
> + (add-after 'reorder-jar-content 'jar-
> indices
> + (lambda* (#:key outputs #:allow-other-
> keys)
> + (apply (cdr (assoc 'generate-jar-
> indices
> + ant:%standard-
> phases))
> + #:outputs (list outputs))))
> + (add-after 'jar-indices 'fix-jar-
> timestamps
> + (lambda* (#:key outputs #:allow-other-
> keys)
> + (apply (cdr (assoc 'reorder-jar-
> content
> + ant:%standard-
> phases))
> + #:outputs (list outputs)))))))
> + (native-inputs (list `(,openjdk17 "jdk") coreutils zip))
Toggle quote (4 lines)
> + (synopsis "BQN implementation based on dzaima/APL")
> + (description "BQN implementation based on dzaima/APL.")
> + (home-page "https://github.com/dzaima/BQN")
> + (license license:expat))))