aboutsummaryrefslogtreecommitdiff
path: root/multimedia/youtube-viewer/youtube-viewer.SlackBuild
blob: c7d546901a287a8f5b14573194f0172de475fcdc (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
#!/bin/sh

# Slackware build script for youtube-viewer

# Written by B. Watson (yalhcru@gmail.com)

# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.

# 20171225 bkw:
# - updated for 3.3.2.
# - add upstream patch (commit d857451) to fix a long-standing bug where
#   youtube-viewer's command history wasn't being saved across sessions.
#   NOTE TO SELF: remove this patch once 3.3.3 is released.

# 20171219 bkw:
# - updated for 3.3.1.

# 20170921 bkw:
# - updated for 3.2.9.
# - add warning in README about outdated youtube-dl.

# 20170614 bkw:
# - updated for 3.2.8.

# 20170423 bkw:
# - updated for 3.2.7.

# 20170324 bkw:
# - updated for 3.2.6.

# 20170301 bkw:
# - updated for 3.2.5.
# - use 'long format' download URL, as per David Spencer's post to
#   the mailing list (thanks David!)

# 20161017 bkw:
# - updated for 3.2.4.

# 20160804 bkw:
# - updated for 3.2.3.
# - ARCH=noarch, there is no compiled code here, only perl scripts.
# - mention perl-Term-ReadLine-Gnu optional dep in README. In case
#   you wonder about the other optional dep, Unicode::GCString,
#   it's an either-or with perl-Text-CharWidth. No need to install both,
#   and SBo doesn't have a perl-Unicode-GCString build anyway.

# 20150309 bkw: Updated for 3.1.4 release.
# Quite a bit of changes under the hood for what's supposed to be
# a point release: upstream dropped the XML::Fast dep and added
# JSON::XS.

# 20150309 bkw: Updated for 3.1.2 release

# 20140806 bkw:
# - Updated for 3.1.1 release. This adds a couple of new deps :(
# - Made perl-LWP-Protocol-https required instead of optional.

# 20140318 bkw:
# - Updated for 3.0.9 release
# - Added support for gtk-youtube-viewer

PRGNAM=youtube-viewer
VERSION=${VERSION:-3.3.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
ARCH=noarch
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

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/
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 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
 -exec chmod 644 {} \;

# This is upstream's first commit after the 3.3.2 release. It fixes a
# pretty major bug that's been annoying me for a couple of years, so
# I'm not going to patiently wait for a 3.3.3 release.
patch -p1 < $CWD/fix_history.diff

# perl-gtk2 is a runtime dep, we can build with GTK=yes even if it's not
# installed... but don't do that by default.
GTK="${GTK:-auto}"

case "$GTK" in
  no)  BUILD_GTK="no"  ;;
  yes) BUILD_GTK="yes" ;;
  *)   perl -MGtk2 -MFile::ShareDir -e 0 2>/dev/null \
         && BUILD_GTK="yes" \
         || BUILD_GTK="no" ;;
esac

[ "$BUILD_GTK" = "yes" ] && GTKOPT="--gtk-youtube-viewer"

echo "===  HAVE_GTK=$HAVE_GTK  BUILD_GTK=$BUILD_GTK"

perl Build.PL $GTKOPT prefix=/usr installdirs=vendor --destdir="$PKG"
./Build
./Build test
./Build install --install_path script=/usr/bin

# I couldn't figure out what to pass to Build.PL or Build to install
# man pages correctly, so:
mv $PKG/usr/share/man $PKG/usr/man
gzip $PKG/usr/man/man?/*.?

if [ "$BUILD_GTK" = "yes" ]; then
  # link .desktop and icon to standard locations
  mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
  LNPATH="../perl5/vendor_perl/auto/share/dist/WWW-YoutubeViewer"
  ln -s $LNPATH/gtk-youtube-viewer.desktop \
    $PKG/usr/share/applications/gtk-youtube-viewer.desktop
  ln -s $LNPATH/icons/gtk-youtube-viewer.png \
    $PKG/usr/share/pixmaps/gtk-youtube-viewer.png

  # support TERMINAL option for user's preferred terminal.
  if [ "$TERMINAL" != "" ]; then
    sed -i "s/'gnome-terminal'/'$TERMINAL', &/" $PKG/usr/bin/gtk-$PRGNAM
  fi
fi

find $PKG -name perllocal.pod \
  -o -name ".packlist" \
  -o -name "*.bs" \
  | xargs rm -f

find $PKG -depth -type d -empty -delete || true

# the permissions in the final package are weird.
find $PKG -type f -print0 | xargs -0 chmod 644
find $PKG -type d -print0 | xargs -0 chmod 755
chmod +x $PKG/usr/bin/*

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README* Changes $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

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}