Toggle quote (513 lines)
>
>I've made a little progress here, added packages for three of the
>packages we were missing:
>
>- java-htmlcleaner
>- java-jcharset
>- java-jcifs
>
>
>I also added a couple of packages that were not listed as dependencies
>but were needed:
>
>- java-openjfx-swing
>- java-openjfx-web
>
>java-openjfx-swing needs to have the patch
>java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch from
>https://issues.guix.gnu.org/41360 applied to java-openjfx-build.
>
>Your jackrabbit-webdav package built without problems. So the only
>packages we are missing now seems to be:
>
>- java-javax-activation
>- java-sfl4j-log4j12
>- java-winrun4j
>
>I added a packaged definition for java-sfl4j-log4j12 but it is currently
>failing to build with some undefined reference to
>`org.apache.log4j.helpers.ThreadLocalMap`.
>
>javax.activation has been taken over by Eclipse and moved to
>jakarta.activation. I haven't yet tried to package this one since I
>don't know what is the best way to handle this and if it is possible to
>use the new jakarta.activation directly in place of javax.activation.
>
>It also seems that winrun4j is needed after all, since I get some build
>error related to winrun4j when trying to build davmail. Unless we are
>able to remove references to it we might need to package winrun4j also.
>
>Attaching the java-additions file with my changes added.
>
>--8<---------------cut here---------------start------------->8---
>(define-module (gnu packages java-additions)
> #:use-module ((guix licenses) #:prefix license:)
> #:use-module (guix utils)
> #:use-module (guix packages)
> #:use-module (guix download)
> #:use-module (guix gexp)
> #:use-module (guix git-download)
> #:use-module (guix build-system ant)
> #:use-module (guix build-system maven)
> #:use-module (gnu packages)
> #:use-module (gnu packages cmake)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages java)
> #:use-module (gnu packages java-bootstrap)
> #:use-module (gnu packages java-compression)
> #:use-module (gnu packages java-xml)
> #:use-module (gnu packages gperf)
> #:use-module (gnu packages python)
> #:use-module (gnu packages ruby))
>
>
>(define-public java-javax-jcr
> (package
> (name "java-javax-jcr")
> (version "2.0")
> (source (origin
> (method url-fetch)
> (uri (string-append "https://repo1.maven.org/maven2/"
> "javax/jcr/jcr/"
> version "/jcr-"
> version "-sources.jar"))
> (sha256
> (base32
> "163c9y71rm31mgazzxar28r3k4fb9vzk7a1dfs1cgf7d9rnx4i33"))))
> (build-system ant-build-system)
> (arguments
> `(#:tests? #f ; no tests
> #:jar-name "javax-jcr.jar"))
> (home-page "https://jcp.org/aboutJava/communityprocess/final/jsr283/index.html")
> (synopsis "Specifies a standard API to access content repositories in Java independently of implementation")
> (description "
>The API should be a standard, implementation independent, way to access content bi-directionally on a
>granular level within a content repository. A Content Repository is a high-level information management
>system that is a superset of traditional data repositories. A content repository implements
>\"content services\" such as: author based versioning, full textual searching, fine grained access control,
>content categorization and content event monitoring. It is these \"content services\" that differentiate a
>Content Repository from a Data Repository.
>
>Many of today's (web)applications are interacting with a content repository in various ways.
>
>This API proposes that content repositories have a dedicated, standard way of interaction with applications
>that deal with content. This API will focus on transactional read/write access, binary content
>(stream operations), textual content, full-text searching, filtering, observation, versioning, handling of
>hard and soft structured content.")
> ;; Day Specification License
> (license license:gpl2)))
>
>(define-public java-oak-jackrabbit-api
> (package
> (name "java-oak-jackrabbit-api")
> (version "1.42.0")
> (source (origin
> (method url-fetch)
> (uri (string-append "https://dlcdn.apache.org/jackrabbit/oak/"
> version "/jackrabbit-oak-" version "-src.zip"))
> (sha256
> (base32
> "17ra69nn4fl7ja2m23d3995570j5j5ni3fi4kfvfsp82jdmryy6r"))))
> (build-system ant-build-system)
> (arguments
> `(#:jar-name "oak-jackrabbit-api.jar"
> #:phases
> (modify-phases %standard-phases
> (add-after 'unpack 'chdir
> (lambda _ (chdir "oak-jackrabbit-api") #t))
> (add-before 'build 'prepare
> (lambda _
> (with-directory-excursion
> "src/test/java/org/apache/jackrabbit/api/"
> ;; remove test which has build error
> (delete-file "JackrabbitSessionTest.java"))
> #t)))))
> (inputs
> (list unzip
> java-commons-logging-minimal
> java-mockito-1
> java-junit
> java-jetbrains-annotations
> java-javax-jcr
> java-osgi-annotation))
> (home-page "https://jackrabbit.apache.org/oak/docs/index.html")
> (synopsis "Jackrabbit Oak - the next generation content repository")
> (description "This component contains the interface extensions that Apache Jackrabbit and
>Jackrabbit Oak support in addition to the standard JCR API. You can
>use these interfaces to access implementation-specific functionality.")
> (license license:asl2.0)))
>
>(define-public java-jackrabbit-oak
> (package
> (name "java-jackrabbit-oak")
> (version "1.42.0")
> (source (origin
> (method url-fetch)
> (uri (string-append "https://dlcdn.apache.org/jackrabbit/oak/"
> version "/jackrabbit-oak-" version "-src.zip"))
> (sha256
> (base32
> "17ra69nn4fl7ja2m23d3995570j5j5ni3fi4kfvfsp82jdmryy6r"))))
> (build-system maven-build-system)
> (arguments
> `(#:exclude
> (
> ; ("org.apache.maven.plugins" .
> ; ("maven-deploy-plugin" "maven-javadoc-plugin" "maven-idea-plugin"
> ; "maven-eclipse-plugin" "maven-release-plugin"))
> ("org.apache.rat" . ("apache-rat-plugin"))
> ("org.codehaus.mojo" . ("animal-sniffer-maven-plugin"))
> ("org.jacoco" . ("jacoco-maven-plugin"))
> ("org.apache.felix" . ("maven-bundle-plugin")))
> #:local-packages (("javax.jcr" . (("jcr" . "2.0")))
> ("org.osgi" . (("org.osgi.annotation" . "6.0.0")))
> ("org.jetbrains" . (("annotations". "19.0.0")))
> ("org.mockito" . (("mockito-core" . "1.10.19"))))))
> (native-inputs (list unzip java-javax-jcr))
> (synopsis "Jackrabbit Oak - the next generation content repository")
> (description
> "Jackrabbit Oak is an effort to implement a scalable and performant hierarchical
>content repository for use as the foundation of modern world-class web sites and other
>demanding content applications. The Oak effort is a part of the Apache Jackrabbit
>project. Apache Jackrabbit is a project of the Apache Software Foundation.
>")
> (home-page "https://jackrabbit.apache.org/oak/docs/index.html")
> (license license:asl2.0)))
>
>(define-public java-jackrabbit
> (package
> (name "java-jackrabbit")
> (version "2.21.21")
> (source (origin
> (method url-fetch)
> (uri (string-append "https://dlcdn.apache.org/jackrabbit/"
> version "/jackrabbit-" version "-src.zip"))
> (sha256
> (base32
> "0i2m0zmbb7xcvg2zwkdj16xjr9jhv5a0rxf75r2vad7jpkym99sz"))))
> (build-system maven-build-system)
> (arguments
> `(#:exclude
> (("org.apache.maven.plugins" .
> ("maven-deploy-plugin" "maven-javadoc-plugin" "maven-idea-plugin"
> "maven-eclipse-plugin" "maven-release-plugin"))
> ("org.apache.rat" . ("apache-rat-plugin"))
> ("org.codehaus.mojo" . ("animal-sniffer-maven-plugin"))
> ("org.jacoco" . ("jacoco-maven-plugin"))
> ("org.apache.felix" . ("maven-bundle-plugin")))
> #:local-packages (("javax.jcr" . (("jcr" . "2.0")))
> ("org.apache.jackrabbit" . (("oak-jackrabbit-api" . "1.42.0")))
> ("org.osgi" . (("org.osgi.annotation" . "6.0.0")))
> ("cglib" . (("cglib" . "3.2.4"))))))
> (native-inputs (list unzip java-junit java-javax-jcr))
> (synopsis "This is the WebDAV Library component of the Apache Jackrabbit project")
> (description
> "This component provides interfaces and common utility classes used for
>building a WebDAV server or client. The following RFC have been integrated:
>
> * RFC 2518 (WebDAV - HTTP Extensions for Distributed Authoring)
> * RFC 3253 (DeltaV - Versioning Extensions to WebDAV)
> * RFC 3648 (Ordered Collections Protocol)
> * RFC 3744 (Access Control Protocol)
> * DAV Searching and Locating (DASL)
> * Binding Extensions to Web Distributed Authoring and Versioning (WebDAV) (experimental)
>
>In addition this library defines (unspecified)
>
> * Observation
> * Bundling multiple request with extensions to locking")
> (home-page "https://jackrabbit.apache.org/jcr/index.html")
> (license license:asl2.0)))
>
>(define-public java-jackrabbit-webdav
> (package
> (name "java-jackrabbit-webdav")
> (version "2.21.21")
> (source (origin
> (method url-fetch)
> (uri (string-append "https://dlcdn.apache.org/jackrabbit/"
> version "/jackrabbit-" version "-src.zip"))
> (sha256
> (base32
> "0i2m0zmbb7xcvg2zwkdj16xjr9jhv5a0rxf75r2vad7jpkym99sz"))))
> (build-system ant-build-system)
> (arguments
> `(#:jar-name "jackrabbit-webdav.jar"
> #:test-exclude (list "**/ParserTest.java") ;; fails unexpected
> #:phases
> (modify-phases %standard-phases
> (add-after 'unpack 'chdir
> (lambda _ (chdir "jackrabbit-webdav") #t)))))
> (native-inputs (list
> unzip
> java-junit
> java-slf4j-simple
> java-httpcomponents-httpcore
> java-httpcomponents-httpclient
> java-javaee-servletapi
> java-osgi-annotation))
> (synopsis "This is the WebDAV Library component of the Apache Jackrabbit project")
> (description
> "This component provides interfaces and common utility classes used for
>building a WebDAV server or client. The following RFC have been integrated:
>
> * RFC 2518 (WebDAV - HTTP Extensions for Distributed Authoring)
> * RFC 3253 (DeltaV - Versioning Extensions to WebDAV)
> * RFC 3648 (Ordered Collections Protocol)
> * RFC 3744 (Access Control Protocol)
> * DAV Searching and Locating (DASL)
> * Binding Extensions to Web Distributed Authoring and Versioning (WebDAV) (experimental)
>
>In addition this library defines (unspecified)
>
> * Observation
> * Bundling multiple request with extensions to locking")
> (home-page "https://jackrabbit.apache.org")
> (license license:asl2.0)))
>
>(define-public java-davmail
> (package
> (name "java-davmail")
> (version "6.0.1")
> (source (origin
> (method url-fetch)
> (uri (string-append "https://sourceforge.net/projects/davmail/files/davmail/"
> version "/davmail-srconly-" version "-3390.tgz"))
> (sha256
> (base32
> "0q5yix25i253w9kpqc8wiryvzpfrbqalky8byf5bz66v13c07y7p"))))
> (build-system ant-build-system)
> (arguments
> `(#:modules ((guix build ant-build-system)
> (guix build java-utils)
> (guix build utils)
> (srfi srfi-1)
> (ice-9 match))
> ;#:build-target "jar"
> #:source-dir "src/"
> #:test-dir "src/test"
> #:tests? #false
> #:jar-name "davmail.jar"
> #:build-target "jar"))
> ;#:phases
> ;(modify-phases %standard-phases
> ; (add-after 'unpack 'create-libdir
> ; (lambda* (#:key inputs #:allow-other-keys)
> ; (mkdir-p "lib")
> ; ;(for-each
> ; ; (lambda (file)
> ; ; (let ((target (string-append "lib/" (basename file))))
> ; ; (unless (file-exists? target)
> ; ; (symlink file target))))
> ; ; (append-map (match-lambda
> ; ; (dir
> ; ; (find-files dir "\\.jar$")))
> ; ; inputs))
> ; #t)))))
> (inputs (list
> ;java-junit
> ;;java-log4j-core
> ;;java-log4j-api
> java-slf4j-api
> java-log4j-1.2-api
> ;;java-slf4j-log4j12
> java-jcl-over-slf4j
> java-openjfx-base
> java-openjfx-build
> java-openjfx-controls
> java-openjfx-graphics
> java-openjfx-media
> java-openjfx-web
> java-openjfx-swing ;; Maybe not all of these are needed
> java-javax-mail
> java-htmlcleaner
> java-jackrabbit-webdav
> java-junit
> ;;java-slf4j-simple
> java-jcifs
> java-swt
> java-woodstox-core
> java-stax
> java-stax2-api
> java-jcharset
> java-httpcomponents-httpcore
> java-httpcomponents-httpclient
> java-commons-httpclient
> java-commons-codec
> java-jettison
> java-javaee-servletapi
> ;java-osgi-annotation
> ))
> (synopsis "POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange and Office 365 Gateway")
> (description
> "Ever wanted to get rid of Outlook? DavMail is a POP/IMAP/SMTP/Caldav/Carddav/LDAP
>exchange gateway allowing users to use any mail/calendar client (e.g. Thunderbird with
>Lightning or Apple iCal) with an Exchange server, even from the internet or behind a firewall
>through Outlook Web Access. DavMail now includes an LDAP gateway to Exchange global address
>book and user personal contacts to allow recipient address completion in mail compose window
>and full calendar support with attendees free/busy display.")
> (home-page "http://davmail.sourceforge.net/index.html")
> (license license:gpl2)))
>
>(define-public java-htmlcleaner
> (package
> (name "java-htmlcleaner")
> (version "0.0")
> (source (origin
> (method url-fetch)
> (uri (string-append
> "https://downloads.sourceforge.net/project/htmlcleaner/htmlcleaner/htmlcleaner%20v2.29/htmlcleaner-src-2.29.zip"))
> (sha256 (base32 "0l2k94rklbhxbcqqzn46y4l089jdi5ivy2g1h7vk8vxyc5qqvilz"))))
> (build-system ant-build-system)
> (arguments
> `(#:jar-name "htmlcleaner.jar"
> #:tests? #false
> #:source-dir "../src/main"
> #:test-dir "../src/test"))
> (native-inputs
> (list java-jdom2
> unzip
> java-junit))
> (home-page "")
> (synopsis "")
> (description "")
> ;; GPLv2 only
> (license license:bsd-3)))
>
>(define-public java-jcharset
> (package
> (name "java-jcharset")
> (version "0.0")
> (source (origin
> (method url-fetch)
> (uri (string-append
> "https://www.freeutils.net/source/jcharset/jcharset-2.1-distribution.zip"))
> (sha256 (base32 "1k1fqwgrpxp81r93n2irw4lhsnx217jky7lz8h3wbic14iycz8v9"))))
> (build-system ant-build-system)
> (arguments
> `(#:jar-name "jcharset.jar"
> #:tests? #false
> #:source-dir "src/main"
> #:test-dir "src/test"))
> (native-inputs
> (list unzip
> java-junit))
> (home-page "")
> (synopsis "")
> (description "")
> ;; GPLv2 only
> (license license:bsd-3)))
>
>(define-public java-slf4j-log4j12
> (package
> (name "java-slf4j-log4j12")
> (version "0.0.0")
> (source (package-source java-slf4j-api))
> (build-system ant-build-system)
> (arguments
> `(#:jar-name "slf4j-log4j12.jar"
> #:source-dir "slf4j-log4j12/src/main"
> #:test-dir "slf4j-log4j12/src/test"
> #:phases
> (modify-phases %standard-phases
> ;; The tests need some test classes from slf4j-api
> (add-before 'check 'build-slf4j-api-test-helpers
> (lambda _
> ;; Add current dir to CLASSPATH ...
> (setenv "CLASSPATH"
> (string-append (getcwd) ":" (getenv "CLASSPATH")))
> ;; ... and build test helper classes here:
> (apply invoke
> `("javac" "-d" "."
> ,@(find-files "slf4j-api/src/test" ".*\\.java")))))
> (replace 'install
> (install-from-pom "slf4j-log4j12/pom.xml")))))
> (propagated-inputs
> (list java-slf4j-api
> java-log4j-1.2-api))
> ;;java-log4j-core))
> (native-inputs
> (list java-junit
> java-logback-core
> java-logback-classic
> java-log4j-1.2-api
> java-hamcrest-core))
> (home-page "https://www.slf4j.org/")
> (synopsis "")
> (description "")
> (license license:expat)))
>
>
>;; This might not be needed at all. It was listed as a dependency for jacrabbit,
>;; but I don't think jackrabbit uses it
>(define-public java-jcl-over-slf4j
> (package
> (name "java-jcl-over-slf4j")
> (version "0.0.0")
> (source (package-source java-slf4j-api))
> (build-system ant-build-system)
> (arguments
> `(#:jar-name "jcl-over-slf4j.jar"
> #:source-dir "jcl-over-slf4j/src/main"
> #:tests? #false
> #:test-dir "jcl-over-slf4j/src/test"
> ;;#:test-exclude (list "**/*SimpleLoggerMultithreadedInitializationTest.java")
> #:phases
> (modify-phases %standard-phases
> ;; The tests need some test classes from slf4j-api
> (add-before 'check 'build-slf4j-api-test-helpers
> (lambda _
> ;; Add current dir to CLASSPATH ...
> (setenv "CLASSPATH"
> (string-append (getcwd) ":" (getenv "CLASSPATH")))
> ;; ... and build test helper classes here:
> (apply invoke
> `("javac" "-d" "."
> ,@(find-files "slf4j-api/src/test" ".*\\.java")))))
> (replace 'install
> (install-from-pom "jcl-over-slf4j/pom.xml")))))
> (propagated-inputs
> (list java-slf4j-api
> java-log4j-1.2-api
> java-log4j-core))
> (native-inputs
> (list java-junit)) ;java-hamcrest-core))
> (home-page "https://www.slf4j.org/")
> (synopsis "")
> (description "")
> (license license:expat)))
>
>(define-public java-jcifs
> (package
> (name "java-jcifs")
> (version "0.0.0")
> (source (origin
> (method url-fetch)
> (uri (string-append
> "https://www.jcifs.org/src/jcifs-1.3.19.zip"))
> (sha256 (base32 "06pj5qi8giplsxdp5y4l4j55pj13n13k8lrqpk96jvm7xjhqc7m3"))))
> (build-system ant-build-system)
> (arguments
> `(#:jar-name "jcifs.jar"
> #:source-dir "src/jcifs"
> #:tests? #false
> #:test-dir "src/test"))
> (propagated-inputs
> (list ))
> (native-inputs
> (list java-junit
> java-javaee-servletapi
> unzip)) ;java-hamcrest-core))
> (home-page "")
> (synopsis "")
> (description "")
> (license license:expat)))
>
>(define-public java-openjfx-swing
> (package (inherit java-openjfx-build)
> (name "java-openjfx-swing")
> (arguments
> `(#:jar-name "java-openjfx-swing.jar"
> #:source-dir "modules/swing/src/main/java"
> #:tests? #f
> #:test-dir "modules/swing/src/tes