diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 894d285e1..d73950f5f 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -72,7 +72,8 @@ requirements: - chevron - deprecation - flask - - git + - git # [not win] + - m2w64-crt-git # [win] - matplotlib-base - numpy >=1.13.0 - pandas @@ -109,6 +110,7 @@ outputs: - {{ pin_subpackage('yggdrasil.zmq', exact=True) }} # [win] - cmake # [not win] - compiler-rt # [osx] + - m2w64-make # [win] - make # [not win] - {{ compiler('c') }} - {{ compiler('cxx') }} @@ -123,6 +125,7 @@ outputs: run: - {{ pin_subpackage('yggdrasil.c', exact=True) }} - m2w64-gcc-fortran # [win] + - m2w64-toolchain_win-64 # [win] - {{ compiler('fortran') }} # [not win] - name: yggdrasil.r build: diff --git a/utils/requirements/requirements.json b/utils/requirements/requirements.json index 456d4f66d..6bcf64fed 100644 --- a/utils/requirements/requirements.json +++ b/utils/requirements/requirements.json @@ -63,9 +63,17 @@ "deprecation", "flask", { - "git": { - "method": "conda" - } + "git": [ + { + "method": "conda", + "os": "unix" + }, + { + "name": "m2w64-crt-git", + "method": "conda", + "os": "win" + } + ] }, { "hatch-fancy-pypi-readme": { @@ -202,10 +210,17 @@ } }, { - "make": { - "method": "conda", - "os": "unix" - } + "make": [ + { + "method": "conda", + "os": "unix" + }, + { + "name": "m2w64-make", + "method": "conda", + "os": "win" + } + ] }, { "{{ compiler('c') }}": { @@ -246,7 +261,10 @@ { "name": "m2w64-gcc-fortran", "os": "win", - "method": "conda" + "method": "conda", + "add": [ + "m2w64-toolchain_win-64" + ] }, { "name": "gfortran", diff --git a/utils/requirements/requirements.yaml b/utils/requirements/requirements.yaml index 647122aae..1c6198e4d 100644 --- a/utils/requirements/requirements.yaml +++ b/utils/requirements/requirements.yaml @@ -1,3 +1,17 @@ +# About use of m2w64 conda packages: +# The msmpi recipe currently requires m2w64_fortran explicitly, which +# has not been rebuilt since 2021, but the updated msys packages (m2-*) +# require m2-conda-epoch 20230914 making msmpi incompatible. The m2w64 +# versions of git & make are used on windows to prevent conflicts +# between the m2w64 and other msys2 libraries installed by the +# non-m2w64 versions of these packages. This conflict can appear as +# segfaults during compilation if the non-m2w64 msys2 libraries precede +# the m2w64 on the PATH. +# +# Once (if) msmpi is updated to use the new msys2 gfortran +# distribution, then the m2w64- versions should be replaced with m2- +# versions or the non-prefixed versions if the PATH conflicts are +# resolved. general: - python-build: flags: @@ -37,7 +51,11 @@ general: - deprecation - flask - git: - method: conda + - method: conda + os: unix + - name: m2w64-crt-git + method: conda + os: win - hatch-fancy-pypi-readme: host: True flags: @@ -116,8 +134,11 @@ extras: method: conda os: unix - make: - method: conda - os: unix + - method: conda + os: unix + - name: m2w64-make + method: conda + os: win - "{{ compiler('c') }}": method: conda_recipe - "{{ compiler('cxx') }}": @@ -153,7 +174,7 @@ extras: - name: m2w64-gcc-fortran os: win method: conda - # add: [m2w64-toolchain_win-64] + add: [m2w64-toolchain_win-64] - name: gfortran method: apt - name: gfortran diff --git a/utils/requirements/requirements_condaonly.txt b/utils/requirements/requirements_condaonly.txt index 05ead2919..98b76f8b1 100644 --- a/utils/requirements/requirements_condaonly.txt +++ b/utils/requirements/requirements_condaonly.txt @@ -3,10 +3,13 @@ compiler-rt; platform_system == 'Darwin' # [conda,c] czmq # [conda,zmq] fortran-compiler; platform_system != 'Windows' # [conda,fortran] ghostscript # [conda,images] -git # [conda] +git; platform_system != 'Windows' # [conda] juliaup # [conda,julia] lz4 # [conda,zmq] +m2w64-crt-git; platform_system == 'Windows' # [conda] m2w64-gcc-fortran; platform_system == 'Windows' # [conda,fortran] +m2w64-make; platform_system == 'Windows' # [conda,c] +m2w64-toolchain_win-64; platform_system == 'Windows' # [conda,fortran] make; platform_system != 'Windows' # [conda,c] matplotlib-base # [conda] mpich; platform_system == 'Linux' # [conda,mpi]