blob: 0d25fb68e9060e59df442edebb3e8ef05f21ecc8 [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit bsdmk freebsd
DESCRIPTION="FreeBSD shared tools/files"
SLOT="0"
IUSE="doc usb zfs"
if [[ ${PV} != *9999* ]]; then
KEYWORDS="~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
fi
EXTRACTONLY="
share/
contrib/
gnu/
usr.bin/
usr.sbin/
sbin/
bin/
lib/
etc/
"
DEPEND="=sys-freebsd/freebsd-mk-defs-${RV}*
=sys-freebsd/freebsd-sources-${RV}*"
RDEPEND="sys-apps/miscfiles"
RESTRICT="strip"
S="${WORKDIR}/share"
pkg_setup() {
# Add the required source files.
use zfs && EXTRACTONLY+="cddl/ "
use doc || mymakeopts="${mymakeopts} NO_SHAREDOCS= "
use usb || mymakeopts="${mymakeopts} WITHOUT_USB= "
use zfs || mymakeopts="${mymakeopts} WITHOUT_CDDL= "
[[ ! -e /usr/bin/vtfontcvt ]] && mymakeopts="${mymakeopts} WITHOUT_VT= "
mymakeopts="${mymakeopts} NO_SENDMAIL= NO_MANCOMPRESS= NO_INFOCOMPRESS= "
}
REMOVE_SUBDIRS="mk termcap zoneinfo tabset"
PATCHES=( "${FILESDIR}/${PN}-5.3-doc-locations.patch"
"${FILESDIR}/${PN}-5.4-gentoo-skel.patch"
"${FILESDIR}/${PN}-10.0-gentoo-eapi3.patch"
"${FILESDIR}/${PN}-10.2-gnu-miscfiles.patch" )
src_prepare() {
# Remove make.conf manpage as it describes bsdmk's make.conf.
sed -i -e 's:make.conf.5::' "${S}/man/man5/Makefile"
# Remove rc.conf manpage as it describes bsd's rc.conf.
sed -i -e 's:\brc.conf.5::' "${S}/man/man5/Makefile"
sed -i -e 's:\brc.conf.local.5::' "${S}/man/man5/Makefile"
# Remove mailer.conf manpage
sed -i -e 's:mailer.conf.5::' "${S}/man/man5/Makefile"
# Remove pbm and moduli(ssh) manpages
sed -i -e 's:pbm.5::' -e 's:moduli.5::' "${S}/man/man5/Makefile"
# Remove builtins manpage
sed -i -e '/builtins\.1/d' "${S}/man/man1/Makefile"
# Remove rc manpages
sed -i -e '/rc.8/d' "${S}/man/man8/Makefile"
# Remove hv_kvp_daemon.8 manpage. It's provided by freebsd-usbin.
sed -i -e '/hv_kvp_daemon.8/d' "${S}/man/man8/Makefile"
# Don't install the arch-specific directories in subdirectories
sed -i -e '/MANSUBDIR/d' "${S}"/man/man4/man4.{i386,sparc64}/Makefile
# Remove them so that they can't be included by error
rm -rf "${S}"/mk/*.mk
# Make proper symlinks by defining the full target.
local sdir
for sdir in colldef mklocale monetdef msgdef numericdef timedef
do
sed -e 's:\${enc2}$:\${enc2}/\${FILESNAME}:g' -i \
"${S}/${sdir}/Makefile" || \
die "Error fixing ${sdir}/Makefile"
done
if [[ ! -e "${WORKDIR}/sys" ]]; then
ln -s "/usr/src/sys" "${WORKDIR}/sys" || die "failed to set sys symlink"
fi
}
src_compile() {
export ESED="/usr/bin/sed"
# libiconv support.
# i18n/csmapper/APPLE requires mkcsmapper_static
# i18n/esdb/APPLE requires mkesdb_static
for pkg in mkcsmapper_static mkesdb_static
do
cd "${WORKDIR}"/usr.bin/${pkg}
freebsd_src_compile
done
# This is a groff problem and not a -shared problem.
cd "${S}"
export GROFF_TMAC_PATH="/usr/share/tmac/:/usr/share/groff/1.22.2/tmac/"
freebsd_src_compile -j1 || die "emake failed"
}
src_install() {
mkmake -j1 DESTDIR="${D}" DOCDIR=/usr/share/doc/${PF} install || die "Install failed"
}