- More package variants (such as UBSan)
- Support for Windows
-- Using a single `pixi.toml` and `recipe.yaml` for all package variants is blocked on
- [pixi#5364](https://github.com/prefix-dev/pixi/pull/5364)
- and [pixi#5248](https://github.com/prefix-dev/pixi/issues/5248)
+- Using a single `pixi.toml` for all package variants is blocked on
+ [pixi#5248](https://github.com/prefix-dev/pixi/issues/5248)
## Troubleshooting
```
To fix it, try reducing `mmap_rnd_bits`:
-```bash
+```console
$ sudo sysctl vm.mmap_rnd_bits
vm.mmap_rnd_bits = 32 # too high for TSan
$ sudo sysctl vm.mmap_rnd_bits=28 # reduce it
channels = ["https://prefix.dev/conda-forge"]
platforms = ["linux-64", "linux-aarch64", "osx-64", "osx-arm64"]
preview = ["pixi-build"]
+requires-pixi = ">=0.66.0"
[package.build.backend]
name = "pixi-build-rattler-build"
version = "*"
+
+[package.build.config]
+recipe = "../default/recipe.yaml"
+++ /dev/null
-# NOTE: Please always only modify default/recipe.yaml and then run clone-recipe.sh to
-# propagate the changes to the other variants.
-
-context:
- # Keep up to date
- freethreading_tag: ${{ "t" if "freethreading" in variant else "" }}
-
-recipe:
- name: python
-
-source:
- - path: ../../..
-
-outputs:
-- package:
- name: python_abi
- version: ${{ version }}
- build:
- string: "0_${{ abi_tag }}"
- requirements:
- run_constraints:
- - python ${{ version }}.* *_${{ abi_tag }}
-
-- package:
- name: python
- version: ${{ version }}
- build:
- string: "0_${{ abi_tag }}"
- files:
- exclude:
- - "*.o"
- script:
- file: ../build.sh
- env:
- PYTHON_VARIANT: ${{ variant }}
- python:
- site_packages_path: "lib/python${{ version }}${{ freethreading_tag }}/site-packages"
-
- # derived from https://github.com/conda-forge/python-feedstock/blob/main/recipe/meta.yaml
- requirements:
- build:
- - ${{ compiler('c') }}
- - ${{ compiler('cxx') }}
- # Note that we are not using stdlib arguments which means the packages
- # are built for the build settings and are not relocatable to a different
- # machine that has a older system version. (eg: macOS/glibc version)
- - make
- - pkg-config
- # configure script looks for llvm-ar for lto
- - if: osx
- then:
- - llvm-tools
-
- host:
- - bzip2
- - sqlite
- - liblzma-devel
- - zlib
- - zstd
- - openssl
- - readline
- - tk
- # These two are just to get the headers needed for tk.h, but is unused
- - xorg-libx11
- - xorg-xorgproto
- - ncurses
- - libffi
- - if: linux
- then:
- - libuuid
- - libmpdec-devel
- - expat
- - if: linux and "san" in variant
- then:
- - libsanitizer
- - if: osx and "san" in variant
- then:
- - libcompiler-rt
-
- ignore_run_exports:
- from_package:
- - xorg-libx11
- - xorg-xorgproto
-
- run_exports:
- noarch:
- - python
- weak:
- - python_abi ${{ version }}.* *_${{ abi_tag }}
-
-about:
- homepage: https://www.python.org/
- license: Python-2.0
- license_file: LICENSE
cd "$(dirname "$0")"
for variant in asan freethreading tsan-freethreading; do
- cp -av default/recipe.yaml default/pixi.toml ${variant}/
+ cp -av default/pixi.toml ${variant}/
done
channels = ["https://prefix.dev/conda-forge"]
platforms = ["linux-64", "linux-aarch64", "osx-64", "osx-arm64"]
preview = ["pixi-build"]
+requires-pixi = ">=0.66.0"
[package.build.backend]
name = "pixi-build-rattler-build"
version = "*"
+
+[package.build.config]
+recipe = "../default/recipe.yaml"
channels = ["https://prefix.dev/conda-forge"]
platforms = ["linux-64", "linux-aarch64", "osx-64", "osx-arm64"]
preview = ["pixi-build"]
+requires-pixi = ">=0.66.0"
[package.build.backend]
name = "pixi-build-rattler-build"
version = "*"
+
+[package.build.config]
+recipe = "../default/recipe.yaml"
+++ /dev/null
-# NOTE: Please always only modify default/recipe.yaml and then run clone-recipe.sh to
-# propagate the changes to the other variants.
-
-context:
- # Keep up to date
- freethreading_tag: ${{ "t" if "freethreading" in variant else "" }}
-
-recipe:
- name: python
-
-source:
- - path: ../../..
-
-outputs:
-- package:
- name: python_abi
- version: ${{ version }}
- build:
- string: "0_${{ abi_tag }}"
- requirements:
- run_constraints:
- - python ${{ version }}.* *_${{ abi_tag }}
-
-- package:
- name: python
- version: ${{ version }}
- build:
- string: "0_${{ abi_tag }}"
- files:
- exclude:
- - "*.o"
- script:
- file: ../build.sh
- env:
- PYTHON_VARIANT: ${{ variant }}
- python:
- site_packages_path: "lib/python${{ version }}${{ freethreading_tag }}/site-packages"
-
- # derived from https://github.com/conda-forge/python-feedstock/blob/main/recipe/meta.yaml
- requirements:
- build:
- - ${{ compiler('c') }}
- - ${{ compiler('cxx') }}
- # Note that we are not using stdlib arguments which means the packages
- # are built for the build settings and are not relocatable to a different
- # machine that has a older system version. (eg: macOS/glibc version)
- - make
- - pkg-config
- # configure script looks for llvm-ar for lto
- - if: osx
- then:
- - llvm-tools
-
- host:
- - bzip2
- - sqlite
- - liblzma-devel
- - zlib
- - zstd
- - openssl
- - readline
- - tk
- # These two are just to get the headers needed for tk.h, but is unused
- - xorg-libx11
- - xorg-xorgproto
- - ncurses
- - libffi
- - if: linux
- then:
- - libuuid
- - libmpdec-devel
- - expat
- - if: linux and "san" in variant
- then:
- - libsanitizer
- - if: osx and "san" in variant
- then:
- - libcompiler-rt
-
- ignore_run_exports:
- from_package:
- - xorg-libx11
- - xorg-xorgproto
-
- run_exports:
- noarch:
- - python
- weak:
- - python_abi ${{ version }}.* *_${{ abi_tag }}
-
-about:
- homepage: https://www.python.org/
- license: Python-2.0
- license_file: LICENSE
channels = ["https://prefix.dev/conda-forge"]
platforms = ["linux-64", "linux-aarch64", "osx-64", "osx-arm64"]
preview = ["pixi-build"]
+requires-pixi = ">=0.66.0"
[package.build.backend]
name = "pixi-build-rattler-build"
version = "*"
+
+[package.build.config]
+recipe = "../default/recipe.yaml"
+++ /dev/null
-# NOTE: Please always only modify default/recipe.yaml and then run clone-recipe.sh to
-# propagate the changes to the other variants.
-
-context:
- # Keep up to date
- freethreading_tag: ${{ "t" if "freethreading" in variant else "" }}
-
-recipe:
- name: python
-
-source:
- - path: ../../..
-
-outputs:
-- package:
- name: python_abi
- version: ${{ version }}
- build:
- string: "0_${{ abi_tag }}"
- requirements:
- run_constraints:
- - python ${{ version }}.* *_${{ abi_tag }}
-
-- package:
- name: python
- version: ${{ version }}
- build:
- string: "0_${{ abi_tag }}"
- files:
- exclude:
- - "*.o"
- script:
- file: ../build.sh
- env:
- PYTHON_VARIANT: ${{ variant }}
- python:
- site_packages_path: "lib/python${{ version }}${{ freethreading_tag }}/site-packages"
-
- # derived from https://github.com/conda-forge/python-feedstock/blob/main/recipe/meta.yaml
- requirements:
- build:
- - ${{ compiler('c') }}
- - ${{ compiler('cxx') }}
- # Note that we are not using stdlib arguments which means the packages
- # are built for the build settings and are not relocatable to a different
- # machine that has a older system version. (eg: macOS/glibc version)
- - make
- - pkg-config
- # configure script looks for llvm-ar for lto
- - if: osx
- then:
- - llvm-tools
-
- host:
- - bzip2
- - sqlite
- - liblzma-devel
- - zlib
- - zstd
- - openssl
- - readline
- - tk
- # These two are just to get the headers needed for tk.h, but is unused
- - xorg-libx11
- - xorg-xorgproto
- - ncurses
- - libffi
- - if: linux
- then:
- - libuuid
- - libmpdec-devel
- - expat
- - if: linux and "san" in variant
- then:
- - libsanitizer
- - if: osx and "san" in variant
- then:
- - libcompiler-rt
-
- ignore_run_exports:
- from_package:
- - xorg-libx11
- - xorg-xorgproto
-
- run_exports:
- noarch:
- - python
- weak:
- - python_abi ${{ version }}.* *_${{ abi_tag }}
-
-about:
- homepage: https://www.python.org/
- license: Python-2.0
- license_file: LICENSE