diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2006-05-09 07:36:59 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2006-05-09 07:36:59 +0000 |
commit | 4d7c50a13ff19ad86f15bab852b2b006a2051dbc (patch) | |
tree | 06b90240cebb83a2ad27766d02d7f7bc31a7902a /sys-freebsd/freebsd-libexec | |
parent | Update to 6.1-RELEASE. (diff) | |
download | gentoo-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')
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 +} |