Your message dated Thu, 06 Nov 2014 16:07:52 +0000
with message-id <[email protected]>
and subject line Re: Bug#768305: unblock: mono/3.2.8+dfsg-8 & 
fsharp/3.1.1.26+dfsg2-3
has caused the Debian Bug report #768305,
regarding unblock: mono/3.2.8+dfsg-8 & fsharp/3.1.1.26+dfsg2-3
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
768305: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768305
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Package: release.debian.org
User: [email protected]
Usertags: unblock
Severity: normal

Please unblock packages mono & fsharp

This is a 2-part fix to resolve bugs 767507 and 767265 (changes were
required in both Mono and FSharp to resolve the FSharp bugs), which
both render FSharp-compiled applications unable to execute (the
interpreter still works, and the compiler still runs)

Debdiffs attached. Diffstat info:

Mono:
 changelog              |    7 +++
 mono.runtime-script    |   98
++++++++++++++++++++++++++++++++++++++++---------
 patches/debian-changes |    7 ++-
 3 files changed, 91 insertions(+), 21 deletions(-)

FSharp:
 changelog                           |   14 ++++++++++++++
 control                             |    2 +-
 fsharp.installcliframework          |    6 +++---
 libfsharp-core4.3-cil.install       |    3 ++-
 libfsharp-core4.3-cil.installcligac |    5 +++++
 5 files changed, 25 insertions(+), 5 deletions(-)

unblock mono/3.2.8+dfsg-8
unblock fsharp/3.1.1.26+dfsg2-3

- -- System Information:
Debian Release: jessie/sid
  APT prefers trusty-updates
  APT policy: (500, 'trusty-updates'), (500, 'trusty-security'), (500,
'trusty'), (100, 'trusty-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.13.0-39-generic (SMP w/4 CPU cores)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJUW1n7AAoJEMkPnLkOH60MznsH/AnpTdDI/HvRLvNS01CyYD2b
NaDMZ0mvyPhGWMoGSswwDTEo4G0T/9uLjiXMRgZrClfs+p/W7KJ045kUPMMg37b8
eauDjjQLuzsHWtA8kVcSL6vBX/cYbzWmbu/tH5wNKPnRI2ZweCpsWyC0uiTItBPq
eJ8YwKxP6Lwg85wWsYfO9BfNNlv+5LmwnvTrZyfDvgjd2RHASybLSMCpu2fHSat5
VAFR4A3kS0rqhAtyMj5lBzkUUw+uia1324xEky1Ly3K5prml6jRukiVdxtSJSAVG
YKXgsOHMWiMLx6Xpi0K2yWkotuKD3rz+BxB1IQZc2rEc9Ca3C3EKbqinFj3KPYk=
=OaVi
-----END PGP SIGNATURE-----
diff -Nru fsharp-3.1.1.26+dfsg2/debian/changelog 
fsharp-3.1.1.26+dfsg2/debian/changelog
--- fsharp-3.1.1.26+dfsg2/debian/changelog      2014-10-15 14:44:51.000000000 
+0100
+++ fsharp-3.1.1.26+dfsg2/debian/changelog      2014-11-06 10:33:13.000000000 
+0000
@@ -1,3 +1,17 @@
+fsharp (3.1.1.26+dfsg2-3) unstable; urgency=medium
+
+  * [a6804b5] Install sigdata/optdata into the GAC. (Closes: #767507)
+  * [52f8ffb] Depend on Mono 3.2.8+dfsg-8 for installation, since that 
+    is the minimum version to support sigdata/optdata in the GAC.
+
+ -- Jo Shields <[email protected]>  Thu, 06 Nov 2014 10:26:05 +0000
+
+fsharp (3.1.1.26+dfsg2-2) unstable; urgency=medium
+
+  * [f082a28] Ensure 4.3.0 assembly gets installed (Closes: #767265)
+
+ -- Jo Shields <[email protected]>  Fri, 31 Oct 2014 12:55:19 +0000
+
 fsharp (3.1.1.26+dfsg2-1) unstable; urgency=medium
 
   * [f28700d] Actually delete unneeded binaries from +dfsg.orig.tar.gz
diff -Nru fsharp-3.1.1.26+dfsg2/debian/control 
fsharp-3.1.1.26+dfsg2/debian/control
--- fsharp-3.1.1.26+dfsg2/debian/control        2014-10-15 09:45:49.000000000 
+0100
+++ fsharp-3.1.1.26+dfsg2/debian/control        2014-11-06 10:33:13.000000000 
+0000
@@ -34,7 +34,7 @@
   ${cli:Depends},
   ${shlibs:Depends},
   ${misc:Depends},
-  mono-runtime-common | mono-runtime,
+  mono-runtime-common (>= 3.2.8+dfsg-8~) | mono-runtime (>= 3.2.8+dfsg-8~),
 Description: functional-first programming language - core runtime library
  F# is a multi-paradigm programming language, supporting functional,
  imperative, and object-oriented structures.
diff -Nru fsharp-3.1.1.26+dfsg2/debian/fsharp.installcliframework 
fsharp-3.1.1.26+dfsg2/debian/fsharp.installcliframework
--- fsharp-3.1.1.26+dfsg2/debian/fsharp.installcliframework     2014-10-14 
19:26:02.000000000 +0100
+++ fsharp-3.1.1.26+dfsg2/debian/fsharp.installcliframework     2014-10-31 
12:54:12.000000000 +0000
@@ -1,7 +1,7 @@
 # Core library
-40 /usr/lib/cli/FSharp.Core-4.3/FSharp.Core.dll
-40 /usr/lib/cli/FSharp.Core-4.3/FSharp.Core.sigdata
-40 /usr/lib/cli/FSharp.Core-4.3/FSharp.Core.optdata
+40 /usr/lib/cli/FSharp.Core-4.3/4.0/FSharp.Core.dll
+40 /usr/lib/cli/FSharp.Core-4.3/4.0/FSharp.Core.sigdata
+40 /usr/lib/cli/FSharp.Core-4.3/4.0/FSharp.Core.optdata
 
 45 /usr/lib/cli/FSharp.Core-4.3/FSharp.Core.dll
 45 /usr/lib/cli/FSharp.Core-4.3/FSharp.Core.sigdata
diff -Nru fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.install 
fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.install
--- fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.install  2014-10-14 
19:26:02.000000000 +0100
+++ fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.install  2014-10-31 
12:53:45.000000000 +0000
@@ -1,2 +1,3 @@
-usr/lib/mono/gac/FSharp.Core/4.3*/*       /usr/lib/cli/FSharp.Core-4.3
+usr/lib/mono/gac/FSharp.Core/4.3.0.*/*       /usr/lib/cli/FSharp.Core-4.3/4.0/
+usr/lib/mono/gac/FSharp.Core/4.3.1.*/*       /usr/lib/cli/FSharp.Core-4.3/
 usr/lib/mono/gac/policy.*.FSharp.Core/*   /usr/lib/cli/FSharp.Core-4.3     
diff -Nru fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.installcligac 
fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.installcligac
--- fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.installcligac    
2014-10-14 19:26:02.000000000 +0100
+++ fsharp-3.1.1.26+dfsg2/debian/libfsharp-core4.3-cil.installcligac    
2014-11-06 10:24:58.000000000 +0000
@@ -1,4 +1,9 @@
 /usr/lib/cli/FSharp.Core-4.3/FSharp.Core.dll
+/usr/lib/cli/FSharp.Core-4.3/FSharp.Core.sigdata
+/usr/lib/cli/FSharp.Core-4.3/FSharp.Core.optdata
+/usr/lib/cli/FSharp.Core-4.3/4.0/FSharp.Core.dll
+/usr/lib/cli/FSharp.Core-4.3/4.0/FSharp.Core.sigdata
+/usr/lib/cli/FSharp.Core-4.3/4.0/FSharp.Core.optdata
 
/usr/lib/cli/FSharp.Core-4.3/0.0.0.0__b03f5f7f11d50a3a/policy.2.0.FSharp.Core.dll
 
/usr/lib/cli/FSharp.Core-4.3/0.0.0.0__b03f5f7f11d50a3a/policy.2.3.FSharp.Core.dll
 
/usr/lib/cli/FSharp.Core-4.3/0.0.0.0__b03f5f7f11d50a3a/policy.4.0.FSharp.Core.dll
diff -Nru mono-3.2.8+dfsg/debian/changelog mono-3.2.8+dfsg/debian/changelog
--- mono-3.2.8+dfsg/debian/changelog    2014-07-10 11:19:47.000000000 +0100
+++ mono-3.2.8+dfsg/debian/changelog    2014-11-05 11:45:24.000000000 +0000
@@ -1,3 +1,10 @@
+mono (3.2.8+dfsg-8) unstable; urgency=medium
+
+  * [835c4ca] Add support for non-assembly files installed to the GAC. 
+    This is the first half of a fix to bug #767507.
+
+ -- Jo Shields <[email protected]>  Wed, 05 Nov 2014 11:44:40 +0000
+
 mono (3.2.8+dfsg-7) unstable; urgency=medium
 
   * [10016c2] Build libmono-2.0-1 and libmono-2.0-dev for mipsel
diff -Nru mono-3.2.8+dfsg/debian/mono.runtime-script 
mono-3.2.8+dfsg/debian/mono.runtime-script
--- mono-3.2.8+dfsg/debian/mono.runtime-script  2014-07-10 11:19:47.000000000 
+0100
+++ mono-3.2.8+dfsg/debian/mono.runtime-script  2014-11-05 11:25:09.000000000 
+0000
@@ -12,6 +12,8 @@
 # Figure out the mode
 my $mode = shift @ARGV;
 
+my $framework_prefix = "/usr/lib/mono";
+
 if (!defined $mode)
 {
     print STDERR "E: You must supply a mode\n";
@@ -36,7 +38,6 @@
 # the (framework versionĂ—10, full path) pairs
 if ($mode eq "install-framework")
 {
-    my $framework_prefix = "/usr/lib/mono";
     # TODO: We could detect this ourselves
     my %runtime_versions = (20 => "$framework_prefix/2.0",
                            35 => "$framework_prefix/3.5",
@@ -130,10 +131,44 @@
        {
                my $assembly = $_;
                chomp($assembly);
-               my $cmd = "/usr/bin/gacutil -u $assembly > /dev/null";
-               my $res = system($cmd);
-               if ($res > 0) {
+               # The uninstall file can contain two formats - full paths to 
non-assembly entries
+               # (i.e. FSharp sigdata/optdata files), or assembly signature 
stuff in the format
+               # "name, Version=x.x.x.x, Culture=neutral, 
PublicKeyToken=yyyyyyyyyyyyy"
+               #
+               # We can switch behaviour, based on whether it is a path or not 
(if it is a path,
+               # it has a leading /)
+               #
+               # If it's not a path, pass the entry to gacutil to uninstall
+               if ($assembly !~ /^\//)
+               {
+                   my $cmd = "/usr/bin/gacutil -u $assembly > /dev/null";
+                   my $res = system($cmd);
+                   if ($res > 0) {
                        print STDERR "W: removing assembly: $assembly 
failed!\n";
+                   }
+               }
+               # If it is a path, unlink.
+               #
+               # This is often not actually needed - if a parent assembly is 
uninstalled
+               # from the GAC, the sigdata/optdata files are cleaned 
automatically
+               #
+               # We manually unlink if these files are specifically named 
anyway, in case
+               # we ever want to keep companion files in different packages 
(where they would
+               # not be uninstalled by the same GAC cleaning run)
+               else
+               {
+                   # Definitely a link, unlink it please
+                   if (-l "$assembly")
+                   {
+                       unlink $assembly;
+                   }
+                   # The file exists, but is not a link, which means we didn't 
put it
+                   # there, so panic!
+                   elsif (-f "$assembly")
+                   {
+                       print STDERR "W: removing non-assembly file: $assembly 
failed!\n";
+                   }
+                   # If the file doesn't exist, we do nothing - we don't WANT 
it to exist
                }
        }
 
@@ -175,20 +210,47 @@
        exit 1;
     }  
     
-    # Figure out the mono's precise name
-    my $fullname = get_full_name($dll);
-    
-    # Write out the uninstall file
-    print UNINSTALL "$fullname\n";
-    
-    # Install the file. We use the "../../../.." to make it a
-    # relative path to this program (since gacutil doesn't like
-    # absolute paths). There isn't a problem of doing too many
-    # since we typically run from the root context.
-    my $cmd = "(cd `dirname $dll` && "
-       . "/usr/bin/gacutil -i `basename $dll`"
-          . " > /dev/null)";
-    system($cmd) == 0 or die "E: installing Assembly $dll failed\n";
+    # Split the provided assembly path into its components - folder, basename, 
and suffix.
+    # All three are useful
+    my($assemblyfilename, $assemblypath, $assemblysuffix) = (fileparse($dll, 
qr/\.[^.]*/));
+
+    # If the suffix is .dll, assume this is a simple CLI assembly, and use 
gacutil for
+    # processing
+    if (( $assemblysuffix eq ".dll" ) || ( $assemblysuffix eq ".exe" ))
+    {
+       # Figure out the mono's precise name
+       my $fullname = get_full_name($dll);
+
+       # Write out the uninstall file
+       print UNINSTALL "$fullname\n";
+
+       # Install the file. We use the "../../../.." to make it a
+       # relative path to this program (since gacutil doesn't like
+       # absolute paths). There isn't a problem of doing too many
+       # since we typically run from the root context.
+       my $cmd = "(cd `dirname $dll` && "
+           . "/usr/bin/gacutil -i `basename $dll`"
+           . " > /dev/null)";
+       system($cmd) == 0 or die "E: installing Assembly $dll failed\n";
+    }
+    else
+    {
+       # If the extension is not .dll, this is some other file format (e.g. 
FSharp
+       # sigdata/optdata) and we cannot use gacutil.
+       #
+       # First, we determine the path of the assembly which accompanies this 
data file
+       my $parentassembly = "$assemblypath$assemblyfilename.dll";
+       # Then extract the assembly information from this "parent" assembly, 
such as the
+       # version and signing token
+       my $fullname = get_full_name($parentassembly);
+       my($parentname, $parentver, $parentculture, $parenttoken) = split(/, 
[a-zA-z]*=/, $fullname);
+       # And finally, we construct a path to where we know Mono will 
GAC-install the
+       # parent assembly, and put a symlink in there
+       my $targetpath = 
"$framework_prefix/gac/$parentname/$parentver\__$parenttoken/$assemblyfilename$assemblysuffix";
+       symlink($dll, $targetpath);
+       # And write the path to the symlink into the uninstall file
+       print UNINSTALL "$targetpath\n";
+    }
 }
 
 close CLIGAC;
diff -Nru mono-3.2.8+dfsg/debian/patches/debian-changes 
mono-3.2.8+dfsg/debian/patches/debian-changes
--- mono-3.2.8+dfsg/debian/patches/debian-changes       2014-07-10 
11:20:24.000000000 +0100
+++ mono-3.2.8+dfsg/debian/patches/debian-changes       2014-11-05 
11:48:58.000000000 +0000
@@ -5,10 +5,11 @@
  information below has been extracted from the changelog. Adjust it or drop
  it.
  .
- mono (3.2.8+dfsg-7) unstable; urgency=medium
+ mono (3.2.8+dfsg-8) unstable; urgency=medium
  .
-   * [10016c2] Build libmono-2.0-1 and libmono-2.0-dev for mipsel
-Author: Iain Lane <[email protected]>
+   * [835c4ca] Add support for non-assembly files installed to the GAC.
+     This is the first half of a fix to bug #767507.
+Author: Jo Shields <[email protected]>
 
 ---
 The information above should follow the Patch Tagging Guidelines, please

--- End Message ---
--- Begin Message ---
On 2014-11-06 11:22, Jo Shields wrote:
Please unblock packages mono & fsharp

This is a 2-part fix to resolve bugs 767507 and 767265 (changes were
required in both Mono and FSharp to resolve the FSharp bugs), which
both render FSharp-compiled applications unable to execute (the
interpreter still works, and the compiler still runs)

Unblocked, thanks.

--
Jonathan Wiltshire                                      [email protected]
Debian Developer                         http://people.debian.org/~jmw

4096R: 0xD3524C51 / 0A55 B7C5 1223 3942 86EC  74C3 5394 479D D352 4C51

<directhex> i have six years of solaris sysadmin experience, from
            8->10. i am well qualified to say it is made from bonghits
                        layered on top of bonghits

--- End Message ---

Reply via email to