From 7c036c76d1728d5d729fa541d0497a1e8eb7a561 Mon Sep 17 00:00:00 2001 From: Lenard Spencer Date: Thu, 29 Mar 2018 16:09:44 +0700 Subject: multimedia/k9copy-reloaded: Added (DVD backup program). Signed-off-by: Willy Sudiarto Raharjo --- multimedia/k9copy-reloaded/README | 17 +++ multimedia/k9copy-reloaded/doinst.sh | 13 ++ .../k9copy-reloaded/k9copy-reloaded.SlackBuild | 163 +++++++++++++++++++++ multimedia/k9copy-reloaded/k9copy-reloaded.info | 12 ++ .../k9copy-reloaded/patches/k9copy-mimetype.patch | 23 +++ .../k9copy-reloaded/patches/k9copy-tempdir.patch | 63 ++++++++ multimedia/k9copy-reloaded/slack-desc | 19 +++ 7 files changed, 310 insertions(+) create mode 100644 multimedia/k9copy-reloaded/README create mode 100644 multimedia/k9copy-reloaded/doinst.sh create mode 100644 multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild create mode 100644 multimedia/k9copy-reloaded/k9copy-reloaded.info create mode 100644 multimedia/k9copy-reloaded/patches/k9copy-mimetype.patch create mode 100644 multimedia/k9copy-reloaded/patches/k9copy-tempdir.patch create mode 100644 multimedia/k9copy-reloaded/slack-desc (limited to 'multimedia/k9copy-reloaded') diff --git a/multimedia/k9copy-reloaded/README b/multimedia/k9copy-reloaded/README new file mode 100644 index 000000000000..63f894e21a69 --- /dev/null +++ b/multimedia/k9copy-reloaded/README @@ -0,0 +1,17 @@ +K9copy-reloaded is a continuation of the original k9copy program. +It allows you to make 1:1 backups of both single-and dual-layer +DVDs, as well as compress a dual-layer DVD to single-layer. + +NOTE 1: This script builds an internal copy of the ffmpeg 2.8.13 +static libaries. It has been tested and does not (should not?) +interfere with any existing ffmpeg installation. Just remember that +you need to be in a full shell (su - and not just su) for ffmpeg +to build properly. + +NOTE 2: K9copy-reloaded is unable to open .iso files on 32-bit systems. +This is an issue with libdvdread and not with k9copy-reloaded. +They open just fine on 64-bit systems. + +NOTE 3: This program is only intended for personal backups, and is NOT +intended for copying of copyrighted commercial DVDs. Therefore, there +is NO CSS decription libary included in this package. diff --git a/multimedia/k9copy-reloaded/doinst.sh b/multimedia/k9copy-reloaded/doinst.sh new file mode 100644 index 000000000000..9424ce43ff57 --- /dev/null +++ b/multimedia/k9copy-reloaded/doinst.sh @@ -0,0 +1,13 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -x /usr/bin/update-mime-database ]; then + /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild b/multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild new file mode 100644 index 000000000000..b4ce157d2565 --- /dev/null +++ b/multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild @@ -0,0 +1,163 @@ +#!/bin/sh + +# Slackware build script for k9copy-reloaded + +# Copyright 2016 by Lenard Spencer (lspencer31-at-cfl-rr-com) +# All rights reserved. +# +# ffmpeg static library section borrowed (stolen?) from xine-lib.SlackBuild +# from Slackware 14.2 source archives,copyrighted by Pat Volkerding, et. al. +# +# 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. + +PRGNAM=k9copy-reloaded +SRCNAM=k9copy +VERSION=${VERSION:-3.0.3} +BUILD=${BUILD:-1} +FFMPEG_VERSION=${FFMPEG_VERSION:-2.8.13} +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="" + # 32bit x86 fails without this... + FFARCHOPTS="--disable-asm" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + # 32bit x86 fails without this... + FFARCHOPTS="--disable-asm" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + FFARCHOPTS="--arch=x86_64 --enable-pic" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + FFARCHOPTS="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf ffmpeg* +tar xvf $CWD/ffmpeg-$FFMPEG_VERSION.tar.?z* +cd ffmpeg* +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 {} \; +echo "Building static ffmpeg libs ..." + +FFMPEGDIR=/$TMP/ff-$(mcookie) + +CFLAGS="$SLKCFLAGS -fvisibility=hidden -I/usr/include/openmj2-2.1" \ +CXXFLAGS="$SLKCFLAGS -fvisibility=hidden -I/usr/include/openmj2-2.1" \ +./configure \ + --prefix=$FFMPEGDIR/usr \ + --libdir=$FFMPEGDIR/usr/lib${LIBDIRSUFFIX} \ + --shlibdir=$FFMPEGDIR/usr/lib${LIBDIRSUFFIX} \ + --enable-gpl \ + --enable-version3 \ + --enable-postproc \ + --disable-doc \ + --disable-avfilter \ + --disable-avdevice \ + --disable-swresample \ + --disable-ffserver \ + --disable-ffplay \ + --disable-ffmpeg \ + --disable-ffprobe \ + --enable-pthreads \ + --disable-debug \ + --disable-shared \ + --enable-static \ + --enable-hardcoded-tables \ + --enable-memalign-hack \ + --enable-bzlib \ + --enable-zlib \ + --enable-libopenjpeg \ + ${FFARCHOPTS} + + make + make install # Note: no DESTDIR !! +cd - + +rm -rf $SRCNAM +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM +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 {} \; + +# patches from upstream and community: +patch -p1 < $CWD/patches/k9copy-mimetype.patch +patch -p0 < $CWD/patches/k9copy-tempdir.patch + +# Needed to link with the ffmpeg static libs we just built: +export PKG_CONFIG_PATH="${FFMPEGDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig" + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DFFMPEGSCALE_LIBRARY:FILEPATH=${FFMPEGDIR}/usr/lib${LIBDIRSUFFIX} \ + -DFFMPEGSCALE_INCLUDE_DIR_LAVC=${FFMPEGDIR}/usr/include \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DMAN_INSTALL_DIR=/usr/man \ + -DCMAKE_BUILD_TYPE=Release .. + make + make install DESTDIR=$PKG +cd .. + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a COPYING README $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} diff --git a/multimedia/k9copy-reloaded/k9copy-reloaded.info b/multimedia/k9copy-reloaded/k9copy-reloaded.info new file mode 100644 index 000000000000..7bb22756052d --- /dev/null +++ b/multimedia/k9copy-reloaded/k9copy-reloaded.info @@ -0,0 +1,12 @@ +PRGNAM="k9copy-reloaded" +VERSION="3.0.3" +HOMEPAGE="http://k9copy-reloaded.sourceforge.net" +DOWNLOAD="http://downloads.sourceforge.net/project/k9copy-reloaded/k9copy-3.0.3.tar.gz \ + http://www.ffmpeg.org/releases/ffmpeg-2.8.13.tar.bz2" +MD5SUM="53158282e23a4aa4fb8f4336f1424521 \ + 9a0c752a490f7e30476eb46948a36d0e" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="dvdauthor libmpeg2" +MAINTAINER="Lenard Spencer" +EMAIL="lspencer31-at-cfl-rr-com" diff --git a/multimedia/k9copy-reloaded/patches/k9copy-mimetype.patch b/multimedia/k9copy-reloaded/patches/k9copy-mimetype.patch new file mode 100644 index 000000000000..1c156d6055b1 --- /dev/null +++ b/multimedia/k9copy-reloaded/patches/k9copy-mimetype.patch @@ -0,0 +1,23 @@ +--- k9copy.orig/k9copy_assistant.desktop 2014-09-29 16:00:12.000000000 +0100 ++++ k9copy/k9copy_assistant.desktop 2015-05-28 20:08:49.318602109 +0100 +@@ -14,9 +14,8 @@ GenericName[fr]=Backup de DVD Video + GenericName[tr]=DVD Vidyo Yedekleme Aracı + GenericName[ru]=Копирование с видео-DVD + GenericName[uk]=Копіювання відео-DVD +-MimeTypes= + Terminal=false + Icon=k9copy + X-DocPath=k9copy/index.html + Categories=Qt;KDE;AudioVideo;DiscBurning; +-X-KDE-StartupNotify=true +\ No newline at end of file ++X-KDE-StartupNotify=true +--- k9copy.orig/k9copy_assistant_open.desktop 2014-09-29 16:00:12.000000000 +0100 ++++ k9copy/k9copy_assistant_open.desktop 2015-05-28 20:06:11.140619453 +0100 +@@ -11,4 +11,4 @@ NAme[uk]=Копіювати за доп + [Desktop Entry] + X-KDE-Solid-Predicate=[[ StorageVolume.ignored == false AND OpticalDisc.availableContent == 'Data|VideoDvd' ] OR [ StorageVolume.ignored == false AND OpticalDisc.availableContent == 'Data|VideoDvd' ]] + Type=Service +-Actions=open; +\ No newline at end of file ++Actions=open; diff --git a/multimedia/k9copy-reloaded/patches/k9copy-tempdir.patch b/multimedia/k9copy-reloaded/patches/k9copy-tempdir.patch new file mode 100644 index 000000000000..e9376cf2916d --- /dev/null +++ b/multimedia/k9copy-reloaded/patches/k9copy-tempdir.patch @@ -0,0 +1,63 @@ +--- src/core/k9tools.cpp.org 2014-09-29 17:00:12.000000000 +0200 ++++ src/core/k9tools.cpp 2015-12-19 19:18:40.474442195 +0100 +@@ -48,7 +48,7 @@ + const QString k9Tools::getTempPath() { + QString sPath; + +-sPath=QString("%1/%2/").arg(QDir::tempPath() + '/' + "k9copy/"); ++sPath=QString("%1/%2/").arg(QDir::tempPath(),"k9copy/"); + + return sPath; + } +--- src/vamps/k9fifo.cpp.org 2014-09-29 17:00:12.000000000 +0200 ++++ src/vamps/k9fifo.cpp 2015-12-19 19:04:18.616261661 +0100 +@@ -11,6 +11,8 @@ + // + #include "k9fifo.h" + #include ++#include ++#include + + uint64_t k9MemoryFifo::count() { + return m_count; +@@ -134,12 +136,19 @@ + m_wait.wait(&m_mutex); + } + m_wfile->seek(m_fstart); +- m_wfile->write((const char*)_buffer,_size); ++ int rc=m_wfile->write((const char*)_buffer,_size) ; ++ if (rc != (int) _size) { ++ kFatal() << QString("error writing to tempfile (%1)").arg(strerror (errno)); ++ abort(); ++ } + m_fstart=m_wfile->pos(); + if (m_fstart > MAX_FILE_SIZE) { + m_wfile=new QTemporaryFile(QDir::cleanPath(m_output +"/k9b")); + m_wfile->setAutoRemove(true); +- m_wfile->open(); ++ if(m_wfile->open() == false) { ++ kFatal() << QString("error creating tempfile in %1 (%1)").arg(QDir::cleanPath(m_output +"/k9b"), strerror (errno)); ++ abort(); ++ } + m_queue.enqueue(m_wfile); + m_fstart=0; + } +@@ -190,12 +199,17 @@ + if (m_rfile) { + m_rfile->close(); + delete m_rfile; ++ m_rfile=NULL; + } + qDeleteAll(m_queue); + ++ + m_fstart=m_fend=0; + m_rfile=new QTemporaryFile(QDir::cleanPath(m_output +"/k9b")); + m_rfile->setAutoRemove(true); +- m_rfile->open(); ++ if(m_rfile->open() == false) { ++ kFatal() << QString("error creating tempfile in %1 (%1)").arg(QDir::cleanPath(m_output +"/k9b"), strerror (errno)); ++ abort(); ++ } + m_start=m_end=0; + } diff --git a/multimedia/k9copy-reloaded/slack-desc b/multimedia/k9copy-reloaded/slack-desc new file mode 100644 index 000000000000..e751d0c65a54 --- /dev/null +++ b/multimedia/k9copy-reloaded/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +k9copy-reloaded: k9copy-reloaded (DVD backup program) +k9copy-reloaded: +k9copy-reloaded: K9Copy Reloaded is a continuation of the original K9Copy program. +k9copy-reloaded: It allows you to make 1:1 backups of both single- and dual-layer +k9copy-reloaded: DVDs, as well as compress a dual-layer DVD to single-layer. +k9copy-reloaded: +k9copy-reloaded: Note: There is NO CSS decryption library included in this package. +k9copy-reloaded: If you want decryption, you will need the libdvdcss package. +k9copy-reloaded: +k9copy-reloaded: Homepage: http://k9copy-reloaded.sourceforge.net +k9copy-reloaded: -- cgit v1.2.3