From unknown Tue Jun 24 10:33:29 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#32139] [PATCH] import: hackage: Emit native-inputs in the importer. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 13 Jul 2018 13:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 32139 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 32139@debbugs.gnu.org Cc: Danny Milosavljevic X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.153149010717787 (code B ref -1); Fri, 13 Jul 2018 13:56:01 +0000 Received: (at submit) by debbugs.gnu.org; 13 Jul 2018 13:55:07 +0000 Received: from localhost ([127.0.0.1]:57848 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fdyXK-0004cn-QN for submit@debbugs.gnu.org; Fri, 13 Jul 2018 09:55:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34986) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fdyXJ-0004bq-FR for submit@debbugs.gnu.org; Fri, 13 Jul 2018 09:55:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fdyXD-0007w7-20 for submit@debbugs.gnu.org; Fri, 13 Jul 2018 09:55:00 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60173) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fdyXC-0007vo-UE for submit@debbugs.gnu.org; Fri, 13 Jul 2018 09:54:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54181) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fdyXB-0000nT-7H for guix-patches@gnu.org; Fri, 13 Jul 2018 09:54:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fdyX6-0007gn-AC for guix-patches@gnu.org; Fri, 13 Jul 2018 09:54:57 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:51466) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fdyX5-0007Yx-VF for guix-patches@gnu.org; Fri, 13 Jul 2018 09:54:52 -0400 Received: from dayas.3.home (77.116.190.249.wireless.dyn.drei.com [77.116.190.249]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 7FA1633609B3; Fri, 13 Jul 2018 15:54:48 +0200 (CEST) From: Danny Milosavljevic Date: Fri, 13 Jul 2018 15:54:41 +0200 Message-Id: <20180713135441.15029-1-dannym@scratchpost.org> X-Mailer: git-send-email 2.16.2 Tags: patch X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/import/cabal.scm (cabal-custom-setup-dependencies): Export. (cabal-package-custom-setup): Export. (): New field "custom-setup". (make-cabal-package): Modify. (eval-cabal): Modify. * guix/import/hackage.scm (cabal-dependencies->names): Factor out... (cabal-test-dependencies->names): ...this. (cabal-custom-setup-dependencies->names): New procedure. (hackage-module->sexp): Modify. --- guix/import/cabal.scm | 15 ++++++++++---- guix/import/hackage.scm | 53 ++++++++++++++++++++++++++++++++++++------------- 2 files changed, 50 insertions(+), 18 deletions(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 4b2bfd4a2..1b8bda6f4 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -34,6 +34,8 @@ #:export (read-cabal eval-cabal + cabal-custom-setup-dependencies + cabal-package? cabal-package-name cabal-package-version @@ -47,6 +49,7 @@ cabal-package-test-suites cabal-package-flags cabal-package-eval-environment + cabal-package-custom-setup cabal-source-repository? cabal-source-repository-use-case @@ -616,7 +619,7 @@ If #f use the function 'port-filename' to obtain it." (make-cabal-package name version license home-page source-repository synopsis description executables lib test-suites - flags eval-environment) + flags eval-environment custom-setup) cabal-package? (name cabal-package-name) (version cabal-package-version) @@ -629,7 +632,8 @@ If #f use the function 'port-filename' to obtain it." (lib cabal-package-library) ; 'library' is a Scheme keyword (test-suites cabal-package-test-suites) (flags cabal-package-flags) - (eval-environment cabal-package-eval-environment)) ; alist + (eval-environment cabal-package-eval-environment) ; alist + (custom-setup cabal-package-custom-setup)) (set-record-type-printer! (lambda (package port) @@ -826,10 +830,13 @@ See the manual for limitations."))))))) (lib (make-cabal-section evaluated-sexp 'library)) (test-suites (make-cabal-section evaluated-sexp 'test-suite)) (flags (make-cabal-section evaluated-sexp 'flag)) - (eval-environment '())) + (eval-environment '()) + (custom-setup (match + (make-cabal-section evaluated-sexp 'custom-setup) + ((x) x)))) (make-cabal-package name version license home-page-or-hackage source-repository synopsis description executables lib - test-suites flags eval-environment))) + test-suites flags eval-environment custom-setup))) ((compose cabal-evaluated-sexp->package eval) cabal-sexp)) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index eb9e1d7d8..6f80d84b7 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -150,10 +150,9 @@ version." (_ #f))) -(define (cabal-dependencies->names cabal include-test-dependencies?) - "Return the list of dependencies names from the CABAL package object. If -INCLUDE-TEST-DEPENDENCIES? is #f, do not include dependencies required by test -suites." +(define (cabal-dependencies->names cabal) + "Return the list of dependencies names from the CABAL package object, +not including test suite dependencies or custom-setup dependencies." (let* ((lib (cabal-package-library cabal)) (lib-deps (if (pair? lib) (map cabal-dependency-name @@ -163,15 +162,25 @@ suites." (exe-deps (if (pair? exe) (map cabal-dependency-name (append-map cabal-executable-dependencies exe)) - '())) - (ts (cabal-package-test-suites cabal)) - (ts-deps (if (pair? ts) - (map cabal-dependency-name - (append-map cabal-test-suite-dependencies ts)) '()))) - (if include-test-dependencies? - (delete-duplicates (append lib-deps exe-deps ts-deps)) - (delete-duplicates (append lib-deps exe-deps))))) + (delete-duplicates (append lib-deps exe-deps)))) + +(define (cabal-test-dependencies->names cabal) + "Return the list of test suite dependencies from the CABAL package +object." + (let* ((ts (cabal-package-test-suites cabal)) + (ts-deps (if (pair? ts) + (map cabal-dependency-name + (append-map cabal-test-suite-dependencies ts)) + '()))) + ts-deps)) + +(define (cabal-custom-setup-dependencies->names cabal) + "Return the list of custom-setup dependencies from the CABAL package +object." + (let* ((custom-setup-dependencies (and=> (cabal-package-custom-setup cabal) + cabal-custom-setup-dependencies))) + (map cabal-dependency-name custom-setup-dependencies))) (define (filter-dependencies dependencies own-name) "Filter the dependencies included with the GHC compiler from DEPENDENCIES, a @@ -199,8 +208,23 @@ representation of a Cabal file as produced by 'read-cabal'." (map hackage-name->package-name ((compose (cut filter-dependencies <> (cabal-package-name cabal)) - (cut cabal-dependencies->names <> - include-test-dependencies?)) + (cut cabal-dependencies->names <>)) + cabal)))) + (map (lambda (name) + (list name (list 'unquote (string->symbol name)))) + names))) + + (define native-dependencies + (let ((names + (map hackage-name->package-name + ((compose (cut filter-dependencies <> + (cabal-package-name cabal)) + ;; FIXME: Check include-test-dependencies? + (lambda (cabal) + (append (if include-test-dependencies? + (cabal-test-dependencies->names cabal) + '()) + (cabal-custom-setup-dependencies->names cabal)))) cabal)))) (map (lambda (name) (list name (list 'unquote (string->symbol name)))) @@ -234,6 +258,7 @@ representation of a Cabal file as produced by 'read-cabal'." "failed to download tar archive"))))) (build-system haskell-build-system) ,@(maybe-inputs 'inputs dependencies) + ,@(maybe-inputs 'native-inputs native-dependencies) ,@(maybe-arguments) (home-page ,(cabal-package-home-page cabal)) (synopsis ,(cabal-package-synopsis cabal)) From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 27 05:41:55 2018 Received: (at control) by debbugs.gnu.org; 27 Jul 2018 09:41:55 +0000 Received: from localhost ([127.0.0.1]:59574 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fizFy-0004Id-R9 for submit@debbugs.gnu.org; Fri, 27 Jul 2018 05:41:54 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:42338) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fizFx-0004IW-Rz for control@debbugs.gnu.org; Fri, 27 Jul 2018 05:41:54 -0400 Received: from localhost (77.117.140.186.wireless.dyn.drei.com [77.117.140.186]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 2B5EC3360263 for ; Fri, 27 Jul 2018 11:41:52 +0200 (CEST) Date: Fri, 27 Jul 2018 11:41:41 +0200 From: Danny Milosavljevic To: Message-ID: <20180727114141.5fb6bc0f@scratchpost.org> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/qZ0Xr01ZsA/HaYI0+tWPH7H"; protocol="application/pgp-signature" X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 32139 [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 0.0 TVD_SPACE_RATIO No description available. 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) --Sig_/qZ0Xr01ZsA/HaYI0+tWPH7H Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable close 32139 --Sig_/qZ0Xr01ZsA/HaYI0+tWPH7H Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlta6NUACgkQ5xo1VCww uqV35Qf/dVfiY8PuBO/cCTFK5dGfgp79bfJ/VaSNFPe4X0EuBWAN+Mkit2soysHp yGv9llj+EcwrmJkUcp59LIStQ+qxhkUSa2Q6HZYDiiKQNKf9hsm+cMaxhk445jf6 0EwyV9G56dJto/oM+PXW7yG7aX+MPr+yEaiUjHpK6S236771a5MCVG9NEO9I5KUk Magbdpfc7Ro0uFz0mg5erLaSaTXpSDsQ0OYjYflw86z8KRfGdmrMlphAANVedsCQ k/VlHrsbUFUkFqEViO5yrNLAAiH1J6q/yRGF71VLS7JDbX/aioF23mGPIi1rkmTH ktKjmgMXVSp1p0onErStkgohDFlegA== =9U8Y -----END PGP SIGNATURE----- --Sig_/qZ0Xr01ZsA/HaYI0+tWPH7H--