Name: sks-keyserver
Summary: SKS distributed OpenPGP keyserver
Version: 1.1.3
Release: 1
License: GPL
Group: Applications/
URL: http://minsky-primus.homeip.net/sks/
Description: SKS is an OpenPGP keyserver whose goal is to provide easy to deploy,
decentralized, and highly reliable synchronization. That means that a key
submitted to one SKS server will quickly be distributed to all key servers, and
even wildly out-of-date servers, or servers that experience spotty
connectivity, can fully synchronize with rest of the system.
The build could not start because of the following missing build requirements:
The build could not start because the following file is missing: sks-1.1.3.tgz
The spec file used by the build system currently has the following contents:
# $Id$
# Authority: shuff
# Upstream: Yaron Minsky <yminsky$gmail.com>
Summary: SKS distributed OpenPGP keyserver
Name: sks-keyserver
Version: 1.1.3
Release: 1%{?dist}
License: GPL
Group: Applications/
URL: http://minsky-primus.homeip.net/sks/
Source: http://sks-keyserver.googlecode.com/files/sks-%{version}.tgz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: db4-devel
BuildRequires: make
BuildRequires: ocaml >= 3.10.2
BuildRequires: ocaml-camlp4 >= 3.10.2
BuildRequires: zlib-devel
BuildRequires: rpm-macros-rpmforge
Requires: db4
Provides: sks = %{version}
%description
SKS is an OpenPGP keyserver whose goal is to provide easy to deploy,
decentralized, and highly reliable synchronization. That means that a key
submitted to one SKS server will quickly be distributed to all key servers, and
even wildly out-of-date servers, or servers that experience spotty
connectivity, can fully synchronize with rest of the system.
%prep
%setup -n sks-%{version}
%{__cat} <<'MAKEFILE' >Makefile.local
BDBLIB=-L%{_libdir}
BDBINCLUDE=-I%{_includedir}
PREFIX=%{_usr}
LIBDB=-ldb
MANDIR=%{_mandir}
export BDBLIB
export BDBINCLUDE
export PREFIX
export LIBDB
export MANDIR
MAKEFILE
%{__cat} <<'CONF' >sksconf
# sks-keyserver config file
# base directory
basedir: %{_localstatedir}/sks
# write logs to local files
logfile: log
# set a reasonable debug level (max is 10)
debuglevel: 4
# set the hostname
#hostname: localhost.localdomain
# ports for hkp and recon services (default)
#hkp_port: 11371
#recon_port:11370
# set the email address we user for PKS sync
#from_addr: keysync@localhost.localdomain
# check the membership file every 6 hours (default)
#membership_reload_interval: 6
CONF
%{__cat} <<'MEMBERSHIP' >membership
# membership
#
# With SKS, two hosts can efficiently compare their databases then
# repair whatever differences are found. In order to set up
# reconciliation, you first need to find other SKS servers that will
# agree to gossip with you. The hostname and port of the server that
# has agreed to do so should be added to this file.
#
# Empty lines and whitespace-only lines are ignored, as are lines
# whose first non-whitespace character is a `#'. Comments preceded by '#'
# are allowed at the ends of lines
#
# Example:
# keyserver.linux.it 11370
#
# The following operators have agreed to have their peering info included in this sample file.
# NOTE: This does NOT mean you may uncomment the lines and have peers. First you must contact the
# server owner and ask permission. You should include a line styled like these for your own server.
# Until two SKS membership files contain eact others peering info, they will not gossip.
#
#yourserver.example.net 11370 # Your full name <emailaddress> 0xPreferredPGPkey
#keyserver.gingerbear.net 11370 # John P. Clizbe <John@Gingerbear.net> 0xD6569825
#sks.keyservers.net 11370 # John P. Clizbe <John@Gingerbear.net> 0xD6569825
#keyserver.rainydayz.org 11370 # Andy Ruddock <andy.ruddock@rainydayz.org> 0xEEC3AFB3
#keyserver.computer42.org 11370 # H.-Dirk Schmitt <dirk@computer42.org> 0x6A017B17
MEMBERSHIP
%{__cat} <<'INIT' >rc.sks
#! /bin/sh
#
# chkconfig: - 95 30
# description: SKS keyserver db and recon daemons
# config: /etc/sks/sksconf
CLIENT=%{_bindir}/sks
DIR=%{_localstatedir}/sks
STARTOPTS=""
test -e $CLIENT || exit 0
test -d $DIR || exit 0
case "$1" in
start)
cd $DIR
echo -n "Starting SKS:"
echo -n \ sks_db
$CLIENT db &
echo -n \ sks_recon
$CLIENT recon &
echo "."
;;
stop)
echo -n "Stopping SKS:"
killall sks
while [ "`pidof sks`" ]; do sleep 1; done # wait until SKS processes have exited
echo "."
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|reload|restart|force-reload}"
exit 1
;;
esac
exit 0
INIT
%build
%{__make} dep
%{__make} all
%{__make} all.bc
%install
%{__rm} -rf %{buildroot}
%{__make} install PREFIX="%{buildroot}%{_usr}" MANDIR="%{buildroot}%{_mandir}"
# install the config files
%{__install} -m755 -d %{buildroot}%{_sysconfdir}/sks
%{__install} -m644 sksconf %{buildroot}%{_sysconfdir}/sks
%{__install} -m644 membership %{buildroot}%{_sysconfdir}/sks
# install the init script
%{__install} -m755 -d %{buildroot}%{_initrddir}
%{__install} -m755 rc.sks %{buildroot}%{_initrddir}/sks
# make a data directory
%{__install} -m755 -d %{buildroot}%{_localstatedir}/sks
pushd %{buildroot}%{_localstatedir}/sks && %{__ln_s} ../..%{_sysconfdir}/sks/sksconf && popd
pushd %{buildroot}%{_localstatedir}/sks && %{__ln_s} ../..%{_sysconfdir}/sks/membership && popd
# fix for stupid strip issue
#%{__chmod} -R u+w %{buildroot}/*
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-, root, root, 0755)
%doc ANNOUNCEMENT BUGS CHANGELOG COPYING FILES README TODO VERSION
%doc %{_mandir}/man?/*
%{_bindir}/*
%{_initrddir}/sks
%{_localstatedir}/sks/
%config(noreplace) %{_sysconfdir}/sks/
%changelog
* Mon Apr 16 2012 Steve Huff <shuff@vecna.org> - 1.1.3-1
- Initial package.