Message ID | 5715f36b461fb1bd61966a21f7b69fc6049955a2.1730755471.git.h.goebel@crazy-compilers.com |
---|---|
State | New |
Headers | show |
Series | [bug#74206] gnu: Fix java-jaxen. | expand |
Am Montag, dem 04.11.2024 um 22:26 +0100 schrieb Hartmut Goebel: > java-jaxen was missing the dom4j and xom sub-packages. This was > caused by java-jaxen-bootstrap deleting the respective directories > (which is okay) and java-javen not removing the phase that does this. > > Solve this by basing java-jaxen-bootstrap on java-jaxen instead of > vice-versa. > > * gnu/packages/java-xml.scm (java-jaxen) Define based on former > java-jaxen-bootstrap, while keeping the former's inputs and removing > the > later's build-phases. (java-jaxen-bootstrap): Inherit from java- > jaxen, keeping > the pre-existing bootstrap build-ohases and inputs. > --- The preferred way for bootstrapping is from bottom up. You can still remove the phases and add inputs normally. Cheers
Am 08.11.24 um 11:57 schrieb Liliana Marie Prikler: > The preferred way for bootstrapping is from bottom up. You can still > remove the phases and add inputs normally. Removing the phase seem less natural than adding a phase. And not removing the phase was what caused the error - which got undetected. This way round, if for some reason the phase gets lost, bootstrap will fail and the issue will be detected.
Am Freitag, dem 08.11.2024 um 15:47 +0100 schrieb Hartmut Goebel: > Am 08.11.24 um 11:57 schrieb Liliana Marie Prikler: > > The preferred way for bootstrapping is from bottom up. You can > > still remove the phases and add inputs normally. > > Removing the phase seem less natural than adding a phase. And not > removing the phase was what caused the error - which got undetected. > This way round, if for some reason the phase gets lost, bootstrap > will fail and the issue will be detected. You can just write #:phases %standard-phases. Cheers
diff --git a/gnu/packages/java-xml.scm b/gnu/packages/java-xml.scm index 9ec11fa83e..09fdab8c0c 100644 --- a/gnu/packages/java-xml.scm +++ b/gnu/packages/java-xml.scm @@ -200,11 +200,9 @@ (define-public java-apache-xml-commons-resolver @end itemize") (license license:asl2.0))) -;; Jaxen requires java-dom4j and java-xom that in turn require jaxen. -;; This package is a bootstrap version without dependencies on dom4j and xom. -(define java-jaxen-bootstrap +(define-public java-jaxen (package - (name "java-jaxen-bootstrap") + (name "java-jaxen") (version "1.1.6") (source (origin (method url-fetch) @@ -218,16 +216,9 @@ (define java-jaxen-bootstrap (arguments `(#:jar-name "jaxen.jar" #:source-dir "src" - #:tests? #f; no tests - #:phases - (modify-phases %standard-phases - (add-before 'build 'remove-dom4j - (lambda _ - (delete-file-recursively "src/org/jaxen/dom4j") - (delete-file-recursively "src/org/jaxen/xom") - #t))))) + #:tests? #f)) ; no tests (inputs - `(("java-jdom" ,java-jdom))) + (list java-jdom java-xom java-dom4j)) (home-page "https://github.com/jaxen-xpath/jaxen") (synopsis "XPath library") (description "Jaxen is an XPath library written in Java. It is adaptable @@ -237,12 +228,23 @@ (define java-jaxen-bootstrap with XPath too.") (license license:bsd-3))) -(define-public java-jaxen +;; Jaxen requires java-dom4j and java-xom that in turn require jaxen. +;; This package is a bootstrap version without dependencies on dom4j and xom. +(define java-jaxen-bootstrap (package - (inherit java-jaxen-bootstrap) - (name "java-jaxen") + (inherit java-jaxen) + (name "java-jaxen-bootstrap") + (arguments + (substitute-keyword-arguments (package-arguments java-jaxen) + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (add-before 'build 'remove-dom4j + (lambda _ + (delete-file-recursively "src/org/jaxen/dom4j") + (delete-file-recursively "src/org/jaxen/xom") + #t)))))) (inputs - (list java-jdom java-xom java-dom4j)))) + (list java-jdom)))) (define-public java-xom (package