Subject: Re: [bug#36695] [PATCH 3/3] guix: ant-build-system: Use absolute path as base-dir.

From: Julien Lepiller <[email-masked]>
Date: Wed, 17 Jul 2019 10:17:06 +0200

Le 16 juillet 2019 22:10:20 GMT+02:00, Hartmut Goebel <[email-masked]> a écrit :
>This allows to chdir into some sub-project prior to building.
>
>* guix/build/ant-build-system.scm (default-build.xml): Add parameter.
>  (configure): Pass current directory as base-dir to default-build.xml.
>---
> guix/build/ant-build-system.scm | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
>diff --git a/guix/build/ant-build-system.scm
>b/guix/build/ant-build-system.scm
>index 49549c1b4b..3fe7808db5 100644
>--- a/guix/build/ant-build-system.scm
>+++ b/guix/build/ant-build-system.scm
>@@ -36,6 +36,7 @@
> ;; Code:
> 
> (define* (default-build.xml jar-name prefix #:optional
>+                            (base-dir ".")
>                   (source-dir ".") (test-dir "./test") (main-class #f)
>                             (test-include '("**/*Test.java"))
>                             (test-exclude '("**/Abstract*Test.java")))
>@@ -43,7 +44,7 @@
>   (call-with-output-file "build.xml"
>     (lambda (port)
>       (sxml->xml
>-       `(project (@ (basedir ".")
>+       `(project (@ (basedir ,base-dir)
>                     (name ,jar-name))
>                  (property (@ (name "classes.dir")
>                               (value "${basedir}/build/classes")))
>@@ -162,6 +163,7 @@ to the default GNU unpack strategy."
>     (default-build.xml jar-name
>                        (string-append (assoc-ref outputs "out")
>                                       "/share/java")
>+                       (getcwd)
>             source-dir test-dir main-class test-include test-exclude))
>   (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
>   (setenv "CLASSPATH" (generate-classpath inputs))

I don't understand the point of that patch. I can already add a chdir phase just after unpack to do just that. What does this patch give us?

The other two patches lgtm, but I think they need to go to staging instead of master, because they will cause a rebuild of every java package.