aboutsummaryrefslogtreecommitdiff
path: root/system/xar/xar.SlackBuild
blob: e8f80a88a22981d98d51f50a4708a0a5ceb37ad2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/bin/bash

# Slackware build script for xar

# Written by B. Watson (urchlay@slackware.uk)

# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.

# Notes:

# Man page says xar is no longer actively developed. I added this to
# SBo in order to extract old archives I ran into, so this doesn't
# bother me.

# The original google code project is dead, and so is mackyle's github
# project. The Apple project might be deprecated, but it's still being
# updated.

# 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...

# 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}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

SRCVER="$( echo $VERSION | cut -d+ -f2 )"

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
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
done

# -I doesn't affect #include "blah.h".
sed -i 's,"\(\(util\|filetree\)\.h\)",<\1>,' src/xar.c

# xar executable, library, and includes. have to manually add
# openssl's libs, and jigger the include path for <util.h> and
# <filetree.h>.
sh autogen.sh --noconfigure

LIBS="$( pkg-config --libs openssl )" \
CFLAGS="$SLKCFLAGS -Wl,-s -I$(pwd)/lib" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --disable-static \
  --build=$ARCH-slackware-linux

make
make install DESTDIR=$PKG
gzip $PKG/usr/man/man?/*
rm -f $PKG/usr/lib*/*.la
strip $PKG/usr/lib*/*.so*

cd -

PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a README xar.txt xar/{ChangeLog,LICENSE,TODO} $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE