diff options
Diffstat (limited to 'net-dialup/isdn4k-utils/isdn4k-utils-3.25.ebuild')
-rw-r--r-- | net-dialup/isdn4k-utils/isdn4k-utils-3.25.ebuild | 364 |
1 files changed, 364 insertions, 0 deletions
diff --git a/net-dialup/isdn4k-utils/isdn4k-utils-3.25.ebuild b/net-dialup/isdn4k-utils/isdn4k-utils-3.25.ebuild new file mode 100644 index 0000000..3d58b29 --- /dev/null +++ b/net-dialup/isdn4k-utils/isdn4k-utils-3.25.ebuild @@ -0,0 +1,364 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +WANT_AUTOCONF="2.1" +WANT_AUTOMAKE="none" + +inherit eutils multilib linux-info autotools git-2 + +MY_PV="${PV/*_pre/}" +MY_P="${PN}-013a7b6" + +FW_DIR="/lib/firmware" + +DESCRIPTION="ISDN4Linux Utils" +HOMEPAGE="http://www.misdn.eu/?p=isdn4k-utils.git" + +EGIT_REPO_URI="git://git.misdn.eu/isdn4k-utils.git" +EGIT_COMMIT="a616866c78d01e27d55d0d0b88ee3b8e877272cb" +EGIT_BRANCH="master" + +KEYWORDS="~amd64 ~x86" +LICENSE="GPL-2" +IUSE="X activefilter mschap ipppd isdnlog eurofile usb pcmcia" +# TODO: mysql postgres oracle radius +SLOT="0" + +# mysql? ( virtual/mysql ) +# oracle? ( dev-db/oracle-instantclient-basic ) +# postgres? ( dev-db/postgresql ) + +DEPEND="virtual/linux-sources + sys-libs/ncurses + sys-libs/gdbm + dev-lang/tcl + app-text/rman + eurofile? ( net-ftp/ftpbase ) + ipppd? ( mschap? ( dev-libs/openssl ) ) + ipppd? ( activefilter? ( >=virtual/libpcap-0.9.3 ) ) + X? ( + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXmu + x11-libs/libXt + x11-misc/imake + x11-proto/xextproto + x11-proto/xproto + )" + +RDEPEND="${DEPEND} + ipppd? ( net-dialup/ppp ) + X? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXext + x11-libs/libXp + x11-libs/libXpm + ) + pcmcia? ( virtual/pcmcia )" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + # check kernel config + CONFIG_CHECK="~ISDN ~ISDN_I4L" + if use ipppd; then + CONFIG_CHECK="${CONFIG_CHECK} ~ISDN_PPP" + use activefilter && CONFIG_CHECK="${CONFIG_CHECK} ~IPPP_FILTER" + fi + use eurofile && CONFIG_CHECK="${CONFIG_CHECK} ~X25 ~ISDN_X25" + get_version || die "check kernel config failed" # config checked later in pkg_postinst + + # Get country code from I4L_CC variable + # default country: DE (Germany) + I4L_CC=$(echo -n "${I4L_CC}" | tr "[:lower:]" "[:upper:]") + [ -z "${I4L_CC}" ] && I4L_CC="DE" + I4L_CC_LOW=$(echo -n "${I4L_CC}" | tr "[:upper:]" "[:lower:]") + + # Get language from I4L_LANG variable ('de' or 'en') + if [ -z "${I4L_LANG}" ]; then + case "${I4L_CC}" in + AT|CH|DE) + I4L_LANG="DE" + ;; + *) + I4L_LANG="EN" + ;; + esac + else + I4L_LANG=$(echo -n "${I4L_LANG}" | tr "[:lower:]" "[:upper:]") + [ "${I4L_LANG}" = "DE" -o "${I4L_LANG}" = "EN" ] || I4L_LANG="EN" + fi +} + +src_unpack() { + git-2_src_unpack + cd "${S}" + + # apply pcap patch (bug #99190) + use ipppd && use activefilter && \ + epatch "${FILESDIR}/ipppd-pcap-0.9.3.patch" + + # apply broken #if logic patch for eiconctrl.c + epatch "${FILESDIR}/eiconctrl-3.23_pre20120508.patch" + + # patch all Makefiles to use our CFLAGS + find . -name "Makefile*" -type f | \ + xargs -r sed -i -e "s:^\(CFLAGS.*=.*-Wall\) -O2:\1 \$(MYCFLAGS):g" \ + -e "s:^\(CFLAGS.*=.*\) -O[26] -fomit-frame-pointer:\1 \$(MYCFLAGS):g" \ + -e "s:^\(CFLAGS.*=.*\) -fomit-frame-pointer -O2:\1 \$(MYCFLAGS):g" \ + -e "s:^\(CFLAGS.*=.*\) -g -Wall:\1 \$(MYCFLAGS) -Wall:g" \ + -e "s:^\(CFLAGS.*=.*\) -Wall -g:\1 -Wall \$(MYCFLAGS):g" \ + -e "s:^\(CFLAGS.*=.*-Wall.*\) -O2 -g:\1 \$(MYCFLAGS):g" \ + -e "s:^\(CFLAGS.*= -Wall\)$:\1 \$(MYCFLAGS):g" \ + -e "s:^\(CFLAGS.*=\) -g$:\1 \$(MYCFLAGS):g" || die "sed failed" + + # install our config + case "${I4L_CC}" in + DE|AT|NL|LU|CH) + # These countries are specially supported in the isdnlog source. + sed -e "s:^CONFIG_ISDN_LOG_XX=:CONFIG_ISDN_LOG_${I4L_CC}=:g" \ + -e "s:^\(CONFIG_ISDN_LOG_CC_\)..=:\1${I4L_LANG}=:g" \ + -e "s:^CONFIG_ISDN_LOG_CC=.*$:#:g" \ + < "${FILESDIR}"/config-${PV} > .config || die "failed to modify .config" + ;; + *) + # Others get a generic isdnlog. + sed -e "s:^\(CONFIG_ISDN_LOG_CC=\).*$:\1'${I4L_CC_LOW}':g" \ + -e "s:^\(CONFIG_ISDN_LOG_CC_\)..=:\1${I4L_LANG}=:g" \ + < "${FILESDIR}"/config-${PV} > .config || die "failed to modify .config" + ;; + esac + + # build X clients + use X || \ + sed -i -e "s:^\(CONFIG_BUILDX11=.*\)$:# \1:g" \ + -e "s:^\(CONFIG_XISDNLOAD=.*\)$:# \1:g" \ + -e "s:^\(CONFIG_XMONISDN=.*\)$:# \1:g" .config + + # build ipppd + if use ipppd; then + use activefilter || \ + sed -i -e "s:^\(CONFIG_IPPP_FILTER=.*\)$:# \1:g" .config + use mschap || \ + sed -i -e "s:^\(CONFIG_IPPPD_MSCHAP=.*\)$:# \1:g" .config + else + sed -i -e "s:^\(CONFIG_IPPPD=.*\)$:# \1:g" \ + -e "s:^\(CONFIG_IPPPSTATS=.*\)$:# \1:g" .config + fi + + # build isdnlog + use isdnlog || sed -i -e "s:^\(CONFIG_ISDNLOG=.*\)$:# \1:g" .config + + # build eurofile (etf) + use eurofile || sed -i -e "s:^\(CONFIG_EUROFILE=.*\)$:# \1:g" .config + + # set firmware location + sed -i -e "s:^\(CONFIG_FIRMWAREDIR=\).*$:\1'${FW_DIR}':g" .config + + # selecting database support for isdnlog (only ONE is possible) + #use mysql || sed -i -e "s:^\(CONFIG_ISDNLOG_MYSQL.*=.*\)$:# \1:g" .config + #use oracle || sed -i -e "s:^\(CONFIG_ISDNLOG_ORACLE.*=.*\)$:# \1:g" .config + #use postgres || sed -i -e "s:^\(CONFIG_ISDNLOG_POSTGRES.*=.*\)$:# \1:g" .config + + # Patch in order to make generic config for countries which are not known to isdnlog source + sed -i -e "s:\$(INSTALL_DATA) rate-:-\$(INSTALL_DATA) rate-:g" \ + -e "s:\$(INSTALL_DATA) holiday-:-\$(INSTALL_DATA) holiday-:g" isdnlog/Makefile.in + + # Patch path to isdnlog docs + sed -i -e "s:^\(CONFIG_ISDNLOG_DOCDIR=\).*$:\1'/usr/share/doc/${PF}/isdnlog':g" .config + + # add --libdir to configure call in Makefile + sed -i -e "s:\(\./configure \):\1--libdir=/usr/$(get_libdir) :g" Makefile + + # Fixing /usr/lib to /usr/$(get_libdir} (for multilib-strict) + sed -i -e "s:/usr/lib:/usr/$(get_libdir):g" isdnctrl/Makefile.in + + # Fixing location of openssl-headers + sed -i -e "s:<ssl/:<openssl/:g" ipppd/chap_ms.c + + # disable creation of /dev nodes + sed -i -e "s:\(sh scripts/makedev.sh\):echo \1:g" Makefile + sed -i -e "s:^\([[:space:]]*\)\(.*mknod.*capi20.*\)\$:\1# \2:g" \ + -e "s:^\([[:space:]]*\)\(.*rm.*capi20.*\)\$:\1# \2:g" \ + -e "s:^\([[:space:]]*\)\(.*chgrp.*capi20.*\)\$:\1true # \2:g" scripts/makedev.sh + + # if specified, convert all relevant files to UTF-8 + # 2006-02-04: commented out because upstream switched to UTF-8 + #if use unicode; then + # einfo "Converting configs and docs to UTF-8" + # for i in isdnlog/samples/{isdn,rate}.conf* isdnlog/*-??.dat \ + # Mini-FAQ/*.txt FAQ/_howto/{pppbind,vbox_sound,xp-howto}.txt \ + # eurofile/TODO isdnlog/{README,Isdn,.country-alias}; do + # iconv -f latin1 -t utf8 -o "${i}~" "${i}" && mv -f "${i}~" "${i}" || rm -f "${i}~" + # done + # for i in isdnlog/TODO; do + # iconv -f cp850 -t utf8 -o "${i}~" "${i}" && mv -f "${i}~" "${i}" || rm -f "${i}~" + # done + #fi + + # run autoconf + einfo "Running autoconf" + for i in act2000 divertctrl doc eicon eurofile FAQ hisax icn imon ipppd \ + ipppstats iprofd isdnctrl isdnlog loop isdnlog isdnlog/client \ + isdnlog/tools/cdb isdnlog/tools/dest isdnlog/tools/zone; do + einfo " Updating ${i}" + pushd "${i}" >/dev/null + eautoconf || die "eautoconf failed in dir ${i}" + popd >/dev/null + done +} + +src_compile() { + emake -j1 MYCFLAGS="${CFLAGS}" subconfig || die "make subconfig failed" + emake -j1 MYCFLAGS="${CFLAGS}" || die "make failed" +} + +src_install() { + keepdir /var/lib/isdn + dodir /usr/sbin "${FW_DIR}" + + use isdnlog && dodir /usr/share/isdn + (use isdnlog || use eurofile) && dodir /etc/isdn + (use X || use isdnlog || use eurofile) && dodir /usr/bin + + make DESTDIR="${D}" install || die "make install failed" + + # remove obsolete firmware files (these are in net-dialup/isdn-firmware) + rm -f "${D}${FW_DIR}"/{bip1120,dnload,ds4bri,dspdload,loadpg,pc_??_ca,prload,te_????}.* + + # remove obsolete symlink + rm -f "${D}/usr/lib/X11/app-defaults" + rmdir --ignore-fail-on-non-empty "${D}/usr/lib/X11" + + # install USB hotplug stuff + if use usb; then + insinto /etc/hotplug/blacklist.d + newins "${FILESDIR}/isdn.blacklist" isdn + fi + + # install PCMCIA stuff + if use pcmcia; then + insinto /etc/pcmcia + newins "${FILESDIR}/isdn.pcmcia.conf" isdn.conf + exeinto /etc/pcmcia + newexe "${FILESDIR}/isdn.pcmcia" isdn + fi + + # install init-scripts + configs + insinto /etc + newinitd "${FILESDIR}/isdn.initd" isdn + newconfd "${FILESDIR}/isdn.confd" isdn + newinitd "${FILESDIR}/hisax.initd" hisax + doins "${FILESDIR}/hisax.conf" + + # install docs (base) + dodoc NEWS README Mini-FAQ/isdn-faq.txt scripts/makedev.sh FAQ/_howto/xp* + + # install ipppd stuff + if use ipppd; then + newinitd "${FILESDIR}"/net.ippp0 net.ippp0 + insinto /etc/ppp + doins "${FILESDIR}"/{ioptions,options.ippp0} + docinto ipppd + dodoc LEGAL.ipppcomp ipppd/{README,README.*.ORIG,NOTES.IPPPD} ipppcomp/README.LZS # ipppd/README.RADIUS + docinto ipppd/example + dodoc FAQ/_example/*.txt + docinto ipppd/howto + dodoc FAQ/_howto/{dns*,i4l_ipx*,isdn*,lan*,leased*,masq*,mppp*,ppp*,route*} + fi + + # install isdnlog stuff + if use isdnlog; then + newinitd "${FILESDIR}/isdnlog.initd" isdnlog.contr0 + newconfd "${FILESDIR}/isdnlog.confd" isdnlog.contr0 + + insinto /usr/share/isdn + doins isdnlog/*.dat + + insinto /etc/logrotate.d + newins "${FILESDIR}/isdnlog.logrotated" isdnlog + + insinto /etc/isdn # install example isdnlog configs + cp -f "${D}/etc/isdn/isdnlog.isdnctrl0.options" "${D}/etc/isdn/isdnlog.options.example" + mv -f "${D}/etc/isdn/isdnlog.isdnctrl0.options" "${D}/etc/isdn/isdnlog.options.contr0" + doins isdnlog/samples/{isdn,rate}.conf.{at,de,lu,nl,no,pl} + newins isdnlog/samples/isdn.conf isdn.conf.unknown + if [ -f "isdnlog/samples/isdn.conf.${I4L_CC_LOW}" ]; then + newins "isdnlog/samples/isdn.conf.${I4L_CC_LOW}" isdn.conf + else + doins isdnlog/samples/isdn.conf + fi + if [ -f "isdnlog/samples/rate.conf.${I4L_CC_LOW}" ]; then + newins "isdnlog/samples/rate.conf.${I4L_CC_LOW}" rate.conf + fi + sed -i -e "s:/usr/lib/isdn/:/usr/share/isdn/:g" "${D}"/etc/isdn/isdn.conf* + + docinto isdnlog + dodoc isdnlog/{BUGS,CREDITS,FAQ,Isdn,NEWS,README*,TODO} + dodoc FAQ/_howto/win* isdnlog/samples/provider + docinto isdnlog/areacode + dodoc areacode/*.doc + docinto isdnlog/contrib/isdnbill + dodoc isdnlog/contrib/isdnbill/{*.isdnbill,*.gz} + docinto isdnlog/contrib/winpopup + dodoc isdnlog/contrib/winpopup/* + + #if use oracle; then + # docinto isdnlog/oracle + # dodoc isdnlog/isdnlog/oracle/*.sql + #fi + fi + + # install eurofile stuff + if use eurofile; then + docinto eurofile + dodoc eurofile/{CHANGES,INSTALL,README*,TODO} + newdoc eurofile/src/wuauth/README README.AUTHLIB + docinto eurofile/scripts + dodoc eurofile/scripts/{eft_useradd,check_system,ix25test,eftd.sh,eftp.sh} + fi +} + +pkg_postinst() { + elog + elog "Please edit:" + elog + elog "- /etc/conf.d/isdn general config for init-script" + elog "- /etc/hisax.conf if you have hisax supported cards" + if use ipppd; then + elog "- /etc/ppp/* critical if you need networking" + fi + elog + if use isdnlog; then + elog "For isdnlog you should edit:" + elog + elog "- /etc/conf.d/isdnlog.contr0" + elog "- /etc/isdn/isdnlog.options.contr0" + elog "- /etc/isdn/*.conf" + elog + fi + elog "/etc/init.d/isdn will save and restore your isdnctrl config." + elog "it will also handle the modem-register daemon." + elog + elog "/etc/init.d/hisax will load and initialize your hisax based" + elog "cards. If you have such cards, please edit /etc/hisax.conf" + elog "and add the hisax init-script to your default runlevel." + elog + if use ipppd; then + elog "/etc/init.d/net.ippp0 will start synchronous PPP connections" + elog "which you need to set up using isdnctrl first!" + elog + fi + if use isdnlog; then + elog "/etc/init.d/isdnlog.contr0 starts and stops isdnlog for contr0" + elog "You can symlink it to isdnlog.contr1 and copy the corresponding" + elog "configs if you have more than one card." + elog + fi + elog "If any of the following kernel configuration options is missing, you" + elog "should reconfigure and rebuild your kernel before using isdn4k-utils." + linux-info_pkg_setup + elog +} |