NetBSD Problem Report #57060

From www@netbsd.org  Sun Oct 16 18:43:44 2022
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 549A51A921F
	for <gnats-bugs@gnats.NetBSD.org>; Sun, 16 Oct 2022 18:43:44 +0000 (UTC)
Message-Id: <20221016184342.CEBAD1A9239@mollari.NetBSD.org>
Date: Sun, 16 Oct 2022 18:43:42 +0000 (UTC)
From: code-netbsd@boerschig.net
Reply-To: code-netbsd@boerschig.net
To: gnats-bugs@NetBSD.org
Subject: Patch for running sysutils/podman on Darwin/aarch64
X-Send-Pr-Version: www-1.0

>Number:         57060
>Category:       pkg
>Synopsis:       Patch for running sysutils/podman on Darwin/aarch64
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Oct 16 18:45:00 +0000 2022
>Originator:     MB
>Release:        pkgsrc trunk
>Organization:
>Environment:
uname -mrs: Darwin 21.6.0 arm64
>Description:
I installed sysutils/podman to some non-standard prefix with pkgsrc.
The Podman builds do not find the 'edk2-aarch64-code.fd' file and 'gvproxy' is also not found. Podman has some standard Unix / homebrew paths hard-coded, but not the pkgsrc bootstrap prefix (@PREFIX@).

There's a patch against the pkgsrc git (trunk in github.com/netbsd/pkgsrc.git) in the 'fix' section below.
>How-To-Repeat:
build and install sysutils/podman on some apple silicon box with a pkgsrc bootstrapped into a non-standard path (e.g. prefix of '/opt/arm64/')
>Fix:
commit 37bb68922b56ea5b10ccec7585c0a2a99f7af07d
Author: MB <>
Date:   Sun Oct 16 20:38:53 2022 +0200

    sysutils/podman: fix look-up paths on darwin

    Add the pkgsrc prefix to qemu's share directory look-up (otherwise
    edk2-aarch64-code.fd is not found), and also to the binary directory
    search paths (fixes problem with non-standard pkgsrc prefixes).

diff --git a/sysutils/podman/Makefile b/sysutils/podman/Makefile
index 6b0cb8a37a2..7395a0868b3 100644
--- a/sysutils/podman/Makefile
+++ b/sysutils/podman/Makefile
@@ -25,6 +25,13 @@ SUBST_STAGE.gvproxy=	pre-configure
 SUBST_MESSAGE.gvproxy=	fix PREFIX inside patch
 SUBST_VARS.gvproxy=	PREFIX

+.if ${OPSYS} == "Darwin"
+SUBST_FILES.gvproxy+=	vendor/github.com/containers/common/pkg/config/config_darwin.go
+.endif
+.if !empty(MACHINE_PLATFORM:MDarwin-*-aarch64)
+SUBST_FILES.gvproxy+=	pkg/machine/qemu/options_darwin_arm64.go
+.endif
+
 CHECK_PORTABILITY_SKIP+=	vendor/github.com/containers/buildah/release.sh

 .if ${OPSYS} != "Linux"
diff --git a/sysutils/podman/distinfo b/sysutils/podman/distinfo
index c5280be3da6..df190a78096 100644
--- a/sysutils/podman/distinfo
+++ b/sysutils/podman/distinfo
@@ -5,12 +5,14 @@ SHA512 (podman-3.4.4.tar.gz) = cfd295bf50ce86ea70741c3e663b409ed47b1e560c962bc57
 Size (podman-3.4.4.tar.gz) = 10945990 bytes
 SHA1 (patch-Makefile) = 5671f5452430d4b94af924defbb473eb91732281
 SHA1 (patch-cmd_podman_registry_config.go) = 6d32a7526cad5728a385de0029b2bbe5474e7f1b
+SHA1 (patch-pkg_machine_qemu_options__darwin__arm64.go) = 2304dba53ddba7d2228cbdbd77ca3c501d654bef
 SHA1 (patch-pkg_machine_qemu_options__netbsd.go) = a256dcafceb70f29b4f7a1ed013b52b5d6b0f4ba
 SHA1 (patch-pkg_machine_qemu_options__netbsd__amd64.go) = 7f5e4fe206e6e1d8f8e2cd33c8ac18b614c2dd61
 SHA1 (patch-pkg_util_utils__netbsd.go) = 452c7ca070a945cbcc3e703105c1fe0a65eaedc7
 SHA1 (patch-utils_utils__supported.go) = 37c999dbf55ff98017d1a4d017d20d576e28d42d
 SHA1 (patch-vendor_github.com_containers_buildah_util_util__uint64.go) = 3e8b233c63224e5c2785760342bb42ec064a81a1
 SHA1 (patch-vendor_github.com_containers_buildah_util_util__unix.go) = 2073a132dc3bf63436ff29bcd228d960ab3c90d0
+SHA1 (patch-vendor_github.com_containers_common_pkg_config_config__darwin.go) = f164989a794f35981a4fc9abcdb9384a57d1f581
 SHA1 (patch-vendor_github.com_containers_common_pkg_config_config__netbsd.go) = 0da82c8c514630fe6afed3041c51869915c3fda8
 SHA1 (patch-vendor_github.com_containers_common_pkg_config_util__supported.go) = 3e02f5ee7d0855d46d8318792f620e18f722d259
 SHA1 (patch-vendor_github.com_containers_storage_drivers_chroot__unix.go) = c2c625898c7651d24ba842a6654d57dd4a0e4428
diff --git a/sysutils/podman/patches/patch-pkg_machine_qemu_options__darwin__arm64.go b/sysutils/podman/patches/patch-pkg_machine_qemu_options__darwin__arm64.go
new file mode 100644
index 00000000000..eb4e399d97f
--- /dev/null
+++ b/sysutils/podman/patches/patch-pkg_machine_qemu_options__darwin__arm64.go
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- pkg/machine/qemu/options_darwin_arm64.go.orig	2021-12-08 18:41:11.000000000 +0000
++++ pkg/machine/qemu/options_darwin_arm64.go
+@@ -47,6 +47,8 @@ func getEdk2CodeFd(name string) string {
+ 	dirs := []string{
+ 		"/usr/local/share/qemu",
+ 		"/opt/homebrew/share/qemu",
++		// pkgsrc paths
++		"@PREFIX@/share/qemu",
+ 	}
+ 	for _, dir := range dirs {
+ 		fullpath := filepath.Join(dir, name)
diff --git a/sysutils/podman/patches/patch-vendor_github.com_containers_common_pkg_config_config__darwin.go b/sysutils/podman/patches/patch-vendor_github.com_containers_common_pkg_config_config__darwin.go
new file mode 100644
index 00000000000..0dce767bb75
--- /dev/null
+++ b/sysutils/podman/patches/patch-vendor_github.com_containers_common_pkg_config_config__darwin.go
@@ -0,0 +1,11 @@
+$NetBSD$
+
+--- vendor/github.com/containers/common/pkg/config/config_darwin.go.orig	2022-10-15 09:48:55.000000000 +0000
++++ vendor/github.com/containers/common/pkg/config/config_darwin.go
+@@ -27,4 +27,6 @@ var defaultHelperBinariesDir = []string{
+ 	"/usr/local/lib/podman",
+ 	"/usr/libexec/podman",
+ 	"/usr/lib/podman",
++	// pkgsrc paths
++	"@PREFIX@/bin",
+ }

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2022 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.