Browse Source
multimedia/k9copy-reloaded: Added (DVD backup program).
multimedia/k9copy-reloaded: Added (DVD backup program).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>pull/47/head
committed by
Willy Sudiarto Raharjo
7 changed files with 310 additions and 0 deletions
-
17multimedia/k9copy-reloaded/README
-
13multimedia/k9copy-reloaded/doinst.sh
-
163multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild
-
12multimedia/k9copy-reloaded/k9copy-reloaded.info
-
23multimedia/k9copy-reloaded/patches/k9copy-mimetype.patch
-
63multimedia/k9copy-reloaded/patches/k9copy-tempdir.patch
-
19multimedia/k9copy-reloaded/slack-desc
@ -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. |
@ -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 |
@ -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} |
@ -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" |
@ -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;
|
@ -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; |
|||
} |
@ -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: |
Write
Preview
Loading…
Cancel
Save
Reference in new issue