aboutsummaryrefslogtreecommitdiff
path: root/system/ded/ded.SlackBuild
blob: d7831ed63474db83cba7e6550aa82de8f4e58944 (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
#!/bin/bash

# Slackware build script for ded

# Written by B. Watson (yalhcru@gmail.com)

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

# At one time, there was a ded package on slackbuilds.org, for Slack 12.2.
# This build script was written from scratch for 14.1, without referring
# to the old script.

# 20210220 bkw: updated for 20210110. get rid of configure patch, found
#               a better way to disable the long filename test.
# 20200111 bkw: updated for 20200428 release
# 20200111 bkw: updated for 20191226 release
# 20180915 bkw: updated for 20180324 release

# 20170819 bkw:
# - ftp server's been down >1 week, use http archives for DOWNLOAD

# 20170305 bkw:
# - stop gnulib's long filename test from writing to /usr/lib and /var/lib

# 20150909 bkw: updated for 20150704 release
# 20140826 bkw:
# - updated for 20140722 release
# - added td_lib docs in /usr/doc

PRGNAM=ded
VERSION=${VERSION:-20210110}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
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

# not going to make td_lib a separate package. If anyone's packaging up any
# of the (very few) apps that use td_lib, let them list ded as a dependency.
LIBNAM=td_lib
LIBVER=${LIBVER:-$VERSION}

# build everything here so it's easy to clean up after
BUILDDIR=$TMP/$PRGNAM-build

rm -rf $PKG $BUILDDIR
mkdir -p $BUILDDIR $PKG $OUTPUT

cd $BUILDDIR
rm -rf $LIBNAM-$LIBVER
tar xvf $CWD/$LIBNAM-$LIBVER.tgz
cd $LIBNAM-$LIBVER
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 {} \+

# "checking for long filenames" wants to create files in /usr/lib and
# /var/lib. Violates the principle of least surprise: users don't expect
# configure scripts (or SlackBuilds) to touch their system directories.

# This *should* work, but doesn't, I guess because configure.in is too old.
#sed -i '/^AC_SYS_LONG_FILE_NAMES/d' configure.in
#autoreconf -i

# It turns out we can force it in the environment.
ac_cv_sys_long_file_names="set" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --build=$ARCH-slackware-linux

# NB: the -j1's are necessary, even on 'make install'.
make -j1

# actually, don't really need to make install, ded's configure will find
# the static lib just fine, but there do exist other apps that use td_lib
# so we'll include it in the package too. Upstream doesn't let us build
# it as a shared lib.
make -j1 install DESTDIR=$PKG

# let's include the td_lib docs
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/$LIBNAM-$LIBVER
cp -a CHANGES COPYING README $PKG/usr/doc/$PRGNAM-$VERSION/$LIBNAM-$LIBVER

cd $BUILDDIR
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tgz
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 \
  --mandir=/usr/man \
  --build=$ARCH-slackware-linux

make -j1
make -j1 install DESTDIR=$PKG

strip $PKG/usr/bin/$PRGNAM
gzip -9 $PKG/usr/man/man1/$PRGNAM.1

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a CHANGES COPYING README $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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:-tgz}