diff options
Diffstat (limited to 'legacy/paxmark')
-rw-r--r-- | legacy/paxmark/APKBUILD | 23 | ||||
-rw-r--r-- | legacy/paxmark/paxmark | 33 |
2 files changed, 56 insertions, 0 deletions
diff --git a/legacy/paxmark/APKBUILD b/legacy/paxmark/APKBUILD new file mode 100644 index 000000000..3c9c69400 --- /dev/null +++ b/legacy/paxmark/APKBUILD @@ -0,0 +1,23 @@ +# Contributor: Timo Teräs <timo.teras@iki.fi> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=paxmark +pkgver=0.11 +pkgrel=1 +pkgdesc="Manage PaX marking of executables" +url="https://alpinelinux.org" +arch="noarch" +options="!check" +license="GPL-2.0-only" +depends="attr bash" +makedepends="" +install="" +subpackages="" +source="paxmark" + +package() { + mkdir -p "$pkgdir"/usr/sbin + install -m755 "$srcdir"/paxmark "$pkgdir"/usr/sbin + ln -s paxmark "$pkgdir"/usr/sbin/paxmark.sh +} + +sha512sums="ed904790bfa6c86e216e2c8c1ed8fb1f997b7d1a55f997459655e402d8eec6447095709e38472cf909ea4d03e623e3e0eeddc0da57378901fe9d18d8c14b68d8 paxmark" diff --git a/legacy/paxmark/paxmark b/legacy/paxmark/paxmark new file mode 100644 index 000000000..87a84f4f7 --- /dev/null +++ b/legacy/paxmark/paxmark @@ -0,0 +1,33 @@ +#!/bin/bash + +ret=0 +flags="${1//[!zPpEeMmRrSs]}" +[ -n "${flags}" ] || exit 0 +shift + +# Create XATTR_PAX marking using attr +xval="" +[ "${flags//[!P]}" ] && xval="${xval}P" +[ "${flags//[!p]}" -a -z "${flags//[!P]}" ] && xval="${xval}p" +[ "${flags//[!E]}" ] && xval="${xval}E" +[ "${flags//[!e]}" -a -z "${flags//[!E]}" ] && xval="${xval}e" +[ -z "${flags//[!zEe]}" ] && xval="${xval}e" +[ "${flags//[!M]}" ] && xval="${xval}M" +[ "${flags//[!m]}" -a -z "${flags//[!M]}" ] && xval="${xval}m" +[ "${flags//[!R]}" ] && xval="${xval}R" +[ "${flags//[!r]}" -a -z "${flags//[!R]}" ] && xval="${xval}r" +[ "${flags//[!S]}" ] && xval="${xval}S" +[ "${flags//[!s]}" -a -z "${flags//[!S]}" ] && xval="${xval}s" + +for f in "$@"; do + if [ -n "FAKEROOTKEY" ]; then + # fakeroot does not set xattr's on disk. + # explicitly do that, because the marked binary might + # be executed next during install. + LD_PRELOAD="" FAKEROOTKEY="" attr -q -s pax.flags -V "${xval}" "${f}" >/dev/null || ret=1 + fi + attr -q -s pax.flags -V "${xval}" "${f}" >/dev/null || ret=1 +done + +exit $ret + |