aboutsummaryrefslogtreecommitdiff
path: root/multimedia/k9copy-reloaded
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/k9copy-reloaded')
-rw-r--r--multimedia/k9copy-reloaded/README25
-rw-r--r--multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild109
-rw-r--r--multimedia/k9copy-reloaded/k9copy-reloaded.info8
-rw-r--r--multimedia/k9copy-reloaded/patches/k9copy-i18n.patch942
-rw-r--r--multimedia/k9copy-reloaded/patches/k9copy-reloaded-consolidated-fixes.patch581
5 files changed, 1559 insertions, 106 deletions
diff --git a/multimedia/k9copy-reloaded/README b/multimedia/k9copy-reloaded/README
index d8f146a7d3f4d..2eea8659499d7 100644
--- a/multimedia/k9copy-reloaded/README
+++ b/multimedia/k9copy-reloaded/README
@@ -2,23 +2,22 @@ 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: For some reason, this will not build properly if ccache is
-enabled. (It will build and run, but the backups come out corrupted.)
+NOTE 1: This script now uses the system ffmpeg, so be sure it is
+installed before trying to run this script.
-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 3: K9copy-reloaded is unable to open .iso files on 32-bit systems.
+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 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 3: If you wish to build this on current (15.0 EXPERIMENTAL), you
+will need to pass CURRENT=yes to the script.
-NOTE 5: This program is only intended for personal backups, and is NOT
+NOTE 4: 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.
+
+Requires libmpeg2 and ffmpeg (ffmpeg is already included in current).
+
+dvdauthor is optional. (The dvdauthor program crashes k9copy if you
+try to use it in current, but it works fine in 14.2. It can be
+disabled in settings.)
diff --git a/multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild b/multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild
index aa12e5ddd7288..de7720bde0fb9 100644
--- a/multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild
+++ b/multimedia/k9copy-reloaded/k9copy-reloaded.SlackBuild
@@ -29,8 +29,7 @@
PRGNAM=k9copy-reloaded
SRCNAM=k9copy
VERSION=${VERSION:-3.0.3}
-BUILD=${BUILD:-4}
-FFMPEG_VERSION=${FFMPEG_VERSION:-2.8.16}
+BUILD=${BUILD:-5}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -45,100 +44,27 @@ CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-NUMJOBS=${NUMJOBS:--j7}
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
-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* || exit 1
-cd ffmpeg* || exit 1
-
- 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 {} \;
-
- 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 \
- --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
@@ -149,28 +75,35 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Insert a blank CmakeLists.txt file in various subs
+# or the build will fail
+touch src/libdvdnav-NOW/CMakeLists.txt
+touch src/libdvdnav-NOW/vm/CMakeLists.txt
+touch src/libdvdnav-NOW/dvdnav/CMakeLists.txt
+touch src/libdvdread-NOW/CMakeLists.txt
+touch src/libdvdread-NOW/dvdread/CMakeLists.txt
+
# patches from upstream and community:
-patch -p1 < $CWD/patches/k9copy-mimetype.patch
-patch -p0 < $CWD/patches/k9copy-tempdir.patch
+patch -p1 < $CWD/patches/k9copy-reloaded-consolidated-fixes.patch
-# Fix internal dvdnav to link against internal dvdread
-patch -p1 < $CWD/patches/k9copy-dvdnav.patch
+# Patch for i18n:
+patch -p1 < $CWD/patches/k9copy-i18n.patch
-# Needed to link with the ffmpeg static libs we just built:
-export PKG_CONFIG_PATH="${FFMPEGDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig:$PKG_CONFIG_PATH"
+if [ "${CURRENT:-no}" = "yes" ];then
+ QT5="ON"
+else
+ QT5="OFF"
+fi
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_C_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS="$SLKCFLAGS -std=c++11" \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DLIB_SUFFIX=${LIBDIRSUFFIX} \
- -DMAN_INSTALL_DIR=/usr/man \
+ -DQT5_BUILD="$QT5" \
-DCMAKE_BUILD_TYPE=Release ..
- make
+ make
make install DESTDIR=$PKG
cd ..
diff --git a/multimedia/k9copy-reloaded/k9copy-reloaded.info b/multimedia/k9copy-reloaded/k9copy-reloaded.info
index 09827a5505d82..a82603e1e8d5c 100644
--- a/multimedia/k9copy-reloaded/k9copy-reloaded.info
+++ b/multimedia/k9copy-reloaded/k9copy-reloaded.info
@@ -1,12 +1,10 @@
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.16.tar.bz2"
-MD5SUM="53158282e23a4aa4fb8f4336f1424521 \
- d7aca0cd98f9e3b4a6085cd1e715ce43"
+DOWNLOAD="http://downloads.sourceforge.net/project/k9copy-reloaded/k9copy-3.0.3.tar.gz"
+MD5SUM="53158282e23a4aa4fb8f4336f1424521"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="dvdauthor libmpeg2"
+REQUIRES="ffmpeg libmpeg2"
MAINTAINER="Lenard Spencer"
EMAIL="lenardrspencer@gmail.com"
diff --git a/multimedia/k9copy-reloaded/patches/k9copy-i18n.patch b/multimedia/k9copy-reloaded/patches/k9copy-i18n.patch
new file mode 100644
index 0000000000000..365fa08a5be97
--- /dev/null
+++ b/multimedia/k9copy-reloaded/patches/k9copy-i18n.patch
@@ -0,0 +1,942 @@
+diff -Naur k9copy-work/src/assistant/k9aststreams.cpp k9copy/src/assistant/k9aststreams.cpp
+--- k9copy-work/src/assistant/k9aststreams.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/assistant/k9aststreams.cpp 2020-12-23 23:53:38.473154933 -0500
+@@ -54,7 +54,7 @@
+ showDefault(false);
+ setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
+ setCheckState(0,_stream->getselected()?Qt::Checked:Qt::Unchecked);
+- setText(0,i18n("%4 - %1 %2 %3 ch").arg(_stream->getlanguage()).arg(_stream->getformat()).arg(_stream->getchannels()).arg(_stream->getID()));
++ setText(0,i18n("%4 - %1 %2 %3 ch",_stream->getlanguage(),_stream->getformat(),_stream->getchannels(),_stream->getID()));
+ setIcon(0,SmallIcon("sound")) ;
+ //setText(1,i18n("%1 MB",_stream->getsize_mb()));
+ }
+@@ -65,7 +65,7 @@
+ showDefault(false);
+ setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
+ setCheckState(0,_stream->getselected()?Qt::Checked:Qt::Unchecked);
+- setText(0,i18n("%3 - %1 %2").arg(_stream->getlanguage()).arg(_stream->getcontent()).arg(_stream->getID().first()));
++ setText(0,i18n("%3 - %1 %2",_stream->getlanguage(),_stream->getcontent(),_stream->getID().first()));
+ setIcon(0,SmallIcon("subtitle"));
+
+ //setText(1,i18n("%1 MB",_stream->getsize_mb()));
+diff -Naur k9copy-work/src/assistant/k9asttitles.cpp k9copy/src/assistant/k9asttitles.cpp
+--- k9copy-work/src/assistant/k9asttitles.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/assistant/k9asttitles.cpp 2020-12-23 23:48:01.704471948 -0500
+@@ -276,22 +276,22 @@
+ int ch=0;
+ for (int i=0;i< _title->getchapterCount();i++) {
+ _k9ItemWidget *it =new _k9ItemWidget(_title->getChapter(i),_parent,k9astTitles::CHAPTER);
+- it->setText(1,i18n("chapter %1").arg(++ch));
++ it->setText(1,i18n("chapter %1",++ch));
+ QString s;
+
+ s=QString("%1").arg((double)(_title->getChapter(i)->getsectors()) /512,0,'f',2);
+ it->setText(2,QString("%1").arg(_title->getChapter(i)->getLength().toString("hh:mm:ss")));
+- it->setText(3,i18n("%1 MB").arg(s));
++ it->setText(3,i18n("%1 MB",s));
+ }
+ for (int j=0;j <_title->getTitles().count();j++) {
+ k9DVDTitle *title2=_title->getTitles().at(j);
+ for (int i=0;i< title2->getchapterCount();i++) {
+ _k9ItemWidget *it =new _k9ItemWidget(title2->getChapter(i),_parent,k9astTitles::CHAPTER);
+- it->setText(1,i18n("chapter %1").arg(++ch));
++ it->setText(1,i18n("chapter %1",++ch));
+ QString s;
+ s=QString("%1").arg((double)(title2->getChapter(i)->getsectors()) /512,0,'f',2);
+ it->setText(2,QString("%1").arg(title2->getChapter(i)->getLength().toString("hh:mm:ss")));
+- it->setText(3,i18n("%1 MB").arg(s));
++ it->setText(3,i18n("%1 MB",s));
+ }
+
+ }
+diff -Naur k9copy-work/src/backup/k9dvdauthor.cpp k9copy/src/backup/k9dvdauthor.cpp
+--- k9copy-work/src/backup/k9dvdauthor.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/backup/k9dvdauthor.cpp 2020-12-23 23:48:01.704471948 -0500
+@@ -161,7 +161,7 @@
+ error=true;
+ QString sMsg;
+ //sMsg.QString::sprintf(tr2i18n("'%s' not selected"),l_track->getname().latin1());
+- sMsg=i18n("'%1' not selected").arg(l_track->getname());
++ sMsg=i18n("'%1' not selected",l_track->getname());
+ k9Dialogs::error( sMsg, i18n("authoring"));
+ }
+ start.sprintf("jump titleset %d menu;",DVD->getnewTitleNum(l_track));
+@@ -415,7 +415,7 @@
+ c.sprintf("g1=%d;\ncall vmgm menu;",DVD->getnewTitleNum(l_next));
+ if ( DVD->getnewTitleNum(l_next)==-1) {
+ error=true;
+- c=i18n("'%1' not selected").arg(l_next->getname());
++ c=i18n("'%1' not selected",l_next->getname());
+ k9Dialogs::error( c, i18n("authoring"));
+ }
+
+@@ -439,7 +439,7 @@
+ void k9DVDAuthor::author() {
+ k9Config config;
+ if ( ! k9Tools::checkProgram("dvdauthor")) {
+- k9Dialogs::error (i18n("Unable to run %1").arg("dvdauthor") , i18n("authoring"));
++ k9Dialogs::error (i18n("Unable to run %1","dvdauthor") , i18n("authoring"));
+ error = TRUE;
+ return;
+ }
+diff -Naur k9copy-work/src/backup/k9dvdbackup.cpp k9copy/src/backup/k9dvdbackup.cpp
+--- k9copy-work/src/backup/k9dvdbackup.cpp 2020-12-23 23:47:42.374321418 -0500
++++ k9copy/src/backup/k9dvdbackup.cpp 2020-12-23 23:48:01.705471956 -0500
+@@ -295,13 +295,13 @@
+ k9DVDFile *dvdfile;
+ if ((dvdfile = m_dvdread->openTitle( _vts))== 0) {
+ QString stmp;
+- stmp=i18n("Unable to open titleset %1").arg(_vts);
++ stmp=i18n("Unable to open titleset %1",_vts);
+ seterror(stmp);
+ return ;
+ }
+ setTotalSteps(vts_handle->vtsi_mat->vts_last_sector-vts_handle->vtsi_mat->vtstt_vobs -1);
+ QString c;
+- c=i18n("Extracting titleset %1").arg(_vts);
++ c=i18n("Extracting titleset %1",_vts);
+ setProgressLabel(c);
+ if (!k9Tools::getBatchCopy())
+ backupDlg->show();
+@@ -477,7 +477,7 @@
+ k9DVDFile *dvdfile;
+ if ((dvdfile = m_dvdread->openMenu( _vts))== 0) {
+ QString stmp;
+- stmp=i18n("Unable to open menu for titleset %1").arg(_vts);
++ stmp=i18n("Unable to open menu for titleset %1",_vts);
+ seterror (stmp);
+ return 0;
+ }
+@@ -503,7 +503,7 @@
+ uint32_t sector, dsi_next_vobu = 0;
+ uint32_t imax=length/sizeof(cell_adr_t);
+ QString c;
+- c=i18n("Extracting menu for titleset %1").arg(_vts);
++ c=i18n("Extracting menu for titleset %1",_vts);
+ setProgressLabel(c);
+ if (!k9Tools::getBatchCopy()) {
+ backupDlg->show();
+@@ -597,7 +597,7 @@
+ vts_handle=currTS->ifoTitle->getIFO();
+ if (!vts_handle) {
+ QString stmp;
+- stmp=i18n("Unable to open ifo file for titleset %1").arg(vts_num);
++ stmp=i18n("Unable to open ifo file for titleset %1",vts_num);
+ seterror (stmp);
+ //JMP vamps->setNoData();
+ return;
+@@ -605,7 +605,7 @@
+
+ setTotalSteps( vts_handle->vtsi_mat->vts_last_sector-vts_handle->vtsi_mat->vtstt_vobs -1);
+ QString c;
+- c=i18n("Extracting titleset %1").arg(vts_num);
++ c=i18n("Extracting titleset %1",vts_num);
+ setProgressLabel(c);
+ if (!k9Tools::getBatchCopy())
+ backupDlg->show();
+@@ -620,7 +620,7 @@
+ dvdfile = m_dvdread->openTitle (vts_num);
+ if (! dvdfile) {
+ QString stmp;
+- stmp=i18n("Unable to open vobs for titleset %1").arg(vts_num);
++ stmp=i18n("Unable to open vobs for titleset %1",vts_num);
+ seterror( stmp);
+ //JMP vamps->setNoData();
+ return;
+@@ -1450,7 +1450,7 @@
+ sName="VIDEO_TS.VOB";
+ else
+ sName.sprintf("VTS_%02d_%d.VOB",(int)currVTS,(int)VobNum);
+- dbg=i18n("Updating vob %1").arg(sName);
++ dbg=i18n("Updating vob %1",sName);
+ sName=output+"/"+sName;
+ QFileInfo finfo(sName);
+ long fileSize=finfo.size();
+diff -Naur k9copy-work/src/backup/k9execcopy.cpp k9copy/src/backup/k9execcopy.cpp
+--- k9copy-work/src/backup/k9execcopy.cpp 2020-12-23 23:47:42.374321418 -0500
++++ k9copy/src/backup/k9execcopy.cpp 2020-12-23 23:48:01.705471956 -0500
+@@ -39,7 +39,7 @@
+ m_cancelled=false;
+ QString filename;
+ if (!m_dvd->getopened()) {
+- k9Dialogs::error( i18n("DVD is not opened"), i18n("DVD Copy"));
++ k9Dialogs::error( i18n("DVD is not opened"),i18n("DVD Copy"));
+ return;
+ }
+
+@@ -70,7 +70,7 @@
+ long fs=k9Tools::getFreeSpace(outputDir);
+ int maxSize=config.getPrefSize() < (m_dvd->getsizeSelected(false)/512) ? config.getPrefSize():(m_dvd->getsizeSelected(false)/512);
+ if ((fs < maxSize) && (fs !=-1)) {
+- if (k9Dialogs::warningContinueCancel ( i18n("Insufficient disk space on %1\n%2 MB expected.").arg(outputDir).arg(config.getPrefSize()),i18n("DVD Copy"))==cancel)
++ if (k9Dialogs::warningContinueCancel ( i18n("Insufficient disk space on %1\n%2 MB expected.",outputDir,config.getPrefSize()),i18n("DVD Copy"))==cancel)
+ return;
+ }
+
+@@ -188,7 +188,7 @@
+
+ if (matroska) {
+ if ( ! k9Tools::checkProgram("mkvmerge") ) {
+- k9Dialogs::error (i18n("Unable to run %1").arg("mkvmerge") , i18n("Encoding error"));
++ k9Dialogs::error (i18n("Unable to run %1","mkvmerge") , i18n("Encoding error"));
+ delete mp4;
+ return ;
+ }
+diff -Naur k9copy-work/src/backup/k9mp4enc.cpp k9copy/src/backup/k9mp4enc.cpp
+--- k9copy-work/src/backup/k9mp4enc.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/backup/k9mp4enc.cpp 2020-12-23 23:48:01.706471964 -0500
+@@ -157,8 +157,8 @@
+
+ if (!m_extractAudio) {
+ if ( ! k9Tools::checkProgram(sCodecV) ) {
+- k9log::add(i18n("Unable to run %1").arg(sCodecV),k9logLevel::ERROR);
+- k9Dialogs::error (i18n("Unable to run %1").arg(sCodecV) , i18n("Encoding error"));
++ k9log::add(i18n("Unable to run %1",sCodecV),k9logLevel::ERROR);
++ k9Dialogs::error (i18n("Unable to run %1",sCodecV) , i18n("Encoding error"));
+ m_error = TRUE;
+ return false;
+ }
+@@ -168,8 +168,8 @@
+
+ if ((sCodecA!=sCodecV) || m_extractAudio) {
+ if ( ! k9Tools::checkProgram(sCodecA) ) {
+- k9log::add(i18n("Unable to run %1").arg(sCodecV),k9logLevel::ERROR);
+- k9Dialogs::error (i18n("Unable to run %1").arg(sCodecA) , i18n("Encoding error"));
++ k9log::add(i18n("Unable to run %1",sCodecV),k9logLevel::ERROR);
++ k9Dialogs::error (i18n("Unable to run %1",sCodecA) , i18n("Encoding error"));
+ m_error = TRUE;
+ return false;
+ }
+@@ -181,12 +181,12 @@
+
+ void k9MP4Enc::execute(k9DVDTitle *_title) {
+ if (m_mpeg2)
+- k9log::add(i18n("Starting extraction of %1, chapters %2").arg(_title->getname()).arg(getChapterList( _title)),k9logLevel::INFO);
++ k9log::add(i18n("Starting extraction of %1, chapters %2",_title->getname(),getChapterList( _title)),k9logLevel::INFO);
+ else
+- k9log::add(i18n("Starting encoding of %1, chapters %2").arg(_title->getname()).arg(getChapterList( _title)),k9logLevel::INFO);
+- k9log::add(i18n("source : %1").arg(m_device),k9logLevel::INFO);
+- k9log::add(i18n("destination : %1").arg(m_filename),k9logLevel::INFO);
+- k9log::add(i18n("disk cache : %1").arg( m_usecache ? i18n("activated"):i18n("disabled")),k9logLevel::INFO);
++ k9log::add(i18n("Starting encoding of %1, chapters %2",_title->getname(),getChapterList( _title)),k9logLevel::INFO);
++ k9log::add(i18n("source : %1",m_device),k9logLevel::INFO);
++ k9log::add(i18n("destination : %1",m_filename),k9logLevel::INFO);
++ k9log::add(i18n("disk cache : %1", m_usecache ? i18n("activated"):i18n("disabled")),k9logLevel::INFO);
+ m_currentChapter=0;
+ m_error=false;
+ m_outputFile=NULL;
+@@ -205,14 +205,14 @@
+ m_remain="--:--:--";
+
+ m_totalSize=_title->getChaptersSize(true);
+- k9log::add(i18n("size : %1 MB").arg(m_totalSize/512),k9logLevel::INFO);
++ k9log::add(i18n("size : %1 MB",m_totalSize/512),k9logLevel::INFO);
+ if (!m_mpeg2) {
+- k9log::add(i18n("audio bitrate : %1").arg(m_audioBitrate),k9logLevel::INFO);
++ k9log::add(i18n("audio bitrate : %1",m_audioBitrate),k9logLevel::INFO);
+ if (!m_extractAudio) {
+ if (m_videoBitrate !="")
+- k9log::add(i18n("user defined video bitrate : %1").arg(m_videoBitrate),k9logLevel::INFO);
++ k9log::add(i18n("user defined video bitrate : %1",m_videoBitrate),k9logLevel::INFO);
+ else
+- k9log::add(i18n("calculated video bitrate : %1").arg(getBitRate(_title)),k9logLevel::INFO);
++ k9log::add(i18n("calculated video bitrate : %1",getBitRate(_title)),k9logLevel::INFO);
+ }
+ }
+ QString injectName;
+@@ -239,7 +239,7 @@
+
+ do {
+ if (!m_mpeg2)
+- k9log::add(i18n("starting pass %1 of %2").arg(pass==0 ? 1:pass).arg(maxPass==0 ? 1 : maxPass),k9logLevel::INFO);
++ k9log::add(i18n("starting pass %1 of %2",pass==0 ? 1:pass,maxPass==0 ? 1 : maxPass),k9logLevel::INFO);
+ m_totalBytes=0;
+ m_vamps=new k9vamps(this,m_usecache);;
+ m_player=new k9play(this);
+@@ -507,7 +507,7 @@
+
+ QString sAOption=replaceParams(audioCodecs->getOptions(m_audioCodec)).trimmed();
+
+- m_progress->setTitleLabel(i18n("Encoding %1").arg(sCodec));
++ m_progress->setTitleLabel(i18n("Encoding %1",sCodec));
+ QString path,ext=audioCodecs->getExtension(m_audioCodec) ;
+ if (!ext.startsWith("."))
+ ext="."+ext;
+@@ -519,7 +519,7 @@
+
+ cmd << m_ffmpegPath << "-i" << "/dev/stdin" <<sAOption.split(" ") << KShell::quoteArg(path) ;
+
+- k9log::add(i18n("starting thread : %1").arg(cmd.join(" ")),k9logLevel::INFO);
++ k9log::add(i18n("starting thread : %1",cmd.join(" ")),k9logLevel::INFO);
+ k9ConvertAudio *converter=new k9ConvertAudio("",cmd);
+ m_converters[BASE_CONV_AUDIO+i]=converter;
+ m_convertersToDelete << converter;
+@@ -571,9 +571,9 @@
+ cmd << sVOption.split(" ");
+
+ if (pass >0)
+- m_progress->setTitleLabel(i18n("Encoding %1").arg(sCodec)+" - "+i18n("pass %1").arg(pass));
++ m_progress->setTitleLabel(i18n("Encoding %1",sCodec)+" - "+i18n("pass %1",pass));
+ else
+- m_progress->setTitleLabel(i18n("Encoding %1").arg(sCodec));
++ m_progress->setTitleLabel(i18n("Encoding %1",sCodec));
+
+ if (m_fourcc !="")
+ cmd << "-vtag" << m_fourcc;
+@@ -640,7 +640,7 @@
+ cmd << "-y" << KShell::quoteArg(path);
+ cmd << slNewAudio;
+ // if (m_extractMkv) {
+- k9log::add(i18n("starting thread : %1").arg(cmd.join(" ")),k9logLevel::INFO);
++ k9log::add(i18n("starting thread : %1",cmd.join(" ")),k9logLevel::INFO);
+ k9ConvertAudio *converter=new k9ConvertAudio("",cmd);
+ //converter->setDebug(true);
+ m_converters[BASE_CONV_VIDEO]=converter;
+@@ -690,9 +690,9 @@
+
+
+ if (pass >0)
+- m_progress->setTitleLabel(i18n("Encoding %1").arg(sCodec)+" - "+i18n("pass %1").arg(pass));
++ m_progress->setTitleLabel(i18n("Encoding %1",sCodec)+" - "+i18n("pass %1",pass));
+ else
+- m_progress->setTitleLabel(i18n("Encoding %1").arg(sCodec));
++ m_progress->setTitleLabel(i18n("Encoding %1",sCodec));
+
+ if (m_fourcc !="")
+ cmd << "-ffourcc" << m_fourcc;
+@@ -747,7 +747,7 @@
+ // cmd << "-of" << "lavf";
+ // cmd << "-lavfopts" << "i_certify_that_my_video_stream_does_not_use_b_frames";
+ }
+- k9log::add(i18n("starting thread : %1").arg(cmd.join(" ")),k9logLevel::INFO);
++ k9log::add(i18n("starting thread : %1",cmd.join(" ")),k9logLevel::INFO);
+ k9ConvertAudio *converter=new k9ConvertAudio("",cmd);
+ converter->setDebug(false);
+ m_converters[BASE_CONV_VIDEO]=converter;
+@@ -894,7 +894,7 @@
+ else {
+ m_player->setAborted(true);
+ m_error=true;
+- m_msgError=i18n("An error occured while encoding the %1 stream").arg(i18n("audio"));
++ m_msgError=i18n("An error occured while encoding the %1 stream",i18n("audio"));
+ m_ErrorDetail=c->getOutput();
+ k9log::add(m_msgError,k9logLevel::ERROR);
+ }
+@@ -919,7 +919,7 @@
+ else {
+ m_player->setAborted(true);
+ m_error=true;
+- m_msgError=i18n("An error occured while encoding the %1 stream").arg(i18n("video"));
++ m_msgError=i18n("An error occured while encoding the %1 stream",i18n("video"));
+ m_ErrorDetail=c->getOutput();
+ k9log::add(m_msgError,k9logLevel::ERROR);
+ }
+diff -Naur k9copy-work/src/core/k9burndvd.cpp k9copy/src/core/k9burndvd.cpp
+--- k9copy-work/src/core/k9burndvd.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/core/k9burndvd.cpp 2020-12-23 23:48:01.706471964 -0500
+@@ -148,7 +148,7 @@
+ proc2->sync();
+ if (proc2->exitStatus()==0) {
+ delete proc2;
+- k9log::add(i18n("image size : %1").arg(imageSize),k9logLevel::INFO);
++ k9log::add(i18n("image size : %1",imageSize),k9logLevel::INFO);
+ return imageSize;
+ }
+ }
+@@ -234,7 +234,7 @@
+ connect( proc2, SIGNAL(receivedStdout(char *, int)),this, SLOT(mkisoSizeStdout(char *, int)) );
+ k9log::add(i18n("computing image size"),k9logLevel::INFO);
+ proc2->setShellCommand(proc2Cmd.join(" "));;
+- k9log::add(i18n("starting thread : %1").arg(proc2Cmd.join(" ")),k9logLevel::INFO);
++ k9log::add(i18n("starting thread : %1",proc2Cmd.join(" ")),k9logLevel::INFO);
+ proc2->start();
+ proc2->sync();
+ getWodimCmd(procCmd);
+@@ -243,7 +243,7 @@
+
+ if (!autoBurn) {
+ #if QT_VERSION >= 0x050000
+- if ( k9Dialogs::warningContinueCancel ( i18n("Insert a recordable DVD"), i18n("DVD burning"))!=QMessageBox::Ignore)
++ if ( k9Dialogs::warningContinueCancel ( i18n("Insert a recordable DVD"),i18n("DVD burning"))!=QMessageBox::Ignore)
+ #else
+ if ( k9Dialogs::warningContinueCancel ( i18n("Insert a recordable DVD"), i18n("DVD burning"))!=KMessageBox::Continue)
+ #endif
+@@ -255,12 +255,12 @@
+
+ if (!cancelled) {
+ k9log::add(i18n("start burning"),k9logLevel::INFO);
+- k9log::add(i18n("starting thread : %1").arg(procCmd.join(" ")),k9logLevel::INFO);
++ k9log::add(i18n("starting thread : %1",procCmd.join(" ")),k9logLevel::INFO);
+
+ int res=progress->execute();
+ if ( res==-1 ) {
+ k9log::add(i18n("Error"),k9logLevel::ERROR);
+- k9Dialogs::error( i18n("Error burning DVD :\n")+i18n("Unable to run %1").arg("genisoimage"), i18n("DVD burning") );
++ k9Dialogs::error( i18n("Error burning DVD :\n")+i18n("Unable to run %1", "genisoimage"),i18n("DVD burning") );
+ cancelled=true;
+ } else {
+
+@@ -353,13 +353,13 @@
+ }
+ if (!cancelled) {
+ k9log::add(i18n("start burning"),k9logLevel::INFO);
+- k9log::add(i18n("starting thread : %1").arg(proc->debug()),k9logLevel::INFO);
++ k9log::add(i18n("starting thread : %1",proc->debug()),k9logLevel::INFO);
+
+ int res=progress->execute();
+ if ( res==-1 ) {
+ k9log::add(i18n("Error"),k9logLevel::ERROR);
+
+- k9Dialogs::error( i18n("Error burning DVD :\n")+i18n("Unable to run %1").arg(progname), i18n("DVD burning") );
++ k9Dialogs::error( i18n("Error burning DVD :\n")+i18n("Unable to run %1",progname), i18n("DVD burning") );
+ cancelled=true;
+ } else {
+
+@@ -413,7 +413,7 @@
+ }
+
+ progress->setTitle(i18n("Burning DVD"));
+- progress->setLabelText(i18n("Current write speed :%1 x").arg(burnSpeed));
++ progress->setLabelText(i18n("Current write speed :%1 x",burnSpeed));
+ if (c.contains("% done")) {
+ pos=c.indexOf("%");
+ if (pos!=-1) {
+@@ -433,7 +433,7 @@
+ }
+ }
+ }
+- else k9log::add(i18n("%1").arg(c),k9logLevel::INFO);
++ else k9log::add(i18n("%1",c),k9logLevel::INFO);
+ }
+ }
+ void k9BurnDVD::growisoStdout(char *buffer, int buflen) {
+diff -Naur k9copy-work/src/core/k9dvd.cpp k9copy/src/core/k9dvd.cpp
+--- k9copy-work/src/core/k9dvd.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/core/k9dvd.cpp 2020-12-23 23:48:01.707471971 -0500
+@@ -214,7 +214,7 @@
+ int i;
+ QString c;
+ if (! (filehandle = fopen(dvd_device, "r"))) {
+- c=i18n("Couldn't open %1 for title\n").arg(dvd_device);
++ c=i18n("Couldn't open %1 for title\n",dvd_device);
+ // setError(c );
+ strcpy(title, i18n("unknown").toUtf8());
+ return -1;
+@@ -222,7 +222,7 @@
+
+ if ( fseek(filehandle, 32808, SEEK_SET )) {
+ fclose(filehandle);
+- c=i18n("Couldn't seek in %1 for title\n").arg(dvd_device);
++ c=i18n("Couldn't seek in %1 for title\n",dvd_device);
+ setError(c);
+ strcpy(title, i18n("unknown").toUtf8());
+ return -1;
+@@ -377,7 +377,7 @@
+ m_dvd.close();
+ m_dvd.openDevice(device);
+ if ( !m_dvd.opened() ) {
+- c=i18n("Can't open disc %1!\n").arg(device);
++ c=i18n("Can't open disc %1!\n",device);
+ setError(c);
+ return 2;
+ }
+@@ -411,7 +411,7 @@
+ ifo = kifo->getIFO();
+ if (ifo==NULL) {
+ //ifo is null when trying to open a protected dvd
+- setError(i18n("Can't open disc %1!\n").arg(device));
++ setError(i18n("Can't open disc %1!\n",device));
+ return 2;
+ //continue;
+ }
+@@ -435,7 +435,7 @@
+ vts_ttn = ttn;//ifo->vts_ptt_srpt->title[j].ptt[0].pgcn; //ifo_zero->tt_srpt->title[j].vts_ttn;
+
+ //JMPtxt=i18n("Title %1").arg(indexedCount);
+- txt=i18n("Title %1").arg(numTitle);
++ txt=i18n("Title %1",numTitle);
+ emit sigTotalText (txt);
+ emit sigTitleProgress(numTitle,ltitles);
+ video_attr = &vtsi_mat->vts_video_attr;
+@@ -725,7 +725,7 @@
+ }
+ if (bappend)
+ m_titles.append(track);
+- track->name=i18n("Title %1").arg(num);
++ track->name=i18n("Title %1",num);
+
+ if (!_indexed) {
+ for (int i=0;i<m_titles.count();i++) {
+@@ -895,7 +895,7 @@
+ QString c;
+ dvdfile =m_dvd.openTitle( title);
+ if ( !dvdfile ) {
+- c=i18n("Error opening vobs for title %1\n").arg(title);
++ c=i18n("Error opening vobs for title %1\n",title);
+ setError(c);
+ return 0;
+ }
+@@ -906,7 +906,7 @@
+ emit sigVobProgress(i-startblock,lastblock-startblock);
+ total+=size;
+ if ( !size ) {
+- c=i18n("ERROR reading block %1\n").arg(i);
++ c=i18n("ERROR reading block %1\n",i);
+ setError(c);
+ break;
+ }
+diff -Naur k9copy-work/src/import/k9avidecode.cpp k9copy/src/import/k9avidecode.cpp
+--- k9copy-work/src/import/k9avidecode.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/import/k9avidecode.cpp 2020-12-23 23:48:01.707471971 -0500
+@@ -53,20 +53,20 @@
+ m_error="";
+ QStringList errs;
+ if (!CodecHandle) {
+- errs << i18n("Cannot open the library %1").arg("libavcodec");
++ errs << i18n("Cannot open the library %1","libavcodec");
+ }
+ if (!FormatHandle ) {
+- errs << i18n("Cannot open the library %1").arg("libavformat");
++ errs << i18n("Cannot open the library %1","libavformat");
+ }
+ # if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51, 33, 0)
+ if (!UtilHandle) {
+- m_error =i18n("Cannot open then library %1").arg("libavutil");
++ m_error =i18n("Cannot open then library %1","libavutil");
+ return;
+ }
+ # endif
+ #ifdef HAVE_SWSCALE
+ if (!SwscaleHandle) {
+- errs << i18n("Cannot open the library %1").arg("libswscale");
++ errs << i18n("Cannot open the library %1","libswscale");
+ }
+ #endif
+
+@@ -101,7 +101,7 @@
+ img_convert = (img_convert_t)dlsym(CodecHandle,"img_convert");
+ //if img_convert is null (deprecated in ffmpeg), we need libswscale
+ if (!img_convert)
+- errs << i18n("Cannot open the library %1").arg("libswscale");
++ errs << i18n("Cannot open the library %1","libswscale");
+ #endif
+ av_free = (av_free_t)dlsym(CodecHandle,"av_free");
+ av_free_packet = (av_free_packet_t)dlsym(CodecHandle,"av_free_packet");
+@@ -174,7 +174,7 @@
+ av_open_input_file(&m_FormatCtx, _fileName.toUtf8(), NULL, 0, NULL)!=0
+ # endif
+ ) {
+- m_error=i18n("Couldn't open the file %1").arg(_fileName);
++ m_error=i18n("Couldn't open the file %1",_fileName);
+ return false; // Couldn't open file}
+ }
+ // Retrieve stream information
+@@ -231,7 +231,7 @@
+ // Allocate an AVFrame structure
+ m_FrameRGB=avcodec_alloc_frame();
+ if (m_FrameRGB==NULL) {
+- m_error =i18n ("Unable to allocate memory for frames");
++ m_error =i18n("Unable to allocate memory for frames");
+ return false;
+ }
+
+diff -Naur k9copy-work/src/import/k9import.cpp k9copy/src/import/k9import.cpp
+--- k9copy-work/src/import/k9import.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/import/k9import.cpp 2020-12-23 23:48:01.707471971 -0500
+@@ -186,7 +186,7 @@
+
+
+ k9LvItemImport * itemch=new k9LvItemImport(title,k9LvItemImport::CHAPTER);
+- itemch->setText(0,i18n("chapter %1").arg(title->childCount()));
++ itemch->setText(0,i18n("chapter %1",title->childCount()));
+ itemch->setAviFile(file);
+ itemch->setTitle(title->getTitle());
+ connect(file,SIGNAL(aviFileUpdated(k9AviFile*)),this,SLOT(aviFileUpdated(k9AviFile*)));
+@@ -201,7 +201,7 @@
+ btn->setHeight(config.getPrefButtonHeight());
+ btn->setScript(QString("jump title 1 chapter %1 ;").arg(title->childCount()));
+ btn->setTextPosition(BOTTOM);
+- btn->setText(i18n("chapter %1").arg(title->childCount()));
++ btn->setText(i18n("chapter %1",title->childCount()));
+ btn->setColor(config.getPrefButtonTextColor());
+ btn->setFont(config.getPrefButtonFont());
+ file->setButton(btn);
+diff -Naur k9copy-work/src/import/k9menu.cpp k9copy/src/import/k9menu.cpp
+--- k9copy-work/src/import/k9menu.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/import/k9menu.cpp 2020-12-23 23:48:01.707471971 -0500
+@@ -145,7 +145,7 @@
+ void k9Menu::createAudio(const QString & _audioFile) {
+ if (! (k9Tools::checkProgram("twolame",false) || k9Tools::checkProgram("toolame",false))) {
+ m_error=true;
+- k9Dialogs::error(i18n("Error starting program %1").arg("twolame | toolame"),i18n("Running program"));
++ k9Dialogs::error(i18n("Error starting program %1","twolame | toolame"),i18n("Running program"));
+ return;
+ }
+
+diff -Naur k9copy-work/src/import/k9menuedit.cpp k9copy/src/import/k9menuedit.cpp
+--- k9copy-work/src/import/k9menuedit.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/import/k9menuedit.cpp 2020-12-23 23:48:01.708471979 -0500
+@@ -298,7 +298,7 @@
+ disconnect (this,SIGNAL(endScriptChanged(const QString&)),0,0);
+ Ui_menuEdit.cbEnd->setEnabled(true);
+ m_scene->clearSelection();;
+- Ui_menuEdit.lTitle->setText(i18n("Title %1 Menu").arg(_title->getNum()+1));
++ Ui_menuEdit.lTitle->setText(i18n("Title %1 Menu",_title->getNum()+1));
+ setScene(_title->getMenu()->getScene());
+ m_menuType=TITLEMENU;
+ Ui_menuEdit.cbStart->clear();
+@@ -322,7 +322,7 @@
+ k9NewDVD *newDVD=(k9NewDVD*)_title->parent() ;
+ k9NewDVDItems *items=newDVD->getTitles();
+ foreach (k9Title *title,*items) {
+- Ui_menuEdit.cbEnd->addItem(i18n("Play Title %1").arg(title->getNum()+1));
++ Ui_menuEdit.cbEnd->addItem(i18n("Play Title %1",title->getNum()+1));
+ QString script=QString("g6=%1; call vmgm menu;" ).arg(title->getNum()+1);
+ m_endScripts << script;
+ }
+@@ -348,7 +348,7 @@
+ m_startScripts << "";
+ k9NewDVDItems *items=_newDVD->getTitles();
+ foreach (k9Title *title,*items) {
+- Ui_menuEdit.cbStart->addItem(i18n("Play Title %1").arg(title->getNum()+1));
++ Ui_menuEdit.cbStart->addItem(i18n("Play Title %1",title->getNum()+1));
+ // QString script=QString("if (g5==0) {g5=1; jump title %1;}" ).arg(title->getNum()+1);
+ QString script=QString("g6=%1;" ).arg(title->getNum()+1);
+ m_startScripts << script;
+diff -Naur k9copy-work/src/import/k9newdvd.cpp k9copy/src/import/k9newdvd.cpp
+--- k9copy-work/src/import/k9newdvd.cpp 2020-12-23 23:47:42.375321426 -0500
++++ k9copy/src/import/k9newdvd.cpp 2020-12-23 23:48:01.708471979 -0500
+@@ -175,7 +175,7 @@
+ QString menuFileName=m_workDir+k9Tools::randomFileName()+".mpg";
+ m_tmpFiles << menuFileName,
+ menu->setMenuFileName(menuFileName);
+- m_processList->addProgress(i18n("Creating menu for title %1").arg(title->getNum()+1));
++ m_processList->addProgress(i18n("Creating menu for title %1",title->getNum()+1));
+ if (!menu->createMenus(&titleSet))
+ return;
+
+@@ -282,7 +282,7 @@
+ break;
+ }
+
+- k9Process *process=m_processList->addProcess(i18n("Encoding %1").arg(_aviFile->getFileName()));
++ k9Process *process=m_processList->addProcess(i18n("Encoding %1",_aviFile->getFileName()));
+ m_processList->setFileName(process,_aviFile->getFileName());
+
+ QTime t(0,0);
+@@ -499,7 +499,7 @@
+ btn->setHeight(m_config->getPrefButtonHeight());
+ btn->setScript(QString("g1=0;jump titleset %1 menu;").arg(_title->getNum()+1));
+ btn->setTextPosition(RIGHT);
+- btn->setText(i18n("title %1").arg(_title->getNum()+1));
++ btn->setText(i18n("title %1",_title->getNum()+1));
+ btn->setColor(m_config->getPrefButtonTextColor());
+ btn->setFont(m_config->getPrefButtonFont());
+
+diff -Naur k9copy-work/src/import/k9newtitle.cpp k9copy/src/import/k9newtitle.cpp
+--- k9copy-work/src/import/k9newtitle.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/import/k9newtitle.cpp 2020-12-23 23:48:01.708471979 -0500
+@@ -126,7 +126,7 @@
+ k9LvItemImport *item=new k9LvItemImport(m_k9Import->getRoot(),k9LvItemImport::TITLE);
+ item->setExpanded(true);
+ k9Title *title=new k9Title( m_k9Import->getNewDVD());
+- item->setText(0,i18n("title %1").arg(title->getNum() +1));
++ item->setText(0,i18n("title %1",title->getNum() +1));
+
+ connect( title->getButton(),SIGNAL(sigsetImage(k9MenuButton*, const QImage&)),m_k9Import,SLOT(buttonUpdated(k9MenuButton*, const QImage&)));
+ item->setTitle(title);
+@@ -180,7 +180,7 @@
+ file->setEnd(t.addMSecs(qMin(pos,fileInfo.getDuration()) *1000));
+ file->setReencode(!Ui_newTitle.ckReencode->isChecked());
+ k9LvItemImport * itemch=new k9LvItemImport(item,k9LvItemImport::CHAPTER);
+- itemch->setText(0,i18n("chapter %1").arg(i+1));
++ itemch->setText(0,i18n("chapter %1",i+1));
+ itemch->setText(1,file->getStart().toString("hh:mm:ss") +" - "+file->getEnd().toString("hh:mm:ss") );
+ itemch->setAviFile(file);
+ itemch->setTitle(title);
+@@ -202,7 +202,7 @@
+ btn->setHeight(height);
+ btn->setScript(QString("jump title 1 chapter %1 ;").arg(i+1));
+ btn->setTextPosition(BOTTOM);
+- btn->setText(i18n("chapter %1").arg(i+1));
++ btn->setText(i18n("chapter %1",i+1));
+ btn->setColor(config.getPrefButtonTextColor());
+ btn->setFont(config.getPrefButtonFont());
+ file->setButton(btn);
+diff -Naur k9copy-work/src/main/k9main.cpp k9copy/src/main/k9main.cpp
+--- k9copy-work/src/main/k9main.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/main/k9main.cpp 2020-12-23 23:48:01.708471979 -0500
+@@ -436,7 +436,7 @@
+ execCopy.copyDVD();
+ break;
+ }
+- changeStatusbar ( i18n ( "Ready" ) ,sbMessage );
++ changeStatusbar ( i18n( "Ready" ) ,sbMessage );
+
+ }
+
+@@ -457,7 +457,7 @@
+ index=i;
+ }
+ QString res="";
+- if ( ( index==-1 ) || ( _combo->currentText() ==i18n ( "ISO Image" ) ) ) {
++ if ( ( index==-1 ) || ( _combo->currentText() ==i18n( "ISO Image" ) ) ) {
+ res=_combo->currentText();
+ } else {
+ k9CdDrive * drive= ( k9CdDrive* ) driveList.at ( index );
+@@ -512,12 +512,12 @@
+
+ dvd->scandvd ( sDevice,m_quickScan );
+ if ( dvd->geterror() ) {
+- k9Dialogs::error ( dvd->geterrMsg(), i18n ( "Open DVD" ) );
++ k9Dialogs::error ( dvd->geterrMsg(), i18n( "Open DVD" ) );
+ return;
+ }
+
+ m_parent->setDvdOpened(true);
+- if ( dvd->getDVDTitle() ==i18n ( "unknown" ) && sVolName!="" ) {
++ if ( dvd->getDVDTitle() ==i18n( "unknown" ) && sVolName!="" ) {
+ dvd->setDVDTitle ( sVolName );
+ }
+
+@@ -535,14 +535,14 @@
+ ckLvItem *tsItem = new ckLvItem ( root,this,TITLESET );
+ tsItem->setExpanded ( TRUE );
+ QString c;
+- c=i18n ( "Titleset %1").arg(i+1 );
++ c=i18n( "Titleset %1",i+1 );
+ tsItem->setText ( 0,c );
+ QFont font=tsItem->font ( 1 );
+ font.setWeight ( QFont::Bold );
+ tsItem->setFont ( 1,font );
+
+
+- tsItem->setText ( 1," "+dvd->gettitleset ( i )->getsize_mb() +" " +i18n ( "MB" ) );
++ tsItem->setText ( 1," "+dvd->gettitleset ( i )->getsize_mb() +" " +i18n( "MB" ) );
+ tsItem->setTextAlignment ( 1,Qt::AlignRight );
+ tsItem->obj=dvd->gettitleset ( i ) ;
+ tsItem->streamType=NONE;
+@@ -561,7 +561,7 @@
+ m_playbackOptions->fillTitleList();
+ m_langSelect->fillLvLanguages();
+ listView1->setSortingEnabled ( true );
+- changeStatusbar ( i18n ( "Ready" ),sbMessage );
++ changeStatusbar ( i18n( "Ready" ),sbMessage );
+ emit SelectionChanged ( dvd,withMenus() );
+ this->setEnabled ( true );
+
+@@ -606,18 +606,18 @@
+
+ void k9Main::addChapters ( QTreeWidgetItem *_parent,k9DVDTitle *_title ) {
+ LvItem *chapter = new LvItem ( _parent,CHAPTER );
+- chapter->setText ( 0, i18n ( "chapters" ) );
++ chapter->setText ( 0, i18n( "chapters" ) );
+ chapter->setExpanded ( false );
+ chapter->setIcon ( 0,pxChapter );
+
+ int ch=0;
+ for ( int i=0;i< _title->getchapterCount();i++ ) {
+ ckLvItem *it =new ckLvItem ( chapter,this,CHAPTER );
+- it->setText ( 0,i18n ( "chapter %1").arg(++ch ) );
++ it->setText ( 0,i18n( "chapter %1",++ch ) );
+ QString s;
+
+ s=QString ( "%1" ).arg ( ( double ) ( _title->getChapter ( i )->getsectors() ) /512,0,'f',2 );
+- it->setText ( 1,i18n ( "%1 MB").arg(s ) );
++ it->setText ( 1,i18n( "%1 MB",s ) );
+ it->setTextAlignment ( 1,Qt::AlignRight | Qt::AlignVCenter);
+ it->setTextAlignment ( 2,Qt::AlignRight | Qt::AlignVCenter);
+
+@@ -631,13 +631,13 @@
+ k9DVDTitle *title2=_title->getTitles().at ( j );
+ for ( int i=0;i< title2->getchapterCount();i++ ) {
+ ckLvItem *it =new ckLvItem ( chapter,this,CHAPTER );
+- it->setText ( 0,i18n ( "chapter %1").arg(++ch ) );
++ it->setText ( 0,i18n( "chapter %1",++ch ) );
+ it->streamType=CHAP;
+ it->obj=title2->getChapter ( i );
+ QString s;
+ s=QString ( "%1" ).arg ( ( double ) ( title2->getChapter ( i )->getsectors() ) /512,0,'f',2 );
+
+- it->setText ( 1,i18n ( "%1 MB").arg(s ) );
++ it->setText ( 1,i18n( "%1 MB",s ) );
+ it->setTextAlignment ( 1,Qt::AlignRight | Qt::AlignVCenter );
+ it->setTextAlignment ( 2,Qt::AlignRight | Qt::AlignVCenter );
+
+@@ -672,7 +672,7 @@
+ itemTrack->setIcon ( col1,SmallIcon ( "title" ) );
+ c.sprintf ( "%.2f ", track->gettotalsize_mb() );
+
+- itemTrack->setText ( col2,c+i18n ( "MB" ) );
++ itemTrack->setText ( col2,c+i18n( "MB" ) );
+ itemTrack->setText (col4,track->gettotallength().toString ( "h:mm:ss" ));
+ itemTrack->setTextAlignment ( col2,Qt::AlignRight|Qt::AlignVCenter );
+ itemTrack->setTextAlignment ( col4,Qt::AlignRight|Qt::AlignVCenter );
+@@ -690,20 +690,20 @@
+ video->setIcon ( 0,SmallIcon ( "video" ) );
+ addListItem ( track,video,VID );
+ video->setExpanded ( false );
+- c=i18n ( "video %1 ").arg(track->getformat() );
++ c=i18n( "video %1 ",track->getformat() );
+ c.append ( " - " + track->getaspectRatio() );
+
+ video->setText ( col1, c );
+ if ( track->gettotalvideosize_mb() ) {
+ c.sprintf ( "%.2f ", track->gettotalvideosize_mb() );
+- video->setText ( col2,c +i18n ( "MB" ) );
++ video->setText ( col2,c +i18n( "MB" ) );
+ video->setTextAlignment ( col2,Qt::AlignRight );
+ }
+ video->obj=track;
+
+ for ( i=0;i< track->getaudioStreamCount();i++ ) {
+ l_auds=track->getaudioStream ( i );
+- c=i18n ( "audio %1 ").arg(i+1 );
++ c=i18n( "audio %1 ",i+1 );
+ c.append ( l_auds->getlanguage() + " " +l_auds->getformat() +" " );
+ ch.sprintf ( "%dch ",l_auds->getchannels() );
+ c.append ( ch+l_auds->getfrequency() +" "+l_auds->getquantization() );
+@@ -717,7 +717,7 @@
+ item->setText ( col1, c );
+ if ( l_auds->getsize_mb() ) {
+ c.sprintf ( "%.2f ", l_auds->getsize_mb());
+- item->setText ( col2,c +i18n ( "MB" ) );
++ item->setText ( col2,c +i18n( "MB" ) );
+ item->setTextAlignment ( col2,Qt::AlignRight );
+ }
+ item->setText ( col3,l_auds->getcontent() );
+@@ -727,7 +727,7 @@
+ }
+ for ( i=0;i< track->getsubPictureCount();i++ ) {
+ l_sub=track->getsubtitle ( i );
+- c=i18n ( "subpicture %1 ").arg(i+1 );
++ c=i18n( "subpicture %1 ",i+1 );
+ c.append ( l_sub->getlanguage() );
+ ckLvItem * item = new ckLvItem ( itemTrack,this,STREAM );
+
+@@ -738,7 +738,7 @@
+ item->setText ( col1, c );
+ if ( l_sub->getsize_mb() ) {
+ c.sprintf ( "%.2f ", l_sub->getsize_mb());
+- item->setText ( col2,c +i18n ( "MB" ) );
++ item->setText ( col2,c +i18n( "MB" ) );
+ item->setTextAlignment ( col2,Qt::AlignRight );
+ }
+ item->setText ( col3, l_sub->getcontent() );
+@@ -1207,7 +1207,7 @@
+ execCopy.setDvd ( dvd );
+ execCopy.setPath(Ui_MainDlg.urOutput->url().path());
+ execCopy.CreateMP4();
+- changeStatusbar ( i18n ( "Ready" ) ,sbMessage );
++ changeStatusbar ( i18n( "Ready" ) ,sbMessage );
+
+ }
+
+@@ -1216,7 +1216,7 @@
+ execCopy.setDvd ( dvd );
+ execCopy.setPath(Ui_MainDlg.urOutput->url().path());
+ execCopy.extractAudio();
+- changeStatusbar ( i18n ( "Ready" ) ,sbMessage );
++ changeStatusbar ( i18n( "Ready" ) ,sbMessage );
+
+ }
+
+@@ -1226,7 +1226,7 @@
+ execCopy.setDvd ( dvd );
+ execCopy.setPath(Ui_MainDlg.urOutput->url().path());
+ execCopy.extractMPEG2();
+- changeStatusbar ( i18n ( "Ready" ) ,sbMessage );
++ changeStatusbar ( i18n( "Ready" ) ,sbMessage );
+
+
+ }
+@@ -1365,7 +1365,7 @@
+ if ( drive !=NULL ) {
+ QList <int>list=drive->getWriteSpeeds();
+ Ui_MainDlg.cbBurnSpeed->clear();
+- Ui_MainDlg.cbBurnSpeed->addItem ( i18n ( "default" ) );
++ Ui_MainDlg.cbBurnSpeed->addItem ( i18n( "default" ) );
+ foreach ( int speed,list ) {
+ Ui_MainDlg.cbBurnSpeed->addItem ( QString::number ( ( double ) ( speed ) /1385 ) );
+ }
+@@ -1389,7 +1389,7 @@
+
+
+ void k9Main::bInputOpenClick() {
+- QString result=k9Dialogs::getOpenFileName ( QDir::homePath(),"*.iso", 0,i18n ( "Open ISO Image" ) );
++ QString result=k9Dialogs::getOpenFileName ( QDir::homePath(),"*.iso", 0,i18n( "Open ISO Image" ) );
+ if ( result!="" ) {
+ k9Tools::setComboText ( Ui_MainDlg.cbInputDev,result );
+ Open();
+@@ -1482,7 +1482,7 @@
+ }
+ else {
+ changeStatusbar ( QString::number ( dbfactor,'f',2 ),sbFactor );
+- changeStatusbar ( i18n("%1 MB").arg(QString::number ((double)sizeSelected/512.,'f',2)),sbSelSize);
++ changeStatusbar ( i18n("%1 MB",QString::number ((double)sizeSelected/512.,'f',2)),sbSelSize);
+ }
+ emit SelectionChanged ( dvd,withMenus() );
+ m_mutex.unlock();
+diff -Naur k9copy-work/src/main/k9titlefactor.cpp k9copy/src/main/k9titlefactor.cpp
+--- k9copy-work/src/main/k9titlefactor.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/main/k9titlefactor.cpp 2020-12-23 23:51:35.909155787 -0500
+@@ -60,7 +60,7 @@
+ }
+ double size;
+ size =m_current->getChaptersSize_mb(true) / getFactor();
+- Ui_titleFactor.lTargetSize->setText(i18n("size : %1 MB").arg(size ));
++ Ui_titleFactor.lTargetSize->setText(i18n("size : %1 MB",size ));
+ }
+ }
+
+@@ -97,7 +97,7 @@
+ Ui_titleFactor.tFactor->setText(QString("%1").arg(getFactor(),4,'f',2));
+ size =m_current->getChaptersSize_mb(true) / getFactor();
+ }
+- Ui_titleFactor.lTargetSize->setText(i18n("size : %1 MB").arg(size ));
++ Ui_titleFactor.lTargetSize->setText(i18n("size : %1 MB",size ));
+
+
+ }
+@@ -118,7 +118,7 @@
+ Ui_titleFactor.gbTitle->setChecked(m_current->getforceFactor());
+ m_updating=false;
+
+- Ui_titleFactor.lbTitle->setText(i18n("Shrink Factor for %1").arg(m_current->getname()));
++ Ui_titleFactor.lbTitle->setText(i18n("Shrink Factor for %1",m_current->getname()));
+ double size;
+ if (m_current->getforceFactor()) {
+ Ui_titleFactor.slFactor->setValue(m_current->getfactor()*100.0);
+@@ -131,7 +131,7 @@
+ Ui_titleFactor.slFactor->setMinimum(100);
+ size =m_current->getChaptersSize_mb(true) / getFactor();
+ }
+- Ui_titleFactor.lTargetSize->setText(i18n("size : %1 MB").arg(size ));
++ Ui_titleFactor.lTargetSize->setText(i18n("size : %1 MB",size ));
+
+ }
+
+diff -Naur k9copy-work/src/mplayer/k9mplayer.cpp k9copy/src/mplayer/k9mplayer.cpp
+--- k9copy-work/src/mplayer/k9mplayer.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/mplayer/k9mplayer.cpp 2020-12-23 23:48:01.709471987 -0500
+@@ -174,7 +174,7 @@
+
+ qDebug() << m_process->debug();
+ if (!m_process->start()) {
+- k9Dialogs::error (i18n("Unable to run %1").arg("mplayer") , i18n("Preview"));
++ k9Dialogs::error (i18n("Unable to run %1","mplayer") , i18n("Preview"));
+ }
+
+ m_canwrite=TRUE;
+diff -Naur k9copy-work/src/player/k9play.cpp k9copy/src/player/k9play.cpp
+--- k9copy-work/src/player/k9play.cpp 2020-12-23 23:47:42.379321457 -0500
++++ k9copy/src/player/k9play.cpp 2020-12-23 23:48:01.709471987 -0500
+@@ -366,7 +366,7 @@
+ /* set read ahead cache usage */
+ if (dvdnav_set_readahead_flag(dvdnav, DVD_READ_CACHE) != DVDNAV_STATUS_OK) {
+ writeOutput( QString("ERR:Error on dvdnav_set_readahead_flag: %1\n").arg(dvdnav_err_to_string(dvdnav)));
+- emit sigError(i18n("Error on dvdnav_set_readahead_flag: %1").arg(dvdnav_err_to_string(dvdnav)));
++ emit sigError(i18n("Error on dvdnav_set_readahead_flag: %1",dvdnav_err_to_string(dvdnav)));
+ end();
+ return;
+ }
diff --git a/multimedia/k9copy-reloaded/patches/k9copy-reloaded-consolidated-fixes.patch b/multimedia/k9copy-reloaded/patches/k9copy-reloaded-consolidated-fixes.patch
new file mode 100644
index 0000000000000..0f1e0e16fe4b2
--- /dev/null
+++ b/multimedia/k9copy-reloaded/patches/k9copy-reloaded-consolidated-fixes.patch
@@ -0,0 +1,581 @@
+diff -Naur k9copy.orig/CMakeLists.txt k9copy/CMakeLists.txt
+--- k9copy.orig/CMakeLists.txt 2014-10-16 07:58:20.000000000 -0400
++++ k9copy/CMakeLists.txt 2020-12-24 10:48:11.088907284 -0500
+@@ -1,3 +1,4 @@
++cmake_minimum_required(VERSION 3.1)
+ project(k9copy)
+ set (VERSION 3.0.3)
+
+@@ -568,7 +569,11 @@
+
+ install( FILES k9copy.desktop k9copy_assistant.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+ #install( FILES k9copy.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
++if(QT5_BUILD)
++install( FILES k9copyui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/k9copy )
++else()
+ install( FILES k9copyui.rc DESTINATION ${DATA_INSTALL_DIR}/k9copy )
++endif()
+
+ install(FILES k9copy_open.desktop DESTINATION ${DATA_INSTALL_DIR}/solid/actions)
+ install(FILES k9copy_assistant_open.desktop DESTINATION ${DATA_INSTALL_DIR}/solid/actions)
+diff -Naur k9copy.orig/k9copy.desktop k9copy/k9copy.desktop
+--- k9copy.orig/k9copy.desktop 2014-09-29 11:00:11.000000000 -0400
++++ k9copy/k9copy.desktop 2020-12-24 10:48:11.089907292 -0500
+@@ -1,13 +1,15 @@
+ [Desktop Entry]
+ Type=Application
+-Name=k9copy
+-Exec=k9copy -caption "%c" %i %u
++Name=K9copy
++Exec=k9copy
+ Comment=DVD9 to DVD5 backup tool
++Comment[de]=DVD9 auf DVD5 sichern
+ Comment[fr]=Backup de DVD9 en DVD5
+ Comment[tr]=DVD9 DVD5 yedekleme aracı
+ Comment[ru]=Инструмент для копирования с DVD9 на DVD5
+ Comment[uk]=Інструмент резервного копіювання DVD
+ GenericName=Video DVD Backup
++GenericName[de]=Video-DVD-Sicherung
+ GenericName[fr]=Backup de DVD Video
+ GenericName[tr]=DVD Vidyo Yedekleme Aracı
+ GenericName[ru]=Копирование с видео-DVD
+diff -Naur k9copy.orig/k9copy_assistant.desktop k9copy/k9copy_assistant.desktop
+--- k9copy.orig/k9copy_assistant.desktop 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/k9copy_assistant.desktop 2020-12-24 10:48:11.089907292 -0500
+@@ -1,9 +1,7 @@
+-#!/usr/bin/env xdg-open
+ [Desktop Entry]
+-Encoding=UTF-8
+ Type=Application
+-Name=k9copy assistant
+-Exec=k9copy --assistant -caption "%c" %i %m %u
++Name=K9copy assistant
++Exec=k9copy --assistant
+ Comment=DVD9 to DVD5 backup tool
+ Comment[fr]=Backup de DVD9 en DVD5
+ Comment[tr]=DVD9 DVD5 yedekleme aracı
+@@ -14,9 +12,8 @@
+ 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
+diff -Naur k9copy.orig/k9copy_assistant_open.desktop k9copy/k9copy_assistant_open.desktop
+--- k9copy.orig/k9copy_assistant_open.desktop 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/k9copy_assistant_open.desktop 2020-12-24 10:48:11.121907568 -0500
+@@ -1,5 +1,5 @@
+ [Desktop Action open]
+-Exec=k9copy --input %f --assistant
++Exec=k9copy --assistant
+ Icon=k9copy
+ Name=Copy with k9copy (wizard)
+ Name[fr]=Copier avec k9copy (wizard)
+@@ -11,4 +11,4 @@
+ [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 -Naur k9copy.orig/po/ca.po k9copy/po/ca.po
+--- k9copy.orig/po/ca.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/ca.po 2020-12-24 10:48:11.122907577 -0500
+@@ -12,6 +12,7 @@
+ "PO-Revision-Date: 2006-09-06 19:13+0200\n"
+ "Last-Translator: Daniel Balagué Guardia <bullet@k-demar.org>\n"
+ "Language-Team: Català <ca@li.org>\n"
++"Language: ca\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/cs.po k9copy/po/cs.po
+--- k9copy.orig/po/cs.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/cs.po 2020-12-24 10:48:11.123907586 -0500
+@@ -13,6 +13,7 @@
+ "PO-Revision-Date: 2004-01-01 00:36+0100\n"
+ "Last-Translator: \n"
+ "Language-Team: Czech <kde-i18n-doc@kde.org>\n"
++"Language: cs\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/da.po k9copy/po/da.po
+--- k9copy.orig/po/da.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/da.po 2020-12-24 10:48:11.125907603 -0500
+@@ -11,6 +11,7 @@
+ "PO-Revision-Date: 2010-05-12 14:26+0200\n"
+ "Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
+ "Language-Team: Danish <opensuse-translation@opensuse.org>\n"
++"Language: da\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/de.po k9copy/po/de.po
+--- k9copy.orig/po/de.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/de.po 2020-12-24 10:48:11.126907611 -0500
+@@ -11,6 +11,7 @@
+ "PO-Revision-Date: 2009-06-12 14:13+0200\n"
+ "Last-Translator: Jan Berndt <Jan.Berndt@gmx.de>\n"
+ "Language-Team: deutsch <de@li.org>\n"
++"Language: de\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/el.po k9copy/po/el.po
+--- k9copy.orig/po/el.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/el.po 2020-12-24 10:48:11.127907620 -0500
+@@ -13,6 +13,7 @@
+ "PO-Revision-Date: 2007-10-17 11:33+0300\n"
+ "Last-Translator: Spiros Georgaras <sng@hellug.gr>\n"
+ "Language-Team: Greek <i18ngr@lists.hellug.gr>\n"
++"Language: el\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/es.po k9copy/po/es.po
+--- k9copy.orig/po/es.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/es.po 2020-12-24 10:48:11.127907620 -0500
+@@ -12,6 +12,7 @@
+ "PO-Revision-Date: 2006-09-06 19:11+0200\n"
+ "Last-Translator: Daniel Balagué Guardia <bullet@k-demar.org>\n"
+ "Language-Team: Català <ca@li.org>\n"
++"Language: es\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/es_AR.po k9copy/po/es_AR.po
+--- k9copy.orig/po/es_AR.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/es_AR.po 2020-12-24 10:48:11.128907629 -0500
+@@ -10,6 +10,7 @@
+ "PO-Revision-Date: 2008-04-30 03:57-0300\n"
+ "Last-Translator: Fernando Toledo <ftoledo@docksud.com.ar>\n"
+ "Language-Team: Español (Argentina) <es@li.org>\n"
++"Language: es_AR\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/fr.po k9copy/po/fr.po
+--- k9copy.orig/po/fr.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/fr.po 2020-12-24 10:48:11.128907629 -0500
+@@ -9,6 +9,7 @@
+ "PO-Revision-Date: 2007-07-24 09:24+0200\n"
+ "Last-Translator: Jean-Michel Petit <k9copy@free.fr>\n"
+ "Language-Team: <fr@li.org>\n"
++"Language: fr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/it.po k9copy/po/it.po
+--- k9copy.orig/po/it.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/it.po 2020-12-24 10:48:11.129907637 -0500
+@@ -15,6 +15,7 @@
+ "PO-Revision-Date: 2008-03-25 18:47+0100\n"
+ "Last-Translator: Leonardo Finetti <finex@finex.org>\n"
+ "Language-Team: italian <kde-i18n-it@kde.org>\n"
++"Language: it\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/ja.po k9copy/po/ja.po
+--- k9copy.orig/po/ja.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/ja.po 2020-12-24 10:48:11.129907637 -0500
+@@ -12,6 +12,7 @@
+ "PO-Revision-Date: 2010-07-11 10:17+0900\n"
+ "Last-Translator: Munehiro Yamamoto <munepixyz@gmail.com>\n"
+ "Language-Team: munepi <munepixyz@gmail.com>\n"
++"Language: ja\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: \n"
+diff -Naur k9copy.orig/po/k9copy.pot k9copy/po/k9copy.pot
+--- k9copy.orig/po/k9copy.pot 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/k9copy.pot 2020-12-24 10:48:11.130907646 -0500
+@@ -13,6 +13,7 @@
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
++"Language: en\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/nl.po k9copy/po/nl.po
+--- k9copy.orig/po/nl.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/nl.po 2020-12-24 10:48:11.130907646 -0500
+@@ -11,6 +11,7 @@
+ "PO-Revision-Date: 2009-05-10 16:15+0200\n"
+ "Last-Translator: \n"
+ "Language-Team: Dutch <kde-i18n-doc@kde.org>\n"
++"Language: nl\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/pl.po k9copy/po/pl.po
+--- k9copy.orig/po/pl.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/pl.po 2020-12-24 10:48:11.130907646 -0500
+@@ -13,6 +13,7 @@
+ "PO-Revision-Date: 2006-09-27 11:51+0200\n"
+ "Last-Translator: Wojciech Nawrocki <wojtasin@o2.pl>\n"
+ "Language-Team: Polski <pl@li.org>\n"
++"Language: pl\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/pt_BR.po k9copy/po/pt_BR.po
+--- k9copy.orig/po/pt_BR.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/pt_BR.po 2020-12-24 10:48:11.131907655 -0500
+@@ -14,6 +14,7 @@
+ "PO-Revision-Date: 2010-02-08 21:04-0200\n"
+ "Last-Translator: Phantom X <megaphantomx at bol.com.br>\n"
+ "Language-Team: Português do Brasil <pt@li.org>\n"
++"Language: pt_BR\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/ru.po k9copy/po/ru.po
+--- k9copy.orig/po/ru.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/ru.po 2020-12-24 10:48:11.133907672 -0500
+@@ -11,6 +11,7 @@
+ "PO-Revision-Date: 2010-01-01 17:32+0000\n"
+ "Last-Translator: kostya_hm <kostya.hm@rambler.ru>\n"
+ "Language-Team: Russian <none>\n"
++"Language: ru\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/sr.po k9copy/po/sr.po
+--- k9copy.orig/po/sr.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/sr.po 2020-12-24 10:48:11.133907672 -0500
+@@ -14,6 +14,7 @@
+ "PO-Revision-Date: 2007-08-15 11:15+0100\n"
+ "Last-Translator: Милош Поповић <gpopac@gmail.com>\n"
+ "Language-Team: Serbian <gnom@prevod.org>\n"
++"Language: sr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/sr@Latn.po k9copy/po/sr@Latn.po
+--- k9copy.orig/po/sr@Latn.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/sr@Latn.po 2020-12-24 10:48:11.135907689 -0500
+@@ -14,6 +14,7 @@
+ "PO-Revision-Date: 2007-08-15 11:15+0100\n"
+ "Last-Translator: Miloš Popović <gpopac@gmail.com>\n"
+ "Language-Team: Serbian <gnom@prevod.org>\n"
++"Language: sr@Latn\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/tr.po k9copy/po/tr.po
+--- k9copy.orig/po/tr.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/tr.po 2020-12-24 10:48:11.136907698 -0500
+@@ -14,6 +14,7 @@
+ "PO-Revision-Date: 2007-10-17 11:01+0300\n"
+ "Last-Translator: Murat Şenel <muratasenel@gmail.com>\n"
+ "Language-Team: <tr@li.org>\n"
++"Language: tr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/uk.po k9copy/po/uk.po
+--- k9copy.orig/po/uk.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/uk.po 2020-12-24 10:48:11.137907707 -0500
+@@ -11,7 +11,7 @@
+ "PO-Revision-Date: 2011-07-24 12:18+0300\n"
+ "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+ "Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
+-"Language: \n"
++"Language: uk\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/po/zh_TW.po k9copy/po/zh_TW.po
+--- k9copy.orig/po/zh_TW.po 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/po/zh_TW.po 2020-12-24 10:48:11.137907707 -0500
+@@ -12,6 +12,7 @@
+ "PO-Revision-Date: 2007-10-24 19:43+0800\n"
+ "Last-Translator: 洪任諭 <pcman.tw@gmail.com>\n"
+ "Language-Team: Traditional Chinese <LL@li.org>\n"
++"Language: zh_TW\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=utf-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+diff -Naur k9copy.orig/src/backup/k9dvdbackup.cpp k9copy/src/backup/k9dvdbackup.cpp
+--- k9copy.orig/src/backup/k9dvdbackup.cpp 2014-09-29 12:55:40.000000000 -0400
++++ k9copy/src/backup/k9dvdbackup.cpp 2020-12-24 14:26:13.473270218 -0500
+@@ -907,7 +907,7 @@ k9Vobu * k9DVDBackup::remapOffset(uint32
+
+
+ if ((vobu1 !=NULL) && (vobu2!=NULL)) {
+- *_offset = abs(vobu1->newSector - vobu2->newSector) | maskOffset1 ;
++ *_offset = abs((int32_t)(vobu1->newSector - vobu2->newSector)) | maskOffset1 ;
+ *_offset |= maskOffset2;
+ return vobu2;
+ }
+diff -Naur k9copy.orig/src/backup/k9execcopy.cpp k9copy/src/backup/k9execcopy.cpp
+--- k9copy.orig/src/backup/k9execcopy.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/backup/k9execcopy.cpp 2020-12-24 10:48:11.138907715 -0500
+@@ -306,7 +306,7 @@
+
+ #if QT_VERSION >= 0x050000
+ m_progressDialog=new QProgressDialog(k9Dialogs::getMainWidget() );
+- m_progressDialog->setCancelButton(false);
++ m_progressDialog->setCancelButton(NULL);
+
+ #else
+ m_progressDialog=new KProgressDialog(k9Dialogs::getMainWidget() );
+diff -Naur k9copy.orig/src/import/k9avidecode.cpp k9copy/src/import/k9avidecode.cpp
+--- k9copy.orig/src/import/k9avidecode.cpp 2014-09-29 11:00:12.000000000 -0400
++++ k9copy/src/import/k9avidecode.cpp 2020-12-24 12:11:16.447891983 -0500
+@@ -26,7 +26,6 @@
+ void av_free_packet_internal(AVPacket *pkt)
+ {
+ if (pkt) {
+- if (pkt->destruct) pkt->destruct(pkt);
+ pkt->data = NULL; pkt->size = 0;
+ }
+ }
+@@ -238,14 +237,14 @@
+
+ int numBytes;
+ // Determine required buffer size and allocate buffer
+- numBytes=avpicture_get_size(PIX_FMT_RGB24, m_CodecCtx->width,
++ numBytes=avpicture_get_size(AV_PIX_FMT_RGB24, m_CodecCtx->width,
+ m_CodecCtx->height);
+ m_buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
+
+ // Assign appropriate parts of buffer to image planes in pFrameRGB
+ // Note that pFrameRGB is an AVFrame, but AVFrame is a superset
+ // of AVPicture
+- avpicture_fill((AVPicture *)m_FrameRGB, m_buffer, PIX_FMT_RGB24,
++ avpicture_fill((AVPicture *)m_FrameRGB, m_buffer, AV_PIX_FMT_RGB24,
+ m_CodecCtx->width, m_CodecCtx->height);
+
+
+@@ -317,13 +316,13 @@
+ bFound=true;
+ #ifndef HAVE_SWSCALE
+ // Convert the image from its native format to RGB
+- img_convert((AVPicture *)m_FrameRGB, PIX_FMT_RGB24,
++ img_convert((AVPicture *)m_FrameRGB, AV_PIX_FMT_RGB24,
+ (AVPicture*)m_Frame, m_CodecCtx->pix_fmt,
+ m_CodecCtx->width, m_CodecCtx->height);
+ SaveFrame(m_FrameRGB, m_CodecCtx->width,
+ m_CodecCtx->height);
+ #else
+- toRGB_convert_ctx=sws_getContext(m_CodecCtx->width, m_CodecCtx->height, m_CodecCtx->pix_fmt, m_CodecCtx->width, m_CodecCtx->height, PIX_FMT_RGB24, sws_flags,NULL,NULL,NULL);
++ toRGB_convert_ctx=sws_getContext(m_CodecCtx->width, m_CodecCtx->height, m_CodecCtx->pix_fmt, m_CodecCtx->width, m_CodecCtx->height, AV_PIX_FMT_RGB24, sws_flags,NULL,NULL,NULL);
+ sws_scale(toRGB_convert_ctx, m_Frame->data, m_Frame->linesize, 0, m_CodecCtx->height, m_FrameRGB->data,m_FrameRGB->linesize);
+ // convert frame to QImage
+ SaveFrame(m_FrameRGB, m_CodecCtx->width,
+diff -Naur k9copy.orig/src/libdvdnav-NOW/dvdnav/dvdnav.h k9copy/src/libdvdnav-NOW/dvdnav/dvdnav.h
+--- k9copy.orig/src/libdvdnav-NOW/dvdnav/dvdnav.h 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/dvdnav/dvdnav.h 2020-12-24 10:48:11.139907724 -0500
+@@ -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/dvdnav_events.h"
+
+
+
+diff -Naur k9copy.orig/src/libdvdnav-NOW/dvdnav.c k9copy/src/libdvdnav-NOW/dvdnav.c
+--- k9copy.orig/src/libdvdnav-NOW/dvdnav.c 2014-09-29 12:02:49.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/dvdnav.c 2020-12-24 10:48:11.139907724 -0500
+@@ -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.orig/src/libdvdnav-NOW/highlight.c k9copy/src/libdvdnav-NOW/highlight.c
+--- k9copy.orig/src/libdvdnav-NOW/highlight.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/highlight.c 2020-12-24 10:48:11.139907724 -0500
+@@ -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.orig/src/libdvdnav-NOW/navigation.c k9copy/src/libdvdnav-NOW/navigation.c
+--- k9copy.orig/src/libdvdnav-NOW/navigation.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/navigation.c 2020-12-24 10:48:11.139907724 -0500
+@@ -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.orig/src/libdvdnav-NOW/read_cache.c k9copy/src/libdvdnav-NOW/read_cache.c
+--- k9copy.orig/src/libdvdnav-NOW/read_cache.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/read_cache.c 2020-12-24 10:48:11.140907732 -0500
+@@ -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.orig/src/libdvdnav-NOW/searching.c k9copy/src/libdvdnav-NOW/searching.c
+--- k9copy.orig/src/libdvdnav-NOW/searching.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/searching.c 2020-12-24 10:48:11.140907732 -0500
+@@ -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.orig/src/libdvdnav-NOW/settings.c k9copy/src/libdvdnav-NOW/settings.c
+--- k9copy.orig/src/libdvdnav-NOW/settings.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/settings.c 2020-12-24 10:48:11.140907732 -0500
+@@ -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.orig/src/libdvdnav-NOW/vm/decoder.c k9copy/src/libdvdnav-NOW/vm/decoder.c
+--- k9copy.orig/src/libdvdnav-NOW/vm/decoder.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/vm/decoder.c 2020-12-24 10:48:11.140907732 -0500
+@@ -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.orig/src/libdvdnav-NOW/vm/getset.c k9copy/src/libdvdnav-NOW/vm/getset.c
+--- k9copy.orig/src/libdvdnav-NOW/vm/getset.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/vm/getset.c 2020-12-24 10:48:11.141907741 -0500
+@@ -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.orig/src/libdvdnav-NOW/vm/play.c k9copy/src/libdvdnav-NOW/vm/play.c
+--- k9copy.orig/src/libdvdnav-NOW/vm/play.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/vm/play.c 2020-12-24 10:48:11.141907741 -0500
+@@ -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.orig/src/libdvdnav-NOW/vm/vm.c k9copy/src/libdvdnav-NOW/vm/vm.c
+--- k9copy.orig/src/libdvdnav-NOW/vm/vm.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/vm/vm.c 2020-12-24 10:48:11.141907741 -0500
+@@ -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.orig/src/libdvdnav-NOW/vm/vmcmd.c k9copy/src/libdvdnav-NOW/vm/vmcmd.c
+--- k9copy.orig/src/libdvdnav-NOW/vm/vmcmd.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/vm/vmcmd.c 2020-12-24 10:48:11.141907741 -0500
+@@ -31,8 +31,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.orig/src/libdvdnav-NOW/vm/vmget.c k9copy/src/libdvdnav-NOW/vm/vmget.c
+--- k9copy.orig/src/libdvdnav-NOW/vm/vmget.c 2014-09-29 11:50:54.000000000 -0400
++++ k9copy/src/libdvdnav-NOW/vm/vmget.c 2020-12-24 10:48:11.141907741 -0500
+@@ -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"