# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=2 inherit toolchain-funcs DESCRIPTION="the bind library for interix" HOMEPAGE="https://dev.gentoo.org/~mduft" SRC_URI="" LICENSE="ISC BSD-4" SLOT="0" KEYWORDS="-* ~x86-interix" IUSE="" DEPEND="" RDEPEND="" src_install() { # scratch together the pieces of the bind installation from all over the # place on different interix systems, and copy the files to the local # prefix installation. if [[ -d /usr/local/bind ]]; then # layout as of vista onwards. local incdir="/usr/local/bind/include" local libdir="/usr/local/lib/bind" else # layout of xp and server 2003 local incdir="/usr/local/include/bind" local libdir="/usr/local/lib/bind" # windows xp has a silly bug in the installer it seems: [[ -x "${incdir}/sys" ]] || chmod a+x "${incdir}/sys" fi insinto /usr/include/bind for obj in "${incdir}"/*; do [[ -f "${obj}" ]] && doins "${obj}" [[ -d "${obj}" ]] && doins -r "${obj}" done cd "${T}" # wrap some symbols for the sake of configure link test. the libbind names # symbols differently than required (some extra underscores), and renames # them through the headers. however this is not enough, if configure checks # don't include header files ... :( $(tc-getCC) -c "${FILESDIR}"/weak.s mkdir "${T}"/link || die "cannot mkdir" cd "${T}"/link # now for the _magic_ part... ar -x "${libdir}/libbind.a" # permissions are _totally_ broken here... chmod 666 *.o # remove the gethostent.o file, since the contained gethostbyname* functions # seem to not work on older interixen, whereas the libc contained versions # do work well enough. rm gethostent.o # find libdb.a from the system - need the _oold_ one... local mydb= for mydb in \ "/usr/lib/x86/libdb.a" \ "/usr/lib/libdb.a"; do if test -f "${mydb}"; then break fi done # this needs a _stoneage_ berkeley db, so we really need to take the # systems instead if installing db ourselves. newer db's don't have the # requested symbols (they do support it, but with a different name). Another # option would be to generate wrapper symbols for the things needed, but i'd # rather avoid doing so, since i don't know them all. $(tc-getCC) -shared -Wl,-h,libbind.so.${PV} -o libbind.so.${PV} *.o \ ../weak.o "${mydb}" || die "cannot link shared libbind" dolib.so libbind.so.${PV} # to prevent accidental linking during configure tests of packages which are # not prepared for itx-bind, install things in a separate directory. # packages need to explicitly add this and the include directory for this to # work! dosym ../libbind.so.${PV} /usr/lib/bind/libbind.so dosym ../libbind.so.${PV} /usr/lib/bind/libresolv.so # mean, huh? :) }