diff options
| author | coast <coasteen@proton.me> | 2026-10-12 14:41:07 +0330 |
|---|---|---|
| committer | coast <coasteen@proton.me> | 2026-10-12 14:41:07 +0330 |
| commit | 25922912c7e37f3bc3000e71b647e77677d8f2c5 (patch) | |
| tree | 8383c5569a668613eee384ee31ea8cddc2113ee5 /packages/app-crypt/veracrypt | |
| download | exherbo-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/veracrypt')
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 +} |
