[-- Attachment #1: Type: text/plain, Size: 17911 bytes --] Morning, While working toward openjfx I encountered a problem with the java-icu4j package required for antlr4 which openjfx requires. Firstly it's building the wrong source - it's trying to build ic4j-*-src.jar which only contains the java source suitable for browsing in an ide and is thus missing the resource and build files. So while it creates a package that allows compilation to pass it doesn't actually work. So I tried creating one from the correct source, and for the sake of it, using the same version as the existing icu4c package - 66.1[1]. The correct java source archive is icu4j-66_1.tgz <https://github.com/unicode-org/icu/releases/download/release-66-1/icu4j-66_1.tgz><https://github.com/unicode-org/icu/releases/download/release-66-1/icu4j-66_1.tgz>. <https://github.com/unicode-org/icu/releases/download/release-66-1/icu4j-66_1-src.jar> I couldn't use githere because the icu git repository requires git lfs. My system git doesn't have it so i didn't even try to see if git-fetch supports it. For some reason (unlike icu4c) this is not archived within a single subdirectory which causes at least two problems. First the gnu-build-system unpack function changes to the first subdirectory it finds after unpacking any archive, which in this case is nothing useful. This can be hacked around by replacing the unpack function or adding a post-pack modification to run "cd ..". The second is that you cannot apply any patches as the (source (patches --)) function uses an entirely different mechanism to change to the source root subdirectory where it simply chooses the first directory entry it finds - which at least in this case is a file! So it fails and aborts. Of course the patches could just be applied as a post-unpack function in the same manner as substitute* is often used. I found this second issue by accident, icu4j doesn't need a patch. For what it's worth by mid last week I went through this and managed to get antlr4 to build (what an awful mess[2]) and have worked out the steps for openjfx but it was such a miserable few days of work that I went and did other things for a while. So sorry to say that at this point I'm not sure if i'll ever get around to submitting patches for any of this. Regards, Z [1] https://github.com/unicode-org/icu/releases/tag/release-66-1 [2] antlr.scm work in progress (define-module (antlr) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system ant) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages java)) ; really out of date but this is the version used by antlr4 ; this might want to have javafx.json (the api) as a separate output? (define-public jsonp (package (name "jsonp") (version "jsonp-1.0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/javaee/jsonp.git") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "01r4syivcywpvxkr1hn0az9316pr7qpnx154zzzw0nijfmdlbw7n")))) (build-system ant-build-system) (arguments `(#:jar-name (string-append ,name "-" ,version ".jar") #:tests? #f #:source-dir "impl/src/main/java:api/src/main/java" #:phases (modify-phases %standard-phases (add-before 'build 'fix-build-xml (lambda _ (substitute* "build.xml" (("target name=\"compile\">") "target name=\"compile\"> <copy todir=\"${classes.dir}\"> <fileset dir=\"impl/src/main/resources\"> <include name=\"**/*.properties\"/> </fileset> </copy>"))))))) (home-page "https://javaee.github.io/jsonp/") (synopsis "JSON Processing api") (description "JSON Processing (JSON-P) is a Java API to process (for e.g. parse, generate, transform and query) JSON messages. It produces and consumes JSON text in a streaming fashion (similar to StAX API for XML) and allows to build a Java object model for JSON text using API classes (similar to DOM API for XML). ") (license license:gpl2))) ; with classpath exception ; java-icu4j is broken (define-public java-icu4j-66 (package (name "icu4j") (version "66.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/unicode-org/icu/releases/download/release-" (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) "/icu4j-" (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) ".tgz")) (sha256 (base32 "1ahdyz9209lwl7knb2l3gmnkkby221p0vpgx70fj4j02rdzgvw0d")) )) (build-system ant-build-system) (arguments `(#:tests? #f ; no tests included #:phases (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source #:allow-other-keys) (mkdir "source") (chdir "source") (invoke "tar" "xvf" source))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (mkdir-p (string-append out "/share/java")) (copy-file "icu4j.jar" (string-append out "/share/java/icu4j-" ,version ".jar")) #t))) ) ) ) (home-page "http://site.icu-project.org/") (synopsis "International Components for Unicode") (description "ICU is a set of C/C++ and Java libraries providing Unicode and globalisation support for software applications. This package contains the Java part.") (license license:x11))) (define-public antlr4 (package (name "antlr4") (version "4.7.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/antlr/antlr4") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1pl0zs6c6wx9nmq30s7ccpc3dl72az55i8vfp574fw9sywmvxmlj")) (patches (search-patches "antlr-template.patch")) )) (build-system ant-build-system) (arguments `(#:jar-name (string-append ,name "-" ,version ".jar") #:source-dir "tool/src:runtime/Java/src:build/gensrc/tool" #:tests? #f #:phases (modify-phases %standard-phases (add-after 'install 'bin-install (lambda* (#:key inputs outputs #:allow-other-keys) (let ((jar (string-append (assoc-ref outputs "out") "/share/java")) (bin (string-append (assoc-ref outputs "out") "/bin"))) (mkdir-p bin) (with-output-to-file (string-append bin "/antlr4") (lambda _ (display (string-append "#!" (which "sh") "\n" "java -cp " jar "/" ,name "-" ,version ".jar:" (string-concatenate (find-files (assoc-ref inputs "stringtemplate") ".*\\.jar")) ":" (string-concatenate (find-files (assoc-ref inputs "stringtemplate4") ".*\\.jar")) ":" (string-concatenate (find-files (string-append (assoc-ref inputs "antlr") "/lib") ".*\\.jar")) " org.antlr.Tool $*")))) (chmod (string-append bin "/antlr4") #o755)) #t)) (add-after 'configure 'generate-grammar (lambda _ (invoke "antlr3" "-o", "build/gensrc", "tool/src/org/antlr/v4/codegen/SourceGenTriggers.g" "tool/src/org/antlr/v4/parse/ANTLRLexer.g" "tool/src/org/antlr/v4/parse/ANTLRParser.g" "tool/src/org/antlr/v4/parse/ATNBuilder.g" "tool/src/org/antlr/v4/parse/ActionSplitter.g" "tool/src/org/antlr/v4/parse/BlockSetTransformer.g" "tool/src/org/antlr/v4/parse/GrammarTreeVisitor.g" "tool/src/org/antlr/v4/parse/LeftRecursiveRuleWalker.g") #t)) (add-after 'generate-grammar 'build-runtime (lambda _ (mkdir-p "build/classes") (apply invoke "javac" "-source" "1.7" "-target" "1.7" "-d" "build/classes" (find-files "runtime/Java/src" "\\.java$")))) (add-after 'build-runtime 'build-controller ; replicate functionality of maven-stringtemplate-plugin as there is no tool for it(?) (lambda* (#:key inputs #:allow-other-keys) (with-output-to-file "build/gensrc/MakeTemplate.java" (lambda _ (display "import org.stringtemplate.v4.ST; import org.stringtemplate.v4.STGroup; import org.stringtemplate.v4.STGroupDir; import org.stringtemplate.v4.misc.ErrorBuffer; import org.stringtemplate.v4.AutoIndentWriter; import java.io.FileWriter; import java.io.IOException; import java.util.Map; public class MakeTemplate { public static void main(String[] argv) { String dir=argv[0]; String name=argv[1]; String res=argv[2]; STGroup group = new STGroupDir(dir); ST st = group.getInstanceOf(name); for (Map.Entry<String,Object> e: org.antlr.v4.unicode.UnicodeDataTemplateController.getProperties().entrySet()) st.add(e.getKey(), e.getValue()); try (FileWriter out = new FileWriter(res)) { ErrorBuffer listener = new ErrorBuffer(); st.write(new AutoIndentWriter(out), listener); if(!listener.errors.isEmpty()) throw new IOException(listener.toString()); } catch (IOException x) { x.printStackTrace(System.err); System.exit(1); } } }"))) (mkdir "build/genclasses") (invoke "javac" "-d" "build/genclasses" "-classpath" (string-join (append '("build/classes") (find-files (assoc-ref inputs "stringtemplate") "\\.jar$") (find-files (assoc-ref inputs "icu4j") "\\.jar$")) ":") "tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java" "build/gensrc/MakeTemplate.java") #t)) (add-after 'build-controller 'process-templates (lambda* (#:key inputs #:allow-other-keys) (mkdir-p "build/gensrc/tool/org/antlr/v4/unicode") (invoke "java" "-classpath" (string-join (append '("build/classes" "build/genclasses") (find-files (assoc-ref inputs "stringtemplate") "\\.jar$") (find-files (assoc-ref inputs "antlr3") "\\.jar$") (find-files (assoc-ref inputs "icu4j") "\\.jar$")) ":") "MakeTemplate" "tool/resources/org/antlr/v4/tool/templates" "unicodedata" "build/gensrc/tool/org/antlr/v4/unicode/UnicodeData.java"))) (add-before 'build 'fix-build-xml (lambda _ (substitute* "build.xml" (("target name=\"compile\">") "target name=\"compile\"> <copy todir=\"${classes.dir}\"> <fileset dir=\"tool/resources\"> <include name=\"**/*.stg\"/> <include name=\"**/*.st\"/> <include name=\"**/*.sti\"/> </fileset> </copy>") (("(<javac.*srcdir=\"tool/src[^>]*)/>" all letters) (string-append letters "><exclude name=\"org/antlr/v4/unicode/UnicodeDataTemplateController.java\"/> <exclude name=\"org/antlr/v4/gui/**\"/> </javac>"))) #t))))) (native-inputs `(("icu4j" ,java-icu4j-66) ("antlr3" ,antlr3) )) (inputs `(("junit" ,java-junit) ("stringtemplate" ,java-stringtemplate) ("jsonp" ,jsonp) )) (propagated-inputs `( ("antlr3" ,antlr3) ("stringtemplate" ,java-stringtemplate) )) (home-page "https://www.antlr.org") (synopsis "Framework for constructing recognisers, compilers, and translators") (description "ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognisers, compilers, and translators from grammatical descriptions containing Java, C#, C++, or Python actions. ANTLR provides excellent support for tree construction, tree walking, and translation.") (license license:bsd-3))) [-- Attachment #2: Type: text/html, Size: 24145 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 1024 bytes --] Hi Michael, what is the central message of your email? Is it just to say "I gave up, sorry", or do you need help at specific points? :-) At least I can tell you that I have quite a bunch of work-in-progress branches lying around because I start with "Oh, let's _just_ update/fix/add this little program ..." and you end up in a chain of needed updates, conflicting updates, broken states, etc. Don't get confused by this :-) I try to plan my work step by step in these situations, cleanly commit what's finished and write a personal log of the success and failures and intermediate knowledge gained. To the concrete java-icu4j: What do you think about the attached patch (needs some clean-up)? What's a bit uncommon about the project is that it builds separate sub-projects and then combines them. I'm not sure about the output(s): There are icu4j.jar, icu4j-charset.jar and icu4j-localespi.jar, I only copied the first one as I think this is what the original package definition did. Björn [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0001-gnu-java-icu4c-Update-to-66.1-use-full-sources.patch --] [-- Type: text/x-patch, Size: 2971 bytes --] From 85516c2319a94f1e4b22954efd32f489d7d3925e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= <bjoern.hoefling@bjoernhoefling.de> Date: Tue, 12 May 2020 20:27:59 +0200 Subject: [PATCH] gnu: java-icu4c: Update to 66.1, use full sources. * gnu/packages/icu4c.scm (java-icu4c): Update to 66.1. [source]: Use full sources instead of jar-sources. [arguments]: Add chdir phase, replace install phase. --- gnu/packages/icu4c.scm | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index cf76c6fe20..ccced11f81 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -117,22 +118,33 @@ C/C++ part.") (define-public java-icu4j (package (name "java-icu4j") - (version "59.1") + (version "66.1") (source (origin (method url-fetch) - (uri (string-append "http://download.icu-project.org/files/icu4j/" - version "/icu4j-" - (string-map (lambda (x) - (if (char=? x #\.) #\_ x)) - version) - "-src.jar")) + (uri (string-append + "https://github.com/unicode-org/icu/releases/download/release-" + (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) + "/icu4j-" + (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) + ".tgz")) (sha256 - (base32 - "0bgxsvgi0qcwj60pvcxrf7a3fbk7aksyxnfwpbzavyfrfzixqh0c")))) + (base32 "1ahdyz9209lwl7knb2l3gmnkkby221p0vpgx70fj4j02rdzgvw0d")))) (build-system ant-build-system) (arguments `(#:tests? #f ; no tests included - #:jar-name "icu4j.jar")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "..") + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((share (string-append (assoc-ref outputs "out") + "/share/java/"))) + (mkdir-p share) + (install-file "icu4j.jar" share) + #t)))))) (home-page "http://site.icu-project.org/") (synopsis "International Components for Unicode") (description -- 2.26.2 [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1775 bytes --] Le Tue, 12 May 2020 23:57:58 +0200, Björn Höfling <bjoern.hoefling@bjoernhoefling.de> a écrit : > Hi Michael, > > what is the central message of your email? Is it just to say "I gave > up, sorry", or do you need help at specific points? :-) > > At least I can tell you that I have quite a bunch of work-in-progress > branches lying around because I start with "Oh, let's _just_ > update/fix/add this little program ..." and you end up in a chain of > needed updates, conflicting updates, broken states, etc. > > Don't get confused by this :-) I try to plan my work step by step in > these situations, cleanly commit what's finished and write a personal > log of the success and failures and intermediate knowledge gained. > > To the concrete java-icu4j: > > What do you think about the attached patch (needs some clean-up)? > > What's a bit uncommon about the project is that it builds separate > sub-projects and then combines them. I'm not sure about the output(s): > There are icu4j.jar, icu4j-charset.jar and icu4j-localespi.jar, I only > copied the first one as I think this is what the original package > definition did. > > Björn Hi, I took your patch and changed it a bit to enable tests. They require JUnitParams, which we don't have, as well as some work to actually be able to run the tests without having the package try to download anything. Attached are two patches, that add java-junitparams and that update icu4j with the proper sources. I also tried to use the git repository, but that failed because three data archive files come from git-lfs and are not fetched by git-fetch, so I kept using the release tarball instead. I've rebuilt the few packages listed by guix refresh successfully. WDYT? [-- Attachment #2: 0001-gnu-Add-java-junitparams.patch --] [-- Type: text/x-patch, Size: 2011 bytes --] From 21f02625baa603e0f6c31a7f2a96dd26e3f27ded Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sun, 28 Jun 2020 22:33:21 +0200 Subject: [PATCH 1/2] gnu: Add java-junitparams. * gnu/packages/java.scm (java-junitparams): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 48f9a52a56..fc85d12aa5 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3735,6 +3735,37 @@ JUnit provides assertions for testing expected results, test fixtures for sharing common test data, and test runners for running tests.") (license license:epl1.0))) +(define-public java-junitparams + (package + (name "java-junitparams") + (version "1.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Pragmatists/JUnitParams") + (commit (string-append "JUnitParams-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rb52xdfp99invyjrras3w0bf0a81cz30yd47rkkiyqcqj0y1q9b")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "junitparams.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:test-exclude (list "**/SuperclassTest.java"))) + (inputs + `(("java-junit" ,java-junit))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-assertj" ,java-assertj))) + (home-page "https://github.com/Pragmatists/JUnitParams") + (synopsis "Parameterised test support for JUnit") + (description "The JUnitParams project adds a new runner to JUnit and +provides much easier and readable parametrised tests for JUnit.") + (license license:asl2.0))) + (define-public java-plexus-utils (package (name "java-plexus-utils") -- 2.26.2 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-java-icu4c-Update-to-66.1-use-full-sources.patch --] [-- Type: text/x-patch, Size: 4446 bytes --] From d6dbe5507b24ef63b9f899e936ece422a401c21e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= <bjoern.hoefling@bjoernhoefling.de> Date: Tue, 12 May 2020 20:27:59 +0200 Subject: [PATCH 2/2] gnu: java-icu4c: Update to 66.1, use full sources. * gnu/packages/icu4c.scm (java-icu4c): Update to 66.1. [source]: Use full sources instead of jar-sources. [arguments]: Add chdir phase, replace install phase. Co-Authored-By: Julien Lepiller <julien@lepiller.eu> --- gnu/packages/icu4c.scm | 58 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 54a65365d7..b00d3172a4 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ (define-module (gnu packages icu4c) #:use-module (gnu packages) + #:use-module (gnu packages java) #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (guix licenses) @@ -133,22 +135,56 @@ C/C++ part.") (define-public java-icu4j (package (name "java-icu4j") - (version "59.1") + (version "66.1") (source (origin (method url-fetch) - (uri (string-append "http://download.icu-project.org/files/icu4j/" - version "/icu4j-" - (string-map (lambda (x) - (if (char=? x #\.) #\_ x)) - version) - "-src.jar")) + (uri (string-append + "https://github.com/unicode-org/icu/releases/download/release-" + (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) + "/icu4j-" + (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) + ".tgz")) (sha256 - (base32 - "0bgxsvgi0qcwj60pvcxrf7a3fbk7aksyxnfwpbzavyfrfzixqh0c")))) + (base32 "1ahdyz9209lwl7knb2l3gmnkkby221p0vpgx70fj4j02rdzgvw0d")))) (build-system ant-build-system) (arguments - `(#:tests? #f ; no tests included - #:jar-name "icu4j.jar")) + `(#:make-flags + (list (string-append "-Djunit.core.jar=" + (car (find-files + (assoc-ref %build-inputs "java-junit") + ".*.jar$"))) + (string-append "-Djunit.junitparams.jar=" + (car (find-files + (assoc-ref %build-inputs "java-junitparams") + ".*.jar$"))) + (string-append "-Djunit.hamcrest.jar=" + (car (find-files + (assoc-ref %build-inputs "java-hamcrest-core") + ".*.jar$")))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "..") + #t)) + (add-before 'build 'remove-ivy + (lambda _ + ;; This target wants to download ivy and use it to download + ;; junit. + (substitute* "build.xml" + (("depends=\"test-init-junit-dependency\"") "")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((share (string-append (assoc-ref outputs "out") + "/share/java/"))) + (mkdir-p share) + (install-file "icu4j.jar" share) + #t)))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-junitparams" ,java-junitparams) + ("java-hamcrest-core" ,java-hamcrest-core))) (home-page "http://site.icu-project.org/") (synopsis "International Components for Unicode") (description -- 2.26.2
Le Sun, 28 Jun 2020 22:41:35 +0200,
Julien Lepiller <julien@lepiller.eu> a écrit :
>
> Hi,
>
> I took your patch and changed it a bit to enable tests. They require
> JUnitParams, which we don't have, as well as some work to actually be
> able to run the tests without having the package try to download
> anything.
>
> Attached are two patches, that add java-junitparams and that update
> icu4j with the proper sources.
>
> I also tried to use the git repository, but that failed because three
> data archive files come from git-lfs and are not fetched by git-fetch,
> so I kept using the release tarball instead. I've rebuilt the few
> packages listed by guix refresh successfully.
>
> WDYT?
Since there was no answer to this, I pushed the patches as
52a23d8e4872f5cb313d4456fc3e4c56280a2918 and
ee1dc9b3d19364e17b15a158194cddfff91778c8.
Hi there,
Sorry. I've lost completely any interest in guix (and all else
computer/software related) so do with it and any other patches I sent
what you will.
Regards,
Michael
On 5/7/20 9:50 pm, Julien Lepiller wrote:
> Le Sun, 28 Jun 2020 22:41:35 +0200,
> Julien Lepiller <julien@lepiller.eu> a écrit :
>> Hi,
>>
>> I took your patch and changed it a bit to enable tests. They require
>> JUnitParams, which we don't have, as well as some work to actually be
>> able to run the tests without having the package try to download
>> anything.
>>
>> Attached are two patches, that add java-junitparams and that update
>> icu4j with the proper sources.
>>
>> I also tried to use the git repository, but that failed because three
>> data archive files come from git-lfs and are not fetched by git-fetch,
>> so I kept using the release tarball instead. I've rebuilt the few
>> packages listed by guix refresh successfully.
>>
>> WDYT?
> Since there was no answer to this, I pushed the patches as
> 52a23d8e4872f5cb313d4456fc3e4c56280a2918 and
> ee1dc9b3d19364e17b15a158194cddfff91778c8.
>