Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mono: drop minor versions and upgrade to 5.16.0.220 #52712

Merged
merged 7 commits into from Dec 24, 2018
Merged

Conversation

obadz
Copy link
Contributor

@obadz obadz commented Dec 23, 2018

Motivation for this change

Mono versions have proliferated in nixpkgs. I'm proposing to drop:

  • 4.6 - Only used by fsharp 4.1 had known CVE
  • 5.0 - Unused
  • 5.4 - Only used by keepass but keypass seems to build fine against 5.16
  • 5.8 - Only referred to by foundationdb but that also seems to build fine against 5.14
  • 5.14 - Upgrade to 5.16

Cc @jraygauthier who pointed pythonnet to refer to Mono 4.6 (was there a reason?).

Cc mono peeps @kuznero @Mic92 @thoughtpolice @vrthra

Going forward, I propose that we only maintain the major versions (mono4 & mono5 at this time) to avoid loading hydra with useless builds and have packages randomly pointing to stale versions of mono when they probably don't need to.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

A lot of updates from mono-project' folks. Patches dropped, because both
merged upstream.

Cherry-picked by @obadz from
NixOS@e022209
Configure script complains, that unable to build gif loading support,
but it's a lie -- it builds against libgif 5, which have DGifOpenFile as
well.

Cherry-picked by @obadz from
NixOS@8439304
(libungif was already dropped by commit b41ede5)
@obadz obadz mentioned this pull request Dec 23, 2018
8 tasks
@obadz
Copy link
Contributor Author

obadz commented Dec 23, 2018

I extracted the libgdiplus updates by @avnik from #36711.

deleted: generic.nix
deleted: pkgconfig-before-gac-5x.patch
@obadz obadz mentioned this pull request Dec 23, 2018
7 tasks
@jtojnar jtojnar added this to To do in Picking up garbage via automation Dec 23, 2018
@jtojnar jtojnar moved this from To do to In progress in Picking up garbage Dec 23, 2018
@Mic92
Copy link
Member

Mic92 commented Dec 23, 2018

I think you can drop fsharp41 too. Replace fsharp by fsharp41.

Update: ok. no idea it is unclear to me, how versioning in fsharp works. It is super confusing.

@Mic92
Copy link
Member

Mic92 commented Dec 23, 2018

@kuznero do you still maintain fsharp41?

@obadz
Copy link
Contributor Author

obadz commented Dec 23, 2018

I think fsharp is a bit out of scope for this PR.

@obadz
Copy link
Contributor Author

obadz commented Dec 23, 2018

d27768a from #23295 has an LLVM update as well as a separate build of reference assemblies that would be great to cherry-pick but they're bundled in a mega commit which makes them hard to extract.

@jraygauthier
Copy link
Member

@obadz:

Cc @jraygauthier who pointed pythonnet to refer to Mono 4.6 (was there a reason?).

none other than it respected the constraint mentioned as comment. I should definitely have pointed it to mono4 as you did.

@avnik
Copy link
Contributor

avnik commented Dec 23, 2018 via email

@obadz
Copy link
Contributor Author

obadz commented Dec 23, 2018

Does anyone know how to track down this Debian patch from @abbradar's commit?

    # Use built frameworks instead of pre-built reference assemblies.
    (fetchpatch {
      url = "https://anonscm.debian.org/cgit/pkg-mono/packages/mono.git/patch/?id=3cfd6a21f889eebe24e124c1e96d6d05ed722142";
      sha256 = "1y4y6sks7magxqm34m8ywi6yrgan037nzgkwhrq620sfkddialr4";
    })

@samueldr
Copy link
Member

samueldr commented Dec 23, 2018

@obadz
Copy link
Contributor Author

obadz commented Dec 23, 2018

Thanks @samueldr.

The patch no longer applies cleanly and while Mono builds without it, dependencies won't. Here's keepass:

        Program.cs(85,18): error CS0518: Predefined type 'System.Object' is not defined or imported
        Program.cs(87,18): error CS0518: Predefined type 'System.Boolean' is not defined or imported
        Program.cs(242,4): error CS0518: Predefined type 'System.Object' is not defined or imported
        Program.cs(242,4): error CS0246: The type or namespace name 'STAThreadAttribute' could not be found (are you missing a using directive or an assembly reference?)
        Program.cs(242,4): error CS0246: The type or namespace name 'STAThread' could not be found (are you missing a using directive or an assembly reference?)
        Program.cs(96,15): error CS0518: Predefined type 'System.Enum' is not defined or imported
        Program.cs(96,15): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(98,11): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(99,20): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(100,11): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(101,16): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(102,15): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(103,11): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(104,13): error CS0518: Predefined type 'System.Int32' is not defined or imported
        Program.cs(105,23): error CS0518: Predefined type 'System.Int32' is not defined or imported

         0 Warning(s)
         38850 Error(s)

Time Elapsed 00:00:11.3447710
builder for '/nix/store/yaivhykbv468mj8ramm0m3bbpmg5919b-keepass-2.40.drv' failed with exit code 1
error: build of '/nix/store/yaivhykbv468mj8ramm0m3bbpmg5919b-keepass-2.40.drv' failed

I'm giving up on the "reference assemblies" portion of @abbradar's patch :-(

@obadz
Copy link
Contributor Author

obadz commented Dec 23, 2018

@abbradar, would you mind having a look at 013927f (which is extracted from your PR).

@obadz
Copy link
Contributor Author

obadz commented Dec 24, 2018

@GrahamcOfBorg build keepass fsharp

@obadz
Copy link
Contributor Author

obadz commented Dec 24, 2018

I'll merge tomorrow if no objections and the above build succeeds.

@thoughtpolice
Copy link
Member

This looks good to me (in particular tweaking the foundationdb dep and dropping the old versions). Thanks!

@obadz
Copy link
Contributor Author

obadz commented Dec 24, 2018

@GrahamcOfBorg build pdfmod

@obadz obadz merged commit 60739e5 into NixOS:master Dec 24, 2018
Picking up garbage automation moved this from In progress to Done Dec 24, 2018
@obadz obadz mentioned this pull request Dec 24, 2018
10 tasks
@obadz obadz deleted the mono branch December 24, 2018 16:23
obadz added a commit to obadz/nixpkgs that referenced this pull request Dec 25, 2018
Fixes the below build error in gnome-sharp which appeared after NixOS#52712

/nix/store/wsqld4bccm0bwjnn1gj9cr32qscz4qk7-gtk-sharp-2.12.10/bin/gapi2-fixup --api=art-api.xml --metadata=./Art.metadata  --symbols=./art-symbols.xml
rm -f generated/* &&    \
/nix/store/wsqld4bccm0bwjnn1gj9cr32qscz4qk7-gtk-sharp-2.12.10/bin/gapi2-codegen --generate art-api.xml \
-I:/nix/store/wsqld4bccm0bwjnn1gj9cr32qscz4qk7-gtk-sharp-2.12.10/lib/pkgconfig/../../share/gapi-2.0/pango-api.xml -I:/nix/store/wsqld4bccm0bwjnn1gj9cr32qscz4qk7-gtk-sharp-2.12.10/lib/pkgconfig/../../share/gapi-2.0/atk-api.xml -I:/nix/store/wsqld4bccm0bwjnn1gj9cr32qscz4qk7-gtk-sharp-2.12.10/lib/pkgconfig/../../share/gapi-2.0/gdk-api.xml -I:/nix/store/wsqld4bccm0bwjnn1gj9cr32qscz4qk7-gtk-sharp-2.12.10/lib/pkgconfig/../../share/gapi-2.0/gtk-api.xml -I:/nix/store/wsqld4bccm0bwjnn1gj9cr32qscz4qk7-gtk-sharp-2.12.10/lib/pkgconfig/../../share/gapi-2.0/glib-api.xml      \
--outdir=generated --customdir=. --assembly-name=art-sharp      \
--gluelib-name=artsharpglue-2 --glue-filename=glue/generated.c          \
--glue-includes=                                                \
&& touch generated-stamp

Unhandled Exception:
System.MissingMethodException: Method 'string.Split' not found.
  at GtkSharp.Generation.SimpleGen..ctor (System.String ctype, System.String type, System.String default_value) [0x00000] in <d117698e7b8a4f9b867143c99aa161ba>:0
  at GtkSharp.Generation.SymbolTable..ctor () [0x00011] in <d117698e7b8a4f9b867143c99aa161ba>:0
  at GtkSharp.Generation.SymbolTable.get_Table () [0x0000a] in <d117698e7b8a4f9b867143c99aa161ba>:0
  at GtkSharp.Generation.CodeGenerator.Main (System.String[] args) [0x0003e] in <d117698e7b8a4f9b867143c99aa161ba>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method 'string.Split' not found.
  at GtkSharp.Generation.SimpleGen..ctor (System.String ctype, System.String type, System.String default_value) [0x00000] in <d117698e7b8a4f9b867143c99aa161ba>:0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging this pull request may close these issues.

None yet

7 participants