Repository: conda-forge/dotnet-feedstock
Pull request #105: MNT: multi-line summary. executable test
Author: login: MementoRC
Created: 2025-04-05T22:31:23Z | Merged: 2025-04-10T23:58:08Z

<!--
Thank you for your pull request.
Below are a few things we ask you kindly to self-check before getting a review. Remove checks that are not relevant.
-->
Checklist
* [x] Used a [personal fork of the feedstock to propose changes](https://conda-forge.org/docs/maintainer/updating_pkgs.html#forking-and-pull-requests)
* [x] Bumped the build number (if the version is unchanged)
* [ ] Reset the build number to `0` (if the version changed)
* [ ] [Re-rendered]( https://conda-forge.org/docs/maintainer/updating_pkgs.html#rerendering-feedstocks ) with the latest `conda-smithy` (Use the phrase <code>@<space/>conda-forge-admin, please rerender</code> in a comment in this PR for automated rerendering)
* [x] Ensured the license file is being packaged.

<!--
Please note any issues this fixes using [closing keywords]( https://help.github.com/articles/closing-issues-using-keywords/ ):
-->

<!--
Please add any other relevant info below:
-->



Diff:
diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml
index 606c638..f1ac79a 100644
--- a/.ci_support/linux_64_.yaml
+++ b/.ci_support/linux_64_.yaml
@@ -14,9 +14,5 @@ cxx_compiler_version:
 - '13'
 docker_image:
 - quay.io/condaforge/linux-anvil-x86_64:alma9
-libcurl:
-- '8'
 target_platform:
 - linux-64
-zlib:
-- '1'
diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml
index e12cf61..2088d86 100644
--- a/.ci_support/linux_aarch64_.yaml
+++ b/.ci_support/linux_aarch64_.yaml
@@ -14,9 +14,5 @@ cxx_compiler_version:
 - '13'
 docker_image:
 - quay.io/condaforge/linux-anvil-x86_64:alma9
-libcurl:
-- '8'
 target_platform:
 - linux-aarch64
-zlib:
-- '1'
diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml
index 8b59bec..1f6d769 100644
--- a/.ci_support/osx_64_.yaml
+++ b/.ci_support/osx_64_.yaml
@@ -1,24 +1,12 @@
 MACOSX_DEPLOYMENT_TARGET:
-- '10.13'
+- '11.3'
 MACOSX_SDK_VERSION:
-- '10.13'
-c_stdlib:
-- macosx_deployment_target
-c_stdlib_version:
-- '10.13'
+- '11.3'
 channel_sources:
 - conda-forge
 channel_targets:
 - conda-forge main
-cxx_compiler:
-- clangxx
-cxx_compiler_version:
-- '18'
-libcurl:
-- '8'
 macos_machine:
 - x86_64-apple-darwin13.4.0
 target_platform:
 - osx-64
-zlib:
-- '1'
diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml
index 6fbd2a4..7b1fb88 100644
--- a/.ci_support/osx_arm64_.yaml
+++ b/.ci_support/osx_arm64_.yaml
@@ -2,23 +2,11 @@ MACOSX_DEPLOYMENT_TARGET:
 - '11.0'
 MACOSX_SDK_VERSION:
 - '11.0'
-c_stdlib:
-- macosx_deployment_target
-c_stdlib_version:
-- '11.0'
 channel_sources:
 - conda-forge
 channel_targets:
 - conda-forge main
-cxx_compiler:
-- clangxx
-cxx_compiler_version:
-- '18'
-libcurl:
-- '8'
 macos_machine:
 - arm64-apple-darwin20.0.0
 target_platform:
 - osx-arm64
-zlib:
-- '1'
diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml
index 768e455..e717348 100644
--- a/.ci_support/win_64_.yaml
+++ b/.ci_support/win_64_.yaml
@@ -1,10 +1,6 @@
-c_stdlib:
-- vs
 channel_sources:
 - conda-forge
 channel_targets:
 - conda-forge main
-cxx_compiler:
-- vs2019
 target_platform:
 - win-64
diff --git a/recipe/activate.d/dotnet-root.sh b/recipe/activate.d/dotnet-root.sh
index 01b264a..8746163 100644
--- a/recipe/activate.d/dotnet-root.sh
+++ b/recipe/activate.d/dotnet-root.sh
@@ -18,6 +18,8 @@ export DOTNET_ROOT=$CONDA_PREFIX/lib/dotnet
 export DOTNET_TOOLS=$DOTNET_ROOT/tools
 
 export DOTNET_CLI_TELEMETRY_OPTOUT=true
+# runtime would attempt to load liblttng-ust.so.0, which is no longer supported
+export DOTNET_LTTNG=0
 export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
 export DOTNET_ADD_GLOBAL_TOOLS_TO_PATH=false
 export DOTNET_MULTILEVEL_LOOKUP=0
diff --git a/recipe/build-runtime.sh b/recipe/build-runtime.sh
index cbed7e5..463d8f9 100644
--- a/recipe/build-runtime.sh
+++ b/recipe/build-runtime.sh
@@ -16,6 +16,12 @@ cp ./dotnet/dotnet* "${DOTNET_ROOT}"
 cp -r ./dotnet/shared/Microsoft.NETCore.App/ "${DOTNET_ROOT}/shared/Microsoft.NETCore.App/"
 cp -r ./dotnet/host/ "${DOTNET_ROOT}/host/"
 
+runtime_lib_dir=${DOTNET_ROOT}/shared/Microsoft.NETCore.App/${DOTNET_RUNTIME_VERSION}
+if [[ "${target_platform}" == "linux-"* ]]; then
+    # Hack to fix liblttng-ust dependency issues. liblttng-ust.so.0 is no longer supported.
+    patchelf --remove-needed liblttng-ust.so.0 ${runtime_lib_dir}/libcoreclrtraceptprovider.so
+fi
+
 mkdir -p "${PREFIX}/etc/conda/activate.d"
 mkdir -p "${PREFIX}/etc/conda/deactivate.d"
 cp -r "${RECIPE_DIR}/activate.d/." "${PREFIX}/etc/conda/activate.d/"
diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml
new file mode 100644
index 0000000..76ac074
--- /dev/null
+++ b/recipe/conda_build_config.yaml
@@ -0,0 +1,3 @@
+c_stdlib_version:
+  # Needed for CryptoKit
+  - "11.3"  # [osx and x86_64]
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 9c9fa57..b5053ee 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,17 +1,18 @@
 {% set sdk_version = "8.0.407" %}
 {% set runtime_version = "8.0.14" %}
-{% set sha256 = "02f63fbc16459ee2cf989c42160efb8c62039c3f042133d07245cd7f4466bfbd" %}  # [linux-aarch64]
-{% set sha256 = "99122db4459e0e6a7d55db2c738cfd1422a5357b9da2c050f0250eb33e939c7f" %}  # [linux-64]
-{% set sha256 = "7086d6d6dcdc0ddd7865266cf6b67cad85469c3a2f35fbbfd9ae92aaed4fce3a" %}  # [arm64]
-{% set sha256 = "98c4f7416f2b0503f49801dcb09f9cd1eb083ee50aba1adab2a1a7b0fa469727" %}  # [osx]
+{% set framework = '.'.join(sdk_version.split('.')[:2]) %}
+{% set sha256 = "02f63fbc16459ee2cf989c42160efb8c62039c3f042133d07245cd7f4466bfbd" %}  # [linux and aarch64]
+{% set sha256 = "99122db4459e0e6a7d55db2c738cfd1422a5357b9da2c050f0250eb33e939c7f" %}  # [linux and x86_64]
+{% set sha256 = "7086d6d6dcdc0ddd7865266cf6b67cad85469c3a2f35fbbfd9ae92aaed4fce3a" %}  # [osx and arm64]
+{% set sha256 = "98c4f7416f2b0503f49801dcb09f9cd1eb083ee50aba1adab2a1a7b0fa469727" %}  # [osx and x86_64]
 {% set sha256 = "0f4c782a0a3a7dc92493215a47691f6c112fa90c77d1e37dbd05a7f05fd200b0" %}  # [win]
-{% set platform = "linux-arm64" %}    # [linux-aarch64]
-{% set platform = "linux-x64" %}  # [linux-64]
-{% set platform = "osx-arm64" %}  # [arm64]
-{% set platform = "osx-x64" %}    # [osx]
-{% set platform = "win-x64" %}    # [win]
-{% set ext = "tar.gz" %}      # [not win]
-{% set ext = "zip" %}         # [win]
+{% set platform = "linux-arm64" %}  # [linux and aarch64]
+{% set platform = "linux-x64" %}  # [linux and x86_64]
+{% set platform = "osx-arm64" %}  # [osx and arm64]
+{% set platform = "osx-x64" %}  # [osx and x86_64]
+{% set platform = "win-x64" %}  # [win]
+{% set ext = "tar.gz" %}  # [not win]
+{% set ext = "zip" %}  # [win]
 
 package:
   name: dotnet
@@ -23,7 +24,7 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
 
 outputs:
@@ -31,40 +32,36 @@ outputs:
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
-        - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
-        - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
-        - {{ pin_subpackage('dotnet-sdk', exact=True) }}
+        - dotnet-aspnetcore ={{ runtime_version }}
+        - dotnet-desktop ={{ runtime_version }}  # [win]
+        - dotnet-runtime ={{ runtime_version }}
+        - dotnet-sdk ={{ sdk_version }}
     test:
       commands:
-       - dotnet --version
+        - test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"  # [unix]
+        - test "${DOTNET_TOOLS}" = "${CONDA_PREFIX}/lib/dotnet/tools"  # [unix]
+        - if not defined DOTNET_ROOT exit 1  # [win]
+        - if not defined DOTNET_TOOLS exit 1  # [win]
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      script_env:
+        - DOTNET_RUNTIME_VERSION={{ runtime_version }}
     requirements:
       build:
-        - {{ compiler('cxx') }}
-        - {{ stdlib('c') }}
-        - posix                  # [win]
-      host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - {{ compiler('cxx') }}  # [linux]
+        - {{ stdlib('c') }}  # [linux]
+        - posix  # [win]
       run:
-        - lttng-ust                 # [linux64]
-        - libcurl                   # [unix]
-        - icu                       # [unix]
-        - krb5                      # [unix]
-        - __glibc >=2.17            # [linux64]
+        - icu  # [unix]
+        - openssl  # [aarch64]
+        - zlib  # [aarch64]
     test:
       commands:
         - dotnet --list-runtimes
-        #- test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"         # [unix]
-        #- test "${DOTNET_TOOLS}" = "${CONDA_PREFIX}/lib/dotnet/tools"  # [unix]
-        #- if not defined DOTNET_ROOT exit 1   # [win]
-        #- if not defined DOTNET_TOOLS exit 1  # [win]
     about:
       home: https://github.com/dotnet/runtime
       license: MIT
@@ -79,24 +76,25 @@ outputs:
     script: build-sdk.sh  # [not win]
     requirements:
       build:
-        - {{ compiler('cxx') }}
-        - {{ stdlib('c') }}
-        - posix                  # [win]
-      host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - {{ compiler('cxx') }}  # [linux]
+        - {{ stdlib('c') }}  # [linux]
+        - posix  # [win]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
+        - zlib  # [aarch64]
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
-        - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - test -d $PREFIX/lib/dotnet/packs  # [unix]
+        - test -d $PREFIX/lib/dotnet/sdk  # [unix]
+        - test -d $PREFIX/lib/dotnet/templates  # [unix]
+        - if not exist %PREFIX%\\dotnet\\packs exit 1  # [win]
+        - if not exist %PREFIX%\\dotnet\\sdk exit 1  # [win]
+        - if not exist %PREFIX%\\dotnet\\templates exit 1  # [win]
+        - dotnet --version
+        - mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net{{ framework }}/self-test.dll > self-test.txt  # [unix]
+        - grep "Hello, World!" self-test.txt  # [unix]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net{{ framework }}/self-test.dll" | findstr "Hello, World!"  # [win]
     about:
       home: https://github.com/dotnet/sdk
       license: MIT
@@ -110,24 +108,11 @@ outputs:
     script: build-aspnetcore.bat  # [win]
     script: build-aspnetcore.sh  # [not win]
     requirements:
-      build:
-        - {{ compiler('cxx') }}
-        - {{ stdlib('c') }}
-        - posix                  # [win]
-      host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
       run:
-        - lttng-ust                 # [linux64]
-        - libcurl                   # [unix]
-        - icu                       # [unix]
-        - krb5                      # [unix]
-        - __glibc >=2.17            # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - test -d $PREFIX/lib/dotnet/shared/Microsoft.AspNetCore.App              # [not win]
+        - test -d $PREFIX/lib/dotnet/shared/Microsoft.AspNetCore.App  # [not win]
         - if not exist %PREFIX%\\dotnet\\shared\\Microsoft.AspNetCore.App exit 1  # [win]
     about:
       home: https://github.com/dotnet/aspnetcore


Reviews:
user: login: acesnik
body: These are my comments and questions. I'm not the most informed on these details, but it's a start! Also, if accepted, would it be possible to submit a parallel PR for the main branch and net9.0?
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-07T23:06:59Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:06:55Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:07:59Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:12:06Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:13:52Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:15:46Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:17:22Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:19:33Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:20:53Z
user: login: acesnik
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T21:01:06Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T21:11:49Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T21:14:46Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T21:15:51Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T21:18:03Z
user: login: acesnik
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T21:50:41Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T23:12:13Z
user: login: MementoRC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T23:13:17Z

Review comments:
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
path: recipe/meta.yaml
user: login: acesnik
body: Is this just temporary to show that it passes on macOS?
created_at: 2025-04-07T22:51:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/liblttng-ust.so.0"  # [linux]
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust                 # [linux64]
-        - libcurl                   # [unix]
-        - icu                       # [unix]
-        - krb5                      # [unix]
-        - __glibc >=2.17            # [linux64]
+        - icu  # [unix]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
     test:
       commands:
         - dotnet --list-runtimes
-        #- test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"         # [unix]
-        #- test "${DOTNET_TOOLS}" = "${CONDA_PREFIX}/lib/dotnet/tools"  # [unix]
-        #- if not defined DOTNET_ROOT exit 1   # [win]
-        #- if not defined DOTNET_TOOLS exit 1  # [win]
+        - test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"  # [unix]
path: recipe/meta.yaml
user: login: acesnik
body: It looks like this hits the points in this small draft PR, https://github.com/conda-forge/dotnet-feedstock/pull/92, which is great.
created_at: 2025-04-07T22:52:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/liblttng-ust.so.0"  # [linux]
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
path: recipe/meta.yaml
user: login: acesnik
body: These look fine. Are they missing in a minimal build you're using?
created_at: 2025-04-07T22:53:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
path: recipe/meta.yaml
user: login: acesnik
body: Nice new & more complete tests!
created_at: 2025-04-07T22:53:42Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet clean  # [unix]
+        - cat self-test.csproj  # [unix]
+        - DOTNET_EnableMacOSCodeSign=false dotnet build && dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [unix]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
path: recipe/meta.yaml
user: login: acesnik
body: This integration is cool to see. Are there any version constraints to consider here?
created_at: 2025-04-07T22:55:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
path: recipe/meta.yaml
user: login: acesnik
body: Is ICU not available for `aarch65`? I guess I don't fully understand this line.
created_at: 2025-04-07T23:00:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
path: recipe/meta.yaml
user: login: acesnik
body: This is interesting. So this prevents signing errors on macOS build/testing?
created_at: 2025-04-07T23:01:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
path: recipe/meta.yaml
user: login: acesnik
body: Is there a way to not hard-code `net8.0` here?
created_at: 2025-04-07T23:02:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet clean  # [unix]
+        - cat self-test.csproj  # [unix]
+        - DOTNET_EnableMacOSCodeSign=false dotnet build && dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [unix]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
path: recipe/meta.yaml
user: login: acesnik
body: Is there a way to avoid hard-coding `net8.0` in this test section?
created_at: 2025-04-07T23:03:42Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
path: recipe/meta.yaml
user: login: MementoRC
body: Yes, I do not have an OSX, so I usually use the workflow to debug issues, which uses quite a bit of conda resources to re-run builds that are passing.
created_at: 2025-04-08T14:06:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/liblttng-ust.so.0"  # [linux]
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust                 # [linux64]
-        - libcurl                   # [unix]
-        - icu                       # [unix]
-        - krb5                      # [unix]
-        - __glibc >=2.17            # [linux64]
+        - icu  # [unix]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
     test:
       commands:
         - dotnet --list-runtimes
-        #- test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"         # [unix]
-        #- test "${DOTNET_TOOLS}" = "${CONDA_PREFIX}/lib/dotnet/tools"  # [unix]
-        #- if not defined DOTNET_ROOT exit 1   # [win]
-        #- if not defined DOTNET_TOOLS exit 1  # [win]
+        - test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"  # [unix]
path: recipe/meta.yaml
user: login: MementoRC
body: Right, I thought you would merge that PR and added it pre-emptively
created_at: 2025-04-08T14:07:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/liblttng-ust.so.0"  # [linux]
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
path: recipe/meta.yaml
user: login: MementoRC
body: Well, I added this to reduce the warnings at the end of the build, but I think it should not be handled like this, but try to figure out why they are missing, in particular, why is `ld-linux-x86-64.so.2` missing for an aarch64 build
created_at: 2025-04-08T14:12:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
path: recipe/meta.yaml
user: login: MementoRC
body: Thanks, when building `renode-cli`, dotnet revealed itself to be faulty, but the real bug of not being able to use libicu is still unresolved for the aarch64 build
created_at: 2025-04-08T14:13:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet clean  # [unix]
+        - cat self-test.csproj  # [unix]
+        - DOTNET_EnableMacOSCodeSign=false dotnet build && dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [unix]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
path: recipe/meta.yaml
user: login: MementoRC
body: In the past, this has actually been a problem by creating a deadlock an upgrade, so I was actually thinking to remove it
created_at: 2025-04-08T14:15:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
path: recipe/meta.yaml
user: login: MementoRC
body: Me neither, but dotnet does not seem to be able to find/use the installed icu, I don't know why, but if I don't use this it fails. I am quite ignorant of dotnet, so, I do need your review/suggestions
created_at: 2025-04-08T14:17:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
path: recipe/meta.yaml
user: login: MementoRC
body: Unfortunately it does not make the test pass, there is still a SignCommandNotLast error. The more annoying thing is that it exits with an `exit 0`, which wrongly let the build complete and be `green` :/
created_at: 2025-04-08T14:19:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
path: recipe/meta.yaml
user: login: MementoRC
body: Yes, I was thinking of using the same $(...) as in the script
created_at: 2025-04-08T14:20:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet clean  # [unix]
+        - cat self-test.csproj  # [unix]
+        - DOTNET_EnableMacOSCodeSign=false dotnet build && dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [unix]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
path: recipe/meta.yaml
user: login: acesnik
body: Sounds great to remove it in that case
created_at: 2025-04-10T21:01:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
path: recipe/meta.yaml
user: login: MementoRC
body: I think the signing issue is resolved with 11.3
created_at: 2025-04-10T21:11:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
path: recipe/meta.yaml
user: login: MementoRC
body: This issue is (somehow) resolved - I did notice at some point an linux-x64 in the dotnet-sdk, it could have been that the binaries got mixed up . It is resolved and this env var removed
created_at: 2025-04-10T21:14:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -77,26 +92,39 @@ outputs:
     version: {{ sdk_version }}
     script: build-sdk.bat  # [win]
     script: build-sdk.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
+      ignore_run_exports:
+        - libcurl  # [unix]
+        - libcxx  # [osx]
+        - libzlib  # [osx]
+        - lttng-ust  # [linux]
     requirements:
       build:
         - {{ compiler('cxx') }}
         - {{ stdlib('c') }}
-        - posix                  # [win]
+        - posix  # [win]
       host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - libcurl  # [unix]
+        - lttng-ust  # [linux64]
+        - zlib  # [unix]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
     test:
       commands:
-        - dotnet --version                   # [not aarch64]
+        - dotnet --version  # [not aarch64]
         - test -f $PREFIX/lib/dotnet/dotnet  # [aarch64]
+        - export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1  # [aarch64]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet clean  # [unix]
+        - cat self-test.csproj  # [unix]
+        - DOTNET_EnableMacOSCodeSign=false dotnet build && dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [unix]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
path: recipe/meta.yaml
user: login: MementoRC
body: I removed it ... lol - Well, in some other recipe I worked on, this construct ended up creating a deadlock where neither recipes were able to update
created_at: 2025-04-10T21:15:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +23,63 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
+  skip: true  # [not osx or not x86_64]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
         - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
+        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
         - {{ pin_subpackage('dotnet-sdk', exact=True) }}
     test:
       commands:
-       - dotnet --version
+        - dotnet --version
+        # Same test without setting the environment variable that should be in activation
+        - DOTNET_EnableMacOSCodeSign=true mkdir self-test && cd self-test && dotnet new console && dotnet clean && dotnet build  # [unix]
+        - dotnet exec bin/Debug/net8.0/self-test.dll > self-test.txt  # [linux]
+        - grep "Hello, World!" self-test.txt  # [linux]
+        - mkdir self-test && cd self-test && dotnet new console && dotnet build && dotnet exec "bin/Debug/net8.0/self-test.dll" | findstr "Hello, World!"  # [win]
+      downstreams:
+        - renode-cli
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      missing_dso_whitelist:
+        - "$RPATH/liblttng-ust.so.0"  # [linux]
+        - "$RPATH/ld-linux-x86-64.so.2"  # [linux and aarch64]
path: recipe/meta.yaml
user: login: MementoRC
body: This hack is removed, for some odd reasons the x64 binary seemed to have been downloaded and thus the linkage was wrong
created_at: 2025-04-10T21:18:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +24,44 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
-        - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
-        - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
-        - {{ pin_subpackage('dotnet-sdk', exact=True) }}
+        - dotnet-aspnetcore ={{ runtime_version }}
+        - dotnet-desktop ={{ runtime_version }}  # [win]
+        - dotnet-runtime ={{ runtime_version }}
+        - dotnet-sdk ={{ sdk_version }}
     test:
       commands:
-       - dotnet --version
+        - test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"  # [unix]
+        - test "${DOTNET_TOOLS}" = "${CONDA_PREFIX}/lib/dotnet/tools"  # [unix]
+        - if not defined DOTNET_ROOT exit 1  # [win]
+        - if not defined DOTNET_TOOLS exit 1  # [win]
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      script_env:
+        - DOTNET_RUNTIME_VERSION={{ runtime_version }}
     requirements:
       build:
-        - {{ compiler('cxx') }}
-        - {{ stdlib('c') }}
-        - posix                  # [win]
-      host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - {{ compiler('cxx') }}  # [linux]
+        - {{ stdlib('c') }}  # [linux]
+        - posix  # [win]
       run:
-        - lttng-ust                 # [linux64]
-        - libcurl                   # [unix]
-        - icu                       # [unix]
-        - krb5                      # [unix]
-        - __glibc >=2.17            # [linux64]
+        - icu  # [unix]
+        - openssl  # [aarch64]
+        - zlib  # [aarch64]
path: recipe/meta.yaml
user: login: acesnik
body: Should this be reflected in the .NET 9.0 PR? 
created_at: 2025-04-10T21:48:40Z
author_association: CONTRIBUTOR
diff_hunk: @@ -79,24 +76,25 @@ outputs:
     script: build-sdk.sh  # [not win]
     requirements:
       build:
-        - {{ compiler('cxx') }}
-        - {{ stdlib('c') }}
-        - posix                  # [win]
-      host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - {{ compiler('cxx') }}  # [linux]
+        - {{ stdlib('c') }}  # [linux]
+        - posix  # [win]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
+        - zlib  # [aarch64]
path: recipe/meta.yaml
user: login: acesnik
body: Should this be reflected in the net9.0 one?
created_at: 2025-04-10T21:49:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,48 +24,44 @@ source:
   folder: dotnet
 
 build:
-  number: 1
+  number: 2
   binary_relocation: False  # [osx]
 
 outputs:
   - name: dotnet
     version: {{ sdk_version }}
     requirements:
       run:
-        - {{ pin_subpackage('dotnet-runtime', exact=True) }}
-        - {{ pin_subpackage('dotnet-aspnetcore', exact=True) }}
-        - {{ pin_subpackage('dotnet-desktop', exact=True) }}  # [win]
-        - {{ pin_subpackage('dotnet-sdk', exact=True) }}
+        - dotnet-aspnetcore ={{ runtime_version }}
+        - dotnet-desktop ={{ runtime_version }}  # [win]
+        - dotnet-runtime ={{ runtime_version }}
+        - dotnet-sdk ={{ sdk_version }}
     test:
       commands:
-       - dotnet --version
+        - test "${DOTNET_ROOT}" = "${CONDA_PREFIX}/lib/dotnet"  # [unix]
+        - test "${DOTNET_TOOLS}" = "${CONDA_PREFIX}/lib/dotnet/tools"  # [unix]
+        - if not defined DOTNET_ROOT exit 1  # [win]
+        - if not defined DOTNET_TOOLS exit 1  # [win]
 
   - name: dotnet-runtime
     version: {{ runtime_version }}
     script: build-runtime.bat  # [win]
     script: build-runtime.sh  # [not win]
+    build:
+      script_env:
+        - DOTNET_RUNTIME_VERSION={{ runtime_version }}
     requirements:
       build:
-        - {{ compiler('cxx') }}
-        - {{ stdlib('c') }}
-        - posix                  # [win]
-      host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - {{ compiler('cxx') }}  # [linux]
+        - {{ stdlib('c') }}  # [linux]
+        - posix  # [win]
       run:
-        - lttng-ust                 # [linux64]
-        - libcurl                   # [unix]
-        - icu                       # [unix]
-        - krb5                      # [unix]
-        - __glibc >=2.17            # [linux64]
+        - icu  # [unix]
+        - openssl  # [aarch64]
+        - zlib  # [aarch64]
path: recipe/meta.yaml
user: login: MementoRC
body: It is, here zlib is required, they may have use a static lib for 9, it's not showing up in the missing dso
created_at: 2025-04-10T23:12:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -79,24 +76,25 @@ outputs:
     script: build-sdk.sh  # [not win]
     requirements:
       build:
-        - {{ compiler('cxx') }}
-        - {{ stdlib('c') }}
-        - posix                  # [win]
-      host:
-        - zlib                   # [unix]
-        - libcurl                # [unix]
-        - lttng-ust              # [linux64]
+        - {{ compiler('cxx') }}  # [linux]
+        - {{ stdlib('c') }}  # [linux]
+        - posix  # [win]
       run:
-        - lttng-ust             # [linux64]
-        - libcurl               # [unix]
-        - icu                   # [unix]
-        - krb5                  # [unix]
-        - __glibc >=2.17        # [linux64]
         - dotnet-runtime ={{ runtime_version }}
+        - zlib  # [aarch64]
path: recipe/meta.yaml
user: login: MementoRC
body: It does not seem to be. Maybe at some point we should look into a source build, they seem to build this binaries a bit loosely
created_at: 2025-04-10T23:13:17Z
author_association: CONTRIBUTOR

PR comments:
user: login: conda-forge-admin
created_at: 2025-04-05T22:32:45Z
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 (```recipe/meta.yaml```) and found it was in an excellent condition.

I do have some suggestions for making it better though...


For **recipe/meta.yaml**:

 * ℹ️ The recipe is not parsable by parser `conda-souschef (grayskull)`. This parser is not currently used by conda-forge, but may be in the future. We are collecting information to see which recipes are compatible with grayskull.


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

author_association: CONTRIBUTOR
user: login: conda-forge-admin
created_at: 2025-04-06T02:35:31Z
body: Hi! This is the friendly automated conda-forge-linting service.

I failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your `meta.yaml`, though. To get a traceback to help figure out what's going on, install conda-smithy and run `conda smithy recipe-lint --conda-forge .` from the recipe directory. You can also examine the [workflow logs](https://github.com/conda-forge/conda-forge-webservices/actions/runs/14293562648) for more detail.


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

author_association: CONTRIBUTOR
user: login: conda-forge-admin
created_at: 2025-04-06T15:17:16Z
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 (```recipe/meta.yaml```) and found it was in an excellent condition.

I do have some suggestions for making it better though...


For **recipe/meta.yaml**:

 * ℹ️ The recipe is not parsable by parser `conda-souschef (grayskull)`. This parser is not currently used by conda-forge, but may be in the future. We are collecting information to see which recipes are compatible with grayskull.


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

author_association: CONTRIBUTOR
user: login: acesnik
created_at: 2025-04-07T21:21:04Z
body: I changed the target branch to `v8`, since I'm updating main branch to be .NET 9.0
author_association: CONTRIBUTOR
user: login: MementoRC
created_at: 2025-04-07T21:24:00Z
body: @acesnik Could you consider the changes in this PR? I noticed that on linux-aarch64, the build does not work as it has issue with the libicu (that's when I tried to build renode-cli).
I added a self-test that builds a dummy project and executes it, but I get some odd signing issues on osx-64.
Your feedback would be appreciated, in particular if you do not think these are useful ;P

Note that I completed the renode-cli build on all platforms, so the osx-64 issue seems to be a false issue and may need to simply be bypassed
author_association: CONTRIBUTOR
user: login: acesnik
created_at: 2025-04-07T21:50:55Z
body: Thanks for the PR! This is a little over my head, to be honest, and would take me some time to understand it. 

@dhirschfeld, do you have any thoughts?
author_association: CONTRIBUTOR
user: login: MementoRC
created_at: 2025-04-10T21:18:40Z
body: @acesnik This should be ready for review
author_association: CONTRIBUTOR