freeradius 2.1.10 with oracle instantclient11.2

Waqas Toor waqasnasirtoor at gmail.com
Mon Jan 17 12:30:12 CET 2011


Dear Alexandre,
Ok the patch you sent didnt work for me so here are some steps that I
took and would like to share so that other may benefit from it :)
these steps are working with FreeRadius 2.1.10 and Oracle
Instantclient 11.2, autoconf 2.59 and libtool 1.5.4 and OS is centOS
5.4 (final)

Steps that I did are as follows,
1: changed the configure.in file in
src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.in replace
libnnz10 to libnnz11 and also libclntsh10 to libclntsh11 etc
2: changed back to parent directory i.e. freeradius/ and then did
aclocal command
3: autogen.sh works after aclocal so ran ./autogen.sh
4: created a symlink in oracleinstant client lib directory named
libclntsh.so -> libclntsh.so.11.1 (as freeradius oracle driver looks
for libclntsh.so)
5: did # ./configure
--with-oracle-include-dir=/opt/instantclient_11_2/sdk/include/
--with-experimental-modules
--with-oracle-lib-dir=/opt/instantclient_11_2/
6: now make && make installl
7: after install export LD_LIBRARY_PATH to you instantclient folder
i.e LD_LIBRARY_PATH=/opt/instantclient_11_2
8: change sql.conf to point to oracle and then radiusd -X and it works
with oracle (atleast it worked for me)

if it works for others then I hope somebody add it to the wiki as well

Thanks
Waqas





On Sat, Jan 15, 2011 at 1:42 AM, Alexandre <alxgomz at gmail.com> wrote:
> Hardcoding libnnz11should be done in configure not in configure.in. and so
> there is no need to run. ./autogen.sh
>
> Le 14 janv. 2011 20:19, "Waqas Toor" <waqasnasirtoor at gmail.com> a écrit :
>> Dear Alexandre,
>>
>> Thanks, I have autoconf 2.59
>> after patching I had to do
>> #aclocal
>> # ./autogen.sh
>> # ./configure
>> --with-oracle-include-dir=/opt/instantclient_11_2/sdk/include/
>> --with-experimental-modules
>> --with-oracle-lib-dir=/opt/instantclient_11_2/
>>
>> now the error is
>> configure: configuring in ./drivers/rlm_sql_oracle
>> configure: running /bin/sh './configure' --prefix=/usr/local
>> '--prefix=/usr/local'
>> '--with-oracle-include-dir=/opt/instantclient_11_2/sdk/include/'
>> '--with-experimental-modules'
>> '--with-oracle-lib-dir=/opt/instantclient_11_2/'
>> '--enable-ltdl-install' '--cache-file=/dev/null' '--srcdir=.'
>> --cache-file=/dev/null --srcdir=.
>> checking for oci.h... checking for gcc... gcc
>> checking for C compiler default output file name... a.out
>> checking whether the C compiler works... yes
>> checking whether we are cross compiling... no
>> checking for suffix of executables...
>> checking for suffix of object files... o
>> checking whether we are using the GNU C compiler... yes
>> checking whether gcc accepts -g... yes
>> checking for gcc option to accept ANSI C... none needed
>> yes
>> configure: WARNING: oracle libraries not found. Use
>> --with-oracle-lib-dir=<path>.
>> configure: WARNING: silently not building rlm_sql_oracle.
>> configure: WARNING: FAILURE: rlm_sql_oracle requires: libclntsh libnnz.
>> configure: creating ./config.status
>> config.status: creating Makefile
>>
>> please note that is no version in libnnz.
>>
>> and if I hardcode the version in lnnz11 and libnnz11 in configure.in
>> and the again do the above steps then i get this error
>>
>> configure: configuring in ./drivers/rlm_sql_oracle
>> configure: running /bin/sh './configure' --prefix=/usr/local
>> '--prefix=/usr/local'
>> '--with-oracle-include-dir=/opt/instantclient_11_2/sdk/include/'
>> '--with-experimental-modules'
>> '--with-oracle-lib-dir=/opt/instantclient_11_2/'
>> '--enable-ltdl-install' '--cache-file=/dev/null' '--srcdir=.'
>> --cache-file=/dev/null --srcdir=.
>> checking for oci.h... checking for gcc... gcc
>> checking for C compiler default output file name... a.out
>> checking whether the C compiler works... yes
>> checking whether we are cross compiling... no
>> checking for suffix of executables...
>> checking for suffix of object files... o
>> checking whether we are using the GNU C compiler... yes
>> checking whether gcc accepts -g... yes
>> checking for gcc option to accept ANSI C... none needed
>> yes
>> configure: WARNING: oracle libraries not found. Use
>> --with-oracle-lib-dir=<path>.
>> configure: WARNING: silently not building rlm_sql_oracle.
>> configure: WARNING: FAILURE: rlm_sql_oracle requires: libclntsh libnnz11.
>>
>>
>> this oracle thing is becoming pain now :)
>>
>> Thank you
>> Waqas
>>
>>
>>
>>
>>
>>
>>
>>
>> Waqas
>>
>>
>>
>>
>> On Fri, Jan 14, 2011 at 10:56 PM, Alexandre <alxgomz at gmail.com> wrote:
>>> A workaround for your very own problem could be to change all
>>> references to libnnz10 to libnnz11 in the configure file (in the same
>>> directory).
>>>
>>> regards
>>>
>>> 2011/1/14 Alexandre <alxgomz at gmail.com>:
>>>> personnally  I got it working with libtool 1.5 and autoconf 2.61
>>>>
>>>> 2011/1/14 Waqas Toor <waqasnasirtoor at gmail.com>:
>>>>> Dear Alexandre,
>>>>> I am sorry I should have mentioned the env previously ..
>>>>> its CentOS 5.4 64bit
>>>>>
>>>>>
>>>>> if I do ./autogen.sh without applying patch on a clean extract from
>>>>> the tarball it gives the same error.
>>>>>
>>>>> I am not good with libtool and autoconf. can you head me to a
>>>>> direction where i can figure out this or which autoconf and libtool
>>>>> version i need to work this out.
>>>>>
>>>>> Thanks
>>>>>
>>>>> waqas
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jan 14, 2011 at 10:07 PM, Alexandre <alxgomz at gmail.com> wrote:
>>>>>> Oops the patch is indeed bad.
>>>>>> A bad copy/paste inserted a line break wich mess it up: here is a good
>>>>>> one attached.
>>>>>> sorry for that (unfortunately this won't resolve your issue with
>>>>>> libtool/autoconf or whatever).
>>>>>>
>>>>>> 2011/1/14 Alexandre <alxgomz at gmail.com>:
>>>>>>> The patch should apply flalessly on the 2.1.10 source tree. At least
>>>>>>> it does here. Are you sure you applied it on a clean source trre
>>>>>>> unpacked from the 2.1.10 tarball?
>>>>>>>
>>>>>>> Never the less  it seems ,there are autoconf or libtool issues with
>>>>>>> your environement (wich is?).
>>>>>>> Do you have the same error before applying patch?
>>>>>>>
>>>>>>>
>>>>>>> 2011/1/14 Waqas Toor <waqasnasirtoor at gmail.com>:
>>>>>>>> also adding to that,
>>>>>>>> i have manually typed in the changes in the configure.in file as
>>>>>>>> suggested by the patch.
>>>>>>>> when i do autogen.sh
>>>>>>>> i get this error
>>>>>>>>
>>>>>>>> ./autogen.sh
>>>>>>>> Remember to add `AC_PROG_LIBTOOL' to `configure.in'.
>>>>>>>> Using `AC_PROG_RANLIB' is rendered obsolete by `AC_PROG_LIBTOOL'
>>>>>>>> libtoolize: `/usr/share/aclocal/libtool.m4' is serial 48, less than
>>>>>>>> 52
>>>>>>>> in `aclocal.m4'
>>>>>>>> To remain compatible, you should update your `aclocal.m4' by running
>>>>>>>> aclocal.
>>>>>>>> configure.in:1160: warning: AC_CONFIG_SUBDIRS: you should use
>>>>>>>> literals
>>>>>>>> autoconf/status.m4:1077: AC_CONFIG_SUBDIRS is expanded from...
>>>>>>>> configure.in:1160: the top level
>>>>>>>> configure.in:1160: warning: AC_CONFIG_SUBDIRS: you should use
>>>>>>>> literals
>>>>>>>> autoconf/status.m4:1077: AC_CONFIG_SUBDIRS is expanded from...
>>>>>>>> configure.in:1160: the top level
>>>>>>>> configure:19994: error: possibly undefined macro:
>>>>>>>> AC_REQUIRE_AUX_FILE
>>>>>>>>      If this token and others are legitimate, please use
>>>>>>>> m4_pattern_allow.
>>>>>>>>      See the Autoconf documentation.
>>>>>>>>
>>>>>>>> what could be the reason now?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Jan 14, 2011 at 6:10 PM, Waqas Toor
>>>>>>>> <waqasnasirtoor at gmail.com> wrote:
>>>>>>>>> Hello Alexandre,
>>>>>>>>>
>>>>>>>>> Thanks for the patch
>>>>>>>>> it tried its failing
>>>>>>>>>
>>>>>>>>> here is the error message
>>>>>>>>> [root at aaa-dev freeradius-server-2.1.10]# patch -p0 < oracle.patch
>>>>>>>>> patching file
>>>>>>>>> src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.in
>>>>>>>>> Hunk #1 FAILED at 86.
>>>>>>>>> patch: **** malformed patch at line 77:
>>>>>>>>> AC_MSG_RESULT(yes)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Jan 14, 2011 at 5:56 PM, Alexandre <alxgomz at gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>> I wrote this patch which should allow freeradius to correctly
>>>>>>>>>> detect
>>>>>>>>>> oracle librairies and headers (if you provide the necessary option
>>>>>>>>>> for
>>>>>>>>>> configure).
>>>>>>>>>> copy it to the top level directory of the sources and patch using
>>>>>>>>>>
>>>>>>>>>> patch -p0 < filename.patch
>>>>>>>>>>
>>>>>>>>>> then re-run ./autogen.sh, then configure, make blahblahblah...
>>>>>>>>>>
>>>>>>>>>> This patch worked for me but I don't think it has ever been tested
>>>>>>>>>> anywhere else. So thanks for feedback :).
>>>>>>>>>>
>>>>>>>>>> regards
>>>>>>>>>>
>>>>>>>>>> HERE IS THE PATCH:
>>>>>>>>>> ##################################
>>>>>>>>>> --- /tmp/configure.in.orig      2010-12-14 23:24:40.019101002
>>>>>>>>>> -1000
>>>>>>>>>> +++ src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.in
>>>>>>>>>> 2010-12-14
>>>>>>>>>> 23:18:25.875101003 -1000
>>>>>>>>>> @@ -86,32 +86,37 @@
>>>>>>>>>>                if test "x$oracle_lib_dir" != "x" ; then
>>>>>>>>>>                        ORACLE_LIBDIR_SWITCH="-L${oracle_lib_dir} "
>>>>>>>>>>                fi
>>>>>>>>>> -               LIBS="$old_LIBS $ORACLE_LIBDIR_SWITCH -lclntsh
>>>>>>>>>> -lnnz10"
>>>>>>>>>> -               AC_TRY_LINK([#include <oci.h>
>>>>>>>>>> -
>>>>>>>>>> -                               static OCIEnv           *p_env;
>>>>>>>>>> -                               static OCIError         *p_err;
>>>>>>>>>> -                               static OCISvcCtx        *p_svc;
>>>>>>>>>> -                               static OCIStmt          *p_sql;
>>>>>>>>>> -                               static OCIDefine        *p_dfn
>>>>>>>>>>  = (OCIDefine *) 0;
>>>>>>>>>> -                               static OCIBind          *p_bnd
>>>>>>>>>>  = (OCIBind *) 0;
>>>>>>>>>> -                       ],
>>>>>>>>>> -                       [
>>>>>>>>>> -                                 int             p_bvi;
>>>>>>>>>> -                                 char            p_sli[20];
>>>>>>>>>> -                                 int             rc;
>>>>>>>>>> -                                 char            errbuf[100];
>>>>>>>>>> -                                 int             errcode;
>>>>>>>>>> -
>>>>>>>>>> -                                 rc = OCIInitialize((ub4)
>>>>>>>>>> OCI_DEFAULT, (dvoid *)0,  /* Initialize OCI */
>>>>>>>>>> -                                         (dvoid * (*)(dvoid *,
>>>>>>>>>> size_t)) 0,
>>>>>>>>>> -                                         (dvoid * (*)(dvoid *,
>>>>>>>>>> dvoid *, size_t))0,
>>>>>>>>>> -                                         (void (*)(dvoid *, dvoid
>>>>>>>>>> *)) 0 );
>>>>>>>>>> -
>>>>>>>>>> -                       ],
>>>>>>>>>> -                       ORACLE_LIBS="$ORACLE_LIBDIR_SWITCH
>>>>>>>>>> -lclntsh -lnnz10",
>>>>>>>>>> -                       ORACLE_LIBS=
>>>>>>>>>> -               )
>>>>>>>>>> +               for oracle_version in 10 11 9 ""; do
>>>>>>>>>> +                       LIBS="$old_LIBS $ORACLE_LIBDIR_SWITCH
>>>>>>>>>> -lclntsh -lnnz${oracle_version}"
>>>>>>>>>> +                       AC_TRY_LINK([#include <oci.h>
>>>>>>>>>> +
>>>>>>>>>> +                                       static OCIEnv
>>>>>>>>>> *p_env;
>>>>>>>>>> +                                       static OCIError
>>>>>>>>>> *p_err;
>>>>>>>>>> +                                       static OCISvcCtx
>>>>>>>>>>  *p_svc;
>>>>>>>>>> +                                       static OCIStmt
>>>>>>>>>>  *p_sql;
>>>>>>>>>> +                                       static OCIDefine
>>>>>>>>>>  *p_dfn    = (OCIDefine *) 0;
>>>>>>>>>> +                                       static OCIBind
>>>>>>>>>>  *p_bnd    = (OCIBind *) 0;
>>>>>>>>>> +                               ],
>>>>>>>>>> +                               [
>>>>>>>>>> +                                         int             p_bvi;
>>>>>>>>>> +                                         char
>>>>>>>>>>  p_sli[20];
>>>>>>>>>> +                                         int             rc;
>>>>>>>>>> +                                         char
>>>>>>>>>>  errbuf[100];
>>>>>>>>>> +                                         int             errcode;
>>>>>>>>>> +
>>>>>>>>>> +                                         rc = OCIInitialize((ub4)
>>>>>>>>>> OCI_DEFAULT, (dvoid *)0,  /* Initialize OCI */
>>>>>>>>>> +                                                         (dvoid *
>>>>>>>>>> (*)(dvoid *, size_t)) 0,
>>>>>>>>>> +                                                         (dvoid *
>>>>>>>>>> (*)(dvoid *, dvoid *, size_t))0,
>>>>>>>>>> +                                                         (void
>>>>>>>>>> (*)(dvoid *, dvoid *)) 0 );
>>>>>>>>>> +
>>>>>>>>>> +                               ],
>>>>>>>>>> +                               ORACLE_LIBS="$ORACLE_LIBDIR_SWITCH
>>>>>>>>>> -lclntsh -lnnz${oracle_version}",
>>>>>>>>>> +                               ORACLE_LIBS=
>>>>>>>>>> +                       )
>>>>>>>>>> +                       if test "x$ORACLE_LIBS" != "x"; then
>>>>>>>>>> +                               break
>>>>>>>>>> +                       fi
>>>>>>>>>> +               done
>>>>>>>>>>
>>>>>>>>>>                LIBS="$old_LIBS"
>>>>>>>>>>                CFLAGS="$old_CFLAGS"
>>>>>>>>>> @@ -129,7 +134,7 @@
>>>>>>>>>>
>>>>>>>>>>                if test "x$ORACLE_LIBS" = "x"; then
>>>>>>>>>>                        AC_MSG_WARN([oracle libraries not found.
>>>>>>>>>>  Use
>>>>>>>>>> --with-oracle-lib-dir=<path>.])
>>>>>>>>>> -                       fail="$fail libclntsh libnnz10"
>>>>>>>>>> +                       fail="$fail libclntsh
>>>>>>>>>> libnnz${oracle_version}"
>>>>>>>>>>                else
>>>>>>>>>>                        sql_oracle_ldflags="${sql_oracle_ldflags}
>>>>>>>>>> $ORACLE_LIBS"
>>>>>>>>>>                        AC_MSG_RESULT(yes)
>>>>>>>>>>
>>>>>>>>>> ##################################
>>>>>>>>>> END OF THE PATCH
>>>>>>>>>>
>>>>>>>>>> 2011/1/14 Waqas Toor <waqasnasirtoor at gmail.com>:
>>>>>>>>>>> Dear Community,
>>>>>>>>>>>
>>>>>>>>>>> I am trying to compile freeradius2.1.10 with oracle
>>>>>>>>>>> instantclient11.2
>>>>>>>>>>> and having problems where it is not detecting oracle libraries
>>>>>>>>>>> and
>>>>>>>>>>> header files. where the oracle home is /opt/instantclient_11_2
>>>>>>>>>>> there are two steps that I am trying and both are failing.
>>>>>>>>>>> a: standard compile
>>>>>>>>>>>  # ./configure --with-experimental-modules
>>>>>>>>>>> --with-oracle-include-dir=/opt/instantclient_11_2/sdk/include
>>>>>>>>>>> --with-oracle-lib-dir=/opt/instantclient_11_2
>>>>>>>>>>> --with-oracle-home-dir=/opt/instantclient_11_2
>>>>>>>>>>> and getting this error
>>>>>>>>>>> === configuring in ./drivers/rlm_sql_oracle
>>>>>>>>>>>
>>>>>>>>>>> (/opt/freeradius-server-2.1.10/src/modules/rlm_sql/./drivers/rlm_sql_oracle)
>>>>>>>>>>> configure: running /bin/sh ./configure '--prefix=/usr/local'
>>>>>>>>>>> '--with-experimental-modules'
>>>>>>>>>>> '--with-oracle-include-dir=/opt/instantclient_11_2/sdk/include'
>>>>>>>>>>> '--with-oracle-lib-dir=/opt/instantclient_11_2'
>>>>>>>>>>> '--with-oracle-home-dir=/opt/instantclient_11_2'
>>>>>>>>>>> '--enable-ltdl-install' --cache-file=/dev/null --srcdir=.
>>>>>>>>>>> checking for oci.h... checking for gcc... gcc
>>>>>>>>>>> checking for C compiler default output file name... a.out
>>>>>>>>>>> checking whether the C compiler works... yes
>>>>>>>>>>> checking whether we are cross compiling... no
>>>>>>>>>>> checking for suffix of executables...
>>>>>>>>>>> checking for suffix of object files... o
>>>>>>>>>>> checking whether we are using the GNU C compiler... yes
>>>>>>>>>>> checking whether gcc accepts -g... yes
>>>>>>>>>>> checking for gcc option to accept ISO C89... none needed
>>>>>>>>>>> yes
>>>>>>>>>>> configure: WARNING: oracle libraries not found.  Use
>>>>>>>>>>> --with-oracle-lib-dir=<path>.
>>>>>>>>>>> configure: WARNING: silently not building rlm_sql_oracle.
>>>>>>>>>>> configure: WARNING: FAILURE: rlm_sql_oracle requires: libclntsh
>>>>>>>>>>> libnnz10.
>>>>>>>>>>> configure: creating ./config.status
>>>>>>>>>>> config.status: creating Makefile
>>>>>>>>>>>
>>>>>>>>>>> b: in
>>>>>>>>>>> freeradius-server-2.1.10/src/modules/rlm_sql/drivers/rlm_sql_oracle
>>>>>>>>>>> changed the Makefile.in and setting
>>>>>>>>>>> RLM_SQL_CFLAGS =  -I/opt/instantclient_11_2/sdk/include
>>>>>>>>>>> $(INCLTDL)
>>>>>>>>>>> RLM_SQL_LIBS   = -L/opt/instantclient_11_2
>>>>>>>>>>>
>>>>>>>>>>> and then make.
>>>>>>>>>>>
>>>>>>>>>>> but still getting the error.
>>>>>>>>>>>
>>>>>>>>>>> any pointers .
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>> Waqas
>>>>>>>>>>> -
>>>>>>>>>>> List info/subscribe/unsubscribe? See
>>>>>>>>>>> http://www.freeradius.org/list/users.html
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -
>>>>>>>>>> List info/subscribe/unsubscribe? See
>>>>>>>>>> http://www.freeradius.org/list/users.html
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> -
>>>>>>>> List info/subscribe/unsubscribe? See
>>>>>>>> http://www.freeradius.org/list/users.html
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> -
>>>>>> List info/subscribe/unsubscribe? See
>>>>>> http://www.freeradius.org/list/users.html
>>>>>>
>>>>>
>>>>> -
>>>>> List info/subscribe/unsubscribe? See
>>>>> http://www.freeradius.org/list/users.html
>>>>>
>>>>
>>>
>>> -
>>> List info/subscribe/unsubscribe? See
>>> http://www.freeradius.org/list/users.html
>>>
>>
>> -
>> List info/subscribe/unsubscribe? See
>> http://www.freeradius.org/list/users.html
>
> -
> List info/subscribe/unsubscribe? See
> http://www.freeradius.org/list/users.html
>




More information about the Freeradius-Users mailing list