forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net-dialup/freeradius: Bump to version 3.0.17
Package-Manager: Portage-2.3.30, Repoman-2.3.9
- Loading branch information
Lars Wendler
committed
Apr 18, 2018
1 parent
6737494
commit 38784b3
Showing
2 changed files
with
225 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
DIST freeradius-server-3.0.15.tar.gz 4818244 BLAKE2B 24cded2c4f0c6fc6a6135058c40bb2c9d100a55161f2edfc388efba991ff85ecd0f546bc2008cc0c50f2753cf93ece8e67dc3fc0fe13a8b935193ff1f68514b9 SHA512 9b92045b445032bde9d421499fdc0f6a08d602c501730c31a8d3974b21cc5c12c78abb024ed62a176c7aa7fe260fe1d19386aaf558e0fecfcd3a0ba7aa47499c | ||
DIST freeradius-server-3.0.16.tar.gz 4833927 BLAKE2B 48a991da9fec7594f1bd5bd9c713138755b746473b30d54bbbe2be06759375c1b1ba3925234ebf683a9686e5535a37122a38a708a058909c8cde22bd36641aeb SHA512 ec2fa1d28fb722d84327eed8670931f5a9220e724e0c12965f0a217ae63b0bc089ea1cfb4878420c1f2a7cf9e2abbb8d3be645c4e21170732c915f1f2953d84b | ||
DIST freeradius-server-3.0.17.tar.gz 4843020 BLAKE2B 9e1f54a9f5ad8ede471881ffe4ec987c3ac655a3c39fcd920094760c006102be02f3b7f25b14379a0bac876ac0944e8698c2781bbd804cd22d8b915b6c13a693 SHA512 381222e452288c56a1bf68953be57379a5568f0c92de022abc3004cc6a15078d46535b867b31801de3eb096ba7af92e745e79decfa7cc8151a1ffb371b1aea79 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,224 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
PYTHON_COMPAT=( python2_7 ) | ||
inherit autotools pam python-single-r1 systemd user | ||
|
||
MY_P="${PN}-server-${PV}" | ||
|
||
DESCRIPTION="Highly configurable free RADIUS server" | ||
SRC_URI=" | ||
ftp://ftp.freeradius.org/pub/radius/${MY_P}.tar.gz | ||
ftp://ftp.freeradius.org/pub/radius/old/${MY_P}.tar.gz | ||
" | ||
HOMEPAGE="http://www.freeradius.org/" | ||
|
||
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" | ||
LICENSE="GPL-2" | ||
SLOT="0" | ||
|
||
IUSE=" | ||
debug firebird iodbc kerberos ldap mysql odbc oracle pam pcap | ||
postgres python readline sqlite ssl | ||
" | ||
RESTRICT="test firebird? ( bindist )" | ||
|
||
RDEPEND="!net-dialup/cistronradius | ||
!net-dialup/gnuradius | ||
sys-devel/libtool | ||
dev-lang/perl:= | ||
sys-libs/gdbm:= | ||
sys-libs/talloc | ||
python? ( ${PYTHON_DEPS} ) | ||
readline? ( sys-libs/readline:0= ) | ||
pcap? ( net-libs/libpcap ) | ||
mysql? ( virtual/mysql ) | ||
postgres? ( dev-db/postgresql:= ) | ||
firebird? ( dev-db/firebird ) | ||
pam? ( virtual/pam ) | ||
ssl? ( dev-libs/openssl:0= ) | ||
ldap? ( net-nds/openldap ) | ||
kerberos? ( virtual/krb5 ) | ||
sqlite? ( dev-db/sqlite:3 ) | ||
odbc? ( dev-db/unixODBC ) | ||
iodbc? ( dev-db/libiodbc ) | ||
oracle? ( dev-db/oracle-instantclient-basic )" | ||
DEPEND="${RDEPEND}" | ||
|
||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" | ||
|
||
S="${WORKDIR}/${MY_P}" | ||
|
||
pkg_setup() { | ||
enewgroup radius | ||
enewuser radius -1 -1 /var/log/radius radius | ||
|
||
python-single-r1_pkg_setup | ||
export PYTHONBIN="${EPYTHON}" | ||
} | ||
|
||
src_prepare() { | ||
# 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. | ||
|
||
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 pam || { rm -r src/modules/rlm_pam || die ; } | ||
use python || { rm -r src/modules/rlm_python || 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 | ||
rm -r src/modules/rlm_eap/types/rlm_eap_tnc || die # requires TNCS library | ||
rm -r src/modules/rlm_eap/types/rlm_eap_ikev2 || die # requires libeap-ikev2 | ||
rm -r src/modules/rlm_opendirectory || die # requires some membership.h | ||
rm -r src/modules/rlm_redis{,who} || die # requires redis | ||
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 | ||
# build shared libraries using jlibtool --shared | ||
sed -i \ | ||
-e '/$(LIBTOOL)/s|--quiet ||g' \ | ||
-e 's:--mode=\(compile\|link\):& --shared:g' \ | ||
Make.inc.in || die | ||
|
||
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 | ||
|
||
default | ||
|
||
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=( | ||
--enable-shared | ||
--disable-static | ||
--disable-ltdl-install | ||
--with-system-libtool | ||
--with-system-libltdl | ||
--with-ascend-binary | ||
--with-udpfromto | ||
--with-dhcp | ||
--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 ssl openssl) | ||
) | ||
# fix bug #77613 | ||
if has_version app-crypt/heimdal; then | ||
myeconfargs+=( --enable-heimdal-krb5 ) | ||
fi | ||
|
||
use readline || export ac_cv_lib_readline=no | ||
use pcap || export ac_cv_lib_pcap_pcap_open_live=no | ||
|
||
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 (#509498) | ||
emake -j1 \ | ||
Q='' ECHO=true \ | ||
LOCAL_CERT_PRODUCTS='' \ | ||
R="${D}" \ | ||
install | ||
|
||
fowners -R root:radius /etc/raddb | ||
|
||
pamd_mimic_system radiusd auth account password session | ||
|
||
dodoc CREDITS | ||
|
||
rm "${D}/usr/sbin/rc.radiusd" || die | ||
|
||
newinitd "${FILESDIR}/radius.init-r3" radiusd | ||
newconfd "${FILESDIR}/radius.conf-r4" radiusd | ||
|
||
systemd_newtmpfilesd "${FILESDIR}"/freeradius.tmpfiles freeradius.conf | ||
systemd_dounit "${FILESDIR}"/freeradius.service | ||
|
||
find "${ED}" \( -name "*.a" -o -name "*.la" \) -delete || die | ||
} | ||
|
||
pkg_config() { | ||
if use ssl; then | ||
cd "${ROOT}"/etc/raddb/certs | ||
./bootstrap | ||
|
||
chown -R root:radius "${ROOT}"/etc/raddb/certs | ||
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 | ||
} |