| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| inherit multilib user readme.gentoo systemd |
| |
| DESCRIPTION="An OpenPGP keyserver which is decentralized and provides 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 databse, 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" |
| |
| DEPEND="dev-lang/ocaml |
| dev-ml/cryptokit |
| sys-libs/db:4.8" |
| RDEPEND="${DEPEND}" |
| |
| pkg_setup() { |
| ebegin "Creating named group and user" |
| enewgroup sks |
| enewuser sks -1 -1 /var/lib/sks sks |
| } |
| |
| src_prepare() { |
| 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/db4.8/:g" \ |
| -e "s:^LIBDB=.*$:LIBDB=-ldb-4.8: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 |
| |
| epatch "${FILESDIR}/${P}-eddsa.patch" |
| epatch "${FILESDIR}/${P}-disable-warn-error-a.patch" |
| epatch "${FILESDIR}/${P}-curve25519.patch" |
| } |
| |
| 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; |
| } |