| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| inherit eutils versionator multilib autotools |
| |
| MY_PN="${PN/-/_}" |
| MY_PV="${PV/_}" |
| MY_P="${MY_PN}-${MY_PV}" |
| |
| DESCRIPTION="Allows important system files to be stored in a fast database file rather than plain text" |
| HOMEPAGE="https://sources.redhat.com/glibc/" |
| SRC_URI="ftp://sources.redhat.com/pub/glibc/old-releases/${MY_P}.tar.gz |
| mirror://gentoo/${MY_P}-external.patch.bz2 |
| mirror://gentoo/${MY_P}-dbupgrade.patch.bz2 |
| mirror://gentoo/${MY_P}-dbopen.patch.bz2" |
| |
| LICENSE="GPL-2 LGPL-2" |
| SLOT="0" |
| KEYWORDS="~amd64 ~ppc ~x86" |
| IUSE="nls" |
| |
| # awk and make ARE needed at runtime! |
| # and this didn't compile on BSD libc either |
| RDEPEND=">=sys-libs/db-4 |
| sys-devel/make |
| >=sys-libs/glibc-2.3 |
| !>=sys-libs/glibc-2.15" |
| # We really do need gettext to compile always :-( |
| DEPEND="${RDEPEND} |
| sys-devel/gettext" |
| |
| S="${WORKDIR}/${MY_P}" |
| |
| db_getver() { |
| local DBPKG |
| DBPKG="$(best_version '>=sys-libs/db-4')" |
| echo "${DBPKG//sys-libs\/db-}" |
| } |
| |
| db_getversym() { |
| local DBVER DBSYMSUFFIX |
| [ -n "${1}" ] && DBVER="${1}" || DBVER="$(db_getver)" |
| DBVER=($(get_version_components "${DBVER}")) |
| if has_version '>=sys-libs/db-4.3'; then |
| DBSYMSUFFIX="" |
| else |
| let DBSYMSUFFIX=(${DBVER[0]}*1000)+${DBVER[1]} |
| DBSYMSUFFIX=_${DBSYMSUFFIX} |
| fi |
| echo "${DBSYMSUFFIX}" |
| } |
| |
| src_unpack() { |
| unpack ${MY_P}.tar.gz |
| EPATCH_OPTS="-p1 -d ${S}" epatch ${DISTDIR}/${MY_P}-external.patch.bz2 |
| EPATCH_OPTS="-p0 -d ${S}" epatch ${DISTDIR}/${MY_P}-dbupgrade.patch.bz2 |
| EPATCH_OPTS="-p1 -d ${S}" epatch ${DISTDIR}/${MY_P}-dbopen.patch.bz2 |
| EPATCH_OPTS="-p1 -d ${S}" epatch ${FILESDIR}/${P}-root-upgrade-only.patch |
| |
| # make sure we use the correct version of DB |
| cd "${S}" |
| DB_PV="$(db_getver)" |
| DB_SYM="$(db_getversym ${DB_PV})" |
| DB_PV_MAJORMINOR="$(get_version_component_range 1-2 ${DB_PV})" |
| sed -i configure.in \ |
| -e "s!db.h!db${DB_PV_MAJORMINOR}/db.h!g" \ |
| -e "s!db, db_version!db-${DB_PV_MAJORMINOR}, db_version${DB_SYM}!g" |
| |
| # fix ancient broken-ness |
| for f in po/Makefile.in.in ./intl/Makefile.in; do |
| egrep -q '^mkinstalldirs = .*case.*esac' ${f} && \ |
| sed -i ${f} \ |
| -e '/^mkinstalldirs = /s,\(mkinstalldirs =\).*,\1 $(top_builddir)/./mkinstalldirs,' |
| done |
| |
| # Fixes thanks to Flameeyes |
| # missing |
| cp /usr/share/gettext/config.rpath . |
| sed -i -e '/makedb_LDADD/i makedb_CFLAGS=$(AM_CFLAGS)' src/Makefile.am |
| sed -i -e '/AC_PROG_CC/a AC_PROG_CC_C_O' configure.in |
| eautoreconf |
| |
| # This is an evil target and we don't like it |
| sed -i -e '/^install-data-am:.*install-data-local/s,install-data-local,,g' "${S}"/src/Makefile.in |
| } |
| |
| src_compile() { |
| econf -C --libdir=/$(get_libdir) `use_enable nls` || die |
| emake || die |
| } |
| |
| src_install() { |
| emake -j1 DESTDIR="${D}" slibdir="/$(get_libdir)" install || \ |
| die "failed emake install" |
| |
| into /usr |
| insinto /usr/share/${PN} |
| doins db-Makefile |
| |
| dosbin "${FILESDIR}"/remake-all-db |
| |
| dodoc AUTHORS COPYING* ChangeLog INSTALL NEWS README THANKS |
| |
| dodir /usr/$(get_libdir)/ |
| mv "${D}"/$(get_libdir)/*.la "${D}"/usr/$(get_libdir)/ || \ |
| die "failed to set up .la" |
| |
| insinto /etc/sandbox.d/ |
| newins "${FILESDIR}"/sandbox.d_50nss-db 50nss-db |
| } |