OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 04-Sep-2007 11:51:29 Branch: HEAD Handle: 2007090410512800 Added files: openpkg-src/pwmd pwmd.cfg pwmd.patch pwmd.spec rc.pwmd Log: first cut for a pwmd(8) package Summary: Revision Changes Path 1.1 +20 -0 openpkg-src/pwmd/pwmd.cfg 1.1 +47 -0 openpkg-src/pwmd/pwmd.patch 1.1 +186 -0 openpkg-src/pwmd/pwmd.spec 1.1 +69 -0 openpkg-src/pwmd/rc.pwmd ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/pwmd/pwmd.cfg ============================================================================ $ cvs diff -u -r0 -r1.1 pwmd.cfg --- /dev/null 2007-09-04 11:51:27 +0200 +++ pwmd.cfg 2007-09-04 11:51:29 +0200 @@ -0,0 +1,20 @@ +## +## pwmd.cfg -- pwmd(1) server configuration +## + +[default] [EMAIL PROTECTED]@/var/pwmd/pwmd.socket [EMAIL PROTECTED]@/var/pwmd/pwmd.log [EMAIL PROTECTED]@/var/pwmd/pwmd.db +enable_logging=true +disable_list_and_dump=true +iterations=42 +iteration_progress=0 +cache_timeout=0 +compression_level=6 +#cache_size=4096 +#cache_push=sample + +#[sample] [EMAIL PROTECTED]@ + @@ . patch -p0 <<'@@ .' Index: openpkg-src/pwmd/pwmd.patch ============================================================================ $ cvs diff -u -r0 -r1.1 pwmd.patch --- /dev/null 2007-09-04 11:51:29 +0200 +++ pwmd.patch 2007-09-04 11:51:29 +0200 @@ -0,0 +1,47 @@ +Index: libpwmd-4.0.3/libpwmd.c +--- libpwmd-4.0.3/libpwmd.c.orig 2007-09-03 15:51:29 +0200 ++++ libpwmd-4.0.3/libpwmd.c 2007-09-04 10:38:54 +0200 +@@ -293,8 +293,7 @@ + { + #ifndef USE_PINENTRY + return GPG_ERR_NOT_IMPLEMENTED; +-#endif +- ++#else + if (!pwm || pwm->pid == -1) + return GPG_ERR_INV_ARG; + +@@ -310,6 +309,7 @@ + return gpg_error_from_errno(errno); + + return 0; ++#endif + } + + #ifdef USE_PINENTRY +Index: libpwmd-4.0.3/pwmc.c +--- libpwmd-4.0.3/pwmc.c.orig 2007-09-03 16:43:42 +0200 ++++ libpwmd-4.0.3/pwmc.c 2007-09-04 10:39:12 +0200 +@@ -131,8 +131,10 @@ + int outfd = -1; + FILE *outfp = stdout; + ++#ifdef USE_NLS + setlocale(LC_ALL, ""); + bindtextdomain("libpwmd", LOCALEDIR); ++#endif + timeout = -1; + + while ((opt = getopt(argc, argv, "T:N:D:EhvaP:t:p:s:Sd:")) != EOF) { +Index: pwmd-1.0/src/Makefile.am +--- pwmd-1.0/src/Makefile.am.orig 2007-08-29 00:45:35 +0200 ++++ pwmd-1.0/src/Makefile.am 2007-09-04 10:36:13 +0200 +@@ -1,7 +1,7 @@ + bin_PROGRAMS = pwmd + pwmd_SOURCES = pwmd.c pwmd.h xml.c xml.h pwmd_error.c pwmd_error.h commands.c \ + commands.h common.h cache.c cache.h valgrind.h gettext.h +-pwmd_LDFLAGS = @XML_LIBS@ @GLIB_LIBS@ @LIBGCRYPT_LIBS@ @GPG_ERROR_LIBS@ ++pwmd_LDADD = @XML_LIBS@ @GLIB_LIBS@ @LIBGCRYPT_LIBS@ @GPG_ERROR_LIBS@ + pwmd_CFLAGS = -DLOCALEDIR=\"${prefix}/share/locale\" @XML_CPPFLAGS@ @GLIB_CFLAGS@ \ + @LIBGCRYPT_CFLAGS@ @LIBASSUAN_CFLAGS@ @GPG_ERROR_CFLAGS@ + @@ . patch -p0 <<'@@ .' Index: openpkg-src/pwmd/pwmd.spec ============================================================================ $ cvs diff -u -r0 -r1.1 pwmd.spec --- /dev/null 2007-09-04 11:51:29 +0200 +++ pwmd.spec 2007-09-04 11:51:29 +0200 @@ -0,0 +1,186 @@ +## +## pwmd.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> +## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package version +%define V_pwmd 1.0 +%define V_libpwmd 4.0.3 + +# package information +Name: pwmd +Summary: Password Manager Daemon +URL: http://bjk.sourceforge.net/pwmd/ +Vendor: Ben Kibbey +Packager: OpenPKG Foundation e.V. +Distribution: OpenPKG Community +Class: EVAL +Group: System +License: GPL +Version: %{V_pwmd}.%{V_libpwmd} +Release: 20070904 + +# list of sources +Source0: http://switch.dl.sourceforge.net/bjk/pwmd-%{V_pwmd}.tar.gz +Source1: http://switch.dl.sourceforge.net/bjk/libpwmd-%{V_libpwmd}.tar.gz +Source2: rc.pwmd +Source3: pwmd.cfg +Patch0: pwmd.patch + +# build information +Prefix: %{l_prefix} +BuildRoot: %{l_buildroot} +BuildPreReq: OpenPKG, openpkg >= 20060823, pinentry, apg, pkgconfig, automake, autoconf +PreReq: OpenPKG, openpkg >= 20060823, pinentry +BuildPreReq: glib2, gcrypt, libassuan, gpg-error, libxml, zlib +PreReq: glib2, gcrypt, libassuan, gpg-error, libxml, zlib +AutoReq: no +AutoReqProv: no + +%description + Password Manager Daemon (PWD) is a daemon that serves data to + application via a socket. The data is stored in an encrypted XML + file and the client must provide a key when opening and saving a + file. It uses a shared memory cache for storing a key so keys aren't + required for each open or save. Also features a configuration file + to set the number of encryption iterations, logging and more. + +%track + prog pwmd:pwmd = { + version = %{V_pwmd} + url = http://prdownloads.sourceforge.net/bjk/ + regex = [^b]pwmd-(__VER__)\.tar\.gz + } + prog pwmd:libpwmd = { + version = %{V_libpwmd} + url = http://prdownloads.sourceforge.net/bjk/ + regex = libpwmd-(__VER__)\.tar\.gz + } + +%prep + %setup -q -c + %setup -q -T -D -a 1 + %patch -p0 + +%build + # build server (daemon) + ( cd pwmd-%{V_pwmd} + aclocal + automake + autoconf + CC="%{l_cc}" \ + CFLAGS="%{l_cflags -O}" \ + CPPFLAGS="%{l_cppflags}" \ + LDFLAGS="%{l_ldflags}" \ + ./configure \ + --prefix=%{l_prefix} \ + --mandir=%{l_prefix}/man \ + --with-libgcrypt-prefix=%{l_prefix} \ + --with-xml-prefix=%{l_prefix} \ + --with-libassuan-prefix=%{l_prefix} \ + --with-gpg-error-prefix=%{l_prefix} \ + --disable-nls + %{l_make} %{l_mflags} + ) || exit $? + + # build client (library) + ( cd libpwmd-%{V_libpwmd} + CC="%{l_cc}" \ + CFLAGS="%{l_cflags -O}" \ + CPPFLAGS="%{l_cppflags}" \ + LDFLAGS="%{l_ldflags}" \ + ./configure \ + --prefix=%{l_prefix} \ + --mandir=%{l_prefix}/man \ + --with-libassuan-prefix=%{l_prefix} \ + --with-gpg-error-prefix=%{l_prefix} \ + --with-pinentry \ + --with-pinentry-path=%{l_prefix}/bin/pinentry \ + --disable-shared \ + --disable-nls + %{l_make} %{l_mflags} + ) || exit $? + +%install + rm -rf $RPM_BUILD_ROOT + + # install server (daemon) + ( cd pwmd-%{V_pwmd} + %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" + ) || exit $? + + # install client (library) + ( cd libpwmd-%{V_libpwmd} + %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" + ) || exit $? + + # strip down installation files + strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true + + # install server configuration + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/pwmd + + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + -e "s;@l_password@;`apg -n1 -a0 -m8 -x8`;g" \ + %{SOURCE pwmd.cfg} $RPM_BUILD_ROOT%{l_prefix}/etc/pwmd/ + + # install run-command script + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + %{SOURCE rc.pwmd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ + + # create run-time directories + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/var/pwmd \ + $RPM_BUILD_ROOT%{l_prefix}/var/pwmd/pwmd.db + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ + %{l_files_std} \ + '%config %{l_prefix}/etc/pwmd/*' \ + '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/pwmd' \ + '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/pwmd/*' + +%files -f files + +%clean + rm -rf $RPM_BUILD_ROOT + +%post + # after upgrade, restart service + [ $1 -eq 2 ] || exit 0 + eval `%{l_rc} pwmd status 2>/dev/null` + [ ".$pwmd_active" = .yes ] && %{l_rc} pwmd restart + exit 0 + +%preun + # before erase, stop service and remove log files + [ $1 -eq 0 ] || exit 0 + %{l_rc} pwmd stop 2>/dev/null + rm -f $RPM_INSTALL_PREFIX/var/pwmd/pwmd.socket >/dev/null 2>&1 || true + rm -f $RPM_INSTALL_PREFIX/var/pwmd/pwmd.pid >/dev/null 2>&1 || true + rm -f $RPM_INSTALL_PREFIX/var/pwmd/pwmd.log* >/dev/null 2>&1 || true + rm -f $RPM_INSTALL_PREFIX/var/pwmd/pwmd.db/* >/dev/null 2>&1 || true + exit 0 + @@ . patch -p0 <<'@@ .' Index: openpkg-src/pwmd/rc.pwmd ============================================================================ $ cvs diff -u -r0 -r1.1 rc.pwmd --- /dev/null 2007-09-04 11:51:29 +0200 +++ rc.pwmd 2007-09-04 11:51:29 +0200 @@ -0,0 +1,69 @@ [EMAIL PROTECTED]@/bin/openpkg rc +## +## rc.pwmd -- Run-Commands +## + +%config + pwmd_enable="$openpkg_rc_def" + pwmd_flags="" + pwmd_log_prolog="true" + pwmd_log_epilog="true" + pwmd_log_numfiles="10" + pwmd_log_minsize="1M" + pwmd_log_complevel="9" + +%common + pwmd_cfgfile="@l_prefix@/etc/pwmd/pwmd.cfg" + pwmd_logfile="@l_prefix@/var/pwmd/pwmd.log" + pwmd_pidfile="@l_prefix@/var/pwmd/pwmd.pid" + pwmd_signal () { + [ -f $pwmd_pidfile ] && kill -$1 `cat $pwmd_pidfile` + } + +%status -u @l_rusr@ -o + pwmd_usable="unknown" + pwmd_active="no" + rcService pwmd enable yes && \ + pwmd_signal 0 && pwmd_active="yes" + echo "pwmd_enable=\"$pwmd_enable\"" + echo "pwmd_usable=\"$pwmd_usable\"" + echo "pwmd_active=\"$pwmd_active\"" + +%start -u @l_rusr@ + rcService pwmd enable yes || exit 0 + rcService pwmd active yes && exit 0 + ( umask 0 + nohup @l_prefix@/bin/pwmd \ + -f $pwmd_cfgfile ${pwmd_flags} \ + </dev/null >/dev/null 2>&1 & + echo $! >$pwmd_pidfile + ) >/dev/null 2>&1 + +%stop -u @l_rusr@ + rcService pwmd enable yes || exit 0 + rcService pwmd active no && exit 0 + pwmd_signal TERM + sleep 2 + rm -f $pwmd_pidfile >/dev/null 2>&1 || true + +%restart -u @l_rusr@ + rcService pwmd enable yes || exit 0 + rcService pwmd active no && exit 0 + rc pwmd stop start + +%reload -u @l_rusr@ + rcService pwmd enable yes || exit 0 + rcService pwmd active no && exit 0 + pwmd_signal HUP + sleep 1 + pwmd_signal USR1 + +%daily -u @l_rusr@ + rcService pwmd enable yes || exit 0 + shtool rotate -f \ + -n $pwmd_log_numfiles -s $pwmd_log_minsize -d \ + -z $pwmd_log_complevel -m 664 -o @l_rusr@ -g @l_rgrp@ \ + -P "$pwmd_log_prolog" \ + -E "$pwmd_log_epilog; rc pwmd restart" \ + $pwmd_logfile + @@ . ______________________________________________________________________ OpenPKG http://openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org