From 00ac4b34406552b4fbca786be59b2983b7f58669 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 19 Dec 2023 13:53:29 +0000 Subject: gentoo auto-resync : 19:12:2023 - 13:53:29 --- net-dialup/freeradius/Manifest | 3 + .../files/freeradius-3.2.3-configure-c99.patch | 38 +++ net-dialup/freeradius/freeradius-3.2.3.ebuild | 321 +++++++++++++++++++++ 3 files changed, 362 insertions(+) create mode 100644 net-dialup/freeradius/files/freeradius-3.2.3-configure-c99.patch create mode 100644 net-dialup/freeradius/freeradius-3.2.3.ebuild (limited to 'net-dialup/freeradius') diff --git a/net-dialup/freeradius/Manifest b/net-dialup/freeradius/Manifest index d18a2f7bf2a7..013ff81c524e 100644 --- a/net-dialup/freeradius/Manifest +++ b/net-dialup/freeradius/Manifest @@ -1,6 +1,9 @@ AUX freeradius-3.0.20-systemd-service.patch 2162 BLAKE2B 3aa32e5a15efa223aab7880b0cb651edca6695a3727b4df7692f656d1f34366a2a16c364c2a5b544a0ad04bca795be269d4d7dc37bc4c3c6d28387bc3e411ad8 SHA512 8a9f5ecaf559132932ed2e46151ff41e5570df3e844f33ee49004ace0aa7b458a6000ec0d1ed01c34b6236c3dde2ca72cb1031b4badcfa4d6826dbf16ca28259 +AUX freeradius-3.2.3-configure-c99.patch 1322 BLAKE2B d8513edda090e857f512db36f8560ab417e757a990b03bf11f316ec8b01b72c55f38153f03068c20dbc906e887d4f39e02770c4a4b9efb3e7826a009259108a2 SHA512 f06b018dc1a87ea9b732c08cba71e0af6b8e00f66d9546295a3d981502e735e45d8bbd414cce2cba943b338b7efbee85e7e232f97e05409b397e00f956e3ab38 AUX radius.conf-r6 599 BLAKE2B 35c97ec8a31577afc89bc4f6d7a1310624bea46c2a12ea3cc010fda237b47d5a543225f54d7d4a8b00c1e15f904b149414c597525dd8b6425f20785ca636798d SHA512 acc9b0b178096e44ebfb84228caab1c82bf2f7bb38be386755169bbfb628165b6ac57194ed5a35e566dd0a2d8425f6790b43228a715e633ae8f59e2ab2b574da AUX radius.init-r4 753 BLAKE2B 18c83f704ac30d14d56ce8a2f5e3176dcd1aab83cc4525b728e3080e81470a9b4124af49459c69070d9c3ed67a95c7593b6d01f0259403fa9ceee43abd541f7c SHA512 8b05604a72a6a0dea3e654f36b13e1ed517d0c277d128475bcca768204d720b3cd9730e5776371818b8deb0f9fd099458bf5a3276ea9b61e3dbacafaaa527892 DIST freeradius-server-3.2.2.tar.bz2 3418998 BLAKE2B 584d1ff79cf3a75c79f5b24f9e47d7c8d8caee0d706eb47bb387300172f0699f904804d963aab8c252a21fe67f7885a47659b8cd9db5292a6d4db087d72e8e38 SHA512 91dc574560a1f75cafa8bc78c0676f0e3dae7154ecbb395e0e1f6738f78d8bcfe1bff122364452798fd0434c4056fd946799b8f29a1141398bf0542a37870689 +DIST freeradius-server-3.2.3.tar.bz2 3454869 BLAKE2B 525204331a5b123dac7457c6adb755cbe9794dbff4a536ea665fc7d1cac97553e392b7b598741c2a9dd00c81decd00608499d6f25208e389b9f213f54977de84 SHA512 06767153e262a2baa2d0cc74099bc13c23b33c2316348b5dc8ec0f5834c028571bd09b8c01726a6eabeaab8fdc3050f40bfeba2d5b1c299585d1689abad365ce EBUILD freeradius-3.2.2.ebuild 8350 BLAKE2B 9de1dc5e3ec17370d5c62768d4580f9564b2a234c3da7001e4e227270d047d94a72065bf73b098cef8b2ca6f9d8b05958ace33bf072b17258d64a46267691368 SHA512 72f976d48779daf7deb8c7c36b9bfc1a6fd84c4b420f59c56ec3acbc720d82e6f3b1fa135362a03c3d4e8c41b104ee3a410de1cdd43dfc15058d6ccae9de8ccb +EBUILD freeradius-3.2.3.ebuild 8488 BLAKE2B a2d46606cee18033a8be3d637182197e56fb23d6dbc93bf8aa109bafcc63335b5973f16524645baa1c22cbcbb9e4c849c6801dec954abeb96f86f4d3e16bc5a6 SHA512 b27187ac257c5cdf6c5aa4788de5261df57f8c7cf885c1f43900974372f9cc771951d5c2052bce0299854faae6bc2d5007bb46ce1d4d54bfc87ae2008da543d9 MISC metadata.xml 547 BLAKE2B fbe65a8fc88ee08561e984bd56da19cb4aaeb4d3f37ce35f97801c58b586e706d5bb0d30d44d5857470991f96ba87d2e45bf2dbbe36060a817b5722af00d3564 SHA512 d743d214deba32cf15adb403fdda4ffc3e7cf742d6e74e9bca9bd7ddad0246e6c9ebe7999722f54d721de847924a3c038b4f4b58e1048db34b7814697a9f785e diff --git a/net-dialup/freeradius/files/freeradius-3.2.3-configure-c99.patch b/net-dialup/freeradius/files/freeradius-3.2.3-configure-c99.patch new file mode 100644 index 000000000000..395e97d84851 --- /dev/null +++ b/net-dialup/freeradius/files/freeradius-3.2.3-configure-c99.patch @@ -0,0 +1,38 @@ +https://src.fedoraproject.org/rpms/freeradius/c/1793f410aa789704b5ac0be9cf7d0eaece906d1a?branch=rawhide +https://github.com/FreeRADIUS/freeradius-server/pull/5246 + +The backtrace_symbols function expects a pointer to an array of void * +values, not a pointer to an array of a single element. Removing the +address operator ensures that the right type is used. + +This avoids an unconditional failure of this probe with compilers that +treat incompatible pointer types as a compilation error. + +Submitted upstream: + +diff --git a/configure b/configure +index ed01ee2bdd912f63..1e6d2284779cdd58 100755 +--- a/configure ++++ b/configure +@@ -13390,7 +13390,7 @@ main (void) + { + + void *sym[1]; +- backtrace_symbols(&sym, sizeof(sym)) ++ backtrace_symbols(sym, sizeof(sym)) + ; + return 0; + } +diff --git a/configure.ac b/configure.ac +index 76320213b51d7bb4..6a689711d6c90483 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2168,7 +2168,7 @@ if test "x$ac_cv_header_execinfo_h" = "xyes"; then + #include + ]], [[ + void *sym[1]; +- backtrace_symbols(&sym, sizeof(sym)) ]])],[ ++ backtrace_symbols(sym, sizeof(sym)) ]])],[ + AC_MSG_RESULT(yes) + ac_cv_lib_execinfo_backtrace_symbols="yes" + ],[ diff --git a/net-dialup/freeradius/freeradius-3.2.3.ebuild b/net-dialup/freeradius/freeradius-3.2.3.ebuild new file mode 100644 index 000000000000..56fff26e7876 --- /dev/null +++ b/net-dialup/freeradius/freeradius-3.2.3.ebuild @@ -0,0 +1,321 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +AUTOTOOLS_DEPEND=">=sys-devel/autoconf-2.69" +inherit autotools pam python-single-r1 systemd + +MY_PN=${PN}-server +MY_P=${MY_PN}-${PV} +MY_PV=$(ver_rs 1- "_") + +DESCRIPTION="Highly configurable free RADIUS server" +HOMEPAGE="https://freeradius.org/" +SRC_URI="https://github.com/FreeRADIUS/freeradius-server/releases/download/release_${MY_PV}/${MY_P}.tar.bz2" +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" + +IUSE=" + debug firebird iodbc kerberos ldap memcached mysql mongodb odbc oracle pam + postgres python readline redis samba selinux sqlite ssl systemd +" + +RESTRICT="firebird? ( bindist )" + +# NOTE: Temporary freeradius doesn't support linking with mariadb client +# libs also if code is compliant, will be available in the next release. +# (http://lists.freeradius.org/pipermail/freeradius-devel/2018-October/013228.html)a + +# TODO: rlm_mschap works with both samba library or without. I need to avoid +# linking of samba library if -samba is used. + +# TODO: unconditional json-c for now as automagic dep despite efforts to stop it +# ditto libpcap. Can restore USE=rest, USE=pcap if/when fixed. + +DEPEND=" + acct-group/radius + acct-user/radius + !net-dialup/cistronradius + dev-libs/libltdl + dev-libs/libpcre + dev-libs/json-c:= + dev-lang/perl:= + net-libs/libpcap + net-misc/curl + sys-libs/gdbm:= + sys-libs/libcap + sys-libs/talloc + virtual/libcrypt:= + firebird? ( dev-db/firebird ) + iodbc? ( dev-db/libiodbc ) + kerberos? ( virtual/krb5 ) + ldap? ( net-nds/openldap:= ) + memcached? ( dev-libs/libmemcached ) + mysql? ( dev-db/mysql-connector-c:= ) + mongodb? ( >=dev-libs/mongo-c-driver-1.13.0-r1 ) + odbc? ( dev-db/unixODBC ) + oracle? ( dev-db/oracle-instantclient[sdk] ) + pam? ( sys-libs/pam ) + postgres? ( dev-db/postgresql:= ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= ) + redis? ( dev-libs/hiredis:= ) + samba? ( net-fs/samba ) + sqlite? ( dev-db/sqlite:3 ) + ssl? ( >=dev-libs/openssl-1.0.2:=[-bindist(-)] ) + systemd? ( sys-apps/systemd:= ) +" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-radius ) +" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +# bug #721040 +QA_SONAME="usr/lib.*/libfreeradius-.*.so" + +QA_CONFIG_IMPL_DECL_SKIP=( + # Not available on Linux (bug #900048) + htonll + htonlll +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.0.20-systemd-service.patch + "${FILESDIR}"/${PN}-3.2.3-configure-c99.patch +) + +pkg_setup() { + if use python ; then + python-single-r1_pkg_setup + export PYTHONBIN="${EPYTHON}" + fi +} + +src_prepare() { + default + + # Most of the configuration options do not appear as ./configure + # switches. Instead it identifies the directories that are available + # and run through them. These might check for the presence of + # various libraries, in which case they are not built. To avoid + # automagic dependencies, we just remove all the modules that we're + # not interested in using. + # TODO: shift more of these into configure args below as things + # are a bit better now. + use ssl || { rm -r src/modules/rlm_eap/types/rlm_eap_{tls,ttls,peap} || die ; } + use ldap || { rm -r src/modules/rlm_ldap || die ; } + use kerberos || { rm -r src/modules/rlm_krb5 || die ; } + use memcached || { rm -r src/modules/rlm_cache/drivers/rlm_cache_memcached || die ; } + use pam || { rm -r src/modules/rlm_pam || die ; } + + # Drop support for python2 + rm -r src/modules/rlm_python || die + + use python || { rm -r src/modules/rlm_python3 || die ; } + #use rest || { rm -r src/modules/rlm_rest || die ; } + # Do not install ruby rlm module, bug #483108 + rm -r src/modules/rlm_ruby || die + + # These are all things we don't have in portage/I don't want to deal + # with myself. + # + # Requires TNCS library + rm -r src/modules/rlm_eap/types/rlm_eap_tnc || die + # Requires libeap-ikev2 + rm -r src/modules/rlm_eap/types/rlm_eap_ikev2 || die + # Requires some membership.h + rm -r src/modules/rlm_opendirectory || die + # ? + rm -r src/modules/rlm_sql/drivers/rlm_sql_{db2,freetds} || die + + # SQL drivers that are not part of experimental are loaded from a + # file, so we have to remove them from the file itself when we + # remove them. + usesqldriver() { + local flag=$1 + local driver=rlm_sql_${2:-${flag}} + + if ! use ${flag} ; then + rm -r src/modules/rlm_sql/drivers/${driver} || die + sed -i -e /${driver}/d src/modules/rlm_sql/stable || die + fi + } + + sed -i \ + -e 's:^#\tuser = :\tuser = :g' \ + -e 's:^#\tgroup = :\tgroup = :g' \ + -e 's:/var/run/radiusd:/run/radiusd:g' \ + -e '/^run_dir/s:${localstatedir}::g' \ + raddb/radiusd.conf.in || die + + # - Verbosity + # - B uild shared libraries using jlibtool -shared + sed -i \ + -e 's|--silent ||g' \ + -e 's:--mode=\(compile\|link\):& -shared:g' \ + scripts/libtool.mk || die + + # Crude measure to stop jlibtool from running ranlib and ar + sed -i \ + -e '/LIBRARIAN/s|".*"|"true"|g' \ + -e '/RANLIB/s|".*"|"true"|g' \ + scripts/jlibtool.c || die + + usesqldriver mysql + usesqldriver postgres postgresql + usesqldriver firebird + usesqldriver iodbc + usesqldriver odbc unixodbc + usesqldriver oracle + usesqldriver sqlite + usesqldriver mongodb mongo + + eautoreconf +} + +src_configure() { + # Do not try to enable static with static-libs; upstream is a + # massacre of libtool best practices so you also have to make sure + # to --enable-shared explicitly. + local myeconfargs=( + # Revisit confcache when not needing to use ac_cv anymore + # for automagic deps. + #--cache-file="${S}"/config.cache + + --enable-shared + --disable-ltdl-install + --disable-silent-rules + --with-system-libtool + --with-system-libltdl + + --enable-strict-dependencies + --without-rlm_couchbase + --without-rlm_securid + --without-rlm_unbound + --without-rlm_idn + #--without-rlm_json + #$(use_with rest libfreeradius-json) + + # Our OpenSSL should be patched. Avoid false-positive failures. + --disable-openssl-version-check + --with-ascend-binary + --with-udpfromto + --with-dhcp + --with-pcre + --with-iodbc-include-dir=/usr/include/iodbc + --with-experimental-modules + --with-docdir=/usr/share/doc/${PF} + --with-logdir=/var/log/radius + + $(use_enable debug developer) + $(use_with ldap edir) + $(use_with redis rlm_cache_redis) + $(use_with redis rlm_redis) + $(use_with redis rlm_rediswho) + $(use_with ssl openssl) + $(use_with systemd systemd) + ) + + # bug #77613 + if has_version app-crypt/heimdal ; then + myeconfargs+=( --enable-heimdal-krb5 ) + fi + + if use python ; then + myeconfargs+=( + --with-rlm-python3-bin=${EPYTHON} + --with-rlm-python3-config-bin=${EPYTHON}-config + ) + fi + + if ! use readline ; then + export ac_cv_lib_readline=no + fi + + #if ! use pcap ; then + # export ac_cv_lib_pcap_pcap_open_live=no + # export ac_cv_header_pcap_h=no + #fi + + econf "${myeconfargs[@]}" +} + +src_compile() { + # Verbose, do not generate certificates + emake \ + Q='' ECHO=true \ + LOCAL_CERT_PRODUCTS='' +} + +src_install() { + dodir /etc + + diropts -m0750 -o root -g radius + dodir /etc/raddb + + diropts -m0750 -o radius -g radius + dodir /var/log/radius + + keepdir /var/log/radius/radacct + diropts + + # - Verbose, do not install certificates + # - Parallel install fails (bug #509498) + emake -j1 \ + Q='' ECHO=true \ + LOCAL_CERT_PRODUCTS='' \ + R="${D}" \ + install + + if use pam ; then + pamd_mimic_system radiusd auth account password session + fi + + # bug #711756 + fowners -R radius:radius /etc/raddb + fowners -R radius:radius /var/log/radius + + dodoc CREDITS + + rm "${ED}"/usr/sbin/rc.radiusd || die + + newinitd "${FILESDIR}"/radius.init-r4 radiusd + newconfd "${FILESDIR}"/radius.conf-r6 radiusd + + if ! use systemd ; then + # If systemd builtin is not enabled we need use Type=Simple + # as systemd .service + sed -i -e 's:^Type=.*::g' \ + -e 's:^WatchdogSec=.*::g' -e 's:^NotifyAccess=all.*::g' \ + "${S}"/debian/freeradius.service + fi + + systemd_dounit "${S}"/debian/freeradius.service + + find "${ED}" \( -name "*.a" -o -name "*.la" \) -delete || die +} + +pkg_config() { + if use ssl ; then + cd "${ROOT}"/etc/raddb/certs || die + + ./bootstrap || die "Error while running ./bootstrap script." + chown root:radius "${ROOT}"/etc/raddb/certs || die + chown root:radius "${ROOT}"/etc/raddb/certs/ca.pem || die + chown root:radius "${ROOT}"/etc/raddb/certs/server.{key,crt,pem} || die + fi +} + +pkg_preinst() { + if ! has_version ${CATEGORY}/${PN} && use ssl ; then + elog "You have to run \`emerge --config =${CATEGORY}/${PF}\` to be able" + elog "to start the radiusd service." + fi +} -- cgit v1.2.3