[Pkg-mono-svn-commits] rev 247 - mono/branches/experimental/trunk/debian

Eduard Bloch blade@quantz.debian.org
Sun, 15 Feb 2004 16:16:41 +0100


Author: blade
Date: 2004-02-15 16:16:41 +0100 (Sun, 15 Feb 2004)
New Revision: 247

Modified:
   mono/branches/experimental/trunk/debian/dh_mono
Log:
Almost fixed... TODO: finish the embedded manpage, clarify details


Modified: mono/branches/experimental/trunk/debian/dh_mono
===================================================================
--- mono/branches/experimental/trunk/debian/dh_mono	2004-02-15 14:43:52 UTC (rev 246)
+++ mono/branches/experimental/trunk/debian/dh_mono	2004-02-15 15:16:41 UTC (rev 247)
@@ -146,9 +146,9 @@
      my %libsLoc; # custom dll-to-pkgname map
      my %minvLoc; # custom pkgname-to-min-version map
      # first create reserve lists from mono.local
-     if(-r "debian/mono.local") {
+     if(-r "debian/monolibs.local") {
         my $l;
-        open($l, "<debian/mono.local");
+        open($l, "<debian/monolibs.local");
         while(<$l>) {
            # syntax: 
            # foobar.dll package-name
@@ -160,16 +160,17 @@
         }
      }
 
-     # feel %deps with pkg names as keys
+     # fill %deps with pkg names as keys
      foreach my $lib (keys %libs) {
         my $kand = $libsLoc{$lib}; # resolve via local map
-        $kand = `dlocate /usr/lib/$lib.dll || dpkg -S /usr/lib/$lib.dll` 
-          unless $kand;
-        $kand = `dlocate $lib.dll | grep /usr/share/dotnet` unless $kand;
+#        $kand = `dlocate -e /usr/lib/$lib.dll || dpkg -S /usr/lib/$lib.dll` 
+        $kand = `dpkg -S /usr/lib/$lib.dll` unless $kand;
+#        $kand = `dlocate -e $lib.dll | grep /usr/share/dotnet` unless $kand;
         $kand = `dpkg -S $lib.dll | grep /usr/share/dotnet` unless $kand;
         $kand =~ s/:.*//;
         if($kand) { 
-           $deps{$kand} = 1;
+           # we also don't want to have circular deps to this package
+           $deps{$kand} = 1 if($kand ne $package);
         }
         else {
            print "Warning, $lib.dll not found on this system or in debian/mono.local!\n";
@@ -187,8 +188,14 @@
      foreach my $pkg (keys %deps) {
         my $version = $minvLoc{$pkg};
         $version =~ s#[\(\)]##g if $version;
-        if(!$version && `dpkg -s $pkg` =~ /^Version:\s*(\S+)/) {
+        if(!$version && `dpkg -s $pkg` =~ /^Version:\s*(\S+)/m) {
            $version = ">= $1";
+           # FIXME add an option to match the exact versions
+           # match only the upstream version
+           if(!0) {
+              $version =~ s/-[^-]+$//;
+              $version =~ s/=/>/;
+           }
         }
         addsubstvar($package, "mono:Depends", $pkg, $version)
      }