Skip to content
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

Question regarding MSYS2 conda repo #1484

Open
ostueker opened this issue Feb 27, 2017 · 3 comments
Open

Question regarding MSYS2 conda repo #1484

ostueker opened this issue Feb 27, 2017 · 3 comments
Assignees

Comments

@ostueker
Copy link

I came across the conda repo with msys2 and mingw64 packages[1] and two related GitHub issues [2,3] after @mingwandroid 's work was mentioned on the Software Carpentry list[4].

I am intrigued by the integration of msys2 packages into the conda repositories and eager to use them.

Is there any documentation on these packages, i.e. which of them are meta-packages that can serve as root of the dependency tree?
I found that packages posix and m2w64-toolchain seem to install a large subset (but not all) of the available packages.

[1] https://anaconda.org/msys2/repo
[2] conda-forge/conda-forge.github.io#112
[3] conda-forge/staged-recipes#364 (comment)
[4] http://lists.software-carpentry.org/pipermail/discuss/2016-December/004910.html

@mingwandroid
Copy link

Hi @ostueker,

Thanks for the interest. We've not really documented the msys2/m2 and msys2/m2w64 packages, those links are about as much as we've got, but they've been in use for about 9 months now and are serving their purpose well from my perspective. They are used by the R infrastructure, Rpy2, theano. Some packages are occasionally used as build dependencies in recipes when posix stuff is needed.

One thing to note is that here, -w64 in no way means 'not provided for 32-bit', it's just to differentiate mingw-w64 from the original mingw.org which has no support for 64-bit at all. Every msys2/m2 and msys2/m2w64 package is provided for both architectures.

You can see the recipes for all of them here:
https://github.com/mingwandroid/conda-recipes/tree/master/msys2

Because a meta-package is a normal package just without any content of its own beyond its dependencies there's no way to query which packages are and which are not meta-packages. Some of the packages are meta-packages in MSYS2, and only 3 are bespoke conda meta-packages. They are:

m2-base: 
                'm2-bash',
                'm2-bash-completion',
                'm2-catgets',
                'm2-coreutils',
                'm2-dash',
                'm2-file',
                'm2-filesystem',
                'm2-findutils',
                'm2-gawk',
                'm2-gcc-libs',
                'm2-grep',
                'm2-gzip',
                'm2-inetutils',
                'm2-info',
                'm2-less',
                'm2-mintty',
                'm2-msys2-launcher-git',
                'm2-msys2-runtime',
                'm2-ncurses',
                'm2-sed',
                'm2-time',
                'm2-ttyrec',
                'm2-tzcode',
                'm2-util-linux',
                'm2-which',
                'm2-libxml2'

posix: m2-base + 
                'm2-make',
                'm2-tar',
                'm2-zip',
                'm2-unzip',
                'm2-diffutils'

m2w64-toolchain:
                'm2w64-binutils',
                'm2w64-crt-git',
                'm2w64-gcc',
                'm2w64-gcc-ada',
                'm2w64-gcc-fortran',
                'm2w64-gcc-libgfortran',
                'm2w64-gcc-libs',
                'm2w64-gcc-objc',
                'm2w64-headers-git',
                'm2w64-libmangle-git',
                'm2w64-libwinpthread-git',
                'm2w64-make',
                'm2w64-pkg-config',
                'm2w64-tools-git',
                'm2w64-winpthreads-git'

.. but really, even here I should be using pacman's groups instead of recreating the packages. There is not a single root meta-package for all the MSYS2 packages, because there are around 200 of them and I didn't think people would want all of them at once. Is there a reason to want this?

The script I mentioned at conda-forge/conda-forge.github.io#112 to convert packages from MSYS2 to conda I've still not got round to tidying up and getting into conda skeleton. It requires libalpm and pyalpm which are currently on https://anaconda.org/rdonnelly for macOS and Linux only.

Because MSYS2 is a rolling release it's sometimes not entirely stable. For this reason, we do not plan to sync with it frequently. We call each resync an msys2-epoch and so far there's only been one of those so far, the initial one. Recently, a number of good fixes have gone into it though so soon might be a good time for us to consider updating everything.

@duhd1993
Copy link

Sorry to bring this up. Some tutorials/posts suggest installing both m2w64-toolchain and mingw64. Is there any point in installing m2w64-toolchain if I already have mingw64 toolchain (through msys2 or mingw-w64 project)?

@FaustinCarter
Copy link

Because MSYS2 is a rolling release it's sometimes not entirely stable. For this reason, we do not plan to sync with it frequently. We call each resync an msys2-epoch and so far there's only been one of those so far, the initial one. Recently, a number of good fixes have gone into it though so soon might be a good time for us to consider updating everything.

@mingwandroid Are there any plans to resync with msys2 again? Specifically I'm curious about the potential of easily conda-installing a version of gcc that supports C++17.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants