multimedia/k9copy-reloaded: Use internal dvdnav.

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Lenard Spencer 2020-04-18 20:24:15 +07:00 committed by Willy Sudiarto Raharjo
parent 501b72f390
commit 8bbd9520fa
No known key found for this signature in database
GPG key ID: 887B8374D7333381
3 changed files with 265 additions and 24 deletions

View file

@ -2,16 +2,23 @@ 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.15
NOTE 1: For some reason, this will not build properly if ccache is
enabled. (It will build and run, but the backups come out corrupted.)
NOTE 2: This script builds an internal copy of the ffmpeg 2.8.15
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.
NOTE 3: 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
NOTE 4: If you wish to build this on current (15.0 EXPERIMENTAL),
you will need to build and install the gcc5 package from ponce's -current
SBo repo, then pass CURRENT=yes to the script.
NOTE 5: 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.

View file

@ -2,7 +2,7 @@
# Slackware build script for k9copy-reloaded
# Copyright 2016 by Lenard Spencer (lspencer31-at-cfl-rr-com)
# Copyright 2018 by Lenard Spencer (lspencer31@cfl.rr.com)
# All rights reserved.
#
# ffmpeg static library section borrowed (stolen?) from xine-lib.SlackBuild
@ -29,7 +29,7 @@
PRGNAM=k9copy-reloaded
SRCNAM=k9copy
VERSION=${VERSION:-3.0.3}
BUILD=${BUILD:-2}
BUILD=${BUILD:-3}
FFMPEG_VERSION=${FFMPEG_VERSION:-2.8.15}
TAG=${TAG:-_SBo}
@ -66,28 +66,50 @@ else
FFARCHOPTS=""
fi
CURRENT=${CURRENT:-no}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
if [ "$CURRENT" = "yes" ]; then
# check for gcc5 and abort if not found:
if ! [ -x /usr/bin/gcc-5 ]; then
echo "Cannot find the gcc5 package. Please install the gcc5 package"
echo "and rerun the SlackBuild script."
exit 1
fi
# Set gcc-5 vars to make it build with gcc5:
# cmake will use these settings to build k9copy-reloaded
source /etc/profile.d/gcc5.sh
# Options for ffmpeg:
GCC5OPTS="--cc=gcc-5 --cxx=g++-5 --ar=gcc-ar-5 --nm=gcc-nm-5 --ranlib=gcc-ranlib-5 --dep-cc=gcc-5"
else
GCC5OPTS=""
fi
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 ..."
tar xvf $CWD/ffmpeg-$FFMPEG_VERSION.tar.?z* || exit 1
cd ffmpeg* || exit 1
FFMPEGDIR=/$TMP/ff-$(mcookie)
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS -fvisibility=hidden -I/usr/include/openmj2-2.1" \
CXXFLAGS="$SLKCFLAGS -fvisibility=hidden -I/usr/include/openmj2-2.1" \
./configure \
echo "Building static ffmpeg libs ..."
FFMPEGDIR=/$TMP/ffmpeg-temp
CFLAGS="$SLKCFLAGS -fvisibility=hidden -I/usr/include/openmj2-2.1" \
CXXFLAGS="$SLKCFLAGS -fvisibility=hidden -I/usr/include/openmj2-2.1" \
./configure \
--prefix=$FFMPEGDIR/usr \
$GCC5OPTS \
--libdir=$FFMPEGDIR/usr/lib${LIBDIRSUFFIX} \
--shlibdir=$FFMPEGDIR/usr/lib${LIBDIRSUFFIX} \
--enable-gpl \
@ -120,16 +142,19 @@ 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 {} \;
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -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
# Fix internal dvdnav to link against internal dvdread
patch -p1 < $CWD/patches/k9copy-dvdnav.patch
# Needed to link with the ffmpeg static libs we just built:
export PKG_CONFIG_PATH="${FFMPEGDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig"
@ -152,7 +177,9 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
| 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
cp -a \
COPYING README \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install

View file

@ -0,0 +1,207 @@
diff -Naur k9copy/src/libdvdnav-NOW/dvdnav/dvdnav.h k9copy.new/src/libdvdnav-NOW/dvdnav/dvdnav.h
--- k9copy/src/libdvdnav-NOW/dvdnav/dvdnav.h 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/dvdnav/dvdnav.h 2020-04-17 15:06:57.239790857 -0400
@@ -32,11 +32,11 @@
extern "C" {
#endif
-#include <dvdnav/dvd_types.h>
-#include <dvdread/dvd_reader.h>
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h> /* For vm_cmd_t */
-#include <dvdnav/dvdnav_events.h>
+#include "dvdnav/dvd_types.h"
+#include "dvdread/dvd_reader.h"
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h" /* For vm_cmd_t */
+#include "dvdnav_events.h"
diff -Naur k9copy/src/libdvdnav-NOW/dvdnav.c k9copy.new/src/libdvdnav-NOW/dvdnav.c
--- k9copy/src/libdvdnav-NOW/dvdnav.c 2014-09-29 12:02:49.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/dvdnav.c 2020-04-17 14:58:35.428540596 -0400
@@ -34,14 +34,14 @@
#include <string.h>
#include <sys/time.h>
#include "dvdnav/dvdnav.h"
-#include <dvdread/dvd_reader.h>
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h> /* For vm_cmd_t */
+#include "dvdread/dvd_reader.h"
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h" /* For vm_cmd_t */
#include "vm/decoder.h"
#include "vm/vm.h"
#include "dvdnav_internal.h"
#include "read_cache.h"
-#include <dvdread/nav_read.h>
+#include "dvdread/nav_read.h"
static dvdnav_status_t dvdnav_clear(dvdnav_t * this) {
/* clear everything except file, vm, mutex, readahead */
diff -Naur k9copy/src/libdvdnav-NOW/highlight.c k9copy.new/src/libdvdnav-NOW/highlight.c
--- k9copy/src/libdvdnav-NOW/highlight.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/highlight.c 2020-04-17 14:59:35.543043065 -0400
@@ -29,7 +29,7 @@
#include <limits.h>
#include <string.h>
#include <sys/time.h>
-#include <dvdread/nav_types.h>
+#include "dvdread/nav_types.h"
#include "dvdnav/dvdnav.h"
#include "vm/decoder.h"
#include "vm/vm.h"
diff -Naur k9copy/src/libdvdnav-NOW/navigation.c k9copy.new/src/libdvdnav-NOW/navigation.c
--- k9copy/src/libdvdnav-NOW/navigation.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/navigation.c 2020-04-17 15:00:18.333402659 -0400
@@ -27,8 +27,8 @@
#include <string.h>
#include <sys/time.h>
#include "dvdnav/dvdnav.h"
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
#include "vm/decoder.h"
#include "vm/vm.h"
#include "dvdnav_internal.h"
diff -Naur k9copy/src/libdvdnav-NOW/read_cache.c k9copy.new/src/libdvdnav-NOW/read_cache.c
--- k9copy/src/libdvdnav-NOW/read_cache.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/read_cache.c 2020-04-17 15:01:33.012033279 -0400
@@ -34,8 +34,8 @@
#include <sys/time.h>
#include <time.h>
#include "dvdnav/dvdnav.h"
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
#include "vm/decoder.h"
#include "vm/vm.h"
#include "dvdnav_internal.h"
diff -Naur k9copy/src/libdvdnav-NOW/searching.c k9copy.new/src/libdvdnav-NOW/searching.c
--- k9copy/src/libdvdnav-NOW/searching.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/searching.c 2020-04-17 15:02:25.819481072 -0400
@@ -30,12 +30,12 @@
#include <stdlib.h>
#include <sys/time.h>
#include "dvdnav/dvdnav.h"
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
#include "vm/decoder.h"
#include "vm/vm.h"
#include "dvdnav_internal.h"
-#include <dvdread/ifo_read.h>
+#include "dvdread/ifo_read.h"
/*
#define LOG_DEBUG
diff -Naur k9copy/src/libdvdnav-NOW/settings.c k9copy.new/src/libdvdnav-NOW/settings.c
--- k9copy/src/libdvdnav-NOW/settings.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/settings.c 2020-04-17 15:03:13.324884966 -0400
@@ -27,8 +27,8 @@
#include <string.h>
#include <sys/time.h>
#include "dvdnav/dvdnav.h"
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
#include "vm/decoder.h"
#include "vm/vm.h"
#include "dvdnav_internal.h"
diff -Naur k9copy/src/libdvdnav-NOW/vm/decoder.c k9copy.new/src/libdvdnav-NOW/vm/decoder.c
--- k9copy/src/libdvdnav-NOW/vm/decoder.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/vm/decoder.c 2020-04-17 15:04:17.177429113 -0400
@@ -32,8 +32,8 @@
#include <sys/time.h>
#include <assert.h>
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h> /* vm_cmd_t */
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h" /* vm_cmd_t */
#include "dvdnav/dvdnav.h"
#include "decoder.h"
diff -Naur k9copy/src/libdvdnav-NOW/vm/getset.c k9copy.new/src/libdvdnav-NOW/vm/getset.c
--- k9copy/src/libdvdnav-NOW/vm/getset.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/vm/getset.c 2020-04-17 15:09:14.945967023 -0400
@@ -30,9 +30,9 @@
#include <stdio.h>
#include <inttypes.h>
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
-#include <dvdread/ifo_read.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
+#include "dvdread/ifo_read.h"
#include "dvdnav/dvdnav.h"
#include "decoder.h"
diff -Naur k9copy/src/libdvdnav-NOW/vm/play.c k9copy.new/src/libdvdnav-NOW/vm/play.c
--- k9copy/src/libdvdnav-NOW/vm/play.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/vm/play.c 2020-04-17 15:10:18.384509885 -0400
@@ -29,9 +29,9 @@
#include <stdlib.h>
#include <stdio.h>
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
-#include <dvdread/ifo_read.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
+#include "dvdread/ifo_read.h"
#include "dvdnav/dvdnav.h"
#include "decoder.h"
diff -Naur k9copy/src/libdvdnav-NOW/vm/vm.c k9copy.new/src/libdvdnav-NOW/vm/vm.c
--- k9copy/src/libdvdnav-NOW/vm/vm.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/vm/vm.c 2020-04-17 15:11:23.105064197 -0400
@@ -37,9 +37,9 @@
#include <sys/time.h>
#include <fcntl.h>
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
-#include <dvdread/ifo_read.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
+#include "dvdread/ifo_read.h"
#include "dvdnav/dvdnav.h"
#include "decoder.h"
diff -Naur k9copy/src/libdvdnav-NOW/vm/vmcmd.c k9copy.new/src/libdvdnav-NOW/vm/vmcmd.c
--- k9copy/src/libdvdnav-NOW/vm/vmcmd.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/vm/vmcmd.c 2020-04-17 15:12:20.354554837 -0400
@@ -30,8 +30,8 @@
#include <sys/time.h>
#include "dvdnav/dvdnav.h"
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
#include "decoder.h"
#include "vm.h"
#include "vmcmd.h"
diff -Naur k9copy/src/libdvdnav-NOW/vm/vmget.c k9copy.new/src/libdvdnav-NOW/vm/vmget.c
--- k9copy/src/libdvdnav-NOW/vm/vmget.c 2014-09-29 11:50:54.000000000 -0400
+++ k9copy.new/src/libdvdnav-NOW/vm/vmget.c 2020-04-17 15:14:34.696659304 -0400
@@ -31,9 +31,9 @@
#include <string.h>
#include <stdlib.h>
-#include <dvdread/nav_types.h>
-#include <dvdread/ifo_types.h>
-#include <dvdread/ifo_read.h>
+#include "dvdread/nav_types.h"
+#include "dvdread/ifo_types.h"
+#include "dvdread/ifo_read.h"
#include "dvdnav/dvdnav.h"
#include "decoder.h"