summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Alfredsen <loki_val@gentoo.org>2009-04-19 15:48:22 +0000
committerPeter Alfredsen <loki_val@gentoo.org>2009-04-19 15:48:22 +0000
commit367ec06c74e468544f531241c91f30235c445674 (patch)
treef7b72daa4a5e13f7c365f085f38b3d4d7974aea5 /dev-util
parentamd64/x86 stable, bug #266674 (diff)
downloadhistorical-367ec06c74e468544f531241c91f30235c445674.tar.gz
historical-367ec06c74e468544f531241c91f30235c445674.tar.bz2
historical-367ec06c74e468544f531241c91f30235c445674.zip
Initial commit. Script and ebuild by me.
Package-Manager: portage-2.2_rc28/cvs/Linux x86_64
Diffstat (limited to 'dev-util')
-rw-r--r--dev-util/lafilefixer/ChangeLog10
-rw-r--r--dev-util/lafilefixer/Manifest4
-rw-r--r--dev-util/lafilefixer/files/lafilefixer-0.0.189
-rw-r--r--dev-util/lafilefixer/lafilefixer-0.0.1.ebuild45
-rw-r--r--dev-util/lafilefixer/metadata.xml9
5 files changed, 157 insertions, 0 deletions
diff --git a/dev-util/lafilefixer/ChangeLog b/dev-util/lafilefixer/ChangeLog
new file mode 100644
index 000000000000..5df6bd2ae542
--- /dev/null
+++ b/dev-util/lafilefixer/ChangeLog
@@ -0,0 +1,10 @@
+# ChangeLog for dev-util/lafilefixer
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/lafilefixer/ChangeLog,v 1.1 2009/04/19 15:48:22 loki_val Exp $
+
+*lafilefixer-0.0.1 (19 Apr 2009)
+
+ 19 Apr 2009; Peter Alfredsen <loki_val@gentoo.org>
+ +files/lafilefixer-0.0.1, +metadata.xml, +lafilefixer-0.0.1.ebuild:
+ Initial commit. Script and ebuild by me.
+
diff --git a/dev-util/lafilefixer/Manifest b/dev-util/lafilefixer/Manifest
new file mode 100644
index 000000000000..87d0981ddcb5
--- /dev/null
+++ b/dev-util/lafilefixer/Manifest
@@ -0,0 +1,4 @@
+AUX lafilefixer-0.0.1 2589 RMD160 0144f1fc86151301e200d49472464122a4414aa1 SHA1 b4901bf51ef89e975ecd011a26fc1ad3bb381b5b SHA256 85e1049a155a923b3fa76906b55cf68b1f5225358954dd7f68d7bb4e0e38c3c0
+EBUILD lafilefixer-0.0.1.ebuild 1469 RMD160 450f38919486536e3a461f8c63441814fc1cecf1 SHA1 f17f5d329b529e5caf7d5948ae580acdb1ab493f SHA256 96d6839cfc12c3d7642ee826b133915b6f2b54bfb4ae403ba33c39a04950b15f
+MISC ChangeLog 416 RMD160 f7b31459b16d8deaf723a8a1fe172cd215c8343d SHA1 7565669f09d342a6430298960e6d9a026cc90447 SHA256 5deb81b3467f76a60696efbf0a22110dcd4ae90fc84f05c4aa6d6620961bae74
+MISC metadata.xml 253 RMD160 141d5f2eda759e5ee13530882de850132d515b25 SHA1 c6cda2f9e6dee3b32f89eb86fbfc3c0f53443029 SHA256 f36bc5b0238c1fb1fbaa0469f628b7f09e86699d7cf9e95864e1ef153c70f265
diff --git a/dev-util/lafilefixer/files/lafilefixer-0.0.1 b/dev-util/lafilefixer/files/lafilefixer-0.0.1
new file mode 100644
index 000000000000..09a9cb91bd5e
--- /dev/null
+++ b/dev-util/lafilefixer/files/lafilefixer-0.0.1
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+# Libtool does not support spaces in dependency_libs entries
+# so we won't worry overly about them either.
+
+fix_la_files() {
+ if ! grep --help &> /dev/null
+ then
+ echo "Grep not functional. Aborting."
+ return 1
+ elif ! sed --help &> /dev/null
+ then
+ echo "Sed not functional. Aborting."
+ return 1
+ elif ! uniq --help &> /dev/null
+ then
+ echo "Uniq not functional. Aborting."
+ elif ! sort --help &> /dev/null
+ then
+ echo "Sort not functional. Aborting."
+ fi
+ declare lafile
+ for lafile in "$@"
+ do
+ local dependency_libs=""
+ local inh_link_flags=""
+ local new_dep_libs=""
+ local libladir=""
+ local librpath=""
+ local dep_libs=""
+ local lib=""
+
+ dep_libs="$(grep '^dependency_libs=' $lafile)"
+ dep_libs="${dep_libs#dependency_libs=\'}"
+ dep_libs="${dep_libs%\'}"
+
+ inh_link_flags="$(grep '^inherited_linker_flags=' $lafile)"
+ inh_link_flags="${inh_link_flags#inherited_linker_flags=\'}"
+ inh_link_flags="${inh_link_flags%\'}"
+
+
+ for entry in $dep_libs
+ do
+ if [[ "${entry#-L}" != "${entry}" ]]
+ then
+ [[ ${entry/X11R6\/lib} != ${entry} ]] && entry="${entry/X11R6\/}"
+ [[ ${entry/local\/lib} != ${entry} ]] && entry="${entry/local\/}"
+ [[ ${entry/usr\/lib*\/pkgconfig\/..\/..} != ${entry} ]] && entry="${entry/\/lib*\/pkgconfig\/..\/..}"
+ [[ ${entry/usr\/lib*\/pkgconfig\/..} != ${entry} ]] && entry="${entry/\/pkgconfig\/..}"
+ libladir="${libladir} ${entry}"
+ elif [[ "${entry#-R}" != "${entry}" ]]
+ then
+ librpath="${librpath} ${entry}"
+ elif [[ "${entry#-l}" != "${entry}" ]]
+ then
+ new_dep_libs="${new_dep_libs} ${entry}"
+ elif [[ "${entry%.la}" != "${entry}" ]]
+ then
+ libladir="${libladir} -L${entry%/*.la}"
+ lib="${entry%.la}"
+ lib="${lib##*\/lib}"
+ lib="-l${lib}"
+ new_dep_libs="${new_dep_libs} ${lib}"
+
+ elif [[ "${entry}" == "-pthread" ]]
+ then
+ if [[ ${inh_link_flags} != *-pthread* ]]
+ then
+ inh_link_flags="${inh_link_flags} -pthread"
+ fi
+ else
+ echo $lafile
+ echo "${entry}"
+ echo "Holy Moley, Dorothy, we ain't in Kansas and Luke, I'm not your father"
+ return 1
+ fi
+ done
+ libladir=( $(printf '%s' "$(for i in ${libladir}; do printf '%s\n' $i; done)"|sort|uniq) )
+ librpath=( $(printf '%s' "$(for i in ${librpath}; do printf '%s\n' $i; done)"|sort|uniq) )
+ new_dep_libs=( ${librpath[@]} ${libladir[@]} ${new_dep_libs} )
+ new_dep_libs=" ${new_dep_libs[@]}"
+ sed -i \
+ -e "/^dependency_libs/ c\dependency_libs='${new_dep_libs}'" \
+ -e "/^inherited_linker_flags/ c\inherited_linker_flags='${inh_link_flags}'" \
+ ${lafile}
+ done
+}
+
+fix_la_files "$@"
diff --git a/dev-util/lafilefixer/lafilefixer-0.0.1.ebuild b/dev-util/lafilefixer/lafilefixer-0.0.1.ebuild
new file mode 100644
index 000000000000..89e15b42d8fb
--- /dev/null
+++ b/dev-util/lafilefixer/lafilefixer-0.0.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/lafilefixer/lafilefixer-0.0.1.ebuild,v 1.1 2009/04/19 15:48:22 loki_val Exp $
+
+EAPI=2
+
+DESCRIPTION="Utility to fix your .la files"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI=""
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+DEPEND=""
+RDEPEND=">=app-shells/bash-3.1
+ sys-apps/grep
+ sys-apps/coreutils
+ sys-apps/sed"
+
+S=""
+
+src_unpack() { : ; }
+src_prepare() { : ; }
+src_configure() { : ; }
+src_unpack() { : ; }
+src_install() { newbin "${FILESDIR}/${P}" ${PN} ; }
+
+pkg_postinst() {
+ elog "This simple utility will fix your .la files to not point to other .la files."
+ elog "This is desirable because it will ensure your packages are not broken when"
+ elog ".la files are removed from other packages."
+ elog "The utility is for now quite simple and only accepts a delimited list of"
+ elog ".la files."
+ elog ""
+ elog "Patches are accepted."
+ elog ""
+ elog "If you want to fix all your .la files, something like this will work:"
+ elog "lafilefixer $(find /usr/lib* -name '*.la' -type f)"
+ elog "NOTE: If you have kde installed, you may want to add /usr/kde/*/lib* to the"
+ elog "list of directories to search for .la files:"
+ elog "lafilefixer $(find /usr/lib* /usr/kde/*/lib* -name '*.la' -type f)"
+ elog ""
+ elog "Verify that all your .la files are fixed with revdep-rebuild from"
+ elog "app-portage/gentoolkit"
+}
diff --git a/dev-util/lafilefixer/metadata.xml b/dev-util/lafilefixer/metadata.xml
new file mode 100644
index 000000000000..be56df20d45f
--- /dev/null
+++ b/dev-util/lafilefixer/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>loki_val@gentoo.org</email>
+ <name>Peter Alfredsen</name>
+</maintainer>
+</pkgmetadata>