net-misc/sks: version bump to 1.1.6 (-r1)
[portage-overlay.git] / net-misc / sks / sks-1.1.6-r1.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=5
6
7 inherit multilib user readme.gentoo systemd
8
9 DESCRIPTION="An OpenPGP keyserver which is decentralized with highly reliable synchronization"
10 HOMEPAGE="https://bitbucket.org/skskeyserver/sks-keyserver"
11 SRC_URI="https://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 5.3; 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-4.0
34         dev-ml/camlp4
35         dev-ml/cryptokit
36         sys-libs/db:5.3"
37 RDEPEND="${DEPEND}"
38
39 pkg_setup() {
40         ebegin "Creating named group and user"
41         enewgroup sks
42         enewuser sks -1 -1 /var/lib/sks sks
43 }
44
45 src_prepare() {
46         cp Makefile.local.unused Makefile.local || die
47         sed -i \
48                 -e "s:^BDBLIB=.*$:BDBLIB=-L/usr/$(get_libdir):g" \
49                 -e "s:^BDBINCLUDE=.*$:BDBINCLUDE=-I/usr/include/db5.3/:g" \
50                 -e "s:^LIBDB=.*$:LIBDB=-ldb-5.3:g" \
51                 -e "s:^PREFIX=.*$:PREFIX=${D}/usr:g" \
52                 -e "s:^MANDIR=.*$:MANDIR=${D}/usr/share/man:g" \
53                 Makefile.local || die
54         sed -i \
55                 -e 's:^CAMLINCLUDE= -I lib -I bdb$:CAMLINCLUDE= -I lib -I bdb -I +cryptokit:g' \
56                 -e 's:-Werror-implicit-function-declaration::g' \
57                 Makefile bdb/Makefile || die
58         sed -i \
59                 -e 's:/usr/sbin/sks:/usr/bin/sks:g' \
60                 sks_build.sh || die
61 }
62
63 src_compile() {
64         emake dep
65         # sks build fails with paralell build in module Bdb
66         emake -j1 all
67         if use optimize; then
68                 emake all.bc
69         fi
70 }
71
72 src_test() {
73         ./sks unit_test || die
74 }
75
76 src_install() {
77         if use optimize; then
78                 emake install.bc
79                 dosym /usr/bin/sks.bc usr/bin/sks
80                 dosym /usr/bin/sks_add_mail.bc usr/bin/sks_add_mail
81         else
82                 emake install
83         fi
84
85         dodoc README.md
86
87         newinitd "${FILESDIR}/sks-db.initd" sks-db
88         newinitd "${FILESDIR}/sks-recon.initd" sks-recon
89         newconfd "${FILESDIR}/sks.confd" sks
90         systemd_dounit "${FILESDIR}"/sks-db.service
91         systemd_dounit "${FILESDIR}"/sks-recon.service
92
93         dodir "/var/lib/sks/web.typical"
94         insinto /var/lib/sks
95         newins sampleConfig/DB_CONFIG DB_CONFIG.typical
96         newins sampleConfig/sksconf.typical sksconf.typical
97         insinto /var/lib/sks/web.typical
98         doins sampleWeb/HTML5/*
99
100         keepdir /var/lib/sks
101         readme.gentoo_create_doc
102 }
103
104 pkg_postinst() {
105         readme.gentoo_print_elog
106
107         if [[ -n ${REPLACING_VERSIONS} ]]; then
108                 einfo "Note when upgrading from versions of SKS earlier than 1.1.4"
109                 einfo "The default values for pagesize settings have changed. To continue"
110                 einfo "using an existing DB without rebuilding, explicit settings have to be"
111                 einfo "added to the sksconf file."
112                 einfo "pagesize:       4"
113                 einfo "ptree_pagesize: 1"
114         fi;
115 }