diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-06-14 02:22:19 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-06-14 02:22:56 -0500 |
commit | b1eb50599e4db7eb4501af75cbbfa22007081ea5 (patch) | |
tree | c94a34c882cc17adedd781e8c5f34349b2a62416 /system/pax-utils | |
parent | b9e85bbdcf38547ef2ca4e5c2a6e6293bbcd2752 (diff) | |
download | packages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.tar.gz packages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.tar.bz2 packages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.tar.xz packages-b1eb50599e4db7eb4501af75cbbfa22007081ea5.zip |
The New Plan
all pkgs needed to bootstrap -> system
others -> user
Diffstat (limited to 'system/pax-utils')
-rw-r--r-- | system/pax-utils/APKBUILD | 42 | ||||
-rw-r--r-- | system/pax-utils/fix-eitype.patch | 28 |
2 files changed, 70 insertions, 0 deletions
diff --git a/system/pax-utils/APKBUILD b/system/pax-utils/APKBUILD new file mode 100644 index 000000000..7670ff965 --- /dev/null +++ b/system/pax-utils/APKBUILD @@ -0,0 +1,42 @@ +# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname=pax-utils +pkgver=1.2.2 +pkgrel=1 +pkgdesc="ELF related utils for ELF 32/64 binaries" +url="https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities" +arch="all" +options="!check" # Requires unpackaged dependencies +license="GPL-2.0" +depends="scanelf" +makedepends_build="" +makedepends_host="linux-headers libcap-dev" +makedepends="$makedepends_build $makedepends_host" +source="http://distfiles.gentoo.org/distfiles/${pkgname}-${pkgver}.tar.xz + fix-eitype.patch" +subpackages="$pkgname-doc scanelf:_scanelf" +builddir="$srcdir"/$pkgname-$pkgver + +build() { + cd "$builddir" + make USE_CAP=yes +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir/" install + + # Don't conflict with main/lddtree + rm -f "$pkgdir"/usr/bin/lddtree +} + +_scanelf() { + pkgdesc="Scan ELF binaries for stuff" + depends= + replaces="pax-utils" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/scanelf "$subpkgdir"/usr/bin/ +} + +sha512sums="6bafe93f3b84d4595b6adfa09b46a3dd249f309fe836d90115e9aa5fcc7da37b03f743e80719dfe6bcdb739ce6ec3843170a5513e196c348721f850e19d3e38c pax-utils-1.2.2.tar.xz +7150f162a64d9095fab4f73c4a0c531550e2286d6e09a686c62b3a692353b9e33a770ad196f647b5f26b5acafcdef05187dc9d40b40b46d508900dc3e33324a6 fix-eitype.patch" diff --git a/system/pax-utils/fix-eitype.patch b/system/pax-utils/fix-eitype.patch new file mode 100644 index 000000000..fe54ee887 --- /dev/null +++ b/system/pax-utils/fix-eitype.patch @@ -0,0 +1,28 @@ +elf->data is 'signed char' and casting it to 'int' will sign extend. +Most non-intrusive fix is to just have get_elfeitype() take type as +'unsigned char' to make implicit cast. + +diff -ru pax-utils-1.2.2.orig/paxelf.c pax-utils-1.2.2/paxelf.c +--- pax-utils-1.2.2.orig/paxelf.c 2017-01-24 20:24:53.000000000 +0000 ++++ pax-utils-1.2.2/paxelf.c 2017-09-26 07:01:00.115498082 +0000 +@@ -65,7 +65,7 @@ + QUERY(ELFOSABI_STANDALONE), + { 0, 0 } + }; +-const char *get_elfeitype(int ei_type, int type) ++const char *get_elfeitype(int ei_type, unsigned char type) + { + switch (ei_type) { + case EI_CLASS: return find_pairtype(elf_ei_class, type); +diff -ru pax-utils-1.2.2.orig/paxelf.h pax-utils-1.2.2/paxelf.h +--- pax-utils-1.2.2.orig/paxelf.h 2017-01-24 20:24:53.000000000 +0000 ++++ pax-utils-1.2.2/paxelf.h 2017-09-26 07:00:44.941879820 +0000 +@@ -56,7 +56,7 @@ + extern elfobj *_readelf(const char *filename, int read_only); + #define readelf(filename) _readelf(filename, 1) + extern void unreadelf(elfobj *elf); +-extern const char *get_elfeitype(int ei_type, int type); ++extern const char *get_elfeitype(int ei_type, unsigned char type); + extern const char *get_elfetype(elfobj *elf); + extern const char *get_endian(elfobj *elf); + extern const char *get_elfosabi(elfobj *elf); |