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

Update and improve Mono #23295

Closed
wants to merge 2 commits into from
Closed

Update and improve Mono #23295

wants to merge 2 commits into from

Conversation

abbradar
Copy link
Member

@abbradar abbradar commented Feb 28, 2017

Motivation for this change
  • Update Mono and add more system libraries;
  • Drop old versions of Mono as they are unused throughout the tree;
  • Add a headless version with a much smaller closure;
  • Build previously prebuilt parts of Mono from source.
Things done
  • Tested using sandboxing
    (nix.useSandbox on NixOS,
    or option build-use-sandbox in nix.conf
    on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • Linux
  • 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/)
  • Fits CONTRIBUTING.md.

I'll try to upstream use-dllmap-everywhere.patch. See mono/mono#4451.

, withCUPS ? true, cups
, withALSA ? true, alsaLib
, withLLVM ? true
}:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The three options withCUPS, withALSA and withLLVM should default to false on Darwin (i.e., using stdenv.isLinux or !stdenv.isDarwin).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated, thanks!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. withLLVM should be false on darwin. withX11 can be true.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, thank you for double-checking. Fixed, also made it so that GTK and friends aren't used on Darwin -- does that sound right?

@abbradar abbradar force-pushed the mono branch 2 times, most recently from b32da29 to 632132d Compare March 1, 2017 10:53
@vbgl
Copy link
Contributor

vbgl commented Mar 2, 2017

This breaks boogie; its build now fails with the following error (and 12 other similar ones):

BigDecTests.cs(28,10): error CS0616: `NUnit.Framework.TestCase': is not an attribute class

This probably comes from an API change in the NUnit library.

@abbradar
Copy link
Member Author

abbradar commented Mar 3, 2017

The patch was upstreamed, I removed it from the tree.

@vbgl I'll look into this, thanks! Sadly I don't have resources to fuly run nox-review now (I'll have a chance soon).

Bundled LLVM: 3.4svn-mono-f9b1a74368 -> 3.6-mono-2017-02-15

Remove old Mono versions.
Add options to enable GTK, SVG and printing support.
Build reference assemblies from source (essentially Mono 3.12.1 stripped from actual method bodies).
Add headless version.

Should improve support of color schemas in Windows Forms.
@abbradar
Copy link
Member Author

Sorry for a long response -- I've tried to look at it back now and then but I don't have a good idea how can I fix this. I think I understand what needs to be fixed -- we need to use NUnit 2 for Boogie instead of Mono's unit. Still, placing dotnetPackages.NUnit2 to buildInputs does nothing.

@kuznero
Copy link
Member

kuznero commented Apr 26, 2017

I just submitted 2 pull requests on introducing mono 4.6.2 and 4.8(.1) not knowing that there is this pull request already on improving mono:

Should we consider joining the effort? I planned to submit mono50 later today as well. And fsharp41 had been submitted and merged a couple of weeks ago (this was the part of the change to upgrade mono).

@abbradar
Copy link
Member Author

@kuznero With pleasure! I'm not sure how to fix the problem with Boogie. BTW, are old Mono versions (like 4.6.2) needed? They are unused in the tree but perhaps they are useful for users in some way I don't know?

@kuznero
Copy link
Member

kuznero commented Apr 26, 2017

@abbradar 4.6.2 is probably the most widely used version of the runtime as far as I know. So, supporting it would make sense in general for others to use I guess. And yes, it is done as new packages, so nothing depends on it at the moment and it should go pretty painless. Unfortunately I see some of the builds failing (4.6.2 and 5.0), but 4.8 is green.

@abbradar
Copy link
Member Author

abbradar commented Apr 27, 2017

@kuznero Do I understand correctly that Mono is incompatible between versions (because I supposed otherwise)? Then yes, let's leave the most popular runtime be.

@copumpkin
Copy link
Member

@kuznero would you still support killing 4.0 and 4.4?

@kuznero
Copy link
Member

kuznero commented Apr 28, 2017

@copumpkin I would keep 4.0 but discontinue 4.4

@copumpkin
Copy link
Member

Any progress here? Also, anyone have plans to package 5.4?

@abbradar
Copy link
Member Author

abbradar commented May 8, 2018

I'm not motivated enough to rebase this for now; this is still definitely relevant but needs moderate work.

@baracoder
Copy link
Contributor

This looks related to #36711

@obadz
Copy link
Contributor

obadz commented Dec 23, 2018

Some parts of this are superseded by #52712 but there are some cool things in here such as:

  • Bundled LLVM: 3.4svn-mono-f9b1a74368 -> 3.6-mono-2017-02-15
  • Build reference assemblies from source (essentially Mono 3.12.1 stripped from actual method bodies).
  • Some Darwin work

obadz added a commit to obadz/nixpkgs that referenced this pull request Dec 23, 2018
@bobvanderlinden
Copy link
Member

I think this PR may be closed. Most of the features in this PR are on master.

@felschr
Copy link
Member

felschr commented Mar 14, 2020

Please rebase your changes. Otherwise, I'd suggest closing the PR.
As far as I can see the only changes that aren't on master already are the withX options and the headless variant.

@domenkozar domenkozar closed this Jul 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants