On 03/18/2011 12:39 PM, Fajar A. Nugraha wrote:
On a side note, in RHEL6's freeradius-perl RPM, rlm_perl is unusable:
Can't load '/usr/lib64/perl5/auto/Data/Dumper/Dumper.so' for module
Data::Dumper: /usr/lib64/perl5/auto/Data/Dumper/Dumper.so: undefined
symbol: Perl_sv_cmp at /usr/lib64/perl5/XSLoader.pm line 70.
This was filed as https://bugzilla.redhat.com/show_bug.cgi?id=689045
I finally tracked this down and since it affects other people building
2.1.10 I thought I would pass along the info. Alan please also note
there is a git formatted patch attached against the v2.1.x git branch
and I think you also need to run autogen.sh again (see below).
It turns out the fix is to use lt_dladvise* and Alan checked in a fix
for it on 12/9/2009 in commit 7115d751. However that code does not get
turned on unless HAVE_LT_DLADVISE_INIT is defined.
Alan checked in a fix on 8/6/2010 in commit 323229c2 which added the
check for lt_dladvise in configure.in and if found sets
HAVE_LT_DLADVISE_INIT
opps, but not really the actual symbol which was defined was
HAVE_HAVE_LT_DLADVISE_INIT (note the extra HAVE_)
This was corrected on 1/7/2011 in commit 03993758.
So if you modify HAVE_HAVE_LT_DLADVISE_INIT to be HAVE_LT_DLADVISE_INIT
in the 2.1.10 tree, run configure again you should pick up the
lt_dladvise fixes right? Wrong. Why?
Because src/include/autoconf.h.in which configure rewrites as
src/include/autoconf.h does not have the HAVE_LT_DLADVISE_INIT symbol in
it. Why?
Because autoheader was not rerun after modifying configure.in. According
to the git log it appears as if the headers were last updated on
1/29/2009, about two years ago.
So the answer is to run autogen.sh right? Sort of, except autogen.sh has
a bug in it which causes it to exit prematurely before it's performed
90% of its work (it misses updating *all* the modules although it does
update src/include/autoconf.h.in). The fix for this is in the attached
0001-Fix-autogen.sh-the-script-is-invoked-with-e-which-ca.patch.
So what do you need to do if you want to enable lt_dladvise in 2.1.10?
1) change HAVE_HAVE_LT_DLADVISE_INIT to HAVE_LT_DLADVISE_INIT
2) patch autogen.sh so it doesn't exit prematurely (not strictly
necessary for lt_dladvise, but a good idea, who knows what else was
getting missed because of it)
3) run autogen.sh
4) do the configure, make, & install dance
Note, steps 1&2 are implemented in attached freeradius-lt-dladvise.patch
Alan:
I think you need to apply
0001-Fix-autogen.sh-the-script-is-invoked-with-e-which-ca.patch, then
run autogen.sh, and then do a git commit.
HTH,
John
--
John Dennis <jden...@redhat.com>
Looking to carve out IT costs?
www.redhat.com/carveoutcosts/
>From 1cbbbcdf4145d24e61d86fbaedce01d0fe9a30df Mon Sep 17 00:00:00 2001
From: John Dennis <jden...@redhat.com>
Date: Thu, 24 Mar 2011 11:59:37 -0400
Subject: [PATCH] Fix autogen.sh, the script is invoked with -e which causes the script
to exit immediately if a subshell command enclosed in parentheses has
a non-zero exit status. The command
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
grep "^AC_CONFIG_HEADER" configure.in > /dev/null
returns non-zero for many of the subdirs which causes the autogen.sh
script to immediately exit. In fact it exits on the very first
subdirectory (src/modules/rlm_sql) prematurely aborting the entire
operation.
---
autogen.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/autogen.sh b/autogen.sh
index 9cba642..20887a8 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -16,6 +16,6 @@ mysubdirs=`echo $mysubdirs`
for F in $mysubdirs
do
echo "Configuring in $F..."
- (cd $F && grep "^AC_CONFIG_HEADER" configure.in > /dev/null && autoheader -I$parentdir)
+ (cd $F && grep "^AC_CONFIG_HEADER" configure.in > /dev/null || exit 0; autoheader -I$parentdir)
(cd $F && autoconf -I$parentdir)
done
--
1.7.4
diff -r -u freeradius-server-2.1.10.orig/autogen.sh freeradius-server-2.1.10/autogen.sh
--- freeradius-server-2.1.10.orig/autogen.sh 2010-09-28 07:03:56.000000000 -0400
+++ freeradius-server-2.1.10/autogen.sh 2011-03-24 10:36:26.000000000 -0400
@@ -16,6 +16,6 @@
for F in $mysubdirs
do
echo "Configuring in $F..."
- (cd $F && grep "^AC_CONFIG_HEADER" configure.in > /dev/null && autoheader -I$parentdir)
+ (cd $F && grep "^AC_CONFIG_HEADER" configure.in > /dev/null || exit 0; autoheader -I$parentdir)
(cd $F && autoconf -I$parentdir)
done
Only in freeradius-server-2.1.10: autogen.sh~
diff -r -u freeradius-server-2.1.10.orig/configure freeradius-server-2.1.10/configure
--- freeradius-server-2.1.10.orig/configure 2010-09-28 07:03:56.000000000 -0400
+++ freeradius-server-2.1.10/configure 2011-03-23 18:09:45.000000000 -0400
@@ -25121,7 +25121,7 @@
if test $ac_cv_func_lt_dladvise_init = yes; then
cat >>confdefs.h <<\_ACEOF
-#define HAVE_HAVE_LT_DLADVISE_INIT
+#define HAVE_LT_DLADVISE_INIT
_ACEOF
fi
Only in freeradius-server-2.1.10: configure~
diff -r -u freeradius-server-2.1.10.orig/configure.in freeradius-server-2.1.10/configure.in
--- freeradius-server-2.1.10.orig/configure.in 2010-09-28 07:03:56.000000000 -0400
+++ freeradius-server-2.1.10/configure.in 2011-03-23 18:09:33.000000000 -0400
@@ -936,7 +936,7 @@
old_LIBS="$LIBS"
LIBS="$LIBS $LIBLTDL"
-AC_CHECK_FUNC(lt_dladvise_init, AC_DEFINE(HAVE_HAVE_LT_DLADVISE_INIT, [], [Do we have the lt_dladvise_init function]))
+AC_CHECK_FUNC(lt_dladvise_init, AC_DEFINE(HAVE_LT_DLADVISE_INIT, [], [Do we have the lt_dladvise_init function]))
LIBS="$old_LIBS"
dnl Check for libcrypt
Only in freeradius-server-2.1.10: configure.in~
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html