#!/bin/sh # # SlackBuild for bluez-utils # http://www.bluez.org # By SukkoPera # Thanks a lot to CAT for his Slackware package cration # guide (http://www.slacky.it/misto/tutorial/spunleashed.txt) # # Check out # - http://www.sukkopera.tk # - http://www.slacky.it # - http://www.nyft.org # # Notes: # - Many files and the whole PIN management system have been stolen from the # Debian package. Thanks. # # Rewritten for Slackware 2007-05 NAME=bluez-utils # Get the current and temporary directories CWD=$(pwd) if [ "$TMP" = "" ]; then TMP=/tmp fi if [ ! -d $TMP ] then mkdir -p $TMP fi PKG=$TMP/package-$NAME # Some useful variables about the package VERSION=${VERSION:-3.9} ARCH=${ARCH:-x86_64} BUILD=${BUILD:-2} VERSION=3.9 DISTRO=${DISTRO:-slamd64} if [ $DISTRO = slackware ]; then PKGARCH=$ARCH else PKGARCH=${ARCH}_${DISTRO} fi if [ $DISTRO = slamd64 ]; then LIBSUFFIX=${LIBSUFFIX:-64} fi if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mcpu=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" fi rm -rf $PKG mkdir -p $PKG mkdir -p $PKG/etc/rc.d $PKG/etc/bluetooth/passkeys $PKG/usr/lib$LIBSUFFIX/bluetooth # Is there any reason for a non-root user to be able to see these? chmod 700 $PKG/etc/bluetooth/passkeys cd $TMP rm -rf $NAME-$VERSION tar xjvf $CWD/${NAME}-${VERSION}.tar.bz2 || exit 1 cd $NAME-$VERSION chown -R root:root . find . -perm 666 -exec chmod 644 {} \; find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure --prefix=/usr \ --libdir=/usr/lib64 \ --sysconfdir=/etc \ --mandir=/usr/man \ --localstatedir=/var \ --enable-all \ --build=$ARCH-$DISTRO-linux make -j4 || exit 1 make install DESTDIR=$PKG mkdir -p $PKG/lib/udev mv $PKG/usr/libexec/udev/bluetooth_serial $PKG/lib/udev/bluetooth_serial rmdir $PKG/usr/libexec/udev rmdir $PKG/usr/libexec mkdir -p $PKG/etc/udev/rules.d mv $PKG/etc/udev/bluetooth.rules $PKG/etc/udev/rules.d/60-bluetooth.rules if [ ! -e $PKG/etc/bluetooth/transfer.service ]; then cat transfer/transfer.service > $PKG/etc/bluetooth/transfer.service fi if [ ! -e $PKG/usr/lib$LIBSUFFIX/bluetooth/bluetoothd-service-transfer ]; then cat transfer/bluetoothd-service-transfer > $PKG/usr/lib$LIBSUFFIX/bluetooth/bluetoothd-service-transfer chmod 755 $PKG/usr/lib$LIBSUFFIX/bluetooth/bluetoothd-service-transfer fi # Install Debian's add-passkey program: DEBDEST=/usr/lib$LIBSUFFIX/bluetooth gcc $(pkg-config --libs --cflags dbus-1) -DDBUS_API_SUBJECT_TO_CHANGE \ $CWD/add-passkey.c -o $PKG/$DEBDEST/add-passkey || exit 1 cp $CWD/register-passkeys $PKG/$DEBDEST chmod a+x $PKG/$DEBDEST/* # Default PIN (wow, does this seem insecure!) #echo "1234" > $PKG/etc/bluetooth/passkeys/default touch $PKG/etc/bluetooth/passkeys/default mkdir -p $PKG/usr/doc/$NAME-$VERSION install -m 644 -o root -g root \ AUTHORS ChangeLog COPYING INSTALL NEWS README $CWD/README.SLACKWARE \ $PKG/usr/doc/$NAME-$VERSION/ ( cd $PKG/etc/bluetooth ln -sf /usr/doc/$NAME-$VERSION/README.SLACKWARE . ) # Arrange init scripts CONF=/etc/rc.d/rc.bluetooth.conf #mv $PKG/etc/init.d/bluetooth $PKG/etc/rc.d/rc.bluetooth cp $CWD/rc.bluetooth $PKG/etc/rc.d/rc.bluetooth mv $PKG/etc/default/bluetooth $PKG/etc/rc.d/rc.bluetooth.conf sed -i "s:\(HIDD_ENABLE=\).*:\1false:" $PKG/$CONF || exit 1 sed -i "s:\(HID2HCI_ENABLE=\).*:\1false:" $PKG/$CONF || exit 1 rm -rf $PKG/etc/{init.d,default} # Do not overwrite configuration ( cd $PKG for file in etc/bluetooth/rfcomm.conf \ etc/bluetooth/hcid.conf \ etc/bluetooth/passkeys/default \ etc/rc.d/rc.bluetooth \ etc/rc.d/rc.bluetooth.conf ; do mv ${file} ${file}.new done ) # Compress and if needed symlink the man pages: if [ -d $PKG/usr/man ]; then ( cd $PKG/usr/man for manpagedir in $(find . -type d -name "man*") ; do ( cd $manpagedir for eachpage in $( find . -type l -maxdepth 1) ; do ln -s $( readlink $eachpage ).gz $eachpage.gz rm $eachpage done gzip -9 *.? ) done ) fi ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh cd $PKG makepkg -l y -c n $TMP/$NAME-$VERSION-$PKGARCH-$BUILD.tgz