summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2017-07-08 19:35:43 +0200
committerAlexis Ballier <aballier@gentoo.org>2017-07-08 19:36:00 +0200
commite0555bdfc4695a025541918c967e3e415f026397 (patch)
tree92be210712b7f5ae311df48b19d996cb19a1867c
parentx11-libs/gtk+: remove old (diff)
downloadgentoo-e0555bdf.tar.gz
gentoo-e0555bdf.tar.bz2
gentoo-e0555bdf.zip
net-misc/sks: use ocamlfind for link and build.
Fixes build with latest cryptokit. Improve a bit dependencies too. Package-Manager: Portage-2.3.6, Repoman-2.3.2
-rw-r--r--net-misc/sks/files/sks-1.1.6-use-ocamlfind.patch39
-rw-r--r--net-misc/sks/sks-1.1.6-r3.ebuild118
2 files changed, 157 insertions, 0 deletions
diff --git a/net-misc/sks/files/sks-1.1.6-use-ocamlfind.patch b/net-misc/sks/files/sks-1.1.6-use-ocamlfind.patch
new file mode 100644
index 000000000000..c9afc2594091
--- /dev/null
+++ b/net-misc/sks/files/sks-1.1.6-use-ocamlfind.patch
@@ -0,0 +1,39 @@
+Use ocamlfind for finding dependencies, esp. for doing their transitive closure.
+
+Ideally the build system should be converted to something more modern like
+jbuilder.
+
+Index: sks-1.1.6/Makefile
+===================================================================
+--- sks-1.1.6.orig/Makefile
++++ sks-1.1.6/Makefile
+@@ -21,10 +21,10 @@ CFLAGS=-O3 $(CINCLUDES) -I .
+ CXXFLAGS=-O3 $(CINCLUDES) -I .
+
+ ifndef OCAMLC
+- OCAMLC=ocamlc
++ OCAMLC=ocamlfind ocamlc
+ endif
+ ifndef OCAMLOPT
+- OCAMLOPT=ocamlopt
++ OCAMLOPT=ocamlfind ocamlopt
+ endif
+ ifndef CAMLP4O
+ CAMLP4O=camlp4o
+@@ -55,12 +55,12 @@ WARNERR=-warn-error A
+ endif
+
+ CAMLP4=-pp $(CAMLP4O)
+-CAMLINCLUDE= -I lib -I bdb -I +cryptokit
++CAMLINCLUDE= -package cryptokit,unix,str,bigarray -I lib -I bdb
+ COMMONCAMLFLAGS=$(CAMLINCLUDE) $(OCAMLLIB) $(CAMLLDFLAGS) -ccopt -Lbdb -dtypes $(WARNERR)
+ OCAMLDEP=ocamldep $(CAMLP4)
+-CAMLLIBS=unix.cma str.cma bdb.cma nums.cma bigarray.cma cryptokit.cma
+-OCAMLFLAGS=$(COMMONCAMLFLAGS) -g $(CAMLLIBS)
+-OCAMLOPTFLAGS=$(COMMONCAMLFLAGS) -inline 40 $(CAMLLIBS:.cma=.cmxa)
++CAMLLIBS=bdb.cma nums.cma
++OCAMLFLAGS=$(COMMONCAMLFLAGS) -linkpkg -g $(CAMLLIBS)
++OCAMLOPTFLAGS=$(COMMONCAMLFLAGS) -linkpkg -inline 40 $(CAMLLIBS:.cma=.cmxa)
+
+ EXE=sks sks_add_mail
+ ALL=$(EXE) sks.8.gz
diff --git a/net-misc/sks/sks-1.1.6-r3.ebuild b/net-misc/sks/sks-1.1.6-r3.ebuild
new file mode 100644
index 000000000000..a830d01e8289
--- /dev/null
+++ b/net-misc/sks/sks-1.1.6-r3.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib user readme.gentoo-r1 systemd
+
+DESCRIPTION="An OpenPGP keyserver which is decentralized with highly reliable synchronization"
+HOMEPAGE="https://bitbucket.org/skskeyserver/sks-keyserver"
+SRC_URI="https://bitbucket.org/skskeyserver/sks-keyserver/downloads/${P}.tgz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="optimize test"
+DOC_CONTENTS="To get sks running, first build the database,
+start the database, import atleast one key, then
+run a cleandb. See the sks man page for more information
+Typical DB_CONFIG file and sksconf has been installed
+in /var/lib/sks and can be used as templates by renaming
+to remove the .typical extension. The DB_CONFIG file has
+to be in place before doing the database build, or the BDB
+environment has to be manually cleared from both KDB and PTree.
+The same applies if you are upgrading to this version with an existing KDB/Ptree,
+using another version of BDB than 4.8; you need to clear the environment
+using e.g. db4.6_recover -h . and db4.6_checkpoint -1h . in both KDB and PTree
+Additionally a sample web interface has been installed as
+web.typical in /var/lib/sks that can be used by renaming it to web
+Important: It is strongly recommended to set up SKS behind a
+reverse proxy. Instructions on properly configuring SKS can be
+found at https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Peering"
+
+RDEPEND=">=dev-lang/ocaml-4.0:=
+ dev-ml/camlp4:=
+ dev-ml/cryptokit:=
+ sys-libs/db:5.3"
+DEPEND="${RDEPEND}
+ dev-ml/findlib"
+
+pkg_setup() {
+ ebegin "Creating named group and user"
+ enewgroup sks
+ enewuser sks -1 -1 /var/lib/sks sks
+}
+
+src_prepare() {
+ eapply "${FILESDIR}/${P}-unbundle-cryptokit.patch" \
+ "${FILESDIR}/${P}-use-ocamlfind.patch"
+ cp Makefile.local.unused Makefile.local || die
+ sed -i \
+ -e "s:^BDBLIB=.*$:BDBLIB=-L/usr/$(get_libdir):g" \
+ -e "s:^BDBINCLUDE=.*$:BDBINCLUDE=-I/usr/include/db5.3/:g" \
+ -e "s:^LIBDB=.*$:LIBDB=-ldb-5.3:g" \
+ -e "s:^PREFIX=.*$:PREFIX=${D}/usr:g" \
+ -e "s:^MANDIR=.*$:MANDIR=${D}/usr/share/man:g" \
+ Makefile.local || die
+ sed -i \
+ -e 's:^CAMLINCLUDE= -I lib -I bdb$:CAMLINCLUDE= -I lib -I bdb -I +cryptokit:g' \
+ -e 's:-Werror-implicit-function-declaration::g' \
+ Makefile bdb/Makefile || die
+ sed -i \
+ -e 's:/usr/sbin/sks:/usr/bin/sks:g' \
+ sks_build.sh || die
+ eapply_user
+}
+
+src_compile() {
+ emake dep
+ # sks build fails with paralell build in module Bdb
+ emake -j1 all
+ if use optimize; then
+ emake all.bc
+ fi
+}
+
+src_test() {
+ ./sks unit_test || die
+}
+
+src_install() {
+ if use optimize; then
+ emake install.bc
+ dosym /usr/bin/sks.bc usr/bin/sks
+ dosym /usr/bin/sks_add_mail.bc usr/bin/sks_add_mail
+ else
+ emake install
+ fi
+
+ dodoc README.md
+
+ newinitd "${FILESDIR}/sks-db.initd" sks-db
+ newinitd "${FILESDIR}/sks-recon.initd" sks-recon
+ newconfd "${FILESDIR}/sks.confd" sks
+ systemd_dounit "${FILESDIR}"/sks-db.service
+ systemd_dounit "${FILESDIR}"/sks-recon.service
+
+ dodir "/var/lib/sks/web.typical"
+ insinto /var/lib/sks
+ newins sampleConfig/DB_CONFIG DB_CONFIG.typical
+ newins sampleConfig/sksconf.typical sksconf.typical
+ insinto /var/lib/sks/web.typical
+ doins sampleWeb/HTML5/*
+
+ keepdir /var/lib/sks
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ einfo "Note when upgrading from versions of SKS earlier than 1.1.4"
+ einfo "The default values for pagesize settings have changed. To continue"
+ einfo "using an existing DB without rebuilding, explicit settings have to be"
+ einfo "added to the sksconf file."
+ einfo "pagesize: 4"
+ einfo "ptree_pagesize: 1"
+ fi;
+}