dotnet icon indicating copy to clipboard operation
dotnet copied to clipboard

Packaging of Nuget packages

Open bsagal opened this issue 8 years ago • 11 comments

I have been looking into building the .NET core sdk from source (as opposed to the current monolithic mostly pre-build dev-dotnet/dotnet-cli ebuild) as i believe that only way to package it will be to start packaging Nuget packages in portage (kind of like g-cpan for perl). I also believe this will be of benefit to monodevelop.

I think this might be a big undertaking, and wanted to know if anyone else thinks it is worth it. Has anyone started anything like this?

Does the g-cpan work well? Would it be a good idea base the packing on the g-cpan model? What things in g-cpan should be designed differently? Is there something better to base on such as the ruby gem Packaging?

I think that the Packages should be installed into /usr/share/dotnet/shared (this is the location used by the .NET core framework deb for ubuntu). Any better ideas?

Should i use the dev-dotnet category or create a new one?

Would be glad for any input.

bsagal avatar Sep 20 '16 10:09 bsagal

I think this might be a big undertaking, and wanted to know if anyone else thinks it is worth it.

I do.

Has anyone started anything like this?

I wrote nupkg.eclass which have enuspec function to build packages and enupkg to put them into local directory

Should i use the dev-dotnet category or create a new one?

yes, dev-dotnet is right category for libraries

ArsenShnurkov avatar Oct 03 '16 06:10 ArsenShnurkov

Sounds like a good thing to me. My experience with g-cpan is mixed - I've got an open bug 581490 about using old means of finding overlays, but that's no show-stopper. However, I still have problems to get a recent nuget built, so that might be a place to start.

genterminl avatar Aug 09 '17 15:08 genterminl

I recently started again to try to install nuget (I've tried various 4.x versions) with no success. However, I don't know if I'm missing something in the build process, or if I simply don't understand the whole mono system well enough to know what I'm trying to do. Has anyone got a recent nuget working?

genterminl avatar Dec 14 '17 16:12 genterminl

why do you need nuget for gentoo? gentoo have it's own pakage manager. One can write packages for portage to build libraries and applications from source. Package manager is one of things which define linux distribution. If you want nuget as package manager, then you need another distribution, not portage based.

Of course it is possible to build nuget application from sourcess too. And use it then on gentoo. But you will lose one of gentoo goals - to build everything from sources. Nuget packages are binaries. May be Debian will suit better? It have larger developer community and more fresh .net packages...

ArsenShnurkov avatar Dec 14 '17 17:12 ArsenShnurkov

My primary goal is getting monodevelop installed, and it currently requires nuget. If that dependency is not really necessary, I'll be perfectly happy without nuget.

genterminl avatar Dec 14 '17 17:12 genterminl

The fast way to install monodevelop is to install old nuget (i have nuget package installed, but it was very long ago). I think we need to investigate why monodevelop needs nuget (actually it probably have integration similar to visual studio). And it is also good to decribe in details why we can't build new nuget.

ArsenShnurkov avatar Dec 14 '17 17:12 ArsenShnurkov

Nuget is added into monodevelop as an addin (based on Mono.Addins). So it should be easy just to remove this addin from monodevelop install.

EinstokFair avatar Feb 13 '18 15:02 EinstokFair

why do you need nuget for gentoo? gentoo have it's own pakage manager. One can write packages for portage to build libraries and applications from source. Package manager is one of things which define linux distribution. If you want nuget as package manager, then you need another distribution, not portage based.

This doesn't really hold up for packages that are compiled into the CLR and contain no system specific optimizations at all. Recompiling these kinds of packages on a per system basis only serves one purpose: wasting power and system resources.

While I agree that using the systems default packaging mechanism should be the way to go it might be beneficial to have the possibility to install packages on a per-app level without the need for a system wide install. I think having ebuilds for each nuget package to install system wide is good, and being able to just use nuget to download packages on a per-app base on demand is even better.

gsnerf avatar Feb 14 '18 19:02 gsnerf

one purpose: wasting power and system resources.

another purpose is to ensure, that they don't contain malicious code.

I propose you to try Sabayon Linux, thus you will have no need to waste power for compilation, but still have all strong sides of gentoo-based system.

it might be beneficial to have the possibility to install packages on a per-app level without the need for a system wide install.

it's the feature of gentoo - to use as few versions as gentoo maintainers decide, not outside maintainers. If you are cluttering filesystem with copies - you need another distribution (something with docker may be)

being able to just use nuget to download packages on a per-app base on demand is even better.

Who need that, those should implement.

(also , in linux there exists an alternative to GAC, that alternative is provided by pkg-config utility and it's database, this somehow may help with searching for assemblies.)

ArsenShnurkov avatar Feb 14 '18 22:02 ArsenShnurkov

@jason-oliveira: you are correct, that inability to install monodevelop is real and severe problem. There is special issue for it - https://github.com/gentoo/dotnet/issues/160 . My position is that monodevelop installation should be fixed (without relying to binary nuget packages). i WANT fix it, but unable to (have no enough brain power).

If game developes (whose you mention in your comment) wants to use this platform, they should pass part of their budget or do everything themselves.

I bless you to accomplish this.

ArsenShnurkov avatar May 31 '19 21:05 ArsenShnurkov

I think there are several of us who want to get monodevelop (and other dotnet related packages) installed, and none of us have quite enough brain power to figure out all the problems. However, I think there is more of a chance of success if we can collaborate more. Is there a better place to discuss where each of us gets stuck, and maybe someone else can find a solution to that particular problem?

ostroffjh avatar May 31 '19 21:05 ostroffjh