-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Who is using .NET on Arch or Manjaro? Is the experience good? #6201
Comments
The dotnet packages were outdated for a few months but the installation via AUR worked without a hitch. Still, it would be nice if Arch was an officially supported platform to avoid such issues in the future. Other than that I encountered no problems. |
Yeah, in the official repos the -sdk, -runtime, and -host packages were stuck on .NET Core 3 instead of .NET 5 for over half a year. They said that this was because they had troubles getting it to compile correctly, but there was an AUR package which did support .NET 5 called dotnet-sdk-bin. I'm not sure what the issue was since I wasn't interested in helping, but nevertheless, the packages in the official repos was updated to .NET 5 somewhat recently and has so far been kept up-to-date. Except for the maintainers sometimes being late, or in this case very late, on an update, using the language is absolutely fine and I haven't experienced an issue with it yet that I wouldn't have also had on another platform. |
Not exactly a heavy user as I don't write C#, so my use case is just running emby and so far I had zero issues. There are various reasons why packages are often out of date:
The AUR package on the other hand just extracts official tarballs, so that's an easy one. |
@richlander Thanks for the email, yes I'm the maintainer of the AUR packages. I can confirm what @alucryd wrote, packaging the AUR package is very easy, I just have to make sure files end up at the right places (so no issues there). Similarly I wanted to use Jellyfin - a fork of Emby - on my Arm64 Arch install and contribute to it. It might be worth sharing this thread on the archlinux subreddit with the same question if you want to reach more people. As for help, if you can make it easier for the official package maintainers to build, that would be definitely much appreciated. |
We have a new project for source build that that is oriented on making it (A) much easier/cheaper to ingest and build .NET from source, and (B) to release updates on our schedule. I've asked the folks who work on that project to engage on this issue. We're having a similar conversation with the Alpine Linux folks. We've also worked with the Red Hat and Fedora folks for a long time. It might be useful to setup a (public) forum for .NET distro maintainers. Would that be interesting? |
@alucryd @Gr3q Hi, I'm that source-build guy! Do you have some specific asks on making it easier for package maintainers to build? Like Rich says, we do have some work in progress that should help out a lot with each release needing in-depth work (dotnet/source-build#1510), but if there's something quick we can do in the meantime I can definitely bring it up. I checked out some of your patches and some of them seemed like version differences between our configuration and yours (clang versions, linker issues, warnings) - is that most of the problem? |
@crummel Thanks for chiming in as well. You are correct, these are the remaining issues (which are standard due to our rolling nature, so no worries there). The last version was fairly painless all things considered, well apart from that nasty nuget certificate situation. The various RID issues seems to have finally died down, and the ICU 68 patches have been merged so I was able to remove those. Also the tools are correctly installed in the latest release, they were missing in the previous one. So kudos to you guys. There is one issue I've had complaints about but it seems you're working on it already: dotnet/source-build#2006 In terms of specific asks, it would be great to get Arch into the CI matrix for source-build. We've discussed it already on another issue. And as always I was bargaining with time I don't have so I'm well overdue in making PRs to get this done, hopefully I can get to that sometime in 2021 :/ One gripe I have with the current build is that sources can no longer be cached and have to be redownloaded every time. Before I was able to list all git repositories as sources of my package, which made it possible to store these repos in a local cache and skip redownloading everything with every rebuild. This shaved some 15 minutes off builds, and saved a lot of bandwidth. It also made it easy to cherry-pick patches you may already have upstream, or just use a newer commit altogether. As for dotnet core's popularity on Arch, well I receive more emails when it's outdated or not working properly than all of my other packages combined, from both Arch and Manjaro users, so demand is fairly high. |
The official open source "code" package can't install C# extension, and it's only possible with visual-studio-code-bin from AUR. |
The most wanted wish by every Linux user is to write and execute WPF/WinForm apps on Linux :) , dotnet core is open source but not totally free because all GUI libraries are still locked and restricted by Microsoft to only Windows. |
I appreciate the sentiment, but I don't quite share the same world view. WPF and Windows Forms are built on top of Windows (as you know). It would be a major project to make them work on Linux. All of the code for WPF and Windows Forms is open source up to the point of what we consider the Windows platform. I think it's fair for Microsoft to say "we're not signing up for porting these projects to Linux (or any other OS)" w/o others saying that "all GUI libraries are still locked and restricted by Microsoft to only Windows." It is the phrase "locked and restricted" that I take issue with. I wish I'm trying to reach out to the Arch and Manjaro communities, so am wanting to avoid dissonance. That said, I hope there is room for me to describe my take on your comment. |
@alucryd -- that sounds great. Is there any sort of data you can share with us that helps us quantify that? That will help motivate increasing our support / collaboration. |
What about asking in r/linux? It has a much bigger base, and you'll get more responses |
Sure. That's a great idea for a second round. I wanted to start with a particular distro family that I knew was underserved. |
@richlander We don't collect any data so getting accurate numbers is somewhat difficult, we do however have a package statistics tool that users can install, but it is entirely optional and not many people know about it. Still, around 12% of pkgstats contributors have the dotnet-runtime installed: https://pkgstats.archlinux.de/packages#query=dotnet And if you have a look at the AUR, the bin packages are in the top 200 popularity-wise (among 70000 packages): https://aur.archlinux.org/packages/?SB=p&SO=d&O=150 Hope this helps. |
I'm a full time developer on .net platform on Windows. I have only Linux machines at home, so I wanted to try out writing a simple webapi for some hobby project. I haven't had much time to work on it but the skeleton service was up and running in five minutes. So in short. My experience in arch was quite good so far. |
The only quantity of users I have is the number of upvotes on this thread 1 year ago, which more or less means at least 200 people were dissatisfied of the state of the packages at that time. (Side note: basically I took ownership of the AUR packages then and updated them based on that post, credit to u/Saancreed)
|
One issue I remembered: |
So this is the chance to completely free dotnet core from Microsoft and Windows (if it's truly free) and create new cross platform GUI library (which I think will never be achieved due to money poured on dotnet core devs by Microsoft), the low level layers of dotnet core are already stable and run well on Linux what is needed is just GUI top layer that runs on top of it, the pretext of being dependent on Windows libraries is not valid anymore because the ground is already paved to do it with dotnet core, and the possibility of success is high because there are already successful cross platform solutions like JavaFX, GTK, Qt, Electron, Flutter... |
@medmedin2014 This is not, it is a discussion about how to support dotnet/core better on Arch based distros (and public interest for it). If you want official Linux support for a GUI library, a better place raising your concerns would be here and here dotnet/maui#339 |
@laktak -- If you could, could you file an issue at dotnet/sdk on the line-ending issue? I've seen that mentioned by others. |
There is this issue from 2017 already: dotnet/templating#1248 |
I'm using Kestrel with systemD integration to host GRPC on Manjaro. The lag of weeks to months between .NET releases and its availability in any of the formal Manjaro repos is my only concern. |
Manjaro user here, so far so good. Just had some annoying issues with Visual Studio Code + C# / F# plugins and since then I've stopped using them altogether and now rely on Rider instead for all my .NET-related devs. |
Hello arch linux user here. Dotnet is awesome. I remember my original install being slightly painful because there was a small burden of knowledge but thankfully we have the arch wiki. I did a clean re-install of dotnet today from the official repos and it is finally up to date🙌🙌. It would be nice if a dotnet had a package group or metapackage in the repos. I find myself always needing the aspnet-runtime package. It's not a nice experience to have your first WebApi fail to run because it's not installed. I can't remember the error message that was given but it wasn't immediately obvious to me what was missing. Defining a dotnet package group would be a nice addition because you can guide people through an install. It can install the core libs and any additional libraries like aspnet-runtime. https://wiki.archlinux.org/title/Meta_package_and_package_group (I would try this myself but I have no time these days). This would help smooth brains like me install it effortlessly through pacman as I'm typically used to. Another thing I'm concerned about is versioning. .NET 3.1 is still officially supported and receives upstream patches but it's not available in the official repos. I'm a little hesitant to use .NET for new projects because of the breaking changes introduced by every major release which releases every year. Long term release have 3 years of support which will give me and other devs plenty of time to upgrade before it's dropped from the official repos. Maybe with the groups addition we can even have guided install that allows us to select which officially supported versions we want. |
That can be done, we just don't like introducing groups for so few packages when optdeps are perfectly fine. That I'll add in the next release. I'll keep it in mind.
Not sure where you got that, we have the whole 3.1 stack: https://archlinux.org/packages/?q=dotnet-runtime-3.1 |
The 3.1 AUR packages got hit by a deletion request and were removed when the official ones released (which is I'm a bit sad about because I kept them around for ARM architectures), so only the official ones can be used for 3.1. |
@Gr3q Were they the -bin variant? I'm suprised they were deleted, -bin variants should always be allowed as an alternative to packages built from source, even if they are in the official repos :/ |
FYI, latest releases are up in the arch repos. 5.0 built just fine without any change, 3.1 didn't build when bootstrapped with our own build, had to keep bootstrapping with an official build. |
Arch user here. I use VSCode and C# for working on an FNA project. Official support would be nice, as the mono and related packages have been broken and out-of-date for some time now, making it unable to build or run any C# projects. |
The breaking changes have calmed down. I was talking to an internal team at Microsoft today. They were telling us "moving .NET 6 was straightforward." There were lots of challenges moving to .NET Core 3.1. The experience is better after that. We are getting close-ish to having our build produce source tar balls. We're also thinking about establishing a maintainer network for .NET. That will enable maintainers to more easily produce packages and have better access to the upstream team. |
Not a heavy user but I never ran into any issues until dotnet/runtime#62554. |
for the most part I think it's been really nice working with it. I did use vscode when I first switched but the debugging with dotnet is horrible. My company now uses Rider (jetbrains) and it's been great to work with that. I have recently ran into an issue where I tried to upgrade all my dotnet packages to .Net 6.0 and it throws an error on the "Building dotnet-core-bin... \n ERROR: PKGBUILD does not exist." for the package "netstandard-targeting-pack-bin" do I'm not sure if that's a dotnet specific things or just a packaging with the AUR. It would be nice to have official packages for all these and their dependencies. Other than that. Things have been pretty good! |
Sounds like a packaging issue with AUR? Maybe @alucryd has an idea? |
@seth-seikosoft Try to delete your build cache first. Just make sure you have |
@Gr3q hey hey that did it.... didn't realize that there was a cached version of the dotnet-core-bin that was the culprit in hanging things up. Thank you very much for that suggestion! |
I use vscode-bin (aur) and dotnet-runtime-bin (aur) because the oficial packages has problem with System.IO.Ports so I use the ---bin packages. |
@Juniorsnet What kind of problem? Has it been reported somewhere? |
Yep, on dotnet/runtime#62554 and dotnet/runtime#25375 |
I'm an Arch and Manjaro user. I was wondering if anyone else was using .NET on Arch family distros. If so, please tell me about your experience or at least provide an upvote. I want to know if there is anything more we can do for Arch family users. Please pass on this request to other .NET users on Arch family distros.
Current support matrix: https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md
Reddit:
FYI: Here's a post about using .NET on Manjaro: https://devblogs.microsoft.com/dotnet/show-dotnet-animating-40-leds-with-charlieplexing/
The text was updated successfully, but these errors were encountered: