Browse Source

multimedia/k9copy-reloaded: Added (DVD backup program).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/47/head
Lenard Spencer 8 years ago
committed by Willy Sudiarto Raharjo
parent
commit
7c036c76d1
  1. 17
      multimedia/k9copy-reloaded/README
  2. 13
      multimedia/k9copy-reloaded/doinst.sh
  3. 163
      multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild
  4. 12
      multimedia/k9copy-reloaded/k9copy-reloaded.info
  5. 23
      multimedia/k9copy-reloaded/patches/k9copy-mimetype.patch
  6. 63
      multimedia/k9copy-reloaded/patches/k9copy-tempdir.patch
  7. 19
      multimedia/k9copy-reloaded/slack-desc

17
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.

13
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

163
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}

12
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"

23
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;

63
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 <QDir>
+#include <errno.h>
+#include <KDebug>
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;
}

19
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:
Loading…
Cancel
Save