diff --git a/.github/workflows/CI_github.yml b/.github/workflows/CI_github.yml index bd050ec4..669dd49a 100644 --- a/.github/workflows/CI_github.yml +++ b/.github/workflows/CI_github.yml @@ -4,75 +4,173 @@ on: push: branches: - master - - feature/yocto-layer-compliance + - whinlatter + - wrynose pull_request: branches: - master - - feature/yocto-layer-compliance + - whinlatter + - wrynose paths-ignore: - "**.md" + +# Self-hosted runner is singular; cancel superseded PR/push runs so a hung +# matrix cell cannot pin the runner until the job timeout elapses. +concurrency: + group: meta-mono-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: build-and-test: runs-on: [self-hosted, linux, X64] - timeout-minutes: 960 + # Keep bounded so a wedged bitbake/container cannot pin the sole + # self-hosted runner for a full day (seen with arm64 do_package). + timeout-minutes: 480 container: image: dynamicdevices/yocto-ci-build:latest options: --privileged --platform linux/amd64 -v /dev/net/tun:/dev/net/tun -v /dev/kvm:/dev/kvm strategy: max-parallel: 1 + fail-fast: false + # x86-64 first so native builds validate recipes before slower qemuarm64 + # cross builds on this X64 runner. matrix: - dotnet_version: [10.0.100, 8.0.406, 6.0.428] - mono_version: [6.12.0.206] - branch: [styhead] - arch: [x86-64, arm, arm64] - exclude: - # styhead GCC build broken for ARM32 - see README "Removal of support for ARM32" and discussions/234 - - branch: styhead - arch: arm + include: + - {dotnet_version: "10.0.100", mono_version: "6.12.0.206", arch: x86-64} + - {dotnet_version: "8.0.406", mono_version: "6.12.0.206", arch: x86-64} + - {dotnet_version: "6.0.428", mono_version: "6.12.0.206", arch: x86-64} + - {dotnet_version: "10.0.100", mono_version: "6.12.0.206", arch: arm64} + - {dotnet_version: "8.0.406", mono_version: "6.12.0.206", arch: arm64} + - {dotnet_version: "6.0.428", mono_version: "6.12.0.206", arch: arm64} env: name: build-and-test MONO_VERSION: ${{ matrix.mono_version }} DOTNET_VERSION: ${{ matrix.dotnet_version }} ARCH: ${{ matrix.arch }} - BRANCH: ${{ matrix.branch }} + WORK_ROOT: work steps: + - name: Free disk space + run: | + echo "=== disk before cleanup ===" + df -h + # Prior CI layouts left per-release trees (styhead/, whinlatter/, …) + # on the persistent self-hosted workspace. A fresh wrynose build of + # clang/llvm/rust needs that space back. Also drop stale deploy/work + # trees from other MACHINE values so arm64/x86-64 matrix cells do not + # starve each other mid-build (hangs with no further bitbake output). + for path in styhead whinlatter scarthgap kirkstone nanbield styhead-test \ + feature \ + "${WORK_ROOT}/build/tmp" \ + "${WORK_ROOT}/build/cache" \ + "${WORK_ROOT}/build/tmp-glibc" \ + "${WORK_ROOT}/build/deploy"; do + if [ -e "$path" ]; then + echo "Removing $path" + rm -rf "$path" + fi + done + # Remove any alternate TMPDIR layouts left by older CI configs. + if [ -d "${WORK_ROOT}/build" ]; then + find "${WORK_ROOT}/build" -maxdepth 1 -type d -name 'tmp-*' -exec rm -rf {} + + fi + echo "=== disk after cleanup ===" + df -h + # Fail early if the runner is already too tight for a sato+mono image. + avail_kb=$(df -Pk . | awk 'NR==2 {print $4}') + if [ "$avail_kb" -lt 20971520 ]; then + echo "Only ${avail_kb}KB free; need at least 20GiB" >&2 + exit 1 + fi - name: Checkout meta-mono - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: clean: false - path: ${{ matrix.branch }}/meta-mono - - name: Update repo poky + path: work/meta-mono + - name: Detect Yocto release run: | - if [ ! -d ${BRANCH}/poky ]; then - git clone git://git.yoctoproject.org/poky -b ${BRANCH} ${BRANCH}/poky - else - cd ${BRANCH}/poky - git pull origin ${BRANCH} - cd ../.. + compat=$(grep '^LAYERSERIES_COMPAT_mono' "${WORK_ROOT}/meta-mono/conf/layer.conf" | sed 's/.*"\([^"]*\)".*/\1/') + if [ -z "$compat" ]; then + echo "Could not read LAYERSERIES_COMPAT_mono from conf/layer.conf" >&2 + exit 1 fi - - name: Update repo meta-openembedded + echo "YOCTO_RELEASE=${compat}" >> "$GITHUB_ENV" + echo "Detected Yocto release: ${compat}" + - name: Setup base layers run: | - if [ ! -d ${BRANCH}/meta-openembedded ]; then - git clone https://github.com/openembedded/meta-openembedded.git -b ${BRANCH} ${BRANCH}/meta-openembedded - else - cd ${BRANCH}/meta-openembedded - git pull origin ${BRANCH} - cd ../.. - fi + clone_or_update() { + local url="$1" branch="$2" dest="$3" + if [ ! -d "$dest" ]; then + git clone "$url" -b "$branch" "$dest" + else + cd "$dest" + git fetch origin "$branch" + git checkout "$branch" + git pull origin "$branch" + cd "$GITHUB_WORKSPACE" + fi + } + + case "$YOCTO_RELEASE" in + whinlatter) + mkdir -p "${WORK_ROOT}/layers" + clone_or_update https://git.openembedded.org/bitbake 2.16 "${WORK_ROOT}/layers/bitbake" + clone_or_update https://git.openembedded.org/openembedded-core whinlatter "${WORK_ROOT}/layers/openembedded-core" + clone_or_update https://git.yoctoproject.org/meta-yocto whinlatter "${WORK_ROOT}/layers/meta-yocto" + clone_or_update https://github.com/openembedded/meta-openembedded.git whinlatter "${WORK_ROOT}/layers/meta-openembedded" + ;; + wrynose) + mkdir -p "${WORK_ROOT}/layers" + clone_or_update https://git.openembedded.org/bitbake 2.18 "${WORK_ROOT}/layers/bitbake" + clone_or_update https://git.openembedded.org/openembedded-core wrynose "${WORK_ROOT}/layers/openembedded-core" + clone_or_update https://git.yoctoproject.org/meta-yocto wrynose "${WORK_ROOT}/layers/meta-yocto" + clone_or_update https://github.com/openembedded/meta-openembedded.git wrynose "${WORK_ROOT}/layers/meta-openembedded" + ;; + *) + # Legacy releases still use the poky monorepo. Use HTTPS: + # git.yoctoproject.org is behind Cloudflare, which does not + # carry the native git:// protocol (port 9418) reliably. + clone_or_update https://git.yoctoproject.org/poky "$YOCTO_RELEASE" "${WORK_ROOT}/poky" + clone_or_update https://github.com/openembedded/meta-openembedded.git "$YOCTO_RELEASE" "${WORK_ROOT}/meta-openembedded" + ;; + esac - name: Configuring run: | - rm -f ${BRANCH}/build/conf/local.conf - rm -f ${BRANCH}/build/conf/bblayers.conf - . ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build + rm -f ${WORK_ROOT}/build/conf/local.conf + rm -f ${WORK_ROOT}/build/conf/bblayers.conf + + case "$YOCTO_RELEASE" in + whinlatter) + # meta-poky still ships conf/templates/default on whinlatter + TEMPLATECONF=$GITHUB_WORKSPACE/${WORK_ROOT}/layers/meta-yocto/meta-poky/conf/templates/default \ + . ./${WORK_ROOT}/layers/openembedded-core/oe-init-build-env ${WORK_ROOT}/build + meta_oe="${WORK_ROOT}/layers/meta-openembedded" + meta_yocto="${WORK_ROOT}/layers/meta-yocto" + ;; + wrynose) + # wrynose meta-poky dropped conf/templates; use oe-core defaults + # and add poky layers + DISTRO explicitly. + . ./${WORK_ROOT}/layers/openembedded-core/oe-init-build-env ${WORK_ROOT}/build + meta_oe="${WORK_ROOT}/layers/meta-openembedded" + meta_yocto="${WORK_ROOT}/layers/meta-yocto" + echo "POKY_BBLAYERS_CONF_VERSION = \"2\"" >> conf/bblayers.conf + echo "BBLAYERS += '$GITHUB_WORKSPACE/${meta_yocto}/meta-poky'" >> conf/bblayers.conf + echo "BBLAYERS += '$GITHUB_WORKSPACE/${meta_yocto}/meta-yocto-bsp'" >> conf/bblayers.conf + echo "DISTRO = \"poky\"" >> conf/local.conf + ;; + *) + . ./${WORK_ROOT}/poky/oe-init-build-env ${WORK_ROOT}/build + meta_oe="${WORK_ROOT}/meta-openembedded" + ;; + esac - # Append custom variables for regenerated local.conf and bblayers.conf samples echo "### Starting to configure local.conf and bblayers.conf ###" + echo "yocto release: $YOCTO_RELEASE" echo "mono version: $MONO_VERSION" echo "dotnet version: $DOTNET_VERSION" - echo "BBLAYERS += '$GITHUB_WORKSPACE/${BRANCH}/meta-mono'" >> conf/bblayers.conf - echo "BBLAYERS += '$GITHUB_WORKSPACE/${BRANCH}/meta-openembedded/meta-oe'" >> conf/bblayers.conf - echo "BBLAYERS += '$GITHUB_WORKSPACE/${BRANCH}/meta-openembedded/meta-python'" >> conf/bblayers.conf + echo "BBLAYERS += '$GITHUB_WORKSPACE/${WORK_ROOT}/meta-mono'" >> conf/bblayers.conf + echo "BBLAYERS += '$GITHUB_WORKSPACE/${meta_oe}/meta-oe'" >> conf/bblayers.conf + echo "BBLAYERS += '$GITHUB_WORKSPACE/${meta_oe}/meta-python'" >> conf/bblayers.conf echo "BB_DEFAULT_EVENTLOG = \"\"" >> conf/local.conf echo "MACHINE = \"qemu${ARCH}\"" >> conf/local.conf @@ -84,43 +182,124 @@ jobs: echo "PREFERRED_VERSION_dotnet = \"${DOTNET_VERSION}\"" >> conf/local.conf echo "PREFERRED_VERSION_dotnet-native = \"${DOTNET_VERSION}\"" >> conf/local.conf - echo "INHERIT += \" create-spdx cve-check rm_work \"" >> conf/local.conf + case "$YOCTO_RELEASE" in + wrynose) + # cve-check was removed in wrynose; use sbom-cve-check fragment. + # root-login fragment matches test-image-mono IMAGE_FEATURES for qemu testimage. + echo "OE_FRAGMENTS += \"core/yocto/sbom-cve-check core/yocto/root-login-with-empty-password\"" >> conf/local.conf + echo "INHERIT += \"rm_work\"" >> conf/local.conf + # HTTP sstate mirror only: the CDN hashserv (wss) needs Python + # websockets, which this container does not provide to bitbake. + # wrynose defaults to OEEquivHash, which requires BB_HASHSERVE; + # use a local server with the DB on the shared SSTATE_DIR so + # persistent-runner reuse works across matrix cells. + echo "SSTATE_MIRRORS ?= \"file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH\"" >> conf/local.conf + echo "BB_HASHSERVE = \"auto\"" >> conf/local.conf + echo "BB_HASHSERVE_DB_DIR = \"\${SSTATE_DIR}\"" >> conf/local.conf + # IMAGE_VERSION_SUFFIX excludes DATETIME from task hashes, but + # do_create_image_sbom_spdx deploys ${IMAGE_NAME}.spdx.json (which + # includes DATETIME). Setscene can restore a previous filename while + # do_sbom_cve_check looks for the current one. Force that one task to + # re-run each CI build without invalidating the rest of image sstate. + echo "META_MONO_CI_BUILD_ID = \"${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}\"" >> conf/local.conf + echo "do_create_image_sbom_spdx[vardeps] += \"META_MONO_CI_BUILD_ID\"" >> conf/local.conf + ;; + *) + echo "INHERIT += \" create-spdx cve-check rm_work \"" >> conf/local.conf + ;; + esac sed -i 's/#IMAGE_CLASSES += "testimage testsdk"/IMAGE_CLASSES += "testimage "/' conf/local.conf echo "SPDX_PRETTY = \"1\"" >> conf/local.conf - echo "BB_NUMBER_THREADS ?= \"\${@oe.utils.cpu_count()}\"" >> conf/local.conf - echo "PARALLEL_MAKE ?= \"-j \${@oe.utils.cpu_count()} -l \${@oe.utils.cpu_count()*2}\"" >> conf/local.conf - # Flush stale sstate/sysroot to ensure fresh builds with corrected - # host/fxr layout and dotnet wrapper. - # TODO: remove this step once all matrix jobs have rebuilt successfully. - - name: Clean stale sstate - run: | - . ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build - bitbake -c cleansstate dotnet dotnet-native python3-clr-loader python3-clr-loader-native dotnet-helloworld python3-pythonnet + # Cross-building qemuarm64 on the X64 runner has wedged under full + # parallelism (silent multi-hour stall in do_package). Cap threads. + if [ "$ARCH" = "arm64" ]; then + echo "BB_NUMBER_THREADS ?= \"\${@oe.utils.cpu_count(at_least=1, at_most=4)}\"" >> conf/local.conf + echo "PARALLEL_MAKE ?= \"-j \${@oe.utils.cpu_count(at_least=1, at_most=4)}\"" >> conf/local.conf + else + echo "BB_NUMBER_THREADS ?= \"\${@oe.utils.cpu_count()}\"" >> conf/local.conf + echo "PARALLEL_MAKE ?= \"-j \${@oe.utils.cpu_count()} -l \${@oe.utils.cpu_count()*2}\"" >> conf/local.conf + fi - name: Building Mono Test Image run: | - . ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build - bitbake test-image-mono + case "$YOCTO_RELEASE" in + whinlatter|wrynose) + . ./${WORK_ROOT}/layers/openembedded-core/oe-init-build-env ${WORK_ROOT}/build + ;; + *) + . ./${WORK_ROOT}/poky/oe-init-build-env ${WORK_ROOT}/build + ;; + esac + # Disk heartbeat in the background; wait on bitbake so failures + # surface immediately (a foreground sleep loop delayed exit by 5m). + bitbake test-image-mono & + bbpid=$! + ( + while kill -0 "$bbpid" 2>/dev/null; do + sleep 300 + echo "=== build heartbeat $(date -u +%H:%M:%S) ===" + df -h . || true + done + ) & + hb=$! + set +e + wait "$bbpid" + rc=$? + set -e + kill "$hb" 2>/dev/null || true + wait "$hb" 2>/dev/null || true + exit "$rc" - name: CVE Check Mono / dotNet run: | - . ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build + case "$YOCTO_RELEASE" in + whinlatter|wrynose) + . ./${WORK_ROOT}/layers/openembedded-core/oe-init-build-env ${WORK_ROOT}/build + ;; + *) + . ./${WORK_ROOT}/poky/oe-init-build-env ${WORK_ROOT}/build + ;; + esac export TERM=linux - bitbake mono -c cve_check - mv $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary.json $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary-mono.json - bitbake dotnet -c cve_check - mv $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary.json $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary-dotnet.json + cve_dir="$GITHUB_WORKSPACE/${WORK_ROOT}/build/tmp/log/cve" + mkdir -p "$cve_dir" + case "$YOCTO_RELEASE" in + wrynose) + # Image-level sbom-cve-check runs during bitbake test-image-mono. + deploy="$GITHUB_WORKSPACE/${WORK_ROOT}/build/tmp/deploy/images/qemu${ARCH}" + found=$(ls "$deploy"/*.sbom-cve-check*.json 2>/dev/null | wc -l) + if [ "$found" -eq 0 ]; then + echo "No sbom-cve-check reports in $deploy" >&2 + exit 1 + fi + cp "$deploy"/*.sbom-cve-check*.json "$cve_dir/" + ls -la "$cve_dir" + ;; + *) + bitbake mono -c cve_check + mv "$cve_dir/cve-summary.json" "$cve_dir/cve-summary-mono.json" + bitbake dotnet -c cve_check + mv "$cve_dir/cve-summary.json" "$cve_dir/cve-summary-dotnet.json" + ;; + esac - name: Testing run: | - . ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build + case "$YOCTO_RELEASE" in + whinlatter|wrynose) + . ./${WORK_ROOT}/layers/openembedded-core/oe-init-build-env ${WORK_ROOT}/build + ;; + *) + . ./${WORK_ROOT}/poky/oe-init-build-env ${WORK_ROOT}/build + ;; + esac export TERM=linux bitbake test-image-mono -c testimage - name: Store artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: - name: test-image-mono-${{ matrix.branch }}-${{ matrix.mono_version }}-${{ matrix.dotnet_version }}-${{ github.sha }}-${{ matrix.arch }} - path: ./${{ matrix.branch }}/build/tmp/deploy/images/qemu${{ matrix.arch }}/ + name: test-image-mono-${{ env.YOCTO_RELEASE }}-${{ matrix.mono_version }}-${{ matrix.dotnet_version }}-${{ github.sha }}-${{ matrix.arch }} + path: ./${{ env.WORK_ROOT }}/build/tmp/deploy/images/qemu${{ matrix.arch }}/ - name: Store CVEs - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: - name: cve-summary-${{ matrix.branch }}-${{ matrix.mono_version }}-${{ matrix.dotnet_version }}-${{ github.sha }}-${{ matrix.arch }} - path: ./${{ matrix.branch }}/build/tmp/log/cve/*.json + name: cve-summary-${{ env.YOCTO_RELEASE }}-${{ matrix.mono_version }}-${{ matrix.dotnet_version }}-${{ github.sha }}-${{ matrix.arch }} + path: ./${{ env.WORK_ROOT }}/build/tmp/log/cve/*.json diff --git a/README.md b/README.md index 2d192ee1..ffd4efed 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,11 @@ meta-mono is an OpenEmbedded layer that builds dotNet, the mono runtime and mono | Branch | Version | Support Status* | Status of Build & Tests | | ------ | ------- | --------------- | ----------------------- | -| walnascar | 5.2 | Future (April 2025) | [![walnascar](https://img.shields.io/github/actions/workflow/status/dynamicdevices/meta-mono/CI_github.yml?branch=walnascar&label=build%20%26%20test)](https://github.com/DynamicDevices/meta-mono/actions/workflows/CI_github.yml) | -| styhead | 5.1 | Support for 7 months (May 2025) | [![styhead](https://img.shields.io/github/actions/workflow/status/dynamicdevices/meta-mono/CI_github.yml?branch=styhead&label=build%20%26%20test)](https://github.com/DynamicDevices/meta-mono/actions/workflows/CI_github.yml) | -| scarthgap | 5.0 | Long Term Support (until Apr. 2028) | [![scarthgap](https://img.shields.io/github/actions/workflow/status/dynamicdevices/meta-mono/CI_github.yml?branch=scarthgap&label=build%20%26%20test)](https://github.com/DynamicDevices/meta-mono/actions/workflows/CI_github.yml) | -| kirkstone | 4.0 | Long Term Support (minimum Apr. 2024) | [![kirkstone](https://img.shields.io/github/actions/workflow/status/dynamicdevices/meta-mono/CI_github.yml?branch=kirkstone&label=build%20%26%20test)](https://github.com/DynamicDevices/meta-mono/actions/workflows/CI_github.yml) | +| whinlatter | 5.3 | Support for 6 months (until May 2026) | [![whinlatter](https://img.shields.io/github/actions/workflow/status/dynamicdevices/meta-mono/CI_github.yml?branch=whinlatter&label=build%20%26%20test)](https://github.com/DynamicDevices/meta-mono/actions/workflows/CI_github.yml) | +| scarthgap | 5.0 | Long Term Support (until Apr. 2028) | [![scarthgap](https://img.shields.io/github/actions/workflow/status/dynamicdevices/meta-mono/CI_github.yml?branch=scarthgap&label=build%20%26%20test)](https://github.com/DynamicDevices/meta-mono/actions/workflows/CI_github.yml) | +| kirkstone | 4.0 | Long Term Support (until Apr. 2026) | [![kirkstone](https://img.shields.io/github/actions/workflow/status/dynamicdevices/meta-mono/CI_github.yml?branch=kirkstone&label=build%20%26%20test)](https://github.com/DynamicDevices/meta-mono/actions/workflows/CI_github.yml) | -*support status as of 21/03/25, follows main Yocto release support schedule [here](https://wiki.yoctoproject.org/wiki/Releases) +*support status as of Feb 2026, follows main Yocto release support schedule [here](https://wiki.yoctoproject.org/wiki/Releases) ## Limitations diff --git a/classes/mono.bbclass b/classes/mono.bbclass index aa40cf4c..3629a4ff 100644 --- a/classes/mono.bbclass +++ b/classes/mono.bbclass @@ -31,12 +31,12 @@ FILES:${PN}-doc:append = " \ ${libdir}/monodoc/* \ " -export MONO_CFG_DIR="${STAGING_ETCDIR_NATIVE}" +export MONO_CFG_DIR = "${STAGING_ETCDIR_NATIVE}" # NuGet uses $HOME/.nuget/packages to store packages by default # but we should not use anything outside the build root of packages. -export NUGET_PACKAGES="${UNPACKDIR}/mono-nuget-packages" -export NUGET_HTTP_CACHE_PATH="${UNPACKDIR}/mono-nuget-http-cache" +export NUGET_PACKAGES = "${UNPACKDIR}/mono-nuget-packages" +export NUGET_HTTP_CACHE_PATH = "${UNPACKDIR}/mono-nuget-http-cache" do_configure:prepend() { mkdir -p ${NUGET_PACKAGES} ${NUGET_HTTP_CACHE_PATH} diff --git a/conf/layer.conf b/conf/layer.conf index 61f503d0..24794f17 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -30,4 +30,4 @@ INSANE_SKIP:msbuild-dev += "buildpaths" INSANE_SKIP:python3-clr-loader += "buildpaths" INSANE_SKIP:python3-pythonnet += "buildpaths" -LAYERSERIES_COMPAT_mono = "styhead" +LAYERSERIES_COMPAT_mono = "wrynose" diff --git a/recipes-mono/dbus-sharp-glib/dbus-sharp-glib.inc b/recipes-mono/dbus-sharp-glib/dbus-sharp-glib.inc index 8f1ef596..f507fdfe 100644 --- a/recipes-mono/dbus-sharp-glib/dbus-sharp-glib.inc +++ b/recipes-mono/dbus-sharp-glib/dbus-sharp-glib.inc @@ -25,3 +25,5 @@ do_configure:prepend() { export DBUS_SHARP_LIBS="/r:${STAGING_LIBDIR}/mono/dbus-sharp-2.0/dbus-sharp.dll" } +# suppress: SRC_URI uses unstable GitHub/GitLab archives +INSANE_SKIP += "src-uri-bad" diff --git a/recipes-mono/dbus-sharp/dbus-sharp.inc b/recipes-mono/dbus-sharp/dbus-sharp.inc index 603f2618..2fba32cc 100644 --- a/recipes-mono/dbus-sharp/dbus-sharp.inc +++ b/recipes-mono/dbus-sharp/dbus-sharp.inc @@ -9,3 +9,6 @@ inherit pkgconfig inherit mono SRC_URI = "https://github.com/mono/dbus-sharp/archive/v${PV}.tar.gz" + +# suppress: SRC_URI uses unstable GitHub/GitLab archives +INSANE_SKIP += "src-uri-bad" diff --git a/recipes-mono/dotnet-helloworld/dotnet-helloworld_1.0.bb b/recipes-mono/dotnet-helloworld/dotnet-helloworld_1.0.bb index 8c22dc41..7d16e4a8 100644 --- a/recipes-mono/dotnet-helloworld/dotnet-helloworld_1.0.bb +++ b/recipes-mono/dotnet-helloworld/dotnet-helloworld_1.0.bb @@ -19,13 +19,13 @@ COMPATIBLE_HOST ?= "(x86_64|aarch64|arm).*-linux" # NuGet MigrationRunner in .NET 6 hardcodes $HOME for migrations dir. # Override HOME so it's always writable (CI containers often have read-only HOME). -export HOME="${WORKDIR}/dotnet-home" -export DOTNET_CLI_HOME="${WORKDIR}/dotnet-home" -export DOTNET_SKIP_FIRST_TIME_EXPERIENCE="true" -export DOTNET_CLI_TELEMETRY_OPTOUT="1" -export DOTNET_NOLOGO="1" -export NUGET_PACKAGES="${UNPACKDIR}/nuget-packages" -export NUGET_HTTP_CACHE_PATH="${UNPACKDIR}/nuget-http-cache" +export HOME = "${WORKDIR}/dotnet-home" +export DOTNET_CLI_HOME = "${WORKDIR}/dotnet-home" +export DOTNET_SKIP_FIRST_TIME_EXPERIENCE = "true" +export DOTNET_CLI_TELEMETRY_OPTOUT = "1" +export DOTNET_NOLOGO = "1" +export NUGET_PACKAGES = "${UNPACKDIR}/nuget-packages" +export NUGET_HTTP_CACHE_PATH = "${UNPACKDIR}/nuget-http-cache" SRC_ARCH:aarch64 = "arm64" SRC_ARCH:arm = "arm" diff --git a/recipes-mono/fsharp/fsharp.inc b/recipes-mono/fsharp/fsharp.inc index 35e555a5..0b630dc3 100644 --- a/recipes-mono/fsharp/fsharp.inc +++ b/recipes-mono/fsharp/fsharp.inc @@ -17,3 +17,6 @@ FILES:${PN} += "\ ${libdir}/mono/gac/*/*/*.optdata \ ${libdir}/mono/gac/*/*/*.sigdata \ " + +# suppress: SRC_URI uses unstable GitHub/GitLab archives +INSANE_SKIP += "src-uri-bad" diff --git a/recipes-mono/fsharp/fsharp_3.1.2.4.bb b/recipes-mono/fsharp/fsharp_3.1.2.4.bb index e0dfe0ea..f48ad13a 100644 --- a/recipes-mono/fsharp/fsharp_3.1.2.4.bb +++ b/recipes-mono/fsharp/fsharp_3.1.2.4.bb @@ -2,4 +2,4 @@ require fsharp.inc inherit pkgconfig -SRC_URI[sha256sum] = "cf3b5ea00fd13b9d35f5a4ffec6fbd8cecc2c4039d09a79fb0e3f7fa48da9429" +SRC_URI[sha256sum] = "d846a4e0c8fb0186cc89445a4c1108f4ae683bd14da834a05634e316b233d61b" diff --git a/recipes-mono/gtk-sharp/gtk-sharp-native_2.12.45.bb b/recipes-mono/gtk-sharp/gtk-sharp-native_2.12.45.bb index 4a90d787..5fef1507 100644 --- a/recipes-mono/gtk-sharp/gtk-sharp-native_2.12.45.bb +++ b/recipes-mono/gtk-sharp/gtk-sharp-native_2.12.45.bb @@ -2,7 +2,7 @@ require gtk-sharp.inc inherit pkgconfig native -DEPENDS += " gtk+-native atk-native pango-native cairo-native glib-2.0-native libglade-native " +DEPENDS += " gtk+-native atk-native pango-native cairo-native glib-2.0-native " LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" diff --git a/recipes-mono/gtk-sharp/gtk-sharp3_2.99.3.bb b/recipes-mono/gtk-sharp/gtk-sharp3_2.99.3.bb index 892c08d1..f2083b60 100644 --- a/recipes-mono/gtk-sharp/gtk-sharp3_2.99.3.bb +++ b/recipes-mono/gtk-sharp/gtk-sharp3_2.99.3.bb @@ -2,7 +2,7 @@ require gtk-sharp.inc inherit pkgconfig -DEPENDS += " gtk+3 atk pango cairo glib-2.0 libglade mono" +DEPENDS += " gtk+3 atk pango cairo glib-2.0 mono" RDEPENDS:${PN} += " perl gtk+3" LIC_FILES_CHKSUM = "file://COPYING;md5=8754deb904d22254188cb67189b87f19" diff --git a/recipes-mono/gtk-sharp/gtk-sharp3_2.99.4.bb b/recipes-mono/gtk-sharp/gtk-sharp3_2.99.4.bb index 11542a1a..49cb5ec4 100644 --- a/recipes-mono/gtk-sharp/gtk-sharp3_2.99.4.bb +++ b/recipes-mono/gtk-sharp/gtk-sharp3_2.99.4.bb @@ -2,16 +2,17 @@ require gtk-sharp.inc inherit pkgconfig -DEPENDS += " gtk+3 atk pango cairo glib-2.0 libglade mono" +DEPENDS += " gtk+3 atk pango cairo glib-2.0 mono" RDEPENDS:${PN} += " perl gtk+3" LIC_FILES_CHKSUM = "file://COPYING;md5=8754deb904d22254188cb67189b87f19" SRCREV = "9a72bb67fff7e4845b7bb430a608282668c3e4da" -SRC_URI = "git://github.com/mono/gtk-sharp.git;protocol=https;branch=master \ +SRC_URI = "git://github.com/mono/gtk-sharp.git;protocol=https;branch=main \ file://0001-fixup-gmcs-to-mcs.patch" -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" +TARGET_CFLAGS:append = " -Wno-error=implicit-function-declaration" do_configure:prepend() { export PROFILER_CFLAGS="-D_REENTRANT -I${STAGING_DIR_TARGET}/usr/include/glib-2.0 -I${STAGING_DIR_TARGET}/usr/lib/glib-2.0 -I${STAGING_DIR_TARGET}/usr/lib/glib-2.0/include -I${STAGING_DIR_TARGET}/usr/include/mono-2.0" diff --git a/recipes-mono/images/test-image-mono.bb b/recipes-mono/images/test-image-mono.bb index aea1fee3..45625f81 100644 --- a/recipes-mono/images/test-image-mono.bb +++ b/recipes-mono/images/test-image-mono.bb @@ -10,5 +10,8 @@ IMAGE_INSTALL += "msbuild \ dotnet-helloworld \ " +# Required for qemu testimage (serial/ssh root login) on wrynose+. +IMAGE_FEATURES += "allow-empty-password empty-root-password allow-root-login" + IMAGE_BASENAME = "${PN}" diff --git a/recipes-mono/libgdiplus/libgdiplus-common.inc b/recipes-mono/libgdiplus/libgdiplus-common.inc index 33db327d..db93cf7f 100644 --- a/recipes-mono/libgdiplus/libgdiplus-common.inc +++ b/recipes-mono/libgdiplus/libgdiplus-common.inc @@ -11,7 +11,7 @@ SRC_URI = " \ gitsm://github.com/mono/libgdiplus.git;protocol=https;branch=${BRANCH} \ " -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" inherit autotools pkgconfig diff --git a/recipes-mono/mono-addins/mono-addins-1.1/0001-configure-mcs.patch b/recipes-mono/mono-addins/mono-addins-1.1/0001-configure-mcs.patch index 3c74b6d7..e3c43459 100644 --- a/recipes-mono/mono-addins/mono-addins-1.1/0001-configure-mcs.patch +++ b/recipes-mono/mono-addins/mono-addins-1.1/0001-configure-mcs.patch @@ -1,3 +1,5 @@ +Upstream-Status: Inappropriate [Yocto specific] + diff -ur git.org/configure.ac git/configure.ac --- git.org/configure.ac 2015-07-20 11:50:50.151627671 +0100 +++ git/configure.ac 2015-07-20 11:51:28.275628204 +0100 diff --git a/recipes-mono/mono-addins/mono-addins-xbuild.inc b/recipes-mono/mono-addins/mono-addins-xbuild.inc index 21bda784..4d376dc0 100644 --- a/recipes-mono/mono-addins/mono-addins-xbuild.inc +++ b/recipes-mono/mono-addins/mono-addins-xbuild.inc @@ -9,11 +9,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4e024d772d8266e3ff9747185842ca82" DEPENDS = "mono" SRCREV = "64a45d96f39d4714ec85adf0fe04b68ec7273ae1" -SRCBRANCH = "master" +SRCBRANCH = "main" SRC_URI = "git://github.com/mono/mono-addins.git;protocol=https;branch=${SRCBRANCH}" -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" do_configure() { } diff --git a/recipes-mono/mono-addins/mono-addins.inc b/recipes-mono/mono-addins/mono-addins.inc index a1ad8404..59def24b 100644 --- a/recipes-mono/mono-addins/mono-addins.inc +++ b/recipes-mono/mono-addins/mono-addins.inc @@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4e024d772d8266e3ff9747185842ca82" DEPENDS = "gtk-sharp" SRCREV = "64a45d96f39d4714ec85adf0fe04b68ec7273ae1" -SRCBRANCH = "master" +SRCBRANCH = "main" SRC_URI = "git://github.com/mono/mono-addins.git;protocol=https;branch=${SRCBRANCH} \ file://0001-configure-mcs.patch" -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" inherit autotools-brokensep pkgconfig inherit mono diff --git a/recipes-mono/mono-addins/mono-addins_1.1.bb b/recipes-mono/mono-addins/mono-addins_1.1.bb index 85f9d24c..b16f7852 100644 --- a/recipes-mono/mono-addins/mono-addins_1.1.bb +++ b/recipes-mono/mono-addins/mono-addins_1.1.bb @@ -1,5 +1,5 @@ require mono-addins.inc SRCREV = "64a45d96f39d4714ec85adf0fe04b68ec7273ae1" -SRCBRANCH = "master" +SRCBRANCH = "main" diff --git a/recipes-mono/mono-basic/mono-basic-4.xx.inc b/recipes-mono/mono-basic/mono-basic-4.xx.inc index 36c45e2d..b445635c 100644 --- a/recipes-mono/mono-basic/mono-basic-4.xx.inc +++ b/recipes-mono/mono-basic/mono-basic-4.xx.inc @@ -19,3 +19,6 @@ do_install:append() { install -d "${D}${libdir}/mono/4.5" ln -sf ${libdir}/mono/4.0/Microsoft.VisualBasic.dll ${D}${libdir}/mono/4.5/Microsoft.VisualBasic.dll } + +# suppress: SRC_URI uses unstable GitHub/GitLab archives +INSANE_SKIP += "src-uri-bad" diff --git a/recipes-mono/mono-helloworld/mono-helloworld_git.bb.disabled b/recipes-mono/mono-helloworld/mono-helloworld_git.bb.disabled index 0dbab57d..782f3110 100644 --- a/recipes-mono/mono-helloworld/mono-helloworld_git.bb.disabled +++ b/recipes-mono/mono-helloworld/mono-helloworld_git.bb.disabled @@ -2,4 +2,4 @@ require mono-helloworld.inc SRCREV = "${AUTOREV}" SRC_URI = "git://github.com/DynamicDevices/mono-helloworld.git" -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" diff --git a/recipes-mono/mono-upnp/mono-upnp-0.1.2/0001-fixup-build.patch b/recipes-mono/mono-upnp/mono-upnp-0.1.2/0001-fixup-build.patch index 8256699e..f0fd5385 100644 --- a/recipes-mono/mono-upnp/mono-upnp-0.1.2/0001-fixup-build.patch +++ b/recipes-mono/mono-upnp/mono-upnp-0.1.2/0001-fixup-build.patch @@ -1,3 +1,5 @@ +Upstream-Status: Inappropriate [Yocto specific] + diff -ur git.org/Makefile.am git/Makefile.am --- git.org/Makefile.am 2014-05-17 17:18:41.627941046 +0100 +++ git/Makefile.am 2014-05-17 17:23:49.583941850 +0100 diff --git a/recipes-mono/mono-upnp/mono-upnp-0.1.2/0002-configure-use-mcs.patch b/recipes-mono/mono-upnp/mono-upnp-0.1.2/0002-configure-use-mcs.patch index d290312c..4a75f8bb 100644 --- a/recipes-mono/mono-upnp/mono-upnp-0.1.2/0002-configure-use-mcs.patch +++ b/recipes-mono/mono-upnp/mono-upnp-0.1.2/0002-configure-use-mcs.patch @@ -2,7 +2,7 @@ mono-upnp: use mcs instead of gmcs as gmcs not present in recent mono releases -Upstream-status: Submitted [https://github.com/mono/mono-upnp/pull/7] +Upstream-Status: Submitted [https://github.com/mono/mono-upnp/pull/7] diff -ur git.org/configure.ac git/configure.ac --- git.org/configure.ac 2015-07-20 16:03:01.899839044 +0100 diff --git a/recipes-mono/mono-upnp/mono-upnp.inc b/recipes-mono/mono-upnp/mono-upnp.inc index 1cd3b7e3..2b0fae7e 100644 --- a/recipes-mono/mono-upnp/mono-upnp.inc +++ b/recipes-mono/mono-upnp/mono-upnp.inc @@ -16,7 +16,7 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-${PV}:" SRC_URI = "git://github.com/mono/mono-upnp.git;protocol=https;branch=${SRCBRANCH} \ " -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" inherit autotools-brokensep pkgconfig diff --git a/recipes-mono/mono-xsp/mono-xsp_git.bb b/recipes-mono/mono-xsp/mono-xsp_git.bb index 7def468b..d71095ea 100644 --- a/recipes-mono/mono-xsp/mono-xsp_git.bb +++ b/recipes-mono/mono-xsp/mono-xsp_git.bb @@ -1,7 +1,7 @@ require mono-xsp-3.x.inc -SRCREV= "e272a2c006211b6b03be2ef5bbb9e3f8fefd0768" +SRCREV = "e272a2c006211b6b03be2ef5bbb9e3f8fefd0768" SRC_URI = "git://github.com/mono/xsp.git;branch=main;protocol=https \ " -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" diff --git a/recipes-mono/mono/mono-4.xx.inc b/recipes-mono/mono/mono-4.xx.inc index fef220c8..c7a6c5ab 100644 --- a/recipes-mono/mono/mono-4.xx.inc +++ b/recipes-mono/mono/mono-4.xx.inc @@ -94,4 +94,4 @@ FILES:${PN}-staticdev += " ${libdir}/*.a" RDEPENDS:${PN}-dev =+ "bash" # Workaround for observed race in `make install` -PARALLEL_MAKEINST="" +PARALLEL_MAKEINST = "" diff --git a/recipes-mono/mono/mono-5.xx.inc b/recipes-mono/mono/mono-5.xx.inc index 46c69e85..b7054c00 100644 --- a/recipes-mono/mono/mono-5.xx.inc +++ b/recipes-mono/mono/mono-5.xx.inc @@ -106,7 +106,7 @@ RDEPENDS:${PN}-dev =+ "bash" RDEPENDS:${PN}-libs =+ "zlib" # Workaround for observed race in `make install` -PARALLEL_MAKEINST="" +PARALLEL_MAKEINST = "" # Otherwise the full path to bash is written to the first line of doltlibtool script # which causes build failures with deeply nested build directories diff --git a/recipes-mono/mono/mono-6.12.0.206.inc b/recipes-mono/mono/mono-6.12.0.206.inc index b4441719..923fc02e 100644 --- a/recipes-mono/mono/mono-6.12.0.206.inc +++ b/recipes-mono/mono/mono-6.12.0.206.inc @@ -1,3 +1,3 @@ -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" DEPENDS += " cmake-native" diff --git a/recipes-mono/mono/mono-6.12.0.206/0001-Btls-too-old-cmake-version.patch b/recipes-mono/mono/mono-6.12.0.206/0001-Btls-too-old-cmake-version.patch new file mode 100644 index 00000000..0ea0c663 --- /dev/null +++ b/recipes-mono/mono/mono-6.12.0.206/0001-Btls-too-old-cmake-version.patch @@ -0,0 +1,30 @@ +From ba1b408ff40e3770785a7774f2bf88758a33a49d Mon Sep 17 00:00:00 2001 +From: Marian Cingel +Date: Mon, 18 May 2026 20:12:28 +0000 +Subject: [PATCH] Btls - too old cmake version + +Upstream-Status: Pending +--- + mono/btls/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mono/btls/CMakeLists.txt b/mono/btls/CMakeLists.txt +index 992f41e4c7f..012b6d12669 100644 +--- a/mono/btls/CMakeLists.txt ++++ b/mono/btls/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required (VERSION 2.8.10) ++cmake_minimum_required (VERSION 4.0) + + project (mono-btls) + +@@ -129,4 +129,4 @@ endif () + + if (CYGWIN) + target_link_libraries (mono-btls-shared wsock32 ws2_32) +-endif () +\ No newline at end of file ++endif () +-- +2.53.0 + diff --git a/recipes-mono/mono/mono-6.12.0.206/boringssl-cmake-version.diff b/recipes-mono/mono/mono-6.12.0.206/boringssl-cmake-version.diff new file mode 100644 index 00000000..d7871a3b --- /dev/null +++ b/recipes-mono/mono/mono-6.12.0.206/boringssl-cmake-version.diff @@ -0,0 +1,10 @@ +Upstream-Status: Inappropriate [Yocto specific] + +--- mono-6.12.0.206/external/boringssl/CMakeLists.txt.orig 2026-05-18 22:51:14.239405666 +0000 ++++ mono-6.12.0.206/external/boringssl/CMakeLists.txt 2026-05-18 22:51:21.634960290 +0000 +@@ -1,4 +1,4 @@ +-cmake_minimum_required (VERSION 2.8.10) ++cmake_minimum_required (VERSION 4.0) + + # Defer enabling C and CXX languages. + project (BoringSSL NONE) diff --git a/recipes-mono/mono/mono-6.xx.inc b/recipes-mono/mono/mono-6.xx.inc index 71b5bfc5..09c5804c 100644 --- a/recipes-mono/mono/mono-6.xx.inc +++ b/recipes-mono/mono/mono-6.xx.inc @@ -127,7 +127,7 @@ INSANE_SKIP:${PN}-xbuild = "file-rdeps" INSANE_SKIP:${PN}-configuration-crypto = "file-rdeps" # Workaround for observed race in `make install` -PARALLEL_MAKEINST="" +PARALLEL_MAKEINST = "" # Otherwise the full path to bash is written to the first line of doltlibtool script # which causes build failures with deeply nested build directories diff --git a/recipes-mono/mono/mono-git.inc b/recipes-mono/mono/mono-git.inc index 5bc1aa31..cc5d24cf 100644 --- a/recipes-mono/mono/mono-git.inc +++ b/recipes-mono/mono/mono-git.inc @@ -7,7 +7,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=80862f3fd0e11a5fa0318070c54461ce" -SRCBRANCH = "master" +SRCBRANCH = "main" SRCREV = "${AUTOREV}" SRC_URI = "git://github.com/mono/mono.git;branch=${SRCBRANCH}\ @@ -23,7 +23,7 @@ SRC_URI = "git://github.com/mono/mono.git;branch=${SRCBRANCH}\ # file://0001-reintroduce-gmcs.patch \ # -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" FILESPATH =. "${FILE_DIRNAME}/mono-4.xx:" FILESPATH =. "${FILE_DIRNAME}/mono-${PV}:" @@ -83,4 +83,4 @@ FILES:${PN}-profiler += " ${datadir}/mono-2.0/mono/profiler/*" RDEPENDS:${PN} =+ "bash" # Workaround for observed race in `make install` -PARALLEL_MAKEINST="" +PARALLEL_MAKEINST = "" diff --git a/recipes-mono/mono/mono-native_6.12.0.206.bb b/recipes-mono/mono/mono-native_6.12.0.206.bb index d9e65b0c..50182939 100644 --- a/recipes-mono/mono/mono-native_6.12.0.206.bb +++ b/recipes-mono/mono/mono-native_6.12.0.206.bb @@ -12,6 +12,8 @@ SRC_URI = "gitsm://github.com/mono/mono.git;protocol=https;branch=2020-02 \ file://shm_open-test-crosscompile.diff \ file://disable-mmap-MAP_32BIT-support.patch \ file://0001-Allow-passing-external-mapfile-C-build-options.patch \ + file://0001-Btls-too-old-cmake-version.patch \ + file://boringssl-cmake-version.diff \ " addtask fixup_config after do_patch before do_configure diff --git a/recipes-mono/mono/mono_6.12.0.206.bb b/recipes-mono/mono/mono_6.12.0.206.bb index 2bf2963e..99c9620f 100644 --- a/recipes-mono/mono/mono_6.12.0.206.bb +++ b/recipes-mono/mono/mono_6.12.0.206.bb @@ -12,6 +12,8 @@ SRC_URI = "gitsm://github.com/mono/mono.git;protocol=https;branch=2020-02 \ file://disable-mmap-MAP_32BIT-support.patch \ file://0001-Allow-passing-external-mapfile-C-build-options.patch \ file://0001-Add-libusb-1.0-mapping.patch \ + file://0001-Btls-too-old-cmake-version.patch \ + file://boringssl-cmake-version.diff \ " diff --git a/recipes-mono/msbuild/msbuild_16.10.1.bb b/recipes-mono/msbuild/msbuild_16.10.1.bb index 322cfc10..dff45efc 100644 --- a/recipes-mono/msbuild/msbuild_16.10.1.bb +++ b/recipes-mono/msbuild/msbuild_16.10.1.bb @@ -21,7 +21,7 @@ SRC_URI = "git://github.com/mono/linux-packaging-msbuild.git;branch=main;protoco file://0001-Copy-hostfxr.patch \ " -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" do_configure () { sed "s|%libhostfxr%|${STAGING_DIR_TARGET}${libdir}/libhostfxr.so|g" -i ${S}/eng/cibuild_bootstrapped_msbuild.sh @@ -35,8 +35,8 @@ do_configure () { sed "s|\$1/lib|${libdir}|g" -i ${S}/mono/build/gen_msbuild_wrapper.sh } -export DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR="${STAGING_DATADIR_NATIVE}/dotnet" -export CURL_CA_BUNDLE="${STAGING_DIR_NATIVE}/etc/ssl/certs/ca-certificates.crt" +export DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR = "${STAGING_DATADIR_NATIVE}/dotnet" +export CURL_CA_BUNDLE = "${STAGING_DIR_NATIVE}/etc/ssl/certs/ca-certificates.crt" do_compile[network] = "1" diff --git a/recipes-mono/nuget/nuget.inc b/recipes-mono/nuget/nuget.inc index bc2a7ce0..22bad447 100644 --- a/recipes-mono/nuget/nuget.inc +++ b/recipes-mono/nuget/nuget.inc @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://Apache-LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3 HOMEPAGE = "http://nuget.org/" # This package ships Mono EXE and a shell script -PACKAGE_ARCH="all" +PACKAGE_ARCH = "all" # Fully updated Fedora 33 and 34 say that dist.nuget.org cert is untrusted BB_CHECK_SSL_CERTS = "0" diff --git a/recipes-mono/taglib-sharp/taglib-sharp.inc b/recipes-mono/taglib-sharp/taglib-sharp.inc index bc5fc055..474dbe6d 100644 --- a/recipes-mono/taglib-sharp/taglib-sharp.inc +++ b/recipes-mono/taglib-sharp/taglib-sharp.inc @@ -10,7 +10,7 @@ DEPENDS = "mono" SRC_URI = "git://github.com/mono/taglib-sharp.git;protocol=https;branch=${SRCBRANCH}" -S = "${UNPACKDIR}/git" +S = "${UNPACKDIR}/${BP}" inherit autotools-brokensep pkgconfig diff --git a/recipes-mono/taglib-sharp/taglib-sharp_2.1.0.0.bb b/recipes-mono/taglib-sharp/taglib-sharp_2.1.0.0.bb index 1f9327f1..266e6529 100644 --- a/recipes-mono/taglib-sharp/taglib-sharp_2.1.0.0.bb +++ b/recipes-mono/taglib-sharp/taglib-sharp_2.1.0.0.bb @@ -1,6 +1,6 @@ require taglib-sharp.inc SRCREV = "bbdc79138815c81151a5d03fc2dec0cf53044186" -SRCBRANCH = "master" +SRCBRANCH = "main" SRC_URI += "file://0001-configure-use-mcs.patch" diff --git a/recipes-python/python3-clr-loader/python3-clr-loader.bb b/recipes-python/python3-clr-loader/python3-clr-loader.bb index 7cbc5b94..f58f01cf 100644 --- a/recipes-python/python3-clr-loader/python3-clr-loader.bb +++ b/recipes-python/python3-clr-loader/python3-clr-loader.bb @@ -29,26 +29,26 @@ RDEPENDS:${PN} += " \ # NuGet uses $HOME/.nuget/packages to store packages by default # but we should not use anything outside the build root of packages. # Use a separated folder for nuget downloads and cache in UNPACKDIR. -export NUGET_PACKAGES="${UNPACKDIR}/nuget-packages" -export NUGET_HTTP_CACHE_PATH="${UNPACKDIR}/nuget-http-cache" +export NUGET_PACKAGES = "${UNPACKDIR}/nuget-packages" +export NUGET_HTTP_CACHE_PATH = "${UNPACKDIR}/nuget-http-cache" # NuGet MigrationRunner.Run() in .NET 6 runs BEFORE the skip-first-time # check, and hardcodes $HOME/.local/share/NuGet/Migrations. In CI # containers $HOME is often read-only. Override HOME to a writable path # so NuGet, dotnet CLI, and any other $HOME consumer all get a writable dir. -export HOME="${WORKDIR}/dotnet-home" -export DOTNET_CLI_HOME="${WORKDIR}/dotnet-home" -export DOTNET_SKIP_FIRST_TIME_EXPERIENCE="true" -export DOTNET_CLI_TELEMETRY_OPTOUT="1" -export DOTNET_NOLOGO="1" +export HOME = "${WORKDIR}/dotnet-home" +export DOTNET_CLI_HOME = "${WORKDIR}/dotnet-home" +export DOTNET_SKIP_FIRST_TIME_EXPERIENCE = "true" +export DOTNET_CLI_TELEMETRY_OPTOUT = "1" +export DOTNET_NOLOGO = "1" # Workaround for dotnet restore issue, define custom proxy in a .bbappend # and/or in layer.conf or local.conf if dotnet restore was failed. # Override DOTNET_HTTP_PROXY and DOTNET_HTTPS_PROXY in layer.conf or local.conf if needed DOTNET_HTTP_PROXY ?= "" DOTNET_HTTPS_PROXY ?= "" -export http_proxy="${DOTNET_HTTP_PROXY}" -export https_proxy="${DOTNET_HTTPS_PROXY}" +export http_proxy = "${DOTNET_HTTP_PROXY}" +export https_proxy = "${DOTNET_HTTPS_PROXY}" do_configure:prepend() { if ! grep -Fq __version__ ${S}/clr_loader/__init__.py diff --git a/recipes-python/python3-pythonnet/python3-pythonnet.bb b/recipes-python/python3-pythonnet/python3-pythonnet.bb index 5fa8b1b9..4d512ad7 100644 --- a/recipes-python/python3-pythonnet/python3-pythonnet.bb +++ b/recipes-python/python3-pythonnet/python3-pythonnet.bb @@ -38,16 +38,16 @@ RDEPENDS:${PN} += " \ # NuGet uses $HOME/.nuget/packages to store packages by default # but we should not use anything outside the build root of packages. # Use a separated folder for nuget downloads and cache in UNPACKDIR. -export NUGET_PACKAGES="${UNPACKDIR}/nuget-packages" -export NUGET_HTTP_CACHE_PATH="${UNPACKDIR}/nuget-http-cache" +export NUGET_PACKAGES = "${UNPACKDIR}/nuget-packages" +export NUGET_HTTP_CACHE_PATH = "${UNPACKDIR}/nuget-http-cache" # Workaround for dotnet restore issue, define custom proxy in a .bbappend # and/or in layer.conf or local.conf if dotnet restore was failed. # Override DOTNET_HTTP_PROXY and DOTNET_HTTPS_PROXY in layer.conf or local.conf if needed DOTNET_HTTP_PROXY ?= "" DOTNET_HTTPS_PROXY ?= "" -export http_proxy="${DOTNET_HTTP_PROXY}" -export https_proxy="${DOTNET_HTTPS_PROXY}" +export http_proxy = "${DOTNET_HTTP_PROXY}" +export https_proxy = "${DOTNET_HTTPS_PROXY}" do_configure:prepend() { if ! grep -Fq __version__ ${S}/pythonnet/__init__.py