[oe-commits] Martin Jansa : update-alternatives-cworth: if there is more alternatives with same preference use latest

git version control git at git.openembedded.org
Thu Nov 5 10:38:25 UTC 2009


Module: openembedded.git
Branch: shr/merge
Commit: 6c1ed757c1498aff5b4b1b876332d2981f0855a1
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=6c1ed757c1498aff5b4b1b876332d2981f0855a1

Author: Martin Jansa <Martin.Jansa at gmail.com>
Date:   Thu Nov  5 10:25:59 2009 +0100

update-alternatives-cworth: if there is more alternatives with same preference use latest

Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>

---

 .../update-alternatives-cworth.inc                 |    3 +-
 .../update-alternatives.use.last.patch             |   34 ++++++++++++++++++++
 .../update-alternatives-cworth_0.99.154.bb         |    2 +
 3 files changed, 38 insertions(+), 1 deletions(-)

diff --git a/recipes/update-alternatives/update-alternatives-cworth.inc b/recipes/update-alternatives/update-alternatives-cworth.inc
index f23bfe8..3c1b2e6 100644
--- a/recipes/update-alternatives/update-alternatives-cworth.inc
+++ b/recipes/update-alternatives/update-alternatives-cworth.inc
@@ -1,6 +1,7 @@
 LICENSE = "GPL"
 SECTION = "base"
-SRC_URI = "${HANDHELDS_CVS};module=familiar/dist/ipkg;tag=${@'V' + bb.data.getVar('PV',d,1).replace('.', '-')}"
+SRC_URI = "${HANDHELDS_CVS};module=familiar/dist/ipkg;tag=${@'V' + bb.data.getVar('PV',d,1).replace('.', '-')} \
+           file://update-alternatives.use.last.patch;patch=1"
 S = "${WORKDIR}/ipkg/C"
 PACKAGE_ARCH = "all"
 
diff --git a/recipes/update-alternatives/update-alternatives-cworth/update-alternatives.use.last.patch b/recipes/update-alternatives/update-alternatives-cworth/update-alternatives.use.last.patch
new file mode 100644
index 0000000..c23c4f8
--- /dev/null
+++ b/recipes/update-alternatives/update-alternatives-cworth/update-alternatives.use.last.patch
@@ -0,0 +1,34 @@
+diff -uNr C.orig/update-alternatives C/update-alternatives
+--- C.orig/update-alternatives	2003-03-28 17:39:45.000000000 +0100
++++ C/update-alternatives	2009-09-17 16:46:59.000000000 +0200
+@@ -97,8 +97,8 @@
+ 
+ ##	path=`sed -ne "1!p" $ad/$name | sort -nr -k2 | head -1 | sed 's/ .*//'`
+ ## busybox safe:
+-	path=`sed -ne "1!p" $ad/$name | sed -e "s/\(.*\) \(.*\)/\2 \1/g" | sort -nr | head -n 1 | sed 's/[^ ]* //'`
+-	if [ -z "$path" ]; then
++	prio=`sed -ne "1!p" $ad/$name | sed -e "s/\(.*\) \(.*\)/\2 \1/g" | sort -nr | head -n 1 | sed 's/ [^ ]*$//'`
++	if [ -z "$prio" ]; then
+ 		echo "update-alternatives: removing $link as no more alternatives exist for it"
+ 		rm $ad/$name
+ 		if [ -L $link ]; then
+@@ -107,11 +107,19 @@
+ 		return 0
+ 	fi
+ 
++	## find last line with highest priority
++	path=`grep "${prio}$" $ad/$name | tail -n 1 | sed 's/ [^ ]*$//'`
++
+ 	if [ ! -e $link -o -L $link ]; then
+ 		local link_dir=`dirname $link`
+ 		if [ ! -d $link_dir ]; then
+ 			mkdir -p $link_dir
+ 		fi
++		if [ -h $link ]; then
++			# if $link exists and the target is directory, than ln -sf $path $link, doesn't replace link to that directory, but creates new link inside
++			echo "update-alternatives: Removing $link"
++			rm -f $link
++		fi
+ 		ln -sf $path $link
+ 		echo "update-alternatives: Linking $link to $path"
+ 	else
diff --git a/recipes/update-alternatives/update-alternatives-cworth_0.99.154.bb b/recipes/update-alternatives/update-alternatives-cworth_0.99.154.bb
index 6cab1e5..c260e40 100644
--- a/recipes/update-alternatives/update-alternatives-cworth_0.99.154.bb
+++ b/recipes/update-alternatives/update-alternatives-cworth_0.99.154.bb
@@ -2,6 +2,8 @@ require update-alternatives-cworth.inc
 
 RPROVIDES_${PN} = "update-alternatives"
 
+PR="r2"
+
 do_install () {
     install -d ${D}${sbindir} \
                ${D}${sysconfdir}/alternatives \





More information about the Openembedded-commits mailing list