From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?5a6L5paH5q2m?= Subject: Re: [PATCH] gnu: Add ninja. Date: Sun, 11 Jan 2015 11:07:19 +0800 Message-ID: <87oaq66mmw.fsf@gmail.com> References: <1420810817-23613-1-git-send-email-iyzsong@gmail.com> <87fvbk3tvy.fsf@gnu.org> <87387i99n2.fsf@gmail.com> <877fwukasx.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YA8s3-0004su-MB for guix-devel@gnu.org; Sat, 10 Jan 2015 22:07:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YA8s1-0006IG-Ud for guix-devel@gnu.org; Sat, 10 Jan 2015 22:07:19 -0500 In-Reply-To: <877fwukasx.fsf@gnu.org> 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: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: > =E5=AE=8B=E6=96=87=E6=AD=A6 skribis: > >> Ludovic Court=C3=A8s writes: >> >>> =E5=AE=8B=E6=96=87=E6=AD=A6 skribis: >>> >>>> * gnu/packages/ninja.scm: New file. >>>> * gnu-system.am (GNU_SYSTEM_MODULES): Add it. >>> >>> [...] >>> >>>> + 'check >>>> + (lambda _ >>>> + (and (zero? (system "./configure.py")) >>>> + (zero? (system "./ninja ninja_test")) >>>> + ;; SubprocessTest.InterruptChild fail when using 'sy= stem*'. >>>> + ;; SubprocessTest.SetWithLots was skipped. >>>> + ;; XXX: Raise [ulimit -n] well above 1025 to make th= is test go. >>> >>> Does it mean that the test is currently failing? >> Yes, SetWithLots fail with the 'Raise ...' line. > > Oh, I see. Then can you make it clearer in the comment: > > ;; SubprocessTest.SetWithLots fails with: > ;; > ;; Raise [ulimit -n] well above 1025 to make this test go. > ;; > ;; Skip it. > >>>> + (zero? (system (string-append >>>> + "./ninja_test " >>>> + "--gtest_filter=3D" >>>> + "-SubprocessTest.SetWithLots"))))) >>> >>> Please use =E2=80=98system*=E2=80=99 (with separate arguments) rather t= han =E2=80=98system=E2=80=99. >>> The latter runs =E2=80=9C/bin/sh -c ...=E2=80=9D whereas the former run= s the program >>> directly. >> Use 'system*' to run "./ninja_test" will cause InterruptChild to fail :( >> (as I mentioned in the comment) > > Ah right, that=E2=80=99s weird, but could you mention in the comment (1) = how it > fails, and (2) that because of this, we use =E2=80=98system=E2=80=99 inst= ead of > =E2=80=98system*=E2=80=99? > > It=E2=80=99s important to explain both the problem and the solution/conse= quence, > otherwise it can be hard by reading the comment to understand if we=E2=80= =99re > talking about an unfixed issue, a fixed issue, or a fix. > > OK to push with these changes. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-gnu-Add-ninja.patch Content-Transfer-Encoding: quoted-printable >From 712f161a358a4bbcf005c5875e6d91eff21bdef4 Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?=3DE5=3DAE=3D8B=3DE6=3D96=3D87=3DE6=3DAD=3DA6?=3D Date: Fri, 9 Jan 2015 21:37:30 +0800 Subject: [PATCH] gnu: Add ninja. * gnu/packages/ninja.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/ninja.scm | 87 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 88 insertions(+) create mode 100644 gnu/packages/ninja.scm diff --git a/gnu-system.am b/gnu-system.am index 4086067..39459b8 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -191,6 +191,7 @@ GNU_SYSTEM_MODULES =3D \ gnu/packages/ncurses.scm \ gnu/packages/netpbm.scm \ gnu/packages/nettle.scm \ + gnu/packages/ninja.scm \ gnu/packages/node.scm \ gnu/packages/noweb.scm \ gnu/packages/ntp.scm \ diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm new file mode 100644 index 0000000..fe3f955 --- /dev/null +++ b/gnu/packages/ninja.scm @@ -0,0 +1,87 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2015 Sou Bunnbu +;;; +;;; 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 . + +(define-module (gnu packages ninja) + #:use-module ((guix licenses) #:select (asl2.0)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages python)) + +(define-public ninja + (package + (name "ninja") + (version "1.5.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/martine/ninja/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (alist-replace + 'configure + (lambda _ + (substitute* "src/subprocess-posix.cc" + (("/bin/sh") (which "sh")))) + (alist-replace + 'build + (lambda _ + (zero? (system* "./configure.py" "--bootstrap"))) + (alist-replace + 'check + (lambda _ + (and (zero? (system* "./configure.py")) + (zero? (system* "./ninja" "ninja_test")) + ;; SubprocessTest.SetWithLots fails with: + ;; Raise [ulimit -n] well above 1025 to make this test = go. + ;; Skip it. + ;; + ;; SubprocessTest.InterruptChild fails when using 'system= *': + ;; *** Failure in src/subprocess_test.cc:83 + ;; ExitInterrupted =3D=3D subproc->Finish() + ;; Pass it by using 'system' instead of 'system*'. + (zero? (system (string-append + "./ninja_test " + "--gtest_filter=3D" + "-SubprocessTest.SetWithLots"))))) + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/ninja"))) + (mkdir-p bin) + (copy-file "ninja" (string-append bin "/ninja")) + (mkdir-p doc) + (copy-file "doc/manual.asciidoc" + (string-append doc "/manual.asciidoc")))) + %standard-phases)))))) + (native-inputs `(("python" ,python-2))) + (home-page "http://martine.github.io/ninja/") + (synopsis "Small build system") + (description + "Ninja is a small build system with a focus on speed. It differs from +other build systems in two major respects: it is designed to have its input +files generated by a higher-level build system, and it is designed to run +builds as fast as possible.") + (license asl2.0))) --=20 2.1.2 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Is this OK? > > Thanks, > Ludo=E2=80=99. --=-=-=--