mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-10 00:10:19 +03:00
* Add verify-sig support https://nuetzlich.net/gocryptfs/releases/ * Drop pandoc dependency. Signed-off-by: Alfred Wingate <parona@protonmail.com> Closes: https://github.com/gentoo/gentoo/pull/43201 Signed-off-by: Zac Medico <zmedico@gentoo.org>
106 lines
4.1 KiB
Bash
106 lines
4.1 KiB
Bash
# Copyright 2024-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gocryptfs.asc
|
|
inherit go-module verify-sig
|
|
|
|
DESCRIPTION="Encrypted overlay filesystem written in Go"
|
|
HOMEPAGE="https://github.com/rfjakob/gocryptfs"
|
|
# https://nuetzlich.net/gocryptfs/releases/
|
|
SRC_URI="
|
|
https://github.com/rfjakob/gocryptfs/releases/download/v${PV}/${PN}_v${PV}_src-deps.tar.gz
|
|
verify-sig? ( https://github.com/rfjakob/gocryptfs/releases/download/v${PV}/gocryptfs_v${PV}_src-deps.tar.gz.asc )
|
|
"
|
|
S=${WORKDIR}/${PN}_v${PV}_src-deps
|
|
|
|
LICENSE="MIT"
|
|
# Vendored licenses
|
|
LICENSE+=" Apache-2.0 BSD BSD-2 MIT"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
|
|
PROPERTIES="test_privileged"
|
|
RESTRICT="test"
|
|
|
|
RDEPEND="dev-libs/openssl:="
|
|
DEPEND="${RDEPEND}"
|
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-gocryptfs )"
|
|
|
|
src_unpack() {
|
|
if use verify-sig; then
|
|
verify-sig_verify_detached "${DISTDIR}"/gocryptfs_v${PV}_src-deps.tar.gz{,.asc}
|
|
fi
|
|
go-module_src_unpack
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
# Code linting not relevant downstream
|
|
sed -e 's/command -v shellcheck/false/' -e 's/\! go tool \| grep vet/false/' \
|
|
-i "${S}/test.bash" || die
|
|
|
|
local -A skip_tests=(
|
|
# cli_test.go:450: wrong exit code: want=12, have=20
|
|
["TestMountPasswordIncorrect"]="tests/cli/cli_test.go"
|
|
# cli_test.go:467: want=9, got=20
|
|
["TestMountPasswordEmpty"]="tests/cli/cli_test.go"
|
|
# ctlsock: listen unix /var/tmp/portage/app-crypt/gocryptfs-2.5.4/temp/gocryptfs-test-parent-0/3259013716/TestOrphanedSocket.572617384.sock: bind: invalid argument
|
|
# cli_test.go:1067: mount failed: exit status 20
|
|
["TestEncryptPaths"]="gocryptfs-xray/xray_tests/xray_test.go"
|
|
["TestOrphanedSocket"]="tests/cli/cli_test.go"
|
|
["TestCtlSock"]="tests/defaults/ctlsock_test.go"
|
|
["TestCtlSockDecrypt"]="tests/defaults/ctlsock_test.go"
|
|
["TestCtlSockDecryptCrash"]="tests/defaults/ctlsock_test.go"
|
|
["TestCtlSockPathOps"]="tests/reverse/ctlsock_test.go"
|
|
["TestCtlSockCrash"]="tests/reverse/ctlsock_test.go"
|
|
["TestSymlinkDentrySize"]="tests/reverse/correctness_test.go"
|
|
["TestExcludeTestFs"]="tests/reverse/exclude_test.go"
|
|
["TestExcludeAllOnlyDir1"]="tests/reverse/exclude_test.go"
|
|
# correctness_test.go:142: should NOT be executable
|
|
["TestAccessVirtualDirIV"]="tests/reverse/correctness_test.go"
|
|
# issue893_test.go:54: mkdir /var/tmp/portage/app-crypt/gocryptfs-2.5.4/temp: permission denied
|
|
["TestConcurrentUserOps"]="tests/root_test/issue893_test.go"
|
|
# root_test.go:86: mkdir ${T}/gocryptfs-test-parent-0/932700816/default-plain/dir1/dir2: permission denied
|
|
# root_test.go:97: open ${T}/gocryptfs-test-parent-0/932700816/default-plain/dir1/file1: permission denied
|
|
["TestSupplementaryGroups"]="tests/root_test/root_test.go"
|
|
# root_test.go:158: mount: ${T}/gocryptfs-test-parent-0/932700816/TestDiskFull.ext4.mnt:
|
|
# failed to setup loop device for ${T}/gocryptfs-test-parent-0/932700816/TestDiskFull.ext4.
|
|
["TestDiskFull"]="tests/root_test/root_test.go"
|
|
# root_test.go:281: O_RDONLY should have worked, but got error: permission denied
|
|
["TestAcl"]="tests/root_test/root_test.go"
|
|
# root_test.go:340: mount: ${T}/gocryptfs-test-parent-0/932700816/TestBtrfsQuirks.img.mnt:
|
|
# failed to setup loop device for ${T}/gocryptfs-test-parent-0/932700816/TestBtrfsQuirks.img.
|
|
["TestBtrfsQuirks"]="tests/root_test/btrfs_test.go"
|
|
# requires root
|
|
["TestRootForceOwner"]="tests/root_test/root_test.go"
|
|
)
|
|
|
|
for test in "${!skip_tests[@]}"; do
|
|
sed -e "/^func ${test}(/ a t.Skip(\"Skipped by Gentoo\")" -i ${skip_tests[$test]} || die
|
|
done
|
|
|
|
# Doesn't account for the vendor directory
|
|
sed -e 's|find .|find . -path ./vendor -prune -o|' -i test.bash || die
|
|
}
|
|
|
|
src_compile() {
|
|
# call directly to avoid pandoc dependency. The man pages are included in the upstream tarballs
|
|
# https://github.com/rfjakob/gocryptfs/commit/61940a9c0666eba8be21de4f1cd182912f74f929
|
|
./build.bash || die
|
|
}
|
|
|
|
src_test() {
|
|
emake test
|
|
}
|
|
|
|
src_install() {
|
|
emake "DESTDIR=${ED}" install
|
|
dobin contrib/statfs/statfs
|
|
doman Documentation/*.1
|
|
dodoc -r README.md Documentation
|
|
rm -f "${ED}"/usr/share/doc/${PF}/Documentation/{.gitignore,gocryptfs.1,gocryptfs-xray.1,statfs.1,MANPAGE-render.bash} || die
|
|
}
|