summaryrefslogtreecommitdiff
path: root/app-crypt/tomb/tomb-2.13.ebuild
blob: d6dd7395109e3207b08315c8d4e66cb7c2f68f31 (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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop optfeature prefix qmake-utils toolchain-funcs xdg

DESCRIPTION="The Linux Crypto Undertaker"
HOMEPAGE="
	https://dyne.org/software/tomb/
	https://github.com/dyne/Tomb
"
SRC_URI="https://files.dyne.org/tomb/releases/Tomb-${PV}.tar.gz"

S="${WORKDIR}/${P^}"

# doc/literate/shocco - MIT
LICENSE="GPL-3 MIT gui? ( GPL-3+ )"
SLOT="0"
KEYWORDS="~amd64"
IUSE="gui tray"

PATCHES=(
	"${FILESDIR}/${P}-gtomb.patch"
	"${FILESDIR}/${P}-qt-tray.patch"
	"${FILESDIR}/${PN}-2.9-respect-ldflags.patch"
)

DEPEND="
	dev-libs/libgcrypt:=
	tray? (
		dev-qt/qtbase:6[gui,network,widgets]
		dev-qt/qtdeclarative:6
	)
"
RDEPEND="
	${DEPEND}
	app-crypt/gnupg
	app-crypt/pinentry
	app-shells/zsh
	sys-fs/cryptsetup
	sys-fs/e2fsprogs[tools]
	gui? ( gnome-extra/zenity )
"
BDEPEND="
	dev-python/markdown
	dev-python/pygments
	sys-devel/gettext
"

src_prepare() {
	default
	hprefixify tomb extras/gtomb
	eprefixify extras/qt-tray/main.cpp
}

src_compile() {
	export CFLAGS LDFLAGS PREFIX="${EPREFIX}/usr"
	tc-export CC

	emake all -C extras/kdf-keys
	emake all -C doc/literate
	if use tray ; then
		pushd extras/qt-tray > /dev/null || die
		eqmake6
		emake all
		popd > /dev/null || die
	fi
}

src_test() {
	# test require sudo, can't be done non interactively
	# emake TEST_OPTS="--verbose --immediate --root="${T}"/tomb/sharness" test
	emake test -C extras/kdf-keys
}

src_install() {
	local -x DESTDIR="${D}"

	default
	emake install -C extras/translations
	emake install -C extras/kdf-keys
	if use gui ; then
		pushd extras/gtomb > /dev/null || die
		dobin gtomb
		newdoc README.md README-gtomb
		popd > /dev/null || die
	fi
	if use tray ; then
		pushd extras/qt-tray > /dev/null || die
		dobin tomb-qt-tray
		doicon pixmaps/tomb_icon.png
		insinto /usr/share/locale/it_IT/LC_MESSAGES
		doins i18n/tomb-qt-tray_it.qm
		popd > /dev/null || die
	fi

	pushd extras/gtk-tray > /dev/null  || die
	doicon monmort.xpm
	newicon --context mimetypes --size 32 monmort.xpm monmort
	newicon --size 32 monmort.xpm dyne-monmort
	popd > /dev/null || die

	pushd extras/desktop > /dev/null || die
	insinto /usr/share/mime/packages
	doins dyne-tomb.xml
	domenu tomb.desktop
	insinto /usr/share/mime-info
	doins tomb.mime
	doins tomb.keys
	insinto /usr/share/application-registry
	doins tomb.applications
	popd > /dev/null || die

	local DOCS=(
		AUTHORS.txt
		ChangeLog.txt
		KNOWN_BUGS.txt
		README.txt
		doc/bertini_thesis.pdf
		doc/HACKING.txt
		doc/KEY_SPECIFICATIONS.txt
		doc/LinuxHDEncSettings.txt
		doc/Luks_on_disk_format.pdf
		doc/New_methods_in_HD_encryption.pdf
		doc/TKS1-draft.pdf
		doc/tomb_manpage.pdf
	)
	einstalldocs
	cd doc/literate || die
	docinto html
	dodoc -r *.html *.css public
}

pkg_postinst() {
	xdg_pkg_postinst
	optfeature "Argon2 KDF" app-crypt/argon2
	optfeature "ACL" sys-apps/acl
	optfeature "privilege escalation to superuser" app-admin/doas app-admin/sudo sys-auth/polkit
	optfeature "fancy dd output" sys-apps/dcfldd
	optfeature "tomb index/search file contents" app-misc/recoll
	optfeature "tomb index/search file names" sys-apps/mlocate sys-apps/plocate
	optfeature "tomb engrave" "media-gfx/qrencode[png]"
	optfeature "tomb slam" sys-process/lsof
}