summaryrefslogtreecommitdiffstats
path: root/libraries/barry/barry.SlackBuild
blob: 27924d824d1000dd7ba2e032d70def78edde047b (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
150
151
152
153
154
155
156
#!/bin/bash

## Barry is a GPL C++ library for interfacing with the RIM BlackBerry
## Handheld. It comes with a command line tool for exploring the device
## and a GUI for making quick backups. This project's goal is to create
## a fully functional syncing mechanism on Linux.
## http://sourceforge.net/projects/barry/
##
## Written by "Vincent Batts <vbatts@batts.mine.nu>"

# Modified by Robby Workman <rworkman@slackbuilds.org>
# Modified by Mario Preksavec <mario@slackware.hr>

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=barry
VERSION=${VERSION:-0.18.3}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

# If you want to use a group other than "plugdev" for barry,
# specify it on the command line as BARRY_GROUP - for example:
#   BARRY_GROUP=barry ./barry.SlackBuild
BARRY_GROUP=${BARRY_GROUP:-plugdev}

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2"
  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.bz2
cd $PRGNAM-$VERSION
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 {} \;

# Debian fixes
patch -p1 -i $CWD/fix-sizeof-use.patch

# Fix C++11 compatibilty (taken from Arch)
patch -p1 -i $CWD/c++11.patch

CFLAGS="$SLKCFLAGS -std=c++11" \
CXXFLAGS="$SLKCFLAGS -std=c++11" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --mandir=/usr/man \
  --disable-static \
  --enable-boost \
  --enable-gui \
  --build=$ARCH-slackware-linux

make
make install DESTDIR=$PKG

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

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

# Install desktop file and icon for gui
mkdir -p $PKG/usr/share/{applications,pixmaps}
cat logo/barry_logo_icon.png > $PKG/usr/share/pixmaps/barry.png
cat $CWD/barrybackup.desktop > $PKG/usr/share/applications/barrybackup.desktop

# Install ppp scripts and such
mkdir -p $PKG/etc/ppp/peers
for i in \
  rogers verizon sprint o2ireland tmobileus att_cingular chinamobile kpn ; \
do \
    sed "s%/etc/chatscripts/%/etc/ppp/peers/%g" ppp/barry-$i > \
        $PKG/etc/ppp/peers/barry-$i ;
    cat ppp/barry-$i.chat > $PKG/etc/ppp/peers/barry-$i.chat ;
done

# berry-charge conflicts with barry
mkdir -p $PKG/etc/modprobe.d
printf "blacklist berry-charge\n" > $PKG/etc/modprobe.d/barry.conf

# Install udev rules
mkdir -p $PKG/lib/udev/rules.d/
cat udev/10-blackberry.rules > $PKG/lib/udev/rules.d/10-blackberry.rules
cat udev/99-blackberry-perms.rules > $PKG/lib/udev/rules.d/99-blackberry-perms.rules
if [ "$BARRY_GROUP" != "plugdev" ]; then
  sed -i "s/GROUP=\"plugdev\""/GROUP=\"$BARRY_GROUP\"/ \
    $PKG/lib/udev/rules.d/99-blackberry-perms.rules
fi

# Install hal stuff
mkdir -p $PKG/usr/share/hal/fdi/information/10freedesktop
cat hal/fdi/information/10freedesktop/10-blackberry.fdi > \
    $PKG/usr/share/hal/fdi/information/10freedesktop/10-blackberry.fdi
mkdir -p $PKG/usr/share/hal/fdi/policy/10osvendor
cat hal/fdi/policy/10osvendor/19-blackberry-acl.fdi > \
    $PKG/usr/share/hal/fdi/policy/10osvendor/19-blackberry-acl.fdi
cp -a hal/hal-blackberry $PKG/usr/bin

# Install bash completion scripts
mkdir -p $PKG/etc/bash_completion.d
cat bash/bjavaloader > $PKG/etc/bash_completion.d/bjavaloader
cat bash/btool > $PKG/etc/bash_completion.d/btool

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README TODO COPYING AUTHORS NEWS ChangeLog \
  $PKG/usr/doc/$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