summaryrefslogtreecommitdiffstats
path: root/packages/app-crypt
diff options
context:
space:
mode:
authorcoast <coasteen@proton.me>2026-10-12 14:41:07 +0330
committercoast <coasteen@proton.me>2026-10-12 14:41:07 +0330
commit25922912c7e37f3bc3000e71b647e77677d8f2c5 (patch)
tree8383c5569a668613eee384ee31ea8cddc2113ee5 /packages/app-crypt
downloadexherbo-overlay-main.tar.gz
exherbo-overlay-main.tar.bz2
exherbo-overlay-main.tar.xz
exherbo-overlay-main.tar.zst
Diffstat (limited to 'packages/app-crypt')
-rw-r--r--packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch98
-rw-r--r--packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-nosse2.patch31
-rw-r--r--packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-release-date.patch19
-rw-r--r--packages/app-crypt/veracrypt/veracrypt-1.26.29.exheres-0101
4 files changed, 249 insertions, 0 deletions
diff --git a/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch
new file mode 100644
index 0000000..7d9b76d
--- /dev/null
+++ b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch
@@ -0,0 +1,98 @@
+Fix build when CFLAGS contains or implies -mavx2 and/or -mavx512f
+
+https://bugs.gentoo.org/983361
+https://github.com/veracrypt/VeraCrypt/issues/1867
+
+--- a/Build/Include/Makefile.inc
++++ b/Build/Include/Makefile.inc
+@@ -14,7 +14,7 @@ $(NAME): $(NAME).a
+
+ clean:
+ @echo Cleaning $(NAME)
+- rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO) $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d) *.gch
++ rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE2) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO) $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE2:.osse2=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d) *.gch
+
+ %.o: %.c
+ @echo Compiling $(<F)
+@@ -24,6 +24,10 @@ clean:
+ @echo Compiling $(<F)
+ $(CC) $(CFLAGS) -O0 -c $< -o $@
+
++%.osse2: %.c
++ @echo Compiling $(<F)
++ $(CC) $(CFLAGS) -msse2 -mno-avx2 -mno-avx512f -c $< -o $@
++
+ %.osse41: %.c
+ @echo Compiling $(<F)
+ $(CC) $(CFLAGS) -mssse3 -msse4.1 -c $< -o $@
+@@ -42,7 +46,7 @@ clean:
+
+ %.oavx2: %.c
+ @echo Compiling $(<F)
+- $(CC) $(CFLAGS) -mavx2 -c $< -o $@
++ $(CC) $(CFLAGS) -mavx2 -mno-avx512f -c $< -o $@
+
+ %.oarmv8crypto: %.c
+ @echo Compiling $(<F)
+@@ -122,7 +126,7 @@ TR_SED_BIN := tr '\n' ' ' | tr -s ' ' ',' | sed -e 's/^,//g' -e 's/,$$/n/' | tr
+
+
+ # Dependencies
+--include $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d)
++-include $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE2:.osse2=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d)
+
+
+ # Deterministic static library: the 'D' modifier zeroes member mtime/uid/gid
+@@ -135,8 +139,8 @@ TR_SED_BIN := tr '\n' ' ' | tr -s ' ' ',' | sed -e 's/^,//g' -e 's/,$$/n/' | tr
+ AR_DETERMINISTIC := $(shell t=$$(mktemp); rm -f $$t.a; $(AR) Drc $$t.a $$t >/dev/null 2>&1 && echo D; rm -f $$t $$t.a)
+ RANLIB_DETERMINISTIC := $(shell t=$$(mktemp); rm -f $$t.a; $(AR) rc $$t.a $$t >/dev/null 2>&1; $(RANLIB) -D $$t.a >/dev/null 2>&1 && echo -D; rm -f $$t $$t.a)
+
+-$(NAME).a: $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
++$(NAME).a: $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE2) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
+ @echo Updating library $@
+ rm -f $@
+- $(AR) $(AFLAGS) $(AR_DETERMINISTIC)rc $@ $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
++ $(AR) $(AFLAGS) $(AR_DETERMINISTIC)rc $@ $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE2) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
+ $(RANLIB) $(RANLIB_DETERMINISTIC) $@
+--- a/Volume/Volume.make
++++ b/Volume/Volume.make
+@@ -13,6 +13,7 @@
+ OBJS :=
+ OBJSEX :=
+ OBJSNOOPT :=
++OBJSSSE2 :=
+ OBJSSSE41 :=
+ OBJSSSSE3 :=
+ OBJSHANI :=
+@@ -96,11 +97,15 @@ else
+ endif
+
+ ifeq "$(GCC_GTEQ_430)" "1"
++ OBJSSSE2 += ../Crypto/blake2s_SSE2.osse2
+ OBJSSSE41 += ../Crypto/blake2s_SSE41.osse41
+ OBJSSSSE3 += ../Crypto/blake2s_SSSE3.ossse3
++ OBJSSSE2 += ../Crypto/Argon2/src/opt_sse2.osse2
+ else
++ OBJS += ../Crypto/blake2s_SSE2.o
+ OBJS += ../Crypto/blake2s_SSE41.o
+ OBJS += ../Crypto/blake2s_SSSE3.o
++ OBJS += ../Crypto/Argon2/src/opt_sse2.o
+ endif
+ ifeq "$(GCC_GTEQ_500)" "1"
+ OBJSHANI += ../Crypto/Sha2Intel.oshani
+@@ -127,7 +134,6 @@ ifeq "$(ENABLE_WOLFCRYPT)" "0"
+ OBJS += ../Crypto/Aeskey.o
+ OBJS += ../Crypto/Aestab.o
+ OBJS += ../Crypto/blake2s.o
+-OBJS += ../Crypto/blake2s_SSE2.o
+ OBJS += ../Crypto/SerpentFast.o
+ OBJS += ../Crypto/SerpentFast_simd.o
+ OBJS += ../Crypto/Sha2.o
+@@ -141,7 +147,6 @@ OBJS += ../Crypto/Argon2/src/blake2/blake2b.o
+ OBJS += ../Crypto/Argon2/src/argon2.o
+ OBJS += ../Crypto/Argon2/src/core.o
+ OBJS += ../Crypto/Argon2/src/argon2.o
+-OBJS += ../Crypto/Argon2/src/opt_sse2.o
+ OBJS += ../Crypto/Argon2/src/ref.o
+ OBJS += ../Crypto/Argon2/src/selftest.o
+ OBJS += ../Common/Pkcs5.o
diff --git a/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-nosse2.patch b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-nosse2.patch
new file mode 100644
index 0000000..f28b1ec
--- /dev/null
+++ b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-nosse2.patch
@@ -0,0 +1,31 @@
+Fix building with NOSSE2.
+The change in Tcdefs.h is not required for x86, but for some reason it is
+necessary for x86_64.
+
+https://github.com/veracrypt/VeraCrypt/pull/1891
+
+--- a/Common/Tcdefs.h
++++ b/Common/Tcdefs.h
+@@ -52,9 +52,7 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift);
+
+ #endif // defined(_UEFI)
+
+-#ifdef TC_WINDOWS_BOOT
+ #include <stddef.h>
+-#endif
+
+ #define TC_APP_NAME "VeraCrypt"
+
+--- a/Makefile
++++ b/Makefile
+@@ -289,8 +289,8 @@ ifeq "$(shell uname -s)" "Linux"
+ endif
+
+ ifeq "$(origin NOSSE2)" "command line"
+- CFLAGS += -mno-sse2
+- CXXFLAGS += -mno-sse2
++ CFLAGS += -mno-sse2 -DCRYPTOPP_DISABLE_AESNI -DCRYPTOPP_DISABLE_SHANI
++ CXXFLAGS += -mno-sse2 -DCRYPTOPP_DISABLE_AESNI -DCRYPTOPP_DISABLE_SHANI
+ WXCONFIG_CFLAGS += -mno-sse2
+ WXCONFIG_CXXFLAGS += -mno-sse2
+ endif
diff --git a/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-release-date.patch b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-release-date.patch
new file mode 100644
index 0000000..ed512b9
--- /dev/null
+++ b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-fix-release-date.patch
@@ -0,0 +1,19 @@
+From 80a126d04ec4943f96cb98d9cc152af1a4c1d0a0 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idrassi@amcrypto.jp>
+Date: Sat, 13 Jun 2026 11:32:59 +0900
+Subject: [PATCH] Fix release date string to match actual TC_RELEASE_DATE_DAY
+ value
+
+---
+
+--- a/Common/Tcdefs.h
++++ b/Common/Tcdefs.h
+@@ -73,7 +73,7 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift);
+ #define VERSION_NUM 0x0126
+
+ // Release date
+-#define TC_STR_RELEASE_DATE L"June 8, 2026"
++#define TC_STR_RELEASE_DATE L"June 9, 2026"
+ #define TC_RELEASE_DATE_YEAR 2026
+ #define TC_RELEASE_DATE_MONTH 6
+ #define TC_RELEASE_DATE_DAY 9
diff --git a/packages/app-crypt/veracrypt/veracrypt-1.26.29.exheres-0 b/packages/app-crypt/veracrypt/veracrypt-1.26.29.exheres-0
new file mode 100644
index 0000000..eef0d3a
--- /dev/null
+++ b/packages/app-crypt/veracrypt/veracrypt-1.26.29.exheres-0
@@ -0,0 +1,101 @@
+# Copyright 2026 Gurov <thuggerthugger1@duck.com>
+# Distributed under the terms of the GNU General Public License v2
+
+require wxwidgets freedesktop-desktop freedesktop-mime gtk-icon-cache
+
+SUMMARY="Disk encryption based on TrueCrypt"
+HOMEPAGE="https://veracrypt.io/en/Home.html"
+DOWNLOADS="https://github.com/veracrypt/VeraCrypt/archive/refs/tags/VeraCrypt_${PV}.tar.gz -> ${PNV}.tar.gz"
+
+LICENCES="Apache-2.0 BSD-3 RSA truecrypt-3.0"
+SLOT="0"
+PLATFORMS="~amd64"
+RESTRICT="mirror"
+MYOPTIONS="doc gui"
+
+DEPENDENCIES="
+ build:
+ dev-lang/yasm
+ virtual/pkg-config
+
+ build+run:
+ sys-apps/pcsc-lite
+ sys-fs/fuse:3
+ sys-fs/lvm2
+
+ run:
+ || (
+ app-admin/sudo-rs[native-names]
+ app-admin/sudo
+ )
+"
+
+WORK="${WORKBASE}/VeraCrypt-VeraCrypt_${PV}/src"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}/${PNV}-fix-release-date.patch"
+ "${FILES}/${PNV}-argon2-avx2-avx512f.patch"
+ "${FILES}/${PNV}-fix-nosse2.patch"
+)
+
+src_configure() {
+ MAKE_ARGS=(
+ NOSTRIP=1 NOTEST=1 VERBOSE=1 WITHFUSE3=1
+ AR="${AR}" CC="${CC}" CXX="${CXX}" RANLIB="${RANLIB}"
+ TC_EXTRA_CFLAGS="${CFLAGS}" TC_EXTRA_CXXFLAGS="${CXXFLAGS}"
+ TC_EXTRA_LFLAGS="${LDFLAGS}" WX_CONFIG="${WX_CONFIG}"
+ )
+ if ! option gui; then
+ MAKE_ARGS+=( NOGUI=1 )
+ fi
+}
+
+src_compile() {
+ local gui=0
+ if option gui; then
+ gui=1
+ fi
+
+ emake "${MAKE_ARGS[@]}"
+ emake "${MAKE_ARGS[@]}" DESTDIR="${WORK}/staging" \
+ INSTALL_UNINSTALLER=0 INSTALL_LICENSE=0 INSTALL_DOCS=0 \
+ INSTALL_LANGUAGES=0 INSTALL_APPIMAGE_FILES=0 \
+ INSTALL_MOUNT_HELPER_DIR="$(exhost --target)/bin" \
+ INSTALL_DESKTOP=${gui} INSTALL_MIME=${gui} INSTALL_ICONS=${gui} install
+}
+
+src_install() {
+ edo cp -R "${WORK}/staging/usr" "${IMAGE}/"
+
+ dodir /usr/$(exhost --target)/bin
+ edo mv "${IMAGE}/usr/bin/veracrypt" "${IMAGE}/usr/$(exhost --target)/bin/veracrypt"
+ edo rmdir "${IMAGE}/usr/bin"
+
+ if option gui; then
+ edo sed -i 's|Exec=/usr/bin/veracrypt|Exec=veracrypt|' \
+ "${IMAGE}/usr/share/applications/veracrypt.desktop"
+ fi
+
+ dodoc "${WORK}/../License.txt" "${WORK}/Readme.txt"
+ if option doc; then
+ edo mkdir -p "${IMAGE}/usr/share/doc/${PNV}"
+ edo cp -r "${WORK}/../doc/html" "${WORK}/../doc/EFI-DCS" "${IMAGE}/usr/share/doc/${PNV}/"
+ fi
+}
+
+pkg_postinst() {
+ if option gui; then
+ freedesktop-mime_pkg_postinst
+ freedesktop-desktop_pkg_postinst
+ gtk-icon-cache_pkg_postinst
+ fi
+ ewarn "VeraCrypt's TrueCrypt-derived license restricts redistribution of modified versions."
+}
+
+pkg_postrm() {
+ if option gui; then
+ freedesktop-mime_pkg_postrm
+ freedesktop-desktop_pkg_postrm
+ gtk-icon-cache_pkg_postrm
+ fi
+}