Commit f7712d88 authored by Natanael Copa's avatar Natanael Copa

testing/freeradius: new aport (moved from unstable)

RADIUS (Remote Authentication Dial-In User Service) server
http://freeradius.org/
parent 19c14941
From 51cb058c6a9472585622582d16e01c5540627c25 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Tue, 13 Oct 2009 12:53:38 +0000
Subject: [PATCH] Fix detection of TLS for uClibc
On uClibc the configure script will wrongly detect that TLS is
available. This happends becuase the variable val in the test program
is optimized away and missing during link time.
This patch make sure that the variable val is not optimized away so
configure correctly will detect that TLS is missing on uClibc.
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
acinclude.m4 | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index 6025474..100e5b0 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -382,7 +382,7 @@ m4_pushdef([AC_OUTPUT],
AC_DEFUN([FR_TLS],
[
AC_MSG_CHECKING(for TLS)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[ static __thread int val; int main() { return 0; } ]])],[have_tls=yes],[have_tls=no],[have_tls=no ])
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[ static __thread int val; int main(int argc, char *argv[]) { return val = argc; } ]])],[have_tls=yes],[have_tls=no],[have_tls=no ])
AC_MSG_RESULT($have_tls)
if test "$have_tls" = "yes"; then
AC_DEFINE([HAVE_THREAD_TLS],[1],[Define if the compiler supports __thread])
--
1.6.4.4
# Contributor:
# Maintainer:
pkgname=freeradius
pkgver=2.1.3
pkgrel=1
pkgver=2.1.7
pkgrel=0
pkgdesc="RADIUS (Remote Authentication Dial-In User Service) server"
url="http://freeradius.org/"
license="GPL"
depends=
makedepends="openssl-dev pth-dev mysql-dev postgresql-dev gdbm-dev"
makedepends="openssl-dev pth-dev mysql-dev postgresql-dev gdbm-dev readline-dev
bash libtool autoconf automake
"
pkggroups="radiusd"
pkgusers="radiusd"
install="freeradius.pre-install"
subpackages="$pkgname-doc $pkgname-dev"
source="ftp://ftp.freeradius.org/pub/freeradius/$pkgname-server-$pkgver.tar.gz
freeradius.confd
freeradius.initd
0001-Fix-detection-of-TLS-for-uClibc.patch
freeradius-2.1.6-nothreads.patch
freeradius-2.1.7-pkglibdir.patch
"
build() {
cd "$srcdir/$pkgname-server-$pkgver"
for i in ../*.patch; do
msg "Applying $i"
patch -p1 -i $i || return 1
done
aclocal && ./autogen.sh || return 1
export CONFIG_SHELL=/bin/bash
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--without-threads \
--disable-tls
--localstatedir=/var \
--disable-static \
|| return 1
# # the configure script fails to detect that we dont have TLS
# sed -i -e '/^\#define HAVE_THREAD_TLS/d' src/include/autoconf.h \
# || return 1
make -j1 || return 1
make -j1 DESTDIR="$pkgdir" install
install -d -m0750 -o root -g radiusd "$pkgdir"/etc/raddb
install -d -m0750 -o root -g radiusd "$pkgdir"/var/run/radius
install -d -m0750 -o root -g radiusd "$pkgdir"/var/log/radius
install -d -m0750 -o root -g radiusd "$pkgdir"/var/log/radius/radacct
make -j1 R="$pkgdir" install
sed -i -e 's:^#user *= *nobody:user = radiusd:;s:^#group *= *nobody:group = radiusd:' \
"$pkgdir"/etc/raddb/radiusd.conf
chown -R root:radiusd "$pkgdir"/etc/raddb/*
rm -f "$pkgdir/usr/sbin/rc.radiusd"
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
md5sums="017ebe7dd2e261caee448c64ccd4584d freeradius-server-2.1.3.tar.gz
md5sums="b1f77c5e3116bcb0ac0aa9080a06ebf1 freeradius-server-2.1.7.tar.gz
fc6693f3df5a0694610110287a28568a freeradius.confd
b22092fcdcb61d7f0b8e13a007c444c5 freeradius.initd"
b22092fcdcb61d7f0b8e13a007c444c5 freeradius.initd
2e39f10c814bc7e1172c4cb2d178b39b 0001-Fix-detection-of-TLS-for-uClibc.patch
1e04786d3f626200999f53471c19ac47 freeradius-2.1.6-nothreads.patch
4c8af50e174d392c0210cbf494cd15cd freeradius-2.1.7-pkglibdir.patch"
diff -Nru freeradius-server-2.1.6.orig/src/main/event.c freeradius-server-2.1.6/src/main/event.c
--- freeradius-server-2.1.6.orig/src/main/event.c 2009-05-18 13:13:55.000000000 +0200
+++ freeradius-server-2.1.6/src/main/event.c 2009-09-05 07:52:42.000000000 +0200
@@ -1667,7 +1667,9 @@
*/
request->num_proxied_requests = 1;
request->num_proxied_responses = 0;
+#ifdef HAVE_PTHREAD_H
request->child_pid = NO_SUCH_CHILD_PID;
+#endif
update_event_timestamp(request->proxy, request->proxy_when.tv_sec);
diff -ru freeradius-server-2.1.7.orig/Make.inc.in freeradius-server-2.1.7/Make.inc.in
--- freeradius-server-2.1.7.orig/Make.inc.in 2009-10-09 08:38:58.000000000 +0000
+++ freeradius-server-2.1.7/Make.inc.in 2009-10-09 08:39:15.000000000 +0000
@@ -10,6 +10,7 @@
sysconfdir = @sysconfdir@
localstatedir = @localstatedir@
libdir = @libdir@
+pkglibdir = @libdir@/freeradius
bindir = @bindir@
sbindir = @sbindir@
docdir = @docdir@
diff -ru freeradius-server-2.1.7.orig/raddb/radiusd.conf.in freeradius-server-2.1.7/raddb/radiusd.conf.in
--- freeradius-server-2.1.7.orig/raddb/radiusd.conf.in 2009-10-09 08:38:58.000000000 +0000
+++ freeradius-server-2.1.7/raddb/radiusd.conf.in 2009-10-09 08:39:15.000000000 +0000
@@ -103,7 +103,7 @@
# make
# make install
#
-libdir = @libdir@
+libdir = @libdir@/freeradius
# pidfile: Where to place the PID of the RADIUS server.
#
diff -ru freeradius-server-2.1.7.orig/src/modules/Makefile freeradius-server-2.1.7/src/modules/Makefile
--- freeradius-server-2.1.7.orig/src/modules/Makefile 2009-10-09 08:38:58.000000000 +0000
+++ freeradius-server-2.1.7/src/modules/Makefile 2009-10-09 08:39:15.000000000 +0000
@@ -12,7 +12,7 @@
@$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common
install:
- $(INSTALL) -d -m 755 $(R)$(libdir)
+ $(INSTALL) -d -m 755 $(R)$(pkglibdir)
@$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common
clean:
diff -ru freeradius-server-2.1.7.orig/src/modules/rules.mak freeradius-server-2.1.7/src/modules/rules.mak
--- freeradius-server-2.1.7.orig/src/modules/rules.mak 2009-10-09 08:38:58.000000000 +0000
+++ freeradius-server-2.1.7/src/modules/rules.mak 2009-10-09 08:40:56.000000000 +0000
@@ -123,7 +123,7 @@
$(TARGET).la: $(LT_OBJS)
$(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION) \
-module $(LINK_MODE) $(LDFLAGS) $(RLM_LDFLAGS) -o $@ \
- -rpath $(libdir) $^ $(LIBRADIUS) $(RLM_LIBS) $(LIBS)
+ -rpath $(pkglibdir) $^ $(LIBRADIUS) $(RLM_LIBS) $(LIBS)
#######################################################################
#
@@ -164,13 +164,13 @@
# Do any module-specific installation.
#
# If there isn't a TARGET defined, then don't do anything.
-# Otherwise, install the libraries into $(libdir)
+# Otherwise, install the libraries into $(pkglibdir)
#
install:
@[ "x$(RLM_INSTALL)" = "x" ] || $(MAKE) $(MFLAGS) $(RLM_INSTALL)
if [ "x$(TARGET)" != "x" ]; then \
$(LIBTOOL) --mode=install $(INSTALL) -c \
- $(TARGET).la $(R)$(libdir)/$(TARGET).la || exit $$?; \
+ $(TARGET).la $(R)$(pkglibdir)/$(TARGET).la || exit $$?; \
rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la; \
ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la || exit $$?; \
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment