GNU bug report logs - #36605
[PATCH 0/2] Add pngquant

Previous Next

Package: guix-patches;

Reported by: Hartmut Goebel <h.goebel <at> crazy-compilers.com>

Date: Thu, 11 Jul 2019 20:25:01 UTC

Severity: normal

Tags: patch

Done: Hartmut Goebel <h.goebel <at> goebel-consult.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36605 in the body.
You can then email your comments to 36605 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:25:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Hartmut Goebel <h.goebel <at> crazy-compilers.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 11 Jul 2019 20:25:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: guix-patches <at> gnu.org
Subject: [PATCH 0/2] Add pngquant
Date: Thu, 11 Jul 2019 22:24:19 +0200
Add pngquant and libimagequant required by it.

Hartmut Goebel (2):
  gnu: Add libimagequant.
  gnu: Add pngquant.

 gnu/packages/image.scm | 68 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 67 insertions(+), 1 deletion(-)

-- 
2.21.0





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:27:02 GMT) Full text and rfc822 format available.

Message #8 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH v4] daemon: Set ownership of kept build directories to the
 calling user.
Date: Thu, 11 Jul 2019 22:26:09 +0200
Fixes <http://bugs.gnu.org/15890>.

* nix/libstore/globals.hh (Settings) Add clientUid and clientGid.
* nix/nix-daemon/nix-daemon.cc (daemonLoop] Store UID and GID of the
  caller in settings.
* nix/libstore/build.cc (_chown): New function.
  (DerivationGoal::deleteTmpDir): Use it, change ownership of build
  directory if it is kept and the new owner is not root.
---
 nix/libstore/build.cc        | 21 +++++++++++++++++++++
 nix/libstore/globals.hh      |  6 ++++++
 nix/nix-daemon/nix-daemon.cc | 12 ++++++++++++
 3 files changed, 39 insertions(+)

diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 889ee3d..e823001 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -2631,6 +2631,21 @@ void DerivationGoal::closeLogFile()
 }
 
 
+static void _chown(const Path & path, uid_t uid, gid_t gid)
+{
+    checkInterrupt();
+
+    if (lchown(path.c_str(), uid, gid) == -1) {
+	throw SysError(format("change owner and group of `%1%'") % path);
+    }
+    struct stat st = lstat(path);
+    if (S_ISDIR(st.st_mode)) {
+        for (auto & i : readDirectory(path))
+            _chown(path + "/" + i.name, uid, gid);
+    }
+}
+
+
 void DerivationGoal::deleteTmpDir(bool force)
 {
     if (tmpDir != "") {
@@ -2639,6 +2654,12 @@ void DerivationGoal::deleteTmpDir(bool force)
                 format("note: keeping build directory `%2%'")
                 % drvPath % tmpDir);
             chmod(tmpDir.c_str(), 0755);
+            // Change the ownership if clientUid is set. Never change the
+            // ownership or the group to "root" for security reasons.
+            if (settings.clientUid != (uid_t) -1 && settings.clientUid != 0) {
+                _chown(tmpDir, settings.clientUid,
+                       settings.clientGid != 0 ? settings.clientGid : -1);
+            }
         }
         else
             deletePath(tmpDir);
diff --git a/nix/libstore/globals.hh b/nix/libstore/globals.hh
index 8c07e36..7beb1a5 100644
--- a/nix/libstore/globals.hh
+++ b/nix/libstore/globals.hh
@@ -70,6 +70,12 @@ struct Settings {
        subgoal of the same goal) fails. */
     bool keepGoing;
 
+    /* User and groud id of the client issuing the build request.  Used to set
+       the owner and group of the kept temporary directories of failed
+       builds. */
+    uid_t clientUid;
+    gid_t clientGid;
+
     /* Whether, if we cannot realise the known closure corresponding
        to a derivation, we should try to normalise the derivation
        instead. */
diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc
index 682f9a2..47b67d5 100644
--- a/nix/nix-daemon/nix-daemon.cc
+++ b/nix/nix-daemon/nix-daemon.cc
@@ -960,6 +960,18 @@ static void daemonLoop()
                     strncpy(argvSaved[1], processName.c_str(), strlen(argvSaved[1]));
                 }
 
+#if defined(SO_PEERCRED)
+                /* Store the client's user and group for this connection. This
+                   has to be done in the forked process since it is per
+                   connection. */
+                settings.clientUid = cred.uid;
+                settings.clientGid = cred.gid;
+#else
+                /* Setting these to -1 means: do not change */
+                settings.clientUid = (uid_t) -1;
+                settings.clientGid = (gid_t) -1;
+#endif
+
                 /* Handle the connection. */
                 from.fd = remote;
                 to.fd = remote;
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:27:05 GMT) Full text and rfc822 format available.

Message #11 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH] gc: Add option --keep-going.
Date: Thu, 11 Jul 2019 22:26:10 +0200
* guix/scripts/gc.scm (show-help, %options): Add option -k/--keep-going.
  (guix-gc): Pass value off option --keep-going on to delete-paths.
* guix/store.scm (%protocol-version): Increment to 17.
  (delete-paths) New key-word parameter `keep-going?`, pass it on to
  run-rc.
  (run-gc): New key-word parameter `keep-going?`, send value of
  keep-going? to the daemon.
* nix/libstore/store-api.hh (GCOptions): Add boolean keepGoing.
* nix/libstore/worker-protocol.hh (PROTOCOL_VERSION) Increment to 17.
* nix/nix-daemon/nix-daemon.cc (performOp)[wopCollectGarbage] Read
  keepGoing.
* nix/libstore/gc.cc (LocalStore::collectGarbage) If keepGoing is true
  print an error message instead of throwing an error.
* doc/guix.texi (Invoking guix gc): Document option --keep-going.
---
 doc/guix.texi                   |  8 +++++++-
 guix/scripts/gc.scm             |  9 ++++++++-
 guix/store.scm                  | 12 ++++++++----
 nix/libstore/gc.cc              |  7 ++++++-
 nix/libstore/store-api.hh       |  3 +++
 nix/libstore/worker-protocol.hh |  2 +-
 nix/nix-daemon/nix-daemon.cc    |  2 ++
 7 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a3eba58..b8362d6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2098,7 +2098,13 @@ nothing and exit immediately.
 @itemx -d
 Attempt to delete all the store files and directories specified as
 arguments.  This fails if some of the files are not in the store, or if
-they are still live.
+they are still live (with behaviour can be changed with
+@option{--keep-going}).
+
+@item --keep-going
+@itemx -k
+Keep going when @option{--delete} is given and some of the store files
+and directories specified as arguments fail to re removed.
 
 @item --list-failures
 List store items corresponding to cached build failures.
diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm
index bdfee43..778e9a7 100644
--- a/guix/scripts/gc.scm
+++ b/guix/scripts/gc.scm
@@ -72,6 +72,9 @@ Invoke the garbage collector.\n"))
       --clear-failures   remove PATHS from the set of cached failures"))
   (newline)
   (display (_ "
+  -k, --keep-going       keep going when some of th pathes can not be deleted"))
+  (newline)
+  (display (_ "
   -h, --help             display this help and exit"))
   (display (_ "
   -V, --version          display version information and exit"))
@@ -107,6 +110,9 @@ Invoke the garbage collector.\n"))
                 (lambda (opt name arg result)
                   (alist-cons 'action 'delete
                               (alist-delete 'action result))))
+        (option '(#\k "keep-going") #f #f
+                (lambda (opt name arg result)
+                  (alist-cons 'keep-going? #t result)))
         (option '("optimize") #f #f
                 (lambda (opt name arg result)
                   (alist-cons 'action 'optimize
@@ -228,7 +234,8 @@ Invoke the garbage collector.\n"))
              (let-values (((paths freed) (collect-garbage store)))
               (info (_ "freed ~h bytes~%") freed))))))
         ((delete)
-         (delete-paths store (map direct-store-path paths)))
+         (delete-paths store (map direct-store-path paths)
+                       #:keep-going? (assoc-ref opts 'keep-going?)))
         ((list-references)
          (list-relatives references))
         ((list-requisites)
diff --git a/guix/store.scm b/guix/store.scm
index 2023875..4276db4 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -137,7 +137,7 @@
             direct-store-path
             log-file))
 
-(define %protocol-version #x110)
+(define %protocol-version #x111)
 
 (define %worker-magic-1 #x6e697863)               ; "nixc"
 (define %worker-magic-2 #x6478696f)               ; "dxio"
@@ -938,7 +938,7 @@ is not an atomic operation.)  When CHECK-CONTENTS? is true, check the contents
 of store items; this can take a lot of time."
       (not (verify store check-contents? repair?)))))
 
-(define (run-gc server action to-delete min-freed)
+(define* (run-gc server action to-delete min-freed #:key (keep-going? #f))
   "Perform the garbage-collector operation ACTION, one of the
 `gc-action' values.  When ACTION is `delete-specific', the TO-DELETE is
 the list of store paths to delete.  IGNORE-LIVENESS? should always be
@@ -956,6 +956,8 @@ and the number of bytes freed."
       ;; Obsolete `use-atime' and `max-atime' parameters.
       (write-int 0 s)
       (write-int 0 s))
+    (when (>= (nix-server-minor-version server) 17)
+      (write-arg boolean keep-going? s))
 
     ;; Loop until the server is done sending error output.
     (let loop ((done? (process-stderr server)))
@@ -993,12 +995,14 @@ then collect at least MIN-FREED bytes.  Return the paths that were
 collected, and the number of bytes freed."
   (run-gc server (gc-action delete-dead) '() min-freed))
 
-(define* (delete-paths server paths #:optional (min-freed (%long-long-max)))
+(define* (delete-paths server paths #:optional (min-freed (%long-long-max))
+                       #:key (keep-going? #f))
   "Delete PATHS from the store at SERVER, if they are no longer
 referenced.  If MIN-FREED is non-zero, then stop after at least
 MIN-FREED bytes have been collected.  Return the paths that were
 collected, and the number of bytes freed."
-  (run-gc server (gc-action delete-specific) paths min-freed))
+  (run-gc server (gc-action delete-specific) paths min-freed
+          #:keep-going? keep-going?))
 
 (define (import-paths server port)
   "Import the set of store paths read from PORT into SERVER's store.  An error
diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc
index 72eff52..6f2d8f7 100644
--- a/nix/libstore/gc.cc
+++ b/nix/libstore/gc.cc
@@ -662,8 +662,13 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results)
         foreach (PathSet::iterator, i, options.pathsToDelete) {
             assertStorePath(*i);
             tryToDelete(state, *i);
-            if (state.dead.find(*i) == state.dead.end())
+            if (state.dead.find(*i) == state.dead.end()) {
+              if (options.keepGoing) {
+                printMsg(lvlError, format("cannot delete path `%1%' since it is still alive") % *i);
+              } else {
                 throw Error(format("cannot delete path `%1%' since it is still alive") % *i);
+              }
+            }
         }
 
     } else if (options.maxFreed > 0) {
diff --git a/nix/libstore/store-api.hh b/nix/libstore/store-api.hh
index fa78d59..8b0f521 100644
--- a/nix/libstore/store-api.hh
+++ b/nix/libstore/store-api.hh
@@ -50,6 +50,9 @@ struct GCOptions
     /* Stop after at least `maxFreed' bytes have been freed. */
     unsigned long long maxFreed;
 
+    /* keep going even if some of the paths can not be collected */
+    bool keepGoing;
+
     GCOptions();
 };
 
diff --git a/nix/libstore/worker-protocol.hh b/nix/libstore/worker-protocol.hh
index 99c1ee2..8faf193 100644
--- a/nix/libstore/worker-protocol.hh
+++ b/nix/libstore/worker-protocol.hh
@@ -6,7 +6,7 @@ namespace nix {
 #define WORKER_MAGIC_1 0x6e697863
 #define WORKER_MAGIC_2 0x6478696f
 
-#define PROTOCOL_VERSION 0x110
+#define PROTOCOL_VERSION 0x111
 #define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00)
 #define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff)
 
diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc
index a1fce25..b04cece 100644
--- a/nix/nix-daemon/nix-daemon.cc
+++ b/nix/nix-daemon/nix-daemon.cc
@@ -526,6 +526,8 @@ static void performOp(bool trusted, unsigned int clientVersion,
             readInt(from);
             readInt(from);
         }
+        if (GET_PROTOCOL_MINOR(clientVersion) >= 17)
+	  options.keepGoing = readInt(from) != 0;
 
         GCResults results;
 
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:27:06 GMT) Full text and rfc822 format available.

Message #14 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add anonip.
Date: Thu, 11 Jul 2019 22:26:11 +0200
* gnu/packages/web.scm (anonip): New variable.
---
 gnu/packages/web.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 124cc93e68..386564206e 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2019 Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
 ;;; Copyright © 2019 Brendan Tildesley <mail <at> brendan.scot>
 ;;; Copyright © 2019 Alex Griffin <a <at> ajgrf.com>
+;;; Copyright © 2019 Hartmut Goebel <h.goebel <at> crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -6498,3 +6499,34 @@ update an existing mirrored site, and resume interrupted downloads.
 
 HTTrack is fully configurable, and has an integrated help system.")
     (license license:gpl3+)))
+
+(define-public anonip
+  (package
+    (name "anonip")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "anonip" version))
+              (sha256
+               (base32
+                "0ckn9nnfhpdnz8b92q8pkysdqj6pdh71ckfqvfj0z01cq0hzbhd2"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-3" ,python-3)))
+    (home-page
+     "https://github.com/DigitaleGesellschaft/Anonip")
+    (synopsis
+     "Anonymize IP-addresses in log-files")
+    (description
+     "Anonip masks the last bits of IPv4 and IPv6 addresses in log-files.
+That way most of the relevant information is preserved, while the IP-address
+does not match a particular individuum anymore.
+
+Depending on your webserver software, the log entries may directly get piped
+to Anonip or read via a FIFO (named pipe).  Thus the unmasked IP addresses
+will never be written to any file.
+
+It's also possible to rewrite existing log files.
+
+Anonip can also be uses as a Python module in your own Python application.")
+    (license license:bsd-3)))
-- 
2.13.7





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:27:06 GMT) Full text and rfc822 format available.

Message #17 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add dtrx.
Date: Thu, 11 Jul 2019 22:26:12 +0200
* gnu/packages/compression.scm (dtrx): New variable.
---
 gnu/packages/compression.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index ae6710b25..0d9a6bfcf 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2017 Stefan Reichör <stefan <at> xsteve.at>
 ;;; Copyright © 2017 Petter <petter <at> mykolab.ch>
 ;;; Copyright © 2017 Julien Lepiller <julien <at> lepiller.eu>
+;;; Copyright © 2018 Hartmut Goebel <h.goebel <at> crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,10 +54,12 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cpio)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages file)
   #:use-module (gnu packages java)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
@@ -2051,3 +2054,50 @@ faster by plzip, unless the @code{-b} option was used: lzip usually produces
 single-member files which can't be decompressed in parallel.")
     (license (list license:bsd-2        ; arg_parser.{cc,h}
                    license:gpl2+))))    ; everything else
+
+
+(define-public dtrx
+  (package
+    (name "dtrx")
+    (version "7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://brettcsmith.org/2007/"
+                           "dtrx/dtrx-" version ".tar.gz"))
+       (sha256
+        (base32 "15yf4n27zbhvv0byfv3i89wl5zn6jc2wbc69lk5a3m6rx54gx6hw"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2))
+    (inputs
+     `(("binutils" ,binutils) ; ar
+       ("bzip2" ,bzip2) ; bzcat
+       ("cabextract" ,cabextract)
+       ("cpio" ,cpio) ; cpio
+       ("gzip" ,gzip) ; zcat
+       ;; ("lha" ,lha) missing in guix
+       ("p7zip" ,p7zip) ; 7z
+       ("rpm" ,rpm) ; rpm2cpio
+       ("tar" ,tar)
+       ;; ("unrar" ,unrar) ; abandoned upstream
+       ("unshield" ,unshield)
+       ("unzip" ,unzip)
+       ("xz" ,xz))) ; lzcat, xzcat
+    (home-page "http://www.brettcsmith.org/2007/dtrx/")
+    (synopsis "Intelligently extract multiple archive types")
+    (description "@command{dtrx} extracts archives in a number of different
+formats, so you don't have to remember the flags for each archive command.
+Just use the same command for all your archive files, and they'll never
+frustrate you again.
+
+In addition to providing one command to handle many different archive types,
+@command{dtrx} also aids the user by extracting contents consistently.  By
+default, everything will be written to a dedicated directory that’s named
+after the archive.  dtrx will also change the permissions to ensure that the
+owner can read and write all those files.
+
+It currently supports tar, zip (including self-extracting .exe files), cpio,
+rpm, deb, gem, 7z, cab, rar, and InstallShield files.  It can also decompress
+files compressed with gzip, bzip2, lzma, xz, or compress.")
+    (license license:gpl3+)))
-- 
2.13.6





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:27:07 GMT) Full text and rfc822 format available.

Message #20 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add php-hello-world.
Date: Thu, 11 Jul 2019 22:26:13 +0200
* gnu/packages/php.scm (php-hello-world): New variable.
---
 gnu/packages/php.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 9ccbede..f860f88 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Julien Lepiller <julien <at> lepiller.eu>
 ;;; Copyright © 2016 Marius Bakke <mbakke <at> fastmail.com>
+;;; Copyright © 2016 Hartmut Goebel <h.goebel <at> crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,6 +49,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module ((guix licenses) #:prefix license:))
 
 ;; This fixes PHP bugs 73155 and 73159. Remove when gd
@@ -332,3 +334,38 @@ systems, web content management systems and web frameworks." )
               license:lgpl2.1+                              ; ext/bcmath/libbcmath
               license:bsd-2                                 ; ext/fileinfo/libmagic
               license:expat))))                             ; ext/date/lib
+
+(define-public php-hello-world
+  (package
+    (name "php-hello-world")
+    (version "0.1")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out       (assoc-ref %outputs "out"))
+                (php       (assoc-ref %build-inputs "php"))
+                (index.php (string-append out "/index.php")))
+           (mkdir-p out)
+           (call-with-output-file index.php
+             (lambda (p)
+               (format p "<html>
+ <head><title>PHP test page: Hello, Guix!</title></head>
+ <body>
+ <?php echo '<h1>Hello, Guix!</h1>'; ?>
+ <p>Today is: <?php echo date('Y-m-d'); ?></p>
+ </body>
+</html>~%")))
+           (chmod index.php #o555)))))
+    (inputs
+     `(("php" ,php)))
+    (synopsis "Hello, PHP world: An example PHP package")
+    (description
+     "PHP Hello World creates a simple HTML page saying \"Hello, Guix!\" and
+the current date.  It serves as an example to be used in Guix PHP packages or
+services.")
+    (home-page "http://php.net/manual/en/tutorial.firstpage.php")
+    (license license:gpl3+)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:27:07 GMT) Full text and rfc822 format available.

Message #23 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add python-gunicorn and python2-gunicorn.
Date: Thu, 11 Jul 2019 22:26:14 +0200
* gnu/packages/web.scm (python-gunicorn, python2-gunicorn): New
  variables.
---
 gnu/packages/web.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 20c7d12..e639d28 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3633,3 +3633,51 @@ provides a unix command line interface to a variety of popular www search engine
 and similar services.")
     (home-page "https://surfraw.alioth.debian.org/")
     (license l:public-domain)))
+
+(define-public python-gunicorn
+  (package
+    (name "python-gunicorn")
+    (version "19.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "gunicorn" version))
+       (sha256
+        (base32
+         "065n5z91607q4l8wncqkz297cdcb60cz8wnyxy88wk4as4b6jgw1"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'remove-requirements
+           ; setup.py reads test-requirements from a file which is
+           ; pinning to other versions then guix provides. This also
+           ; enforces optional packages like pytst-cov. So clean the
+           ; list.
+           (lambda _
+             (substitute* "requirements_test.txt"
+               ((".*") "")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ;("python-pytest-cov" ,python-pytest-cov) ; optional
+       ("python-setuptools" ,python-setuptools)))
+    (home-page "http://gunicorn.org/")
+    (synopsis "Python WSGI HTTP Server for UNIX")
+    (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
+Server for UNIX.  It’s a pre-fork worker model ported from Ruby’s
+Unicorn project.  The Gunicorn server is broadly compatible with
+various web frameworks, simply implemented, light on server resources,
+and fairly speedy.")
+  (license license:expat)
+  (properties `((python2-variant . ,(delay python2-gunicorn))))))
+
+(define-public python2-gunicorn
+  (let ((base (package-with-python2
+               (strip-python2-variant python-gunicorn))))
+    ; Note: byte-compiling gunicorn/workers/_gaiohttp.py with Python 2
+    ; fails, but this module will be available for Python 3 only
+    ; anyway.
+    (package
+      (inherit base)
+      (native-inputs `(("python2-mock" ,python2-mock)
+                       ,@(package-native-inputs base))))))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:27:08 GMT) Full text and rfc822 format available.

Message #26 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 0/2] Updated patches for gunicorn
Date: Thu, 11 Jul 2019 22:26:15 +0200
As discussed, I updated some comments. Additionally I added building teh
documentation (2nd patch).

Hartmut Goebel (2):
  gnu: Add gunicorn and gunicorn-python2.
  gnu: Build documentation for gunicorn and gunicorn-python2.

 gnu/packages/web.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)

-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:01 GMT) Full text and rfc822 format available.

Message #29 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 1/2] gnu: Add gunicorn and gunicorn-python2.
Date: Thu, 11 Jul 2019 22:26:16 +0200
* gnu/packages/web.scm (gunicorn, gunicorn-python2): New variables.
---
 gnu/packages/web.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b9c201d..3841c6b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben <at> gmail.com>
 ;;; Copyright © 2016 Clément Lassieur <clement <at> lassieur.org>
 ;;; Copyright © 2016 ng0 <ng0 <at> we.make.ritual.n0.is>
+;;; Copyright © 2016 Hartmut Goebel <g.goebel <at> crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system r)
   #:use-module (guix build-system trivial)
@@ -3633,3 +3635,56 @@ provides a unix command line interface to a variety of popular www search engine
 and similar services.")
     (home-page "https://surfraw.alioth.debian.org/")
     (license l:public-domain)))
+
+(define-public gunicorn
+  (package
+    (name "gunicorn")
+    (version "19.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "gunicorn" version))
+       (sha256
+        (base32
+         "065n5z91607q4l8wncqkz297cdcb60cz8wnyxy88wk4as4b6jgw1"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'remove-requirements
+           ; setup.py reads test-requirements from a file which is
+           ; pinning to other versions then guix provides. This also
+           ; enforces optional packages like pytst-cov. So clean the
+           ; list.
+           (lambda _
+             (substitute* "requirements_test.txt"
+               ((".*") "")))))))
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)
+       ; optional test-requirement pytest-cov used only when running
+       ; setup.y with `test --cov`
+       ("python-pytest" ,python-pytest)))
+    (home-page "http://gunicorn.org/")
+    (synopsis "Python WSGI HTTP Server for UNIX")
+    (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
+Server for UNIX.  It’s a pre-fork worker model ported from Ruby’s
+Unicorn project.  The Gunicorn server is broadly compatible with
+various web frameworks, simply implemented, light on server resources,
+and fairly speedy.")
+  (license l:expat)
+  (properties `((python2-variant . ,(delay gunicorn-python2))))))
+
+(define-public gunicorn-python2
+  (let ((base (package-with-python2
+               (strip-python2-variant gunicorn))))
+    ; Note: byte-compiling gunicorn/workers/_gaiohttp.py with Python 2 raises
+    ; a syntax error, since this is a Python-3-only module. This does not
+    ; matter since that module is not imported in Python 2 anyway.
+    (package
+      (inherit base)
+      (name "gunicorn-python2")
+      (description (string-append (package-description base) "
+
+Use this package if your application is implemented in Python 2."))
+      (native-inputs `(("python2-mock" ,python2-mock)
+                       ,@(package-native-inputs base))))))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:02 GMT) Full text and rfc822 format available.

Message #32 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 2/2] gnu: Build documentation for gunicorn and
 gunicorn-python2.
Date: Thu, 11 Jul 2019 22:26:17 +0200
* gnu/packages/web.scm (gunicorn): Add build and install documentation
  (html, info, examples).
---
 gnu/packages/web.scm | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3841c6b..e04cce0 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3648,6 +3648,7 @@ and similar services.")
         (base32
          "065n5z91607q4l8wncqkz297cdcb60cz8wnyxy88wk4as4b6jgw1"))))
     (build-system python-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -3658,12 +3659,36 @@ and similar services.")
            ; list.
            (lambda _
              (substitute* "requirements_test.txt"
-               ((".*") "")))))))
+               ((".*") ""))))
+         (add-after 'build 'build-doc
+           (lambda _
+             (zero? (system* "make" "-C" "docs" "PAPER=a4"
+                             "html" "info"))
+             (delete-file "docs/build/texinfo/Makefile")
+             (delete-file "docs/build/texinfo/Gunicorn.texi")))
+        (add-after 'install 'install-doc
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((doc (string-append (assoc-ref outputs "doc")
+                                       "/share/doc/" ,name "-" ,version))
+                   (html (string-append doc "/html"))
+                   (info (string-append doc "/info"))
+                   (examples (string-append doc "/examples")))
+              (mkdir-p html)
+              (mkdir-p info)
+              (mkdir-p examples)
+              (copy-recursively "docs/build/html" html)
+              (copy-recursively "docs/build/texinfo" info)
+              (copy-recursively "examples" examples)
+              (for-each (lambda (file)
+                          (copy-file file (string-append doc "/" file)))
+                        '("README.rst" "NOTICE" "LICENSE" "THANKS"))))))))
     (native-inputs
      `(("python-setuptools" ,python-setuptools)
        ; optional test-requirement pytest-cov used only when running
        ; setup.y with `test --cov`
-       ("python-pytest" ,python-pytest)))
+       ("python-pytest" ,python-pytest)
+       ("python-sphinx" ,python-sphinx)
+       ("texinfo" ,texinfo)))
     (home-page "http://gunicorn.org/")
     (synopsis "Python WSGI HTTP Server for UNIX")
     (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:03 GMT) Full text and rfc822 format available.

Message #35 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 0/3] Emhancements to the ant-build-system
Date: Thu, 11 Jul 2019 22:26:18 +0200
Enclosed please find two minor enhancments to the ant-build-system and a
small clean-up resulting from these.

Hartmut Goebel (3):
  guix: ant-build-system: put dummy project-name into default build.xml.
  guix: ant-build-system: add empty `tests` target to default build.xml.
  gnu: Remove now useless #:tests? #f from java-packages.

 gnu/packages/java.scm           | 7 ++-----
 guix/build/ant-build-system.scm | 4 +++-
 2 files changed, 5 insertions(+), 6 deletions(-)

-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:03 GMT) Full text and rfc822 format available.

Message #38 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 1/3] guix: ant-build-system: put dummy project-name into
 default build.xml.
Date: Thu, 11 Jul 2019 22:26:19 +0200
Without this, ant reported error messages like
Target "tests" does not exist in the project "null".
Simple using the jar-name is a good compromise.

* guix/build/ant-build-system.scm (default-build.xml): Add attribute
  to sxml expression.
---
 guix/build/ant-build-system.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index 00a4a46..fe7bae5 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -40,7 +40,8 @@
   (call-with-output-file "build.xml"
     (lambda (port)
       (sxml->xml
-       `(project (@ (basedir "."))
+       `(project (@ (basedir ".")
+                    (name ,jar-name))
                  (property (@ (name "classes.dir")
                               (value "${basedir}/build/classes")))
                  (property (@ (name "jar.dir")
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:04 GMT) Full text and rfc822 format available.

Message #41 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 2/3] guix: ant-build-system: add empty `tests` target to
 default build.xml.
Date: Thu, 11 Jul 2019 22:26:20 +0200
This avoids the need to set #:tests? #f whenever using #:jar-name
(and thus using the default build.xml).

* guix/build/ant-build-system.scm (default-build.xml): Add attribute
  to sxml expression.
---
 guix/build/ant-build-system.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index fe7bae5..2cc6bb9 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -70,6 +70,7 @@
                                (arg (@ (line ,(string-append "-cf ${jar.dir}/" jar-name
                                                              " -C ${classes.dir} ."))))))
 
+                 (target (@ (name "tests")))
                  (target (@ (name "install"))
                          (copy (@ (todir "${dist.dir}"))
                                (fileset (@ (dir "${jar.dir}"))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:04 GMT) Full text and rfc822 format available.

Message #44 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 3/3] gnu: Remove now useless #:tests? #f from java-packages.
Date: Thu, 11 Jul 2019 22:26:21 +0200
With the last commit, when #:jar-name is given, a dummy test-target
always exists.

* gnu/packages/java.scm (java-junit, java-swt, java-xz): Remove
  build-argument `#:tests?'.
---
 gnu/packages/java.scm | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 7387235..e8d09dd 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -84,7 +84,6 @@
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "swt.jar"
-       #:tests? #f ; no "check" target
        #:phases
        (modify-phases %standard-phases
          (replace 'unpack
@@ -1054,8 +1053,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
        "0x6vn9dp9kxk83x2fp3394n95dk8fx9yg8jns9371iqsn0vy8ih1"))))
    (build-system ant-build-system)
    (arguments
-    `(#:tests? #f ; There are no tests to run.
-      #:jar-name ,(string-append "xz-" version  ".jar")
+    `(#:jar-name ,(string-append "xz-" version  ".jar")
       #:phases
       (modify-phases %standard-phases
         ;; The unpack phase enters the "maven" directory by accident.
@@ -1248,8 +1246,7 @@ testing frameworks, mocking libraries and UI validation rules.")
                   #t))))
     (build-system ant-build-system)
     (arguments
-     `(#:tests? #f ; no tests
-       #:jar-name "junit.jar"))
+     `(#:jar-name "junit.jar"))
     (inputs
      `(("java-hamcrest-core" ,java-hamcrest-core)))
     (home-page "http://junit.org/")
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:05 GMT) Full text and rfc822 format available.

Message #47 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 00/12] Java build-system and some packages
Date: Thu, 11 Jul 2019 22:26:22 +0200
Enclosed please find some enhancemnets to the java/ant build-system and some
java packages.

For the changes to the build-systm I'd apprechiate ideas for better code.
There also is room for improovements, e.g. adding both a "test" (unsing junit)
and a "javadoc" target to the default build.xml. (I will noit implement this,
I'm done with Java).

Regarding the packages: Only very few packages have build.xml for ant. For the
others I'm only using a default build.xml to get the jar build. So not tests
nor javadocs. IMO it is important to have the java packages available at all.
After the enhancements described above are implemented, this should be fixed.

Hartmut Goebel (12):
  guix: ant-bulild-sytem: allow specifying the source directory.
  guix: ant-build-system: use abs path as basedir
  guix: Add java-utils.
  gnu: Add java-plexus-utils.
  gnu: Add java-plexus-interpolation.
  gnu: Add java-commons-cli.
  gnu: Add java-commons-codec.
  gnu: Add java-commons-daemon.
  gnu: Add java-commons-io.
  gnu: Add java-commons-lang.
  gnu: Add java-commons-lang3.
  gnu: Add java-commons-bcel.

 Makefile.am                     |   1 +
 doc/guix.texi                   |   3 +-
 gnu/packages/java.scm           | 332 ++++++++++++++++++++++++++++++++++++++++
 guix/build-system/ant.scm       |   4 +
 guix/build/ant-build-system.scm |  10 +-
 guix/build/java-utils.scm       |  52 +++++++
 6 files changed, 396 insertions(+), 6 deletions(-)
 create mode 100644 guix/build/java-utils.scm

-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:05 GMT) Full text and rfc822 format available.

Message #50 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 01/12] guix: ant-bulild-sytem: allow specifying the source
 directory.
Date: Thu, 11 Jul 2019 22:26:23 +0200
* guix/build-system/ant.scm (ant-build) Add parameter src-dir.
* guix/build/ant-build-system.scm (default-build.xml): New parameter src-dir.
  (configure): pass src-dir on to default-build.xml.
* doc/guix.texi (Build Systems): Add description.
---
 doc/guix.texi                   | 3 ++-
 guix/build-system/ant.scm       | 2 ++
 guix/build/ant-build-system.scm | 8 ++++----
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index b6ca34a..19c70ad 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2956,7 +2956,8 @@ parameters, respectively.
 When the original package does not provide a suitable Ant build file,
 the parameter @code{#:jar-name} can be used to generate a minimal Ant
 build file @file{build.xml} with tasks to build the specified jar
-archive.
+archive.  In this case the parameter @code{#:src-dir} can be used to
+specify the source sub-directory, defaulting to ``src''.
 
 The parameter @code{#:build-target} can be used to specify the Ant task
 that should be run during the @code{build} phase.  By default the
diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index 550f92b..cd544ad 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -98,6 +98,7 @@
                     (make-flags ''())
                     (build-target "jar")
                     (jar-name #f)
+                    (src-dir "src")
                     (phases '(@ (guix build ant-build-system)
                                 %standard-phases))
                     (outputs '("out"))
@@ -126,6 +127,7 @@
                   #:test-target ,test-target
                   #:build-target ,build-target
                   #:jar-name ,jar-name
+                  #:src-dir ,src-dir
                   #:phases ,phases
                   #:outputs %outputs
                   #:search-paths ',(map search-path-specification->sexp
diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index 2cc6bb9..651150d 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -35,7 +35,7 @@
 ;;
 ;; Code:
 
-(define (default-build.xml jar-name prefix)
+(define (default-build.xml src-dir jar-name prefix)
   "Create a simple build.xml with standard targets for Ant."
   (call-with-output-file "build.xml"
     (lambda (port)
@@ -59,7 +59,7 @@
                  (target (@ (name "compile"))
                          (mkdir (@ (dir "${classes.dir}")))
                          (javac (@ (includeantruntime "false")
-                                   (srcdir "src")
+                                   (srcdir ,src-dir)
                                    (destdir "${classes.dir}")
                                    (classpath (@ (refid "classpath"))))))
 
@@ -100,9 +100,9 @@ to the default GNU unpack strategy."
       ((assq-ref gnu:%standard-phases 'unpack) #:source source)))
 
 (define* (configure #:key inputs outputs (jar-name #f)
-                    #:allow-other-keys)
+                    (src-dir "src") #:allow-other-keys)
   (when jar-name
-    (default-build.xml jar-name
+    (default-build.xml src-dir jar-name
                        (string-append (assoc-ref outputs "out")
                                       "/share/java")))
   (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:06 GMT) Full text and rfc822 format available.

Message #53 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 02/12] guix: ant-build-system: use abs path as basedir
Date: Thu, 11 Jul 2019 22:26:24 +0200
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 | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index 651150d..f28182a 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -35,12 +35,12 @@
 ;;
 ;; Code:
 
-(define (default-build.xml src-dir jar-name prefix)
+(define (default-build.xml base-dir src-dir jar-name prefix)
   "Create a simple build.xml with standard targets for Ant."
   (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")))
@@ -102,7 +102,7 @@ to the default GNU unpack strategy."
 (define* (configure #:key inputs outputs (jar-name #f)
                     (src-dir "src") #:allow-other-keys)
   (when jar-name
-    (default-build.xml src-dir jar-name
+    (default-build.xml (getcwd) src-dir jar-name
                        (string-append (assoc-ref outputs "out")
                                       "/share/java")))
   (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:06 GMT) Full text and rfc822 format available.

Message #56 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 03/12] guix: Add java-utils.
Date: Thu, 11 Jul 2019 22:26:25 +0200
* guix/build/java-utils.scm: New file.
* guix/build-system/ant.scm: Use it.
* Makefile.am (MODULES): Add it.
---
 Makefile.am               |  1 +
 guix/build-system/ant.scm |  2 ++
 guix/build/java-utils.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+)
 create mode 100644 guix/build/java-utils.scm

diff --git a/Makefile.am b/Makefile.am
index 1a34e0d..c711e48 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -86,6 +86,7 @@ MODULES =					\
   guix/build/emacs-build-system.scm		\
   guix/build/git.scm				\
   guix/build/hg.scm				\
+  guix/build/java-utils.scm			\
   guix/build/glib-or-gtk-build-system.scm	\
   guix/build/gnu-build-system.scm		\
   guix/build/gnu-dist.scm			\
diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index cd544ad..b98a651 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -39,6 +39,7 @@
 (define %ant-build-system-modules
   ;; Build-side modules imported by default.
   `((guix build ant-build-system)
+    (guix build java-utils)
     (guix build syscalls)
     ,@%gnu-build-system-modules))
 
@@ -107,6 +108,7 @@
                     (guile #f)
                     (imported-modules %ant-build-system-modules)
                     (modules '((guix build ant-build-system)
+                               (guix build java-utils)
                                (guix build utils))))
   "Build SOURCE with INPUTS."
   (define builder
diff --git a/guix/build/java-utils.scm b/guix/build/java-utils.scm
new file mode 100644
index 0000000..1ca5b3d
--- /dev/null
+++ b/guix/build/java-utils.scm
@@ -0,0 +1,52 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Hartmut Goebel <h.goebel <at> crazy-compilers.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+
+(define-module (guix build java-utils)
+  #:use-module (guix build utils)
+  #:export (ant-build-javadoc
+            install-jars
+            install-javadoc))
+
+(define (package-name-version store-dir)
+  ; copied from haskell-build-system.scm - seeking for a more general solution
+  "Given a store directory STORE-DIR return 'name-version' of the package."
+  (let* ((base (basename store-dir)))
+    (string-drop base
+                 (+ 1 (string-index base #\-)))))
+
+(define* (ant-build-javadoc #:key (target "javadoc") (make-flags '())
+                            #:allow-other-keys)
+  (zero? (apply system* `("ant" ,target ,@make-flags))))
+
+(define* (install-jars jars-dir)
+  "Helper for the case the build.xml does not include an install target."
+  (lambda* (#:key outputs #:allow-other-keys)
+    (let ((share (string-append (assoc-ref outputs "out")
+                                "/share/java")))
+      (for-each (lambda (f) (install-file f share))
+                (find-files jars-dir "\\.jar$")))))
+
+(define* (install-javadoc apidocs-dir)
+  "Helper to install the javadocs."
+  (lambda* (#:key outputs #:allow-other-keys)
+    (let* ((out (assoc-ref outputs "out"))
+           (docs (string-append (assoc-ref outputs "doc")
+                                "/share/doc/" (package-name-version out) "/")))
+      (mkdir-p docs)
+      (copy-recursively apidocs-dir docs))))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:07 GMT) Full text and rfc822 format available.

Message #59 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 04/12] gnu: Add java-plexus-utils.
Date: Thu, 11 Jul 2019 22:26:26 +0200
* gnu/packages/java.scm (codehaus-plexus-url): New function.
  (java-plexus-utils): New variable.
---
 gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e8d09dd..0dfd9fa 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1256,3 +1256,35 @@ testing frameworks, mocking libraries and UI validation rules.")
 JUnit provides assertions for testing expected results, test fixtures for
 sharing common test data, and test runners for running tests.")
     (license license:epl1.0)))
+
+;
+; codehaus plexus
+;
+
+(define* (codehaus-plexus-url projname version)
+  (let ((projname (string-append "plexus-" projname)))
+    (string-append "https://github.com/codehaus-plexus/" projname
+                   "/archive/" projname "-" version ".tar.gz")))
+
+(define-public java-plexus-utils
+  (package
+    (name "java-plexus-utils")
+    (version "3.0.24")
+    (source (origin
+      (method url-fetch)
+      (uri (codehaus-plexus-url "utils" version))
+      (sha256
+       (base32 "1mlwpc6fms24slygv5yvi6fi9hcha2fh0v73p5znpi78bg36i2js"))))
+    (build-system ant-build-system)
+    ; todo: javadoc
+    (arguments
+     `(#:tests? #f ; todo: tests
+       #:jar-name (string-append "plexus-utils-" ,version ".jar")
+       #:src-dir "src/main"))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://codehaus-plexus.github.io/plexus-utils/")
+    (synopsis "Common utilities for the Plexus framework")
+    (description "Various Java utility classes to ease working with strings,
+files, command lines, XML and more.")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:07 GMT) Full text and rfc822 format available.

Message #62 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 05/12] gnu: Add java-plexus-interpolation.
Date: Thu, 11 Jul 2019 22:26:27 +0200
* gnu/packages/java.scm (java-plexus-interplation): New variable.
---
 gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0dfd9fa..3687c7e 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1288,3 +1288,31 @@ sharing common test data, and test runners for running tests.")
     (description "Various Java utility classes to ease working with strings,
 files, command lines, XML and more.")
     (license license:asl2.0)))
+
+(define-public java-plexus-interpolation
+  (package
+    (name "java-plexus-interpolation")
+    (version "1.23")
+    (source (origin
+      (method url-fetch)
+      (uri (codehaus-plexus-url "interpolation" version))
+      (sha256 (base32 "1w79ljwk42ymrgy8kqxq4l82pgdj6287gabpfnpkyzbrnclsnfrp"))))
+    (build-system ant-build-system)
+    ; todo: javadoc
+    (arguments
+     `(#:tests? #f ; todo: tests
+       #:jar-name (string-append "plexus-interpolation-" ,version ".jar")
+       #:src-dir "src/main"))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://codehaus-plexus.github.io/plexus-interpolation/")
+    (synopsis "Java components for interpolating ${} strings and the like")
+    (description "Plexus interpolator is the outgrowth of multiple iterations
+of development focused on providing a more modular, flexible interpolation
+framework for the expression language style commonly seen in Maven, Plexus,
+and other related projects.
+
+It has its foundation in the org.codehaus.plexus.utils.interpolation package
+within plexus-utils, but has been separated in order to allow these two
+libraries to vary independently of one another.")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:08 GMT) Full text and rfc822 format available.

Message #65 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 06/12] gnu: Add java-commons-cli.
Date: Thu, 11 Jul 2019 22:26:28 +0200
* gnu/packages/java.scm (appache-commons-url): New function.
  (java-commons-cli): New variable.
---
 gnu/packages/java.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 3687c7e..a83423d 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1316,3 +1316,51 @@ It has its foundation in the org.codehaus.plexus.utils.interpolation package
 within plexus-utils, but has been separated in order to allow these two
 libraries to vary independently of one another.")
     (license license:asl2.0)))
+
+;
+; apache commons
+;
+
+(define* (apache-commons-url projname version
+                             #:optional (basename
+                                         (string-append "commons-" projname)))
+  (string-append "mirror://apache/commons/" projname "/source/"
+                 basename "-" version "-src.tar.gz"))
+
+(define-public java-commons-cli
+  (package
+    (name "java-commons-cli")
+    (version "1.3.1")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "cli" version))
+      (sha256 (base32 "1fkjn552i12vp3xxk21ws4p70fi0lyjm004vzxsdaz7gdpgyxxyl"))))
+    (build-system ant-build-system)
+    ; todo: javadoc
+    (arguments
+     ; commons-cli does not provida a proper build.xml but seems to require
+     ; maven for building
+     `(#:jar-name (string-append "commons-cli-" ,version ".jar")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'check))))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://commons.apache.org/cli/")
+    (synopsis "Command line arguments and options parsing library")
+    (description "The Apache Commons CLI library provides an API for parsing
+command line options passed to programs.  It's also able to print help messages
+detailing the options available for a command line tool.
+
+Commons CLI supports different types of options:
+
+@itemize
+@item POSIX like options (ie. tar -zxvf foo.tar.gz)
+@item GNU like long options (ie. du --human-readable --max-depth=1)
+@item Java like properties (ie. java -Djava.awt.headless=true Foo)
+@item Short options with value attached (ie. gcc -O2 foo.c)
+@item long options with single hyphen (ie. ant -projecthelp)
+@end itemize
+
+This is a part of the Apache Commons Project.")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:08 GMT) Full text and rfc822 format available.

Message #68 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 07/12] gnu: Add java-commons-codec.
Date: Thu, 11 Jul 2019 22:26:29 +0200
* gnu/packages/java.scm (java-commons-codec): New variable.
---
 gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index a83423d..a5d3a25 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1364,3 +1364,35 @@ Commons CLI supports different types of options:
 
 This is a part of the Apache Commons Project.")
     (license license:asl2.0)))
+
+(define-public java-commons-codec
+  (package
+    (name "java-commons-codec")
+    (version "1.10")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "codec" version))
+      (sha256 (base32 "1w9qg30y4s0x8gnmr2fgj4lyplfn788jqxbcz27lf5kbr6n8xr65"))))
+    (build-system ant-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     ; commons-cli does not provida a proper build.xml but seems to require
+     ; maven for building
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'check) ; todo: need to pass junit to classpath
+         (add-after 'build 'build-javadoc ant-build-javadoc)
+         (replace 'install (install-jars "dist"))
+         (add-after 'install 'install-doc (install-javadoc "dist/docs/api")))))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://commons.apache.org/codec/")
+    (synopsis "Common encoders and decoders such as Base64, Hex, Phonetic and URLs")
+    (description "The codec package contains simple encoder and decoders for
+various formats such as Base64 and Hexadecimal.  In addition to these widely
+used encoders and decoders, the codec package also maintains a collection of
+phonetic encoding utilities.
+
+This is a part of the Apache Commons Project.")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:09 GMT) Full text and rfc822 format available.

Message #71 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 08/12] gnu: Add java-commons-daemon.
Date: Thu, 11 Jul 2019 22:26:30 +0200
* gnu/packages/java.scm (java-commons-daemon): New variable.
---
 gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index a5d3a25..e200296 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1396,3 +1396,35 @@ phonetic encoding utilities.
 
 This is a part of the Apache Commons Project.")
     (license license:asl2.0)))
+
+(define-public java-commons-daemon ; build, todo: verify results
+  (package    (name "java-commons-daemon")
+    (version "1.0.15")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "daemon" version))
+      (sha256
+       (base32 "0ci46kq8jpz084ccwq0mmkahcgsmh20ziclp2jf5i0djqv95gvhi"))))
+    (build-system ant-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-javadoc ant-build-javadoc)
+         (replace 'install (install-jars "dist"))
+         (add-after 'install 'install-doc (install-javadoc "dist/docs/api")))))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://commons.apache.org/daemon/")
+    (synopsis "Library to launch Java applications as daemons")
+    (description "The Daemon package from Apache Commons can be used to
+implement Java applications which can be launched as daemons.  For example the
+program will be notified about a shutdown so that it can perform cleanup tasks
+before its process of execution is destroyed by the operation system.
+
+This package contains the java library.  You will also need the actual binary
+for your architecture which is provided by the jsvc package.
+
+This is a part of the Apache Commons Project.")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:09 GMT) Full text and rfc822 format available.

Message #74 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 09/12] gnu: Add java-commons-io.
Date: Thu, 11 Jul 2019 22:26:31 +0200
* gnu/packages/java.scm (java-commons-io): New variable.
---
 gnu/packages/java.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e200296..3af8cd0 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1428,3 +1428,45 @@ for your architecture which is provided by the jsvc package.
 
 This is a part of the Apache Commons Project.")
     (license license:asl2.0)))
+
+(define-public java-commons-io
+  (package
+    (name "java-commons-io")
+    (version "2.5")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "io" version))
+      (sha256 (base32 "0q5y41jrcjvx9hzs47x5kdhnasdy6rm4bzqd2jxl02w717m7a7v3"))))
+    (build-system ant-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'symlink-junit.jar
+           (lambda* (#:key source #:allow-other-keys)
+             ; the existance of this file is taken as indicator whether test
+             ; dependencis will to be downloaded.
+             (let ((junit (assoc-ref inputs "java-junit"))
+                   (junit-version "4.12")) ; from build.xml
+               (mkdir-p "lib")
+               (symlink (string-append junit "/share/java/junit.jar")
+                        (string-append "lib/junit-" junit-version ".jar")))))
+         (add-after 'build 'build-javadoc ant-build-javadoc)
+         (add-after 'configure 'patch-build.xml
+           (lambda* _
+             (substitute* "build.xml"
+               ; set current year to a fixed value, you may want to update
+               ; this when updating the package version
+               (("<format property=\"current.year\"[^>]+>")
+                "<format property=\"current.year\" pattern=\"2016\"/>"))))
+         (replace 'install (install-jars "target"))
+         (add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://commons.apache.org/io/")
+    (synopsis "Common useful IO related classes")
+    (description "Commons-IO contains utility classes, stream implementations,
+file filters and endian classes.")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:10 GMT) Full text and rfc822 format available.

Message #77 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 10/12] gnu: Add java-commons-lang.
Date: Thu, 11 Jul 2019 22:26:32 +0200
* gnu/packages/java.scm (java-commons-lang): New variables.
---
 gnu/packages/java.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 3af8cd0..5a90d05 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1470,3 +1470,51 @@ This is a part of the Apache Commons Project.")
     (description "Commons-IO contains utility classes, stream implementations,
 file filters and endian classes.")
     (license license:asl2.0)))
+
+(define-public java-commons-lang
+  (package
+    (name "java-commons-lang")
+    (version "2.6")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "lang" version))
+      (sha256 (base32 "1mxwagqadzx1b2al7i0z1v0r235aj2njdyijf02szq0vhmqrfiq5"))))
+    (build-system ant-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-javadoc ant-build-javadoc)
+         (add-before 'check 'fix-test-framework
+           (lambda _
+             ;; disable a failing test
+             (substitute* "src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java"
+               (("public void testFormat\\(\\)")
+                "public void disabled_testFormat()"))
+             #t))
+         (replace 'install (install-jars "target"))
+         (add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://commons.apache.org/lang/")
+    (synopsis "Extension of the java.lang package")
+    (description "The Commons Lang components contains a set of Java classes
+that provide helper methods for standard Java classes, especially those found
+in the java.lang package in the Sun JDK.  The following classes are included:
+
+ * StringUtils - Helper for java.lang.String.
+ * CharSetUtils - Methods for dealing with CharSets, which are sets of
+   characters such as [a-z] and [abcdez].
+ * RandomStringUtils - Helper for creating randomised Strings.
+ * NumberUtils - Helper for java.lang.Number and its subclasses.
+ * NumberRange - A range of numbers with an upper and lower bound.
+ * ObjectUtils - Helper for java.lang.Object.
+ * SerializationUtils - Helper for serializing Objects.
+ * SystemUtils - Utility class defining the Java system properties.
+ * NestedException package - A sub-package for the creation of nested
+   exceptions.
+ * Enum package - A sub-package for the creation of enumerated types.
+ * Builder package - A sub-package for the creation of equals, hashCode,
+   compareTo and toString methods.")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:10 GMT) Full text and rfc822 format available.

Message #80 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 11/12] gnu: Add java-commons-lang3.
Date: Thu, 11 Jul 2019 22:26:33 +0200
* gnu/packages/java.scm (java-commons-lang3): New variable.
---
 gnu/packages/java.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 5a90d05..b7971a3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1518,3 +1518,55 @@ in the java.lang package in the Sun JDK.  The following classes are included:
  * Builder package - A sub-package for the creation of equals, hashCode,
    compareTo and toString methods.")
     (license license:asl2.0)))
+
+(define-public java-commons-lang3
+  (package
+    (name "java-commons-lang3")
+    (version "3.4")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "lang" version "commons-lang3"))
+      (sha256
+       (base32 "0xpshb9spjhplq5a7mr0y1bgfw8190ik4xj8f569xidfcki1d6kg"))))
+    (build-system ant-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f
+       #:test-target "test" ; requirements are missing, see below
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-javadoc ant-build-javadoc)
+         (replace 'install (install-jars "target"))
+         (add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
+    ;(native-inputs
+    ; `(("java-junit" ,java-junit)))
+    ; todo: tests. Requier hamcrest, commons-io, easymock. jar paths need to
+    ; be written into a properties files. See buld.xml in the source.
+    (home-page "http://commons.apache.org/lang/")
+    (synopsis "Extension of the java.lang package (for Java 5+)")
+    (description "The Commons Lang components contains a set of Java classes
+that provide helper methods for standard Java classes, especially those found
+in the java.lang package in the JDK 5+.  The following classes are included:
+
+ * StringUtils - Helper for java.lang.String.
+ * CharSetUtils - Methods for dealing with CharSets, which are sets of
+   characters such as [a-z] and [abcdez].
+ * RandomStringUtils - Helper for creating randomised Strings.
+ * NumberUtils - Helper for java.lang.Number and its subclasses.
+ * NumberRange - A range of numbers with an upper and lower bound.
+ * ObjectUtils - Helper for java.lang.Object.
+ * SerializationUtils - Helper for serializing Objects.
+ * SystemUtils - Utility class defining the Java system properties.
+ * NestedException package - A sub-package for the creation of nested
+   exceptions.
+ * Enum package - A sub-package for the creation of enumerated types.
+ * Builder package - A sub-package for the creation of equals, hashCode,
+   compareTo and toString methods.
+
+Commons Lang 3.x use a different package (org.apache.commons.lang3) than the
+previous versions (Commonas Lang 1.x and 2.x, which use
+org.apache.commons.lang), allowing it to be used at the same time as an
+earlier version.
+
+Commons Lang 3.x is only compatible with JDK 1.5+ ")
+    (license license:asl2.0)))
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:11 GMT) Full text and rfc822 format available.

Message #83 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 12/12] gnu: Add java-commons-bcel.
Date: Thu, 11 Jul 2019 22:26:34 +0200
* gnu/packages/java.scm (java-commons-bcel): New variable.
---
 gnu/packages/java.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index b7971a3..b1e1ecc 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1327,6 +1327,24 @@ libraries to vary independently of one another.")
   (string-append "mirror://apache/commons/" projname "/source/"
                  basename "-" version "-src.tar.gz"))
 
+(define-public java-commons-bcel
+  (package
+    (name "java-commons-bcel")
+    (version "6.0")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "bcel" version "bcel"))
+      (sha256 (base32 "0n39601zcj7ymjihfv53r260mf3n8kj6bqhxv90dw5sgc7qbjqxr"))))
+    (build-system ant-build-system)
+    ; todo: tests, javadoc
+    (arguments
+     `(#:jar-name (string-append "commons-bcel-" ,version ".jar")
+       #:src-dir "src/main"))
+    (home-page "http://commons.apache.org/bcel/")
+    (synopsis "Apache Commons Bytecode Engineering Library")
+    (description "")
+    (license license:asl2.0)))
+
 (define-public java-commons-cli
   (package
     (name "java-commons-cli")
-- 
2.7.4





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:11 GMT) Full text and rfc822 format available.

Message #86 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 1/6] gnu: kcoreaddons: Enable test-suite.
Date: Thu, 11 Jul 2019 22:26:35 +0200
Enable running the tests and blacklist the one failing test.

* gnu/package/kde-frameworks.scm(kcoreaddons)[arguments]
  <#:tests?>: Remove. <#:phases>: Add phase 'blacklist-failing-test.
---
 gnu/packages/kde-frameworks.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 5ab97c0b0..35e10015e 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -566,9 +566,16 @@ propagate their changes to their respective configuration files.")
     (inputs
      `(("qtbase" ,qtbase)))
     (arguments
-     `(#:tests? #f ; FIXME: Test failure caused by stout/stderr being interleaved.
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
+         (add-before 'check 'blacklist-failing-test
+           (lambda _
+             ;; Blacklist a failing test-function. FIXME: Make it pass.
+             ;; Test failure caused by stout/stderr being interleaved.
+             (with-output-to-file "autotests/BLACKLIST"
+               (lambda _
+                 (display "[test_channels]\n*\n")))
+             #t))
          (add-before 'check 'check-setup
            (lambda _
              (setenv "HOME" (getcwd))
-- 
2.13.7





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:12 GMT) Full text and rfc822 format available.

Message #89 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 2/6] gnu: kirigami: Enable test-suite.
Date: Thu, 11 Jul 2019 22:26:36 +0200
The error which inhibited running the tests no longer occurs
in 5.49.0, although now no tests are found at all.  Since no tests
are found now, the phase 'check-setup can be removed, too,
and thus the 'arguments' at all.

* gnu/packages/kde-frameworks.scm(kirigami)[arguments]: Remove.
---
 gnu/packages/kde-frameworks.scm | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 35e10015e..62cf49c57 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -804,19 +804,6 @@ or user activity.")
        ("qtsvg" ,qtsvg)
        ;; Run-time dependency
        ("qtgraphicaleffects" ,qtgraphicaleffects)))
-    (arguments
-     `(#:tests? #f ;; FIXME: Test suite is broken,
-       ;; see https://bugs.kde.org/show_bug.cgi?id=386456
-       ;; Note for when enabling the tests: The test-suite is meant to be run
-       ;; without prior installation, see
-       ;; https://cgit.kde.org/kirigami.git/commit/?id=24ad2c9
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'check-setup
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "QtQuick components for mobile user interfaces")
     (description "Kirigami is a set of high level QtQuick components looking
-- 
2.13.7





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:12 GMT) Full text and rfc822 format available.

Message #92 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 3/6] gnu: kpackage: Enable test-suite.
Date: Thu, 11 Jul 2019 22:26:37 +0200
* gnu/package/kde-frameworks.scm(kpackage)[arguments]
  <#:tests?>: Remove. <#:phases>: Add phase 'patch-tests.
---
 gnu/packages/kde-frameworks.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 62cf49c57..07e30d4cf 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1834,8 +1834,7 @@ covers feedback and persistent events.")
        ("ki18n" ,ki18n)
        ("qtbase" ,qtbase)))
     (arguments
-     `(#:tests? #f ; FIXME: 3/9 tests fail.
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch
            (lambda _
@@ -1847,6 +1846,17 @@ covers feedback and persistent events.")
                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
                 (string-append a " | QDirIterator::FollowSymlinks" b)))
              #t))
+         (add-after 'unpack 'patch-tests
+           (lambda _
+             ;; /bin/ls doesn't exist in the build-container use /etc/passwd
+             (substitute* "autotests/packagestructuretest.cpp"
+               (("(addDirectoryDefinition\\(\")bin(\".*\")bin(\".*\")bin\""
+                 _ a b c)
+                (string-append a "etc" b "etc" c "etc\""))
+               (("filePath\\(\"bin\", QStringLiteral\\(\"ls\"))")
+                "filePath(\"etc\", QStringLiteral(\"passwd\"))")
+               (("\"/bin/ls\"") "\"/etc/passwd\""))
+             #t))
          (add-before 'check 'check-setup
            (lambda _
              (setenv "HOME" (getcwd))
-- 
2.13.7





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:28:12 GMT) Full text and rfc822 format available.

Message #95 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 4/6] gnu: kemoticons: Enable test-suite.
Date: Thu, 11 Jul 2019 22:26:38 +0200
Without anything changed the test-suite now passes, thus can be enabled.

* gnu/package/kde-frameworks.scm(kemoticons)[arguments]<#:tests?>: Remove.
---
 gnu/packages/kde-frameworks.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 07e30d4cf..079a8a75e 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2423,8 +2423,7 @@ engine WebKit via QtWebKit.")
        ("kcoreaddons" ,kcoreaddons)
        ("qtbase" ,qtbase)))
     (arguments
-     `(#:tests? #f ; FIXME: 2/2 tests fail.
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
            (lambda _
-- 
2.13.7





Information forwarded to guix-patches <at> gnu.org:
bug#36605; Package guix-patches. (Thu, 11 Jul 2019 20:37:03 GMT) Full text and rfc822 format available.

Message #98 received at 36605 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: 36605 <at> debbugs.gnu.org
Subject: [PATCH 5/6] gnu: knewstuff: Enable test-suite.
Date: Thu, 11 Jul 2019 22:26:39 +0200
Without anything changed the test-suite now passes, thus can be enabled.

* gnu/package/kde-frameworks.scm(knewstuff)[arguments]<#:tests?>: Remove.
---
 gnu/packages/kde-frameworks.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 079a8a75e..45580cb5f 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2727,8 +2727,7 @@ KIO enabled infrastructure.")
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
     (arguments
-     `(#:tests? #f ; FIXME: 1/3 tests fail.
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
            (lambda _ ; XDG_DATA_DIRS isn't set
-- 
2.13.7





Reply sent to Hartmut Goebel <h.goebel <at> goebel-consult.de>:
You have taken responsibility. (Thu, 11 Jul 2019 20:37:03 GMT) Full text and rfc822 format available.

Notification sent to Hartmut Goebel <h.goebel <at> crazy-compilers.com>:
bug acknowledged by developer. (Thu, 11 Jul 2019 20:37:04 GMT) Full text and rfc822 format available.

Message #103 received at 36605-close <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> goebel-consult.de>
To: 36605-close <at> debbugs.gnu.org
Subject: Did send wrong patches
Date: Thu, 11 Jul 2019 22:28:02 +0200
[Message part 1 (text/plain, inline)]
Did send wrong patches
[0x7B752811BF773B65.asc (application/pgp-keys, attachment)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 09 Aug 2019 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 255 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.