aboutsummaryrefslogtreecommitdiffstats
path: root/main/paxmark
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2014-10-10 16:13:32 +0300
committerTimo Teräs <timo.teras@iki.fi>2014-10-31 11:35:44 +0200
commit9bf92fec7ff2f532a6a8bfcfda9b7c463ac932ac (patch)
tree154187db450b7e1066d0b3a979ecdcbd264f3d94 /main/paxmark
parent538699c853816755c66c15f39f5d783005e1480a (diff)
downloadaports-9bf92fec7ff2f532a6a8bfcfda9b7c463ac932ac.tar.bz2
aports-9bf92fec7ff2f532a6a8bfcfda9b7c463ac932ac.tar.xz
main/paxmark: new aport
ship alpine specific paxmark.sh that does the correct paxmarking. intended to be used in APKBUILDs to tag files. similar to what you would find from elfix.
Diffstat (limited to 'main/paxmark')
-rw-r--r--main/paxmark/APKBUILD27
-rw-r--r--main/paxmark/paxmark25
2 files changed, 52 insertions, 0 deletions
diff --git a/main/paxmark/APKBUILD b/main/paxmark/APKBUILD
new file mode 100644
index 0000000000..4df862bc71
--- /dev/null
+++ b/main/paxmark/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=paxmark
+pkgver=0.5
+pkgrel=0
+pkgdesc="Manage PaX marking of executables"
+url="http://alpinelinux.org"
+arch="noarch"
+license="GPL"
+depends="paxctl attr"
+makedepends=""
+install=""
+subpackages=""
+source="paxmark"
+
+build() {
+ return 0
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/sbin
+ install -m755 "$srcdir"/paxmark "$pkgdir"/usr/sbin || return 1
+ ln -s paxmark "$pkgdir"/usr/sbin/paxmark.sh || return 1
+}
+
+md5sums="08027e79219ed9b6d0e851e70dfa5f87 paxmark"
+sha256sums="be68fcf5ac7a84586e9201f0cca977d8cd4f824058f94b5b89e55f8c3f97711c paxmark"
+sha512sums="346119a2cc675eb55440057a83fa9aba7a88bfd5bcc851b7ece34f60fbf5836e984f12af30894da3c795a02639ba189f730d403ef669457048c9777e0b2aaeca paxmark"
diff --git a/main/paxmark/paxmark b/main/paxmark/paxmark
new file mode 100644
index 0000000000..562cce78fe
--- /dev/null
+++ b/main/paxmark/paxmark
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+local ret=0
+local flags="${1//[!zPpEeMmRrSs]}"
+[ -n "${flags}" ] || return 0
+shift
+
+# Create PT_PAX marking (remove after migration)
+for f in "$@"; do
+ paxctl -q${flags} "${f}" >/dev/null 2>&1 && continue
+ paxctl -qC${flags} "${f}" >/dev/null 2>&1 && continue
+ paxctl -qc${flags} "${f}" >/dev/null 2>&1 && continue
+ ret=1
+done
+
+# Create XATTR_PAX marking using attr
+flags="${flags//z}"
+[ -n "${flags//[!Ee]}" ] || flags="${flags}e"
+for f in "$@"; do
+ attr -q -s pax.flags -V "${flags}" "${f}" >/dev/null 2>&1 && continue
+ ret=1
+done
+
+return $ret
+