summaryrefslogtreecommitdiffstats
path: root/accessibility/xdotool/xdotool.SlackBuild
blob: edfe80d8440f32a071eedf73e6a4f47dd042684b (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
#!/bin/bash

# Slackware build script for xdotool

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

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

# 20200329 bkw:
# - BUILD=3
# - Stop including references to the build and $PKG dirs in the binary. This
#   was a potential security risk. Thanks to Leonardo Citrolo for reporting
#   this (along with a solution).
# - Actually install the binary stripped.

# 20191219 bkw:
# - BUILD=2
# - install API (doxygen) docs.

# 20170618 bkw:
# - stop running ldconfig during 'make install'. this is really just me being
#   nitpicky, but build scripts should never affect anything outside of $TMP.

# 20170301 bkw:
# - get rid of support for v$VERSION.tar.gz
# - use correct WTFPL link
# - rearrange changelog so newer entries at the top

# 20161010 bkw:
# - v3.20160805.1, BUILD=1
# - install doc/examples/*.sh without execute bits.

# 20160831 bkw:
# - bump BUILD
# - strip shared lib, not just the binary.
# - change the header permissions in $PKG, not /usr/include!
#   thanks to vonbiber for spotting these.

# 20151126 bkw:
# - fix xdo.h permissions

# 20151028 bkw:
# - updated for xdotool 3.20150503.1.

# 20120411 bkw:
# - updated for xdotool 2.20110530.1.
# - install CHANGELIST in doc dir
# - make & install HTML doc instead of raw POD doc
# - fix permissions in examples/

PRGNAM=xdotool
VERSION=${VERSION:-3.20160805.1}
BUILD=${BUILD:-3}
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

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

# 20200329 bkw: make this section a bit more readable I hope.
# The LDCONFIG=true is counter-intuitive: it means "run the 'true'
# command instead of the 'ldconfig' command". In other words, do
# NOT run ldconfig (opposite of what it seems to mean in English).
COMMON="WITHOUT_RPATH_FIX=1 LDCONFIG=true"
LIBDIR=/usr/lib$LIBDIRSUFFIX

mkdir -p $PKG/$LIBDIR

make \
  WARNFLAGS="$SLKCFLAGS" \
  PREFIX=/usr \
  INSTALLLIB=$LIBDIR \
  $COMMON

make install \
  PREFIX=$PKG/usr \
  INSTALLLIB=$PKG/$LIBDIR \
  $COMMON

# 20200329 bkw: strip binary *after* installing, since 'make install' is
# relinking it.
strip $PKG/usr/bin/$PRGNAM $PKG/usr/lib$LIBDIRSUFFIX/libxdo.so.?

make docs $PRGNAM.html

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

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
chmod 0644 examples/*.sh $PKG/usr/include/*.h
cp -a CHANGELIST README COPYRIGHT examples $PRGNAM.html docs/html \
      $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}