summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2006-05-09 07:36:59 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2006-05-09 07:36:59 +0000
commit4d7c50a13ff19ad86f15bab852b2b006a2051dbc (patch)
tree06b90240cebb83a2ad27766d02d7f7bc31a7902a /sys-freebsd/freebsd-libexec
parentUpdate to 6.1-RELEASE. (diff)
downloadgentoo-2-4d7c50a13ff19ad86f15bab852b2b006a2051dbc.tar.gz
gentoo-2-4d7c50a13ff19ad86f15bab852b2b006a2051dbc.tar.bz2
gentoo-2-4d7c50a13ff19ad86f15bab852b2b006a2051dbc.zip
Update to 6.1-RELEASE and patch to skip unloadable libraries.
(Portage version: 2.1_pre10-r5)
Diffstat (limited to 'sys-freebsd/freebsd-libexec')
-rw-r--r--sys-freebsd/freebsd-libexec/ChangeLog9
-rw-r--r--sys-freebsd/freebsd-libexec/files/digest-freebsd-libexec-6.121
-rw-r--r--sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch145
-rw-r--r--sys-freebsd/freebsd-libexec/freebsd-libexec-6.1.ebuild53
4 files changed, 227 insertions, 1 deletions
diff --git a/sys-freebsd/freebsd-libexec/ChangeLog b/sys-freebsd/freebsd-libexec/ChangeLog
index e6de99337236..eb49f2635284 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-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/ChangeLog,v 1.7 2006/05/02 21:54:58 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/ChangeLog,v 1.8 2006/05/09 07:36:59 flameeyes Exp $
+
+*freebsd-libexec-6.1 (09 May 2006)
+
+ 09 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/freebsd-libexec-6.1-libfallback.patch,
+ -freebsd-libexec-6.1_rc2.ebuild, +freebsd-libexec-6.1.ebuild:
+ Update to 6.1-RELEASE and patch to skip unloadable libraries.
*freebsd-libexec-6.1_rc2 (02 May 2006)
diff --git a/sys-freebsd/freebsd-libexec/files/digest-freebsd-libexec-6.1 b/sys-freebsd/freebsd-libexec/files/digest-freebsd-libexec-6.1
new file mode 100644
index 000000000000..d7bfc5143462
--- /dev/null
+++ b/sys-freebsd/freebsd-libexec/files/digest-freebsd-libexec-6.1
@@ -0,0 +1,21 @@
+MD5 e8c5589329d476255f8a15f9f9bfebd1 freebsd-bin-6.1.tar.bz2 405680
+RMD160 33f2e5b49fce90dcaab652621af3b33e8e80b643 freebsd-bin-6.1.tar.bz2 405680
+SHA256 86d7a000827432c594f9d37b98a1f936f6168030cf033c6e621a37c670ef5271 freebsd-bin-6.1.tar.bz2 405680
+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 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-libexec/files/freebsd-libexec-6.1-libfallback.patch b/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch
new file mode 100644
index 000000000000..9c1c6c0de962
--- /dev/null
+++ b/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch
@@ -0,0 +1,145 @@
+Index: fbsd-6.1/libexec/rtld-elf/rtld.c
+===================================================================
+--- fbsd-6.1.orig/libexec/rtld-elf/rtld.c
++++ fbsd-6.1/libexec/rtld-elf/rtld.c
+@@ -894,6 +894,103 @@ find_library(const char *xname, const Ob
+ 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,29 @@ load_needed_objects(Obj_Entry *first)
+
+ 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)
++ if (paths == NULL)
+ return -1;
+-
+- if (path) {
+- needed->obj = load_object(path);
+- if (needed->obj == NULL && !ld_tracing)
+- return -1; /* XXX - cleanup */
++
++ 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/freebsd-libexec-6.1.ebuild b/sys-freebsd/freebsd-libexec/freebsd-libexec-6.1.ebuild
new file mode 100644
index 000000000000..a5f6a0c0a5b3
--- /dev/null
+++ b/sys-freebsd/freebsd-libexec/freebsd-libexec-6.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2006 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.1.ebuild,v 1.1 2006/05/09 07:36:59 flameeyes Exp $
+
+inherit bsdmk freebsd pam
+
+DESCRIPTION="FreeBSD libexec things"
+SLOT="0"
+KEYWORDS="~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"
+
+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= "
+}
+
+PATCHES="${FILESDIR}/${PN}-setXid.patch
+ ${FILESDIR}/${PN}-5.3_rc1-ypxfr-makefile.patch
+ ${FILESDIR}/${PN}-nossp.patch
+ ${FILESDIR}/${PN}-${RV}-libfallback.patch"
+
+# Remove sendmail, tcp_wrapper and other useless stuff
+REMOVE_SUBDIRS="smrsh mail.local tcpd telnetd rshd rlogind lukemftpd ftpd"
+
+src_install() {
+ freebsd_src_install
+
+ insinto /etc
+ cd "${WORKDIR}/etc"
+ doins gettytab
+}