Repository: conda-forge/staged-recipes
Pull request #29294: libcufftmp 11.4.0.6
Author: login: billysuh7
Created: 2025-02-26T19:05:19Z | Merged: 2025-03-31T22:49:56Z

<!--
Thank you very much for putting in this recipe PR!

This repository is very active, so if you need help with a PR, please let the
right people know. There are language-specific teams for reviewing recipes.

| Language        | Name of review team           |
| --------------- | ----------------------------- |
| python          | `@conda-forge/help-python`    |
| python/c hybrid | `@conda-forge/help-python-c`  |
| r               | `@conda-forge/help-r`         |
| java            | `@conda-forge/help-java`      |
| nodejs          | `@conda-forge/help-nodejs`    |
| c/c++           | `@conda-forge/help-c-cpp`     |
| perl            | `@conda-forge/help-perl`      |
| Julia           | `@conda-forge/help-julia`     |
| ruby            | `@conda-forge/help-ruby`      |
| Rust            | `@conda-forge/help-rust`      |
| Go              | `@conda-forge/help-go`        |
| other           | `@conda-forge/staged-recipes` |

Once the PR is ready for review, please mention one of the teams above in a
new comment. i.e. `@conda-forge/help-some-language, ready for review!`
Then, a bot will label the PR as 'review-requested'.

Due to GitHub limitations, first time contributors to conda-forge are unable
to ping conda-forge teams directly, but you can [ask a bot to ping the team][1]
using a special command in a comment on the PR to get the attention of the
`staged-recipes` team. You can also consider asking on our [Zulip chat][2]
if your recipe isn't reviewed promptly.

[1]: https://conda-forge.org/docs/maintainer/infrastructure.html#conda-forge-admin-please-ping-team
[2]: https://conda-forge.zulipchat.com

All apologies in advance if your recipe PR does not receive prompt attention.
This is a high volume repository and the reviewers are volunteers. Review times
vary depending on the number of reviewers on a given language team and may be days
or weeks. We are always looking for more staged-recipe reviewers. If you are
interested in volunteering, please contact a member of @conda-forge/core.
We'd love to have the help!
-->

Checklist
- [X] Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
- [] License file is packaged (see [here](https://github.com/conda-forge/staged-recipes/blob/5eddbd7fc9d1502169089da06c3688d9759be978/recipes/example/meta.yaml#L64-L73) for an example).
- [ ] Source is from official source.
- [X] Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
- [ ] If static libraries are linked in, the license of the static library is packaged.
- [X] Package does not ship static libraries. If static libraries are needed, [follow CFEP-18](https://github.com/conda-forge/cfep/blob/main/cfep-18.md).
- [X] Build number is 0.
- [X] A tarball (`url`) rather than a repo (e.g. `git_url`) is used in your recipe (see [here](https://conda-forge.org/docs/maintainer/adding_pkgs.html#build-from-tarballs-not-repos) for more details).
- [X] GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
- [X] When in trouble, please check our [knowledge base documentation](https://conda-forge.org/docs/maintainer/knowledge_base.html) before pinging a team.



Diff:
diff --git a/recipes/cufftmp/build.sh b/recipes/cufftmp/build.sh
new file mode 100644
index 0000000000000..9b5bdc3b4391f
--- /dev/null
+++ b/recipes/cufftmp/build.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -e
+
+check-glibc lib/libcufftMp.so.*
+
+mkdir -p $PREFIX/lib/
+
+cp -rv include $PREFIX/
+cp -rv lib $PREFIX/
diff --git a/recipes/cufftmp/meta.yaml b/recipes/cufftmp/meta.yaml
new file mode 100644
index 0000000000000..d161d4b088f1f
--- /dev/null
+++ b/recipes/cufftmp/meta.yaml
@@ -0,0 +1,94 @@
+{% set version = "11.4.0.6" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set sha256 = "6a0597e10e698ab46ea9a607efe06f681ba6e2bf0d8eddd8a72a09c18a8f7253" %}  # [linux64]
+{% set sha256 = "c0f944fd6ef2e13ef5adfd48ef2e02660f5f573a69c515580096a9eaae13be16" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/{{ platform }}/libcufftmp-{{ platform }}-{{ version }}_cuda12-archive.{{ extension }}  # [(cuda_compiler_version or "").startswith("12")]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp
+    build:
+      ignore_run_exports_from:
+        - {{ compiler('cuda') }}
+    files:
+      - lib/libcufftMp.so.*
+    requirements:
+      build:
+        - {{ compiler('c') }}
+        - {{ stdlib('c') }}
+        - {{ compiler('cuda') }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
+        - libnvshmem-dev 3
+      run:
+        - {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }}  # [cuda_compiler_version != "None"]
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+    test:
+      commands:
+        - test -f $PREFIX/lib/libcufftMp.so.11
+        - test -f $PREFIX/lib/libcufftMp.so.11.4.0
+
+  - name: libcufftmp-dev
+    build:
+      run_exports:
+        - {{ pin_subpackage("libcufftmp", max_pin=None) }}
+    files:
+      - lib/libcufftMp.so
+      - include/cufftMp.h
+      - include/cufft.h
+      - include/cudalibxt.h
+      - include/cufftXt.h
+    requirements:
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
+        - {{ pin_subpackage("libcufftmp", exact=True) }}
+      run:
+        - {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }}  # [cuda_compiler_version != "None"]
+        - {{ pin_subpackage("libcufftmp", exact=True) }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+    test:
+      commands:
+        - test -f $PREFIX/lib/libcufftMp.so
+        - test -f $PREFIX/include/cudalibxt.h
+        - test -f $PREFIX/include/cufft.h
+        - test -f $PREFIX/include/cufftMp.h
+        - test -f $PREFIX/include/cufftXt.h
+
+about:
+  home: https://docs.nvidia.com/hpc-sdk/cufftmp
+  license: LicenseRef-NVIDIA-End-User-License-Agreement
+  license_file: LICENSE
+  license_url: https://docs.nvidia.com/cuda/cublasdx/license.html
+  summary: The NVIDIA cuFFTMp (cuFFT Multi-process) library
+  description: >-
+    The multi-node FFT functionality, available through the cuFFTMp API, enables
+    scientists and engineers to solve distributed 2D and 3D FFTs in exascale
+    problems. The library handles all the communications between machines,
+    allowing users to focus on other aspects of their problems.
+  doc_url: https://docs.nvidia.com/hpc-sdk/cufftmp
+
+extra:
+  recipe-maintainers:
+    - conda-forge/cuda
+  feedstock-name: libcufftmp


Reviews:
user: login: carterbox
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-03-05T00:06:16Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-07T01:05:02Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-07T01:05:49Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-07T01:06:59Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-07T01:07:36Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-07T01:19:30Z
user: login: carterbox
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-07T18:18:55Z
user: login: gforsyth
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T13:09:40Z
user: login: gforsyth
body: This looks good to me @billysuh7 -- just the one question about the license URL.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T13:12:02Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T15:32:57Z
user: login: jakirkham
body: Thanks Billy! 🙏

Had a question below
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-28T00:58:51Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-28T02:33:30Z
user: login: billysuh7
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T19:22:14Z
user: login: kmittman
body: LGTM
state: APPROVED
author_association: NONE
submitted_at: 2025-03-31T19:52:02Z
user: login: kkraus14
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T22:47:32Z

Review comments:
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
path: recipes/cufftmp/meta.yaml
user: login: carterbox
body: You haven't called `check-glibc` in the build script.
created_at: 2025-03-04T23:58:16Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
path: recipes/cufftmp/meta.yaml
user: login: carterbox
body: Is there an older build of this library that I can use to review?
created_at: 2025-03-05T00:01:10Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - libnvshmem-dev
+    files:
+      - lib/libcufftMp.so.*
+      - bin/chech-glibc lib/libcufftMp.so.*
path: recipes/cufftmp/meta.yaml
user: login: carterbox
body: ```suggestion
      - lib/libcufftMp.so.*
```
created_at: 2025-03-05T00:02:41Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - libnvshmem-dev
path: recipes/cufftmp/meta.yaml
user: login: carterbox
body: Why ignore run_exports from libnvshmem-dev?
created_at: 2025-03-05T00:03:09Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - libnvshmem-dev
+    files:
+      - lib/libcufftMp.so.*
+      - bin/chech-glibc lib/libcufftMp.so.*
+    requirements:
+      build:
+        - {{ compiler('c') }}
+        - {{ stdlib('c') }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
path: recipes/cufftmp/meta.yaml
user: login: carterbox
body: This recipe needs to depend on `{{ compiler('cuda') }}` if to contains device code. If it is only host code, then it doesn't need cuda-version.
created_at: 2025-03-05T00:04:44Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: Created `build.sh` and used `check-glibc`
created_at: 2025-03-07T01:05:02Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: Will share location privately
created_at: 2025-03-07T01:05:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - libnvshmem-dev
+    files:
+      - lib/libcufftMp.so.*
+      - bin/chech-glibc lib/libcufftMp.so.*
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: Done
created_at: 2025-03-07T01:06:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - libnvshmem-dev
+    files:
+      - lib/libcufftMp.so.*
+      - bin/chech-glibc lib/libcufftMp.so.*
+    requirements:
+      build:
+        - {{ compiler('c') }}
+        - {{ stdlib('c') }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: Thanks for the helpful info, I've added `{{ compiler('cuda') }}`
created_at: 2025-03-07T01:07:36Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - libnvshmem-dev
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: `libnvshmem-dev` (at https://github.com/conda-forge/libnvshmem-feedstock/blob/80c7f2969ec2241bc598d752ba70ec3e51d65b94/recipe/meta.yaml#L110) does `run_exports:` of 

`- {{ pin_subpackage("libnvshmem" ~ soname, max_pin=None) }}`

I wanted to make all patches of given ABI for `libnvshmem3` be compatible with this `cufftmp`. That said, I wonder if it would have been better to have `min_pin=x` in `libnvshmem` recipe, so that I wouldn't need to ignore its run exports as I've done here ? IOW, any lib which honors ABI compatibility can pin at the level of major/soname version, correct ? Please let me know if I am making sense.
created_at: 2025-03-07T01:19:30Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,105 @@
+{% set version = "11.4.0.6" %}
+{% set libnvshmem_soname = "3" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "516714b997bba8266e98ea8cebb3267c33d382d2cccb42bd1731eff3f2846a67" %}  # [linux64]
+{% set sha256 = "" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz  # [linux64]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+  script:
+    - cp -rvp include $PREFIX/
+    - cp -rvp lib $PREFIX/
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - libnvshmem-dev
path: recipes/cufftmp/meta.yaml
user: login: carterbox
body: Let's assume that libnvshem doesn't break its ABI. A cufftmp built against `libnvshmem.so.3.4.5` is compatible with *any newer* `libnvshmem.so.3`. What do you gain by allowing the user to install `libnvshmem.so.3.2.1`? Nothing because any other package built against `libnvshmem.so.3.2.1` should also be compatible with `libnvshmem.so.3.4.5`. We always want the `libnvshmem3` package to be the newest available package because it provides the widest compatibility.


created_at: 2025-03-07T18:18:54Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,95 @@
+{% set version = "11.4.0.6" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "6a0597e10e698ab46ea9a607efe06f681ba6e2bf0d8eddd8a72a09c18a8f7253" %}  # [linux64]
+{% set sha256 = "c0f944fd6ef2e13ef5adfd48ef2e02660f5f573a69c515580096a9eaae13be16" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/{{ platform }}/libcufftmp-{{ platform }}-{{ version }}_cuda12-archive.{{ extension }}  # [(cuda_compiler_version or "").startswith("12")]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - {{ compiler('cuda') }}
+    files:
+      - lib/libcufftMp.so.*
+    requirements:
+      build:
+        - {{ compiler('c') }}
+        - {{ stdlib('c') }}
+        - {{ compiler('cuda') }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
+        - libnvshmem-dev 3
+      run:
+        - {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }}  # [cuda_compiler_version != "None"]
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+    test:
+      commands:
+        - test -f $PREFIX/lib/libcufftMp.so.11
+        - test -f $PREFIX/lib/libcufftMp.so.11.4.0
+
+  - name: libcufftmp-dev
+    build:
+      run_exports:
+        - {{ pin_subpackage("libcufftmp" ~ soname, max_pin=None) }}
+    files:
+      - lib/libcufftMp.so
+      - include/cufftMp.h
+      - include/cufft.h
+      - include/cudalibxt.h
+      - include/cufftXt.h
+    requirements:
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
+        - {{ pin_subpackage("libcufftmp" ~ soname, exact=True) }}
+      run:
+        - {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }}  # [cuda_compiler_version != "None"]
+        - {{ pin_subpackage("libcufftmp" ~ soname, exact=True) }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+    test:
+      commands:
+        - test -f $PREFIX/lib/libcufftMp.so
+        - test -f $PREFIX/include/cudalibxt.h
+        - test -f $PREFIX/include/cufft.h
+        - test -f $PREFIX/include/cufftMp.h
+        - test -f $PREFIX/include/cufftXt.h
+
+about:
+  home: https://docs.nvidia.com/hpc-sdk/cufftmp
+  license: LicenseRef-NVIDIA-End-User-License-Agreement
+  license_file: LICENSE
+  license_url: https://docs.nvidia.com/cuda/cublasdx/license.html
path: recipes/cufftmp/meta.yaml
user: login: gforsyth
body: Is this the correct license URL?
created_at: 2025-03-26T13:09:40Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,95 @@
+{% set version = "11.4.0.6" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "6a0597e10e698ab46ea9a607efe06f681ba6e2bf0d8eddd8a72a09c18a8f7253" %}  # [linux64]
+{% set sha256 = "c0f944fd6ef2e13ef5adfd48ef2e02660f5f573a69c515580096a9eaae13be16" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/{{ platform }}/libcufftmp-{{ platform }}-{{ version }}_cuda12-archive.{{ extension }}  # [(cuda_compiler_version or "").startswith("12")]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
+    build:
+      ignore_run_exports_from:
+        - {{ compiler('cuda') }}
+    files:
+      - lib/libcufftMp.so.*
+    requirements:
+      build:
+        - {{ compiler('c') }}
+        - {{ stdlib('c') }}
+        - {{ compiler('cuda') }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
+        - libnvshmem-dev 3
+      run:
+        - {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }}  # [cuda_compiler_version != "None"]
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+    test:
+      commands:
+        - test -f $PREFIX/lib/libcufftMp.so.11
+        - test -f $PREFIX/lib/libcufftMp.so.11.4.0
+
+  - name: libcufftmp-dev
+    build:
+      run_exports:
+        - {{ pin_subpackage("libcufftmp" ~ soname, max_pin=None) }}
+    files:
+      - lib/libcufftMp.so
+      - include/cufftMp.h
+      - include/cufft.h
+      - include/cudalibxt.h
+      - include/cufftXt.h
+    requirements:
+      host:
+        - cuda-version {{ cuda_compiler_version }}  # [cuda_compiler_version != "None"]
+        - {{ pin_subpackage("libcufftmp" ~ soname, exact=True) }}
+      run:
+        - {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }}  # [cuda_compiler_version != "None"]
+        - {{ pin_subpackage("libcufftmp" ~ soname, exact=True) }}
+        - arm-variant * {{ arm_variant_type }}  # [aarch64]
+    test:
+      commands:
+        - test -f $PREFIX/lib/libcufftMp.so
+        - test -f $PREFIX/include/cudalibxt.h
+        - test -f $PREFIX/include/cufft.h
+        - test -f $PREFIX/include/cufftMp.h
+        - test -f $PREFIX/include/cufftXt.h
+
+about:
+  home: https://docs.nvidia.com/hpc-sdk/cufftmp
+  license: LicenseRef-NVIDIA-End-User-License-Agreement
+  license_file: LICENSE
+  license_url: https://docs.nvidia.com/cuda/cublasdx/license.html
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: For now yes - they are going through a process to stand up a proper URL for them. For now this was approved to use after going through legal steps.
created_at: 2025-03-26T15:32:57Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,95 @@
+{% set version = "11.4.0.6" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "6a0597e10e698ab46ea9a607efe06f681ba6e2bf0d8eddd8a72a09c18a8f7253" %}  # [linux64]
+{% set sha256 = "c0f944fd6ef2e13ef5adfd48ef2e02660f5f573a69c515580096a9eaae13be16" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/{{ platform }}/libcufftmp-{{ platform }}-{{ version }}_cuda12-archive.{{ extension }}  # [(cuda_compiler_version or "").startswith("12")]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
path: recipes/cufftmp/meta.yaml
user: login: jakirkham
body: Do we imagine having multiple versions of `libcufftmp` installed in the same Conda environment?
created_at: 2025-03-28T00:56:29Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,95 @@
+{% set version = "11.4.0.6" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "6a0597e10e698ab46ea9a607efe06f681ba6e2bf0d8eddd8a72a09c18a8f7253" %}  # [linux64]
+{% set sha256 = "c0f944fd6ef2e13ef5adfd48ef2e02660f5f573a69c515580096a9eaae13be16" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/{{ platform }}/libcufftmp-{{ platform }}-{{ version }}_cuda12-archive.{{ extension }}  # [(cuda_compiler_version or "").startswith("12")]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: I doubt it @jakirkham . Are you suggesting to remove `{{ soname }}` references ? 
created_at: 2025-03-28T02:33:30Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,95 @@
+{% set version = "11.4.0.6" %}
+{% set platform = "linux-sbsa" %}  # [aarch64]
+{% set platform = "linux-x86_64" %}  # [linux64]
+{% set extension = "tar.xz" %}  # [unix]
+
+{% set cuda_compiler_version = cuda_compiler_version|default("None") %}
+
+{% set soname = version.split(".")[0] %}
+{% set sha256 = "6a0597e10e698ab46ea9a607efe06f681ba6e2bf0d8eddd8a72a09c18a8f7253" %}  # [linux64]
+{% set sha256 = "c0f944fd6ef2e13ef5adfd48ef2e02660f5f573a69c515580096a9eaae13be16" %}  # [aarch64]
+
+package:
+  name: libcufftmp-split
+  version: {{ version }}
+
+source:
+  url: https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/{{ platform }}/libcufftmp-{{ platform }}-{{ version }}_cuda12-archive.{{ extension }}  # [(cuda_compiler_version or "").startswith("12")]
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: true  # [(cuda_compiler_version in (None, "None", "11.8")) or (not (linux64 or aarch64))]
+
+requirements:
+  build:
+    - cf-nvidia-tools 1  # [linux]
+
+outputs:
+
+  - name: libcufftmp{{ soname }}
path: recipes/cufftmp/meta.yaml
user: login: billysuh7
body: There is no particular reason to keep `{{ soname }}`, so removing it
created_at: 2025-03-31T19:22:14Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-02-26T19:06:42Z
body: Hi! This is the staged-recipes linter and your PR looks excellent! :rocket:


author_association: CONTRIBUTOR
user: login: conda-forge-admin
created_at: 2025-02-26T19:07:05Z
body: Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (```recipes/cufftmp/meta.yaml```) and found some lint.

Here's what I've got...


For **recipes/cufftmp/meta.yaml**:

 * ❌ Selectors are suggested to take a ``<two spaces>#<one space>[<expression>]`` form. See lines [17]
 * ❌ This recipe is using a compiler, which now requires adding a build dependence on `{{ stdlib("c") }}` as well. Note that this rule applies to each output of the recipe using a compiler. For further details, please see https://github.com/conda-forge/conda-forge.github.io/issues/2102.


<sub>This message was generated by GitHub Actions workflow run [https://github.com/conda-forge/conda-forge-webservices/actions/runs/13551461446](https://github.com/conda-forge/conda-forge-webservices/actions/runs/13551461446). Examine the logs at this URL for more detail.</sub>

author_association: CONTRIBUTOR
user: login: conda-forge-admin
created_at: 2025-02-26T19:27:30Z
body: Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (```recipes/cufftmp/meta.yaml```) and found it was in an excellent condition.

author_association: CONTRIBUTOR
user: login: billysuh7
created_at: 2025-03-04T21:16:22Z
body: @carterbox would you kindly review this? The `about:` section is currently wrong which I will update once I get all the info from them. Thanks.
author_association: CONTRIBUTOR
user: login: billysuh7
created_at: 2025-03-19T04:04:27Z
body: @carterbox please let me know if there is anything else to fix, aside from the `about:` section which I have not yet gotten to. Thanks.
author_association: CONTRIBUTOR
user: login: billysuh7
created_at: 2025-03-26T16:22:19Z
body: > This looks good to me @billysuh7 -- just the one question about the license URL.

Thanks @gforsyth!
author_association: CONTRIBUTOR
user: login: billysuh7
created_at: 2025-03-31T19:54:46Z
body: > LGTM

Thanks @kmittman !
author_association: CONTRIBUTOR
user: login: kkraus14
created_at: 2025-03-31T22:48:10Z
body: LGTM, thanks @billysuh7 
author_association: CONTRIBUTOR