aboutsummaryrefslogtreecommitdiff
path: root/office/taskd/taskd.SlackBuild
blob: db84701c7e6868270b34e95616636249b856d7e3 (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 taskd

# 2015 Robert Allen
# All rights reserved, including Creator Endowed Unalienable Rights
################################################################
# Statement of Origin and Principle:
# This script was adapted from SBo template for taskd use
# by Robert Allen slacker@engineer.com, Wed Jun 24 15:09:40 MDT 2015
#
# I respectfully request that you leave this statement of origin
# and the following acknowledgment of right to use, modify and
# distribute, intact in your own versions and those you may pass
# to others. I encourage you to use this statement of origin for
# your own work instead of a copy/paste license or copyright
# which you neither understand nor could enforce on others.
################################################################
# Acknowledgment of right to use, copy, modify and distribute:
#
# You already have the right to use, modify and distribute this
# or any other thought or idea, and need no license or other
# permission from anyone to do so!
#
# Exercise it freely and never concede it to anyone!
#
# To be first to think or publish an idea is only to be first
# to demonstrate that it is a human possibility, and to provide
# a single step in the path of human progress to help ourselves
# and all others along our shared journey into the future.
#
# To claim ownership of an idea, a shared human possibility, by
# contrived legal devices is an act of greed and arrogance that
# attempts to rob every other human being of the same right to
# think and benefit from that same shared human possibility.
#
# Acknowledge and respect the work of others. Enjoy the respect
# earned by your own good works, and encourage and applaud those
# who would build on it!
#
# Free your mind, and those around you!
#
# Abolish the pernicious impediment to human progress known as
# intellectual property law which obstructs all our future paths
# only for the immediate gain of a few.
#
################################################################

PRGNAM=taskd
VERSION=${VERSION:-1.1.0}
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

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION

#Patch to use global path config and add startup comments for rc.taskd
patch -p0 <$CWD/rc.taskd.diff

chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;


mkdir -p build
  cmake \
    -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DTASKD_BINDIR=bin \
    -DTASKD_EXTDIR=libexec/taskd \
    -DTASKD_DOCDIR=doc/$PRGNAM-$VERSION \
    -DTASKD_MAN1DIR=man/man1 \
    -DTASKD_MAN5DIR=man/man5

  make
  make install DESTDIR=$PKG

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

mkdir -p $PKG/etc/rc.d
mv $PKG/usr/bin/taskdctl $PKG/etc/rc.d/rc.taskd.new
chmod 644 $PKG/etc/rc.d/rc.taskd.new

mkdir -p $PKG/etc/profile.d
cat $CWD/profile/taskddata > $PKG/etc/taskddata.new
cat $CWD/profile/taskddata.sh > $PKG/etc/profile.d/taskddata.sh.new
cat $CWD/profile/taskddata.csh > $PKG/etc/profile.d/taskddata.csh.new
chmod 755 $PKG/etc/profile.d/*new
chmod 644 $PKG/etc/taskddata.new

find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done

#Additional documents...
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/doc
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README
cat $CWD/README_SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README_SLACKWARE

#CA keys are required, pki provides tools for the task, and extra scripts
mkdir -p $PKG/usr/share/$PRGNAM-$VERSION
cp -ra pki $PKG/usr/share/$PRGNAM-$VERSION/.
cp -ra scripts $PKG/usr/share/$PRGNAM-$VERSION/.
cp -ra mon $PKG/usr/share/$PRGNAM-$VERSION/.

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:-tgz}