summaryrefslogtreecommitdiffstats
path: root/packages/app-crypt/veracrypt/veracrypt-1.26.29.exheres-0
blob: eef0d3ac87eae480772a15b0e744b30a7fcb4671 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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
}