summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Preud'homme <robotux@celest.fr>2020-09-05 20:31:57 +0100
committerThomas Preud'homme <robotux@celest.fr>2020-09-05 20:31:58 +0100
commitc35327521266b151296d0df45375434010037c4e (patch)
tree0db1633256d19dfc81cb0a311326cdfec751ef5f
parentf855b4524aa73c6dcf2f6020c60406853b505d81 (diff)
parent0a82744381cb8cdcd54ea97ff5dfdeca2e8db17e (diff)
merge patched into master
-rw-r--r--debian/.git-dpm4
-rw-r--r--debian/patches/0001-Fix-requirement-for-PATH_MAX.patch112
-rw-r--r--debian/patches/0002-Fix-linking-opus-library-on-Hurd.patch44
-rw-r--r--debian/patches/series1
-rwxr-xr-xother-pro/ultracopier-core.pro2
-rwxr-xr-xother-pro/ultracopier-little.pro2
-rwxr-xr-xplugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp20
-rwxr-xr-xplugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp17
8 files changed, 177 insertions, 25 deletions
diff --git a/debian/.git-dpm b/debian/.git-dpm
index 499a46f..28b7b1a 100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@ -1,6 +1,6 @@
# see git-dpm(1) from git-dpm package
-b19daf042057d7481c7ae7149da7325a0a9da69f
-b19daf042057d7481c7ae7149da7325a0a9da69f
+0a82744381cb8cdcd54ea97ff5dfdeca2e8db17e
+0a82744381cb8cdcd54ea97ff5dfdeca2e8db17e
ac95ce6e0538249e9c395904b49b078234fdcb5e
ac95ce6e0538249e9c395904b49b078234fdcb5e
ultracopier_2.2.4.5.orig.tar.xz
diff --git a/debian/patches/0001-Fix-requirement-for-PATH_MAX.patch b/debian/patches/0001-Fix-requirement-for-PATH_MAX.patch
index 68f45e6..1dffe35 100644
--- a/debian/patches/0001-Fix-requirement-for-PATH_MAX.patch
+++ b/debian/patches/0001-Fix-requirement-for-PATH_MAX.patch
@@ -1,4 +1,4 @@
-From b19daf042057d7481c7ae7149da7325a0a9da69f Mon Sep 17 00:00:00 2001
+From 8efbbb6ede28a37326b2d0579e3558182bf5cc12 Mon Sep 17 00:00:00 2001
From: Thomas Preud'homme <robotux@celest.fr>
Date: Mon, 31 Aug 2020 00:06:58 +0100
Subject: Fix requirement for PATH_MAX
@@ -8,12 +8,14 @@ defined. This commit uses dynamic allocation to avoid relying on
PATH_MAX being defined.
Author: Thomas Preud'homme <robotux@debian.org>
-Forwarded: https://github.com/alphaonex86/Ultracopier/commit/e3ff2b22acd840ff74e523602540ee1654915c61
-Applied-Upstream: commit:807f4e8ac8663eeec4af5d7e86a016a3276388b3
+Forwarded: https://github.com/alphaonex86/Ultracopier/pull/51
+Applied-Upstream: commit:02afb78e2345f5c6fd0891fad554dca13179a0cd
Last-Update: 2020-08-31
---
- .../Ultracopier-Spec/ScanFileOrFolder.cpp | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
+ .../Ultracopier-Spec/ScanFileOrFolder.cpp | 18 +++++++++++++----
+ .../Ultracopier-Spec/TransferThread.cpp | 20 +++++++++----------
+ .../async/TransferThreadAsync.cpp | 17 +++++++++++-----
+ 3 files changed, 35 insertions(+), 20 deletions(-)
diff --git a/plugins/CopyEngine/Ultracopier-Spec/ScanFileOrFolder.cpp b/plugins/CopyEngine/Ultracopier-Spec/ScanFileOrFolder.cpp
index 014585df..940dddb2 100755
@@ -58,3 +60,103 @@ index 014585df..940dddb2 100755
}
return temp;
/*do
+diff --git a/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp b/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp
+index 9cbad5a2..d986b49c 100755
+--- a/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp
++++ b/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp
+@@ -737,8 +737,7 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
+ } while(!pathSplit.empty());
+ return true;
+ #else
+- char pathC[PATH_MAX];
+- strcpy(pathC,TransferThread::internalStringTostring(path).c_str());
++ std::string pathC(TransferThread::internalStringTostring(path));
+ if(!mkdir(path))
+ if(errno==EEXIST)
+ return true;
+@@ -748,8 +747,7 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
+ std::string::size_type previouspos=path.size();
+ std::string::size_type lastpos=std::string::npos;
+
+- char pathCedit[PATH_MAX];
+- strcpy(pathCedit,pathC);
++ std::string pathCedit(pathC);
+ std::vector<std::string::size_type> pathSplit;
+ pathSplit.push_back(path.size());
+ do
+@@ -773,14 +771,14 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
+ return false;
+ #endif
+
+- pathCedit[lastpos]='\0';
++ pathCedit.resize(lastpos);
+ previouspos=lastpos;
+
+ errno=0;
+ #ifdef Q_OS_UNIX
+- if(::mkdir(pathCedit, mode)==-1)
++ if(::mkdir(pathCedit.c_str(), mode)==-1)
+ #else
+- if(::mkdir(pathCedit)==-1)
++ if(::mkdir(pathCedit.c_str())==-1)
+ #endif
+ if(errno!=EEXIST && errno!=ENOENT)
+ return false;
+@@ -791,14 +789,14 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
+
+ do
+ {
+- strcpy(pathCedit,pathC);
++ pathCedit = pathC;
+ lastpos=pathSplit.back();
+ pathSplit.pop_back();
+- pathCedit[lastpos]='\0';
++ pathCedit.resize(lastpos);
+ #ifdef Q_OS_UNIX
+- if(::mkdir(pathCedit, mode)==-1)
++ if(::mkdir(pathCedit.c_str(), mode)==-1)
+ #else
+- if(::mkdir(pathCedit)==-1)
++ if(::mkdir(pathCedit.c_str())==-1)
+ #endif
+ if(errno!=EEXIST)
+ return false;
+diff --git a/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp b/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp
+index b5af9284..b291b212 100755
+--- a/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp
++++ b/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp
+@@ -620,9 +620,16 @@ void TransferThreadAsync::ifCanStartTransfer()
+ return;
+ }
+ }
+- char buf[PATH_MAX];
+- const ssize_t s=readlink(TransferThread::internalStringTostring(source).c_str(),buf,sizeof(buf));
+- buf[s]=0x00;
++ std::vector<char> buf(512);
++ ssize_t s=0;
++ do {
++ buf.resize(buf.size()*2);
++ s=readlink(TransferThread::internalStringTostring(source).c_str(),buf.data(),buf.size());
++ } while (s == buf.size());
++ if (s!=-1) {
++ buf.resize(s + 1);
++ buf[s]='\0';
++ }
+ if(s<0)
+ {
+ const int terr=errno;
+@@ -638,12 +645,12 @@ void TransferThreadAsync::ifCanStartTransfer()
+ }
+ else
+ {
+- if(symlink(buf,TransferThread::internalStringTostring(destination).c_str())!=0)
++ if(symlink(buf.data(),TransferThread::internalStringTostring(destination).c_str())!=0)
+ {
+ const int terr=errno;
+ const std::string &strError=strerror(terr);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"["+std::to_string(id)+"] stop copy in error "+
+- buf+"->"+TransferThread::internalStringTostring(destination)+
++ buf.data()+"->"+TransferThread::internalStringTostring(destination)+
+ " "+strError+"("+std::to_string(terr)+")"
+ );
+ readError=true;
diff --git a/debian/patches/0002-Fix-linking-opus-library-on-Hurd.patch b/debian/patches/0002-Fix-linking-opus-library-on-Hurd.patch
new file mode 100644
index 0000000..bce0176
--- /dev/null
+++ b/debian/patches/0002-Fix-linking-opus-library-on-Hurd.patch
@@ -0,0 +1,44 @@
+From 0a82744381cb8cdcd54ea97ff5dfdeca2e8db17e Mon Sep 17 00:00:00 2001
+From: Thomas Preud'homme <robotux@celest.fr>
+Date: Mon, 31 Aug 2020 10:30:25 +0100
+Subject: Fix linking opus library on Hurd
+
+Qmake project files do not contain directives for linking the opus
+library on GNU/Hurd. This commit replaces the linux scope for the unix
+scope to also include GNU/Hurd in those directives.
+
+Author: Thomas Preud'homme <robotux@debian.org>
+Forwarded: https://github.com/alphaonex86/Ultracopier/pull/54
+Applied-Upstream: commit:c2088c1f9a5a7582d1ef99adb9e0e220c3afafa3
+Last-Update: 2020-09-05
+---
+ other-pro/ultracopier-core.pro | 2 +-
+ other-pro/ultracopier-little.pro | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/other-pro/ultracopier-core.pro b/other-pro/ultracopier-core.pro
+index 1cb92262..881382f7 100755
+--- a/other-pro/ultracopier-core.pro
++++ b/other-pro/ultracopier-core.pro
+@@ -17,7 +17,7 @@ macx {
+ #DEFINES += NOAUDIO
+ !contains(DEFINES, NOAUDIO) {
+ QT += multimedia
+-linux:LIBS += -lopus
++unix:!android:LIBS += -lopus
+ win32:LIBS += -lopus
+ SOURCES += \
+ $$PWD/../libogg/bitwise.c \
+diff --git a/other-pro/ultracopier-little.pro b/other-pro/ultracopier-little.pro
+index 64f9999a..418da582 100755
+--- a/other-pro/ultracopier-little.pro
++++ b/other-pro/ultracopier-little.pro
+@@ -3,7 +3,7 @@ android: DEFINES += NOAUDIO
+ #DEFINES += NOAUDIO
+ !contains(DEFINES, NOAUDIO) {
+ QT += multimedia
+-linux:LIBS += -lopus
++unix:!android:LIBS += -lopus
+ macx:LIBS += -lopus
+ win32:LIBS += -lopus
+ SOURCES += \
diff --git a/debian/patches/series b/debian/patches/series
index edf32a3..1969ee5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
0001-Fix-requirement-for-PATH_MAX.patch
+0002-Fix-linking-opus-library-on-Hurd.patch
diff --git a/other-pro/ultracopier-core.pro b/other-pro/ultracopier-core.pro
index 1cb9226..881382f 100755
--- a/other-pro/ultracopier-core.pro
+++ b/other-pro/ultracopier-core.pro
@@ -17,7 +17,7 @@ macx {
#DEFINES += NOAUDIO
!contains(DEFINES, NOAUDIO) {
QT += multimedia
-linux:LIBS += -lopus
+unix:!android:LIBS += -lopus
win32:LIBS += -lopus
SOURCES += \
$$PWD/../libogg/bitwise.c \
diff --git a/other-pro/ultracopier-little.pro b/other-pro/ultracopier-little.pro
index 64f9999..418da58 100755
--- a/other-pro/ultracopier-little.pro
+++ b/other-pro/ultracopier-little.pro
@@ -3,7 +3,7 @@ android: DEFINES += NOAUDIO
#DEFINES += NOAUDIO
!contains(DEFINES, NOAUDIO) {
QT += multimedia
-linux:LIBS += -lopus
+unix:!android:LIBS += -lopus
macx:LIBS += -lopus
win32:LIBS += -lopus
SOURCES += \
diff --git a/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp b/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp
index 9cbad5a..d986b49 100755
--- a/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp
+++ b/plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp
@@ -737,8 +737,7 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
} while(!pathSplit.empty());
return true;
#else
- char pathC[PATH_MAX];
- strcpy(pathC,TransferThread::internalStringTostring(path).c_str());
+ std::string pathC(TransferThread::internalStringTostring(path));
if(!mkdir(path))
if(errno==EEXIST)
return true;
@@ -748,8 +747,7 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
std::string::size_type previouspos=path.size();
std::string::size_type lastpos=std::string::npos;
- char pathCedit[PATH_MAX];
- strcpy(pathCedit,pathC);
+ std::string pathCedit(pathC);
std::vector<std::string::size_type> pathSplit;
pathSplit.push_back(path.size());
do
@@ -773,14 +771,14 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
return false;
#endif
- pathCedit[lastpos]='\0';
+ pathCedit.resize(lastpos);
previouspos=lastpos;
errno=0;
#ifdef Q_OS_UNIX
- if(::mkdir(pathCedit, mode)==-1)
+ if(::mkdir(pathCedit.c_str(), mode)==-1)
#else
- if(::mkdir(pathCedit)==-1)
+ if(::mkdir(pathCedit.c_str())==-1)
#endif
if(errno!=EEXIST && errno!=ENOENT)
return false;
@@ -791,14 +789,14 @@ bool TransferThread::mkpath(const INTERNALTYPEPATH &path)
do
{
- strcpy(pathCedit,pathC);
+ pathCedit = pathC;
lastpos=pathSplit.back();
pathSplit.pop_back();
- pathCedit[lastpos]='\0';
+ pathCedit.resize(lastpos);
#ifdef Q_OS_UNIX
- if(::mkdir(pathCedit, mode)==-1)
+ if(::mkdir(pathCedit.c_str(), mode)==-1)
#else
- if(::mkdir(pathCedit)==-1)
+ if(::mkdir(pathCedit.c_str())==-1)
#endif
if(errno!=EEXIST)
return false;
diff --git a/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp b/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp
index b5af928..b291b21 100755
--- a/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp
+++ b/plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp
@@ -620,9 +620,16 @@ void TransferThreadAsync::ifCanStartTransfer()
return;
}
}
- char buf[PATH_MAX];
- const ssize_t s=readlink(TransferThread::internalStringTostring(source).c_str(),buf,sizeof(buf));
- buf[s]=0x00;
+ std::vector<char> buf(512);
+ ssize_t s=0;
+ do {
+ buf.resize(buf.size()*2);
+ s=readlink(TransferThread::internalStringTostring(source).c_str(),buf.data(),buf.size());
+ } while (s == buf.size());
+ if (s!=-1) {
+ buf.resize(s + 1);
+ buf[s]='\0';
+ }
if(s<0)
{
const int terr=errno;
@@ -638,12 +645,12 @@ void TransferThreadAsync::ifCanStartTransfer()
}
else
{
- if(symlink(buf,TransferThread::internalStringTostring(destination).c_str())!=0)
+ if(symlink(buf.data(),TransferThread::internalStringTostring(destination).c_str())!=0)
{
const int terr=errno;
const std::string &strError=strerror(terr);
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"["+std::to_string(id)+"] stop copy in error "+
- buf+"->"+TransferThread::internalStringTostring(destination)+
+ buf.data()+"->"+TransferThread::internalStringTostring(destination)+
" "+strError+"("+std::to_string(terr)+")"
);
readError=true;