From patchwork Sun Mar 31 18:35:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomas Volf <~@wolfsden.cz> X-Patchwork-Id: 62391 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 CD3C727BBE9; Sun, 31 Mar 2024 19:36:41 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_ADSP_ALL, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=no 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 08C3627BBEA for ; Sun, 31 Mar 2024 19:36:40 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rr02g-0001Gv-6v; Sun, 31 Mar 2024 14:36:34 -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 1rr02J-0001Cq-2J for guix-patches@gnu.org; Sun, 31 Mar 2024 14:36:07 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rr02I-00082b-Nv for guix-patches@gnu.org; Sun, 31 Mar 2024 14:36:06 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rr02L-00021P-A5 for guix-patches@gnu.org; Sun, 31 Mar 2024 14:36:09 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70112] [PATCH 11/11] gnu: buildah: Switch to gnu-build-system. Resent-From: Tomas Volf <~@wolfsden.cz> Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 31 Mar 2024 18:36:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70112 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70112@debbugs.gnu.org Cc: Tomas Volf <~@wolfsden.cz> Received: via spool by 70112-submit@debbugs.gnu.org id=B70112.17119101567637 (code B ref 70112); Sun, 31 Mar 2024 18:36:09 +0000 Received: (at 70112) by debbugs.gnu.org; 31 Mar 2024 18:35:56 +0000 Received: from localhost ([127.0.0.1]:48444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rr028-0001z2-4f for submit@debbugs.gnu.org; Sun, 31 Mar 2024 14:35:56 -0400 Received: from wolfsden.cz ([37.205.8.62]:52022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <~@wolfsden.cz>) id 1rr01i-0001x3-B2 for 70112@debbugs.gnu.org; Sun, 31 Mar 2024 14:35:30 -0400 Received: by wolfsden.cz (Postfix, from userid 104) id 113432A0B1E; Sun, 31 Mar 2024 18:35:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1711910127; bh=ba4BtJdnhGFJdUMaGqk4GWEzEYsOHuUfbGR+CnVBojw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=EA89OLBUS+nr4h1VqcGcJYEQf/gaJvZHODTCf+3tc68Ei6PIMxtTWj9yE11xP5W5M +8EQvWw2bxTDeyC2qRZdWo228Y+gEq+m2rDN65QGmJh6RrbfH1Sst8brkPNJGpxC+P u9zNqvqwJfpmw6JMMPvtFG9z8YkROR2jqr3OmzoDMg8FRnNSFxfvtoSHYWj8Lnke54 XwU6XqyxQPn3GuZPY/h6atzZWdcVDnwU3mtD9ViALKNr87iiJUn7JyWuvvEgVBYBwK 1mGP0qAszuvSEDPaIweqbqF2f7dYQaLF35CrWmDXw9S0JCsclovJjADzXqYgWIIVlM 2qCTDHfJHScHXuMMuv5CXAel2/dqMDVh9JtwFpSoe5iieqHqOyE2lezaUp07r7Ge2j 4U/HpT7UWXVgfMQ8JAsozW8yUHktsfAKVP+YBGiUqpahIR1jM6nYUJ1SLv7X5twyyu dUutmfMp9fCWGu7kplrQsST/JSZESHEHhTU/s8hL6E5QDb6opcQ6uD407tmpSlvsN+ PT0MM5cMC95MZHbq04mv7SUAC6ki6modWeBzaNRwIYrR5+T/4YHq5594sWq2yyi6l7 43G51Sds5RbZlHT7AmFx5Gf5ABKBsk8cMrSTgkVFadN/WIKacWPX7uD7g1kk9hEpTj QlvWB/12/UjIuGjLt3SFwOqc= Received: from localhost (unknown [193.32.127.158]) by wolfsden.cz (Postfix) with ESMTPSA id 76EBF2A1082; Sun, 31 Mar 2024 18:35:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1711910126; bh=ba4BtJdnhGFJdUMaGqk4GWEzEYsOHuUfbGR+CnVBojw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=EwLC5Ny1dmhDoSHOrDmApq39PKT5D3GJLH3+q75jiwOnDZqhTeTuvXCsU3Sm20Ogo w5E45/bMglZUFURmqKwDcBhscxCp6HVBJCfx9EIuMZndYYCTKZf7AUw9YdQSolD7r7 OSSawmSX52O+cubX8pZOCBPvej6pe3TbRpSLahiF3us4mYVdXpld2Gnhzn18kTJFtl 4gAo7cFd/+iS+ns6w4ZBJ6UI0EK3TBhPSMxRkTLcQTP/+yHM9WhXZi4BtU9XwAMkdS Fugnm1GoFa/o4JHhvR2AhhEmhf8BfpuajZ7N2xED29NtXDwZc1FpViF2aodavyYIvr 9mr6siTT+lC1Rez7nS/+R5nqH/zvMTw2YhrlxDHPONiK+JWhaaWgrMFhSgt1xObhuh YacUMtlp/3qb4qNaruPZboyjBt+bmoNrVa5duKwgfFEtV4ghi1JMBjz5PVb/mbS6bf hrNAo1M3G52dtH4AuD/Bkmo5krzyz9MqA/jwn+cj/2jCE+QPmkc6s202dIUB/nsOGD omn1QN5D4WBhKt+KvzdtLLeYBqHGes2GVWYW/ZKhYBJzr941ZUSgKpBAbKFIbSviHa +ly4QyeeefdzJylqWG5wbmMPkGCSS8WBPMx5OZPQmIxRmkj/mtE7Q/fZHKPeCpQQdq VNj3G9G4dufCelE+o4mena/c= From: Tomas Volf <~@wolfsden.cz> Date: Sun, 31 Mar 2024 20:35:08 +0200 Message-ID: <31a1cbe8a908ae2892ea88606ee877be0915aeae.1711909824.git.~@wolfsden.cz> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: 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: , 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 Buildah is fundamentally similar to podman and provides its own Makefile. This commit switches from go-build-system to gnu-build-system so that the build can be done using `make' instead of reinvention some parts (like documentation) in the guile. The package pretty much follows how podman package looks like. * gnu/packages/containers.scm (buildah)[source]: Reformat. [build-system]: Use gnu-build-system. [arguments]<#:import-path, #:unpack-path, #:go, #:install-source?>: Delete. <#:make-flags>: Set make flags. <#:test-target>: Set, even though the tests are disabled. <#:imported-modules>: Also import (guix build go-build-system) for the remove-go-references phase. <#:phases>{'prepare-install-docs, 'build-docs, 'install-docs}: Delete. {'configure}: Delete. {'set-env, 'check, 'symlink-helpers, 'wrap-buildah, 'remove-go-references} {'install-completions}: New phases. [inputs]: Remove no longer used cni-plugins, conmon, runc. Add bash-minimal. [native-inputs]: Remove gnu-make, add go-1.21 and bats. Change-Id: I0ddd5febb0116a71a857e2a98a9951dbe8bd40d9 --- gnu/packages/containers.scm | 99 +++++++++++++++++++++++-------------- 1 file changed, 62 insertions(+), 37 deletions(-) diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 48b276e250..2e68d08c94 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -611,50 +611,75 @@ (define-public buildah (base32 "07hr2cfp4kblnmva02ap97id5nzhbqigdfvx7c8nyrkfzw0340n0")) (file-name (git-file-name name version)))) - (build-system go-build-system) + (build-system gnu-build-system) (arguments - (list #:import-path "github.com/containers/buildah/cmd/buildah" - #:unpack-path "github.com/containers/buildah" - - ;; Some dependencies require go-1.18 to build. - #:go go-1.18 - - #:tests? #f - #:install-source? #f - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'prepare-install-docs - (lambda* (#:key unpack-path #:allow-other-keys) - (substitute* (string-append "src/" - unpack-path - "/docs/Makefile") - (("../tests/tools/build/go-md2man") - (which "go-md2man"))) - (substitute* (string-append "src/" - unpack-path - "/docs/Makefile") - (("/usr/local") (string-append #$output))))) - (add-after 'build 'build-docs - (lambda* (#:key unpack-path #:allow-other-keys) - (let ((doc (string-append "src/" unpack-path "/docs"))) - (invoke "make" "-C" doc)))) - (add-after 'install 'install-docs - (lambda* (#:key unpack-path #:allow-other-keys) - (let ((doc (string-append "src/" unpack-path "/docs"))) - (invoke "make" "-C" doc "install"))))))) - (inputs (list btrfs-progs - cni-plugins - conmon + (list + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output) + (string-append "GOMD2MAN=" + #$go-github-com-go-md2man "/bin/go-md2man")) + #:tests? #f ; /sys/fs/cgroup not set up in guix sandbox + #:test-target "test-unit" + #:imported-modules + (source-module-closure `(,@%gnu-build-system-modules + (guix build go-build-system))) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'set-env + (lambda _ + ;; When running go, things fail because HOME=/homeless-shelter. + (setenv "HOME" "/tmp") + ;; Required for detecting btrfs in hack/btrfs* due to bug in GNU + ;; Make <4.4 causing CC not to be propagated into $(shell ...) + ;; calls. Can be removed once we update to >4.3. + (setenv "CC" #$(cc-for-target)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "make" "test-unit") + (invoke "make" "test-conformance") + (invoke "make" "test-integration")))) + (add-after 'install 'symlink-helpers + (lambda _ + (mkdir-p (string-append #$output "/_guix")) + (for-each + (lambda (what) + (symlink (string-append (car what) "/bin/" (cdr what)) + (string-append #$output "/_guix/" (cdr what)))) + ;; Only tools that cannot be discovered via $PATH are + ;; symlinked. Rest is handled in the 'wrap-buildah phase. + `((#$aardvark-dns . "aardvark-dns") + (#$netavark . "netavark"))))) + (add-after 'install 'wrap-buildah + (lambda _ + (wrap-program (string-append #$output "/bin/buildah") + `("CONTAINERS_HELPER_BINARY_DIR" = + (,(string-append #$output "/_guix"))) + `("PATH" suffix + (,(string-append #$crun "/bin") + ,(string-append #$gcc "/bin") ; cpp + ,(string-append #$passt "/bin") + "/run/setuid-programs"))))) + (add-after 'install 'remove-go-references + (@@ (guix build go-build-system) remove-go-references)) + (add-after 'install 'install-completions + (lambda _ + (invoke "make" "install.completions" + (string-append "PREFIX=" #$output))))))) + (inputs (list bash-minimal + btrfs-progs eudev glib gpgme libassuan libseccomp - lvm2 - runc)) + lvm2)) (native-inputs - (list go-github-com-go-md2man - gnu-make + (list bats + go-1.21 + go-github-com-go-md2man pkg-config)) (synopsis "Build @acronym{OCI, Open Container Initiative} images") (description