freeradius 2.1.10 with oracle instantclient11.2
Alexandre
alxgomz at gmail.com
Fri Jan 14 13:56:16 CET 2011
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
>
More information about the Freeradius-Users
mailing list