]> git.openpandora.org Git - openembedded.git/commitdiff
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 cffcf836bf85e6a3139ea9729c0af758572fd90a..e3cdb53257190911e5bccb22651d925b58556d20 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,))
 }