#!/bin/sh # Heavily based on the Slackware 13.1 SlackBuild # http://zaps166.devilroot.pl/ # Packager Andrea Sciucca ( gohanz at infinito.it) # http://www.slacky.eu # # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # # Required faad2, jack-audio-connection-kit, libmikmod, libmodplug, libsndfile, portaudio, # # Required on compilation libresample # Set variables: CWD=`pwd` OUTPUT=${OUTPUT:-$CWD} PKGNAME=qmplay TMP=${TMP:-/tmp/txz/$PKGNAME} PKG=$TMP/package VERSION=${VERSION:-1_53_10} PKGVERSION=$(echo $VERSION | tr _ .) ARCH=${ARCH:-i486} BUILD=${BUILD:-1} TAG=${TAG:-sl} SOURCE="http://downloads.sourceforge.net/project/zaps166/QMPlay/src/public_qmplay_src_$VERSION.tar.bz2" # Download sorce tarball if still not present if [ ! -e public_qmplay_src_$VERSION.tar.bz2 ]; then wget -c $SOURCE fi # Set compiling FLAGS if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686"; SLKLDFLAGS=""; LIBDIRSUFFIX=""; CHOST="i486" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686"; SLKLDFLAGS=""; LIBDIRSUFFIX=""; CHOST="i686" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC"; SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"; CHOST="x86_64" fi rm -rf $PKG mkdir -p $TMP $PKG cd $TMP tar xvjf $CWD/public_qmplay_src_$VERSION.tar.bz2 || exit 1 echo -e "\E[0;32m+-------------------------+\E[0;0m" echo -e "\E[0;32m| Start SlackBuild QMPlay |\E[0;0m" echo -e "\E[0;32m+-------------------------+\E[0;0m" cd public_qmplay_src_$VERSION chmod -R u+w,go+r-w,a-s . chown -R root:root . # Building QMPlay package # Configure: ( cd qmp qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmplay.pro ) ( cd qmp_curl qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_internet_support.pro ) ( cd qmp_equalizer qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_equalizer.pro ) ( cd qmp_export qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_export.pro ) ( cd qmp_lib qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_lib.pro ) ( cd qmp_out qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_out.pro ) # Building QMPlay Plugins ( cd plugins/aac/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_aac.pro ) ( cd plugins/cdda/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_cd.pro ) ( cd plugins/effect_resample/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_effect_resample.pro ) ( cd plugins/effect_tst/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_effect_tst.pro ) ( cd plugins/func_associate/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_func_associate.pro ) ( cd plugins/func_music_browser qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_func_music_browser.pro ) ( cd plugins/func_radio qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_func_radio.pro ) ( cd plugins/func_rec/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_func_rec.pro ) ( cd plugins/func_tag_editor qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_func_tag_editor.pro ) ( cd plugins/mikmod qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_mm.pro ) ( cd plugins/modplug/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_mp.pro ) ( cd plugins/mp3/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_mp3.pro ) ( cd plugins/ogg/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_ogg.pro ) ( cd plugins/playlists/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_playlists.pro ) ( cd plugins/portaudio/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_pa.pro ) ( cd plugins/raw/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_raw.pro ) ( cd plugins/snd_generator/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_snd_generator.pro ) ( cd plugins/sndfile/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_sndfile.pro ) ( cd plugins/vis_fft/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_vis_fft.pro ) ( cd plugins/vis_tst/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_vis_tst.pro ) ( cd plugins/vis_xmms_opengl_spectrum qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qmp_plugin_vis_xos.pro ) # Building QMPlay QTcurve ( cd other/QtCurve/style/ qmake -unix PREFIX=/usr QMAKE_LIBS="$SLKLDFLAGS" QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" -o Makefile qtcurve.pro ) # Build and install: rm -r qmplay_binary mkdir qmplay_binary mkdir qmplay_binary/styles mkdir qmplay_binary/lang mkdir qmplay_binary/colors mkdir qmplay_binary/plugins mkdir qmplay_binary/lib cd qmp LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp qmplay ../qmplay_binary cd ../qmp_curl LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../qmplay_binary/lib cd ../qmp_equalizer LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../qmplay_binary/lib cd ../qmp_export LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../qmplay_binary/lib cd ../qmp_lib LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../qmplay_binary/lib cd ../qmp_out LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../qmplay_binary/lib cd ../plugins/aac LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/cdda LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/effect_resample/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/effect_tst/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/func_associate/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/func_music_browser/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/func_radio/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/func_rec/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/func_tag_editor/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/mikmod/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/modplug/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/mp3/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/ogg/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/playlists/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/portaudio/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/raw/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/snd_generator/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/sndfile/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/vis_fft/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/vis_tst/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../plugins/vis_xmms_opengl_spectrum/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../qmplay_binary/plugins cd ../../other/QtCurve/style/ LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ make && cp *.so ../../../qmplay_binary/styles/qtcurve.so cd ../../../ cp qmp/colors/*.qmpcolor qmplay_binary/colors cp qmp/lang/*.qmplang qmplay_binary/lang cp qmp/ChangeLog_QMPlay.txt qmplay_binary cp COPYING qmplay_binary mkdir -p $PKG/usr/bin cat << EOF > $PKG/usr/bin/qmplay #!/bin/bash cd /usr/share/qmplay exec /usr/share/qmplay/qmplay EOF chmod 755 $PKG/usr/bin/* mkdir -p $PKG/usr/share/qmplay cp -a -r qmplay_binary/* $PKG/usr/share/qmplay # Strip binaries and shared objects, if present ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs -r strip --strip-unneeded 2> /dev/null || true find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs -r strip --strip-unneeded 2> /dev/null || true find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs -r strip --strip-unneeded 2> /dev/null || true ) mkdir -p $PKG/usr/share/applications cat << EOF > $PKG/usr/share/applications/$PKGNAME.desktop [Desktop Entry] Type=Application Encoding=UTF-8 Name=QMPlay GenericName=Music Player Comment=Qt4 multi-platform music player Comment=Lettore musicale multipiattaforma scritto in Qt4 Icon=qmplay Exec=qmplay Terminal=false StartupNotify=true Categories=Application;Qt;AudioVideo; EOF install -m 644 -p -D $CWD/qmplay.png $PKG/usr/share/pixmaps/qmplay.png #Add documentation files: readme, changelog and so on mkdir -p $PKG/usr/doc/$PKGNAME-$VERSION/SlackBuild cp -a COPYING $PKG/usr/doc/$PKGNAME-$VERSION chmod 644 $PKG/usr/doc/$PKGNAME-$VERSION/* # Also add the slack-desk file and this slackbuild to the package mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/slack-desc > $PKG/usr/doc/$PKGNAME-$VERSION/SlackBuild/slack-desc cat $CWD/$PKGNAME.SlackBuild > $PKG/usr/doc/$PKGNAME-$VERSION/SlackBuild/$PKGNAME.SlackBuild # Building some post-install execution script echo "if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database &> /dev/null fi" >> $PKG/install/doinst.sh echo "" >> $PKG/install/doinst.sh echo "if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache -f -q /usr/share/icons/hicolor &> /dev/null fi" >> $PKG/install/doinst.sh echo "" >> $PKG/install/doinst.sh # Find and print dependencies into slack-required file cd $PKG chown -R root:root $PKG if [ -x /usr/bin/requiredbuilder ];then requiredbuilder -y -v -c -b -s $CWD $PKG fi # Create txz package /sbin/makepkg -l y -c n $OUTPUT/$PKGNAME-$PKGVERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} # Cleanup if enabled if [ "$1" = "--cleanup" ]; then rm -rf $TMP fi