update-alternatives-dpkg: Adding support to relative paths.
authorRodrigo Vivi <rodrigo.vivi@gmail.com>
Mon, 24 Mar 2008 18:23:47 +0000 (18:23 +0000)
committerRodrigo Vivi <rodrigo.vivi@gmail.com>
Mon, 24 Mar 2008 18:23:47 +0000 (18:23 +0000)
update-alternatives-cworth accept both: full and relative paths, but update-alternatives-dpkg accept only full paths.
The best solution for that would be using only full paths but it would require change lots of bb files.
By now consider to use only full paths on your bb files.

packages/update-alternatives/update-alternatives-dpkg-1.13.22/.mtn2git_empty [new file with mode: 0644]
packages/update-alternatives/update-alternatives-dpkg-1.13.22/paths.patch [new file with mode: 0644]
packages/update-alternatives/update-alternatives-dpkg.inc

diff --git a/packages/update-alternatives/update-alternatives-dpkg-1.13.22/.mtn2git_empty b/packages/update-alternatives/update-alternatives-dpkg-1.13.22/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/update-alternatives/update-alternatives-dpkg-1.13.22/paths.patch b/packages/update-alternatives/update-alternatives-dpkg-1.13.22/paths.patch
new file mode 100644 (file)
index 0000000..a23bf9a
--- /dev/null
@@ -0,0 +1,26 @@
+diff -ruN dpkg-1.13.22.orig/scripts/update-alternatives.pl dpkg-1.13.22/scripts/update-alternatives.pl
+--- dpkg-1.13.22.orig/scripts/update-alternatives.pl   2006-06-21 01:46:12.000000000 -0300
++++ dpkg-1.13.22/scripts/update-alternatives.pl    2007-08-02 19:36:47.000000000 -0300
+@@ -1,7 +1,7 @@
+ #!/usr/bin/perl --
+ $admindir= "/var/lib/dpkg"; # This line modified by Makefile
+-$dpkglibdir= "../utils"; # This line modified by Makefile
++$dpkglibdir= "/usr/lib/dpkg"; # This line modified by Makefile
+ $version= '0.93.80'; # This line modified by Makefile
+ push (@INC, $dpkglibdir);
+ require 'dpkg-gettext.pl';
+@@ -129,6 +129,12 @@
+         &checkmanymodes;
+         @ARGV >= 4 || &badusage(_g("--install needs <link> <name> <path> <priority>"));
+         ($alink,$name,$apath,$apriority,@ARGV) = @ARGV;
++  if (! -e $apath) { 
++      $apath = substr($alink,0,rindex($alink,"/")+1).$apath;
++  }
++  if (! -e $apath) { 
++      &quit(sprintf(_g("Error: file not found: %s"), $apath));
++  }
+         $apriority =~ m/^[-+]?\d+/ || &badusage(_g("priority must be an integer"));
+         $mode= 'install';
+     } elsif (m/^--(remove|set)$/) {
+
index cffcf83..e3cdb53 100644 (file)
@@ -1,19 +1,14 @@
 LICENSE = "GPL"
 SECTION = "base"
-SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.gz"
+SRC_URI += "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.gz"
 S = "${WORKDIR}/dpkg-${PV}"
 PACKAGE_ARCH = "all"
 
-do_patch () {
-    cat ${S}/scripts/update-alternatives.pl | \
-        sed -n -e '
-    /^\$admindir=.*staging/{
-        x
-        s/^.*$/$D=$ENV{"D"} || ""\;/;
-        p;
-        x;
-        s,^\$admindir=.*staging.*$,$admindir="$D${localstatedir}/dpkg"\;,;
-    };
-    s,^\$altdir=.*$,$altdir="$D${sysconfdir}/alternatives"\;,;
-    p;' > ${S}/scripts/update-alternatives
+SRC_URI += "file://paths.patch;patch=1"
+
+do_patch_append () {
+       import shutil
+       update_alternatives_src = bb.data.getVar('S', d, 1)
+       shutil.move("%s/scripts/update-alternatives.pl" % (update_alternatives_src,),
+                   "%s/scripts/update-alternatives" % (update_alternatives_src,))
 }