ap/optipng added, version 0.7.7.

OptiPNG is a PNG optimizer that recompresses image files to a smaller
size, without losing any information. This program also converts
external formats (BMP, GIF, PNM and TIFF) to optimized PNG, and
performs PNG integrity checks and corrections. Utility is widely
used by Minetest modders for texture processing.

URL: http://optipng.sourceforge.net/

Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
This commit is contained in:
Michal Cieslakiewicz 2021-08-18 15:41:38 +02:00
parent 9647b50998
commit 8dd01b2684
3 changed files with 149 additions and 0 deletions

5
ap/optipng/get_sources.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
SRC=optipng
VERSION=0.7.7
set -x
wget -c https://sourceforge.net/projects/optipng/files/OptiPNG/${SRC}-${VERSION}/${SRC}-${VERSION}.tar.gz

125
ap/optipng/optipng.SlackBuild Executable file
View File

@ -0,0 +1,125 @@
#!/bin/sh
# Set initial variables:
CWD=$(pwd)
APP=optipng
VERSION=$(ls $APP-*.tar.?z* | sed -e 's/\.tar\..z.*//' | rev | cut -d- -f1 | rev)
MARCH=${MARCH:-native}
ARCH=${ARCH:-x86_64}
BUILD=${BUILD:-1}
TAG=${TAG:-micu}
LIBSUFFIX=""
if [ "$MARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mtune=i686"
elif [ "$MARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$MARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$MARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686"
elif [ "$MARCH" = "nocona" ]; then
SLKCFLAGS="-O2 -march=nocona -mtune=generic -mmmx -msse -msse2 -msse3"
elif [ "$MARCH" = "core2" ]; then
SLKCFLAGS="-O2 -march=core2 -mtune=core2 -mmmx -msse -msse2 -msse3"
elif [ "$MARCH" = "atom" ]; then
SLKCFLAGS="-O2 -march=core2 -mcx16 -msahf --param l1-cache-size=24 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=core2 -mfpmath=sse -mmmx -msse -msse2 -msse3"
elif [ "$MARCH" = "sandybridge" ]; then
SLKCFLAGS="-O2 -march=sandybridge"
elif [ "$MARCH" = "pentium3" ]; then
SLKCFLAGS="-O2 -march=pentium3 -mmmx -msse"
elif [ "$MARCH" = "pentium2" ]; then
SLKCFLAGS="-O2 -march=pentium2 -mmmx"
elif [ "$MARCH" = "s390" ]; then
SLKCFLAGS="-O2"
else
SLKCFLAGS="-O2 -march=$MARCH"
fi
if [ "$ARCH" = "x86_64" ]; then
LIBSUFFIX=${LIBSUFFIX:-64}
SLKCFLAGS="$SLKCFLAGS -fPIC -m64"
fi
MAKE="make -j $(nproc)"
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 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure -prefix=/usr \
-mandir=/usr/man \
-disable-debug \
-with-system-libs || 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 $PKG/usr/sbin
( 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
mkdir -p $PKG/usr/doc/$APP-$VERSION
cp -a AUTHORS.txt LICENSE.txt doc/* $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

19
ap/optipng/slack-desc Normal file
View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. You must make
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
optipng: optipng (lossless PNG optimizer)
optipng:
optipng: OptiPNG is a PNG optimizer that recompresses image files to a smaller
optipng: size, without losing any information. This program also converts
optipng: external formats (BMP, GIF, PNM and TIFF) to optimized PNG, and
optipng: performs PNG integrity checks and corrections.
optipng:
optipng: URL: http://optipng.sourceforge.net/
optipng:
optipng:
optipng: