summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2006-06-01 11:29:33 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2006-06-01 11:29:33 +0000
commitd4c344a7d6a2102384f067f3ce2bdbfcadef6620 (patch)
treef9e30dce1515bde85186d803b89c47bdc04e04d4 /sys-freebsd/freebsd-usbin
parentkdeedu 3.3.2 is not mips'ified (diff)
downloadhistorical-d4c344a7d6a2102384f067f3ce2bdbfcadef6620.tar.gz
historical-d4c344a7d6a2102384f067f3ce2bdbfcadef6620.tar.bz2
historical-d4c344a7d6a2102384f067f3ce2bdbfcadef6620.zip
Revision bumps to fix security issue SA-06:15.
Package-Manager: portage-2.1_rc3-r3
Diffstat (limited to 'sys-freebsd/freebsd-usbin')
-rw-r--r--sys-freebsd/freebsd-usbin/ChangeLog11
-rw-r--r--sys-freebsd/freebsd-usbin/files/SA-06-15-ypserv.patch84
-rw-r--r--sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.0-r321
-rw-r--r--sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.1-r121
-rw-r--r--sys-freebsd/freebsd-usbin/freebsd-usbin-6.0-r3.ebuild149
-rw-r--r--sys-freebsd/freebsd-usbin/freebsd-usbin-6.1-r1.ebuild151
6 files changed, 436 insertions, 1 deletions
diff --git a/sys-freebsd/freebsd-usbin/ChangeLog b/sys-freebsd/freebsd-usbin/ChangeLog
index 3096641f62b1..10684245b689 100644
--- a/sys-freebsd/freebsd-usbin/ChangeLog
+++ b/sys-freebsd/freebsd-usbin/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for sys-freebsd/freebsd-usbin
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-usbin/ChangeLog,v 1.12 2006/05/30 01:41:39 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-usbin/ChangeLog,v 1.13 2006/06/01 11:29:32 flameeyes Exp $
+
+*freebsd-usbin-6.1-r1 (01 Jun 2006)
+*freebsd-usbin-6.0-r3 (01 Jun 2006)
+
+ 01 Jun 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/SA-06-15-ypserv.patch, -freebsd-usbin-6.0-r2.ebuild,
+ +freebsd-usbin-6.0-r3.ebuild, -freebsd-usbin-6.1.ebuild,
+ +freebsd-usbin-6.1-r1.ebuild:
+ Revision bumps to fix security issue SA-06:15.
30 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+files/freebsd-usbin-6.1-gcc41.patch, freebsd-usbin-6.1.ebuild:
diff --git a/sys-freebsd/freebsd-usbin/files/SA-06-15-ypserv.patch b/sys-freebsd/freebsd-usbin/files/SA-06-15-ypserv.patch
new file mode 100644
index 000000000000..e5f62357a4d7
--- /dev/null
+++ b/sys-freebsd/freebsd-usbin/files/SA-06-15-ypserv.patch
@@ -0,0 +1,84 @@
+Index: usr.sbin/ypserv/yp_access.c
+===================================================================
+RCS file: /home/ncvs/src/usr.sbin/ypserv/yp_access.c,v
+retrieving revision 1.22
+diff -u -I__FBSDID -r1.22 yp_access.c
+--- usr.sbin/ypserv/yp_access.c 3 May 2003 21:06:42 -0000 1.22
++++ usr.sbin/ypserv/yp_access.c 31 May 2006 03:41:25 -0000
+@@ -87,12 +87,6 @@
+ "ypproc_maplist"
+ };
+
+-#ifdef TCP_WRAPPER
+-void
+-load_securenets(void)
+-{
+-}
+-#else
+ struct securenet {
+ struct in_addr net;
+ struct in_addr mask;
+@@ -177,7 +171,6 @@
+ fclose(fp);
+
+ }
+-#endif
+
+ /*
+ * Access control functions.
+@@ -219,11 +212,12 @@
+ #endif
+ {
+ struct sockaddr_in *rqhost;
+- int status = 0;
++ int status_securenets = 0;
++#ifdef TCP_WRAPPER
++ int status_tcpwrap;
++#endif
+ static unsigned long oldaddr = 0;
+-#ifndef TCP_WRAPPER
+ struct securenet *tmp;
+-#endif
+ const char *yp_procedure = NULL;
+ char procbuf[50];
+
+@@ -274,21 +268,34 @@
+ }
+
+ #ifdef TCP_WRAPPER
+- status = hosts_ctl("ypserv", STRING_UNKNOWN,
++ status_tcpwrap = hosts_ctl("ypserv", STRING_UNKNOWN,
+ inet_ntoa(rqhost->sin_addr), "");
+-#else
++#endif
+ tmp = securenets;
+ while (tmp) {
+ if (((rqhost->sin_addr.s_addr & ~tmp->mask.s_addr)
+ | tmp->net.s_addr) == rqhost->sin_addr.s_addr) {
+- status = 1;
++ status_securenets = 1;
+ break;
+ }
+ tmp = tmp->next;
+ }
+-#endif
+
+- if (!status) {
++#ifdef TCP_WRAPPER
++ if (status_securenets == 0 || status_tcpwrap == 0) {
++#else
++ if (status_securenets == 0) {
++#endif
++ /*
++ * One of the following two events occured:
++ *
++ * (1) The /var/yp/securenets exists and the remote host does not
++ * match any of the networks specified in it.
++ * (2) The hosts.allow file has denied access and TCP_WRAPPER is
++ * defined.
++ *
++ * In either case deny access.
++ */
+ if (rqhost->sin_addr.s_addr != oldaddr) {
+ yp_error("connect from %s:%d to procedure %s refused",
+ inet_ntoa(rqhost->sin_addr),
diff --git a/sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.0-r3 b/sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.0-r3
new file mode 100644
index 000000000000..5e1353bf00a8
--- /dev/null
+++ b/sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.0-r3
@@ -0,0 +1,21 @@
+MD5 b5b626909c9707d0bab0c54b50e132b9 freebsd-contrib-6.0.tar.bz2 34972594
+RMD160 3f045dd7d1ddbcf20da670051459f0a2fc508a8b freebsd-contrib-6.0.tar.bz2 34972594
+SHA256 9c76affcddb3a8257d3b612dd7cc8ff43bc7417e47e215c01909a81c79e9d443 freebsd-contrib-6.0.tar.bz2 34972594
+MD5 7c2af3af5be2f46372f9cc0efaeda4c7 freebsd-etc-6.0.tar.bz2 178941
+RMD160 48d0eb51f291e5d706ef076151964b88a9fc1796 freebsd-etc-6.0.tar.bz2 178941
+SHA256 c4bd9401dad72bd869b89aa12a61339a30746caadb741bb0d094f522ee117616 freebsd-etc-6.0.tar.bz2 178941
+MD5 3888da5da1cb329a65a3ac9d316f99ea freebsd-lib-6.0.tar.bz2 2613087
+RMD160 30bf04438a00408284f135c2670106141cae4873 freebsd-lib-6.0.tar.bz2 2613087
+SHA256 dab1140d52597f37d768d2210a49cb29db5404a7df35306462e3642074426a53 freebsd-lib-6.0.tar.bz2 2613087
+MD5 44996c2edac20108da43add45b599d94 freebsd-libexec-6.0.tar.bz2 277631
+RMD160 5121414524c9dfceab1f5ad8b8bc91c65141db82 freebsd-libexec-6.0.tar.bz2 277631
+SHA256 2eddc867d69afa6c5d0a2f3ce18d4570688b5fa49924adb478dc7d548ba8197e freebsd-libexec-6.0.tar.bz2 277631
+MD5 961eeb893125bfaa47a7d2f2fee9f2c2 freebsd-sbin-6.0.tar.bz2 1132085
+RMD160 9b194c62b4a51d37cea224f0e3fe1069f2645248 freebsd-sbin-6.0.tar.bz2 1132085
+SHA256 43568a5534e29ee442a920459052638e0ca17c69b54a984b1c023628f5f2229f freebsd-sbin-6.0.tar.bz2 1132085
+MD5 62d4513f9f16d2eadfc3f1d5be53acee freebsd-ubin-6.0.tar.bz2 1760986
+RMD160 08a26aa7afdb1482fd1711355e2ef150ecef709d freebsd-ubin-6.0.tar.bz2 1760986
+SHA256 860ecaa8cea7c1bd1a1403d6b345d751e04fed3fd7993bf69a483046844d476b freebsd-ubin-6.0.tar.bz2 1760986
+MD5 df8c3764da190437a1d47c6ff1872520 freebsd-usbin-6.0.tar.bz2 2635411
+RMD160 9a8f5cdc041df1ad2b388c432a1829b5c8adc51d freebsd-usbin-6.0.tar.bz2 2635411
+SHA256 46ac3c581fd20d9980bcf2d80aba7c2f874ad3e29058939bee0c6f1a4af8ff64 freebsd-usbin-6.0.tar.bz2 2635411
diff --git a/sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.1-r1 b/sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.1-r1
new file mode 100644
index 000000000000..07808559207c
--- /dev/null
+++ b/sys-freebsd/freebsd-usbin/files/digest-freebsd-usbin-6.1-r1
@@ -0,0 +1,21 @@
+MD5 a04643beb2d94972200d6714688930cf freebsd-contrib-6.1.tar.bz2 36017365
+RMD160 225f6ade032533d08b98b79cb29b75da2a3c74fa freebsd-contrib-6.1.tar.bz2 36017365
+SHA256 41283b7f78597cf81f98477aef04eb9cce2b130b1a2f8b5c7d647549c973c054 freebsd-contrib-6.1.tar.bz2 36017365
+MD5 ac8defbdaaab754fee70ac27c02f2c0e freebsd-etc-6.1.tar.bz2 184045
+RMD160 b9a8bea64694c040c02b74f7633dc3cd77afa400 freebsd-etc-6.1.tar.bz2 184045
+SHA256 62b06b61e526c4a939503202aaca31cbce7a3de9daec03e67dc57119527eeff7 freebsd-etc-6.1.tar.bz2 184045
+MD5 f33af43501169d9167c71c3a48a033c2 freebsd-lib-6.1.tar.bz2 2613584
+RMD160 f71aad95ef2bac094bdab9e317a99fb866fba042 freebsd-lib-6.1.tar.bz2 2613584
+SHA256 6ecb49695dc135e64cea949cb7e9b9998b15cb962797cdafc735a7e244744c37 freebsd-lib-6.1.tar.bz2 2613584
+MD5 244baf5f7ef26dbf33428970913a40f3 freebsd-libexec-6.1.tar.bz2 277860
+RMD160 bef98efbc76812cf36b55067433039f3805cfbab freebsd-libexec-6.1.tar.bz2 277860
+SHA256 38eaddc9edc36597e42ca3c63ee8a2fd6f07f96c7294aea75a9988ac5b07b357 freebsd-libexec-6.1.tar.bz2 277860
+MD5 33a8f60e595bc82c6abb7e47de1b9fa8 freebsd-sbin-6.1.tar.bz2 1156163
+RMD160 167a4545da086f52b9a8fd52e48f9ec6cfdd3150 freebsd-sbin-6.1.tar.bz2 1156163
+SHA256 fb15602238f98f6dd2b9d56bc9ece09c922b0c49599aea87620ba70c853f95d6 freebsd-sbin-6.1.tar.bz2 1156163
+MD5 f9c5fe01da2eba4696619c63eb4cad8c freebsd-ubin-6.1.tar.bz2 1763218
+RMD160 5da58c546cebf30a6b661841dbcb5b53626a4a1e freebsd-ubin-6.1.tar.bz2 1763218
+SHA256 13429ed3cc8a14a4efda69b7d82004bf993b5a14591a6129a857d627221aeef6 freebsd-ubin-6.1.tar.bz2 1763218
+MD5 ca61245fd3ec21d31ab9e41cd1ad35b7 freebsd-usbin-6.1.tar.bz2 2664570
+RMD160 98a87538790a814d0afd35bb0f848bcff574c72d freebsd-usbin-6.1.tar.bz2 2664570
+SHA256 70b4a494a72d130d641500bfa857bdf98c9a4a040da2699475902523ba5c374e freebsd-usbin-6.1.tar.bz2 2664570
diff --git a/sys-freebsd/freebsd-usbin/freebsd-usbin-6.0-r3.ebuild b/sys-freebsd/freebsd-usbin/freebsd-usbin-6.0-r3.ebuild
new file mode 100644
index 000000000000..eaf4881afb06
--- /dev/null
+++ b/sys-freebsd/freebsd-usbin/freebsd-usbin-6.0-r3.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-usbin/freebsd-usbin-6.0-r3.ebuild,v 1.1 2006/06/01 11:29:32 flameeyes Exp $
+
+inherit bsdmk freebsd flag-o-matic eutils
+
+DESCRIPTION="FreeBSD /usr/sbin tools"
+SLOT="0"
+KEYWORDS="~x86-fbsd"
+
+IUSE="atm bluetooth tcpd ssl usb ipv6 acpi ipfilter isdn pam ssl radius
+ netgraph minimal ipsec nis pam suid nat radius"
+
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ mirror://gentoo/${CONTRIB}.tar.bz2
+ mirror://gentoo/${UBIN}.tar.bz2
+ mirror://gentoo/${LIB}.tar.bz2
+ mirror://gentoo/${SBIN}.tar.bz2
+ mirror://gentoo/${ETC}.tar.bz2
+ nis? ( mirror://gentoo/${LIBEXEC}.tar.bz2 )"
+
+RDEPEND="=sys-freebsd/freebsd-lib-${RV}*
+ =sys-freebsd/freebsd-libexec-${RV}*
+ ssl? ( dev-libs/openssl )
+ tcpd? ( sys-apps/tcp-wrappers )
+ net-libs/libpcap
+ !net-fs/am-utils"
+DEPEND="${RDEPEND}
+ =sys-freebsd/freebsd-mk-defs-${RV}*
+ =sys-freebsd/freebsd-sources-${RV}*
+ sys-apps/texinfo
+ sys-devel/flex"
+
+PROVIDE="virtual/logger"
+
+S="${WORKDIR}/usr.sbin"
+
+pkg_setup() {
+ # Release crunch is something like minimal. It seems to remove everything
+ # which is not needed to work.
+ use minimal && mymakeopts="${mymakeopts} RELEASE_CRUNCH= "
+
+ use atm || mymakeopts="${mymakeopts} NO_ATM= "
+ use bluetooth || mymakeopts="${mymakeopts} NO_BLUETOOTH= "
+ use ipv6 || mymakeopts="${mymakeopts} NO_INET6= "
+ use ipfilter || mymakeopts="${mymakeopts} NO_IPFILTER= "
+ use ssl || mymakeopts="${mymakeopts} NO_OPENSSL= NO_CRYPT= "
+ use usb || mymakeopts="${mymakeopts} NO_USB= "
+ use acpi || mymakeopts="${mymakeopts} NO_ACPI= "
+ use isdn || mymakeopts="${mymakeopts} NO_I4B= "
+ use pam || mymakeopts="${mymakeopts} NO_PAM= "
+ use radius || mymakeopts="${mymakeopts} NO_RADIUS= "
+ use suid || mymakeopts="${mymakeopts} NO_SUID= "
+ use ipsec || mymakeopts="${mymakeopts} NO_IPSEC= "
+ use nis || mymakeopts="${mymakeopts} NO_NIS= "
+ use nat || mymakeopts="${mymakeopts} NO_NAT= "
+ use pam || mymakeopts="${mymakeopts} NO_PAM= "
+ use suid || mymakeopts="${mymakeopts} NO_SUID= PPP_NOSUID= "
+ use radius || mymakeopts="${mymakeopts} NO_RADIUS= "
+ use tcpd || mymakeopts="${mymakeopts} NO_WRAP= "
+
+ mymakeopts="${mymakeopts} NO_MAILWRAPPER= NO_BIND= NO_SENDMAIL= NO_PF= NO_AUTHPF= NO_LPR="
+
+ # kldxref does not build with -O2
+ replace-flags "-O?" "-O1"
+}
+
+PATCHES="${FILESDIR}/${PN}-${RV}-fixmakefiles.patch
+ ${FILESDIR}/${PN}-nowrap.patch
+ ${FILESDIR}/SA-06-15-ypserv.patch"
+
+REMOVE_SUBDIRS="
+ named named-checkzone named-checkconf rndc rndc-confgen
+ dnssec-keygen dnssec-signzone
+ tcpdchk tcpdmatch
+ sendmail praliases editmap mailstats makemap
+ sysinstall cron mailwrapper ntp bsnmpd mount_smbfs
+ tcpdump ndp traceroute pkg_install inetd
+ wpa/wpa_supplicant wpa/hostapd zic"
+
+src_unpack() {
+ freebsd_src_unpack
+ ln -s "/usr/src/sys-${RV}" "${WORKDIR}/sys"
+ ln -s "/usr/include" "${WORKDIR}/include"
+}
+
+src_install() {
+ # By creating these two directories we avoid having to do a
+ # more complex hack inside lpr/SMM.doc and nologin makefiles.
+ dodir /usr/share/doc
+ dodir /sbin
+ dodir /usr/libexec
+
+ # FILESDIR is used by some makefiles which will install files
+ # in the wrong place, just put it in the doc directory.
+ mkinstall DOCDIR=/usr/share/doc/${PF} || die "Install failed"
+
+ for util in nfs nfsmount rpcbind syslogd moused powerd; do
+ newinitd ${FILESDIR}/${util}.initd ${util}
+ [[ -e ${FILESDIR}/${util}.confd ]] && \
+ newconfd ${FILESDIR}/${util}.confd ${util}
+ done
+
+ for class in daily monthly weekly; do
+ cat - > ${T}/periodic.${class} <<EOS
+#!/bin/sh
+/usr/sbin/periodic ${class}
+EOS
+ exeinto /etc/cron.${class}
+ newexe ${T}/periodic.${class} periodic
+ done
+
+ # Install the pw.conf file to let pw use Gentoo's skel location
+ insinto /etc
+ doins "${FILESDIR}/pw.conf"
+
+ cd "${WORKDIR}/etc"
+ doins amd.map apmd.conf syslog.conf newsyslog.conf usbd.conf
+
+ insinto /etc/ppp
+ doins ppp/ppp.conf
+
+ if use isdn; then
+ insinto /etc/isdn
+ doins isdn/*
+ rm -f ${D}/etc/isdn/Makefile
+ fi
+
+ if use bluetooth; then
+ insinto /etc/bluetooth
+ doins bluetooth/*
+ rm -f ${D}/etc/bluetooth/Makefile
+ fi
+
+ # Install the periodic stuff (needs probably to be ported in a more
+ # gentooish way)
+ cd "${WORKDIR}/etc/periodic"
+
+ doperiodic daily daily/*.accounting
+ doperiodic monthly monthly/*.accounting
+}
+
+pkg_postinst() {
+ for logfile in messages security auth.log maillog lpd-errs xferlog cron \
+ debug.log slip.log ppp.log; do
+ [[ -f ${ROOT}/var/log/${logfile} ]] || touch ${ROOT}/var/log/${logfile}
+ done
+}
+
diff --git a/sys-freebsd/freebsd-usbin/freebsd-usbin-6.1-r1.ebuild b/sys-freebsd/freebsd-usbin/freebsd-usbin-6.1-r1.ebuild
new file mode 100644
index 000000000000..01e43b74f1b2
--- /dev/null
+++ b/sys-freebsd/freebsd-usbin/freebsd-usbin-6.1-r1.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-usbin/freebsd-usbin-6.1-r1.ebuild,v 1.1 2006/06/01 11:29:32 flameeyes Exp $
+
+inherit bsdmk freebsd flag-o-matic eutils
+
+DESCRIPTION="FreeBSD /usr/sbin tools"
+SLOT="0"
+KEYWORDS="~x86-fbsd"
+
+IUSE="atm bluetooth tcpd ssl usb ipv6 acpi ipfilter isdn pam ssl radius
+ netgraph minimal ipsec nis pam suid nat radius"
+
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ mirror://gentoo/${CONTRIB}.tar.bz2
+ mirror://gentoo/${UBIN}.tar.bz2
+ mirror://gentoo/${LIB}.tar.bz2
+ mirror://gentoo/${SBIN}.tar.bz2
+ mirror://gentoo/${ETC}.tar.bz2
+ nis? ( mirror://gentoo/${LIBEXEC}.tar.bz2 )"
+
+RDEPEND="=sys-freebsd/freebsd-lib-${RV}*
+ =sys-freebsd/freebsd-libexec-${RV}*
+ ssl? ( dev-libs/openssl )
+ tcpd? ( sys-apps/tcp-wrappers )
+ net-libs/libpcap"
+DEPEND="${RDEPEND}
+ =sys-freebsd/freebsd-mk-defs-${RV}*
+ =sys-freebsd/freebsd-sources-${RV}*
+ sys-apps/texinfo
+ sys-devel/flex"
+
+PROVIDE="virtual/logger"
+
+S="${WORKDIR}/usr.sbin"
+
+pkg_setup() {
+ # Release crunch is something like minimal. It seems to remove everything
+ # which is not needed to work.
+ use minimal && mymakeopts="${mymakeopts} RELEASE_CRUNCH= "
+
+ use atm || mymakeopts="${mymakeopts} NO_ATM= "
+ use bluetooth || mymakeopts="${mymakeopts} NO_BLUETOOTH= "
+ use ipv6 || mymakeopts="${mymakeopts} NO_INET6= "
+ use ipfilter || mymakeopts="${mymakeopts} NO_IPFILTER= "
+ use ssl || mymakeopts="${mymakeopts} NO_OPENSSL= NO_CRYPT= "
+ use usb || mymakeopts="${mymakeopts} NO_USB= "
+ use acpi || mymakeopts="${mymakeopts} NO_ACPI= "
+ use isdn || mymakeopts="${mymakeopts} NO_I4B= "
+ use pam || mymakeopts="${mymakeopts} NO_PAM= "
+ use radius || mymakeopts="${mymakeopts} NO_RADIUS= "
+ use suid || mymakeopts="${mymakeopts} NO_SUID= "
+ use ipsec || mymakeopts="${mymakeopts} NO_IPSEC= "
+ use nis || mymakeopts="${mymakeopts} NO_NIS= "
+ use nat || mymakeopts="${mymakeopts} NO_NAT= "
+ use pam || mymakeopts="${mymakeopts} NO_PAM= "
+ use suid || mymakeopts="${mymakeopts} NO_SUID= PPP_NOSUID= "
+ use radius || mymakeopts="${mymakeopts} NO_RADIUS= "
+ use tcpd || mymakeopts="${mymakeopts} NO_WRAP= "
+
+ mymakeopts="${mymakeopts} NO_MAILWRAPPER= NO_BIND= NO_SENDMAIL= NO_PF= NO_AUTHPF= NO_LPR="
+
+ # kldxref does not build with -O2
+ replace-flags "-O?" "-O1"
+}
+
+PATCHES="${FILESDIR}/${PN}-6.0-fixmakefiles.patch
+ ${FILESDIR}/${PN}-6.1-nowrap.patch
+ ${FILESDIR}/${P}-gcc41.patch
+ ${FILESDIR}/SA-06-15-ypserv.patch"
+
+REMOVE_SUBDIRS="
+ named named-checkzone named-checkconf rndc rndc-confgen
+ dnssec-keygen dnssec-signzone
+ tcpdchk tcpdmatch
+ sendmail praliases editmap mailstats makemap
+ sysinstall cron mailwrapper ntp bsnmpd mount_smbfs
+ tcpdump ndp traceroute pkg_install inetd
+ wpa/wpa_supplicant wpa/hostapd wpa/hostapd_cli wpa/wpa_cli
+ zic amd"
+
+src_unpack() {
+ freebsd_src_unpack
+ ln -s "/usr/src/sys-${RV}" "${WORKDIR}/sys"
+ ln -s "/usr/include" "${WORKDIR}/include"
+}
+
+src_install() {
+ # By creating these directories we avoid having to do a
+ # more complex hack
+ dodir /usr/share/doc
+ dodir /sbin
+ dodir /usr/libexec
+ dodir /usr/bin
+
+ # FILESDIR is used by some makefiles which will install files
+ # in the wrong place, just put it in the doc directory.
+ mkinstall DOCDIR=/usr/share/doc/${PF} || die "Install failed"
+
+ for util in nfs nfsmount rpcbind syslogd moused powerd; do
+ newinitd ${FILESDIR}/${util}.initd ${util}
+ [[ -e ${FILESDIR}/${util}.confd ]] && \
+ newconfd ${FILESDIR}/${util}.confd ${util}
+ done
+
+ for class in daily monthly weekly; do
+ cat - > ${T}/periodic.${class} <<EOS
+#!/bin/sh
+/usr/sbin/periodic ${class}
+EOS
+ exeinto /etc/cron.${class}
+ newexe ${T}/periodic.${class} periodic
+ done
+
+ # Install the pw.conf file to let pw use Gentoo's skel location
+ insinto /etc
+ doins "${FILESDIR}/pw.conf"
+
+ cd "${WORKDIR}/etc"
+ doins amd.map apmd.conf syslog.conf newsyslog.conf usbd.conf
+
+ insinto /etc/ppp
+ doins ppp/ppp.conf
+
+ if use isdn; then
+ insinto /etc/isdn
+ doins isdn/*
+ rm -f ${D}/etc/isdn/Makefile
+ fi
+
+ if use bluetooth; then
+ insinto /etc/bluetooth
+ doins bluetooth/*
+ rm -f ${D}/etc/bluetooth/Makefile
+ fi
+
+ # Install the periodic stuff (needs probably to be ported in a more
+ # gentooish way)
+ cd "${WORKDIR}/etc/periodic"
+
+ doperiodic daily daily/*.accounting
+ doperiodic monthly monthly/*.accounting
+}
+
+pkg_postinst() {
+ for logfile in messages security auth.log maillog lpd-errs xferlog cron \
+ debug.log slip.log ppp.log; do
+ [[ -f ${ROOT}/var/log/${logfile} ]] || touch ${ROOT}/var/log/${logfile}
+ done
+}
+