Just successfully installed =net-dialup/freeradius-2.0.5 (ldap postgres ssl threads udpfromto -bindist -debug -edirectory -firebird -frascend -frxp -kerberos -mysql -pam -snmp) on g/fbsd-8.0. Reproducible: Always
emerge freeradius-2.1.12 gave me this error: /bin/sh /usr/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/libtool --mode=compile i686-gentoo-freebsd8.2-gcc -O2 -pipe -march=prescott -mtune=prescott -lpthread -Wall -D_GNU_SOURCE -DNDEBUG -D_LIBRADIUS -I/usr/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src -c dict.c base_compile+= i686-gentoo-freebsd8.2-gcc: not found base_compile+= -O2: not found base_compile+= -pipe: not found base_compile+= -march=prescott: not found base_compile+= -mtune=prescott: not found base_compile+= -lpthread: not found base_compile+= -Wall: not found base_compile+= -D_GNU_SOURCE: not found base_compile+= -DNDEBUG: not found base_compile+= -D_LIBRADIUS: not found eval: base_compile+= -I/usr/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src: not found base_compile+= -c: not found CC_quoted+= i686-gentoo-freebsd8.2-gcc: not found CC_quoted+= i686-gentoo-freebsd8.2-g++: not found libtool: compile: you must specify a compilation command libtool: compile: Try `libtool --help --mode=compile' for more information. This error is cause because - libtool script is built to target bash - but freeradius call it using /bin/sh [1], which cause an error when /bin/sh is not /bin/bash Possible fix would be 1. emake SHELL="${EPREFIX}"/bin/bash ... or 2. Fix some files to generate sh-compatible libtool However, the 2nd solution is a bit difficult for Gentoo, because elibtoolize is generating libtool script.. Alin, Could you tell me your comments on this problem? Or, if you don't mind, I'd like to take the 1st solution above. [1] aclocal.m4 has follwing lines _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) <snip> LIBTOOL='$(SHELL) $(top_builddir)/libtool' These line lead to call libtool using /bin/sh
(In reply to comment #1) > This error is cause because > > - libtool script is built to target bash > - but freeradius call it using /bin/sh [1], which cause an error when > /bin/sh is not /bin/bash > > Possible fix would be > > 1. emake SHELL="${EPREFIX}"/bin/bash ... Thank you for attention. Same change is needed to install phase: --- freeradius-2.1.12.ebuild 2011-11-20 20:54:06.000000000 +0200 +++ freeradius-2.1.12.ebuild 2012-02-27 17:08:50.959146732 +0200 @@ -118,7 +118,7 @@ } src_compile() { - emake -j1 || die "emake failed" + emake -j1 SHELL="${EPREFIX}"/bin/bash || die "emake failed" } src_install() { @@ -133,9 +133,9 @@ dodir /var/run/radiusd diropts - make R="${D}" install || die "make install failed" + make R="${D}" SHELL="${EPREFIX}"/bin/bash install || die "make install failed" sed -i -e 's:^#user *= *nobody:user = radiusd:;s:^#group *= *nobody:group = radiusd:' \ - "${D}"/etc/raddb/radiusd.conf + "${D}"/etc/raddb/radiusd.conf chown -R root:radiusd "${D}"/etc/raddb/* pamd_mimic_system radiusd auth account password session The last change is not my :)
Created attachment 315265 [details] build.log for net-dialup/freeradius-2.1.12 on g/fbsd9.0 freeradius seems to have the same problem as openssh in bug 391011. The tail of attached build.log follow libtool: compile: i686-gentoo-freebsd9.0-gcc -O2 -march=i686 -mtune=core2 -pipe -lpthread -Wall -D_GNU_SOURCE -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DNDEBUG -I/var/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src -c rlm_unix.c -fPIC -DPIC -o .libs/rlm_unix.o rlm_unix.c: In function 'groupcmp': rlm_unix.c:83:14: warning: unused variable 'vp' rlm_unix.c:81:9: warning: unused variable 'username' rlm_unix.c: In function 'unix_accounting': rlm_unix.c:471:32: error: 'struct utmpx' has no member named 'ut_name' rlm_unix.c:472:15: error: 'struct utmpx' has no member named 'ut_name' rlm_unix.c:472:59: error: 'struct utmpx' has no member named 'ut_name' rlm_unix.c:474:16: error: 'struct utmpx' has no member named 'ut_name' rlm_unix.c:474:60: error: 'struct utmpx' has no member named 'ut_name' rlm_unix.c:503:16: error: 'struct utmpx' has no member named 'ut_name' rlm_unix.c:503:44: error: 'struct utmpx' has no member named 'ut_name' rlm_unix.c:557:5: error: 'struct utmpx' has no member named 'ut_name' gmake[6]: *** [rlm_unix.lo] Error 1 gmake[6]: Leaving directory `/var/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src/modules/rlm_unix' gmake[5]: *** [rlm_unix] Error 2 gmake[5]: Leaving directory `/var/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src/modules' gmake[4]: *** [all] Error 2 gmake[4]: Leaving directory `/var/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src/modules' gmake[3]: *** [modules] Error 2 gmake[3]: Leaving directory `/var/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/var/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12/src' gmake[1]: *** [src] Error 2 gmake[1]: Leaving directory `/var/tmp/portage/net-dialup/freeradius-2.1.12/work/freeradius-server-2.1.12' gmake: *** [all] Error 2
Created attachment 315267 [details, diff] freeradius-2.1.12-fbsd9-utmp.patch This patch from freebsd's port fixes the problem with utmpx.
Upstream fix available. https://github.com/alandekok/freeradius-server/commit/30e6252c3d9378c1f9e1aed4c5ccefa164563158 https://github.com/alandekok/freeradius-server/commit/c790b364ecc8387838c0c5c848cc393f7b652d68
Okay I'm going to look into these and most likely fix them with 2.2.0.
(In reply to comment #6) > Okay I'm going to look into these and most likely fix them with 2.2.0. 2.2.0 was fine here expect that it depends on sys-libs/pam instead of virtual/pam. Can we replace it with virtual one?
Replaced to virtual/pam and keyworded.