net-misc/sks: file alignment
[portage-overlay.git] / net-misc / sks / sks-1.1.4-r1.ebuild
1 # Copyright 1999-2013 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.4-r1.ebuild,v 1.2 2013/12/13 09:29:03 patrick Exp $
4
5 EAPI=5
6
7 inherit eutils multilib user readme.gentoo systemd
8
9 DESCRIPTION="An OpenPGP keyserver which is decentralized and provides highly reliable synchronization"
10 HOMEPAGE="https://bitbucket.org/skskeyserver/sks-keyserver"
11 SRC_URI="http://bitbucket.org/skskeyserver/sks-keyserver/downloads/${P}.tgz"
12 LICENSE="GPL-2"
13 SLOT="0"
14 KEYWORDS="~amd64 ~x86"
15 IUSE="optimize test"
16 DOC_CONTENTS="To get sks running, first build the database,
17 start the databse, import atleast one key, then
18 run a cleandb. See the sks man page for more information
19 Typical DB_CONFIG file and sksconf has been installed
20 in /var/lib/sks and can be used as templates by renaming
21 to remove the .typical extension. The DB_CONFIG file has
22 to be in place before doing the database build, or the BDB
23 environment has to be manually cleared from both KDB and PTree.
24 The same applies if you are upgrading to this version with an existing KDB/Ptree,
25 using another version of BDB than 4.8; you need to clear the environment
26 using e.g. db4.6_recover -h . and db4.6_checkpoint -1h . in both KDB and PTree
27 Additionally a sample web interface has been installed as
28 web.typical in /var/lib/sks that can be used by renaming it to web
29 Important: It is strongly recommended to set up SKS behind a
30 reverse proxy. Instructions on properly configuring SKS can be
31 found at https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Peering"
32
33 DEPEND="dev-lang/ocaml
34         dev-ml/cryptokit
35         sys-libs/db:4.8"
36 RDEPEND="${DEPEND}"
37
38 pkg_setup() {
39         ebegin "Creating named group and user"
40         enewgroup sks
41         enewuser sks -1 -1 /var/lib/sks sks
42 }
43
44 src_prepare() {
45         epatch  "${FILESDIR}/${P}-ECC_OID_fix_x86.patch"\
46                 "${FILESDIR}/${P}-man_url.patch"
47
48         cp Makefile.local.unused Makefile.local || die
49         sed -i \
50                 -e "s:^BDBLIB=.*$:BDBLIB=-L/usr/$(get_libdir):g" \
51                 -e "s:^BDBINCLUDE=.*$:BDBINCLUDE=-I/usr/include/db4.8/:g" \
52                 -e "s:^LIBDB=.*$:LIBDB=-ldb-4.8:g" \
53                 -e "s:^PREFIX=.*$:PREFIX=${D}/usr:g" \
54                 -e "s:^MANDIR=.*$:MANDIR=${D}/usr/share/man:g" \
55                 Makefile.local || die
56         sed -i \
57                 -e 's:^CAMLINCLUDE= -I lib -I bdb$:CAMLINCLUDE= -I lib -I bdb -I +cryptokit:g' \
58                 -e 's:-Werror-implicit-function-declaration::g' \
59                 Makefile bdb/Makefile || die
60         sed -i \
61                 -e 's:/usr/sbin/sks:/usr/bin/sks:g' \
62                 sks_build.sh || die
63 }
64
65 src_compile() {
66         emake dep
67         # sks build fails with paralell build in module Bdb
68         emake -j1 all
69         if use optimize; then
70                 emake all.bc
71         fi
72 }
73
74 src_test() {
75         ./sks unit_test || die
76 }
77
78 src_install() {
79         if use optimize; then
80                 emake install.bc
81                 dosym /usr/bin/sks.bc usr/bin/sks
82                 dosym /usr/bin/sks_add_mail.bc usr/bin/sks_add_mail
83         else
84                 emake install
85         fi
86
87         dodoc README.md
88
89         newinitd "${FILESDIR}/sks-db.initd" sks-db
90         newinitd "${FILESDIR}/sks-recon.initd" sks-recon
91         newconfd "${FILESDIR}/sks.confd" sks
92         systemd_dounit "${FILESDIR}/sks-db.service"
93         systemd_dounit "${FILESDIR}/sks-recon.service"
94
95         dodir "/var/lib/sks/web.typical"
96         insinto /var/lib/sks
97         newins sampleConfig/DB_CONFIG DB_CONFIG.typical
98         newins sampleConfig/sksconf.typical sksconf.typical
99         insinto /var/lib/sks/web.typical
100         doins sampleWeb/HTML5/*
101
102         keepdir /var/lib/sks
103         readme.gentoo_create_doc
104 }
105
106 pkg_postinst() {
107         readme.gentoo_print_elog
108
109         if [[ -n ${REPLACING_VERSIONS} ]]; then
110                 einfo "Note when upgrading from earlier versions of SKS"
111                 einfo "The default values for pagesize settings have changed. To continue"
112                 einfo "using an existing DB without rebuilding, explicit settings have to be"
113                 einfo "added to the sksconf file."
114                 einfo "pagesize:       4"
115                 einfo "ptree_pagesize: 1"
116         fi;
117 }