blob: 52de376c8227c6f95ff80a768accad6aba6b538f (
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
150
151
152
153
154
|
#!/bin/bash
# Slackware build script for kmscon
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# 20250817 bkw:
# - update for v9.1.0 (libtsm v4.1.0).
# - add python3-meson-opt to REQUIRES, remove meson-compat.diff.
# 20230722 bkw: switch to Aetf's fork, which looks actively
# maintained. Thanks to lockywolf for finding it. Also, include
# libtsm here instead of as a separate build: it's been on SBo for ~9
# years and nothing but this ever depended on it.
# 20210825 bkw: update to the last git commit, post v8 release. It's from
# 2014, so I doubt there will be more version updates.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=kmscon
VERSION=${VERSION:-9.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
LIBNAM=libtsm
LIBVER=${LIBVER:-4.1.0}
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 -e
# 20250817 bkw: meson can't easily be coerced to ignore the libs
# in /usr/lib64 if already installed. just punt, if the old libs
# are there.
if pkg-config --exists libtsm && ! pkg-config --exact-version=$LIBVER libtsm; then
cat <<EOF
***
* An older version of kmscon's libtsm is installed. The build would
* fail. Get rid of it:
removepkg kmscon
* ...and try this build again.
***
EOF
exit 1
fi
TOPDIR=$TMP/$PRGNAM-build
rm -rf $PKG $TOPDIR
mkdir -p $TOPDIR $PKG $OUTPUT
cd $TOPDIR
tar xvf $CWD/$PRGNAM-$VERSION.tar.[xg]z
tar xvf $CWD/$LIBNAM-$LIBVER.tar.gz
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 {} +
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
LIBDOC=$PKGDOC/$LIBNAM-$LIBVER
mkdir -p $LIBDOC
# first, the library:
cd $TOPDIR/$LIBNAM-$LIBVER
mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release ..
make
make install/strip DESTDIR=$PKG
cd ..
cp -a COPYING LICENSE_htable NEWS README* $LIBDOC
export PKG_CONFIG_PATH=$PKG/usr/lib$LIBDIRSUFFIX/pkgconfig:$PKG_CONFIG_PATH
# now, build the app, using the lib we just built.
cd $TOPDIR/$PRGNAM-$VERSION
# 20250817 bkw: I could probably patch meson.build to work with 15.0's
# old meson, but I don't love meson enough to spend time learning how
# just at the moment. Thanks to fourtysixandtwo for providing a newer
# meson.
PYVER=$(python3 -c 'import sys; print("%d.%d" % sys.version_info[:2])')
export PYTHONPATH=/opt/python$PYVER/site-packages
mkdir build
cd build
LDFLAGS="-L$PKG/usr/lib$LIBDIRSUFFIX -ldl" \
CFLAGS="-I$PKG/usr/include $SLKCFLAGS" \
meson setup .. \
--buildtype=release \
--infodir=/usr/info \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--localstatedir=/var \
--mandir=/usr/man \
--prefix=/usr \
--sysconfdir=/etc \
-Dstrip=true
"${NINJA:=ninja}" -v
DESTDIR=$PKG $NINJA install
cd ..
gzip $PKG/usr/man/man1/$PRGNAM.1
mkdir -p $PKG/etc/$PRGNAM
cat $CWD/$PRGNAM.conf > $PKG/etc/$PRGNAM/$PRGNAM.conf.new
cp -a COPYING NEWS README* docs/*.txt $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|