diff options
author | 2015-08-08 13:49:04 -0700 | |
---|---|---|
committer | 2015-08-08 17:38:18 -0700 | |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-devel/prelink | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-devel/prelink')
-rw-r--r-- | sys-devel/prelink/Manifest | 4 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink-20061201-prelink-conf.patch | 31 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink-20130503-libiberty-md5.patch | 61 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink-20130503-prelink-conf.patch | 39 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink-armhf-dynamic-linker.patch | 12 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink.confd | 43 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink.cron | 61 | ||||
-rw-r--r-- | sys-devel/prelink/metadata.xml | 5 | ||||
-rw-r--r-- | sys-devel/prelink/prelink-20110511.ebuild | 75 | ||||
-rw-r--r-- | sys-devel/prelink/prelink-20111012.ebuild | 81 | ||||
-rw-r--r-- | sys-devel/prelink/prelink-20120628.ebuild | 91 | ||||
-rw-r--r-- | sys-devel/prelink/prelink-20130503.ebuild | 84 |
12 files changed, 587 insertions, 0 deletions
diff --git a/sys-devel/prelink/Manifest b/sys-devel/prelink/Manifest new file mode 100644 index 000000000000..283f1e20ee68 --- /dev/null +++ b/sys-devel/prelink/Manifest @@ -0,0 +1,4 @@ +DIST prelink-20110511.tar.bz2 924501 SHA256 038725b6e3125dc163bca6c6bd348958ca117510d6d2603f06431fee59b4e0fe SHA512 4ae8a8a9fc29c98954e43eb606bef5e4d6eeca6ea9cec855f13e640e1090dd99543c60da240bc8f68b01e1ec94a6860863772378b1b13191faf42912fb8d51ec WHIRLPOOL 8e8dc9247bfd9425527f7246aa2e61ff351a7701729c22f04bddce46ac37fe109a2c777cc880a40a55a28a0072337e5e8f8e410616b537180486c757f2dad161 +DIST prelink-20111012.tar.bz2 926500 SHA256 b86df2e6c051176da711a85982b80d87c8ce8e053e04bd0ffb2f9ba817f62aaf SHA512 51e57337b528728e916a69c2fc6a21503882d43317d927c1c3990193b929e7d0a91e04411647fd798f4f2467a87dc5482a8f8f95650546bb2336d42e563e66cf WHIRLPOOL e4c0b2ec05694ea56dd365b725f19d8b263a6392426ac47d4cefa49326a32b6174026416b98acb5a56a2644c2094db6f4c4c3523de3b74d33c09ac42e235ae66 +DIST prelink-20120628.tar.bz2 917485 SHA256 46548d655e9d764260b735ecdd1c8b0673756224f5fd9a4f14fef1cdb6bad44d SHA512 ee45d0c916fe8dd8e358ba1bae2ea0af41f7ae45a77b2c126236f93035bd335797834714fd9d7841a3e6987855a12adf5c8c954c72155e51319786ac21ed42ef WHIRLPOOL 06f34a15363924576bfa8c54180a78993589c3fd51c6a4cd7a58c823c4a5738591bc9332173e3312a557b1af4c1c71bc1f02982145fd9af5ad1f7063be58a205 +DIST prelink-20130503.tar.bz2 928040 SHA256 6339c7605e9b6f414d1be32530c9c8011f38820d36431c8a62e8674ca37140f0 SHA512 69138a695e3e535deacd8224f6f8364ff64b8868b87b516d1f3392d9df968f77265177e9fede09c38f16aa878f9fd57a9ec39f0d9deabc0c9c01609b11156ba3 WHIRLPOOL 51b4234009c6ac6e6f45f09e3513feb5efe1dbf9d705b55f88d0443fe386bacbe04fa4a4e5d60caf40ef0a98a5557eb2e9f3a11549ec01c0200c324cb948ab34 diff --git a/sys-devel/prelink/files/prelink-20061201-prelink-conf.patch b/sys-devel/prelink/files/prelink-20061201-prelink-conf.patch new file mode 100644 index 000000000000..9397088c5cd8 --- /dev/null +++ b/sys-devel/prelink/files/prelink-20061201-prelink-conf.patch @@ -0,0 +1,31 @@ +--- doc/prelink.conf.orig 2008-08-29 08:18:59.000000000 -0400 ++++ doc/prelink.conf 2008-08-29 08:21:48.000000000 -0400 +@@ -16,8 +16,11 @@ + -b *.a + -b *.js + -b /lib/modules +--b /usr/lib/locale +--b /usr/X11R6/lib{,64}/X11/xfig ++-b /usr/lib{,32,64}/locale ++-b /usr/lib{,32,64}/wine ++-b /usr/lib{,32,64}/valgrind ++-b /usr/X11R6/lib{,32,64}/X11/xfig ++-b /usr/src + -l /bin + -l /usr/bin + -l /sbin +@@ -27,9 +30,9 @@ + -l /usr/games + -l /usr/libexec + -l /var/ftp/bin +--l /lib{,64} +--l /usr/lib{,64} +--l /usr/X11R6/lib{,64} +--l /usr/kerberos/lib{,64} ++-l /lib{,32,64} ++-l /usr/lib{,32,64} ++-l /usr/X11R6/lib{,32,64} ++-l /usr/kerberos/lib{,32,64} + -l /usr/X11R6/LessTif +--l /var/ftp/lib{,64} ++-l /var/ftp/lib{,32,64} diff --git a/sys-devel/prelink/files/prelink-20130503-libiberty-md5.patch b/sys-devel/prelink/files/prelink-20130503-libiberty-md5.patch new file mode 100644 index 000000000000..36b8bcecb312 --- /dev/null +++ b/sys-devel/prelink/files/prelink-20130503-libiberty-md5.patch @@ -0,0 +1,61 @@ +From 8eeb9da6d017761037bf757780ea544dfeabbad8 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Tue, 31 Jul 2012 09:02:35 +0000 +Subject: [PATCH] libiberty/md5: fix strict alias warnings +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Current libiberty md5 code triggers these warnings with gcc-4.7.1 for me: + +libiberty/md5.c: In function âmd5_finish_ctxâ: +libiberty/md5.c:117:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] +libiberty/md5.c:118:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] + +The change below fixes things for me. The optimized output (-O2) is the same +before/after my change on x86_64-linux. I imagine it'll be the same for most +targets. It seems simpler than using a union on the md5_ctx buffer since these +are the only two locations in the code where this occurs. +--- + libiberty/ChangeLog | 5 +++++ + libiberty/md5.c | 12 ++++++++---- + 2 files changed, 13 insertions(+), 4 deletions(-) + +2012-07-31 Mike Frysinger <vapier@gentoo.org> + + * md5.c (md5_finish_ctx): Declare swap_bytes. Assign SWAP() output + to swap_bytes, and then call memcpy to move it to ctx->buffer. + +diff --git a/libiberty/md5.c b/libiberty/md5.c +index 0db8fc8..8cc0cb5 100644 +--- a/src/md5.c ++++ b/src/md5.c +@@ -103,6 +103,7 @@ md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) + { + /* Take yet unprocessed bytes into account. */ + md5_uint32 bytes = ctx->buflen; ++ md5_uint32 swap_bytes; + size_t pad; + + /* Now count remaining bytes. */ +@@ -113,10 +114,13 @@ md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) + pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; + memcpy (&ctx->buffer[bytes], fillbuf, pad); + +- /* Put the 64-bit file length in *bits* at the end of the buffer. */ +- *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3); +- *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) | +- (ctx->total[0] >> 29)); ++ /* Put the 64-bit file length in *bits* at the end of the buffer. ++ Use memcpy to avoid aliasing problems. On most systems, this ++ will be optimized away to the same code. */ ++ swap_bytes = SWAP (ctx->total[0] << 3); ++ memcpy (&ctx->buffer[bytes + pad], &swap_bytes, sizeof (swap_bytes)); ++ swap_bytes = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); ++ memcpy (&ctx->buffer[bytes + pad + 4], &swap_bytes, sizeof (swap_bytes)); + + /* Process last bytes. */ + md5_process_block (ctx->buffer, bytes + pad + 8, ctx); +-- +1.8.2.1 + diff --git a/sys-devel/prelink/files/prelink-20130503-prelink-conf.patch b/sys-devel/prelink/files/prelink-20130503-prelink-conf.patch new file mode 100644 index 000000000000..9233a4114827 --- /dev/null +++ b/sys-devel/prelink/files/prelink-20130503-prelink-conf.patch @@ -0,0 +1,39 @@ +--- a/doc/prelink.conf ++++ b/doc/prelink.conf +@@ -5,6 +5,7 @@ + # If a directory name is prefixed with `-h ', symbolic links in a + # directory hierarchy are followed. + # Directories or files with `-b ' prefix will be blacklisted. ++-c /etc/prelink.conf.d/*.conf + -b *.la + -b *.png + -b *.py +@@ -16,8 +16,11 @@ + -b *.a + -b *.js + -b /lib/modules +--b /usr/lib/locale +--b /usr/X11R6/lib{,64}/X11/xfig ++-b /usr/lib{,x32,32,64}/locale ++-b /usr/lib{,x32,32,64}/wine ++-b /usr/lib{,x32,32,64}/valgrind ++-b /usr/X11R6/lib{,x32,32,64}/X11/xfig ++-b /usr/src + -l /bin + -l /usr/bin + -l /sbin +@@ -27,9 +30,9 @@ + -l /usr/games + -l /usr/libexec + -l /var/ftp/bin +--l /lib{,64} +--l /usr/lib{,64} +--l /usr/X11R6/lib{,64} +--l /usr/kerberos/lib{,64} ++-l /lib{,x32,32,64} ++-l /usr/lib{,x32,32,64} ++-l /usr/X11R6/lib{,x32,32,64} ++-l /usr/kerberos/lib{,x32,32,64} + -l /usr/X11R6/LessTif +--l /var/ftp/lib{,64} ++-l /var/ftp/lib{,x32,32,64} diff --git a/sys-devel/prelink/files/prelink-armhf-dynamic-linker.patch b/sys-devel/prelink/files/prelink-armhf-dynamic-linker.patch new file mode 100644 index 000000000000..896101040b5b --- /dev/null +++ b/sys-devel/prelink/files/prelink-armhf-dynamic-linker.patch @@ -0,0 +1,12 @@ +diff -urNp prelink_orig/src/arch-arm.c prelink/src/arch-arm.c +--- prelink_orig/src/arch-arm.c 2011-08-26 03:20:49.000000000 -0400 ++++ prelink/src/arch-arm.c 2012-11-28 23:59:28.030164736 -0500 +@@ -832,7 +832,7 @@ PL_ARCH = { + .R_COPY = R_ARM_COPY, + .R_RELATIVE = R_ARM_RELATIVE, + .rtype_class_valid = RTYPE_CLASS_VALID, +- .dynamic_linker = "/lib/ld-linux.so.3", ++ .dynamic_linker = "/lib/ld-linux-armhf.so.3", + .adjust_dyn = arm_adjust_dyn, + .adjust_rel = arm_adjust_rel, + .adjust_rela = arm_adjust_rela, diff --git a/sys-devel/prelink/files/prelink.confd b/sys-devel/prelink/files/prelink.confd new file mode 100644 index 000000000000..6b89b8c1f1fd --- /dev/null +++ b/sys-devel/prelink/files/prelink.confd @@ -0,0 +1,43 @@ +# For an in depth prelinking guide, please see: +# http://www.gentoo.org/doc/en/prelink-howto.xml + +# Control prelinking behavior in the cronjob. +# yes - automatically prelink the system +# no - automatically un-prelink the system +# "" - do nothing at all (user manages) +# (if you change this from yes to no prelink -ua +# will be run next night to undo prelinking) +PRELINKING="" + +# Options to pass to prelink +# -m Try to conserve virtual memory by allowing overlapping +# assigned virtual memory slots for libraries which +# never appear together in one binary +# -R Randomize virtual memory slot assignments for libraries. +# This makes it slightly harder for various buffer overflow +# attacks, since library addresses will be different on each +# host using -R. +PRELINK_OPTS=-mR + +# How often should full prelink be run (in days) +# Normally, prelink will be run in quick mode, every +# $PRELINK_FULL_TIME_INTERVAL days it will be run +# in normal mode. Comment it out if it should be run +# in normal mode always. +PRELINK_FULL_TIME_INTERVAL=14 + +# How often should prelink run (in days) even if +# no packages have been upgraded via portage. +# If $PRELINK_FULL_TIME_INTERVAL days have not elapsed +# yet since last normal mode prelinking, last +# quick mode prelinking happened less than +# $PRELINK_NOEMER_CHECK_INTERVAL days ago +# and no packages have been upgraded by portage +# since last quick mode prelinking, prelink +# will not do anything. +# Change to +# PRELINK_NOEMER_CHECK_INTERVAL=0 +# if you want to disable the portage database timestamp +# check (especially if you don't use portage +# exclusively to upgrade system libraries and/or binaries). +PRELINK_NOEMER_CHECK_INTERVAL=7 diff --git a/sys-devel/prelink/files/prelink.cron b/sys-devel/prelink/files/prelink.cron new file mode 100644 index 000000000000..a3edc429fee7 --- /dev/null +++ b/sys-devel/prelink/files/prelink.cron @@ -0,0 +1,61 @@ +#!/bin/sh + +. /etc/conf.d/prelink +log="/var/log/prelink.log" + +case $PRELINKING in + yes|no);; + *) exit 0;; +esac + +ionice -c3 -p $$ >/dev/null 2>&1 +renice +19 -p $$ >/dev/null 2>&1 + +if [ "$PRELINKING" != yes ]; then + sed -ri '/^[[:space:]]*#?[[:space:]]*KDE_IS_PRELINKED=/s:.*:#KDE_IS_PRELINKED=1:' /etc/env.d/*kde* 2>/dev/null + if [ -f /etc/prelink.cache ]; then + echo /usr/sbin/prelink -uav > ${log} + /usr/sbin/prelink -uav >> ${log} 2>&1 \ + || echo Prelink failed with return value $? >> ${log} + rm -f /etc/prelink.cache + # Restart init if needed + [ -n "$(find `ldd /sbin/init | awk 'NF == 4 { print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u + fi + exit 0 +fi + +sed -ri '/^[[:space:]]*#?[[:space:]]*KDE_IS_PRELINKED=/s:.*:KDE_IS_PRELINKED=1:' /etc/env.d/*kde* 2>/dev/null + +if [ ! -f /etc/prelink.cache -o -f /var/lib/misc/prelink.force ] \ + || grep -q '^prelink-ELF0.[0-2]' /etc/prelink.cache; then + # If cache does not exist or is from older prelink versions or + # if we were asked to explicitely, force full prelinking + rm -f /etc/prelink.cache /var/lib/misc/prelink.force + PRELINK_OPTS="$PRELINK_OPTS -f" + date > /var/lib/misc/prelink.full + cp -a /var/lib/misc/prelink.full /var/lib/misc/prelink.quick +elif [ -n "$PRELINK_FULL_TIME_INTERVAL" \ + -a "`find /var/lib/misc/prelink.full -mtime -${PRELINK_FULL_TIME_INTERVAL} 2>/dev/null`" \ + = /var/lib/misc/prelink.full ]; then + # If no more than PRELINK_NOEMER_CHECK_INTERVAL days elapsed from last prelink + # (be it full or quick) and no packages have been upgraded via rpm since then, + # don't do anything. + [ "`find /var/lib/misc/prelink.quick -mtime -${PRELINK_NOEMER_CHECK_INTERVAL:-7} 2>/dev/null`" \ + -a -f /var/cache/edb/counter \ + -a /var/cache/edb/counter -ot /var/lib/misc/prelink.quick ] && exit 0 + date > /var/lib/misc/prelink.quick + # If prelink without -q has been run in the last + # PRELINK_FULL_TIME_INTERVAL days, just use quick mode + PRELINK_OPTS="$PRELINK_OPTS -q" +else + date > /var/lib/misc/prelink.full + cp -a /var/lib/misc/prelink.full /var/lib/misc/prelink.quick +fi + +echo /usr/sbin/prelink -av $PRELINK_OPTS > ${log} +/usr/sbin/prelink -av $PRELINK_OPTS >> ${log} 2>&1 \ + || echo Prelink failed with return value $? >> ${log} +# Restart init if needed +[ -n "$(find `ldd /sbin/init | awk 'NF == 4 { print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u + +exit 0 diff --git a/sys-devel/prelink/metadata.xml b/sys-devel/prelink/metadata.xml new file mode 100644 index 000000000000..fb4199eb7afe --- /dev/null +++ b/sys-devel/prelink/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>toolchain</herd> +</pkgmetadata> diff --git a/sys-devel/prelink/prelink-20110511.ebuild b/sys-devel/prelink/prelink-20110511.ebuild new file mode 100644 index 000000000000..36da2f13a86d --- /dev/null +++ b/sys-devel/prelink/prelink-20110511.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit eutils flag-o-matic + +DESCRIPTION="Modifies ELFs to avoid runtime symbol resolutions resulting in faster load times" +HOMEPAGE="http://people.redhat.com/jakub/prelink" + +SRC_URI="mirror://gentoo/${P}.tar.bz2" +#SRC_URI="http://people.redhat.com/jakub/prelink/${P}.tar.bz2" +# +# if not available rip the distfile with rpm2targz from +# http://mirrors.kernel.org/fedora/development/rawhide/source/SRPMS/prelink-[ver].src.rpm + +# track http://pkgs.fedoraproject.org/gitweb/?p=prelink.git;a=summary for +# version bumps + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 -arm ppc ppc64 x86" +IUSE="" + +DEPEND=">=dev-libs/elfutils-0.100[static-libs(+)] + !dev-libs/libelf + >=sys-libs/glibc-2.8" +RDEPEND="${DEPEND} + >=sys-devel/binutils-2.18" + +S=${WORKDIR}/${PN} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-20061201-prelink-conf.patch + + sed -i -e 's:undosyslibs.sh::' testsuite/Makefile.in #254201 + sed -i -e '/^CC=/s: : -Wl,--disable-new-dtags :' testsuite/functions.sh #100147 + + # older GCCs don't support this flag + # sed it from the Makefile then add it back to CFLAGS so we can use + # strip-unsupported-flags + sed -i -e 's:-Wno-pointer-sign::' src/Makefile.in #325269 + append-cflags -Wno-pointer-sign + strip-unsupported-flags +} + +src_install() { + default + + insinto /etc + doins doc/prelink.conf + + exeinto /etc/cron.daily + newexe "${FILESDIR}"/prelink.cron prelink + newconfd "${FILESDIR}"/prelink.confd prelink + + dodir /var/{lib/misc,log} + touch "${D}/var/lib/misc/prelink.full" + touch "${D}/var/lib/misc/prelink.quick" + touch "${D}/var/lib/misc/prelink.force" + touch "${D}/var/log/prelink.log" +} + +pkg_postinst() { + echo + elog "You may wish to read the Gentoo Linux Prelink Guide, which can be" + elog "found online at:" + elog + elog " https://wiki.gentoo.org/wiki/Prelink" + elog + elog "Please edit /etc/conf.d/prelink to enable and configure prelink" + echo + touch "${ROOT}/var/lib/misc/prelink.force" +} diff --git a/sys-devel/prelink/prelink-20111012.ebuild b/sys-devel/prelink/prelink-20111012.ebuild new file mode 100644 index 000000000000..ac6413fc74d7 --- /dev/null +++ b/sys-devel/prelink/prelink-20111012.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit eutils flag-o-matic + +DESCRIPTION="Modifies ELFs to avoid runtime symbol resolutions resulting in faster load times" +HOMEPAGE="http://people.redhat.com/jakub/prelink" + +#SRC_URI="mirror://gentoo/${P}.tar.bz2" +SRC_URI="http://people.redhat.com/jakub/prelink/${P}.tar.bz2" +# +# if not available rip the distfile with rpm2targz from +# http://mirrors.kernel.org/fedora/development/rawhide/source/SRPMS/prelink-[ver].src.rpm + +# track http://pkgs.fedoraproject.org/gitweb/?p=prelink.git;a=summary for +# version bumps + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 -arm ~ppc ~ppc64 ~x86" +IUSE="" + +DEPEND=">=dev-libs/elfutils-0.100[static-libs(+)] + !dev-libs/libelf + >=sys-libs/glibc-2.8" +RDEPEND="${DEPEND} + >=sys-devel/binutils-2.18" + +S=${WORKDIR}/${PN} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-20061201-prelink-conf.patch + + sed -i -e 's:undosyslibs.sh::' testsuite/Makefile.in #254201 + sed -i -e '/^CC=/s: : -Wl,--disable-new-dtags :' testsuite/functions.sh #100147 + # >=binutils-2.22 --no-copy-dt-needed-entries is the default + # --copy-dt-needed-entries was renamed from --add-needed in 2.21, use the + # former so we don't have to bump the dep + sed -i \ + -e '/CCLINK=/s:\(CCLINK="$(CC)\):\1 -Wl,--add-needed :' \ + -e '/CXXLINK=/s:\(CXXLINK="$(CXX)\):\1 -Wl,--add-needed :' \ + testsuite/Makefile.in + + has_version 'dev-libs/elfutils[threads]' && append-ldflags -pthread + # older GCCs don't support this flag + sed -i -e 's:-Wno-pointer-sign::' src/Makefile.in #325269 + append-cflags -Wno-pointer-sign + strip-unsupported-flags +} + +src_install() { + default + + insinto /etc + doins doc/prelink.conf + + exeinto /etc/cron.daily + newexe "${FILESDIR}"/prelink.cron prelink + newconfd "${FILESDIR}"/prelink.confd prelink + + dodir /var/{lib/misc,log} + touch "${D}/var/lib/misc/prelink.full" + touch "${D}/var/lib/misc/prelink.quick" + touch "${D}/var/lib/misc/prelink.force" + touch "${D}/var/log/prelink.log" +} + +pkg_postinst() { + echo + elog "You may wish to read the Gentoo Linux Prelink Guide, which can be" + elog "found online at:" + elog + elog " https://wiki.gentoo.org/wiki/Prelink" + elog + elog "Please edit /etc/conf.d/prelink to enable and configure prelink" + echo + touch "${ROOT}/var/lib/misc/prelink.force" +} diff --git a/sys-devel/prelink/prelink-20120628.ebuild b/sys-devel/prelink/prelink-20120628.ebuild new file mode 100644 index 000000000000..32bedf4cd224 --- /dev/null +++ b/sys-devel/prelink/prelink-20120628.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit autotools eutils flag-o-matic + +DESCRIPTION="Modifies ELFs to avoid runtime symbol resolutions resulting in faster load times" +HOMEPAGE="http://people.redhat.com/jakub/prelink" + +SRC_URI="mirror://gentoo/${P}.tar.bz2" +#SRC_URI="http://people.redhat.com/jakub/prelink/${P}.tar.bz2" + +# if not available on jakub's dev space extract the distfile with rpm2tarbz2 from +# http://mirrors.kernel.org/fedora/development/rawhide/source/SRPMS/prelink-[ver].src.rpm +# +# track http://pkgs.fedoraproject.org/cgit/prelink.git/ for updates + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 -arm ~ppc ~ppc64 ~x86" +IUSE="selinux" + +DEPEND=">=dev-libs/elfutils-0.100[static-libs(+)] + selinux? ( sys-libs/libselinux[static-libs(+)] ) + !dev-libs/libelf + >=sys-libs/glibc-2.8" +RDEPEND="${DEPEND} + >=sys-devel/binutils-2.18" + +S=${WORKDIR}/${PN} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-20061201-prelink-conf.patch + + sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.in || die #469126 + + sed -i -e '/^CC=/s: : -Wl,--disable-new-dtags :' testsuite/functions.sh #100147 + # >=binutils-2.22 --no-copy-dt-needed-entries is the default + # --copy-dt-needed-entries was renamed from --add-needed in 2.21, use the + # former so we don't have to bump the dep + sed -i \ + -e '/CCLINK=/s:\(CCLINK="$(CC)\):\1 -Wl,--add-needed :' \ + -e '/CXXLINK=/s:\(CXXLINK="$(CXX)\):\1 -Wl,--add-needed :' \ + testsuite/Makefile.am + + # older GCCs don't support this flag + sed -i -e 's:-Wno-pointer-sign::' src/Makefile.am #325269 + append-cflags -Wno-pointer-sign + strip-unsupported-flags + + has_version 'dev-libs/elfutils[threads]' && append-ldflags -pthread + + eautoreconf # prevent maintainer mode + + # have to do this after eautoreconf or automake barfs on the trailing + # backslash of the previous line + sed -i -e 's:undosyslibs.sh::' testsuite/Makefile.in # 254201 + + export ac_cv_{header_selinux_selinux_h,lib_selinux_is_selinux_enabled}=$(usex selinux) +} + +src_install() { + default + + insinto /etc + doins doc/prelink.conf + + exeinto /etc/cron.daily + newexe "${FILESDIR}"/prelink.cron prelink + newconfd "${FILESDIR}"/prelink.confd prelink + + dodir /var/{lib/misc,log} + touch "${D}/var/lib/misc/prelink.full" + touch "${D}/var/lib/misc/prelink.quick" + touch "${D}/var/lib/misc/prelink.force" + touch "${D}/var/log/prelink.log" +} + +pkg_postinst() { + echo + elog "You may wish to read the Gentoo Linux Prelink Guide, which can be" + elog "found online at:" + elog + elog " https://wiki.gentoo.org/wiki/Prelink" + elog + elog "Please edit /etc/conf.d/prelink to enable and configure prelink" + echo + touch "${ROOT}/var/lib/misc/prelink.force" +} diff --git a/sys-devel/prelink/prelink-20130503.ebuild b/sys-devel/prelink/prelink-20130503.ebuild new file mode 100644 index 000000000000..66f2b56608a2 --- /dev/null +++ b/sys-devel/prelink/prelink-20130503.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit autotools eutils flag-o-matic + +DESCRIPTION="Modifies ELFs to avoid runtime symbol resolutions resulting in faster load times" +HOMEPAGE="http://people.redhat.com/jakub/prelink" + +SRC_URI="mirror://gentoo/${P}.tar.bz2" +#SRC_URI="http://people.redhat.com/jakub/prelink/${P}.tar.bz2" + +# if not available on jakub's dev space extract the distfile with rpm2tarbz2 from +# http://mirrors.kernel.org/fedora/development/rawhide/source/SRPMS/p/prelink-[ver].src.rpm +# +# track http://pkgs.fedoraproject.org/cgit/prelink.git/ for updates + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 -arm ppc ppc64 x86" +IUSE="selinux" + +DEPEND=">=dev-libs/elfutils-0.100[static-libs(+)] + selinux? ( sys-libs/libselinux[static-libs(+)] ) + !dev-libs/libelf + >=sys-libs/glibc-2.8" +RDEPEND="${DEPEND} + >=sys-devel/binutils-2.18" + +S=${WORKDIR}/${PN} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-20130503-prelink-conf.patch + epatch "${FILESDIR}"/${PN}-20130503-libiberty-md5.patch + epatch "${FILESDIR}"/${PN}-armhf-dynamic-linker.patch + + sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.in || die #469126 + + sed -i -e '/^CC=/s: : -Wl,--disable-new-dtags :' testsuite/functions.sh #100147 + # >=binutils-2.22 --no-copy-dt-needed-entries is the default + # --copy-dt-needed-entries was renamed from --add-needed in 2.21, use the + # former so we don't have to bump the dep + sed -i \ + -e '/CCLINK=/s:CCLINK="$(CC):& -Wl,--add-needed :' \ + -e '/CXXLINK=/s:CXXLINK="$(CXX):& -Wl,--add-needed :' \ + testsuite/Makefile.am + + has_version 'dev-libs/elfutils[threads]' && append-ldflags -pthread + + eautoreconf # prevent maintainer mode + + # have to do this after eautoreconf or automake barfs on the trailing + # backslash of the previous line + sed -i -e 's:undosyslibs.sh::' testsuite/Makefile.in #254201 + + export ac_cv_{header_selinux_selinux_h,lib_selinux_is_selinux_enabled}=$(usex selinux) +} + +src_install() { + default + + insinto /etc + doins doc/prelink.conf + + exeinto /etc/cron.daily + newexe "${FILESDIR}"/prelink.cron prelink + newconfd "${FILESDIR}"/prelink.confd prelink + + dodir /var/{lib/misc,log} + touch "${ED}"/var/lib/misc/prelink.{full,quick,force} + touch "${ED}"/var/log/prelink.log +} + +pkg_postinst() { + if [ -z "${REPLACING_VERSIONS}" ] ; then + elog "You may wish to read the Gentoo Linux Prelink Guide, which can be" + elog "found online at:" + elog " https://wiki.gentoo.org/wiki/Prelink" + elog "Please edit /etc/conf.d/prelink to enable and configure prelink" + fi + touch "${EROOT}/var/lib/misc/prelink.force" +} |