dotnet
dotnet copied to clipboard
Packaging of Nuget packages
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.
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
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.
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?
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...
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.
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.
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.
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.
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.)
@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.
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?