aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/update-alternatives/update-alternatives-cworth
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2009-11-18 03:53:23 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2010-01-07 12:58:16 +0100
commit758da30df2ca3abbdad24c972f590eaa40e70930 (patch)
tree2953ca2a10237aa98e4168b1edfa10ffd6e641b5 /recipes/update-alternatives/update-alternatives-cworth
parent1700b4c84455186bc1d2f80bfc4ea65b51736cdb (diff)
downloadopenembedded-758da30df2ca3abbdad24c972f590eaa40e70930.tar.gz
update-alternatives-cworth: use latest installed alternative
* if there is more alternatives with higest priority, use the one last in alternatives file (latest installed) * if target exists and its directory, remove link, otherwise new alternative link is created inside that direstory Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes/update-alternatives/update-alternatives-cworth')
-rw-r--r--recipes/update-alternatives/update-alternatives-cworth/update-alternatives.use.last.patch34
1 files changed, 34 insertions, 0 deletions
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 0000000000..7bd5bd268b
--- /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 -a -d $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