net-misc/sks-9999: add mercurial version
[portage-overlay.git] / net-misc / sks / sks-9999.ebuild
1 # Copyright 1999-2012 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/net-misc/sks/sks-1.1.2.ebuild,v 1.4 2012/02/07 00:34:06 kingtaco Exp $
4
5 EAPI=4
6
7 inherit eutils multilib mercurial
8
9 DESCRIPTION="SKS Keyserver"
10 HOMEPAGE="https://bitbucket.org/skskeyserver/sks-keyserver"
11 if [[ ${PV} == "9999" ]]; then
12 EHG_REPO_URI="https://bitbucket.org/skskeyserver/sks-keyserver"
13 EHG_REVISION="tip"
14 else
15 SRC_URI="https://bitbucket.org/skskeyserver/sks-keyserver/downloads/${P}.tgz"
16 fi;
17 LICENSE="GPL-2"
18 SLOT="0"
19 KEYWORDS="~amd64 ~x86"
20 IUSE="systemd optimize test"
21
22 DEPEND="dev-lang/ocaml
23                 dev-ml/cryptokit
24                 sys-libs/db:5.2"
25 RDEPEND="${DEPEND}"
26
27 pkg_setup() {
28         ebegin "Creating named group and user"
29         enewgroup sks
30         enewuser sks -1 -1 /var/lib/sks sks
31 }
32
33 src_prepare() {
34         cp Makefile.local.unused Makefile.local || die
35         sed -i \
36                 -e "s:^BDBLIB=.*$:BDBLIB=-L/usr/$(get_libdir):g" \
37                 -e "s:^BDBINCLUDE=.*$:BDBINCLUDE=-I/usr/include/db5.2/:g" \
38                 -e "s:^LIBDB=.*$:LIBDB=-ldb-5.2:g" \
39                 -e "s:^PREFIX=.*$:PREFIX=${D}/usr:g" \
40                 -e "s:^MANDIR=.*$:MANDIR=${D}/usr/share/man:g" \
41                 Makefile.local || die
42         sed -i \
43                 -e 's:^CAMLINCLUDE= -I lib -I bdb$:CAMLINCLUDE= -I lib -I bdb -I +cryptokit:g' \
44                 -e 's:-Werror-implicit-function-declaration::g' \
45                 Makefile bdb/Makefile || die
46 }
47
48 src_compile() {
49         emake dep
50         emake -j1 all
51         if use optimize; then
52                 emake all.bc
53         fi
54 }
55
56 src_test() {
57         ./sks unit_test
58 }
59
60 src_install() {
61         if use optimize; then
62                 emake install.bc
63                 dosym /usr/bin/sks.bc usr/bin/sks
64                 dosym /usr/bin/sks_add_mail.bc usr/bin/sks_add_mail
65         else
66                 emake install
67         fi
68
69         dodoc README.md
70
71         newinitd "${FILESDIR}/sks-db.runscript" sks-db
72         newinitd "${FILESDIR}/sks-recon.runscript" sks-recon
73         newconfd "${FILESDIR}/sks-confd" sks
74         use systemd && systemd_dounit "${FILESDIR}/sks-db.service"
75         use systemd && systemd_dounit "${FILESDIR}/sks-recon.service"
76
77         mkdir -p $D/var/lib/sks/web.typical
78         cp $S/sampleConfig/DB_CONFIG $D/var/lib/sks/DB_CONFIG.typical
79         cp $S/sampleConfig/sksconf.typical $D/var/lib/sks/sksconf.typical
80         cp $S/sampleWeb/HTML5/* $D/var/lib/sks/web.typical/
81
82         keepdir /var/lib/sks
83 }
84
85 pkg_postinst() {
86         einfo "To get sks running, first build the database,"
87         einfo "start the databse, import atleast one key, then"
88         einfo "run a cleandb. See the sks man page for more"
89         einfo "information"
90         einfo "Typical DB_CONFIG file and sksconf has been installed"
91         einfo "in /var/lib/sks and can be used as templates by renaming"
92         einfo "to remove the .typical extension. The DB_CONFIG file has"
93         einfo "to be in place before doing the database build, or the BDB"
94         einfo "environment has to be manually cleared from both KDB and PTree"
95         einfo "using db4.8_recover -h and db4.8_checkpoint -1h"
96         einfo "Additionally a sample web interface has been installed as"
97         einfo "web.typical in /var/lib/sks that can be used by renaming it to web"
98         einfo "Important: It is strongly recommended to set up SKS behind a"
99         einfo "reverse proxy. Instructions on properly configuring SKS can be"
100         einfo "found at https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Peering"
101 }
102