From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH]: Add IcedTea 6 Date: Wed, 28 Jan 2015 17:13:44 +0100 Message-ID: <8761bqq3wn.fsf@gnu.org> References: <87386vubwl.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54132) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YGVFX-0002HI-9J for guix-devel@gnu.org; Wed, 28 Jan 2015 11:13:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YGVFU-00049T-H4 for guix-devel@gnu.org; Wed, 28 Jan 2015 11:13:51 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58008) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YGVFU-00049M-9W for guix-devel@gnu.org; Wed, 28 Jan 2015 11:13:48 -0500 In-Reply-To: (Ricardo Wurmus's message of "Wed, 28 Jan 2015 16:47:48 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ricardo Wurmus Cc: guix-devel Ricardo Wurmus skribis: > Ludovic Court=C3=A8s writes: [...] >>> + (substitute* "Makefile.in" >>> + ;; link against libgcj to avoid linker error >>> + (("-o native-ecj") >>> + "-lgcj -o native-ecj") >>> + ;; do not leak information about the build host >>> + (("DISTRIBUTION_ID=3D\"\\$\\(DIST_ID\\)\"") >>> + "DISTRIBUTION_ID=3D\"\\\"guix\\\"\"")) >> >> This could go to =E2=80=98snippet=E2=80=99 because it=E2=80=99s independ= ent of the inputs used >> for the build, but do whatever seems most appropriate to you in terms of >> structure. > > I made this a snippet. Other things that would be good as snippets > (such as the patch to remove the timestamps) can only be done after the > build has started, because IcedTea patches the unpacked sources quite a > bit. OK. [...] > I tried this but ran into a couple of problems. Not all instances of > /bin are bad. There are many places in the tests where /bin follows a > variable (and these are totally fine). I also don't want to patch > shebangs twice. The character class would have to be picked carefully > as well, because commands are sometimes quoted or inside braces etc. > > Here's what I used before I gave up ([^[:space:]] instead of > [[:graphic:]] because the latter does not seem to exist and because it > would catch all sorts of unwanted characters if it did): > > (substitute* (find-files "." "\\.(sh|java)$") > (("[^!](/usr)?/bin/([^[:space:]]+)" _ _ command) > (or (which command) command))) OK. Well, let=E2=80=99s keep it the way you initially wrote it. >>> + (alist-replace >>> + 'check >>> + (lambda _ >>> + (and (zero? (system* "make" "check-hotspot")) >>> + (zero? (system* "make" "check-langtools")) >>> + (zero? (system* "make" "check-jdk")))) >> >> Maybe add a comment that the check- targets always return zero? > > I rewrote this to instead check the generated test logs in test/ for > lines starting with "Error:" or "FAILED:". To disable tests I wrapped > it in an (or #t ...) as the argument #:tests? #f does not disable a > custom check phase. > > 'check > (lambda _ > ;; The "make check-*" targets always return zero, so we ne= ed to > ;; check for errors in the associated log files to determi= ne > ;; whether any tests have failed. > (use-modules (ice-9 rdelim)) > (let* ((error-pattern (make-regexp "^(Error|FAILED):.*")) > (checker (lambda (port) > (let loop ((_ #t)) You can make it (let loop () ... (loop)). > (let ((line (read-line port))) > (cond > ((eof-object? line) #t) > ((regexp-exec error-pattern line) #f) > (else (loop #t))))))) > (run-test (lambda (test) > (system* "make" test) > (call-with-input-file > (string-append "test/" test ".log") > checker)))) > (or #t ; skip tests > (and (run-test "check-hotspot") > (run-test "check-langtools") > (run-test "check-jdk"))))) OK. >>> + (description >>> + "The IcedTea project provides a harness to build the source code = from >>> +http://openjdk.java.net using Free Software build tools along with add= itional >>> +features such as a Free Software plugin and web start implementation a= nd an >>> +LLVM-based JIT.") >> >> No good idea here. :-) > > How about this: > > "The OpenJDK built with the IcedTea build harness." > > It doesn't sound great but it actually says what it is. Fine with me. One last thing: perhaps we can directly remove mips64el-linux from =E2=80=98supported-platforms=E2=80=99? OK to push.=20=20 Thanks, Ludo=E2=80=99.