[Pkg-mono-svn-commits] rev 1976 - in cli-common/trunk: . debian

Mirco Bauer meebey-guest at costa.debian.org
Sun Aug 28 22:11:59 UTC 2005


Author: meebey-guest
Date: 2005-08-28 22:11:58 +0000 (Sun, 28 Aug 2005)
New Revision: 1976

Modified:
   cli-common/trunk/cli-policy.sgml
   cli-common/trunk/debian/changelog
   cli-common/trunk/dh_clideps
   cli-common/trunk/dh_makeclilibs
Log:
- fixes and new/better handling, see debian/changelog



Modified: cli-common/trunk/cli-policy.sgml
===================================================================
--- cli-common/trunk/cli-policy.sgml	2005-08-28 14:13:23 UTC (rev 1975)
+++ cli-common/trunk/cli-policy.sgml	2005-08-28 22:11:58 UTC (rev 1976)
@@ -126,7 +126,7 @@
     <heading>Build Dependencies</heading>
 
     <p>At a minimum, CLI packages must build-depend on
-    <package>cli-common</package> (&gt;= 0.1.3) and the compiler.</p>
+    <package>cli-common</package> (&gt;= 0.2.0) and the compiler.</p>
     
     <p>
       Current CLI compilers in Debian:

Modified: cli-common/trunk/debian/changelog
===================================================================
--- cli-common/trunk/debian/changelog	2005-08-28 14:13:23 UTC (rev 1975)
+++ cli-common/trunk/debian/changelog	2005-08-28 22:11:58 UTC (rev 1976)
@@ -1,8 +1,9 @@
 cli-common (0.2.0) unstable; urgency=low
 
-  * NOT RELEASED YET
   * Mirco 'meebey' Bauer
+    + Ported the CLI policy in SGML.
     + /usr/share/doc/cli-common contains now the CLI policy.
+    + Includes CLI policy version 0.2.0.
     + debian/control:
       - Added debiandoc-sgml and tetex-extra to build-deps-indep.
       - Changed Build-Depends to Build-Depends-Indep.
@@ -11,6 +12,14 @@
       - Moved pod2man calls to build target.
     + debian/cli-common.docs:
       - Added generated CLI policy documents.
+    + dh_clideps:
+      - Added error handling/messages when monodis fails for some reason.
+      - Fixed bug, it was not generating required dependencies when run in
+        internal-mono mode, caused wrong CLI deps for mono packages.
+      - Packages with no .exe files will no longer have a mono-jit
+        dependency.
+      - The versioned dependency of mono-jit for applications will be >= 1.0
+        when using .NET 1.0 and >= 1.1.8.1-1 when using .NET 2.0 now.
 
  -- Debian Mono Group <pkg-mono-group at lists.alioth.debian.org>  Sun, 28 Aug 2005 15:53:48 +0200
 

Modified: cli-common/trunk/dh_clideps
===================================================================
--- cli-common/trunk/dh_clideps	2005-08-28 14:13:23 UTC (rev 1975)
+++ cli-common/trunk/dh_clideps	2005-08-28 22:11:58 UTC (rev 1976)
@@ -8,6 +8,7 @@
 
 use strict;
 use File::Find;
+use File::Temp;
 use Debian::Debhelper::Dh_Lib;
 
 #eval 'use Debian::Debhelper::Dh_Lib';
@@ -34,7 +35,7 @@
 which refers to the particular shared library (by its SONAME).
 
 If you use this program, your package should build-depend on cli-common
-(>= 0.1.3).
+(>= 0.2.0).
 
 =head1 OPTIONS
 
@@ -68,7 +69,9 @@
 
 if (defined($ARGV[0]) && $ARGV[0] eq "internal-mono") {
     $clr = "mono";
-    $cli_parser = "MONO_PATH=debian/tmp/usr/lib/mono debian/tmp/usr/bin/monodis";
+    my $pwd=`pwd`;
+    chomp $pwd;
+    $cli_parser = "MONO_PATH=$pwd/debian/tmp/usr/lib/mono $pwd/debian/tmp/usr/bin/monodis";
     $cli_version = `debian/tmp/usr/bin/mono --version 2>&1`;
     verbose_print("Will use built Mono (debian/tmp/usr/bin/monodis) for CIL parsing.");
 } elsif (-x "/usr/bin/monodis") {
@@ -87,9 +90,9 @@
   local $/="";
   open(FILE, 'debian/control');
   my @filedata = <FILE>;
-  close FILE;
-  if (!($filedata[0] =~ /Build-Depends(-Indep)?: .*cli-common \(>= 0\.1\.3\)/)) {
-      warning("Warning! No Build-Depends(-Indep) on cli-common (>= 0.1.3)!");
+  close(FILE);
+  if (!($filedata[0] =~ /Build-Depends(-Indep)?: .*cli-common \(>= 0\.2\.0\)/)) {
+      warning("Warning! No Build-Depends(-Indep) on cli-common (>= 0.2.0)!");
   }
 }
 
@@ -133,21 +136,43 @@
     my $tmp = tmpdir($package);
     my %deps;
     my @depkgs;
-
+    my $found_exe = 0;
+    my $needs_net_1_0 = 0;
+    my $needs_net_2_0 = 0;
+    
     delsubstvar($package, "cli:Depends");    # for idempotency
 
     # find binaries
     find (sub {
+        return unless -f and /\.(exe|dll)$/;
         my $vers;
-        return unless -f and /\.(exe|dll)$/;
-        local *F;
         my $file = $_;
-        return unless open F, "LANG=C $cli_parser --assemblyref $file 2>&1 |";
+        if (/\.exe$/) {
+          $found_exe = 1;
+        }
+        my (undef, $tmpfile) = File::Temp::tempfile("/tmp/".basename($0).".XXXX", UNLINK => 1);
+        my $command = "LANG=C $cli_parser --assemblyref $file 2>&1 > $tmpfile";
         
-        if (my $extra = extraDeps ($file)) {
+        system($command);
+        if ($?) {
+          my $output;
+          {
+            local *F;
+            open(F, $tmpfile);
+            local $/;
+            $output = <F>;
+            close(F);
+          }
+          error("cli_parser call failed: '".$command."' rc: $? output: $output");
+          return;
+        }
+        
+        if (my $extra = extraDeps($file)) {
            push(@depkgs, $extra);
         }
         our($vers, $name, $key);
+        local *F;
+        open(F, $tmpfile);
         while (<F>) {
             $vers = $1 if /Version=(.*)\n/;
             $name = $1 if /Could not find assembly ([^,]+),/;
@@ -166,9 +191,19 @@
                     push(@depkgs, $libdata{$compat});
                 }
                 #print "ok, ".$deps{ "$name/$vers" . "__" . lc($key) };
+
+                if ($name eq "mscorlib") {
+                  if ($vers eq "1.0.5000.0") {
+                    $needs_net_1_0 = 1;
+                  } elsif ($vers eq "2.0.3600.0") {
+                    $needs_net_2_0 = 1;
+                  } else {
+                    warning("Warning! Unknown mscorlib version: $vers!");
+                  }
+                } 
             }
         }
-        close F;
+        close(F);
      }, $tmp);
 
     my %depkgsFiltered;
@@ -197,9 +232,15 @@
     }
 
     my $deps;
-    if (!defined($dh{R_FLAG})) {
+    if (!defined($dh{R_FLAG}) && $found_exe) {
         if ($clr eq "mono") {
-          $deps = "mono-jit (>= $cli_version)";
+          if ($needs_net_1_0) {
+            $deps = "mono-jit (>= 1.0)";
+          } elsif ($needs_net_2_0) {
+            $deps = "mono-jit (>= 1.1.8.1-1)";
+          } else {
+            $deps = "mono-jit (>= $cli_version)";
+          }
         } elsif ($clr eq "pnet") {
           $deps = "pnet-interpreter (>= $cli_version)";
         }

Modified: cli-common/trunk/dh_makeclilibs
===================================================================
--- cli-common/trunk/dh_makeclilibs	2005-08-28 14:13:23 UTC (rev 1975)
+++ cli-common/trunk/dh_makeclilibs	2005-08-28 22:11:58 UTC (rev 1976)
@@ -147,8 +147,8 @@
   open(FILE, 'debian/control');
   my @filedata = <FILE>;
   close FILE;
-  if (!($filedata[0] =~ /Build-Depends(-Indep)?: .*cli-common \(>= 0\.1\.3\)/)) {
-      warning("Warning! No Build-Depends(-Indep) on cli-common (>= 0.1.3)!");
+  if (!($filedata[0] =~ /Build-Depends(-Indep)?: .*cli-common \(>= 0\.2\.0\)/)) {
+      warning("Warning! No Build-Depends(-Indep) on cli-common (>= 0.2.0)!");
   }
 }
 




More information about the Pkg-mono-svn-commits mailing list