-
-
Notifications
You must be signed in to change notification settings - Fork 956
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
gcc: Use WinLibs build and update to 11.2.0 #2967
Conversation
All changes look good. Wait for review from human collaborators. gcc
|
Wow, this looks much much cleaner |
I don't think this is the right way to fix the gcc package, people were using MSYS2's mingw64 build may encounter compiling issues because of the compiler changes. These two distributions have differences in the compiler building settings. There are many different MinGW/GCC distributions, and MSYS2's is the most widely used one because it's packaged by MSYS2, and is fully open-sourced and maintained. You can even choose any other distributions like nuwen's or mstorsjo's I mentioned in #1752 (comment) if it's that simple to fix it by changing distribution. P.S. the change of the version number is also a breaking change |
I move original one to This version can be updated normally and let's wait for user's feedback. |
I agree that this might be a breaking change - for that we can redirect users to the Versions bucket as @niheaven said. However, I strongly believe Scoop should not be used to download MSYS2 packages - from a maintenance perspective, it's impossible to keep track of individual versions of the 15-20 different download URLs there. Pacman (widely touted as the most respected package manager out there) in MSYS2 handles dependency trees beautifully; if people need MSYS2 tools they should use it. It's a similar argument to why Scoop isn't (and shouldn't be) used to download/manage NPM packages, or PIP packages - these are far better managed by their respective package managers. If applications provide standalone builds (like this WinLibs does), we can use it freely and the manifest will even get autoupdated. One more problem - currently we have around 10 different manifests in Main which individually download the MSYS2 Runtime - this leads to unnecessary bloat. It might also cause inter-compatibility if someone uses tools from different runtime versions - for example openssh and diffutils. |
@chawyehsu I personally think we should add Nuwen builds to Scoop as well. They are also pretty popular as far as I know |
Nuwen's package is only 64bit and does not contain many useful utilities - as mentioned here https://github.com/chawyehsu/dorado#featured-apps We can add a llvm-mingw.json as well. |
@rashil2000 it contains both GDB and make. STL even mentions both in utilities section Even in 2016 they had both of them http://web.archive.org/web/20160202170442/https://nuwen.net/mingw.html |
In fact it does contain some utilities and libraries, you can look at STL's website, what I did for the nuwen's package in my bucket is for minimalist. My variant contains only the essentials section, so that I can install other utilities separately via scoop such as
I am neutral on this. It's ok to add variant builds, but I believe they should all be added into this main bucket instead of the Version bucket, since they are not different versions of the same distribution, but are different distributions with different names. And that's why I mentioned above that it's not the right way of changing
|
The Win Libs distro used in gcc.json includes GDB, Make, Binutils, LLVM etc. everything. If we want to isolate tools instead (i.e. separate manifests for each tool - GCC, GDB, Binutils, Make etc.), we can look at Win Builds - http://win-builds.org/doku.php/1.5.0_packages - they provide independent binary sources for each. |
If it includes LLVM then that's a bit of overkill to be honest. |
That's why it's a distro 😜 That's why I pointed at isolated tools, if they're more suitable. |
Yeah we should check those out in that case. Installing GCC and finding LLVM in your path is entertaining. |
It doesn't put LLVM in path though, at least not this manifest. These are the binaries:
|
Now this is an odd choice |
For LLVM, see Versions is for alternative versions, not old, not pre, just ALTERNATIVE, that you can have a different choice: different version, different edition, different build. Main is for most used ones, and IMO, if MSYS2's is more convenient to maintained, it should be here, and this one should go to |
The gcc-llvm in Versions (winlibs) is different from the one being discussed here (mstorsjo). MSYS2's version is most popular, but is unmanageable outside of pacman. Besides, the official website for MinGW-w64 mentions standalone sources for downloading too - win-builds.org. |
Do you really need a GCC version 4.8.3-2? Win-builds' latest update is in 2015/11/28, and all packages there are outdated.
|
Darn! Don't know how I missed it. Their sources are heavily out of date. My bad. We should stick to Winlibs then. |
This is not true. The Versions bucket was specifically for different actual versions, such as This breaks the philosophy I think. |
I agree with @chawyehsu Only unstable, old, or development builds of apps should stay in Versions (this includes many of the Nightlies currently present in Main and Extras). If there are two variants of a particular application, (rust-msvc or rust-gnu, llvm-mingw or nuwen-mingw), they all are good contenders for Main. |
See https://github.com/ScoopInstaller/Versions description. I think why there're so many alternative apps or variants in |
I was wrong about this. The manifest added in this PR by @niheaven uses these links, which does NOT contain LLVM stuff: |
Change to WInLibs build and update to 11.2.0
Fix #1752 and close #1761