# HG changeset patch # User Michael Schloh von Bennewitz # Date 1231282084 -3600 # Node ID 9115bae56135a0ef0aad616ca90a84bdf9dd5aeb # Parent dabc4f22486fc81d8a6b14d4b53ba45257ce5fe6 Complete packaging logic and include fscanf(3) proxy to correct runtime. diff -r dabc4f22486f -r 9115bae56135 radiusclient/fsl.radiusclient --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radiusclient/fsl.radiusclient Tue Jan 06 23:48:04 2009 +0100 @@ -0,0 +1,52 @@ +## +## fsl.arpwatch -- OSSP fsl configuration +## + +ident (radexample)/.+ q{ + prefix( + prefix="%b %d %H:%M:%S %N <%L> $1[%P]: " + ) + -> { + debug: file( + path="@l_prefix@/var/radiusclient/radexample.log", + perm=0644 + ) + } +}; + +ident (radlogin)/.+ q{ + prefix( + prefix="%b %d %H:%M:%S %N <%L> $1[%P]: " + ) + -> { + debug: file( + path="@l_prefix@/var/radiusclient/radlogin.log", + perm=0644 + ) + } +}; + +ident (radstatus)/.+ q{ + prefix( + prefix="%b %d %H:%M:%S %N <%L> $1[%P]: " + ) + -> { + debug: file( + path="@l_prefix@/var/radiusclient/radstatus.log", + perm=0644 + ) + } +}; + +ident (radacct)/.+ q{ + prefix( + prefix="%b %d %H:%M:%S %N <%L> $1[%P]: " + ) + -> { + debug: file( + path="@l_prefix@/var/radiusclient/radacct.log", + perm=0644 + ) + } +}; + diff -r dabc4f22486f -r 9115bae56135 radiusclient/radiusclient.patch --- a/radiusclient/radiusclient.patch Tue Jan 06 23:46:19 2009 +0100 +++ b/radiusclient/radiusclient.patch Tue Jan 06 23:48:04 2009 +0100 @@ -73,3 +73,26 @@ CLEANFILES = *~ noinst_HEADERS = radlogin.h radlogin_SOURCES = radlogin.c radius.c local.c +Index: etc/Makefile.in +--- etc/Makefile.in.orig 2008-02-24 01:04:31.031421286 +0100 ++++ etc/Makefile.in 2008-02-24 01:04:38.951886176 +0100 +@@ -382,6 +382,7 @@ + radiusclient.conf: radiusclient.conf.in + sed -e 's|@sbin''dir@|$(sbindir)|g' \ + -e 's|@pkgsysconf''dir@|$(pkgsysconfdir)|g' \ ++ -e 's|@localstate''dir@|$(localstatedir)/radiusclient|g' \ + <$(srcdir)/radiusclient.conf.in >radiusclient.conf + + install-data-local: servers +Index: etc/radiusclient.conf.in +--- etc/radiusclient.conf.in.orig 2008-02-24 00:54:01.643791239 +0100 ++++ etc/radiusclient.conf.in 2008-02-24 00:55:07.378684108 +0100 +@@ -54,7 +54,7 @@ + + # file which holds sequence number for communication with the + # RADIUS server +-seqfile /var/run/radius.seq ++seqfile @localstatedir@/radius.seq + + # file which specifies mapping between ttyname and NAS-Port attribute + mapfile @pkgsysconfdir@/port-id-map diff -r dabc4f22486f -r 9115bae56135 radiusclient/radiusclient.patch.libc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radiusclient/radiusclient.patch.libc Tue Jan 06 23:48:04 2009 +0100 @@ -0,0 +1,20 @@ +Index: lib/buildreq.c +--- lib/buildreq.c.orig 2005-07-21 01:01:07.000000000 -0700 ++++ lib/buildreq.c 2008-02-23 16:33:08.000000000 -0800 +@@ -89,10 +89,14 @@ + } + + rewind(sf); +- if (fscanf(sf, "%d", &seq_nbr) != 1) { ++ /* comment the following block out to work around some broken */ ++ /* libc distros which return 0 on successful fscanf(3) calls, */ ++ /* and use the simple replacement follwing the block instead. */ ++ /*if (fscanf(sf, "%d", &seq_nbr) != 1) { + rc_log(LOG_ERR,"rc_get_seqnbr: fscanf failure: %s", seqfile); + seq_nbr = rc_guess_seqnbr(); +- } ++ }*/ ++ fscanf(sf, "%d", &seq_nbr); + + rewind(sf); + ftruncate(fileno(sf),0); diff -r dabc4f22486f -r 9115bae56135 radiusclient/radiusclient.spec --- a/radiusclient/radiusclient.spec Tue Jan 06 23:46:19 2009 +0100 +++ b/radiusclient/radiusclient.spec Tue Jan 06 23:48:04 2009 +0100 @@ -32,17 +32,28 @@ Group: RADIUS License: BSD-style Version: 0.5.6 -Release: 20080317 +Release: 20080620 + +# package options +%option with_fsl yes +%option with_brokenlibc no + # list of sources -Source0: http://download.berlios.de/radiusclient-ng/radiusclient-ng-%{version}.tar.gz +Source0: ftp://ftp.iptel.org/pub/radiusclient-ng/radiusclient-ng-%{version}.tar.gz +Source2: fsl.radiusclient Patch0: radiusclient.patch +Patch1: radiusclient.patch.libc # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20060823 PreReq: OpenPKG, openpkg >= 20060823 +%if "%{with_fsl}" == "yes" +BuildPreReq: fsl +PreReq: fsl +%endif AutoReq: no AutoReqProv: no @@ -52,19 +63,24 @@ %track prog radiusclient = { version = %{version} - url = http://prdownload.berlios.de/radiusclient-ng/ + url = ftp://ftp.iptel.org/pub/radiusclient-ng/ regex = radiusclient-ng-(__VER__)\.tar\.gz } %prep %setup -q -n radiusclient-ng-%{version} %patch -p0 +%if "%{with_brokenlibc}" == "yes" + %patch -p0 -P 1 +%endif %build CC="%{l_cc}" \ CFLAGS="%{l_cflags -O}" \ CPPFLAGS="%{l_cppflags}" \ - LDFLAGS="%{l_ldflags}" \ + LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}" \ + LIBS="%{l_fsl_libs}" \ + GREP="grep" \ ./configure \ --prefix=%{l_prefix} \ --sysconfdir=%{l_prefix}/etc/radiusclient \ @@ -74,16 +90,32 @@ %install rm -rf $RPM_BUILD_ROOT %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/radiusclient + touch $RPM_BUILD_ROOT%{l_prefix}/var/radiusclient/radius.seq + mv \ + $RPM_BUILD_ROOT%{l_prefix}/include/radiusclient-ng.h \ + $RPM_BUILD_ROOT%{l_prefix}/include/radiusclient.h rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/login.radius strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true - mv $RPM_BUILD_ROOT%{l_prefix}/include/radiusclient-ng.h \ - $RPM_BUILD_ROOT%{l_prefix}/include/radiusclient.h + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl + %{l_shtool} install -c -m 644 %{l_value -s -a} \ + %{SOURCE fsl.radiusclient} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ - '%config %{l_prefix}/etc/radiusclient/*' + '%not %dir %{l_prefix}/etc/fsl' \ + '%config %{l_prefix}/etc/radiusclient/*' \ + '%attr(640,%{l_mgrp},%{l_rgrp}) %{l_prefix}/etc/radiusclient/servers' \ + '%attr(644,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/radiusclient/radius.seq' %files -f files %clean rm -rf $RPM_BUILD_ROOT +%preun + [ $1 -eq 0 ] || exit 0 + rm -f $RPM_INSTALL_PREFIX/var/radiusclient/*.log >/dev/null 2>&1 || true + exit 0 +