[packages/gnu-radius] - updated options, added odbc and snmp support

qboosh qboosh at pld-linux.org
Sat May 30 14:17:45 CEST 2026


commit 88f28d0b8b844bd90db1645010f72d9c5311ca91
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat May 30 14:17:55 2026 +0200

    - updated options, added odbc and snmp support

 gnu-radius.spec         | 53 +++++++++++++++++++++++++++++++++++++++----------
 radius-gdbm.patch       | 26 ++++++++++++++++++++++++
 radius-odbc-types.patch | 38 +++++++++++++++++++++++++++++++++++
 3 files changed, 106 insertions(+), 11 deletions(-)
---
diff --git a/gnu-radius.spec b/gnu-radius.spec
index f14433e..f34a5a2 100644
--- a/gnu-radius.spec
+++ b/gnu-radius.spec
@@ -1,3 +1,4 @@
+# TODO: fix dbm (BDB or gdbm) support
 Summary:	GNU RADIUS Server
 Summary(pl.UTF-8):	Serwer GNU RADIUS
 Name:		gnu-radius
@@ -15,9 +16,14 @@ Source5:	%{name}-pgsql.sql
 Source6:	%{name}.sysconfig
 Patch0:		radius-info.patch
 Patch1:		radius-types.patch
+Patch2:		radius-odbc-types.patch
+Patch3:		radius-gdbm.patch
 URL:		http://www.gnu.org/software/radius/
 BuildRequires:	autoconf >= 2.71
 BuildRequires:	automake >= 1:1.16
+BuildRequires:	bison
+BuildRequires:	flex
+#BuildRequires:	gdbm-devel
 BuildRequires:	gettext-tools >= 0.21
 BuildRequires:	groff
 BuildRequires:	guile-devel >= 5:2.2
@@ -30,6 +36,8 @@ BuildRequires:	postgresql-devel
 BuildRequires:	readline-devel
 BuildRequires:	tar >= 1:1.22
 BuildRequires:	texinfo
+# or libiodbc-devel with --with-odbc=iodbc
+BuildRequires:	unixODBC-devel
 BuildRequires:	xz
 Requires(post):	fileutils
 Requires(post,preun):	/sbin/chkconfig
@@ -84,6 +92,18 @@ MySQL support module for GNU Radius.
 %description mysql -l pl.UTF-8
 Moduł obsługi baz danych MySQL dla serwera GNU Radius.
 
+%package odbc
+Summary:	ODBC support module for GNU Radius
+Summary(pl.UTF-8):	Moduł obsługi baz danych ODBC dla serwera GNU Radius
+Group:		Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description odbc
+ODBC support module for GNU Radius.
+
+%description odbc -l pl.UTF-8
+Moduł obsługi baz danych ODBC dla serwera GNU Radius.
+
 %package postgres
 Summary:	PostgreSQL support module for GNU Radius
 Summary(pl.UTF-8):	Moduł obsługi baz danych PostgreSQL dla serwera GNU Radius
@@ -136,6 +156,8 @@ Statyczne biblioteki GNU Radius.
 %setup -q -n radius-%{version}
 %patch -P0 -p1
 %patch -P1 -p1
+%patch -P2 -p1
+%patch -P3 -p1
 
 %{__rm} po/stamp-po
 
@@ -145,14 +167,19 @@ Statyczne biblioteki GNU Radius.
 %{__autoconf}
 %{__autoheader}
 %{__automake}
+# --enable-dbm=ndbm|dbm checks for dbm_open() in nbdm.h/libndbm or dbminit() in dbm.h/libdbm;
+# ndbm.h/dbm.h are gdbm headers, BDB defines dbm/ndbm compat layer in db.h,
+# so it requires patching either to use libgdbm_compat library or db.h header.
+# gdbm patch does the first.
+# ...but DBM support is broken anyway in 1.7 release.
 %configure \
-	--with-dbm \
-	--with-mysql \
-	--with-postgresql \
-	--with-sql=mysql,postgres \
+	--disable-dbm \
 	--enable-pam \
-	--enable-shadow \
 	--disable-silent-rules \
+	--enable-snmp \
+	--with-mysql \
+	--with-odbc=odbc \
+	--with-postgres
 
 %{__make}
 
@@ -164,12 +191,12 @@ install -d $RPM_BUILD_ROOT{/etc/{logrotate.d,rc.d/init.d,pam.d,sysconfig},/var/l
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
 
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/radius
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/radius
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/radius
-install %{SOURCE4} mysql.sql
-install %{SOURCE5} pgsql.sql
-install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/gnu-radius
+cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/radius
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/radius
+cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/radius
+cp -p %{SOURCE4} mysql.sql
+cp -p %{SOURCE5} pgsql.sql
+cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/gnu-radius
 
 touch $RPM_BUILD_ROOT/etc/pam.d/radius
 touch $RPM_BUILD_ROOT/var/log/rad{utmp,wtmp,ius.log}
@@ -262,6 +289,10 @@ fi
 %doc mysql.sql
 %{_libdir}/radius/%{version}/modules/mysql.so
 
+%files odbc
+%defattr(644,root,root,755)
+%{_libdir}/radius/%{version}/modules/odbc.so
+
 %files postgres
 %defattr(644,root,root,755)
 %doc pgsql.sql
diff --git a/radius-gdbm.patch b/radius-gdbm.patch
new file mode 100644
index 0000000..1eca0bb
--- /dev/null
+++ b/radius-gdbm.patch
@@ -0,0 +1,26 @@
+--- radius-1.7/configure.ac.orig	2025-12-11 12:41:09.000000000 +0100
++++ radius-1.7/configure.ac	2026-05-30 13:21:54.709703644 +0200
+@@ -406,9 +406,9 @@ rad_lib_dbm() {
+ 			[ AC_MSG_ERROR(can't find header dbm.h)
+ 			exit 0] )
+ 	AC_CHECK_FUNC(dbminit,,			
+-		AC_CHECK_LIB(dbm, dbminit,
++		AC_CHECK_LIB(gdbm_compat, dbminit,
+ 			[ AC_DEFINE(HAVE_LIBDBM) 
+-			  RA_RADIUSD_LDADD(-ldbm) ],
++			  RA_RADIUSD_LDADD(-lgdbm_compat) ],
+ 		 [AC_MSG_FAILURE([The requested library libdbm is not found or is unusable])])) 
+ }
+ 
+@@ -417,9 +417,9 @@ rad_lib_ndbm() {
+ 			[ AC_MSG_ERROR(can't find header ndbm.h)
+ 			exit 0] )
+ 	AC_CHECK_FUNC(dbm_open,, 					
+-		AC_CHECK_LIB(ndbm, dbm_open,
++		AC_CHECK_LIB(gdbm_compat, dbm_open,
+ 			[ AC_DEFINE(HAVE_LIBNDBM) 
+-			  RA_RADIUSD_LDADD(-lndbm) ],
++			  RA_RADIUSD_LDADD(-lgdbm_compat) ],
+ 		[AC_MSG_FAILURE([The requested library libndbm is not found or is unusable])]))
+ }
+ 
diff --git a/radius-odbc-types.patch b/radius-odbc-types.patch
new file mode 100644
index 0000000..eea1c8d
--- /dev/null
+++ b/radius-odbc-types.patch
@@ -0,0 +1,38 @@
+--- radius-1.7/sql/odbc.c.orig	2026-05-30 13:12:00.600467814 +0200
++++ radius-1.7/sql/odbc.c	2026-05-30 13:12:03.117944068 +0200
+@@ -141,7 +141,7 @@ rad_odbc_query(struct sql_connection *co
+ 	ODBCconn        *odata;
+ 	long            result;
+ 	SQLHSTMT        stmt;
+-	SQLINTEGER      count;
++	SQLLEN          count;
+ 
+ 	if (!conn || !conn->data)
+ 		return -1;
+@@ -181,7 +181,7 @@ rad_odbc_getpwd(struct sql_connection *c
+ 	ODBCconn        *odata;
+ 	long            result;
+ 	SQLHSTMT        stmt;
+-	SQLINTEGER      size;
++	SQLLEN          size;
+ 	SQLCHAR         passwd[128];
+ 	char           *return_passwd = NULL;
+ 
+@@ -281,7 +281,7 @@ rad_odbc_exec(struct sql_connection *con
+ 	long            result;
+ 	SQLHSTMT        stmt;
+ 	SQLSMALLINT     ccount;
+-	SQLINTEGER      rcount;
++	SQLLEN          rcount;
+ 	EXEC_DATA      *data;
+ 
+ 	if (!conn || !conn->data)
+@@ -331,7 +331,7 @@ rad_odbc_column(void *data, size_t ncol)
+ {
+ 	SQLCHAR buffer[1024];
+ 	long result;
+-	SQLINTEGER      size;
++	SQLLEN          size;
+ 	EXEC_DATA *edata = (EXEC_DATA*)data;
+ 
+ 	if (!data)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gnu-radius.git/commitdiff/88f28d0b8b844bd90db1645010f72d9c5311ca91



More information about the pld-cvs-commit mailing list