mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-05 14:07:27 -08:00
sys-freebsd/freebsd-ubin: Install 'man' as part of the package
Since sys-apps/man is being treecleaned, and sys-apps/man-db is bloated with dependencies that are plain broken on FreeBSD, build & install the original FreeBSD man implementation. Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
parent
875759bdc5
commit
e5f0fdfe2f
@ -0,0 +1,40 @@
|
||||
diff -dupr a/usr.bin/man/man.sh b/usr.bin/man/man.sh
|
||||
--- a/usr.bin/man/man.sh 2017-07-21 01:43:23.000000000 +0200
|
||||
+++ b/usr.bin/man/man.sh 2019-01-22 19:32:52.136578832 +0100
|
||||
@@ -883,12 +883,12 @@ search_whatis() {
|
||||
# Finds an appropriate decompressor based on extension
|
||||
setup_cattool() {
|
||||
case "$1" in
|
||||
- *.bz) cattool='/usr/bin/bzcat' ;;
|
||||
- *.bz2) cattool='/usr/bin/bzcat' ;;
|
||||
- *.gz) cattool='/usr/bin/zcat' ;;
|
||||
- *.lzma) cattool='/usr/bin/lzcat' ;;
|
||||
- *.xz) cattool='/usr/bin/xzcat' ;;
|
||||
- *) cattool='/usr/bin/zcat -f' ;;
|
||||
+ *.bz) cattool='bzcat' ;;
|
||||
+ *.bz2) cattool='bzcat' ;;
|
||||
+ *.gz) cattool='zcat' ;;
|
||||
+ *.lzma) cattool='lzcat' ;;
|
||||
+ *.xz) cattool='xzcat' ;;
|
||||
+ *) cattool='zcat -f' ;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -903,7 +903,7 @@ setup_pager() {
|
||||
if [ -n "$PAGER" ]; then
|
||||
MANPAGER="$PAGER"
|
||||
else
|
||||
- MANPAGER="more -s"
|
||||
+ MANPAGER="less -sR"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -1008,7 +1008,7 @@ SYSCTL=/sbin/sysctl
|
||||
debug=0
|
||||
man_default_sections='1:8:2:3:n:4:5:6:7:9:l'
|
||||
man_default_path='/usr/share/man:/usr/share/openssl/man:/usr/local/man'
|
||||
-cattool='/usr/bin/zcat -f'
|
||||
+cattool='zcat -f'
|
||||
|
||||
config_global='/etc/man.conf'
|
||||
|
||||
214
sys-freebsd/freebsd-ubin/freebsd-ubin-11.1-r1.ebuild
Normal file
214
sys-freebsd/freebsd-ubin/freebsd-ubin-11.1-r1.ebuild
Normal file
@ -0,0 +1,214 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit bsdmk freebsd flag-o-matic pam multilib multibuild multilib-build
|
||||
|
||||
DESCRIPTION="FreeBSD's base system source for /usr/bin"
|
||||
SLOT="0"
|
||||
IUSE="ar atm audit bluetooth ipv6 kerberos netware nis ssl usb build zfs"
|
||||
LICENSE="BSD zfs? ( CDDL )"
|
||||
|
||||
# Security Advisory and Errata patches.
|
||||
# UPSTREAM_PATCHES=()
|
||||
|
||||
if [[ ${PV} != *9999* ]]; then
|
||||
KEYWORDS="~amd64-fbsd ~x86-fbsd"
|
||||
SRC_URI="${SRC_URI}
|
||||
$(freebsd_upstream_patches)"
|
||||
fi
|
||||
|
||||
EXTRACTONLY="
|
||||
usr.bin/
|
||||
contrib/
|
||||
lib/
|
||||
etc/
|
||||
bin/
|
||||
include/
|
||||
"
|
||||
|
||||
RDEPEND="=sys-freebsd/freebsd-lib-${RV}*[usb?,bluetooth?,${MULTILIB_USEDEP}]
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
kerberos? ( virtual/krb5 )
|
||||
ar? ( >=app-arch/libarchive-3 )
|
||||
virtual/pam
|
||||
sys-libs/zlib
|
||||
>=sys-libs/ncurses-5.9:0=
|
||||
!sys-process/fuser-bsd
|
||||
!dev-util/csup
|
||||
!dev-libs/libiconv
|
||||
!sys-apps/man
|
||||
!sys-apps/man-db
|
||||
!sys-freebsd/freebsd-contrib"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/flex
|
||||
!build? ( =sys-freebsd/freebsd-sources-${RV}* )
|
||||
=sys-freebsd/freebsd-sbin-${RV}*
|
||||
=sys-freebsd/freebsd-mk-defs-${RV}*"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
>=sys-auth/pambase-20080219.1
|
||||
sys-process/cronbase"
|
||||
|
||||
S="${WORKDIR}/usr.bin"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-6.0-bsdcmp.patch"
|
||||
"${FILESDIR}/${PN}-11.1-fixmakefiles.patch"
|
||||
"${FILESDIR}/${PN}-11.0-setXid.patch"
|
||||
"${FILESDIR}/${PN}-lint-stdarg.patch"
|
||||
"${FILESDIR}/${PN}-9.1-bsdar.patch"
|
||||
"${FILESDIR}/${PN}-10.2-talk-workaround.patch"
|
||||
"${FILESDIR}/${PN}-10.2-bsdxml.patch"
|
||||
"${FILESDIR}/${PN}-11.1-man-paths.patch" )
|
||||
|
||||
# Here we remove some sources we don't need because they are already
|
||||
# provided by portage's packages or similar. In order:
|
||||
# - Archiving tools, provided by their own ebuilds
|
||||
# - ncurses stuff
|
||||
# - less stuff
|
||||
# - bind utils
|
||||
# - rsh stuff
|
||||
# - binutils gprof
|
||||
# - dc stuff
|
||||
# and the rest are misc utils we already provide somewhere else.
|
||||
REMOVE_SUBDIRS="bzip2 bzip2recover tar cpio
|
||||
gzip gprof minigzip
|
||||
lzmainfo xz xzdec
|
||||
unzip
|
||||
tput tset tabs
|
||||
less lessecho lesskey
|
||||
hesinfo host
|
||||
rsh rlogin rusers rwho ruptime
|
||||
compile_et lex vi smbutil file vacation nc ftp telnet
|
||||
c99 c89
|
||||
bc dc
|
||||
whois tftp
|
||||
addr2line bsdcat cxxfilt cxxfilt elfcopy nm readelf sdiff size soelim strings"
|
||||
|
||||
pkg_setup() {
|
||||
# Add the required source files.
|
||||
use zfs && EXTRACTONLY+="cddl/ "
|
||||
use build && EXTRACTONLY+="sys/ "
|
||||
use nis && EXTRACTONLY+="usr.sbin/ypserv/ "
|
||||
|
||||
use atm || mymakeopts="${mymakeopts} WITHOUT_ATM= "
|
||||
use audit || mymakeopts="${mymakeopts} WITHOUT_AUDIT= "
|
||||
use bluetooth || mymakeopts="${mymakeopts} WITHOUT_BLUETOOTH= "
|
||||
use ipv6 || mymakeopts="${mymakeopts} WITHOUT_INET6= WITHOUT_INET6_SUPPORT= "
|
||||
use kerberos || mymakeopts="${mymakeopts} WITHOUT_KERBEROS_SUPPORT= "
|
||||
use netware || mymakeopts="${mymakeopts} WITHOUT_IPX= WITHOUT_IPX_SUPPORT= WITHOUT_NCP= "
|
||||
use nis || mymakeopts="${mymakeopts} WITHOUT_NIS= "
|
||||
use ssl || mymakeopts="${mymakeopts} WITHOUT_OPENSSL= "
|
||||
use usb || mymakeopts="${mymakeopts} WITHOUT_USB= "
|
||||
use zfs || mymakeopts="${mymakeopts} WITHOUT_CDDL= "
|
||||
mymakeopts="${mymakeopts} WITHOUT_CLANG= WITHOUT_LZMA_SUPPORT= WITHOUT_SVN= WITHOUT_SVNLITE= WITHOUT_OPENSSH= WITHOUT_LDNS_UTILS= WITHOUT_MANDOCDB= "
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# bison installs a /usr/bin/yacc symlink ...
|
||||
# we need to remove it to avoid triggering
|
||||
# collision-protect errors
|
||||
if [[ -L ${ROOT}/usr/bin/yacc ]]; then
|
||||
rm -f "${ROOT}"/usr/bin/yacc || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
if [[ ! -e "${WORKDIR}/sys" ]]; then
|
||||
use build || ln -s "/usr/src/sys" "${WORKDIR}/sys"
|
||||
fi
|
||||
|
||||
# Rename manpage for renamed cmp
|
||||
mv "${S}"/cmp/cmp.1 "${S}"/cmp/bsdcmp.1 || die
|
||||
# Rename manpage for renamed ar
|
||||
mv "${S}"/ar/ar.1 "${S}"/ar/freebsd-ar.1 || die
|
||||
# Fix whereis(1) manpath search.
|
||||
sed -i -e 's:"manpath -q":"manpath":' "${S}/whereis/pathnames.h" || die
|
||||
|
||||
# Build a dynamic make
|
||||
sed -i -e '/^NO_SHARED/ s/^/#/' "${S}"/bmake/Makefile.inc || die
|
||||
|
||||
# Disable it here otherwise our patch wont apply
|
||||
use ar || dummy_mk ar
|
||||
|
||||
# Preparing to build xlint
|
||||
export LINT=xlint
|
||||
}
|
||||
|
||||
setup_multilib_vars() {
|
||||
if ! multilib_is_native_abi ; then
|
||||
cd "${WORKDIR}/usr.bin/ldd" || die
|
||||
export mymakeopts="${mymakeopts} PROG=ldd32 WITHOUT_MAN="
|
||||
else
|
||||
cd "${S}" || die
|
||||
fi
|
||||
"$@"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local MULTIBUILD_VARIANTS="${DEFAULT_ABI}"
|
||||
# Preparing to build addr2line, elfcopy, m4, getaddrinfo
|
||||
for dir in libelftc libpe libopenbsd libnetbsd; do
|
||||
cd "${WORKDIR}/lib/${dir}" || die
|
||||
multibuild_foreach_variant freebsd_multilib_multibuild_wrapper freebsd_src_compile -j1
|
||||
done
|
||||
|
||||
MULTIBUILD_VARIANTS=( $(multilib_get_enabled_abis) )
|
||||
multibuild_foreach_variant freebsd_multilib_multibuild_wrapper setup_multilib_vars freebsd_src_compile -j1
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${S}"/calendar/calendars || die
|
||||
for dir in $(find . -type d ! -name "." ); do
|
||||
dodir /usr/share/calendar/"$(basename ${dir})"
|
||||
done
|
||||
|
||||
local MULTIBUILD_VARIANTS=( $(multilib_get_enabled_abis) )
|
||||
multibuild_foreach_variant freebsd_multilib_multibuild_wrapper setup_multilib_vars freebsd_src_install
|
||||
|
||||
# baselayout requires these in /bin
|
||||
dodir /bin
|
||||
for bin in sed printf ; do
|
||||
mv "${D}/usr/bin/${bin}" "${D}/bin/" || die "mv ${bin} failed"
|
||||
dosym /bin/${bin} /usr/bin/${bin} || die "dosym ${bin} failed"
|
||||
done
|
||||
|
||||
for pamdfile in login passwd su; do
|
||||
newpamd "${FILESDIR}/${pamdfile}.1.pamd" ${pamdfile} || die
|
||||
done
|
||||
|
||||
cd "${WORKDIR}/etc" || die
|
||||
insinto /etc
|
||||
doins remote phones opieaccess fbtab
|
||||
|
||||
exeinto /etc/cron.daily
|
||||
newexe "${FILESDIR}/locate-updatedb-cron" locate.updatedb || die
|
||||
|
||||
# tip requires /var/spool/lock/, bug #200700
|
||||
keepdir /var/spool/lock
|
||||
|
||||
# create locate database #472468
|
||||
local f=/var/db/locate.database
|
||||
mkdir "${ED}${f%/*}" || die
|
||||
touch "${ED}${f}" || die
|
||||
fowners nobody:nobody ${f}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# We need to ensure that login.conf.db is up-to-date.
|
||||
if [[ -e "${ROOT}"etc/login.conf ]] ; then
|
||||
einfo "Updating ${ROOT}etc/login.conf.db"
|
||||
"${ROOT}"usr/bin/cap_mkdb -f "${ROOT}"etc/login.conf "${ROOT}"etc/login.conf || die
|
||||
elog "Remember to run cap_mkdb /etc/login.conf after making changes to it"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
# and if we uninstall yacc but keep bison,
|
||||
# lets restore the /usr/bin/yacc symlink
|
||||
if [[ ! -e ${ROOT}/usr/bin/yacc ]] && [[ -e ${ROOT}/usr/bin/yacc.bison ]] ; then
|
||||
ln -s yacc.bison "${ROOT}"/usr/bin/yacc || die
|
||||
fi
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user