93c947fb68
Tested with Minetest 5.3.0. Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
102 lines
2.6 KiB
Bash
Executable File
102 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
# Set initial variables:
|
|
CWD=$(pwd)
|
|
|
|
APP=minetest
|
|
VERSION=$(ls $APP-*.tar.?z* | sed -e 's/\.tar\..z.*//' | rev | cut -d- -f1 | rev)
|
|
ARCH=${ARCH:-x86_64}
|
|
BUILD=${BUILD:-1}
|
|
TAG=${TAG:-micu}
|
|
|
|
LIBSUFFIX=""
|
|
|
|
if [ "$ARCH" = "x86_64" ]; then
|
|
LIBSUFFIX=${LIBSUFFIX:-64}
|
|
fi
|
|
|
|
MAKE="make -j 5"
|
|
|
|
if [ "$TMP" = "" ]; then
|
|
TMP=/tmp
|
|
fi
|
|
PKG=$TMP/package-$APP
|
|
rm -rf $PKG
|
|
mkdir -p $PKG
|
|
cd $TMP
|
|
rm -rf $APP-$VERSION
|
|
tar xvf $CWD/$APP-$VERSION.tar.?z* || exit 1
|
|
cd $APP-$VERSION || exit 1
|
|
chown -R root.root .
|
|
find . -perm 444 -exec chmod 644 {} \;
|
|
find . -perm 777 -exec chmod 755 {} \;
|
|
find . -perm 666 -exec chmod 644 {} \;
|
|
|
|
cmake . \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DRUN_IN_PLACE=FALSE \
|
|
-DIRRLICHT_INCLUDE_DIR=/usr/include/irrlicht \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCUSTOM_MANDIR=/usr/man \
|
|
-DENABLE_GETTEXT=TRUE \
|
|
-DBUILD_CLIENT=TRUE || exit 1
|
|
|
|
$MAKE || exit 1
|
|
make install DESTDIR=$PKG || exit 1
|
|
|
|
# Don't ship .la files:
|
|
rm -f $PKG/{,usr/}lib${LIBSUFFIX}/*.la
|
|
|
|
chown -R root.bin $PKG/usr/bin
|
|
|
|
( cd $PKG
|
|
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
|
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
|
find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null
|
|
)
|
|
|
|
# Compress and if needed symlink the man pages:
|
|
if [ -d $PKG/usr/info ]; then
|
|
rm -f $PKG/usr/info/dir
|
|
gzip -9 $PKG/usr/info/*
|
|
fi
|
|
if [ -d $PKG/usr/man ]; then
|
|
( cd $PKG/usr/man
|
|
for manpagedir in $(find . -type d -name "man*") ; do
|
|
( cd $manpagedir
|
|
for eachpage in $( find . -type l -maxdepth 1) ; do
|
|
ln -s $( readlink $eachpage ).gz $eachpage.gz
|
|
rm $eachpage
|
|
done
|
|
gzip -9 *.?
|
|
)
|
|
done
|
|
)
|
|
fi
|
|
|
|
mv $PKG/usr/share/doc $PKG/usr && mv $PKG/usr/doc/$APP $PKG/usr/doc/$APP-$VERSION
|
|
cp -a CONTRIBUTING.md LICENSE.txt README.md \
|
|
minetest.conf.example doc/*.txt \
|
|
$PKG/usr/doc/$APP-$VERSION
|
|
|
|
mkdir -p $PKG/install
|
|
[ -f $CWD/doinst.sh ] && cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
|
[ -f $CWD/doinst.sh.gz ] && zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
|
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
|
|
|
# Allow to run as non-root until now:
|
|
if [ $(id -u) -ne 0 ]; then
|
|
echo "*** Running as non-root, skipping makepkg."
|
|
echo "*** Package contents is in $PKG directory."
|
|
exit 0
|
|
fi
|
|
|
|
cd $PKG
|
|
makepkg -l y -c n $TMP/$APP-$VERSION-$ARCH-${BUILD}${TAG}.txz
|
|
|
|
# Clean up the extra stuff:
|
|
if [ "$1" = "--cleanup" ]; then
|
|
rm -rf $TMP/$APP-$VERSION
|
|
rm -rf $PKG
|
|
fi
|
|
|