summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2010-03-11 11:26:38 +0000
committerAlexis Ballier <aballier@gentoo.org>2010-03-11 11:26:38 +0000
commite5f72424f116577215681b07be6035d5a92cc5a9 (patch)
tree0ded02a9441881a0c0eeb84c05e46a7c9ec70533 /sys-freebsd
parentremove old (diff)
downloadgentoo-2-e5f72424f116577215681b07be6035d5a92cc5a9.tar.gz
gentoo-2-e5f72424f116577215681b07be6035d5a92cc5a9.tar.bz2
gentoo-2-e5f72424f116577215681b07be6035d5a92cc5a9.zip
remove old
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'sys-freebsd')
-rw-r--r--sys-freebsd/freebsd-libexec/ChangeLog9
-rw-r--r--sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch149
-rw-r--r--sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.2-dl_iterate_phdr.patch246
-rw-r--r--sys-freebsd/freebsd-libexec/freebsd-libexec-6.2-r2.ebuild67
-rw-r--r--sys-freebsd/freebsd-libexec/freebsd-libexec-7.1-r1.ebuild74
5 files changed, 8 insertions, 537 deletions
diff --git a/sys-freebsd/freebsd-libexec/ChangeLog b/sys-freebsd/freebsd-libexec/ChangeLog
index 665bbcc7a2d2..634220fe76fa 100644
--- a/sys-freebsd/freebsd-libexec/ChangeLog
+++ b/sys-freebsd/freebsd-libexec/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-freebsd/freebsd-libexec
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/ChangeLog,v 1.37 2010/03/11 11:24:34 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/ChangeLog,v 1.38 2010/03/11 11:26:37 aballier Exp $
+
+ 11 Mar 2010; Alexis Ballier <aballier@gentoo.org>
+ -files/freebsd-libexec-6.1-libfallback.patch,
+ -freebsd-libexec-6.2-r2.ebuild,
+ -files/freebsd-libexec-6.2-dl_iterate_phdr.patch,
+ -freebsd-libexec-7.1-r1.ebuild:
+ remove old
11 Mar 2010; Alexis Ballier <aballier@gentoo.org>
-freebsd-libexec-7.2.ebuild, -freebsd-libexec-7.2-r1.ebuild:
diff --git a/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch b/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch
deleted file mode 100644
index 60041938c0d2..000000000000
--- a/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-diff -Nur libexec.old/rtld-elf/rtld.c libexec/rtld-elf/rtld.c
---- libexec.old/rtld-elf/rtld.c 2007-01-15 21:30:30.000000000 +0100
-+++ libexec/rtld-elf/rtld.c 2007-01-15 21:32:39.000000000 +0100
-@@ -894,6 +894,103 @@
- return NULL;
- }
-
-+#define MAX_LIBRARIES_HITS 255
-+
-+struct fill_library_paths_args {
-+ const char *name;
-+ size_t namelen;
-+ char **libraries;
-+ size_t *count;
-+};
-+
-+static void *
-+fill_library_paths(const char *dir, size_t dirlen, void *param)
-+{
-+ struct fill_library_paths_args *arg;
-+
-+ arg = param;
-+ if (*(arg->count) > MAX_LIBRARIES_HITS)
-+ return (NULL);
-+
-+ if (*dir == '/' || trust) {
-+ arg->libraries[*(arg->count)] = malloc(sizeof(char)*(dirlen + 1 + arg->namelen + 1));
-+ strncpy(arg->libraries[*(arg->count)], dir, dirlen);
-+ arg->libraries[*(arg->count)][dirlen] = '/';
-+ strncpy(arg->libraries[*(arg->count)] + dirlen + 1, arg->name, arg->namelen+1);
-+
-+ dbg(" Trying \"%s\"\n", arg->libraries[*(arg->count)]);
-+ if (access(arg->libraries[*(arg->count)], F_OK) == 0) {
-+ *(arg->count) += 1;
-+ }
-+ }
-+ return (NULL);
-+}
-+
-+/**
-+ * Find all libraries matching xname for the object refobj (if not null), like
-+ * find_library but find all the matching libraries in the paths.
-+ *
-+ * The returned pointer has to be free()'d (as well as the contained strings)
-+ * if it's non-NULL.
-+ * The end of the array is found when the pointer gets NULL.
-+ */
-+static char **find_libraries(const char *xname, const Obj_Entry *refobj)
-+{
-+ char **libraries;
-+ size_t libraries_count;
-+ struct fill_library_paths_args arg;
-+ char *name;
-+
-+ if (strchr(xname, '/') != NULL) { /* Hard coded pathname */
-+ if (xname[0] != '/' && !trust) {
-+ _rtld_error("Absolute pathname required for shared object \"%s\"",
-+ xname);
-+ return NULL;
-+ }
-+ libraries = malloc(sizeof(char*)*2);
-+ libraries[0] = xstrdup(xname);
-+ libraries[1] = NULL;
-+ return libraries;
-+ }
-+
-+ if (libmap_disable || (refobj == NULL) ||
-+ (name = lm_find(refobj->path, xname)) == NULL)
-+ name = (char *)xname;
-+
-+ dbg(" Searching for \"%s\"", name);
-+
-+ /* look up at maximum 255 libraries, would be crazy going over that */
-+ libraries = malloc(sizeof(char*)*(MAX_LIBRARIES_HITS+1));
-+ libraries_count = 0;
-+
-+ arg.name = name;
-+ arg.namelen = strlen(name);
-+ arg.libraries = libraries;
-+ arg.count = &libraries_count;
-+
-+ path_enumerate(ld_library_path, fill_library_paths, &arg);
-+ if(refobj != NULL)
-+ path_enumerate(refobj->rpath, fill_library_paths, &arg);
-+ path_enumerate(gethints(), fill_library_paths, &arg);
-+ path_enumerate(STANDARD_LIBRARY_PATH, fill_library_paths, &arg);
-+
-+ libraries[libraries_count] = NULL;
-+
-+ if(libraries_count == 0) {
-+ if(refobj != NULL && refobj->path != NULL) {
-+ _rtld_error("Shared object \"%s\" not found, required by \"%s\"",
-+ name, basename(refobj->path));
-+ } else {
-+ _rtld_error("Shared object \"%s\" not found", name);
-+ }
-+
-+ free(libraries);
-+ return NULL;
-+ }
-+
-+ return libraries;
-+}
-+
- /*
- * Given a symbol number in a referencing object, find the corresponding
- * definition of the symbol. Returns a pointer to the symbol, or NULL if
-@@ -1165,17 +1262,33 @@
-
- for (needed = obj->needed; needed != NULL; needed = needed->next) {
- const char *name = obj->strtab + needed->name;
-- char *path = find_library(name, obj);
-+ char **paths = find_libraries(name, obj);
-+ char **curpath = paths;
-
- needed->obj = NULL;
-- if (path == NULL && !ld_tracing)
-- return -1;
--
-- if (path) {
-- needed->obj = load_object(path);
-- if (needed->obj == NULL && !ld_tracing)
-- return -1; /* XXX - cleanup */
-+ if (paths == NULL) {
-+ if (ld_tracing)
-+ continue;
-+ else
-+ return -1;
-+ }
-+
-+ while(*curpath) {
-+ if (needed->obj == NULL) {
-+ needed->obj = load_object(*curpath);
-+ curpath++;
-+ continue;
-+ }
-+
-+ /* Continue, so that we can free the whole lot */
-+ free(*curpath);
-+ curpath++;
- }
-+
-+ free(paths);
-+
-+ if (needed->obj == NULL && !ld_tracing)
-+ return -1; /* XXX - cleanup */
- }
- }
-
diff --git a/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.2-dl_iterate_phdr.patch b/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.2-dl_iterate_phdr.patch
deleted file mode 100644
index 080fa5983ece..000000000000
--- a/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.2-dl_iterate_phdr.patch
+++ /dev/null
@@ -1,246 +0,0 @@
---- libexec/rtld-elf/rtld.h 2005/12/18 04:52:34 1.36
-+++ libexec/rtld-elf/rtld.h 2005/12/18 19:43:32 1.37
-@@ -90,6 +90,11 @@ typedef struct Struct_Needed_Entry {
- unsigned long name; /* Offset of name in string table */
- } Needed_Entry;
-
-+typedef struct Struct_Name_Entry {
-+ STAILQ_ENTRY(Struct_Name_Entry) link;
-+ char name[1];
-+} Name_Entry;
-+
- /* Lock object */
- typedef struct Struct_LockInfo {
- void *context; /* Client context for creating locks */
-@@ -173,6 +193,9 @@ typedef struct Struct_Obj_Entry {
- const char *rpath; /* Search path specified in object */
- Needed_Entry *needed; /* Shared objects needed by this one (%) */
-
-+ STAILQ_HEAD(, Struct_Name_Entry) names; /* List of names for this object we
-+ know about. */
-+
- Elf_Addr init; /* Initialization function to call */
- Elf_Addr fini; /* Termination function to call */
-
-diff -ur libexec/rtld-elf/map_object.c libexec/rtld-elf/map_object.c
---- libexec/rtld-elf/map_object.c 2005-02-27 12:55:40 +0000
-+++ libexec/rtld-elf/map_object.c 2007-09-10 11:29:53 +0100
-@@ -61,7 +61,6 @@
- Elf_Phdr **segs;
- int nsegs;
- Elf_Phdr *phdyn;
-- Elf_Phdr *phphdr;
- Elf_Phdr *phinterp;
- Elf_Phdr *phtls;
- caddr_t mapbase;
-@@ -79,7 +78,8 @@
- Elf_Addr clear_vaddr;
- caddr_t clear_addr;
- caddr_t clear_page;
-- size_t nclear;
-+ Elf_Addr phdr_vaddr;
-+ size_t nclear, phsize;
- Elf_Addr bss_vaddr;
- Elf_Addr bss_vlimit;
- caddr_t bss_addr;
-@@ -95,9 +95,11 @@
- * in that order.
- */
- phdr = (Elf_Phdr *) ((char *)hdr + hdr->e_phoff);
-+ phsize = hdr->e_phnum * sizeof (phdr[0]);
- phlimit = phdr + hdr->e_phnum;
- nsegs = -1;
-- phdyn = phphdr = phinterp = phtls = NULL;
-+ phdyn = phinterp = phtls = NULL;
-+ phdr_vaddr = 0;
- segs = alloca(sizeof(segs[0]) * hdr->e_phnum);
- while (phdr < phlimit) {
- switch (phdr->p_type) {
-@@ -108,7 +110,7 @@
-
- case PT_LOAD:
- segs[++nsegs] = phdr;
-- if (segs[nsegs]->p_align < PAGE_SIZE) {
-+ if ((segs[nsegs]->p_align & (PAGE_SIZE - 1)) != 0) {
- _rtld_error("%s: PT_LOAD segment %d not page-aligned",
- path, nsegs);
- return NULL;
-@@ -116,7 +118,8 @@
- break;
-
- case PT_PHDR:
-- phphdr = phdr;
-+ phdr_vaddr = phdr->p_vaddr;
-+ phsize = phdr->p_memsz;
- break;
-
- case PT_DYNAMIC:
-@@ -211,6 +214,11 @@
- return NULL;
- }
- }
-+ if (phdr_vaddr == 0 && data_offset <= hdr->e_phoff &&
-+ (data_vlimit - data_vaddr + data_offset) >=
-+ (hdr->e_phoff + hdr->e_phnum * sizeof (Elf_Phdr))) {
-+ phdr_vaddr = data_vaddr + hdr->e_phoff - data_offset;
-+ }
- }
-
- obj = obj_new();
-@@ -227,10 +235,19 @@
- obj->dynamic = (const Elf_Dyn *) (obj->relocbase + phdyn->p_vaddr);
- if (hdr->e_entry != 0)
- obj->entry = (caddr_t) (obj->relocbase + hdr->e_entry);
-- if (phphdr != NULL) {
-- obj->phdr = (const Elf_Phdr *) (obj->relocbase + phphdr->p_vaddr);
-- obj->phsize = phphdr->p_memsz;
-+ if (phdr_vaddr != 0) {
-+ obj->phdr = (const Elf_Phdr *) (obj->relocbase + phdr_vaddr);
-+ } else {
-+ obj->phdr = malloc(phsize);
-+ if (obj->phdr == NULL) {
-+ obj_free(obj);
-+ _rtld_error("%s: cannot allocate program header", path);
-+ return NULL;
-+ }
-+ memcpy((char *)obj->phdr, (char *)hdr + hdr->e_phoff, phsize);
-+ obj->phdr_alloc = true;
- }
-+ obj->phsize = phsize;
- if (phinterp != NULL)
- obj->interp = (const char *) (obj->relocbase + phinterp->p_vaddr);
- if (phtls != NULL) {
-@@ -308,7 +325,6 @@
- if (obj->tls_done) {
- free_tls_offset(obj);
- }
-- free(obj->path);
- while (obj->needed != NULL) {
- Needed_Entry *needed = obj->needed;
- obj->needed = needed->next;
-@@ -325,6 +341,7 @@
- free(elm);
- }
- free(obj->origin_path);
-+ free(obj->path);
- free(obj->priv);
- free(obj);
- }
-diff -ur libexec/rtld-elf/rtld.c libexec/rtld-elf/rtld.c
---- libexec/rtld-elf/rtld.c 2006-09-02 21:38:13 +0100
-+++ libexec/rtld-elf/rtld.c 2007-09-10 11:22:48 +0100
-@@ -153,6 +153,7 @@
- static Obj_Entry *obj_main; /* The main program shared object */
- static Obj_Entry obj_rtld; /* The dynamic linker shared object */
- static unsigned int obj_count; /* Number of objects in obj_list */
-+static unsigned int obj_loads; /* Number of objects in obj_list */
-
- static Objlist list_global = /* Objects dlopened with RTLD_GLOBAL */
- STAILQ_HEAD_INITIALIZER(list_global);
-@@ -192,6 +193,9 @@
- (func_ptr_type) &__tls_get_addr,
- (func_ptr_type) &_rtld_allocate_tls,
- (func_ptr_type) &_rtld_free_tls,
-+#ifdef _GENTOO_DL_ITERATE_PHDR_
-+ (func_ptr_type) &dl_iterate_phdr,
-+#endif
- NULL
- };
-
-@@ -363,6 +365,7 @@
- *obj_tail = obj_main;
- obj_tail = &obj_main->next;
- obj_count++;
-+ obj_loads++;
- /* Make sure we don't call the main program's init and fini functions. */
- obj_main->init = obj_main->fini = (Elf_Addr)NULL;
-
-@@ -1287,6 +1290,7 @@
- *obj_tail = obj;
- obj_tail = &obj->next;
- obj_count++;
-+ obj_loads++;
- linkmap_add(obj); /* for GDB & dlinfo() */
-
- dbg(" %p .. %p: %s", obj->mapbase,
-@@ -1951,6 +1955,39 @@
- return (error);
- }
-
-+#ifdef _GENTOO_DL_ITERATE_PHDR
-+int
-+dl_iterate_phdr(__dl_iterate_hdr_callback callback, void *param)
-+{
-+ struct dl_phdr_info phdr_info;
-+ const Obj_Entry *obj;
-+ int error, lockstate;
-+
-+ lockstate = rlock_acquire(rtld_bind_lock);
-+
-+ error = 0;
-+
-+ for (obj = obj_list; obj != NULL; obj = obj->next) {
-+ phdr_info.dlpi_addr = (Elf_Addr)obj->relocbase;
-+ phdr_info.dlpi_name = STAILQ_FIRST(&obj->names) ?
-+ STAILQ_FIRST(&obj->names)->name : obj->path;
-+ phdr_info.dlpi_phdr = obj->phdr;
-+ phdr_info.dlpi_phnum = obj->phsize / sizeof(obj->phdr[0]);
-+ phdr_info.dlpi_tls_modid = obj->tlsindex;
-+ phdr_info.dlpi_tls_data = obj->tlsinit;
-+ phdr_info.dlpi_adds = obj_loads;
-+ phdr_info.dlpi_subs = obj_loads - obj_count;
-+
-+ if ((error = callback(&phdr_info, sizeof phdr_info, param)) != 0)
-+ break;
-+
-+ }
-+ rlock_release(rtld_bind_lock, lockstate);
-+
-+ return (error);
-+}
-+#endif
-+
- struct fill_search_info_args {
- int request;
- unsigned int flags;
-diff -ur libexec/rtld-elf/rtld.h libexec/rtld-elf/rtld.h
---- libexec/rtld-elf/rtld.h 2005-12-30 22:13:56 +0000
-+++ libexec/rtld-elf/rtld.h 2007-09-10 11:22:22 +0100
-@@ -176,15 +176,16 @@
- Elf_Addr init; /* Initialization function to call */
- Elf_Addr fini; /* Termination function to call */
-
-- bool mainprog; /* True if this is the main program */
-- bool rtld; /* True if this is the dynamic linker */
-- bool textrel; /* True if there are relocations to text seg */
-- bool symbolic; /* True if generated with "-Bsymbolic" */
-- bool bind_now; /* True if all relocations should be made first */
-- bool traced; /* Already printed in ldd trace output */
-- bool jmpslots_done; /* Already have relocated the jump slots */
-- bool init_done; /* Already have added object to init list */
-- bool tls_done; /* Already allocated offset for static TLS */
-+ bool mainprog : 1; /* True if this is the main program */
-+ bool rtld : 1; /* True if this is the dynamic linker */
-+ bool textrel : 1; /* True if there are relocations to text seg */
-+ bool symbolic : 1; /* True if generated with "-Bsymbolic" */
-+ bool bind_now : 1; /* True if all relocations should be made first */
-+ bool traced : 1; /* Already printed in ldd trace output */
-+ bool jmpslots_done : 1; /* Already have relocated the jump slots */
-+ bool init_done : 1; /* Already have added object to init list */
-+ bool tls_done : 1; /* Already allocated offset for static TLS */
-+ bool phdr_alloc : 1; /* Phdr is allocated and needs to be freed. */
-
- struct link_map linkmap; /* for GDB and dlinfo() */
- Objlist dldags; /* Object belongs to these dlopened DAGs (%) */
-diff -ur libexec.orig/rtld-elf/rtld_lock.c libexec/rtld-elf/rtld_lock.c
---- libexec.orig/rtld-elf/rtld_lock.c 2004-11-16 20:45:51 +0000
-+++ libexec/rtld-elf/rtld_lock.c 2007-09-10 11:22:22 +0100
-@@ -54,7 +54,7 @@
- #define RC_INCR 0x2 /* Adjusts count of readers desiring lock */
-
- typedef struct Struct_Lock {
-- volatile int lock;
-+ volatile u_int lock;
- void *base;
- } Lock;
-
diff --git a/sys-freebsd/freebsd-libexec/freebsd-libexec-6.2-r2.ebuild b/sys-freebsd/freebsd-libexec/freebsd-libexec-6.2-r2.ebuild
deleted file mode 100644
index 131bd8e66726..000000000000
--- a/sys-freebsd/freebsd-libexec/freebsd-libexec-6.2-r2.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/freebsd-libexec-6.2-r2.ebuild,v 1.2 2007/10/16 08:54:50 uberlord Exp $
-
-inherit bsdmk freebsd pam
-
-DESCRIPTION="FreeBSD libexec things"
-SLOT="0"
-KEYWORDS="~sparc-fbsd ~x86-fbsd"
-
-IUSE="pam ssl kerberos ipv6 nis"
-
-SRC_URI="mirror://gentoo/${LIBEXEC}.tar.bz2
- mirror://gentoo/${UBIN}.tar.bz2
- mirror://gentoo/${BIN}.tar.bz2
- mirror://gentoo/${CONTRIB}.tar.bz2
- mirror://gentoo/${LIB}.tar.bz2
- mirror://gentoo/${ETC}.tar.bz2
- mirror://gentoo/${USBIN}.tar.bz2"
-
-RDEPEND="=sys-freebsd/freebsd-lib-${RV}*
- pam? ( virtual/pam )"
-DEPEND="${RDEPEND}
- =sys-freebsd/freebsd-mk-defs-${RV}*
- =sys-freebsd/freebsd-sources-${RV}*"
-
-S="${WORKDIR}/libexec"
-
-PATCHES="${FILESDIR}/${PN}-setXid.patch
- ${FILESDIR}/${PN}-nossp.patch
- ${FILESDIR}/${PN}-6.1-libfallback.patch
- ${FILESDIR}/${PN}-6.2-dl_iterate_phdr.patch"
-
-# Remove sendmail, tcp_wrapper and other useless stuff
-REMOVE_SUBDIRS="smrsh mail.local tcpd telnetd rshd rlogind lukemftpd ftpd"
-
-pkg_setup() {
- use pam || mymakeopts="${mymakeopts} NO_PAM= "
- use ssl || mymakeopts="${mymakeopts} NO_OPENSSL= NO_CRYPT= "
- use kerberos || mymakeopts="${mymakeopts} NO_KERBEROS= "
- use ipv6 || mymakeopts="${mymakeopts} NO_INET6= "
- use nis || mymakeopts="${mymakeopts} NO_NIS= "
-
- mymakeopts="${mymakeopts} NO_SENDMAIL= NO_PF= "
-}
-
-src_unpack() {
- freebsd_src_unpack
-
- ln -s /usr/include "${WORKDIR}/include"
-}
-
-src_compile() {
- NOSSP_FLAGS="$(test-flags -fno-stack-protector -fno-stack-protector-all)"
- export NOSSP_FLAGS
- freebsd_src_compile
-}
-
-src_install() {
- freebsd_src_install
-
- newinitd "${FILESDIR}/bootpd.initd"
- newconfd "${FILESDIR}/bootpd.confd"
-
- insinto /etc
- doins "${WORKDIR}/etc/gettytab"
-}
diff --git a/sys-freebsd/freebsd-libexec/freebsd-libexec-7.1-r1.ebuild b/sys-freebsd/freebsd-libexec/freebsd-libexec-7.1-r1.ebuild
deleted file mode 100644
index 7149d1972444..000000000000
--- a/sys-freebsd/freebsd-libexec/freebsd-libexec-7.1-r1.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/freebsd-libexec-7.1-r1.ebuild,v 1.2 2009/10/07 04:52:35 aballier Exp $
-
-EAPI=2
-
-inherit bsdmk freebsd pam
-
-DESCRIPTION="FreeBSD libexec things"
-SLOT="0"
-KEYWORDS="~sparc-fbsd ~x86-fbsd"
-
-SRC_URI="mirror://gentoo/${LIBEXEC}.tar.bz2
- mirror://gentoo/${UBIN}.tar.bz2
- mirror://gentoo/${BIN}.tar.bz2
- mirror://gentoo/${CONTRIB}.tar.bz2
- mirror://gentoo/${LIB}.tar.bz2
- mirror://gentoo/${ETC}.tar.bz2
- mirror://gentoo/${USBIN}.tar.bz2"
-
-RDEPEND="=sys-freebsd/freebsd-lib-${RV}*
- pam? ( virtual/pam )"
-DEPEND="${RDEPEND}
- =sys-freebsd/freebsd-mk-defs-${RV}*
- =sys-freebsd/freebsd-sources-${RV}*"
-RDEPEND="${RDEPEND}
- xinetd? ( sys-apps/xinetd )"
-
-S="${WORKDIR}/libexec"
-
-PATCHES="${FILESDIR}/${PN}-setXid.patch
- ${FILESDIR}/${PN}-nossp.patch
- ${FILESDIR}/${PN}-7.0-libfallback.patch"
-
-# Remove sendmail, tcp_wrapper and other useless stuff
-REMOVE_SUBDIRS="smrsh mail.local tcpd telnetd rshd rlogind lukemftpd ftpd"
-
-IUSE="pam ssl kerberos ipv6 nis xinetd"
-
-pkg_setup() {
- use ipv6 || mymakeopts="${mymakeopts} WITHOUT_INET6= WITHOUT_INET6_SUPPORT= "
- use kerberos || mymakeopts="${mymakeopts} WITHOUT_KERBEROS_SUPPORT= "
- use nis || mymakeopts="${mymakeopts} WITHOUT_NIS= "
- use pam || mymakeopts="${mymakeopts} WITHOUT_PAM_SUPPORT= "
- use ssl || mymakeopts="${mymakeopts} WITHOUT_OPENSSL= "
-
- mymakeopts="${mymakeopts} WITHOUT_SENDMAIL= WITHOUT_PF= WITHOUT_RCMDS= "
-}
-
-src_prepare() {
- ln -s /usr/include "${WORKDIR}/include"
-}
-
-src_compile() {
- NOSSP_FLAGS="$(test-flags -fno-stack-protector -fno-stack-protector-all)"
- export NOSSP_FLAGS
- freebsd_src_compile
-}
-
-src_install() {
- freebsd_src_install
-
- insinto /etc
- doins "${WORKDIR}/etc/gettytab"
- newinitd "${FILESDIR}/bootpd.initd" bootpd
- newconfd "${FILESDIR}/bootpd.confd" bootpd
-
- if use xinetd; then
- for rpcd in rstatd rusersd walld rquotad sprayd; do
- insinto /etc/xinetd.d
- newins "${FILESDIR}/${rpcd}.xinetd" ${rpcd}
- done
- fi
-}