diff options
author | Thomas Preud'homme <robotux@celest.fr> | 2020-09-05 20:31:57 +0100 |
---|---|---|
committer | Thomas Preud'homme <robotux@celest.fr> | 2020-09-05 20:31:58 +0100 |
commit | c35327521266b151296d0df45375434010037c4e (patch) | |
tree | 0db1633256d19dfc81cb0a311326cdfec751ef5f | |
parent | f855b4524aa73c6dcf2f6020c60406853b505d81 (diff) | |
parent | 0a82744381cb8cdcd54ea97ff5dfdeca2e8db17e (diff) |
merge patched into master
-rw-r--r-- | debian/.git-dpm | 4 | ||||
-rw-r--r-- | debian/patches/0001-Fix-requirement-for-PATH_MAX.patch | 112 | ||||
-rw-r--r-- | debian/patches/0002-Fix-linking-opus-library-on-Hurd.patch | 44 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rwxr-xr-x | other-pro/ultracopier-core.pro | 2 | ||||
-rwxr-xr-x | other-pro/ultracopier-little.pro | 2 | ||||
-rwxr-xr-x | plugins/CopyEngine/Ultracopier-Spec/TransferThread.cpp | 20 | ||||
-rwxr-xr-x | plugins/CopyEngine/Ultracopier-Spec/async/TransferThreadAsync.cpp | 17 |
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; |