diff --git a/Tools/pixi-packages/README.md b/Tools/pixi-packages/README.md index 4b44fd12150752..d818fddaac6a1e 100644 --- a/Tools/pixi-packages/README.md +++ b/Tools/pixi-packages/README.md @@ -36,9 +36,8 @@ Each package definition is contained in a subdirectory, but they share the build - 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 @@ -48,7 +47,7 @@ FATAL: ThreadSanitizer: unexpected memory mapping 0x7977bd072000-0x7977bd500000 ``` 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 diff --git a/Tools/pixi-packages/asan/pixi.toml b/Tools/pixi-packages/asan/pixi.toml index e3b5673d962659..bf9841e18677ca 100644 --- a/Tools/pixi-packages/asan/pixi.toml +++ b/Tools/pixi-packages/asan/pixi.toml @@ -5,7 +5,11 @@ 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" diff --git a/Tools/pixi-packages/asan/recipe.yaml b/Tools/pixi-packages/asan/recipe.yaml deleted file mode 100644 index 30d0d5a2ed2e04..00000000000000 --- a/Tools/pixi-packages/asan/recipe.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# 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 diff --git a/Tools/pixi-packages/clone-recipe.sh b/Tools/pixi-packages/clone-recipe.sh index 52b2568837c8e1..25ceaf85c35f56 100755 --- a/Tools/pixi-packages/clone-recipe.sh +++ b/Tools/pixi-packages/clone-recipe.sh @@ -6,5 +6,5 @@ set -o errexit 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 diff --git a/Tools/pixi-packages/default/pixi.toml b/Tools/pixi-packages/default/pixi.toml index e3b5673d962659..bf9841e18677ca 100644 --- a/Tools/pixi-packages/default/pixi.toml +++ b/Tools/pixi-packages/default/pixi.toml @@ -5,7 +5,11 @@ 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" diff --git a/Tools/pixi-packages/freethreading/pixi.toml b/Tools/pixi-packages/freethreading/pixi.toml index e3b5673d962659..bf9841e18677ca 100644 --- a/Tools/pixi-packages/freethreading/pixi.toml +++ b/Tools/pixi-packages/freethreading/pixi.toml @@ -5,7 +5,11 @@ 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" diff --git a/Tools/pixi-packages/freethreading/recipe.yaml b/Tools/pixi-packages/freethreading/recipe.yaml deleted file mode 100644 index 30d0d5a2ed2e04..00000000000000 --- a/Tools/pixi-packages/freethreading/recipe.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# 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 diff --git a/Tools/pixi-packages/tsan-freethreading/pixi.toml b/Tools/pixi-packages/tsan-freethreading/pixi.toml index e3b5673d962659..bf9841e18677ca 100644 --- a/Tools/pixi-packages/tsan-freethreading/pixi.toml +++ b/Tools/pixi-packages/tsan-freethreading/pixi.toml @@ -5,7 +5,11 @@ 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" diff --git a/Tools/pixi-packages/tsan-freethreading/recipe.yaml b/Tools/pixi-packages/tsan-freethreading/recipe.yaml deleted file mode 100644 index 30d0d5a2ed2e04..00000000000000 --- a/Tools/pixi-packages/tsan-freethreading/recipe.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# 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