unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#35570] java-tomcat: Make it the full package
@ 2019-05-04 22:34 Björn Höfling
  2019-05-04 22:37 ` [bug#35570] [PATCH 1/8] gnu: ant-build-system: Don't override symlinks Björn Höfling
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:34 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 861 bytes --]

The current java-tomcat package is only building the jar-files and uses
Tomcat only as a servlet-api package. This patch series changes it to
the "real" package with a bin, conf, ... directory.

If you have a CATALINA_BASE, i.e. a Tomcat instance directory with
conf, log, webapps, you can start Tomcat like that:

CATALINA_BASE=/home/bjoern/guix/tmp/catalina-home /gnu/store/q5dqsiiwb665jfb6ckcfpw3ijgm4gyh7-java-tomcat-8.5.40/bin/startup.sh

And then navigate to http://localhost:8080/ to view your new site.

The standard Tomcat installation copies the commons-daemon.jar and the
java-ecj.jar. We better use symlinks to the input package. But these
would be overridden by a repacking phase: Thus, we need to modify the
ant-build-system, placing this series into the staging branch.

What's finally outstanding is a tomcat-service.

Björn

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 1/8] gnu: ant-build-system: Don't override symlinks.
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
@ 2019-05-04 22:37 ` Björn Höfling
  2019-05-04 22:37 ` [bug#35570] [PATCH 2/8] gnu: java-javaee-servletapi: Don't use unstable tarball Björn Höfling
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:37 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 2316 bytes --]


When repacking jar-files, don't work on symlinks: Otherwise, they would be
overridden with the repacked jar-file.

* guix/build/ant-build-system.scm (regular-jar-file-predicate): New procedure.
(generate-jar-indices, strip-jar-timestamps): Use it.
---
 guix/build/ant-build-system.scm | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index d79a2d55ed..0fec06f497 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -171,6 +172,12 @@ to the default GNU unpack strategy."
                 #:allow-other-keys)
   (apply invoke `("ant" ,build-target ,@make-flags)))
 
+(define (regular-jar-file-predicate file stat)
+  "Predicate returning true if FILE is ending on '.jar'
+and STAT indicates it is a regular file."
+    (and ((file-name-predicate "\\.jar$") file stat)
+         (eq? 'regular (stat:type stat))))
+
 (define* (generate-jar-indices #:key outputs #:allow-other-keys)
   "Generate file \"META-INF/INDEX.LIST\".  This file does not use word wraps
 and is preferred over \"META-INF/MANIFEST.MF\", which does use word wraps,
@@ -181,7 +188,10 @@ dependencies of this jar file."
     (invoke "jar" "-i" jar))
   (for-each (match-lambda
               ((output . directory)
-               (for-each generate-index (find-files directory "\\.jar$"))))
+               (for-each generate-index
+                         (find-files
+                          directory
+                          regular-jar-file-predicate))))
             outputs)
   #t)
 
@@ -222,7 +232,8 @@ repack them.  This is necessary to ensure that archives are reproducible."
 
   (for-each (match-lambda
               ((output . directory)
-               (for-each repack-archive (find-files directory "\\.jar$"))))
+               (for-each repack-archive
+                         (find-files directory regular-jar-file-predicate))))
             outputs)
   #t)
 
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 2/8] gnu: java-javaee-servletapi: Don't use unstable tarball.
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
  2019-05-04 22:37 ` [bug#35570] [PATCH 1/8] gnu: ant-build-system: Don't override symlinks Björn Höfling
@ 2019-05-04 22:37 ` Björn Höfling
  2019-05-04 22:38 ` [bug#35570] [PATCH 3/8] gnu: java-javaee-servletapi: Add properties-files to jar Björn Höfling
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:37 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 1693 bytes --]


* gnu/packages/java.scm (java-javaee-servletapi)[source]: Use git-fetch.
---
 gnu/packages/java.scm | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 9664d749fb..f92b3d5e89 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2836,14 +2837,15 @@ API and version 2.1 of the Java ServerPages
API.") (package
     (name "java-javaee-servletapi")
     (version "3.1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
"https://github.com/javaee/servlet-spec/"
-                                  "archive/" version ".zip"))
-              (file-name (string-append name "-" version ".zip"))
-              (sha256
-               (base32
-
"0m6p13vgfb1ihich1jp5j6fqlhkjsrkn32c86bsbkryp38ipwg8w"))))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url
"https://github.com/javaee/servlet-spec.git")
+                      (commit version)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+
"0s03lj8w5an70lkqbjycgfrfk0kc07vbfav91jzk87gh3awf9ksl"))))
(build-system ant-build-system) (arguments
      `(#:jar-name "javax-servletapi.jar"
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 3/8] gnu: java-javaee-servletapi: Add properties-files to jar.
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
  2019-05-04 22:37 ` [bug#35570] [PATCH 1/8] gnu: ant-build-system: Don't override symlinks Björn Höfling
  2019-05-04 22:37 ` [bug#35570] [PATCH 2/8] gnu: java-javaee-servletapi: Don't use unstable tarball Björn Höfling
@ 2019-05-04 22:38 ` Björn Höfling
  2019-05-04 22:39 ` [bug#35570] [PATCH 4/8] gnu: Remove dependencies on java-tomcat, use servlet API Björn Höfling
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:38 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 1708 bytes --]


* gnu/packages/java.scm (jav-javaee-servletapi)[arguments]: Add phase
'copy-resources' to copy properties-files.
---
 gnu/packages/java.scm | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f92b3d5e89..9b635699f6 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2851,7 +2851,25 @@ API and version 2.1 of the Java ServerPages
API.") `(#:jar-name "javax-servletapi.jar"
        ;; no tests
        #:tests? #f
-       #:source-dir "src/main/java"))
+       #:source-dir "src/main/java"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (mkdir-p "build/classes/javax/servlet/http")
+             (let ((from-prefix "src/main/java/javax/servlet/")
+                   (to-prefix "build/classes/javax/servlet/"))
+               (for-each (lambda (f)
+                           (copy-file (string-append from-prefix f)
+                                      (string-append to-prefix f)))
+                         (list "LocalStrings_ja.properties"
+                               "LocalStrings.properties"
+                               "LocalStrings_fr.properties"
+                               "http/LocalStrings_es.properties"
+                               "http/LocalStrings_ja.properties"
+                               "http/LocalStrings.properties"
+                               "http/LocalStrings_fr.properties")))
+               #t)))))
     (native-inputs
      `(("unzip" ,unzip)))
     (home-page "https://javaee.github.io/servlet-spec/")
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 4/8] gnu: Remove dependencies on java-tomcat, use servlet API
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
                   ` (2 preceding siblings ...)
  2019-05-04 22:38 ` [bug#35570] [PATCH 3/8] gnu: java-javaee-servletapi: Add properties-files to jar Björn Höfling
@ 2019-05-04 22:39 ` Björn Höfling
  2019-05-04 22:41 ` [bug#35570] [PATCH 5/8] gnu: java-commons-daemon: Update to 1.1.0 Björn Höfling
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:39 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 4484 bytes --]


These packages are using java-tomcat as a dependency where they
actually only need a servlet API.

* gnu/packages/maven.scm (maven-wagon-tck-http)[inputs]: Remove
java-tomcat, add java-javaee-servletapi.
  (maven-wagon-http)[native-inputs]: Same here.
* gnu/packages/web.scm (java-eclipse-jetty-util)[inputs]: Same here.
  (java-eclipse-jetty-http-test-classes)[inputs]: Same here.
  (java-eclipse-jetty-security)[inputs]: Same here.
  (java-eclipse-jetty-servlet)[inputs]: Same here.
  (java-eclipse-jetty-webapp-9.2)[inputs]: Same here.
---
 gnu/packages/maven.scm |  5 +++--
 gnu/packages/web.scm   | 11 ++++++-----
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index d383f16255..592cc74f2d 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019 Tobias Geerinckx-Rite <me@tobias.gr>
+;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -523,7 +524,7 @@ gets and puts artifacts using the file system.")))
     (inputs
      `(("java-plexus-util" ,java-plexus-utils)
        ("maven-wagon-provider-api" ,maven-wagon-provider-api)
-       ("java-tomcat" ,java-tomcat)
+       ("java-javaee-servletapi" ,java-javaee-servletapi)
        ("java-slf4j-api" ,java-slf4j-api)
        ("java-commons-codec" ,java-commons-codec)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
@@ -663,7 +664,7 @@ wagon providers supporting HTTP.")))
        ("java-jdom2" ,java-jdom2)
        ("java-asm" ,java-asm)
        ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-       ("java-tomcat" ,java-tomcat)
+       ("java-javaee-servletapi" ,java-javaee-servletapi)
        ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
        ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
        ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 7242ede3be..3d9070f169 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2018 Mădălin Ionel Patrașcu
<madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2018 Alex Vong
<alexvong1995@gmail.com> ;;; Copyright © 2019 Nicolas Goaziou
<mail@nicolasgoaziou.fr> +;;; Copyright © 2019 Björn Höfling
<bjoern.hoefling@bjoernhoefling.de> ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5702,7 +5703,7 @@ Web Server.")
              #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)))
+       ("servlet" ,java-javaee-servletapi)))
     (native-inputs
      `(("junit" ,java-junit)
        ("hamcrest" ,java-hamcrest-all)
@@ -5890,7 +5891,7 @@ or embedded instantiation.  This package provides
the JMX management."))) #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)
+       ("java-javaee-servletapi" ,java-javaee-servletapi)
        ("http" ,java-eclipse-jetty-http)
        ("io" ,java-eclipse-jetty-io)
        ("util" ,java-eclipse-jetty-util)))))
@@ -5985,7 +5986,7 @@ artifact.")))
              #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)
+       ("servlet" ,java-javaee-servletapi)
        ("http" ,java-eclipse-jetty-http)
        ("server" ,java-eclipse-jetty-server)
        ("util" ,java-eclipse-jetty-util)))
@@ -6028,7 +6029,7 @@ infrastructure")))
              #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)
+       ("java-javaee-servletapi" ,java-javaee-servletapi)
        ("http" ,java-eclipse-jetty-http)
        ("http-test" ,java-eclipse-jetty-http-test-classes)
        ("io" ,java-eclipse-jetty-io)
@@ -6163,7 +6164,7 @@ container.")))
        ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
        ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
        ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
-       ("java-tomcat" ,java-tomcat)
+       ("java-javaee-servletapi" ,java-javaee-servletapi)
        ,@(package-inputs java-eclipse-jetty-util-9.2)))
     (native-inputs
      `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 5/8] gnu: java-commons-daemon: Update to 1.1.0.
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
                   ` (3 preceding siblings ...)
  2019-05-04 22:39 ` [bug#35570] [PATCH 4/8] gnu: Remove dependencies on java-tomcat, use servlet API Björn Höfling
@ 2019-05-04 22:41 ` Björn Höfling
  2019-05-04 22:41 ` [bug#35570] [PATCH 6/8] gnu: Add java-ecj in version 4.6.3 Björn Höfling
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:41 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 941 bytes --]


* gnu/packages/java (java-commons-daemon): Update to 1.1.0.
---
 gnu/packages/java.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 9b635699f6..3e0198b6aa 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6248,14 +6248,14 @@ This is a part of the Apache Commons Project.")
 (define-public java-commons-daemon
   (package
     (name "java-commons-daemon")
-    (version "1.0.15")
+    (version "1.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
"mirror://apache/commons/daemon/source/" "commons-daemon-" version
"-src.tar.gz")) (sha256
                (base32
-
"0ci46kq8jpz084ccwq0mmkahcgsmh20ziclp2jf5i0djqv95gvhi"))))
+
"141gkhfzv5v3pdhic6y4ardq2dhsa3v36j8wmmhy6f8mac48fp7n"))))
(build-system ant-build-system) (arguments
      `(#:test-target "test"
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 6/8] gnu: Add java-ecj in version 4.6.3.
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
                   ` (4 preceding siblings ...)
  2019-05-04 22:41 ` [bug#35570] [PATCH 5/8] gnu: java-commons-daemon: Update to 1.1.0 Björn Höfling
@ 2019-05-04 22:41 ` Björn Höfling
  2019-05-04 22:42 ` [bug#35570] [PATCH 7/8] gnu: java-tomcat: Build the full Tomcat package Björn Höfling
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:41 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 1992 bytes --]


* gnu/packages/java.scm (java-ecj): New variable.
---
 gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 3e0198b6aa..df151013fd 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2363,6 +2363,45 @@ Main-Class:
org.eclipse.jdt.internal.compiler.batch.Main\n" (native-inputs
      `(("unzip" ,unzip)))))
 
+(define-public java-ecj
+  (package (inherit java-ecj-3)
+           (version "4.6.3")
+           (source
+            (origin
+              (method url-fetch)
+              (uri (string-append
+
"http://archive.eclipse.org/eclipse/downloads/drops4/R-"
+                    version
+                    "-201703010400/ecjsrc-"
+                    version
+                    ".jar"))
+              (sha256
+               (base32
+
"11cfgsdgznja1pvlxkjbqykxd7pcd5655vkm7s44xmahmap15gpl"))))
+           (arguments
+            `(#:tests? #f ; none included
+              #:build-target "build"
+              #:phases
+              (modify-phases %standard-phases
+                (add-after 'unpack 'fix-build.xml
+                  (lambda _
+                    (substitute* "src/build.xml"
+                      (("^.*MANIFEST.*$")
+                       ""))
+                    #t))
+                (add-after 'unpack 'fix-prop
+                  (lambda _
+                    (substitute* "src/build.xml"
+                      (("^.*properties.*$")
+                       "<include name=\"**/*.properties\"/>
+ <include name=\"**/*.props\"/>"))
+                    #t))
+                (add-before 'build 'chdir
+                  (lambda _
+                    (chdir "src")
+                    #t))
+                (replace 'install (install-jars ".")))))))
+
 (define-public java-cisd-base
   (let ((revision 38938)
         (base-version "14.12.0"))
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 7/8] gnu: java-tomcat: Build the full Tomcat package.
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
                   ` (5 preceding siblings ...)
  2019-05-04 22:41 ` [bug#35570] [PATCH 6/8] gnu: Add java-ecj in version 4.6.3 Björn Höfling
@ 2019-05-04 22:42 ` Björn Höfling
  2019-05-04 22:42 ` [bug#35570] [PATCH 8/8] gnu: java-tomcat: Update to 8.5.40 Björn Höfling
  2019-10-13 20:58 ` bug#35570: java-tomcat: Make it the full package Björn Höfling
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:42 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 4067 bytes --]


Currently java-tomcat uses the deploy build target. In that way, it is
built like a library, with only the jar files. This commit will change
the arget to deploy to build the full tomcat package.

* gnu/packages/web.scm (java-tomcat)[source]: Remove bat-files in
snippet. [inputs]: Remove java-eclipse-jdt-core, add
java-commons-daemon, java-ecj. [native-inputs]: Remove.
[arguments]: Use "deploy" build-target, add phases 'modify-deploy,
'symlink-commons-daemon,  'symlink-java-ecj, change 'install phase.
---
 gnu/packages/web.scm | 40 +++++++++++++++++++++++++++++++++++-----
 1 file changed, 35 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3d9070f169..cb9af0a781 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -5552,14 +5552,14 @@ encoder/decoder based on the draft-12
specification for UBJSON.") (snippet
                '(begin
                   (for-each delete-file (find-files "." "\\.jar$"))
+                  (for-each delete-file (find-files "." "\\.bat$"))
                   #t))))
     (build-system ant-build-system)
     (inputs
-     `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
-    (native-inputs
-     `(("java-junit" ,java-junit)))
+     `(("java-commons-daemon" ,java-commons-daemon)
+       ("java-ecj" ,java-ecj)))
     (arguments
-     `(#:build-target "package"
+     `(#:build-target "deploy"
        #:tests? #f; requires downloading some files.
        #:phases
        (modify-phases %standard-phases
@@ -5582,6 +5582,33 @@ encoder/decoder based on the draft-12
specification for UBJSON.") (("<filter token=\"VERSION_BUILT\"
value=.*") "<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00
UTC\"/>")) #t))
+         (add-after 'unpack 'modify-deploy
+           (lambda _
+             ;; The Tomcat build downloads and copies these files to
the
+             ;; bin and lib directory.
+             ;; We instead symlink to the input (see below).
+             (substitute* "build.xml"
+               (("<copy
tofile=\"\\$\\{tomcat.build\\}/bin/commons-daemon.jar.*") "")
+               (("<copy file=\"\\$\\{jdt.jar\\}\"
todir=\"\\$\\{tomcat.build\\}/lib\"/>") ""))
+             #t))
+         (add-after 'install 'symlink-commons-daemon
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((commons-daemon (assoc-ref inputs
"java-commons-daemon"))
+                    (files (find-files commons-daemon
"commons-daemon-.*\\.jar"))
+                    (daemon-jar (car files))
+                    (out-bin (string-append (assoc-ref outputs "out")
"/bin"))
+                    (target (string-append out-bin
"/commons-daemon.jar")))
+               (symlink daemon-jar target)
+               #t)))
+         (add-after 'install 'symlink-java-ecj
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((java-ecj (assoc-ref inputs "java-ecj"))
+                    (files (find-files java-ecj "ecj.*\\.jar"))
+                    (java-ecj-jar (car files))
+                    (out-lib (string-append (assoc-ref outputs "out")
"/lib"))
+                    (target (string-append out-lib "/java-ecj.jar")))
+               (symlink java-ecj-jar target)
+               #t)))
          (add-after 'unpack 'generate-properties
            (lambda _
              ;; This could have been passed to make-flags, but getcwd
returns @@ -5592,7 +5619,10 @@ encoder/decoder based on the draft-12
specification for UBJSON.") (string-append "base.path=" (getcwd)
"/downloads\n")))) #t))
          (replace 'install
-           (install-jars "output/build/lib")))))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (copy-recursively "output/build" out))
+             #t)))))
     (home-page "https://tomcat.apache.org")
     (synopsis "Java Servlet, JavaServer Pages, Java Expression
Language and Java WebSocket")
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [bug#35570] [PATCH 8/8] gnu: java-tomcat: Update to 8.5.40.
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
                   ` (6 preceding siblings ...)
  2019-05-04 22:42 ` [bug#35570] [PATCH 7/8] gnu: java-tomcat: Build the full Tomcat package Björn Höfling
@ 2019-05-04 22:42 ` Björn Höfling
  2019-10-13 20:58 ` bug#35570: java-tomcat: Make it the full package Björn Höfling
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-05-04 22:42 UTC (permalink / raw)
  To: 35570

[-- Attachment #1: Type: text/plain, Size: 1055 bytes --]


* gnu/packages/web.scm (java-tomcat): Update to 8.5.40.
---
 gnu/packages/web.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index cb9af0a781..2f1818dd3d 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -5539,14 +5539,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
 (define-public java-tomcat
   (package
     (name "java-tomcat")
-    (version "8.5.38")
+    (version "8.5.40")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
                                   version "/src/apache-tomcat-" version "-src.tar.gz"))
               (sha256
                (base32
-                "13pbsyk39g1qph82nngp54mqycmg60rxlxwy4yszsssahrqnggb2"))
+                "0isv1cya8iq6ijgg5sshpy3p4j4gs7708n559n9vzy20zbylnhi0"))
               (modules '((guix build utils)))
               ;; Delete bundled jars.
               (snippet
-- 
2.21.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#35570: java-tomcat: Make it the full package
  2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
                   ` (7 preceding siblings ...)
  2019-05-04 22:42 ` [bug#35570] [PATCH 8/8] gnu: java-tomcat: Update to 8.5.40 Björn Höfling
@ 2019-10-13 20:58 ` Björn Höfling
  8 siblings, 0 replies; 10+ messages in thread
From: Björn Höfling @ 2019-10-13 20:58 UTC (permalink / raw)
  To: 35570-done; +Cc: Gábor Boskovits

[-- Attachment #1: Type: text/plain, Size: 1315 bytes --]

On Sun, 5 May 2019 00:34:50 +0200
Björn Höfling <bjoern.hoefling@bjoernhoefling.de> wrote:

> The current java-tomcat package is only building the jar-files and
> uses Tomcat only as a servlet-api package. This patch series changes
> it to the "real" package with a bin, conf, ... directory.
> 
> If you have a CATALINA_BASE, i.e. a Tomcat instance directory with
> conf, log, webapps, you can start Tomcat like that:
> 
> CATALINA_BASE=/home/bjoern/guix/tmp/catalina-home /gnu/store/q5dqsiiwb665jfb6ckcfpw3ijgm4gyh7-java-tomcat-8.5.40/bin/startup.sh
> 
> And then navigate to http://localhost:8080/ to view your new site.
> 
> The standard Tomcat installation copies the commons-daemon.jar and the
> java-ecj.jar. We better use symlinks to the input package. But these
> would be overridden by a repacking phase: Thus, we need to modify the
> ant-build-system, placing this series into the staging branch.
> 
> What's finally outstanding is a tomcat-service.
> 
> Björn

Pushed to staging as

d99e7ee0f2bbe4abe08552afaa9821036da2a760

with an update to the latest 8.5.x Tomcat.

Thanks to Gábor for reviewing.

I will continue with getting Tomcat9 in (which needs some more/updated
dependencies) and I plan to write a service for Tomcat, if time admits
me to do so.

Björn

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-10-13 20:59 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-04 22:34 [bug#35570] java-tomcat: Make it the full package Björn Höfling
2019-05-04 22:37 ` [bug#35570] [PATCH 1/8] gnu: ant-build-system: Don't override symlinks Björn Höfling
2019-05-04 22:37 ` [bug#35570] [PATCH 2/8] gnu: java-javaee-servletapi: Don't use unstable tarball Björn Höfling
2019-05-04 22:38 ` [bug#35570] [PATCH 3/8] gnu: java-javaee-servletapi: Add properties-files to jar Björn Höfling
2019-05-04 22:39 ` [bug#35570] [PATCH 4/8] gnu: Remove dependencies on java-tomcat, use servlet API Björn Höfling
2019-05-04 22:41 ` [bug#35570] [PATCH 5/8] gnu: java-commons-daemon: Update to 1.1.0 Björn Höfling
2019-05-04 22:41 ` [bug#35570] [PATCH 6/8] gnu: Add java-ecj in version 4.6.3 Björn Höfling
2019-05-04 22:42 ` [bug#35570] [PATCH 7/8] gnu: java-tomcat: Build the full Tomcat package Björn Höfling
2019-05-04 22:42 ` [bug#35570] [PATCH 8/8] gnu: java-tomcat: Update to 8.5.40 Björn Höfling
2019-10-13 20:58 ` bug#35570: java-tomcat: Make it the full package Björn Höfling

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).