diff options
author | Sebastian Lau | 2016-04-11 10:00:07 +0200 |
---|---|---|
committer | Sebastian Lau | 2016-04-11 10:00:07 +0200 |
commit | 97c5c3eb70463b32de22c4b56afd046ed24af3aa (patch) | |
tree | fe4f4431efca19e127a86e15f5a2264f5ffa96c0 | |
parent | 51613b88cfb34232b8e9e0dafdca70e84bc09845 (diff) | |
download | aur-97c5c3eb70463b32de22c4b56afd046ed24af3aa.tar.gz |
Apply patch for GCC5 ABI from https://github.com/veracrypt/VeraCrypt/commit/646679da4d79bf7f8af22c44c7ae8498086a88a6
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | 0001_no_makeself.patch (renamed from no_makeself.patch) | 0 | ||||
-rw-r--r-- | 0002_gcc5_invalid_chars.patch | 54 | ||||
-rw-r--r-- | PKGBUILD | 74 |
4 files changed, 98 insertions, 52 deletions
@@ -1,31 +1,31 @@ # Generated by mksrcinfo v8 -# Sun Feb 21 10:15:42 UTC 2016 +# Mon Apr 11 07:59:26 UTC 2016 pkgbase = veracrypt pkgdesc = Disk encryption with strong security based on TrueCrypt pkgver = 1.17 - pkgrel = 2 + pkgrel = 3 url = http://veracrypt.codeplex.com/ install = veracrypt.install arch = i686 arch = x86_64 + arch = armv6h + arch = armv7h license = custom makedepends = nasm depends = fuse depends = wxgtk>=3.0 - source = no_makeself.patch + source = veracrypt_1.17_Source.tar.bz2::https://sourceforge.net/projects/veracrypt/files/VeraCrypt 1.17/veracrypt_1.17_Source.tar.bz2/download + source = veracrypt_1.17_Source.tar.bz2.sig::https://sourceforge.net/projects/veracrypt/files/VeraCrypt 1.17/veracrypt_1.17_Source.tar.bz2.sig/download + source = 0001_no_makeself.patch + source = 0002_gcc5_invalid_chars.patch source = veracrypt.desktop source = veracrypt.install + sha1sums = cd27cf9b6853aac104a33fac0f1d8733765042ba + sha1sums = cbe620297486c32d1f6a1693f6f2136097644287 sha1sums = 0cbe9f7875ab52be125cc575533f76fab60314a5 + sha1sums = 8379455e17745f0a0f3f70050c5af1c5e127f63b sha1sums = ebdd450e719fe3cff5e459f027856cbaf03db13a sha1sums = 14dceabf658a7e3505c855c2862aa86e343fcda5 - source_i686 = veracrypt_1.17_i386.tar.gz::https://www.dropbox.com/s/go6m9xi9h4kab2j/veracrypt_1.17_i386.tar.gz?raw=1 - source_i686 = veracrypt_1.17_i386.tar.gz.sig::https://www.dropbox.com/s/z3oz7i2cgmqjce8/veracrypt_1.17_i386.tar.gz.sig?raw=1 - sha1sums_i686 = 479fad1cfe53fef9155dd7ef9c28dd2ecb5d9be4 - sha1sums_i686 = SKIP - source_x86_64 = veracrypt_1.17_amd64.tar.gz::https://www.dropbox.com/s/n985f3vcmq5wsws/veracrypt_1.17_amd64.tar.gz?raw=1 - source_x86_64 = veracrypt_1.17_amd64.tar.gz.sig::https://www.dropbox.com/s/052jhd3swziqfvu/veracrypt_1.17_amd64.tar.gz.sig?raw=1 - sha1sums_x86_64 = b8aa201c42b4dda3233722066bd17fcac600d301 - sha1sums_x86_64 = SKIP pkgname = veracrypt diff --git a/no_makeself.patch b/0001_no_makeself.patch index de3ad79cfb5a..de3ad79cfb5a 100644 --- a/no_makeself.patch +++ b/0001_no_makeself.patch diff --git a/0002_gcc5_invalid_chars.patch b/0002_gcc5_invalid_chars.patch new file mode 100644 index 000000000000..adb1baa8c861 --- /dev/null +++ b/0002_gcc5_invalid_chars.patch @@ -0,0 +1,54 @@ +From 646679da4d79bf7f8af22c44c7ae8498086a88a6 Mon Sep 17 00:00:00 2001 +From: Mounir IDRASSI <mounir.idrassi@idrix.fr> +Date: Fri, 18 Mar 2016 16:25:48 +0100 +Subject: [PATCH] Linux: Completely fix gcc-5 "Invalid characters encountered" + issue on mount. It was caused by an issue of gcc-5 STL implementation that is + causing char* pointers retrieved from std::string using c_str method to + become invalid in the child of a child process (after two fork calls). The + workaround is to first copy the std:string values in the child before calling + the second fork. + +--- + src/Platform/Unix/Process.cpp | 24 ++++++++++++++++++++++-- + 1 file changed, 22 insertions(+), 2 deletions(-) + +diff --git a/src/Platform/Unix/Process.cpp b/src/Platform/Unix/Process.cpp +index 388bda6..0770364 100644 +--- a/Platform/Unix/Process.cpp ++++ b/Platform/Unix/Process.cpp +@@ -53,13 +53,33 @@ namespace VeraCrypt + try + { + int argIndex = 0; ++ /* Workaround for gcc 5.X issue related to the use of STL (string and list) with muliple fork calls. ++ * ++ * The char* pointers retrieved from the elements of parameter "arguments" are no longer valid after ++ * a second fork is called. "arguments" was created in the parent of the current child process. ++ * ++ * The only solution is to copy the elements of "arguments" parameter in a local string array on this ++ * child process and then use char* pointers retrieved from this local copies before calling fork. ++ * ++ * gcc 4.x doesn't suffer from this issue. ++ * ++ */ ++ string argsCopy[array_capacity (args)]; + if (!execFunctor) +- args[argIndex++] = const_cast <char*> (processName.c_str()); ++ { ++ argsCopy[argIndex++] = processName; ++ } + + foreach (const string &arg, arguments) + { +- args[argIndex++] = const_cast <char*> (arg.c_str()); ++ argsCopy[argIndex++] = arg; + } ++ ++ for (int i = 0; i < argIndex; i++) ++ { ++ args[i] = const_cast <char*> (argsCopy[i].c_str()); ++ } ++ + args[argIndex] = nullptr; + + if (inputData) @@ -5,62 +5,54 @@ pkgname=veracrypt _pkgname=VeraCrypt pkgver=1.17 _pkgver=${pkgver//_/-} -pkgrel=2 +pkgrel=3 pkgdesc="Disk encryption with strong security based on TrueCrypt" -arch=('i686' 'x86_64') #'armv6h' 'armv7h') +arch=('i686' 'x86_64' 'armv6h' 'armv7h') url="http://veracrypt.codeplex.com/" license=('custom') depends=('fuse' 'wxgtk>=3.0') makedepends=('nasm') install='veracrypt.install' -source_x86_64=( #"https://archlinux.0ptr.de/mirrors/veracrypt/${pkgver}/${pkgname}_${pkgver}_amd64.tar.gz" - #"https://archlinux.0ptr.de/mirrors/veracrypt/${pkgver}/${pkgname}_${pkgver}_amd64.tar.gz.sig") - "veracrypt_1.17_amd64.tar.gz::https://www.dropbox.com/s/n985f3vcmq5wsws/veracrypt_1.17_amd64.tar.gz?raw=1" - "veracrypt_1.17_amd64.tar.gz.sig::https://www.dropbox.com/s/052jhd3swziqfvu/veracrypt_1.17_amd64.tar.gz.sig?raw=1") -source_i686=( #"https://archlinux.0ptr.de/mirrors/veracrypt/${pkgver}/${pkgname}_${pkgver}_i386.tar.gz" - #"https://archlinux.0ptr.de/mirrors/veracrypt/${pkgver}/${pkgname}_${pkgver}_i386.tar.gz.sig") - "veracrypt_1.17_i386.tar.gz::https://www.dropbox.com/s/go6m9xi9h4kab2j/veracrypt_1.17_i386.tar.gz?raw=1" - "veracrypt_1.17_i386.tar.gz.sig::https://www.dropbox.com/s/z3oz7i2cgmqjce8/veracrypt_1.17_i386.tar.gz.sig?raw=1") -#source=("${pkgname}_${pkgver}_Source.tar.bz2::http://sourceforge.net/projects/${pkgname}/files/${_pkgname} ${pkgver}/${pkgname}_${pkgver}_Source.tar.bz2/download" - #"${pkgname}_${pkgver}_Source.tar.bz2.sig::http://sourceforge.net/projects/${pkgname}/files/${_pkgname} ${pkgver}/${pkgname}_${pkgver}_Source.tar.bz2.sig/download" -source=("no_makeself.patch" +source=("${pkgname}_${pkgver}_Source.tar.bz2::https://sourceforge.net/projects/${pkgname}/files/${_pkgname} ${pkgver}/${pkgname}_${pkgver}_Source.tar.bz2/download" + "${pkgname}_${pkgver}_Source.tar.bz2.sig::https://sourceforge.net/projects/${pkgname}/files/${_pkgname} ${pkgver}/${pkgname}_${pkgver}_Source.tar.bz2.sig/download" + "0001_no_makeself.patch" + "0002_gcc5_invalid_chars.patch" "veracrypt.desktop" "veracrypt.install") -sha1sums=('0cbe9f7875ab52be125cc575533f76fab60314a5' +sha1sums=('cd27cf9b6853aac104a33fac0f1d8733765042ba' + 'cbe620297486c32d1f6a1693f6f2136097644287' + '0cbe9f7875ab52be125cc575533f76fab60314a5' + '8379455e17745f0a0f3f70050c5af1c5e127f63b' 'ebdd450e719fe3cff5e459f027856cbaf03db13a' '14dceabf658a7e3505c855c2862aa86e343fcda5') -sha1sums_i686=('479fad1cfe53fef9155dd7ef9c28dd2ecb5d9be4' - 'SKIP') -sha1sums_x86_64=('b8aa201c42b4dda3233722066bd17fcac600d301' - 'SKIP') -validpgpkeys=('8B15186570664AF6494C3920B4767A17CEC5B4E9') - #'993B7D7E8E413809828F0F29EB559C7C54DDD393') +validpgpkeys=('993B7D7E8E413809828F0F29EB559C7C54DDD393') -#prepare() { -# cd ${srcdir}/src +prepare() { + cd ${srcdir}/src -# msg2 "Applying patches..." -# patch -Np1 -i ../no_makeself.patch # disable sfx archive -#} + msg2 "Applying patches..." + patch -Np1 -i ../0001_no_makeself.patch # disable sfx archive + patch -Np1 -i ../0002_gcc5_invalid_chars.patch # compatibility with new gcc5 ABI +} -#build() { -# cd ${srcdir}/src +build() { + cd ${srcdir}/src -# msg2 "Building veracrypt..." -# export WX_CONFIG=/usr/bin/wx-config -# make LFLAGS+="-ldl" -#} + msg2 "Building veracrypt..." + export WX_CONFIG=/usr/bin/wx-config + make LFLAGS+="-ldl" +} package() { -# cd ${srcdir}/src - cd "${srcdir}" - install -D -m755 "${srcdir}/usr/bin/${pkgname}" "${pkgdir}/usr/bin/${pkgname}" - install -D -m644 "${srcdir}/usr/share/veracrypt/doc/License.txt" "${pkgdir}/usr/share/licenses/${pkgname}/License.txt" - install -D -m644 "${srcdir}/usr/share/pixmaps/veracrypt.xpm" "${pkgdir}/usr/share/pixmaps/veracrypt.xpm" - install -D -m644 "${srcdir}/usr/share/applications/veracrypt.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" -# install -D -m755 Main/${pkgname} "${pkgdir}/usr/bin/${pkgname}" -# install -D -m644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" -# install -D -m644 Resources/Icons/VeraCrypt-48x48.xpm "${pkgdir}/usr/share/pixmaps/veracrypt.xpm" -# install -D -m644 License.txt "${pkgdir}/usr/share/licenses/${pkgname}/License.txt" + cd ${srcdir}/src +# cd "${srcdir}" +# install -D -m755 "${srcdir}/usr/bin/${pkgname}" "${pkgdir}/usr/bin/${pkgname}" +# install -D -m644 "${srcdir}/usr/share/veracrypt/doc/License.txt" "${pkgdir}/usr/share/licenses/${pkgname}/License.txt" +# install -D -m644 "${srcdir}/usr/share/pixmaps/veracrypt.xpm" "${pkgdir}/usr/share/pixmaps/veracrypt.xpm" +# install -D -m644 "${srcdir}/usr/share/applications/veracrypt.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" + install -D -m755 Main/${pkgname} "${pkgdir}/usr/bin/${pkgname}" + install -D -m644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" + install -D -m644 Resources/Icons/VeraCrypt-48x48.xpm "${pkgdir}/usr/share/pixmaps/veracrypt.xpm" + install -D -m644 License.txt "${pkgdir}/usr/share/licenses/${pkgname}/License.txt" } |