Github messages for voidlinux
 help / color / mirror / Atom feed
From: CameronNemo <CameronNemo@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated]  xbps-triggers: binfmt: use --import
Date: Mon, 10 May 2021 19:21:09 +0200	[thread overview]
Message-ID: <20210510172109.kt9XxZ4Tyt7FPEoHSpNtlaJbDRX1LhCA-6axnTMbngs@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-10395@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 503 bytes --]

There is an updated pull request by CameronNemo against master on the void-packages repository

https://github.com/CameronNemo/void-packages binfmt_files
https://github.com/void-linux/void-packages/pull/10395

 xbps-triggers: binfmt: use --import
Allow packages to specify format files to be imported by
the binfmt-support package, rather than specifying the
binfmt values in the package templates themselves.

A patch file from https://github.com/void-linux/void-packages/pull/10395.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-binfmt_files-10395.patch --]
[-- Type: text/x-diff, Size: 18510 bytes --]

From 8753895f6e78050bebb24603b65a7b86a89d2366 Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cnemo@tutanota.com>
Date: Fri, 19 Apr 2019 20:33:08 -0700
Subject: [PATCH 1/3] xbps-triggers: binfmt: use --import

Allow packages to specify format files to be imported by
the binfmt-support package, rather than specifying the
binfmt values in the package templates themselves.
---
 Manual.md                                      |  9 +++++++--
 common/environment/setup-subpkg/subpkg.sh      |  1 +
 .../04-create-xbps-metadata-scripts.sh         |  4 ++++
 srcpkgs/xbps-triggers/files/binfmts            | 18 +++++++++++++++---
 srcpkgs/xbps-triggers/template                 |  2 +-
 5 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/Manual.md b/Manual.md
index 73cd9088f9bc..c863cafeaf26 100644
--- a/Manual.md
+++ b/Manual.md
@@ -1723,8 +1723,13 @@ executable binary formats, know as binfmts.
 During installation/removal it uses `update-binfmts` from the `binfmt-support` package
 to register/remove entries from the arbitrary executable binary formats database.
 
-To include the trigger use the `binfmts` variable, as the trigger won't do anything unless
-it is defined.
+Include the trigger by specifying the `binfmt_files` variable. This variable
+contains a space separated list of format file, relative to
+`/usr/share/binfmts`. Each format file is passed to `update-binfmts --import`.
+
+The `binfmts` variable is deprecated, but still supported. The variable contains
+a newline separated list of arguments that are passed to
+`update-binfmts --package <pkgname> --install`.
 
 <a id="triggers_dkms"></a>
 #### dkms
diff --git a/common/environment/setup-subpkg/subpkg.sh b/common/environment/setup-subpkg/subpkg.sh
index 0243d2400481..0011d7558fbc 100644
--- a/common/environment/setup-subpkg/subpkg.sh
+++ b/common/environment/setup-subpkg/subpkg.sh
@@ -40,6 +40,7 @@ unset -v make_dirs
 
 # xbps-triggers: binfmts
 unset -v binfmts
+unset -v binfmt_files
 
 # xbps-triggers: register-shell
 unset -v register_shell
diff --git a/common/hooks/post-install/04-create-xbps-metadata-scripts.sh b/common/hooks/post-install/04-create-xbps-metadata-scripts.sh
index 8bb86c4487a5..ebd0d5e59567 100644
--- a/common/hooks/post-install/04-create-xbps-metadata-scripts.sh
+++ b/common/hooks/post-install/04-create-xbps-metadata-scripts.sh
@@ -123,6 +123,10 @@ _EOF
 		_add_trigger binfmts
 		echo "export binfmts=\"${binfmts}\"" >> $tmpf
 	fi
+	if [ -n "${binfmt_files}" ]; then
+		_add_trigger binfmts
+		echo "export binfmt_files=\"${binfmt_files}\"" >> $tmpf
+	fi
 	#
 	# Handle GNU Info files.
 	#
diff --git a/srcpkgs/xbps-triggers/files/binfmts b/srcpkgs/xbps-triggers/files/binfmts
index 16919833a80b..cb9b680fc378 100755
--- a/srcpkgs/xbps-triggers/files/binfmts
+++ b/srcpkgs/xbps-triggers/files/binfmts
@@ -25,19 +25,26 @@ targets)
 	;;
 run)
 	[ -x /usr/bin/update-binfmts ] || exit 0
-	[ -z "${binfmts}" ] && exit 0
+	[ "${binfmts}" ] || [ "${binfmt_files}" ] || exit 0
 
 	case "$TARGET" in
 	post-install)
-		echo "$binfmts" | tr '\' '&' 2> /dev/null | while read line; do
+		printf 'Installing binfmts...\n'
+		printf '%s' "$binfmts" | tr '\' '&' 2> /dev/null | while read line; do
 			line=$(echo $line | tr '&' '\' 2> /dev/null)
 			set -- ${line}
 			_bin="$1"; shift; _args="$@"; _bname="$(basename ${_bin})"
 			update-binfmts --package ${PKGNAME} --install ${_bname} ${_bin} ${_args}
 		done
+		for binfmt in ${binfmt_files}; do
+			test -e "$(pwd)/usr/share/binfmts/${binfmt}" || continue
+			update-binfmts --importdir "$(pwd)/usr/share/binfmts" \
+				--import "${binfmt}"
+		done
 		;;
 	pre-remove)
-		echo "$binfmts" | tr '\' '&' 2> /dev/null | while read line; do
+		printf 'Removing binfmts...\n'
+		printf '%s' "$binfmts" | tr '\' '&' 2> /dev/null | while read line; do
 			line=$(echo $line | tr '&' '\' 2> /dev/null)
 			set -- ${line}
 			_bin="$1"; shift; _args="$@"; _bname="$(basename ${_bin})"
@@ -45,6 +52,11 @@ run)
 				update-binfmts --package ${PKGNAME} --remove ${_bname} ${_bin}
 			fi
 		done
+		for binfmt in ${binfmt_files}; do
+			test -e "$(pwd)/usr/share/binfmts/${binfmt}" || continue
+			update-binfmts --importdir "$(pwd)/usr/share/binfmts" \
+				--unimport "${binfmt}"
+		done
 		;;
 	*)
 		exit 1
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 748942206ac5..5de97d53c210 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.120
+version=0.121
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 8582d1632376495fe2f4c587e9b6b86cacc04c98 Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cnemo@tutanota.com>
Date: Fri, 19 Apr 2019 20:35:19 -0700
Subject: [PATCH 2/3] qemu-user-static: use binfmt_files

ppcel and cris architectures no longer ship binfmt files.
For the former, the ppcel patch will have to be updated to account for
the new binfmt method.
cris is old and largely unused, so it is being considered an acceptable
loss in functionality.
---
 srcpkgs/qemu-user-static/template       | 115 +++++-------------------
 srcpkgs/qemu/patches/qemu-binfmts.patch |  60 +++++++++++++
 2 files changed, 82 insertions(+), 93 deletions(-)
 create mode 100644 srcpkgs/qemu/patches/qemu-binfmts.patch

diff --git a/srcpkgs/qemu-user-static/template b/srcpkgs/qemu-user-static/template
index c6870e38d263..512eeb5ad4e1 100644
--- a/srcpkgs/qemu-user-static/template
+++ b/srcpkgs/qemu-user-static/template
@@ -2,7 +2,7 @@
 # This package should be updated together with qemu
 pkgname=qemu-user-static
 version=6.0.0
-revision=1
+revision=2
 wrksrc="qemu-${version}"
 build_style=configure
 hostmakedepends="pkg-config automake python3 ninja"
@@ -14,97 +14,15 @@ homepage="https://www.qemu.org"
 distfiles="https://wiki.qemu.org/download/qemu-${version}.tar.bz2"
 checksum=7d306a03c67c0b667d21b55e1b172f5e55a9af5ee09cbd739fb2395aeca7860c
 
-_fmts="aarch64 aarch64_be alpha arm armeb cris hppa i386 m68k microblaze
- microblazeel mips mipsel mips64 mips64el mipsn32 mipsn32el or1k
- ppc ppcle ppc64 ppc64le riscv32 riscv64 s390x sh4 sh4eb
- sparc sparc32plus sparc64 x86_64 xtensa xtensaeb"
-
-_aarch64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7'
-_aarch64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_aarch64_be_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7'
-_aarch64_be_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_alpha_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90'
-_alpha_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_arm_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00'
-_arm_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_armeb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28'
-_armeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_cris_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x4c\x00'
-_cris_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_hppa_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x0f'
-_hppa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_i386_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00'
-_i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_m68k_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04'
-_m68k_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_microblaze_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xba\xab'
-_microblaze_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_microblazeel_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xab\xba'
-_microblazeel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_mips_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
-_mips_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_mipsel_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
-_mipsel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_mips64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
-_mips64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_mips64el_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
-_mips64el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_mipsn32_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
-_mipsn32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_mipsn32el_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
-_mipsn32el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_or1k_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5c'
-_or1k_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_ppc_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14'
-_ppc_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_ppcle_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14\x00'
-_ppcle_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00'
-_ppc64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15'
-_ppc64_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_ppc64le_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00'
-_ppc64le_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00'
-_riscv32_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00'
-_riscv32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_riscv64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00'
-_riscv64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_s390x_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16'
-_s390x_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_sh4_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00'
-_sh4_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_sh4eb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a'
-_sh4eb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_sparc_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02'
-_sparc_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_sparc32plus_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x12'
-_sparc32plus_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_sparc64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2b'
-_sparc64_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-_x86_64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00'
-_x86_64_mask='\xff\xff\xff\xff\xff\xfe\xfe\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_xtensa_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e\x00'
-_xtensa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-_xtensaeb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e'
-_xtensaeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-
-case "$XBPS_TARGET_MACHINE" in
-	x86_64*) _omit="i386|x86_64" ;;
-	aarch64*) _omit="aarch64" ;;
-	armv*) _omit="arm" ;;
-	ppc64le*) _omit="ppc64le|ppcle" ;;
-	ppc64*) _omit="ppc64|ppc" ;;
-	*) _omit="${XBPS_TARGET_MACHINE%-*}" ;;
-esac
-
-for _fmt in $_fmts; do
-	eval "case $_fmt in $_omit) magic= ;; *) magic=\"\$_${_fmt}_magic\" mask=\"\$_${_fmt}_mask\" ;; esac"
-	if [ "$magic" ]; then
-		binfmts+="/usr/bin/qemu-$_fmt-static --magic $magic --mask $mask --offset 0 --credential yes
-"
-	fi
+# Copied from ${wrksrc}/scripts/qemu-binfmt-conf.sh
+_binfmt_archs="i386 i486 alpha arm armeb sparc sparc32plus sparc64 \
+ppc ppc64 ppcle ppc64le m68k mips mipsel mipsn32 mipsn32el mips64 mips64el \
+sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb \
+microblaze microblazeel or1k x86_64 cris"
+for a in ${_binfmt_archs}; do
+	binfmt_files="${binfmt_files:-}${binfmt_files:+ }qemu-${a}"
 done
 
-binfmts="${binfmts%?}"
-
 post_extract() {
 	vsed -i 's/__u64/unsigned long/' linux-user/host/aarch64/hostdep.h
 }
@@ -125,12 +43,23 @@ do_configure() {
 
 do_install() {
 	make DESTDIR=${DESTDIR} install
+	# Install binfmt configurations
+	vmkdir usr/share/binfmts
+	HOST_ARCH="${XBPS_TARGET_MACHINE%-musl}" ./scripts/qemu-binfmt-conf.sh \
+		--debian --qemu-path /usr/bin --qemu-suffix -static \
+		--exportdir "${DESTDIR}/usr/share/binfmts"
 	# Remove unneeded stuff.
-	rm -rf ${DESTDIR}/etc ${DESTDIR}/usr/share ${DESTDIR}/usr/libexec
+	rm -rf -- "${DESTDIR}/etc" "${DESTDIR}/usr/libexec"
+	for d in doc locale man qemu; do
+		rm -rf -- "${DESTDIR}/usr/share/${d}"
+	done
 	for f in nbd io img; do
-		rm -f ${DESTDIR}/usr/bin/qemu-${f}
+		rm -f -- "${DESTDIR}/usr/bin/qemu-${f}"
 	done
+}
+
+post_install() {
 	for f in ${DESTDIR}/usr/bin/*; do
-		mv ${f} ${f}-static
+		mv "${f}" "${f}-static"
 	done
 }
diff --git a/srcpkgs/qemu/patches/qemu-binfmts.patch b/srcpkgs/qemu/patches/qemu-binfmts.patch
new file mode 100644
index 000000000000..40c6f6481973
--- /dev/null
+++ b/srcpkgs/qemu/patches/qemu-binfmts.patch
@@ -0,0 +1,60 @@
+Source: Cameron Nemo <cnemo@tutanota.com>
+Upstream: false
+
+Add in the binfmts for ppcle and cris architectures.
+
+--- scripts/qemu-binfmt-conf.sh.orig	2021-04-27 16:04:03.556284793 -0700
++++ scripts/qemu-binfmt-conf.sh	2021-04-27 16:05:10.906096654 -0700
+@@ -2,9 +2,9 @@
+ # Enable automatic program execution by the kernel.
+ 
+ qemu_target_list="i386 i486 alpha arm armeb sparc sparc32plus sparc64 \
+-ppc ppc64 ppc64le m68k mips mipsel mipsn32 mipsn32el mips64 mips64el \
++ppc ppc64 ppcle ppc64le m68k mips mipsel mipsn32 mipsn32el mips64 mips64el \
+ sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb \
+-microblaze microblazeel or1k x86_64"
++microblaze microblazeel or1k x86_64 cris"
+ 
+ i386_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00'
+ i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
+@@ -50,6 +50,10 @@
+ ppc64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
+ ppc64_family=ppc
+ 
++ppcle_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14\x00'
++ppcle_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00'
++ppcle_family=ppcle
++
+ ppc64le_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00'
+ ppc64le_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00'
+ ppc64le_family=ppcle
+@@ -136,6 +140,10 @@
+ or1k_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
+ or1k_family=or1k
+ 
++cris_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x4c\x00'
++cris_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
++cris_family=cris
++
+ qemu_get_family() {
+     cpu=${HOST_ARCH:-$(uname -m)}
+     case "$cpu" in
+@@ -148,7 +156,7 @@
+     "Power Macintosh"|ppc64|powerpc|ppc)
+         echo "ppc"
+         ;;
+-    ppc64el|ppc64le)
++    ppc64el|ppc64le|ppcle)
+         echo "ppcle"
+         ;;
+     arm|armel|armhf|arm64|armv[4-9]*l|aarch64)
+@@ -163,6 +171,9 @@
+     riscv*)
+         echo "riscv"
+         ;;
++    cris*)
++        echo "cris"
++        ;;
+     *)
+         echo "$cpu"
+         ;;

From 3036e35c8c01f2d414113210225378c41c6de23a Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cnemo@tutanota.com>
Date: Sun, 19 Apr 2020 00:25:06 -0700
Subject: [PATCH 3/3] wine: use binfmt_files

---
 srcpkgs/wine/files/binfmts/wine | 3 +++
 srcpkgs/wine/template           | 6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/wine/files/binfmts/wine

diff --git a/srcpkgs/wine/files/binfmts/wine b/srcpkgs/wine/files/binfmts/wine
new file mode 100644
index 000000000000..cb52a0763342
--- /dev/null
+++ b/srcpkgs/wine/files/binfmts/wine
@@ -0,0 +1,3 @@
+package wine
+interpreter /usr/bin/wine
+magic MZ
diff --git a/srcpkgs/wine/template b/srcpkgs/wine/template
index 9a7171732704..cff15bd4e48e 100644
--- a/srcpkgs/wine/template
+++ b/srcpkgs/wine/template
@@ -1,7 +1,7 @@
 # Template file for 'wine'
 pkgname=wine
 version=6.8
-revision=1
+revision=2
 _pkgver=${version/r/-r}
 create_wrksrc=yes
 build_wrksrc=wine-${_pkgver}
@@ -91,6 +91,8 @@ do_check() {
 }
 
 post_install() {
+	# binfmt configuration
+	vinstall "${FILESDIR}/binfmts/wine" 0644 usr/share/binfmts
 	# Font aliasing settings for Win32 applications
 	install -d ${DESTDIR}/etc/fonts/conf.{avail,d}
 	install -m644 ${FILESDIR}/30-win32-aliases.conf ${DESTDIR}/etc/fonts/conf.avail
@@ -131,7 +133,7 @@ wine-devel_package() {
 
 wine-common_package() {
 	short_desc+=" - common files"
-	binfmts="/usr/bin/wine --magic MZ"
+	binfmt_files="wine"
 	pkg_install() {
 		vmove usr/share
 		vmove etc/fonts

  parent reply	other threads:[~2021-05-10 17:21 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-10395@inbox.vuxu.org>
2020-03-08  0:09 ` CameronNemo
2020-04-19  7:26 ` [PR PATCH] [Updated] " CameronNemo
2020-07-10  0:17 ` fosslinux
2020-07-22 13:08 ` [PR REVIEW] " sgn
2020-09-21  0:12 ` [PR PATCH] [Updated] " CameronNemo
2020-09-21  0:13 ` [PR REVIEW] " CameronNemo
2020-09-21  1:06 ` CameronNemo
2020-09-21  1:07 ` CameronNemo
2020-11-01  1:40 ` ericonr
2020-11-01 19:11 ` [PR PATCH] [Updated] " CameronNemo
2020-11-01 19:11 ` CameronNemo
2020-11-02  4:08 ` ericonr
2020-11-02 17:49 ` [PR PATCH] [Updated] " CameronNemo
2021-01-13 18:22 ` [PR REVIEW] " ericonr
2021-02-11 21:39 ` ericonr
2021-04-27 22:44 ` [PR PATCH] [Updated] " CameronNemo
2021-04-27 22:44 ` [PR REVIEW] " CameronNemo
2021-04-27 23:08 ` CameronNemo
2021-04-27 23:13 ` ericonr
2021-05-10 17:21 ` CameronNemo [this message]
2021-05-10 17:21 ` CameronNemo
2022-04-15  0:51 ` github-actions
2022-04-29  2:13 ` [PR PATCH] [Closed]: " github-actions
2022-09-30  3:12 ` CameronNemo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210510172109.kt9XxZ4Tyt7FPEoHSpNtlaJbDRX1LhCA-6axnTMbngs@z \
    --to=cameronnemo@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).