From patchwork Mon Apr 24 01:18:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brian Cully X-Patchwork-Id: 49460 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 89B2327BBEC; Mon, 24 Apr 2023 02:20:38 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 3C94827BBE2 for ; Mon, 24 Apr 2023 02:20:37 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pqks8-00009g-OW; Sun, 23 Apr 2023 21:20:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqks6-000099-He for guix-patches@gnu.org; Sun, 23 Apr 2023 21:20:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pqks6-0006sI-8Q for guix-patches@gnu.org; Sun, 23 Apr 2023 21:20:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pqks6-0000IE-3k for guix-patches@gnu.org; Sun, 23 Apr 2023 21:20:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#63044] [PATCH 1/4] gnu: criu: Use gexps. References: <87ildm3zf6.fsf@psyduck.jhoto.kublai.com> In-Reply-To: <87ildm3zf6.fsf@psyduck.jhoto.kublai.com> Resent-From: Brian Cully Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 24 Apr 2023 01:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63044 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 63044@debbugs.gnu.org Cc: Brian Cully Received: via spool by 63044-submit@debbugs.gnu.org id=B63044.16822991571021 (code B ref 63044); Mon, 24 Apr 2023 01:20:02 +0000 Received: (at 63044) by debbugs.gnu.org; 24 Apr 2023 01:19:17 +0000 Received: from localhost ([127.0.0.1]:47181 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pqkrN-0000GO-Co for submit@debbugs.gnu.org; Sun, 23 Apr 2023 21:19:17 -0400 Received: from coleridge.kublai.com ([166.84.7.167]:57171 helo=mail.spork.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pqkrK-0000Fw-WD for 63044@debbugs.gnu.org; Sun, 23 Apr 2023 21:19:16 -0400 Received: from psyduck.jhoto.kublai.com (ool-18b8e9e7.dyn.optonline.net [24.184.233.231]) by mail.spork.org (Postfix) with ESMTPSA id 98DAF8A6C; Sun, 23 Apr 2023 21:19:14 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=spork.org; s=dkim; t=1682299154; bh=R5BmwYewZRzBkFm1LgHK7Md9vJU7fZqKMX4oAIgKgYs=; h=From:To:Cc:Subject:Date; b=RH8zkXcngRa9T95CrUP/aoYPuuc7++Jlhlw75p5IO4CGT7hNk6Lzhpom5B2H5sFbO o5ZGt758ZSAg7sVe55d4jrBfOSvpFNjuXaf5jDwnOvLjL7cNMU9LOJ2pcvEQCpbNEc eAXzQdqb++su/9vhw6VPc2pOceJ9qjkfV0Ev4fsQ= Date: Sun, 23 Apr 2023 21:18:56 -0400 Message-Id: X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Brian Cully X-ACL-Warn: , Brian Cully via Guix-patches X-Patchwork-Original-From: Brian Cully via Guix-patches via From: Brian Cully Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/virtualization.scm (criu) [arguments]: use gexps instead of quasi-quoting. --- gnu/packages/virtualization.scm | 147 ++++++++++++++++---------------- 1 file changed, 73 insertions(+), 74 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 4a0d6b0096..20cbfcfcfe 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1682,81 +1682,80 @@ (define-public criu (base32 "0ff3xfcf0wfz02fc0qbj56mci1a0xdl8jzaihaw6qyjvgrsiq7fh")))) (build-system gnu-build-system) (arguments - `(#:test-target "test" - #:tests? #f ; tests require mounting as root - #:make-flags - (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - (string-append "LIBDIR=$(PREFIX)/lib") - ;; Upstream mistakenly puts binaries in /var. Now, in practice no - ;; plugins are built, but the build system still fails otherwise. - (string-append "PLUGINDIR=$(LIBDIR)/criu") - (string-append "ASCIIDOC=" - (search-input-file %build-inputs - "/bin/asciidoc")) - (string-append "PYTHON=python3") - (string-append "XMLTO=" - (search-input-file %build-inputs - "/bin/xmlto"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) ; no configure script - (add-after 'unpack 'fix-documentation - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "Documentation/Makefile" - (("-m custom.xsl") - (string-append - "-m custom.xsl --skip-validation -x " - (assoc-ref inputs "docbook-xsl") "/xml/xsl/" - ,(package-name docbook-xsl) "-" - ,(package-version docbook-xsl) - "/manpages/docbook.xsl"))))) - (add-after 'unpack 'hardcode-variables - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Hardcode arm version detection - (substitute* "Makefile" - (("ARMV.*:=.*") "ARMV := 7\n")) - ;; Hard-code the correct PLUGINDIR above. - (substitute* "criu/include/plugin.h" - (("/var") (string-append (assoc-ref outputs "out")))) - )) - (add-before 'build 'fix-symlink - (lambda* (#:key inputs #:allow-other-keys) - ;; The file 'images/google/protobuf/descriptor.proto' points to - ;; /usr/include/..., which obviously does not exist. - (let* ((file "google/protobuf/descriptor.proto") - (target (string-append "images/" file)) - (source (search-input-file - inputs - (string-append "include/" file)))) - (delete-file target) - (symlink source target)))) - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make sure 'crit' runs with the correct PYTHONPATH. - (let* ((out (assoc-ref outputs "out")) - (site (string-append out "/lib/python" - ,(version-major+minor - (package-version python)) - "/site-packages")) - (path (getenv "GUIX_PYTHONPATH"))) - (wrap-program (string-append out "/bin/crit") - `("GUIX_PYTHONPATH" ":" prefix (,site ,path)))))) - (add-after 'install 'delete-static-libraries - ;; Not building/installing these at all doesn't seem to be supported. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each delete-file (find-files out "\\.a$")))))))) + (list + #:test-target "test" + #:tests? #f ; tests require mounting as root + #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "LIBDIR=$(PREFIX)/lib") + ;; Upstream mistakenly puts binaries in /var. Now, in practice no + ;; plugins are built, but the build system still fails otherwise. + (string-append "PLUGINDIR=$(LIBDIR)/criu") + (string-append "ASCIIDOC=" + (search-input-file %build-inputs + "/bin/asciidoc")) + (string-append "PYTHON=python3") + (string-append "XMLTO=" + (search-input-file %build-inputs + "/bin/xmlto"))) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-after 'unpack 'fix-documentation + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Documentation/Makefile" + (("-m custom.xsl") + (string-append + "-m custom.xsl --skip-validation -x " + (assoc-ref inputs "docbook-xsl") "/xml/xsl/" + #$(package-name docbook-xsl) "-" + #$(package-version docbook-xsl) + "/manpages/docbook.xsl"))))) + (add-after 'unpack 'hardcode-variables + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Hardcode arm version detection + (substitute* "Makefile" + (("ARMV.*:=.*") "ARMV := 7\n")) + ;; Hard-code the correct PLUGINDIR above. + (substitute* "criu/include/plugin.h" + (("/var") (string-append (assoc-ref outputs "out")))) + )) + (add-before 'build 'fix-symlink + (lambda* (#:key inputs #:allow-other-keys) + ;; The file 'images/google/protobuf/descriptor.proto' points to + ;; /usr/include/..., which obviously does not exist. + (let* ((file "google/protobuf/descriptor.proto") + (target (string-append "images/" file)) + (source (search-input-file + inputs + (string-append "include/" file)))) + (delete-file target) + (symlink source target)))) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure 'crit' runs with the correct PYTHONPATH. + (let* ((site (string-append #$output "/lib/python" + #$(version-major+minor + (package-version python)) + "/site-packages")) + (path (getenv "GUIX_PYTHONPATH"))) + (wrap-program (string-append #$output "/bin/crit") + `("GUIX_PYTHONPATH" ":" prefix (,site ,path)))))) + (add-after 'install 'delete-static-libraries + ;; Not building/installing these at all doesn't seem to be supported. + (lambda _ + (for-each delete-file (find-files #$output "\\.a$"))))))) (inputs - `(("protobuf" ,protobuf) - ("python" ,python) - ("python-protobuf" ,python-protobuf) - ("iproute" ,iproute) - ("libaio" ,libaio) - ("libcap" ,libcap) - ("libnet" ,libnet) - ("libnl" ,libnl) - ("libbsd" ,libbsd) - ("nftables" ,nftables))) + (list protobuf + python + python-protobuf + iproute + libaio + libcap + libnet + libnl + libbsd + nftables)) (native-inputs (list pkg-config perl