[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