source: npl/overig/mlocate/mlocate.SlackBuild.orig @ 2154c77

Last change on this file since 2154c77 was 2e1206e, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit

  • Property mode set to 100755
File size: 4.9 KB
Line 
1#!/bin/sh
2
3# Copyright 2017  Patrick J. Volkerding, Sebeka, Minnesota, USA
4# All rights reserved.
5#
6# Redistribution and use of this script, with or without modification, is
7# permitted provided that the following conditions are met:
8#
9# 1. Redistributions of this script must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11#
12#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
13#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
14#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
15#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
17#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
18#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
19#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
20#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
21#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
23
24PKGNAM=mlocate
25VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
26BUILD=${BUILD:-1}
27
28# Automatically determine the architecture we're building on:
29if [ -z "$ARCH" ]; then
30  case "$(uname -m)" in
31    i?86) ARCH=i586 ;;
32    arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
33    # Unless $ARCH is already set, use uname -m for all other archs:
34    *) ARCH=$(uname -m) ;;
35  esac
36  export ARCH
37fi
38
39NUMJOBS=${NUMJOBS:-" -j7 "}
40
41if [ "$ARCH" = "i586" ]; then
42  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
43  LIBDIRSUFFIX=""
44elif [ "$ARCH" = "i686" ]; then
45  SLKCFLAGS="-O2 -march=i686"
46  LIBDIRSUFFIX=""
47elif [ "$ARCH" = "s390" ]; then
48  SLKCFLAGS="-O2"
49  LIBDIRSUFFIX=""
50elif [ "$ARCH" = "x86_64" ]; then
51  SLKCFLAGS="-O2 -fPIC"
52  LIBDIRSUFFIX="64"
53elif [ "$ARCH" = "armv7hl" ]; then
54  SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
55  LIBDIRSUFFIX=""
56else
57  SLKCFLAGS="-O2"
58  LIBDIRSUFFIX=""
59fi
60
61CWD=$(pwd)
62TMP=${TMP:-/tmp}
63PKG=$TMP/package-$PKGNAM
64
65rm -rf $PKG
66mkdir -p $TMP $PKG
67
68cd $TMP
69rm -rf $PKGNAM-$VERSION
70tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
71cd $PKGNAM-$VERSION || exit 1
72
73chown -R root:root .
74find . \
75  \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
76  -exec chmod 755 {} \; -o \
77  \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
78  -exec chmod 644 {} \;
79
80# Configure:
81CFLAGS="$SLKCFLAGS" \
82./configure \
83  --prefix=/usr \
84  --sysconfdir=/etc \
85  --libdir=/usr/lib${LIBDIRSUFFIX} \
86  --localstatedir=/var/lib \
87  --mandir=/usr/man \
88  --build=$ARCH-slackware-linux || exit 1
89
90# Build and install:
91make $NUMJOBS groupname=slocate || make groupname=slocate || exit 1
92make install DESTDIR=$PKG || exit 1
93
94mkdir -p $PKG/etc
95cp -a $CWD/updatedb.conf.new $PKG/etc/updatedb.conf.new
96chown root:root $PKG/etc/updatedb.conf.new
97chmod 644 $PKG/etc/updatedb.conf.new
98
99mv $PKG/usr/bin/locate $PKG/usr/bin/mlocate
100( cd $PKG/usr/bin ; ln -sf mlocate locate )
101
102( cd $PKG/usr/man/man1
103  ln -sf locate.1 mlocate.1
104)
105
106mkdir -p $PKG/usr/libexec
107cp -a $CWD/mlocate-run-updatedb $PKG/usr/libexec/mlocate-run-updatedb
108chown root:root $PKG/usr/libexec/mlocate-run-updatedb
109chmod 755 $PKG/usr/libexec/mlocate-run-updatedb
110
111mkdir -p $PKG/etc/cron.daily
112cp -a $CWD/mlocate.cron $PKG/etc/cron.daily/mlocate
113chown root:root $PKG/etc/cron.daily/mlocate
114chmod 755 $PKG/etc/cron.daily/mlocate
115
116chown root:slocate $PKG/usr/bin/mlocate
117chmod 2711 $PKG/usr/bin/mlocate
118mkdir -p $PKG/var/lib/mlocate
119chown root:slocate $PKG/var/lib/mlocate
120chmod 750 $PKG/var/lib/mlocate
121
122# Strip binaries:
123( cd $PKG
124  #find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
125  #find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
126)
127
128# Compress and link manpages, if any:
129if [ -d $PKG/usr/man ]; then
130  ( cd $PKG/usr/man
131    for manpagedir in $(find . -type d -name "man*") ; do
132      ( cd $manpagedir
133        for eachpage in $( find . -type l -maxdepth 1 | grep -v '\.gz$') ; do
134          ln -s $( readlink $eachpage ).gz $eachpage.gz
135          rm $eachpage
136        done
137        gzip -9 *.?
138      )
139    done
140  )
141fi
142
143# Add a documentation directory:
144mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
145cp -a \
146  ABOUT-NLS AUTHORS COPYING* ChangeLog INSTALL NEWS README* \
147  $PKG/usr/doc/${PKGNAM}-$VERSION
148
149# If there's a ChangeLog, installing at least part of the recent history
150# is useful, but don't let it get totally out of control:
151if [ -r ChangeLog ]; then
152  DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
153  cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
154  touch -r ChangeLog $DOCSDIR/ChangeLog
155fi
156
157
158mkdir -p $PKG/install
159zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
160cat $CWD/slack-desc > $PKG/install/slack-desc
161
162cd $PKG
163/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
164
Note: See TracBrowser for help on using the repository browser.