summaryrefslogtreecommitdiff
path: root/multimedia/kino/kino.SlackBuild
blob: e64894e08b7f38a5ca214cd9e3a5bf14cc22872c (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
#!/bin/sh
#
# Pierre Cazenave (LQ.org pwc101)
# revision date 11/11/2007 (Armistice Day)
# re-revised for 12.2 and new udev locations on 23/12/2008 (day before
# Christmas Eve!).
# Updated for version 1.3.4 17/06/2010 Thanks for Heinz Wiesinger for the
# nudge.
#
# I have set the -enable-local-ffmpeg option since I can't figure
# out how to get the ffmpeg subdirectory configure script to be
# passed the correct install directory for the creation of the
# package. I figured this wasn't too much of an issue, since
# there's a ffmpeg SlackBuild script already.
#
# If you can figure out how to get it to compile so that ffmpeg
# obeys the variables we set, please modify this accordinly.

# Modified by Robby Workman <rworkman@slackbuilds.org> for better
# consistency with other scripts in our repository
# Re the note above, I wouldn't bother -- better to use ffmpeg
# that's installed on the system.

PRGNAM=kino
VERSION=${VERSION:-1.3.4}
BUILD=${BUILD:-4}
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 -eu

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

# some fixes and patches from gentoo, thanks fellas!
# https://sourceforge.net/tracker/?func=detail&aid=3304495&group_id=14103&atid=314103
sed -i \
-e '/\$(LIBQUICKTIME_LIBS) \\/d' \
-e '/^[[:space:]]*\$(SRC_LIBS)/ a\
\$(LIBQUICKTIME_LIBS) \\' src/Makefile.in || die "sed failed"

# https://sourceforge.net/tracker/?func=detail&aid=3304499&group_id=14103&atid=314103
sed -i -e '$a\
ffmpeg/libavcodec/ps2/idct_mmi.c\
ffmpeg/libavcodec/sparc/dsputil_vis.c\
ffmpeg/libavcodec/sparc/vis.h\
ffmpeg/libavutil/bswap.h\
ffmpeg/libswscale/yuv2rgb_template.c\
src/export.h\
src/message.cc\
src/page_bttv.cc' po/POTFILES.in || die "sed failed"

sed -i -e 's:^#include <quicktime.h>:#include <lqt/quicktime.h>:' \
  src/filehandler.h || die "sed failed"

# fix build with newer ffmpegs
patch -p1 < $CWD/libav-0.7.diff
patch -p1 < $CWD/libav-0.8.diff

# fix building on kernel > 2.6.37, like in -current
# https://launchpad.net/ubuntu/natty/+source/kino/1.3.4-1ubuntu3
patch -p1 < $CWD/v4l1_includes.diff

LDFLAGS="-L/usr/lib$LIBDIRSUFFIX -lavcodec -lavformat -lavutil" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib$LIBDIRSUFFIX \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --disable-static \
  --enable-quicktime \
  --disable-local-ffmpeg

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 {} \;

# Give the udev rules a number prefix to be consistent with other rules files
# and move to the new location for 12.2; then remove $PKG/etc directory
mkdir -p $PKG/lib/udev/rules.d
mv $PKG/etc/udev/rules.d/kino.rules $PKG/lib/udev/rules.d/96-kino.rules
rm -rf $PKG/etc

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a ChangeLog AUTHORS BUGS COPYING INSTALL NEWS README TODO help/ \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;

# Fix incorrect ownership/permissions on help directory (from sshd to root).
chown -R root:root $PKG/usr/share/kino/help
find $PKG/usr/share/kino/help/en -type d -exec chmod 0755 {} \;
find $PKG/usr/share/kino/help/en -type f -exec chmod 0644 {} \;

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}