From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 500BE1581F3 for ; Tue, 3 Dec 2024 10:17:40 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 56521E07D0; Tue, 3 Dec 2024 10:17:39 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3C190E07EA for ; Tue, 3 Dec 2024 10:17:38 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 369DB340C9C for ; Tue, 3 Dec 2024 10:17:37 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 713371DF4 for ; Tue, 3 Dec 2024 10:17:35 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1733221020.ef0e7ca3e531ddbfcd1a1e30c041030eb3b95527.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: net-dialup/freeradius/ X-VCS-Repository: repo/gentoo X-VCS-Files: net-dialup/freeradius/Manifest net-dialup/freeradius/freeradius-3.2.6.ebuild X-VCS-Directories: net-dialup/freeradius/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: ef0e7ca3e531ddbfcd1a1e30c041030eb3b95527 X-VCS-Branch: master Date: Tue, 3 Dec 2024 10:17:35 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 03dafc5b-edd9-4563-92a4-0847c0da8233 X-Archives-Hash: 1780c24463b6ac9139fb32d2ea9f68a2 commit: ef0e7ca3e531ddbfcd1a1e30c041030eb3b95527 Author: Jaco Kroon uls co za> AuthorDate: Mon Dec 2 12:02:25 2024 +0000 Commit: Sam James gentoo org> CommitDate: Tue Dec 3 10:17:00 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef0e7ca3 net-dialup/freeradius: add 3.2.6 Signed-off-by: Jaco Kroon uls.co.za> Signed-off-by: Sam James gentoo.org> net-dialup/freeradius/Manifest | 1 + net-dialup/freeradius/freeradius-3.2.6.ebuild | 320 ++++++++++++++++++++++++++ 2 files changed, 321 insertions(+) diff --git a/net-dialup/freeradius/Manifest b/net-dialup/freeradius/Manifest index 387fe37ebb2f..1831c5881621 100644 --- a/net-dialup/freeradius/Manifest +++ b/net-dialup/freeradius/Manifest @@ -1,2 +1,3 @@ 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 +DIST freeradius-server-3.2.6.tar.bz2 3500878 BLAKE2B 0af7cdf7fb784f2d5019f3bcb06d1d44dca046c9a4513d780ab032367001b6a67e9ea17a3a5b4609b9d7b936647e60c96e35188ba9644c4360071ac8d021bd58 SHA512 3fdd0c1bf82cf7ea2e9ee46cda1061ef06c97eddd70b75be17f05d9dc13771b339d01f140b4288632700d6315c1ac506d225d1e83a179b6f7e8338e2ae42d7e8 diff --git a/net-dialup/freeradius/freeradius-3.2.6.ebuild b/net-dialup/freeradius/freeradius-3.2.6.ebuild new file mode 100644 index 000000000000..9b97c54c339b --- /dev/null +++ b/net-dialup/freeradius/freeradius-3.2.6.ebuild @@ -0,0 +1,320 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} python3_13t ) +AUTOTOOLS_DEPEND=">=dev-build/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://www.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 + 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 +}