diff options
Diffstat (limited to 'system/xar')
-rw-r--r-- | system/xar/patches/series | 7 | ||||
-rw-r--r-- | system/xar/patches/xar-1.8.0.0.487-non-darwin.patch | 12 | ||||
-rw-r--r-- | system/xar/patches/xar-1.8.0.0.487-variable-sized-object.patch | 18 | ||||
-rw-r--r-- | system/xar/xar.SlackBuild | 54 | ||||
-rw-r--r-- | system/xar/xar.info | 6 |
5 files changed, 79 insertions, 18 deletions
diff --git a/system/xar/patches/series b/system/xar/patches/series new file mode 100644 index 0000000000..49d45200fe --- /dev/null +++ b/system/xar/patches/series @@ -0,0 +1,7 @@ +xar-1.6.1-ext2.patch +xar-1.8-safe_dirname.patch +xar-1.8-arm-ppc.patch +xar-1.8-openssl-1.1.patch +xar-1.8.0.0.452-linux.patch +xar-1.8.0.0.487-non-darwin.patch +xar-1.8.0.0.487-variable-sized-object.patch diff --git a/system/xar/patches/xar-1.8.0.0.487-non-darwin.patch b/system/xar/patches/xar-1.8.0.0.487-non-darwin.patch new file mode 100644 index 0000000000..c350f69f4c --- /dev/null +++ b/system/xar/patches/xar-1.8.0.0.487-non-darwin.patch @@ -0,0 +1,12 @@ +don't do availability stuff on non-Darwin + +--- a/include/xar.h.in ++++ b/include/xar.h.in +@@ -52,6 +52,7 @@ + #import <os/availability.h> + #else + #define API_DEPRECATED(...) ++#define API_AVAILABLE(...) + #endif + + #pragma pack(4) diff --git a/system/xar/patches/xar-1.8.0.0.487-variable-sized-object.patch b/system/xar/patches/xar-1.8.0.0.487-variable-sized-object.patch new file mode 100644 index 0000000000..8779c1129c --- /dev/null +++ b/system/xar/patches/xar-1.8.0.0.487-variable-sized-object.patch @@ -0,0 +1,18 @@ +GCC doesn't like this: + +filetree.c:744:9: error: variable-sized object may not be initialized + +Since there's nothing changing at runtime at all, just make the compiler +see it's always going to be 1. + +--- a/lib/filetree.c ++++ b/lib/filetree.c +@@ -740,7 +740,7 @@ + size_t fspath1_size = 0, fspath2_size = 0; + size_t ns1_size = 0, ns2_size = 0; + const struct __xar_file_t * child1 = NULL, * child2 = NULL; +- const uint keys_to_ignore_count = 1; ++#define keys_to_ignore_count 1 + char * keys_to_ignore[keys_to_ignore_count] = { "id" }; // ID is allowed ot mismatch + + // If the two pointers match, call it the same. diff --git a/system/xar/xar.SlackBuild b/system/xar/xar.SlackBuild index c2879c6d63..242854f5c9 100644 --- a/system/xar/xar.SlackBuild +++ b/system/xar/xar.SlackBuild @@ -13,18 +13,33 @@ # bother me. # The original google code project is dead, and so is mackyle's github -# project. The Apple project might be deprecated, but it was last -# updated in 2020, so it's at least not ancient history. +# project. The Apple github project might be deprecated, but it's +# still being updated (as of August 2023). -# For some reason, gentoo and other distros want to give this the -# version number "1.8.0.0.452". Dunno where the extra zeroes come -# from. "xar --version" reports "1.8dev", the tarball's version -# number is the SVN revision, 452... +# For some reason, gentoo and other distros want to give this version +# numbers like "1.8.0.0.452". Dunno where the extra zeroes come from. +# "xar --version" reports "1.8dev", the tarball's version number +# is the SVN revision (452, 498, etc). + +# 20231118 bkw: update for v498. + +# 20230711 bkw: no script changes, just a note to myself: there's now +# a 496 tag, and it won't compile either. + +# 20230106 bkw: apple quit hosting their own tarball, old URL is now +# a redirect to a github generated one, script has to change to handle it. + +# 20221229 bkw: this is still being developed, code is at +# https://github.com/apple-oss-distributions/xar/ but the latest tag +# (494) won't compile, and I don't love this enough to spend time on +# it right now. If it bothers you, fix it and send me a patch. + +# 20221229 bkw: BUILD=2, strip library (derp!) cd $(dirname $0) ; CWD=$(pwd) PRGNAM=xar -VERSION=${VERSION:-1.8dev+452} +VERSION=${VERSION:-1.8dev+498} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -42,7 +57,6 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then exit 0 fi -CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} @@ -68,21 +82,30 @@ SRCVER="$( echo $VERSION | cut -d+ -f2 )" rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP -rm -rf $PRGNAM-$SRCVER -tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz -cd $PRGNAM-$SRCVER +rm -rf $PRGNAM-$PRGNAM-$SRCVER +tar xvf $CWD/$PRGNAM-$PRGNAM-$SRCVER.tar.gz +cd $PRGNAM-$PRGNAM-$SRCVER chown -R root:root . find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ cd $PRGNAM -# patches came from gentoo: -# https://gitweb.gentoo.org/repo/gentoo.git/tree/app-arch/xar -for i in $CWD/patches/*.patch; do - patch -p1 < $i +# Patches came from liguros: +# https://gitlab.com/liguros/liguros-repo/-/tree/stable/app-arch/xar +for i in $( cat $CWD/patches/series ); do + patch -p1 < $CWD/patches/$i done +# This bit comes from liguros's xar-498.ebuild. +sed -i 's/__APPLE__/__NO_APPLE__/' lib/hash.c lib/archive.h +cp lib/*.h include + +# Make #include <xar/xar.h> include the one in the build dir, not +# any system-wide one in /usr/include. +mkdir include/xar +ln -sf ../xar.h include/xar/xar.h + # -I doesn't affect #include "blah.h". sed -i 's,"\(\(util\|filetree\)\.h\)",<\1>,' src/xar.c @@ -107,6 +130,7 @@ make make install DESTDIR=$PKG gzip $PKG/usr/man/man?/* rm -f $PKG/usr/lib*/*.la +strip $PKG/usr/lib*/*.so* cd - diff --git a/system/xar/xar.info b/system/xar/xar.info index 7b5a945215..86abd2cf83 100644 --- a/system/xar/xar.info +++ b/system/xar/xar.info @@ -1,8 +1,8 @@ PRGNAM="xar" -VERSION="1.8dev+452" +VERSION="1.8dev+498" HOMEPAGE="https://opensource.apple.com/source/xar/" -DOWNLOAD="https://opensource.apple.com/tarballs/xar/xar-452.tar.gz" -MD5SUM="79e673ca905a16674dae0ce54d7ead5b" +DOWNLOAD="https://github.com/apple-oss-distributions/xar/archive/xar-498/xar-xar-498.tar.gz" +MD5SUM="4a4bcc060d8e9a1678c39ee3b701c44b" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" |