summaryrefslogtreecommitdiff
path: root/legacy/paxmark
diff options
context:
space:
mode:
Diffstat (limited to 'legacy/paxmark')
-rw-r--r--legacy/paxmark/APKBUILD23
-rw-r--r--legacy/paxmark/paxmark33
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
+