unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Updating mono. Adding MSBuild.
@ 2019-03-27  3:46 Brett Gilio
  2019-03-27  6:43 ` Ricardo Wurmus
  0 siblings, 1 reply; 11+ messages in thread
From: Brett Gilio @ 2019-03-27  3:46 UTC (permalink / raw)
  To: Guix-devel


Hi all,

Our mono package is pretty severely out of date. I want to take care of
updating it to a version consistent with this century. However, there
seems to be an issue perhaps along the lines similar to bootstrapping
Rust and JDK.

Mono, for most distributions, seems to be bootstrapped with a prebuilt
binary mono-lite. Due to this, I am unsure of how to make the first step
in correctly repackaging Mono.

Additionally, this should ideally come with the newer MSBuild, which Nix
currently lacks. It is included in the Mono source tree, but I would
assume we would want that to be separated and rather called by a
propagated/native input?

Anyways, a lot to unpack here. I'd appreciate any help I could get.

Best,
Brett Gilio

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-03-27  3:46 Updating mono. Adding MSBuild Brett Gilio
@ 2019-03-27  6:43 ` Ricardo Wurmus
  2019-03-27 11:23   ` Danny Milosavljevic
  2019-03-27 11:37   ` Danny Milosavljevic
  0 siblings, 2 replies; 11+ messages in thread
From: Ricardo Wurmus @ 2019-03-27  6:43 UTC (permalink / raw)
  To: Brett Gilio; +Cc: Guix-devel


Hi Brett,

thank you for looking into this.

> Our mono package is pretty severely out of date. I want to take care of
> updating it to a version consistent with this century. However, there
> seems to be an issue perhaps along the lines similar to bootstrapping
> Rust and JDK.
>
> Mono, for most distributions, seems to be bootstrapped with a prebuilt
> binary mono-lite. Due to this, I am unsure of how to make the first step
> in correctly repackaging Mono.

Instead of adding a new binary mono-lite, can we reuse the existing
“mono” package to build the new Mono?

(I don’t know what MSBuild is and how it would help here.)

-- 
Ricardo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-03-27  6:43 ` Ricardo Wurmus
@ 2019-03-27 11:23   ` Danny Milosavljevic
  2019-03-29 19:14     ` Brett Gilio
  2019-03-27 11:37   ` Danny Milosavljevic
  1 sibling, 1 reply; 11+ messages in thread
From: Danny Milosavljevic @ 2019-03-27 11:23 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 810 bytes --]

Hi,

> > Mono, for most distributions, seems to be bootstrapped with a prebuilt
> > binary mono-lite. Due to this, I am unsure of how to make the first step
> > in correctly repackaging Mono.  
> 
> Instead of adding a new binary mono-lite, can we reuse the existing
> “mono” package to build the new Mono?

+1

> (I don’t know what MSBuild is and how it would help here.)

MSBuild is something like Ant for .NET.  (or "make", but with more XML :) )

I think Brett means that MSBuild is bundled with mono.

I failed to unbundle some things just to have a CVE in one of the bundled
dependencies DAYS later.  I think it's not a good idea in general to bundle
things.  (But if it's from the same vendor and team anyway they'll probably
update their bundled copy after fixing CVEs, too)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-03-27  6:43 ` Ricardo Wurmus
  2019-03-27 11:23   ` Danny Milosavljevic
@ 2019-03-27 11:37   ` Danny Milosavljevic
  1 sibling, 0 replies; 11+ messages in thread
From: Danny Milosavljevic @ 2019-03-27 11:37 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 204 bytes --]

Also, Microsoft released .net Core as Free Software (on github).
It might make sense to package that (either in addition or only).

(There's also DotGNU which could maybe be used to bootstrap either)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-03-27 11:23   ` Danny Milosavljevic
@ 2019-03-29 19:14     ` Brett Gilio
  2019-03-29 19:18       ` Ricardo Wurmus
  0 siblings, 1 reply; 11+ messages in thread
From: Brett Gilio @ 2019-03-29 19:14 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: Guix-devel


Danny Milosavljevic writes:

> Hi,
>
>> > Mono, for most distributions, seems to be bootstrapped with a prebuilt
>> > binary mono-lite. Due to this, I am unsure of how to make the first step
>> > in correctly repackaging Mono.  
>> 
>> Instead of adding a new binary mono-lite, can we reuse the existing
>> “mono” package to build the new Mono?
>
> +1
>
>> (I don’t know what MSBuild is and how it would help here.)
>
> MSBuild is something like Ant for .NET.  (or "make", but with more XML :) )
>
> I think Brett means that MSBuild is bundled with mono.
>
> I failed to unbundle some things just to have a CVE in one of the bundled
> dependencies DAYS later.  I think it's not a good idea in general to bundle
> things.  (But if it's from the same vendor and team anyway they'll probably
> update their bundled copy after fixing CVEs, too)

I will try to build a newer mono against the current version we have.

Although, there is a possible issue here that needs to be
addressed. Both Mono and Chicken produce a binary called `csi`. This is
a naming conflict, and I do not know the Guix-way for resolving naming
conflicts. Most distributions renamed the Chicken csi to `chicken-csi`
and left mono to `csi`. Does Guix have namespaces for binaries we
produce? How should I proceed here?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-03-29 19:14     ` Brett Gilio
@ 2019-03-29 19:18       ` Ricardo Wurmus
  2019-04-01 19:19         ` Brett Gilio
  0 siblings, 1 reply; 11+ messages in thread
From: Ricardo Wurmus @ 2019-03-29 19:18 UTC (permalink / raw)
  To: Brett Gilio; +Cc: Guix-devel


Brett Gilio <brettg@posteo.net> writes:

> Although, there is a possible issue here that needs to be
> addressed. Both Mono and Chicken produce a binary called `csi`. This is
> a naming conflict, and I do not know the Guix-way for resolving naming
> conflicts.

This is not a problem as during the build you probably won’t use Chicken
together with Mono.

> Most distributions renamed the Chicken csi to `chicken-csi`
> and left mono to `csi`. Does Guix have namespaces for binaries we
> produce? How should I proceed here?

The Guix way is to install these things into separate profiles.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-03-29 19:18       ` Ricardo Wurmus
@ 2019-04-01 19:19         ` Brett Gilio
  2019-04-02  8:17           ` Ricardo Wurmus
  0 siblings, 1 reply; 11+ messages in thread
From: Brett Gilio @ 2019-04-01 19:19 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel


Ricardo Wurmus writes:

> Brett Gilio <brettg@posteo.net> writes:
>
>> Although, there is a possible issue here that needs to be
>> addressed. Both Mono and Chicken produce a binary called `csi`. This is
>> a naming conflict, and I do not know the Guix-way for resolving naming
>> conflicts.
>
> This is not a problem as during the build you probably won’t use Chicken
> together with Mono.
>
>> Most distributions renamed the Chicken csi to `chicken-csi`
>> and left mono to `csi`. Does Guix have namespaces for binaries we
>> produce? How should I proceed here?
>
> The Guix way is to install these things into separate profiles.

Hi all.

First, thank you ricardo for your response.

I have a few things that seem to be important to note. On the plus side,
I got Mono-5.0 to build successfully. But, during this process of
building mono-5.0 I discovered that the mono documentation is either
incorrect or misleading. Their documentation states that you need to
have a mono-lite binary seed or a previous version of mono to compile
newer versions. This doesn't seem to be true. Regardless of whether I
pass our older version of mono to build mono-5.0, it compiles a csc (C#
compiler) from its own source tree that it uses to build the full mono
stack. So, I am inclined to think that bootstrapping mono from an
earlier version isn't necessary since that csc compiler is C code.

Okay, great Mono-5.0 builds successfully. So with that knowledge, I
tried to compile the latest Mono-5.18. However, shortly after the
configuration step it throws

CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also
"/tmp/guix-build-mono-5.18.1.0.drv-0/mono-5.18.1.0/mono/btls/build-shared/CMakeFiles/CMakeOutput.log".

The interesting thing is that it uses the gnu-build-system to build the
csc compiler, and I had to pass cmake as a native-input or else the
configuration step would fail. So, does anybody know how to deal with
this cmake issue?

Thanks,

Brett Gilio

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-04-01 19:19         ` Brett Gilio
@ 2019-04-02  8:17           ` Ricardo Wurmus
  2020-01-26 15:58             ` Pierre Neidhardt
  0 siblings, 1 reply; 11+ messages in thread
From: Ricardo Wurmus @ 2019-04-02  8:17 UTC (permalink / raw)
  To: Brett Gilio; +Cc: Guix-devel


Brett Gilio <brettg@posteo.net> writes:

> Okay, great Mono-5.0 builds successfully. So with that knowledge, I
> tried to compile the latest Mono-5.18. However, shortly after the
> configuration step it throws
>
> CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
> CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
> CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
> -- Configuring incomplete, errors occurred!
> See also
> "/tmp/guix-build-mono-5.18.1.0.drv-0/mono-5.18.1.0/mono/btls/build-shared/CMakeFiles/CMakeOutput.log".
>
> The interesting thing is that it uses the gnu-build-system to build the
> csc compiler, and I had to pass cmake as a native-input or else the
> configuration step would fail. So, does anybody know how to deal with
> this cmake issue?

Do you get the errors when using the cmake-build-system?  If you need to
prepare the build you can add custom build phases.

--
Ricardo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2019-04-02  8:17           ` Ricardo Wurmus
@ 2020-01-26 15:58             ` Pierre Neidhardt
  2020-02-20 10:06               ` Pierre Neidhardt
  0 siblings, 1 reply; 11+ messages in thread
From: Pierre Neidhardt @ 2020-01-26 15:58 UTC (permalink / raw)
  To: Ricardo Wurmus, Brett Gilio; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 111 bytes --]

Hi Brett,

any luck with getting Mono 5 to work?

Cheers!

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2020-01-26 15:58             ` Pierre Neidhardt
@ 2020-02-20 10:06               ` Pierre Neidhardt
  2020-02-20 16:49                 ` Pierre Neidhardt
  0 siblings, 1 reply; 11+ messages in thread
From: Pierre Neidhardt @ 2020-02-20 10:06 UTC (permalink / raw)
  To: Ricardo Wurmus, Brett Gilio; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 130 bytes --]

Would you mind sharing the package definition of your work-in-progress?
Thanks!

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Updating mono. Adding MSBuild.
  2020-02-20 10:06               ` Pierre Neidhardt
@ 2020-02-20 16:49                 ` Pierre Neidhardt
  0 siblings, 0 replies; 11+ messages in thread
From: Pierre Neidhardt @ 2020-02-20 16:49 UTC (permalink / raw)
  To: Ricardo Wurmus, Brett Gilio; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 208 bytes --]

I tried updating Mono to 6.8.
It kind of builds, but tests don't fully pass yet (most of them do).

I've sent my work-in-progress to 39695@debbugs.gnu.org.

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-02-20 16:49 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-27  3:46 Updating mono. Adding MSBuild Brett Gilio
2019-03-27  6:43 ` Ricardo Wurmus
2019-03-27 11:23   ` Danny Milosavljevic
2019-03-29 19:14     ` Brett Gilio
2019-03-29 19:18       ` Ricardo Wurmus
2019-04-01 19:19         ` Brett Gilio
2019-04-02  8:17           ` Ricardo Wurmus
2020-01-26 15:58             ` Pierre Neidhardt
2020-02-20 10:06               ` Pierre Neidhardt
2020-02-20 16:49                 ` Pierre Neidhardt
2019-03-27 11:37   ` Danny Milosavljevic

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).