summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Lau2016-04-11 10:00:07 +0200
committerSebastian Lau2016-04-11 10:00:07 +0200
commit97c5c3eb70463b32de22c4b56afd046ed24af3aa (patch)
treefe4f4431efca19e127a86e15f5a2264f5ffa96c0
parent51613b88cfb34232b8e9e0dafdca70e84bc09845 (diff)
downloadaur-97c5c3eb70463b32de22c4b56afd046ed24af3aa.tar.gz
Apply patch for GCC5 ABI from https://github.com/veracrypt/VeraCrypt/commit/646679da4d79bf7f8af22c44c7ae8498086a88a6
-rw-r--r--.SRCINFO22
-rw-r--r--0001_no_makeself.patch (renamed from no_makeself.patch)0
-rw-r--r--0002_gcc5_invalid_chars.patch54
-rw-r--r--PKGBUILD74
4 files changed, 98 insertions, 52 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 895ad32429ff..461621b16409 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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)
diff --git a/PKGBUILD b/PKGBUILD
index ad8a64b81e5d..0c38ac24cb48 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"
}