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
157
158
159
160
161
162
163
164
165
166
167
168
|
#!/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.
# 20201024 bkw: orphan this build. See README note about removal.
# 20200305 bkw: updated for 3.7.4, add README stuff about API keys.
# 20200110 bkw: updated for 3.7.0, add .sqf.
# 20191220 bkw: updated for 3.6.0.
# 20191201 bkw: updated for 3.5.9.
# 20180917 bkw: updated for 3.5.0.
# 20180902 bkw: updated for 3.4.1.
# 20180613 bkw: updated for 3.3.4.
# 20180111 bkw:
# - updated for 3.3.3.
# - remove unneeded command history patch.
# 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.7.4}
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 /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
# perl-gtk2 and perl-Gtk3 are runtime deps, we can build with GTK=yes
# even if they're not installed... but don't do that by default.
GTK="${GTK:-auto}"
case "$GTK" in
no) BUILD_GTK="no" ;;
yes) BUILD_GTK="yes" ;;
*) if perl -MGtk2 -MFile::ShareDir -e 0 2>/dev/null; then
BUILD_GTK="yes"
elif perl -MGtk3 -MFile::ShareDir -MList::MoreUtils -e 0 2>/dev/null; then
BUILD_GTK="yes"
else
BUILD_GTK="no"
fi
;;
esac
[ "$BUILD_GTK" = "yes" ] && GTKOPT="--gtk"
echo "=== HAVE_GTK=$HAVE_GTK BUILD_GTK=$BUILD_GTK"
# 20200305 bkw: upstream claims gtk+3-3.20 is required, but everything
# actually works fine with 14.2's 3.18. So:
sed -i 's,"3.20","3.18",' share/gtk3-$PRGNAM.glade
# 20200305 bkw: 14.2's perl package has List::Util 1.4.1, which lacks
# the uniq() function. However, SBo's perl-List-MoreUtils provides it.
# This means we can ignore the build warning:
# ! List::Util (1.41) is installed, but we need version >= 1.43
patch -p1 < $CWD/list-moreutils.diff
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}
|