summaryrefslogtreecommitdiff
blob: b08887878c4e8582c89c71d4d326199c7f2a01d2 (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
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-crypt/gnupg/gnupg-1.2.3-r3.ebuild,v 1.2 2003/10/31 22:03:10 taviso Exp $

DESCRIPTION="The GNU Privacy Guard, a GPL pgp replacement"
HOMEPAGE="http://www.gnupg.org/"
SRC_URI="ftp://ftp.gnupg.org/gcrypt/gnupg/${P}.tar.bz2"

SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86 ~alpha ~sparc ~hppa"
IUSE="X ldap nls static caps"

RDEPEND="!static? ( ldap? ( net-nds/openldap )
		caps? ( sys-libs/libcap )
		sys-libs/zlib )
	X? ( x11-misc/xloadimage )
	nls? ( sys-devel/gettext )"

DEPEND="caps? ( static? ( >=sys-libs/libcap-1.10-r3 )
		!static? ( sys-libs/libcap ) )
	ldap? ( net-nds/openldap )
	nls? ( sys-devel/gettext )
	!static? ( sys-libs/zlib )
	dev-lang/perl"

src_compile() {
	local myconf="--enable-external-hkp --enable-static-rnd=linux --libexecdir=/usr/lib"

	# disable native language support
	if ! use nls; then
		myconf="${myconf} --disable-nls"
	fi

	# enable LDAP keyserver interface
	if use ldap; then
		myconf="${myconf} --enable-ldap"
	else
		myconf="${myconf} --disable-ldap"
	fi

	# enable photo ID viewers
	# TODO: optional image viewer? --with-photo-viewer=...
	if use X; then
		myconf="${myconf} --enable-photo-viewers"
	else
		myconf="${myconf} --disable-photo-viewers"
	fi

	# if we are compiling statically, we might as well use
	# the included zlib library and remove a dep.
	# `USE=static` support was requested in #29299
	if use static; then
		myconf="${myconf} --with-included-zlib"
		LDFLAGS="${LDFLAGS} -static"
	else
		myconf="${myconf} --without-included-zlib"
	fi

	# use the linux capability library to minimise security
	# risks of running setuid root.
	if use caps; then
		myconf="${myconf} --with-capabilities"
	fi

	# Still needed?
	# Bug #6387, --enable-m-guard causes bus error on sparcs
	if ! use sparc; then
		myconf="${myconf} --enable-m-guard"
	fi

	econf ${myconf}
	emake
}

src_install() {
	einstall libexecdir="${D}/usr/lib/gnupg"

	rm -rf "${D}/usr/share/gnupg/FAQ" "${D}/usr/share/gnupg/faq.html"

	dodoc ABOUT-NLS AUTHORS BUGS COPYING ChangeLog INSTALL NEWS PROJECTS \
	README THANKS TODO VERSION doc/{FAQ,HACKING,DETAILS,ChangeLog,OpenPGP,faq.raw}

	docinto sgml
	dodoc doc/*.sgml

	dohtml doc/faq.html

	chmod u+s "${D}/usr/bin/gpg"
}

pkg_postinst() {
	einfo "gpg is installed suid root to make use of protected memory space"
	einfo "This is needed in order to have a secure place to store your"
	einfo "passphrases, etc. This may make some sysadmins nervous."

	if use caps; then
		echo
		einfo "gpg will use Linux capabilities to set the permitted"
		einfo "operations, this will minimise the security risks"
		einfo "associated with running setuid root."
		echo
		einfo "You can confirm the capabilities are being set correctly"
		einfo "with the following command while gpg is running"
		echo
		einfo "	# getpcaps \`pidof gpg\`"
	fi
}