unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: "Gábor Boskovits" <boskovits@gmail.com>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: Restarting 'staging'
Date: Sat, 16 Jun 2018 12:24:40 +0200	[thread overview]
Message-ID: <87lgbf58rb.fsf@elephly.net> (raw)
In-Reply-To: <CAE4v=piuovBMbh40YFy5kdPtvb6Cs_UZYS6Djr4TiGgLhPdjNg@mail.gmail.com>

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


Hi Gábor,

> Ricardo Wurmus <rekado@elephly.net> ezt írta (időpont: 2018. jún. 15., P
> 21:20):
>
>>
>> Hi Marius,
>>
>> > Now that 'core-updates' is merged, it's time to get 'staging' rolling
>> > again.  We have lots of minor updates this round, mostly on the
>> > graphical side.  Is there anything we're missing that's eligible (<1200
>> > rebuilds)?
>>
>> The ant-build-system needs to be modified to raise an exception on test
>> failures.  Currently it uses the old (zero? (system* …)) idiom, which
>> causes failing tests to be ignored.
>>
>> This will cause all Java packages and packages depending on them to be
>> rebuilt.
[…]
>
> I intend to have a look at that. I've already figured out how to modify the
> timestamps phase, the rest should be similar. I'm under the impression
> however that this could be done on master. All java is around 160 packages.

I have just made these changes to the ant-build-system (see attached
patch).  Can you combine this with your changes and push them to
“staging”?

It is true that all of Java in Guix is only about 160 packages, but this
affects the three JDK packages, which take a long time to build.  It
also re-enables tests for packages whose test failures were previously
ignored by accident.

So I expect some minor breakage, which I would like to leave out of
master.


[-- Attachment #2: 0001-build-system-ant-Unconditionally-return-t-in-build-p.patch --]
[-- Type: text/x-patch, Size: 5701 bytes --]

From 781768e88f2c90cfccce20d484225e71e019d456 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 16 Jun 2018 12:20:32 +0200
Subject: [PATCH] build-system/ant: Unconditionally return #t in build phases.

* guix/build/ant-build-system.scm (unpack, build, strip-jar-timestamps, check,
install): Use invoke.
---
 guix/build/ant-build-system.scm | 76 ++++++++++++++++-----------------
 1 file changed, 38 insertions(+), 38 deletions(-)

diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index d081a2b31..3ed12b9f4 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -150,7 +150,8 @@ to the default GNU unpack strategy."
       (begin
         (mkdir "src")
         (with-directory-excursion "src"
-          (zero? (system* "jar" "-xf" source))))
+          (invoke "jar" "-xf" source))
+        #t)
       ;; Use GNU unpack strategy for things that aren't jar archives.
       ((assq-ref gnu:%standard-phases 'unpack) #:source source)))
 
@@ -171,7 +172,7 @@ to the default GNU unpack strategy."
 
 (define* (build #:key (make-flags '()) (build-target "jar")
                 #:allow-other-keys)
-  (zero? (apply system* `("ant" ,build-target ,@make-flags))))
+  (apply invoke `("ant" ,build-target ,@make-flags)))
 
 (define* (generate-jar-indices #:key outputs #:allow-other-keys)
   "Generate file \"META-INF/INDEX.LIST\".  This file does not use word wraps
@@ -194,50 +195,49 @@ repack them.  This is necessary to ensure that archives are reproducible."
     (format #t "repacking ~a\n" jar)
     (let* ((dir (mkdtemp! "jar-contents.XXXXXX"))
            (manifest (string-append dir "/META-INF/MANIFEST.MF")))
-      (and (with-directory-excursion dir
-             (zero? (system* "jar" "xf" jar)))
-           (delete-file jar)
-           ;; XXX: copied from (gnu build install)
-           (for-each (lambda (file)
-                       (let ((s (lstat file)))
-                         (unless (eq? (stat:type s) 'symlink)
-                           (utime file 0 0 0 0))))
-                     (find-files dir #:directories? #t))
+      (with-directory-excursion dir
+        (invoke "jar" "xf" jar))
+      (delete-file jar)
+      ;; XXX: copied from (gnu build install)
+      (for-each (lambda (file)
+                  (let ((s (lstat file)))
+                    (unless (eq? (stat:type s) 'symlink)
+                      (utime file 0 0 0 0))))
+                (find-files dir #:directories? #t))
 
-           ;; The jar tool will always set the timestamp on the manifest file
-           ;; and the containing directory to the current time, even when we
-           ;; reuse an existing manifest file.  To avoid this we use "zip"
-           ;; instead of "jar".  It is important that the manifest appears
-           ;; first.
-           (with-directory-excursion dir
-             (let* ((files (find-files "." ".*" #:directories? #t))
-                    ;; To ensure that the reference scanner can detect all
-                    ;; store references in the jars we disable compression
-                    ;; with the "-0" option.
-                    (command (if (file-exists? manifest)
-                                 `("zip" "-0" "-X" ,jar ,manifest ,@files)
-                                 `("zip" "-0" "-X" ,jar ,@files))))
-               (unless (zero? (apply system* command))
-                 (error "'zip' failed"))))
-           (utime jar 0 0)
-           #t)))
+      ;; The jar tool will always set the timestamp on the manifest file
+      ;; and the containing directory to the current time, even when we
+      ;; reuse an existing manifest file.  To avoid this we use "zip"
+      ;; instead of "jar".  It is important that the manifest appears
+      ;; first.
+      (with-directory-excursion dir
+        (let* ((files (find-files "." ".*" #:directories? #t))
+               ;; To ensure that the reference scanner can detect all
+               ;; store references in the jars we disable compression
+               ;; with the "-0" option.
+               (command (if (file-exists? manifest)
+                            `("zip" "-0" "-X" ,jar ,manifest ,@files)
+                            `("zip" "-0" "-X" ,jar ,@files))))
+          (apply invoke command)))
+      (utime jar 0 0)
+      #t))
 
-  (every (match-lambda
-           ((output . directory)
-            (every repack-archive (find-files directory "\\.jar$"))))
-         outputs))
+  (for-each (match-lambda
+              ((output . directory)
+               (for-each repack-archive (find-files directory "\\.jar$"))))
+            outputs)
+  #t)
 
 (define* (check #:key target (make-flags '()) (tests? (not target))
                 (test-target "check")
                 #:allow-other-keys)
   (if tests?
-      (zero? (apply system* `("ant" ,test-target ,@make-flags)))
-      (begin
-        (format #t "test suite not run~%")
-        #t)))
+      (apply invoke `("ant" ,test-target ,@make-flags))
+      (format #t "test suite not run~%"))
+  #t)
 
 (define* (install #:key (make-flags '()) #:allow-other-keys)
-  (zero? (apply system* `("ant" "install" ,@make-flags))))
+  (apply invoke `("ant" "install" ,@make-flags)))
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
-- 
2.17.1


[-- Attachment #3: Type: text/plain, Size: 13 bytes --]



--
Ricardo

  reply	other threads:[~2018-06-16 10:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-13  1:03 Restarting 'staging' Marius Bakke
2018-06-15 11:31 ` Ricardo Wurmus
2018-06-16 10:00   ` Gábor Boskovits
2018-06-16 10:24     ` Ricardo Wurmus [this message]
2018-06-16 10:58       ` Gábor Boskovits
2018-06-16 18:59         ` Gábor Boskovits
2018-06-18 20:10           ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lgbf58rb.fsf@elephly.net \
    --to=rekado@elephly.net \
    --cc=boskovits@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).