blob: c188dda8cbf0ace6a12ea08798bd2fe2fa1c1e59 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-ubin/freebsd-ubin-8.0-r1.ebuild,v 1.1 2011/07/05 16:17:23 aballier Exp $
EAPI=2
inherit bsdmk freebsd flag-o-matic pam
DESCRIPTION="FreeBSD's base system source for /usr/bin"
SLOT="0"
KEYWORDS="~sparc-fbsd ~x86-fbsd"
IUSE="ar atm audit bluetooth ipv6 kerberos netware nis ssl usb build zfs"
LICENSE="BSD zfs? ( CDDL )"
SRC_URI="mirror://gentoo/${UBIN}.tar.bz2
mirror://gentoo/${CONTRIB}.tar.bz2
mirror://gentoo/${LIB}.tar.bz2
mirror://gentoo/${ETC}.tar.bz2
mirror://gentoo/${BIN}.tar.bz2
mirror://gentoo/${INCLUDE}.tar.bz2
zfs? ( mirror://gentoo/${CDDL}.tar.bz2 )
build? ( mirror://gentoo/${SYS}.tar.bz2 )"
RDEPEND="=sys-freebsd/freebsd-lib-${RV}*[usb?,bluetooth?]
ssl? ( dev-libs/openssl )
kerberos? ( virtual/krb5 )
ar? ( app-arch/libarchive )
virtual/pam
sys-libs/zlib
!dev-util/csup"
DEPEND="${RDEPEND}
sys-devel/flex
!build? ( =sys-freebsd/freebsd-sources-${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}-6.0-fixmakefiles.patch"
"${FILESDIR}/${PN}-setXid.patch"
"${FILESDIR}/${PN}-lint-stdarg.patch"
"${FILESDIR}/${PN}-6.0-kdump-ioctl.patch"
"${FILESDIR}/${PN}-8.0-xinstall.patch"
"${FILESDIR}/${PN}-8.0-bsdar.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
# and the rest are misc utils we already provide somewhere else.
REMOVE_SUBDIRS="bzip2 bzip2recover tar cpio
gzip gprof
tput tset tabs
less lessecho lesskey
dig hesinfo nslookup nsupdate host
rsh rlogin rusers rwho ruptime
compile_et lex vi smbutil file vacation nc ftp telnet
c99 c89
whois tftp"
pkg_setup() {
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= "
}
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
fi
}
src_prepare() {
use build || ln -s "/usr/src/sys-${RV}" "${WORKDIR}/sys"
# 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"
# Build a dynamic make
sed -i -e '/^NO_SHARED/ s/^/#/' "${S}"/make/Makefile || die
# Disable it here otherwise our patch wont apply
use ar || dummy_mk ar
}
src_install() {
freebsd_src_install
# baselayout requires these in /bin
dodir /bin
for bin in sed; 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"
insinto /etc
doins remote phones opieaccess fbtab || die
exeinto /etc/cron.daily
newexe "${FILESDIR}/locate-updatedb-cron" locate.updatedb || die
}
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
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
fi
}
|