summaryrefslogtreecommitdiffstats
path: root/libraries/imlib2_loaders/imlib2_loaders.SlackBuild
blob: 2d96da080e150829a813f3e6275bde741a796b6a (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#!/bin/bash

# Slackware build script for imlib2_loaders

# Copyright 2017 Azure Zanculmarktum <email removed>
# Copyright 2020-2021 Igor Alexandrov <email removed>
# Copyright 2023-2024 B. Watson (urchlay@gmail.com), current maintainer.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# 20240827 bkw: update for v1.12.3. Again, no code changes. I wish
# upstream would stop releasing these with "no changes since v1.x.x"
# ChangeLog entries. All it does is make people contact me to update
# this build, which I can't even complain about because my README asks
# them to...

# 20230902 bkw: update for v1.11.1.
# Note that the code didn't change between 1.10.0 and 1.11.1. In fact
# there's a 1.12.0 and *it* has identical code. Basically, upstream
# (re)releases this whenever the main imlib2 package updates, whether it
# makes sense or not.

# 20230213 bkw: update for v1.10.0.
# - take over maintenance.
# - expand README and slack-desc.
# - simplify build.
# - get rid of .la file.
# - add imlib2 to REQUIRES. it really is a hard dep (always was).
# - only package the license that actually applies.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=imlib2_loaders
VERSION=${VERSION:-1.12.3}
BUILD=${BUILD:-1}
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

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 -eu

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
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 {} +

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --disable-static \
  --disable-eet \
  --build=$ARCH-slackware-linux
make
make install-strip DESTDIR=$PKG

# we don't need this:
rm -f $PKG/usr/lib*/imlib2/loaders/*.la

# 20230213 bkw: A note about the multiple COPYING files:
#
# - COPYING is a BSD/MIT style license. It's the same as COPYING
#   for imlib2. However, the source no longer contains any of
#   the code this license once applied to, so I don't include
#   it in the package. It would be misleading to do so (see below).
#
# - COPYING-PLAIN is just the lawyer-to-English translation of
#   COPYING (again, same as imlib2). Not included for the same reason.
#
# - COPYING.loader_xcf is the actual license for the single plugin
#   this installs (xcf.so). It's a copy of the GPLv2, because the xcf
#   plugin incorporates code taken from the Gimp, which is GPLv2.
#
# If you're wondering about the ./configure message about the "eet"
# format... it can't be built. Enabling it requires some Enlightenment
# libraries. If you install those (or even if you don't), then build
# with --enable-eet, the configure script will tell you "Eet loader
# is broken". So there's no need to include whatever license the eet
# loader uses, as we can't include the code anyway.
#
# This is more excruciating detail than anyone really cares about.
# It's mostly a note to myself, to remind me why I didn't include all
# 3 COPYING* files in the package.

PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a AUTHORS COPYING.loader_xcf ChangeLog README $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