From 16826a57c34cf978efeaaa4731514c87243290a5 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 08:52:37 +0200 Subject: [PATCH 01/27] MNT: Re-rendered with conda-build 25.4.2, conda-smithy 3.48.1, and conda-forge-pinning 2025.05.26.22.22.49 --- .ci_support/linux_64_.yaml | 2 +- .ci_support/linux_aarch64_.yaml | 4 ++- .ci_support/linux_ppc64le_.yaml | 4 ++- .ci_support/osx_64_.yaml | 2 +- .ci_support/osx_arm64_.yaml | 2 +- .ci_support/win_64_.yaml | 2 +- .scripts/build_steps.sh | 26 ++++++++--------- .scripts/run_osx_build.sh | 28 +++++++------------ .scripts/run_win_build.bat | 8 +++--- README.md | 49 ++++++++++++++++----------------- 10 files changed, 58 insertions(+), 69 deletions(-) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 01c62f6..da1435e 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -26,7 +26,7 @@ expat: - '2' glib: - '2' -gstreamer: +gst_plugins_base: - '1.24' libiconv: - '1' diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index d021279..f046cf1 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -26,7 +26,7 @@ expat: - '2' glib: - '2' -gstreamer: +gst_plugins_base: - '1.24' libiconv: - '1' @@ -40,6 +40,8 @@ libxcb: - '1' libxml2: - '2.13' +mpg123: +- '1.32' openssl: - '3' pulseaudio_client: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index ee02bf6..9226cc7 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -26,7 +26,7 @@ expat: - '2' glib: - '2' -gstreamer: +gst_plugins_base: - '1.24' libiconv: - '1' @@ -38,6 +38,8 @@ libxcb: - '1' libxml2: - '2.13' +mpg123: +- '1.32' openssl: - '3' pulseaudio_client: diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 60d2cd5..fc50e78 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -20,7 +20,7 @@ cxx_compiler_version: - '18' glib: - '2' -gstreamer: +gst_plugins_base: - '1.24' libiconv: - '1' diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 75945e4..a359803 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -20,7 +20,7 @@ cxx_compiler_version: - '18' glib: - '2' -gstreamer: +gst_plugins_base: - '1.24' libiconv: - '1' diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index becd83c..035b2cc 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -10,7 +10,7 @@ cxx_compiler: - vs2019 glib: - '2' -gstreamer: +gst_plugins_base: - '1.24' libiconv: - '1' diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 9c590d0..fd351e4 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -35,7 +35,7 @@ mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d- echo > /opt/conda/conda-meta/history micromamba install --root-prefix ~/.conda --prefix /opt/conda \ --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" + pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc @@ -61,7 +61,7 @@ ulimit -n 1024 make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi @@ -72,20 +72,16 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" - - # Drop into an interactive shell - /bin/bash + echo "rattler-build currently doesn't support debug mode" else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ - --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" + + rattler-build build --recipe "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + --target-platform "${HOST_PLATFORM}" \ + --extra-meta flow_run_id="${flow_run_id:-}" \ + --extra-meta remote_url="${remote_url:-}" \ + --extra-meta sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 0e3c394..a9efc3e 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -26,7 +26,7 @@ chmod +x "${micromamba_exe}" echo "Creating environment" "${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ --channel conda-forge \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" + pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" echo "Cleaning up micromamba" @@ -70,33 +70,25 @@ source run_conda_forge_build_setup ( endgroup "Configuring conda" ) 2> /dev/null -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - if [[ -f LICENSE.txt ]]; then cp LICENSE.txt "recipe/recipe-scripts-license.txt" fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - - # Drop into an interactive shell - /bin/bash + echo "rattler-build does not currently support debug mode" else if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi - conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ - --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" + rattler-build build --recipe ./recipe \ + -m ./.ci_support/${CONFIG}.yaml \ + ${EXTRA_CB_OPTIONS:-} \ + --target-platform "${HOST_PLATFORM}" \ + --extra-meta flow_run_id="$flow_run_id" \ + --extra-meta remote_url="$remote_url" \ + --extra-meta sha="$sha" ( startgroup "Inspecting artifacts" ) 2> /dev/null diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 297498b..88fdcb5 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -31,7 +31,7 @@ if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ --channel conda-forge ^ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" + pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" if !errorlevel! neq 0 exit /b !errorlevel! echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" >nul @@ -64,19 +64,19 @@ if EXIST LICENSE.txt ( ) if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( if [%CROSSCOMPILING_EMULATOR%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --test skip" ) ) if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% --extra-meta remote_url=%remote_url% --extra-meta sha=%sha%" ) call :end_group :: Build the recipe echo Building recipe -conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% +rattler-build.exe build --recipe "recipe" -m .ci_support\%CONFIG%.yaml %EXTRA_CB_OPTIONS% --target-platform %HOST_PLATFORM% if !errorlevel! neq 0 exit /b !errorlevel! call :start_group "Inspecting artifacts" diff --git a/README.md b/README.md index f5e0458..b3ec8b1 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,39 @@ -About gstreamer_and_plugins-feedstock -===================================== +About gst-plugins-base-feedstock +================================ Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/gstreamer-feedstock/blob/main/LICENSE.txt) -About gstreamer_and_plugins ---------------------------- +About gst-plugins-base +---------------------- Home: https://gstreamer.freedesktop.org/ Package license: LGPL-2.0-or-later -Summary: Library for constructing graphs of media-handling components +Summary: GStreamer Base Plug-ins -Development: https://cgit.freedesktop.org/gstreamer/gstreamer/tree/ +Development: https://cgit.freedesktop.org/gstreamer/gstreamer/ Documentation: https://gstreamer.freedesktop.org/documentation/ -About gst-plugins-base ----------------------- - - - -Package license: LGPL-2.0-or-later - -Summary: GStreamer Base Plug-ins - GStreamer Base Plug-ins is a well-groomed and well-maintained collection of GStreamer plug-ins and elements, spanning the range of possible types of elements one would want to write for GStreamer. - About gst-plugins-good ---------------------- - +Home: https://gstreamer.freedesktop.org/ Package license: LGPL-2.0-or-later Summary: GStreamer Good Plug-ins +Development: https://cgit.freedesktop.org/gstreamer/gstreamer/ + +Documentation: https://gstreamer.freedesktop.org/documentation/ + GStreamer Good Plug-ins is A collection of plug-ins you'd want to have right next to you on the battlefield. Shooting sharp and making no mistakes, these plug-ins have it @@ -47,16 +41,19 @@ all: good looks, good code, and good licensing. Documented and dressed up in tests. If you're looking for a role model to base your own plug-in on here it is. - About gstreamer --------------- - +Home: https://gstreamer.freedesktop.org/ Package license: LGPL-2.0-or-later Summary: Library for constructing graphs of media-handling components +Development: https://cgit.freedesktop.org/gstreamer/gstreamer/ + +Documentation: https://gstreamer.freedesktop.org/documentation/ + Current build status ==================== @@ -133,10 +130,10 @@ Current release info | [![Conda Recipe](https://img.shields.io/badge/recipe-gst--plugins--good-green.svg)](https://anaconda.org/conda-forge/gst-plugins-good) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/gst-plugins-good.svg)](https://anaconda.org/conda-forge/gst-plugins-good) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/gst-plugins-good.svg)](https://anaconda.org/conda-forge/gst-plugins-good) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/gst-plugins-good.svg)](https://anaconda.org/conda-forge/gst-plugins-good) | | [![Conda Recipe](https://img.shields.io/badge/recipe-gstreamer-green.svg)](https://anaconda.org/conda-forge/gstreamer) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/gstreamer.svg)](https://anaconda.org/conda-forge/gstreamer) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/gstreamer.svg)](https://anaconda.org/conda-forge/gstreamer) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/gstreamer.svg)](https://anaconda.org/conda-forge/gstreamer) | -Installing gstreamer_and_plugins -================================ +Installing gst-plugins-base +=========================== -Installing `gstreamer_and_plugins` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `gst-plugins-base` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` conda config --add channels conda-forge @@ -222,17 +219,17 @@ Terminology produce the finished article (built conda distributions) -Updating gstreamer_and_plugins-feedstock -======================================== +Updating gst-plugins-base-feedstock +=================================== -If you would like to improve the gstreamer_and_plugins recipe or build a new +If you would like to improve the gst-plugins-base recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the `conda-forge` channel, whereupon the built conda packages will be available for everybody to install and use from the `conda-forge` channel. -Note that all branches in the conda-forge/gstreamer_and_plugins-feedstock are +Note that all branches in the conda-forge/gst-plugins-base-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks and branches in the main repository should only be used to build distinct package versions. From 93611d27c45ac745126b992fab3e9942ea754796 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 08:59:10 +0200 Subject: [PATCH 02/27] use recipe.yaml --- conda-forge.yml | 1 + recipe/meta.yaml | 263 -------------------------------------- recipe/recipe.yaml | 306 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 307 insertions(+), 263 deletions(-) delete mode 100644 recipe/meta.yaml create mode 100644 recipe/recipe.yaml diff --git a/conda-forge.yml b/conda-forge.yml index 240cfff..3bfbefe 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -14,3 +14,4 @@ provider: linux_aarch64: azure linux_ppc64le: azure test: native_and_emulated +conda_build_tool: rattler-build \ No newline at end of file diff --git a/recipe/meta.yaml b/recipe/meta.yaml deleted file mode 100644 index 0208f71..0000000 --- a/recipe/meta.yaml +++ /dev/null @@ -1,263 +0,0 @@ -{% set version = "1.26.2" %} -{% set posix = 'm2-' if win else '' %} - -package: - name: gstreamer_and_plugins - version: {{ version }} - -source: - - url: https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-{{ version }}.tar.xz - sha256: f75334a3dff497c240844304a60015145792ecc3b6b213ac19841ccbd6fdf0ad - - url: https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-{{ version }}.tar.xz - sha256: f4b9fc0be852fe5f65401d18ae6218e4aea3ff7a3c9f8d265939b9c4704915f7 - folder: plugins_base - - url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-{{ version }}.tar.xz - sha256: d864b9aec28c3a80895468c909dd303e5f22f92d6e2b1137f80e2a1454584339 - folder: plugins_good - patches: - - jpeg-win.patch # [win] - -build: - number: 0 - -outputs: - - name: gstreamer - script: install_gstreamer.sh # [unix] - script: install_gstreamer.bat # [win] - build: - activate_in_script: true - ignore_run_exports: - # we need cross-python to build, but this isn't a python package - - python # [build_platform != target_platform] - - python_abi # [build_platform != target_platform] - run_exports: - # remove symbols at .90 patch releases just before minor versions? - # https://abi-laboratory.pro/tracker/timeline/gstreamer/ - - {{ pin_subpackage('gstreamer', max_pin='x.x') }} - - requirements: - build: - - {{ compiler('c') }} - - {{ stdlib('c') }} - - {{ compiler('cxx') }} - - pkg-config - - {{ posix }}bison - - {{ posix }}flex - - meson - - ninja - - gettext-tools - - gobject-introspection - # 20221027 - hmaarrfk - # 3.11 doesn't have distutils which mesons needs??? - - cross-python_{{ target_platform }} 3.10 # [build_platform != target_platform] - host: - - python 3.10 # [build_platform != target_platform] - - glib - - libintl-devel # [not linux] - - libiconv - - zlib - run: - - {{ pin_compatible("glib") }} # required for anything that builds against GStreamer, e.g. Qt - test: - commands: - - gst-inspect-1.0 --version - - gst-launch-1.0 --version - - gst-stats-1.0 --version - - gst-typefind-1.0 --version - - test -f $PREFIX/lib/girepository-1.0/Gst-1.0.typelib # [unix] - - if not exist %LIBRARY_LIB%\\girepository-1.0\\Gst-1.0.typelib exit 1 # [win] - about: - summary: Library for constructing graphs of media-handling components - description: - doc_source_url: https://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs - license: LGPL-2.0-or-later - license_file: COPYING - - - name: gst-plugins-base - script: install_base_plugins.sh # [unix] - script: install_base_plugins.bat # [win] - build: - activate_in_script: true - ignore_run_exports: - # we need cross-python to build, but this isn't a python package - - python # [build_platform != target_platform] - - python_abi # [build_platform != target_platform] - run_exports: - # remove symbols at .90 patch releases just before minor versions? - # https://abi-laboratory.pro/tracker/timeline/gstreamer/ - - {{ pin_subpackage('gst-plugins-base', max_pin='x.x') }} - - requirements: - build: - - {{ compiler('c') }} - - {{ stdlib('c') }} - - {{ compiler('cxx') }} - - pkg-config - - meson - - ninja - - gettext-tools - - gobject-introspection - - cross-python_{{ target_platform }} 3.10 # [build_platform != target_platform] - host: - - libgl-devel # [linux] - - libegl-devel # [linux] - - libdrm # [linux] - - python 3.10 # [build_platform != target_platform] - - {{ pin_subpackage('gstreamer', exact=True) }} - - glib - - zlib - - libintl-devel # [not linux] - - libogg - - libxcb # [linux] - - libpng # [unix] - - alsa-lib # [linux] - - libopus # [unix] - - libvorbis - - expat # [linux] - - xorg-libxfixes # [linux] - - xorg-libxext # [linux] - - xorg-xorgproto # [linux] - - xorg-libx11 # [linux] - - xorg-libxrender # [linux] - - xorg-libxdamage # [linux] - - xorg-libxxf86vm # [linux] - - xorg-libxau # [linux] - - xorg-libxshmfence # [linux] - run: - - {{ pin_subpackage('gstreamer', exact=True) }} - - test: - commands: - - test -f $PREFIX/lib/libgstallocators-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstapp-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstaudio-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstfft-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstpbutils-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstriff-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstrtp-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstrtsp-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstsdp-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgsttag-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/libgstvideo-1.0${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/girepository-1.0/GstVideo-1.0.typelib # [unix] - - if not exist %LIBRARY_BIN%\\gstallocators-1.0-0.dll exit 1 # [win] - - if not exist %LIBRARY_LIB%\\girepository-1.0\\GstVideo-1.0.typelib exit 1 # [win] - - gst-inspect-1.0 --plugin volume - - about: - summary: GStreamer Base Plug-ins - description: | - GStreamer Base Plug-ins is a well-groomed and well-maintained collection of - GStreamer plug-ins and elements, spanning the range of possible types of - elements one would want to write for GStreamer. - doc_source_url: https://github.com/GStreamer/gst-plugins-base/tree/master/docs - license: LGPL-2.0-or-later - license_file: COPYING - - - name: gst-plugins-good - script: install_good_plugins.sh # [unix] - script: install_good_plugins.bat # [win] - build: - activate_in_script: true - ignore_run_exports: - # we need cross-python to build, but this isn't a python package - - python # [build_platform != target_platform] - - python_abi # [build_platform != target_platform] - run_exports: - - {{ pin_subpackage('gst-plugins-good', max_pin='x.x') }} - requirements: - build: - - {{ compiler('c') }} - - {{ stdlib('c') }} - - {{ compiler('cxx') }} - # 20221027 - hmaarrfk - needs distutils, which was removed from 3.11 - - cross-python_{{ target_platform }} 3.10 # [build_platform != target_platform] - - pkg-config - - meson - - ninja - - gettext-tools - host: - - libgl-devel # [linux] - - libegl-devel # [linux] - - libdrm # [linux] - - python 3.10 # [build_platform != target_platform] - - {{ pin_subpackage('gstreamer', exact=True) }} - - {{ pin_subpackage('gst-plugins-base', exact=True) }} - - libintl-devel # [not linux] - - openssl - - libxml2 - - glib - - libxcb # [linux] - - jack >=1.9.7 # [linux64] - - lame # [unix] - - pulseaudio-client # [linux] - - mpg123 # [linux64 or osx] - - zlib - - libsoup # [not ppc64le] - - libjpeg-turbo - - libpng # [unix] - - bzip2 # [linux] - - libxml2 # [linux] - - expat # [linux] - - xorg-xorgproto # [linux] - - xorg-libxfixes # [linux] - - xorg-libxext # [linux] - - xorg-libx11 # [linux] - - xorg-libxrender # [linux] - - xorg-libxdamage # [linux] - - xorg-libxxf86vm # [linux] - - xorg-libxau # [linux] - - xorg-libxshmfence # [linux] - run: - - {{ pin_subpackage('gstreamer', exact=True) }} - - {{ pin_subpackage('gst-plugins-base', exact=True) }} - - libsoup # [not ppc64le] - - glib-networking # [not ppc64le] - - xorg-libxfixes # [linux] - - xorg-libxdamage # [linux] - - test: - commands: - - test -f $PREFIX/lib/gstreamer-1.0/libgstalpha${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/gstreamer-1.0/libgstdebug${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/gstreamer-1.0/libgstjack${SHLIB_EXT} # [linux64] - - test -f $PREFIX/lib/gstreamer-1.0/libgstjpeg${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/gstreamer-1.0/libgstlame${SHLIB_EXT} # [unix] - - test -f $PREFIX/lib/gstreamer-1.0/libgstmpg123${SHLIB_EXT} # [linux64 or osx] - - test -f $PREFIX/lib/gstreamer-1.0/libgstspectrum${SHLIB_EXT} # [unix] - - test -f ${PREFIX}/lib/gstreamer-1.0/libgstpulseaudio${SHLIB_EXT} # [linux] - - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstalpha.dll exit 1 # [win] - - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstdebug.dll exit 1 # [win] - - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstjpeg.dll exit 1 # [win] - - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstspectrum.dll exit 1 # [win] - - gst-inspect-1.0 --plugin alpha - about: - summary: GStreamer Good Plug-ins - description: | - GStreamer Good Plug-ins is A collection of plug-ins you'd - want to have right next to you on the battlefield. - Shooting sharp and making no mistakes, these plug-ins have it - all: good looks, good code, and good licensing. Documented and - dressed up in tests. If you're looking for a role model to - base your own plug-in on here it is. - doc_source_url: https://github.com/GStreamer/gst-plugins-good/tree/master/docs - license: LGPL-2.0-or-later - license_file: COPYING - -about: - home: https://gstreamer.freedesktop.org/ - summary: Library for constructing graphs of media-handling components - license: LGPL-2.0-or-later - license_file: COPYING - doc_url: https://gstreamer.freedesktop.org/documentation/ - dev_url: https://cgit.freedesktop.org/gstreamer/gstreamer/tree/ - -extra: - recipe-maintainers: - - hmaarrfk - - andfoy - - ccordoba12 - - mingwandroid - - msarahan - - tschoonj - - scopatz diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml new file mode 100644 index 0000000..a867fa9 --- /dev/null +++ b/recipe/recipe.yaml @@ -0,0 +1,306 @@ +context: + version: "1.26.2" + posix: ${{ "m2-" if win else "" }} + +recipe: + name: gstreamer_and_plugins + version: ${{ version }} + +source: + - url: https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${{ version }}.tar.xz + sha256: f75334a3dff497c240844304a60015145792ecc3b6b213ac19841ccbd6fdf0ad + - url: https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${{ version }}.tar.xz + sha256: f4b9fc0be852fe5f65401d18ae6218e4aea3ff7a3c9f8d265939b9c4704915f7 + target_directory: plugins_base + - url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${{ version }}.tar.xz + sha256: d864b9aec28c3a80895468c909dd303e5f22f92d6e2b1137f80e2a1454584339 + target_directory: plugins_good + patches: + - jpeg-win.patch # [win] + +build: + number: 0 + +outputs: + - package: + name: gstreamer + build: + script: install_gstreamer + + requirements: + build: + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ${{ compiler('cxx') }} + - pkg-config + - ${{ posix }}bison + - ${{ posix }}flex + - meson + - ninja + - gettext-tools + - gobject-introspection + host: + - glib + - libiconv + - zlib + - if: not linux + then: + - libintl-devel + + ignore_run_exports: + by_name: + # we need cross-python to build, but this isn't a python package + - python + - python_abi + run_exports: + # remove symbols at .90 patch releases just before minor versions? + # https://abi-laboratory.pro/tracker/timeline/gstreamer/ + - ${{ pin_subpackage('gstreamer', upper_bound='x.x') }} + + run: + - ${{ pin_compatible("glib") }} # required for anything that builds against GStreamer, e.g. Qt + tests: + - package_contents: + lib: + - gstbase-1.0 + - gstcheck-1.0 + include: + - gstreamer-1.0/gst/gst.h + - gstreamer-1.0/gst/gstversion.h + - gstreamer-1.0/gst/check/gstcheck.h + files: + - "**/lib/girepository-1.0/Gst-1.0.typelib" + - "**/lib/girepository-1.0/GstCheck-1.0.typelib" + + - script: + - gst-inspect-1.0 --version + - gst-launch-1.0 --version + - gst-stats-1.0 --version + - gst-typefind-1.0 --version + + about: + summary: Library for constructing graphs of media-handling components + license: LGPL-2.0-or-later + license_file: COPYING + + - package: + name: gst-plugins-base + build: + script: install_base_plugins + # activate_in_script: true + + requirements: + build: + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ${{ compiler('cxx') }} + - pkg-config + - meson + - ninja + - gettext-tools + - gobject-introspection + host: + - ${{ pin_subpackage('gstreamer', exact=True) }} + - glib + - zlib + - libogg + - libvorbis + + - if: not linux + then: + - libintl-devel + - if: unix + then: + - libpng + - libopus + - if: linux + then: + - libxcb + - alsa-lib + - libgl-devel + - libegl-devel + - libdrm + - expat + - xorg-libxfixes + - xorg-libxext + - xorg-xorgproto + - xorg-libx11 + - xorg-libxrender + - xorg-libxdamage + - xorg-libxxf86vm + - xorg-libxau + - xorg-libxshmfence + + run: + - ${{ pin_subpackage('gstreamer', exact=True) }} + + run_exports: + # remove symbols at .90 patch releases just before minor versions? + # https://abi-laboratory.pro/tracker/timeline/gstreamer/ + - ${{ pin_subpackage('gst-plugins-base', upper_bound='x.x') }} + + # tests: + # - script: + # - test -f $PREFIX/lib/libgstallocators-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstapp-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstaudio-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstfft-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstpbutils-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstriff-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstrtp-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstrtsp-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstsdp-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgsttag-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/libgstvideo-1.0${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/girepository-1.0/GstVideo-1.0.typelib # [unix] + # - if not exist %LIBRARY_BIN%\\gstallocators-1.0-0.dll exit 1 # [win] + # - if not exist %LIBRARY_LIB%\\girepository-1.0\\GstVideo-1.0.typelib exit 1 # [win] + # - gst-inspect-1.0 --plugin volume + + about: + summary: GStreamer Base Plug-ins + description: | + GStreamer Base Plug-ins is a well-groomed and well-maintained collection of + GStreamer plug-ins and elements, spanning the range of possible types of + elements one would want to write for GStreamer. + license: LGPL-2.0-or-later + license_file: COPYING + + - package: + name: gst-plugins-good + build: + script: install_good_plugins + + requirements: + build: + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ${{ compiler('cxx') }} + - pkg-config + - meson + - ninja + - gettext-tools + host: + # - ${{ pin_subpackage('gstreamer', exact=True) }} + # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} + - gstreamer + - gst-plugins-base + + - openssl + - libxml2 + - glib + - zlib + - libjpeg-turbo + + - ${{ "libsoup" if not ppc64le }} + - ${{ "libintl-devel" if not linux }} + + - if: unix + then: + - lame + - libpng + - mpg123 + + - if: linux + then: + - pulseaudio-client + - libgl-devel + - libegl-devel + - libdrm + - libxcb + - jack >=1.9.7 + - bzip2 + - libxml2 + - expat + - xorg-xorgproto + - xorg-libxfixes + - xorg-libxext + - xorg-libx11 + - xorg-libxrender + - xorg-libxdamage + - xorg-libxxf86vm + - xorg-libxau + - xorg-libxshmfence + + ignore_run_exports: + from_package: + - python + + run_exports: + - ${{ pin_subpackage('gst-plugins-good', upper_bound='x.x') }} + + run: + # - ${{ pin_subpackage('gstreamer', exact=True) }} + # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} + + - gstreamer + - gst-plugins-base + + - if: not ppc64le + then: + - libsoup + - glib-networking + - if: linux + then: + - xorg-libxfixes + - xorg-libxdamage + + tests: + - package_contents: + lib: + - gstalpha + # - gstreamer-1.0/libgstalpha.* + # - gstreamer-1.0/libgstdebug.* + # - gstreamer-1.0/libgstjpeg${SHLIB_EXT} # [unix] + # - gstreamer-1.0/libgstlame${SHLIB_EXT} # [unix] + # - gstreamer-1.0/libgstmpg123${SHLIB_EXT} # [linux64 or osx] + # - gstreamer-1.0/libgstspectrum${SHLIB_EXT} # [unix] + - if: linux + then: + - gstreamer-1.0/libgstpulseaudio.so + - gstreamer-1.0/libgstjack.so + + - script: + # - test -f $PREFIX/lib/gstreamer-1.0/libgstalpha${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/gstreamer-1.0/libgstdebug${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/gstreamer-1.0/libgstjack${SHLIB_EXT} # [linux64] + # - test -f $PREFIX/lib/gstreamer-1.0/libgstjpeg${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/gstreamer-1.0/libgstlame${SHLIB_EXT} # [unix] + # - test -f $PREFIX/lib/gstreamer-1.0/libgstmpg123${SHLIB_EXT} # [linux64 or osx] + # - test -f $PREFIX/lib/gstreamer-1.0/libgstspectrum${SHLIB_EXT} # [unix] + # - test -f ${PREFIX}/lib/gstreamer-1.0/libgstpulseaudio${SHLIB_EXT} # [linux] + # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstalpha.dll exit 1 # [win] + # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstdebug.dll exit 1 # [win] + # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstjpeg.dll exit 1 # [win] + # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstspectrum.dll exit 1 # [win] + - gst-inspect-1.0 --plugin alpha + + about: + summary: GStreamer Good Plug-ins + description: | + GStreamer Good Plug-ins is A collection of plug-ins you'd + want to have right next to you on the battlefield. + Shooting sharp and making no mistakes, these plug-ins have it + all: good looks, good code, and good licensing. Documented and + dressed up in tests. If you're looking for a role model to + base your own plug-in on here it is. + license: LGPL-2.0-or-later + license_file: COPYING + +about: + homepage: https://gstreamer.freedesktop.org/ + summary: Library for constructing graphs of media-handling components + license: LGPL-2.0-or-later + license_file: COPYING + documentation: https://gstreamer.freedesktop.org/documentation/ + repository: https://cgit.freedesktop.org/gstreamer/gstreamer/ + +extra: + recipe-maintainers: + - hmaarrfk + - andfoy + - ccordoba12 + - mingwandroid + - msarahan + - tschoonj + - scopatz From cc1f24c204ce2c3197b6d7711cb9cb6bb4994928 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 09:13:12 +0200 Subject: [PATCH 03/27] MNT: Re-rendered with conda-build 25.4.2, conda-smithy 3.48.1, and conda-forge-pinning 2025.05.26.22.22.49 --- .azure-pipelines/azure-pipelines-linux.yml | 52 ------- .azure-pipelines/azure-pipelines-osx.yml | 3 - .azure-pipelines/azure-pipelines-win.yml | 38 ------ .ci_support/linux_64_.yaml | 55 -------- .ci_support/linux_aarch64_.yaml | 55 -------- .ci_support/linux_ppc64le_.yaml | 53 -------- .ci_support/osx_arm64_.yaml | 47 ------- .ci_support/win_64_.yaml | 28 ---- .scripts/build_steps.sh | 108 --------------- .scripts/run_docker_build.sh | 114 ---------------- .scripts/run_win_build.bat | 151 --------------------- README.md | 35 ----- azure-pipelines.yml | 4 +- 13 files changed, 1 insertion(+), 742 deletions(-) delete mode 100755 .azure-pipelines/azure-pipelines-linux.yml delete mode 100755 .azure-pipelines/azure-pipelines-win.yml delete mode 100644 .ci_support/linux_64_.yaml delete mode 100644 .ci_support/linux_aarch64_.yaml delete mode 100644 .ci_support/linux_ppc64le_.yaml delete mode 100644 .ci_support/osx_arm64_.yaml delete mode 100644 .ci_support/win_64_.yaml delete mode 100755 .scripts/build_steps.sh delete mode 100755 .scripts/run_docker_build.sh delete mode 100755 .scripts/run_win_build.bat diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100755 index 010d69c..0000000 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ /dev/null @@ -1,52 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: linux - pool: - vmImage: ubuntu-latest - strategy: - matrix: - linux_64_: - CONFIG: linux_64_ - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:cos7 - linux_aarch64_: - CONFIG: linux_aarch64_ - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:cos7 - linux_ppc64le_: - CONFIG: linux_ppc64le_ - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-ppc64le:cos7 - timeoutInMinutes: 360 - variables: {} - - steps: - # configure qemu binfmt-misc running. This allows us to run docker containers - # embedded qemu-static - - script: | - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - ls /proc/sys/fs/binfmt_misc/ - condition: not(startsWith(variables['CONFIG'], 'linux_64')) - displayName: Configure binfmt_misc - - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - .scripts/run_docker_build.sh - displayName: Run docker build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index ac0bf38..215eeeb 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -11,9 +11,6 @@ jobs: osx_64_: CONFIG: osx_64_ UPLOAD_PACKAGES: 'True' - osx_arm64_: - CONFIG: osx_arm64_ - UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: {} diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml deleted file mode 100755 index 13022dd..0000000 --- a/.azure-pipelines/azure-pipelines-win.yml +++ /dev/null @@ -1,38 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: win - pool: - vmImage: windows-2022 - strategy: - matrix: - win_64_: - CONFIG: win_64_ - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: - CONDA_BLD_PATH: D:\\bld\\ - MINIFORGE_HOME: D:\Miniforge - UPLOAD_TEMP: D:\\tmp - - steps: - - - script: | - call ".scripts\run_win_build.bat" - displayName: Run Windows build - env: - MINIFORGE_HOME: $(MINIFORGE_HOME) - CONDA_BLD_PATH: $(CONDA_BLD_PATH) - PYTHONUNBUFFERED: 1 - CONFIG: $(CONFIG) - CI: azure - flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) - remote_url: $(Build.Repository.Uri) - sha: $(Build.SourceVersion) - UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) - UPLOAD_TEMP: $(UPLOAD_TEMP) - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml deleted file mode 100644 index da1435e..0000000 --- a/.ci_support/linux_64_.yaml +++ /dev/null @@ -1,55 +0,0 @@ -alsa_lib: -- '1.2' -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:cos7 -expat: -- '2' -glib: -- '2' -gst_plugins_base: -- '1.24' -libiconv: -- '1' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libsoup: -- '3' -libxcb: -- '1' -libxml2: -- '2.13' -mpg123: -- '1.32' -openssl: -- '3' -pulseaudio_client: -- '17.0' -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml deleted file mode 100644 index f046cf1..0000000 --- a/.ci_support/linux_aarch64_.yaml +++ /dev/null @@ -1,55 +0,0 @@ -alsa_lib: -- '1.2' -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-aarch64:cos7 -expat: -- '2' -glib: -- '2' -gst_plugins_base: -- '1.24' -libiconv: -- '1' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libsoup: -- '3' -libxcb: -- '1' -libxml2: -- '2.13' -mpg123: -- '1.32' -openssl: -- '3' -pulseaudio_client: -- '17.0' -target_platform: -- linux-aarch64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml deleted file mode 100644 index 9226cc7..0000000 --- a/.ci_support/linux_ppc64le_.yaml +++ /dev/null @@ -1,53 +0,0 @@ -alsa_lib: -- '1.2' -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-ppc64le:cos7 -expat: -- '2' -glib: -- '2' -gst_plugins_base: -- '1.24' -libiconv: -- '1' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libxcb: -- '1' -libxml2: -- '2.13' -mpg123: -- '1.32' -openssl: -- '3' -pulseaudio_client: -- '17.0' -target_platform: -- linux-ppc64le -zip_keys: -- - c_compiler_version - - cxx_compiler_version -zlib: -- '1' diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml deleted file mode 100644 index a359803..0000000 --- a/.ci_support/osx_arm64_.yaml +++ /dev/null @@ -1,47 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '12.3' -c_compiler: -- clang -c_compiler_version: -- '18' -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' -glib: -- '2' -gst_plugins_base: -- '1.24' -libiconv: -- '1' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libsoup: -- '3' -libxml2: -- '2.13' -macos_machine: -- arm64-apple-darwin20.0.0 -mpg123: -- '1.32' -openssl: -- '3' -target_platform: -- osx-arm64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -zlib: -- '1' diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml deleted file mode 100644 index 035b2cc..0000000 --- a/.ci_support/win_64_.yaml +++ /dev/null @@ -1,28 +0,0 @@ -c_compiler: -- vs2019 -c_stdlib: -- vs -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- vs2019 -glib: -- '2' -gst_plugins_base: -- '1.24' -libiconv: -- '1' -libjpeg_turbo: -- '3' -libsoup: -- '3' -libxml2: -- '2.13' -openssl: -- '3' -target_platform: -- win-64 -zlib: -- '1' diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh deleted file mode 100755 index fd351e4..0000000 --- a/.scripts/build_steps.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -# -*- mode: jinja-shell -*- - -set -xeuo pipefail -export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" -source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh - - -( endgroup "Start Docker" ) 2> /dev/null - -( startgroup "Configuring conda" ) 2> /dev/null - -export PYTHONUNBUFFERED=1 -export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" -export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" -export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" - -cat >~/.condarc < /opt/conda/conda-meta/history -micromamba install --root-prefix ~/.conda --prefix /opt/conda \ - --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" -export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - -# set up the condarc -setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -source run_conda_forge_build_setup - -( -# Due to https://bugzilla.redhat.com/show_bug.cgi?id=1537564 old versions of rpm -# are drastically slowed down when the number of file descriptors is very high. -# This can be visible during a `yum install` step of a feedstock build. -# => Set a lower limit in a subshell for the `yum install`s only. -ulimit -n 1024 - -# Install the yum requirements defined canonically in the -# "recipe/yum_requirements.txt" file. After updating that file, -# run "conda smithy rerender" and this line will be updated -# automatically. -/usr/bin/sudo -n yum install -y mesa-libGL -) - -# make the build number clobber -make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" -fi - - -( endgroup "Configuring conda" ) 2> /dev/null - -if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then - cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" -fi - -if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - echo "rattler-build currently doesn't support debug mode" -else - - rattler-build build --recipe "${RECIPE_ROOT}" \ - -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - ${EXTRA_CB_OPTIONS:-} \ - --target-platform "${HOST_PLATFORM}" \ - --extra-meta flow_run_id="${flow_run_id:-}" \ - --extra-meta remote_url="${remote_url:-}" \ - --extra-meta sha="${sha:-}" - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - - ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null - - validate_recipe_outputs "${FEEDSTOCK_NAME}" - - ( endgroup "Validating outputs" ) 2> /dev/null - - ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - fi - - ( endgroup "Uploading packages" ) 2> /dev/null -fi - -( startgroup "Final checks" ) 2> /dev/null - -touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh deleted file mode 100755 index 6ee04aa..0000000 --- a/.scripts/run_docker_build.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -source .scripts/logging_utils.sh - -( startgroup "Configure Docker" ) 2> /dev/null - -set -xeo pipefail - -THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" -PROVIDER_DIR="$(basename "$THISDIR")" - -FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" -RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" - -if [ -z ${FEEDSTOCK_NAME} ]; then - export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) -fi - -if [[ "${sha:-}" == "" ]]; then - pushd "${FEEDSTOCK_ROOT}" - sha=$(git rev-parse HEAD) - popd -fi - -docker info - -# In order for the conda-build process in the container to write to the mounted -# volumes, we need to run with the same id as the host machine, which is -# normally the owner of the mounted volumes, or at least has write permission -export HOST_USER_ID=$(id -u) -# Check if docker-machine is being used (normally on OSX) and get the uid from -# the VM -if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then - export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) -fi - -ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" - -if [ -z "$CONFIG" ]; then - set +x - FILES=`ls .ci_support/linux_*` - CONFIGS="" - for file in $FILES; do - CONFIGS="${CONFIGS}'${file:12:-5}' or "; - done - echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" - exit 1 -fi - -if [ -z "${DOCKER_IMAGE}" ]; then - SHYAML_INSTALLED="$(shyaml -h || echo NO)" - if [ "${SHYAML_INSTALLED}" == "NO" ]; then - echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" - DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) - if [ "${DOCKER_IMAGE}" = "" ]; then - echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" - DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" - fi - else - DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" - fi -fi - -mkdir -p "$ARTIFACTS" -DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" -rm -f "$DONE_CANARY" - -# Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) -DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" -if [ -z "${CI}" ]; then - DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" -fi - -( endgroup "Configure Docker" ) 2> /dev/null - -( startgroup "Start Docker" ) 2> /dev/null - -export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" -export IS_PR_BUILD="${IS_PR_BUILD:-False}" -docker pull "${DOCKER_IMAGE}" -docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ - -e CONFIG \ - -e HOST_USER_ID \ - -e UPLOAD_PACKAGES \ - -e IS_PR_BUILD \ - -e GIT_BRANCH \ - -e UPLOAD_ON_BRANCH \ - -e CI \ - -e FEEDSTOCK_NAME \ - -e CPU_COUNT \ - -e BUILD_WITH_CONDA_DEBUG \ - -e BUILD_OUTPUT_ID \ - -e flow_run_id \ - -e remote_url \ - -e sha \ - -e BINSTAR_TOKEN \ - -e FEEDSTOCK_TOKEN \ - -e STAGING_BINSTAR_TOKEN \ - "${DOCKER_IMAGE}" \ - bash \ - "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" - -# verify that the end of the script was reached -test -f "$DONE_CANARY" - -# This closes the last group opened in `build_steps.sh` -( endgroup "Final checks" ) 2> /dev/null \ No newline at end of file diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat deleted file mode 100755 index 88fdcb5..0000000 --- a/.scripts/run_win_build.bat +++ /dev/null @@ -1,151 +0,0 @@ -:: PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -:: will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -:: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -:: benefit from the improvement. - -:: INPUTS (required environment variables) -:: CONFIG: name of the .ci_support/*.yaml file for this job -:: CI: azure, github_actions, or unset -:: MINIFORGE_HOME: where to install the base conda environment -:: UPLOAD_PACKAGES: true or false -:: UPLOAD_ON_BRANCH: true or false - -setlocal enableextensions enabledelayedexpansion - -FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" -if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" -:: Remove trailing backslash, if present -if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" -call :start_group "Provisioning base env with micromamba" -set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=1.5.10-0" -set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" -set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" -set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" - -echo Downloading micromamba %MICROMAMBA_VERSION% -if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" -powershell -ExecutionPolicy Bypass -Command "(New-Object Net.WebClient).DownloadFile('%MICROMAMBA_URL%', '%MICROMAMBA_EXE%')" -if !errorlevel! neq 0 exit /b !errorlevel! - -echo Creating environment -call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ - --channel conda-forge ^ - pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" -if !errorlevel! neq 0 exit /b !errorlevel! -echo Removing %MAMBA_ROOT_PREFIX% -del /S /Q "%MAMBA_ROOT_PREFIX%" >nul -del /S /Q "%MICROMAMBA_TMPDIR%" >nul -call :end_group - -call :start_group "Configuring conda" - -:: Activate the base conda environment -echo Activating environment -call "%MINIFORGE_HOME%\Scripts\activate.bat" -:: Configure the solver -set "CONDA_SOLVER=libmamba" -if !errorlevel! neq 0 exit /b !errorlevel! -set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" - -:: Set basic configuration -echo Setting up configuration -setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml -if !errorlevel! neq 0 exit /b !errorlevel! -echo Running build setup -CALL run_conda_forge_build_setup - - -if !errorlevel! neq 0 exit /b !errorlevel! - -if EXIST LICENSE.txt ( - echo Copying feedstock license - copy LICENSE.txt "recipe\\recipe-scripts-license.txt" -) -if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( - if [%CROSSCOMPILING_EMULATOR%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --test skip" - ) -) - -if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% --extra-meta remote_url=%remote_url% --extra-meta sha=%sha%" -) - -call :end_group - -:: Build the recipe -echo Building recipe -rattler-build.exe build --recipe "recipe" -m .ci_support\%CONFIG%.yaml %EXTRA_CB_OPTIONS% --target-platform %HOST_PLATFORM% -if !errorlevel! neq 0 exit /b !errorlevel! - -call :start_group "Inspecting artifacts" -:: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 -WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" -call :end_group - -:: Prepare some environment variables for the upload step -if /i "%CI%" == "github_actions" ( - set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" - set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" - if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( - set "IS_PR_BUILD=True" - ) else ( - set "IS_PR_BUILD=False" - ) - set "TEMP=%RUNNER_TEMP%" -) -if /i "%CI%" == "azure" ( - set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" - set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" - if /i "%BUILD_REASON%" == "PullRequest" ( - set "IS_PR_BUILD=True" - ) else ( - set "IS_PR_BUILD=False" - ) - set "TEMP=%UPLOAD_TEMP%" -) - -:: Validate -call :start_group "Validating outputs" -validate_recipe_outputs "%FEEDSTOCK_NAME%" -if !errorlevel! neq 0 exit /b !errorlevel! -call :end_group - -if /i "%UPLOAD_PACKAGES%" == "true" ( - if /i "%IS_PR_BUILD%" == "false" ( - call :start_group "Uploading packages" - if not exist "%TEMP%\" md "%TEMP%" - set "TMP=%TEMP%" - upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml - if !errorlevel! neq 0 exit /b !errorlevel! - call :end_group - ) -) - -exit - -:: Logging subroutines - -:start_group -if /i "%CI%" == "github_actions" ( - echo ::group::%~1 - exit /b -) -if /i "%CI%" == "azure" ( - echo ##[group]%~1 - exit /b -) -echo %~1 -exit /b - -:end_group -if /i "%CI%" == "github_actions" ( - echo ::endgroup:: - exit /b -) -if /i "%CI%" == "azure" ( - echo ##[endgroup] - exit /b -) -exit /b \ No newline at end of file diff --git a/README.md b/README.md index b3ec8b1..1d92dce 100644 --- a/README.md +++ b/README.md @@ -72,47 +72,12 @@ Current build status - - - - - - - - - - - - - - -
VariantStatus
linux_64 - - variant - -
linux_aarch64 - - variant - -
linux_ppc64le - - variant - -
osx_64 variant
osx_arm64 - - variant - -
win_64 - - variant - -
diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eff4ad6..a13f0ae 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,6 +28,4 @@ stages: condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) dependsOn: Check jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-osx.yml - - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file + - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file From 79ce681bb148d92f26287ace0e433a6f9323995e Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 09:22:24 +0200 Subject: [PATCH 04/27] .. --- recipe/recipe.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index a867fa9..5e0eb0c 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -20,6 +20,7 @@ source: build: number: 0 + skip: not osx-arm64 outputs: - package: @@ -39,6 +40,9 @@ outputs: - ninja - gettext-tools - gobject-introspection + + # we need glib-mkenums + - ${{ "glib" if build_platform != target_platform }} host: - glib - libiconv @@ -235,7 +239,7 @@ outputs: - gstreamer - gst-plugins-base - + - if: not ppc64le then: - libsoup From 55b6fc73140cbbeffda0aa229490d1330c8eac26 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 10:47:53 +0200 Subject: [PATCH 05/27] fix tests --- recipe/recipe.yaml | 80 ++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 5e0eb0c..0cbd4dd 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -16,7 +16,7 @@ source: sha256: d864b9aec28c3a80895468c909dd303e5f22f92d6e2b1137f80e2a1454584339 target_directory: plugins_good patches: - - jpeg-win.patch # [win] + - jpeg-win.patch # [win] build: number: 0 @@ -52,7 +52,7 @@ outputs: - libintl-devel ignore_run_exports: - by_name: + by_name: # we need cross-python to build, but this isn't a python package - python - python_abi @@ -62,7 +62,7 @@ outputs: - ${{ pin_subpackage('gstreamer', upper_bound='x.x') }} run: - - ${{ pin_compatible("glib") }} # required for anything that builds against GStreamer, e.g. Qt + - ${{ pin_compatible("glib") }} # required for anything that builds against GStreamer, e.g. Qt tests: - package_contents: lib: @@ -77,10 +77,10 @@ outputs: - "**/lib/girepository-1.0/GstCheck-1.0.typelib" - script: - - gst-inspect-1.0 --version - - gst-launch-1.0 --version - - gst-stats-1.0 --version - - gst-typefind-1.0 --version + - gst-inspect-1.0 --version + - gst-launch-1.0 --version + - gst-stats-1.0 --version + - gst-typefind-1.0 --version about: summary: Library for constructing graphs of media-handling components @@ -143,23 +143,26 @@ outputs: # https://abi-laboratory.pro/tracker/timeline/gstreamer/ - ${{ pin_subpackage('gst-plugins-base', upper_bound='x.x') }} - # tests: - # - script: - # - test -f $PREFIX/lib/libgstallocators-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstapp-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstaudio-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstfft-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstpbutils-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstriff-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstrtp-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstrtsp-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstsdp-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgsttag-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/libgstvideo-1.0${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/girepository-1.0/GstVideo-1.0.typelib # [unix] - # - if not exist %LIBRARY_BIN%\\gstallocators-1.0-0.dll exit 1 # [win] - # - if not exist %LIBRARY_LIB%\\girepository-1.0\\GstVideo-1.0.typelib exit 1 # [win] - # - gst-inspect-1.0 --plugin volume + tests: + - package_contents: + lib: + - if: unix + then: + - gstreamer-1.0/libgstapp-1.0.* + - gstreamer-1.0/libgstaudio-1.0.* + - gstreamer-1.0/libgstfft-1.0.* + - gstreamer-1.0/libgstpbutils-1.0.* + - gstreamer-1.0/libgstriff-1.0.* + - gstreamer-1.0/libgstrtp-1.0.* + - gstreamer-1.0/libgstrtsp-1.0.* + - gstreamer-1.0/libgstsdp-1.0.* + - gstreamer-1.0/libgsttag-1.0.* + - gstreamer-1.0/libgstvideo-1.0.* + + - gstreamer-1.0/${{ "lib" if unix }}gstallocators-1.0.* + - girepository-1.0/GstVideo-1.0.typelib + - script: + - gst-inspect-1.0 --plugin volume about: summary: GStreamer Base Plug-ins @@ -185,6 +188,7 @@ outputs: - ninja - gettext-tools host: + # TODO pin_subpackage not working here with `conda-smithy` # - ${{ pin_subpackage('gstreamer', exact=True) }} # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} - gstreamer @@ -252,32 +256,18 @@ outputs: tests: - package_contents: lib: - - gstalpha - # - gstreamer-1.0/libgstalpha.* - # - gstreamer-1.0/libgstdebug.* - # - gstreamer-1.0/libgstjpeg${SHLIB_EXT} # [unix] - # - gstreamer-1.0/libgstlame${SHLIB_EXT} # [unix] - # - gstreamer-1.0/libgstmpg123${SHLIB_EXT} # [linux64 or osx] - # - gstreamer-1.0/libgstspectrum${SHLIB_EXT} # [unix] + - gstreamer-1.0/${{ "lib" if unix }}gstalpha.* + - gstreamer-1.0/${{ "lib" if unix }}gstdebug.* + - gstreamer-1.0/${{ "lib" if unix }}gstjpeg.* + - gstreamer-1.0/${{ "lib" if unix }}gstlame.* + - gstreamer-1.0/${{ "lib" if unix }}gstmpg123.* + - gstreamer-1.0/${{ "lib" if unix }}gstspectrum.* - if: linux then: - gstreamer-1.0/libgstpulseaudio.so - gstreamer-1.0/libgstjack.so - - script: - # - test -f $PREFIX/lib/gstreamer-1.0/libgstalpha${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/gstreamer-1.0/libgstdebug${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/gstreamer-1.0/libgstjack${SHLIB_EXT} # [linux64] - # - test -f $PREFIX/lib/gstreamer-1.0/libgstjpeg${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/gstreamer-1.0/libgstlame${SHLIB_EXT} # [unix] - # - test -f $PREFIX/lib/gstreamer-1.0/libgstmpg123${SHLIB_EXT} # [linux64 or osx] - # - test -f $PREFIX/lib/gstreamer-1.0/libgstspectrum${SHLIB_EXT} # [unix] - # - test -f ${PREFIX}/lib/gstreamer-1.0/libgstpulseaudio${SHLIB_EXT} # [linux] - # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstalpha.dll exit 1 # [win] - # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstdebug.dll exit 1 # [win] - # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstjpeg.dll exit 1 # [win] - # - if not exist %LIBRARY_LIB%\\gstreamer-1.0\\gstspectrum.dll exit 1 # [win] - - gst-inspect-1.0 --plugin alpha + - gst-inspect-1.0 --plugin alpha about: summary: GStreamer Good Plug-ins From 1ca49ea4cdbedc18dbb0d20d17a24a92817401d2 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 13:52:34 +0200 Subject: [PATCH 06/27] MNT: Re-rendered with conda-build 25.4.2, conda-smithy 3.48.1, and conda-forge-pinning 2025.05.27.09.45.32 --- .azure-pipelines/azure-pipelines-osx.yml | 4 ++-- .ci_support/{osx_64_.yaml => osx_arm64_.yaml} | 8 ++++---- README.md | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) rename .ci_support/{osx_64_.yaml => osx_arm64_.yaml} (90%) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 215eeeb..106f551 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -8,8 +8,8 @@ jobs: vmImage: macOS-13 strategy: matrix: - osx_64_: - CONFIG: osx_64_ + osx_arm64_: + CONFIG: osx_arm64_ UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: {} diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_arm64_.yaml similarity index 90% rename from .ci_support/osx_64_.yaml rename to .ci_support/osx_arm64_.yaml index fc50e78..a359803 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: - '12.3' c_compiler: @@ -9,7 +9,7 @@ c_compiler_version: c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: - conda-forge channel_targets: @@ -33,13 +33,13 @@ libsoup: libxml2: - '2.13' macos_machine: -- x86_64-apple-darwin13.4.0 +- arm64-apple-darwin20.0.0 mpg123: - '1.32' openssl: - '3' target_platform: -- osx-64 +- osx-arm64 zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/README.md b/README.md index 1d92dce..5874c1a 100644 --- a/README.md +++ b/README.md @@ -72,10 +72,10 @@ Current build status - + From 7daa14015cb60832751ed79c893a44b48b19e2ba Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 13:52:45 +0200 Subject: [PATCH 07/27] remove test for time being --- recipe/recipe.yaml | 60 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 0cbd4dd..75a5dcc 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -20,7 +20,7 @@ source: build: number: 0 - skip: not osx-arm64 + skip: not target_platform == "osx-arm64" outputs: - package: @@ -144,23 +144,23 @@ outputs: - ${{ pin_subpackage('gst-plugins-base', upper_bound='x.x') }} tests: - - package_contents: - lib: - - if: unix - then: - - gstreamer-1.0/libgstapp-1.0.* - - gstreamer-1.0/libgstaudio-1.0.* - - gstreamer-1.0/libgstfft-1.0.* - - gstreamer-1.0/libgstpbutils-1.0.* - - gstreamer-1.0/libgstriff-1.0.* - - gstreamer-1.0/libgstrtp-1.0.* - - gstreamer-1.0/libgstrtsp-1.0.* - - gstreamer-1.0/libgstsdp-1.0.* - - gstreamer-1.0/libgsttag-1.0.* - - gstreamer-1.0/libgstvideo-1.0.* - - - gstreamer-1.0/${{ "lib" if unix }}gstallocators-1.0.* - - girepository-1.0/GstVideo-1.0.typelib + # - package_contents: + # lib: + # - if: unix + # then: + # - gstreamer-1.0/libgstapp-1.0.* + # - gstreamer-1.0/libgstaudio-1.0.* + # - gstreamer-1.0/libgstfft-1.0.* + # - gstreamer-1.0/libgstpbutils-1.0.* + # - gstreamer-1.0/libgstriff-1.0.* + # - gstreamer-1.0/libgstrtp-1.0.* + # - gstreamer-1.0/libgstrtsp-1.0.* + # - gstreamer-1.0/libgstsdp-1.0.* + # - gstreamer-1.0/libgsttag-1.0.* + # - gstreamer-1.0/libgstvideo-1.0.* + + # - gstreamer-1.0/${{ "lib" if unix }}gstallocators-1.0.* + # - girepository-1.0/GstVideo-1.0.typelib - script: - gst-inspect-1.0 --plugin volume @@ -254,18 +254,18 @@ outputs: - xorg-libxdamage tests: - - package_contents: - lib: - - gstreamer-1.0/${{ "lib" if unix }}gstalpha.* - - gstreamer-1.0/${{ "lib" if unix }}gstdebug.* - - gstreamer-1.0/${{ "lib" if unix }}gstjpeg.* - - gstreamer-1.0/${{ "lib" if unix }}gstlame.* - - gstreamer-1.0/${{ "lib" if unix }}gstmpg123.* - - gstreamer-1.0/${{ "lib" if unix }}gstspectrum.* - - if: linux - then: - - gstreamer-1.0/libgstpulseaudio.so - - gstreamer-1.0/libgstjack.so + # - package_contents: + # lib: + # - gstreamer-1.0/${{ "lib" if unix }}gstalpha.* + # - gstreamer-1.0/${{ "lib" if unix }}gstdebug.* + # - gstreamer-1.0/${{ "lib" if unix }}gstjpeg.* + # - gstreamer-1.0/${{ "lib" if unix }}gstlame.* + # - gstreamer-1.0/${{ "lib" if unix }}gstmpg123.* + # - gstreamer-1.0/${{ "lib" if unix }}gstspectrum.* + # - if: linux + # then: + # - gstreamer-1.0/libgstpulseaudio.so + # - gstreamer-1.0/libgstjack.so - script: - gst-inspect-1.0 --plugin alpha From 2121a4a8f94d8116fea2c630fc21054167d19c27 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 14:19:50 +0200 Subject: [PATCH 08/27] .. --- recipe/install_gstreamer.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recipe/install_gstreamer.sh b/recipe/install_gstreamer.sh index eaec246..9859ca8 100644 --- a/recipe/install_gstreamer.sh +++ b/recipe/install_gstreamer.sh @@ -14,6 +14,9 @@ if [[ $CONDA_BUILD_CROSS_COMPILATION == "1" ]]; then if [[ "${target_platform}" == "osx-arm64" ]]; then echo "objcpp = '${CXX}'" >> ${BUILD_PREFIX}/meson_cross_file.txt cat ${BUILD_PREFIX}/meson_cross_file.txt + + rm $PREFIX/bin/glib-mkenums + ln -s $BUILD_PREFIX/bin/glib-mkenums $PREFIX/bin/glib-mkenums fi fi if [[ "${target_platform}" == "osx-"* ]]; then From 3f9b56077fb6acf16a1a489a045aed971cb149a3 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 27 May 2025 14:45:38 +0200 Subject: [PATCH 09/27] .. --- recipe/install_gstreamer.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/install_gstreamer.sh b/recipe/install_gstreamer.sh index 9859ca8..06ab8c6 100644 --- a/recipe/install_gstreamer.sh +++ b/recipe/install_gstreamer.sh @@ -10,7 +10,7 @@ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$PREFIX/lib/pkgconfig:$BUILD_PREFIX/lib/ EXTRA_FLAGS="-Dintrospection=enabled" if [[ $CONDA_BUILD_CROSS_COMPILATION == "1" ]]; then # Use Meson cross-file flag to enable cross compilation - EXTRA_FLAGS="--cross-file $BUILD_PREFIX/meson_cross_file.txt -Dintrospection=disabled" + EXTRA_FLAGS="--cross-file $BUILD_PREFIX/meson_cross_file.txt -Dintrospection=enabled" if [[ "${target_platform}" == "osx-arm64" ]]; then echo "objcpp = '${CXX}'" >> ${BUILD_PREFIX}/meson_cross_file.txt cat ${BUILD_PREFIX}/meson_cross_file.txt From dddc05b51b58c3d5fa39d3d0e9c8d02ce71c0759 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Thu, 29 May 2025 09:20:48 +0200 Subject: [PATCH 10/27] MNT: Re-rendered with conda-build 25.4.2, conda-smithy 3.48.1, and conda-forge-pinning 2025.05.28.11.40.02 --- .azure-pipelines/azure-pipelines-osx.yml | 37 --------- .ci_support/osx_arm64_.yaml | 2 + .github/workflows/conda-build.yml | 100 +++++++++++++++++++++++ .scripts/run_osx_build.sh | 38 ++++----- README.md | 25 ------ azure-pipelines.yml | 31 ------- pixi.toml | 53 ++++++++++++ 7 files changed, 169 insertions(+), 117 deletions(-) delete mode 100755 .azure-pipelines/azure-pipelines-osx.yml create mode 100644 .github/workflows/conda-build.yml delete mode 100644 azure-pipelines.yml create mode 100644 pixi.toml diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml deleted file mode 100755 index 106f551..0000000 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ /dev/null @@ -1,37 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: osx - pool: - vmImage: macOS-13 - strategy: - matrix: - osx_arm64_: - CONFIG: osx_arm64_ - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: {} - - steps: - # TODO: Fast finish on azure pipelines? - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export OSX_FORCE_SDK_DOWNLOAD="1" - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - ./.scripts/run_osx_build.sh - displayName: Run OSX build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index a359803..e9f2123 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -18,6 +18,8 @@ cxx_compiler: - clangxx cxx_compiler_version: - '18' +github_actions_labels: +- cirun-macos-m4-large glib: - '2' gst_plugins_base: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml new file mode 100644 index 0000000..ce70f09 --- /dev/null +++ b/.github/workflows/conda-build.yml @@ -0,0 +1,100 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +name: Build conda package +on: + push: + + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +jobs: + build: + name: ${{ matrix.CONFIG }} + runs-on: ${{ matrix.runs_on }} + timeout-minutes: 360 + strategy: + fail-fast: false + matrix: + include: + - CONFIG: osx_arm64_ + UPLOAD_PACKAGES: True + os: macos + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'macOS', 'arm64', 'self-hosted'] + steps: + + - name: Checkout code + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + + - name: Build on Linux + if: matrix.os == 'ubuntu' + env: + CONFIG: ${{ matrix.CONFIG }} + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} + CI: github_actions + CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.CONDA_FORGE_DOCKER_RUN_ARGS }}" + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + shell: bash + run: | + echo "::group::Configure binfmt_misc" + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + echo "::endgroup::" + ./.scripts/run_docker_build.sh + + - name: Build on macOS + if: matrix.os == 'macos' + env: + CONFIG: ${{ matrix.CONFIG }} + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + CI: github_actions + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + shell: bash + run: | + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + ./.scripts/run_osx_build.sh + + - name: Build on windows + shell: cmd + run: | + set "flow_run_id=github_%GITHUB_RUN_ID%" + set "remote_url=https://github.com/%GITHUB_REPOSITORY%" + set "sha=%GITHUB_SHA%" + call ".scripts\run_win_build.bat" + env: + MINIFORGE_HOME: D:\Miniforge + PYTHONUNBUFFERED: 1 + CONFIG: ${{ matrix.CONFIG }} + CI: github_actions + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + if: matrix.os == 'windows' \ No newline at end of file diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index a9efc3e..1d78eef 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -9,34 +9,24 @@ set -xe MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" - -( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" +( startgroup "Provisioning base env with pixi" ) 2> /dev/null +mkdir -p "${MINIFORGE_HOME}" +curl -fsSL https://pixi.sh/install.sh | bash +export PATH="~/.pixi/bin:$PATH" +arch=$(uname -m) +if [[ "$arch" == "x86_64" ]]; then + arch="64" fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" -MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" -echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -chmod +x "${micromamba_exe}" +sed -i.bak "s/platforms = .*/platforms = [\"osx-${arch}\"]/" pixi.toml echo "Creating environment" -"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ - --channel conda-forge \ - pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" -echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" -mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" -echo "Cleaning up micromamba" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true -( endgroup "Provisioning base env with micromamba" ) 2> /dev/null +pixi install +pixi list +echo "Activating environment" +eval "$(pixi shell-hook)" +mv pixi.toml.bak pixi.toml +( endgroup "Provisioning base env with pixi" ) 2> /dev/null ( startgroup "Configuring conda" ) 2> /dev/null -echo "Activating environment" -source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" -conda activate base export CONDA_SOLVER="libmamba" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 diff --git a/README.md b/README.md index 5874c1a..bcf707f 100644 --- a/README.md +++ b/README.md @@ -59,31 +59,6 @@ Current build status
VariantStatus
osx_64osx_arm64 - variant + variant
- - - - -
Azure -
- - - - - - - - - - - - -
VariantStatus
osx_arm64 - - variant - -
-
-
Current release info diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index a13f0ae..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,31 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -stages: -- stage: Check - jobs: - - job: Skip - pool: - vmImage: 'ubuntu-22.04' - variables: - DECODE_PERCENTS: 'false' - RET: 'true' - steps: - - checkout: self - fetchDepth: '2' - - bash: | - git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` - echo "##vso[task.setvariable variable=log]$git_log" - displayName: Obtain commit message - - bash: echo "##vso[task.setvariable variable=RET]false" - condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) - displayName: Skip build? - - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" - name: result - displayName: Export result -- stage: Build - condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) - dependsOn: Check - jobs: - - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 0000000..04705d7 --- /dev/null +++ b/pixi.toml @@ -0,0 +1,53 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: toml -*- + +# VVVVVV minimum `pixi` version +"$schema" = "https://pixi.sh/v0.36.0/schema/manifest/schema.json" + +[project] +name = "gstreamer-feedstock" +version = "3.48.1" # conda-smithy version used to generate this file +description = "Pixi configuration for conda-forge/gstreamer-feedstock" +authors = ["@conda-forge/gstreamer"] +channels = ["conda-forge"] +platforms = ["linux-64", "linux-aarch64", "linux-ppc64le", "osx-64", "osx-arm64", "win-64"] + +[dependencies] +conda-build = ">=24.1" +conda-forge-ci-setup = "4.*" +rattler-build = "*" + +[tasks] +[tasks.inspect-all] +cmd = "inspect_artifacts --all-packages" +description = "List contents of all packages found in rattler-build build directory." +[tasks.build] +cmd = "rattler-build build --recipe recipe" +description = "Build gstreamer-feedstock directly (without setup scripts), no particular variant specified" +[tasks."build-osx_arm64_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_.yaml" +description = "Build gstreamer-feedstock with variant osx_arm64_ directly (without setup scripts)" +[tasks."inspect-osx_arm64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_.yaml" +description = "List contents of gstreamer-feedstock packages built for variant osx_arm64_" + +[feature.smithy.dependencies] +conda-smithy = "*" +[feature.smithy.tasks.build-locally] +cmd = "python ./build-locally.py" +description = "Build packages locally using the same setup scripts used in conda-forge's CI" +[feature.smithy.tasks.smithy] +cmd = "conda-smithy" +description = "Run conda-smithy. Pass necessary arguments." +[feature.smithy.tasks.rerender] +cmd = "conda-smithy rerender" +description = "Rerender the feedstock." +[feature.smithy.tasks.lint] +cmd = "conda-smithy lint --conda-forge recipe" +description = "Lint the feedstock recipe" + +[environments] +smithy = ["smithy"] +# This is a copy of default, to be enabled by build_steps.sh during Docker builds +# __PLATFORM_SPECIFIC_ENV__ = [] From 469d35ab4c68a2f4a53cf7fbd0ff0868ca5f60b1 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Thu, 29 May 2025 09:20:51 +0200 Subject: [PATCH 11/27] .. --- conda-forge.yml | 11 +++++++++-- recipe/conda_build_config.yaml | 2 ++ recipe/recipe.yaml | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index 3bfbefe..224b900 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,7 +1,6 @@ build_platform: linux_aarch64: linux_aarch64 linux_ppc64le: linux_ppc64le - osx_arm64: osx_64 conda_build: pkg_format: '2' conda_forge_output_validation: true @@ -13,5 +12,13 @@ os_version: provider: linux_aarch64: azure linux_ppc64le: azure + osx_arm64: github_actions test: native_and_emulated -conda_build_tool: rattler-build \ No newline at end of file +conda_build_tool: rattler-build +conda_install_tool: pixi +github_actions: + self_hosted: true + timeout_minutes: 360 + triggers: + - push + - pull_request diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 67a0c12..7edef23 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -1,3 +1,5 @@ # Needed for kAudioObjectPropertyElementMain MACOSX_SDK_VERSION: # [osx] - '12.3' # [osx] +github_actions_labels: # [osx and arm64] +- cirun-macos-m4-large # [osx and arm64] diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 75a5dcc..b3c23b7 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -47,6 +47,7 @@ outputs: - glib - libiconv - zlib + - gobject-introspection - if: not linux then: - libintl-devel From b474daf7a5a204f3f028b9898ccfc658a685fb18 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Thu, 29 May 2025 18:18:44 +0200 Subject: [PATCH 12/27] trigger From 684314863907dfab5b94720364d02385b17da3f7 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Thu, 29 May 2025 18:23:54 +0200 Subject: [PATCH 13/27] fix --- .github/workflows/conda-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index ce70f09..7918e9e 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -24,7 +24,7 @@ jobs: - CONFIG: osx_arm64_ UPLOAD_PACKAGES: True os: macos - runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'macOS', 'arm64', 'self-hosted'] + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'osx', 'arm64'] steps: - name: Checkout code From a280936ca13036282a031a1d190b898935238765 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Fri, 30 May 2025 07:23:43 +0200 Subject: [PATCH 14/27] set sdk dir --- .scripts/run_osx_build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 1d78eef..7d92dbd 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -5,7 +5,7 @@ source .scripts/logging_utils.sh set -xe - +export OSX_SDK_DIR="~/sdk" MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" From 4fd64452f469caecd18e1ebffb60cf1f71f5f182 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Fri, 30 May 2025 07:39:02 +0200 Subject: [PATCH 15/27] try to expand `~` --- .scripts/run_osx_build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 7d92dbd..9edf28e 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -5,7 +5,7 @@ source .scripts/logging_utils.sh set -xe -export OSX_SDK_DIR="~/sdk" +export OSX_SDK_DIR=~/sdk MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" From 6b106df61616fdf510cc0748841d4420185dceeb Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Fri, 30 May 2025 08:21:11 +0200 Subject: [PATCH 16/27] more debugging --- recipe/install_gstreamer.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/recipe/install_gstreamer.sh b/recipe/install_gstreamer.sh index 06ab8c6..121dd47 100644 --- a/recipe/install_gstreamer.sh +++ b/recipe/install_gstreamer.sh @@ -19,6 +19,7 @@ if [[ $CONDA_BUILD_CROSS_COMPILATION == "1" ]]; then ln -s $BUILD_PREFIX/bin/glib-mkenums $PREFIX/bin/glib-mkenums fi fi + if [[ "${target_platform}" == "osx-"* ]]; then export OBJCXX=${CXX} export OBJCXX_FOR_BUILD=${CXX_FOR_BUILD} @@ -39,3 +40,12 @@ ninja install # remove gdb files rm -rf $PREFIX/share/gdb rm -rf $PREFIX/share/gstreamer-1.0/gdb + +# check if an arm64 file +file $PREFIX/bin/gst-inspect-1.0 + +otool -l $PREFIX/bin/gst-inspect-1.0 +otool -L $PREFIX/bin/gst-inspect-1.0 + +# print more debug info about the file +$PREFIX/bin/gst-inspect-1.0 --version \ No newline at end of file From 9586ca34556f0927f67cd08b5d7c0932b38bf31c Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 07:04:04 +0200 Subject: [PATCH 17/27] try some more --- recipe/install_gstreamer.sh | 25 +++++++++++++------------ recipe/recipe.yaml | 4 +++- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/recipe/install_gstreamer.sh b/recipe/install_gstreamer.sh index 121dd47..84779d5 100644 --- a/recipe/install_gstreamer.sh +++ b/recipe/install_gstreamer.sh @@ -8,17 +8,18 @@ pushd build export XDG_DATA_DIRS=${XDG_DATA_DIRS}:$PREFIX/share:$BUILD_PREFIX/share export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$PREFIX/lib/pkgconfig:$BUILD_PREFIX/lib/pkgconfig EXTRA_FLAGS="-Dintrospection=enabled" -if [[ $CONDA_BUILD_CROSS_COMPILATION == "1" ]]; then - # Use Meson cross-file flag to enable cross compilation - EXTRA_FLAGS="--cross-file $BUILD_PREFIX/meson_cross_file.txt -Dintrospection=enabled" - if [[ "${target_platform}" == "osx-arm64" ]]; then - echo "objcpp = '${CXX}'" >> ${BUILD_PREFIX}/meson_cross_file.txt - cat ${BUILD_PREFIX}/meson_cross_file.txt - - rm $PREFIX/bin/glib-mkenums - ln -s $BUILD_PREFIX/bin/glib-mkenums $PREFIX/bin/glib-mkenums - fi -fi + +# if [[ $CONDA_BUILD_CROSS_COMPILATION == "1" ]]; then +# # Use Meson cross-file flag to enable cross compilation +# EXTRA_FLAGS="--cross-file $BUILD_PREFIX/meson_cross_file.txt -Dintrospection=enabled" +# if [[ "${target_platform}" == "osx-arm64" ]]; then +# echo "objcpp = '${CXX}'" >> ${BUILD_PREFIX}/meson_cross_file.txt +# cat ${BUILD_PREFIX}/meson_cross_file.txt + +# rm $PREFIX/bin/glib-mkenums +# ln -s $BUILD_PREFIX/bin/glib-mkenums $PREFIX/bin/glib-mkenums +# fi +# fi if [[ "${target_platform}" == "osx-"* ]]; then export OBJCXX=${CXX} @@ -27,7 +28,7 @@ fi export PKG_CONFIG=$(which pkg-config) -meson ${MESON_ARGS} \ +meson setup ${MESON_ARGS} \ $EXTRA_FLAGS \ -Dptp-helper-permissions=none \ -Dexamples=disabled \ diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index b3c23b7..86a59e6 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -16,7 +16,8 @@ source: sha256: d864b9aec28c3a80895468c909dd303e5f22f92d6e2b1137f80e2a1454584339 target_directory: plugins_good patches: - - jpeg-win.patch # [win] + - if: win + then: jpeg-win.patch build: number: 0 @@ -64,6 +65,7 @@ outputs: run: - ${{ pin_compatible("glib") }} # required for anything that builds against GStreamer, e.g. Qt + tests: - package_contents: lib: From 88e18fa7925bc9565b1e296bde3557a0c9c407de Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 07:17:32 +0200 Subject: [PATCH 18/27] MNT: Re-rendered with conda-build 25.5.0, conda-smithy 3.50.0, and conda-forge-pinning 2025.05.30.22.36.22 --- .github/workflows/conda-build.yml | 8 +++++--- .scripts/run_osx_build.sh | 2 +- pixi.toml | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 7918e9e..5ddb553 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -24,7 +24,7 @@ jobs: - CONFIG: osx_arm64_ UPLOAD_PACKAGES: True os: macos - runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'osx', 'arm64'] + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'macOS', 'arm64', 'self-hosted'] steps: - name: Checkout code @@ -43,8 +43,10 @@ jobs: STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} shell: bash run: | - echo "::group::Configure binfmt_misc" - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + if [[ "$(uname -m)" == "x86_64" ]]; then + echo "::group::Configure binfmt_misc" + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + fi export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 9edf28e..1d78eef 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -5,7 +5,7 @@ source .scripts/logging_utils.sh set -xe -export OSX_SDK_DIR=~/sdk + MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" diff --git a/pixi.toml b/pixi.toml index 04705d7..ff40d54 100644 --- a/pixi.toml +++ b/pixi.toml @@ -7,7 +7,7 @@ [project] name = "gstreamer-feedstock" -version = "3.48.1" # conda-smithy version used to generate this file +version = "3.50.0" # conda-smithy version used to generate this file description = "Pixi configuration for conda-forge/gstreamer-feedstock" authors = ["@conda-forge/gstreamer"] channels = ["conda-forge"] From 35bf2f7031ee64953532cfae698f22902ff57cfd Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 07:18:49 +0200 Subject: [PATCH 19/27] .. --- .github/workflows/conda-build.yml | 2 +- .scripts/run_osx_build.sh | 2 +- recipe/recipe.yaml | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 5ddb553..ac8c5c4 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -24,7 +24,7 @@ jobs: - CONFIG: osx_arm64_ UPLOAD_PACKAGES: True os: macos - runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'macOS', 'arm64', 'self-hosted'] + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'osx', 'arm64'] steps: - name: Checkout code diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 1d78eef..9edf28e 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -5,7 +5,7 @@ source .scripts/logging_utils.sh set -xe - +export OSX_SDK_DIR=~/sdk MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 86a59e6..a7a27c9 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -244,9 +244,6 @@ outputs: # - ${{ pin_subpackage('gstreamer', exact=True) }} # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} - - gstreamer - - gst-plugins-base - - if: not ppc64le then: - libsoup From aad0d9fe8cf1ee9f89c54bcc7a314303ec193152 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 07:34:11 +0200 Subject: [PATCH 20/27] .. --- .azure-pipelines/azure-pipelines-osx.yml | 37 +++++++++++++++++++ .ci_support/osx_64_.yaml | 47 ++++++++++++++++++++++++ README.md | 32 ++++++++++++++++ azure-pipelines.yml | 31 ++++++++++++++++ pixi.toml | 6 +++ recipe/conda_build_config.yaml | 2 + recipe/recipe.yaml | 2 +- 7 files changed, 156 insertions(+), 1 deletion(-) create mode 100755 .azure-pipelines/azure-pipelines-osx.yml create mode 100644 .ci_support/osx_64_.yaml create mode 100644 azure-pipelines.yml diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml new file mode 100755 index 0000000..215eeeb --- /dev/null +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -0,0 +1,37 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: osx + pool: + vmImage: macOS-13 + strategy: + matrix: + osx_64_: + CONFIG: osx_64_ + UPLOAD_PACKAGES: 'True' + timeoutInMinutes: 360 + variables: {} + + steps: + # TODO: Fast finish on azure pipelines? + - script: | + export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) + export OSX_FORCE_SDK_DOWNLOAD="1" + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + ./.scripts/run_osx_build.sh + displayName: Run OSX build + env: + BINSTAR_TOKEN: $(BINSTAR_TOKEN) + FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml new file mode 100644 index 0000000..fc50e78 --- /dev/null +++ b/.ci_support/osx_64_.yaml @@ -0,0 +1,47 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.13' +MACOSX_SDK_VERSION: +- '12.3' +c_compiler: +- clang +c_compiler_version: +- '18' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '18' +glib: +- '2' +gst_plugins_base: +- '1.24' +libiconv: +- '1' +libjpeg_turbo: +- '3' +libpng: +- '1.6' +libsoup: +- '3' +libxml2: +- '2.13' +macos_machine: +- x86_64-apple-darwin13.4.0 +mpg123: +- '1.32' +openssl: +- '3' +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +zlib: +- '1' diff --git a/README.md b/README.md index bcf707f..806ee01 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,38 @@ Current build status + + + + +
Azure +
+ + + + + + + + + + + + + + + +
VariantStatus
osx_64 + + variant + +
osx_arm64 + + variant + +
+
+
Current release info diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..a13f0ae --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,31 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +stages: +- stage: Check + jobs: + - job: Skip + pool: + vmImage: 'ubuntu-22.04' + variables: + DECODE_PERCENTS: 'false' + RET: 'true' + steps: + - checkout: self + fetchDepth: '2' + - bash: | + git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` + echo "##vso[task.setvariable variable=log]$git_log" + displayName: Obtain commit message + - bash: echo "##vso[task.setvariable variable=RET]false" + condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) + displayName: Skip build? + - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" + name: result + displayName: Export result +- stage: Build + condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) + dependsOn: Check + jobs: + - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file diff --git a/pixi.toml b/pixi.toml index ff40d54..9aa4f2e 100644 --- a/pixi.toml +++ b/pixi.toml @@ -25,6 +25,12 @@ description = "List contents of all packages found in rattler-build build direct [tasks.build] cmd = "rattler-build build --recipe recipe" description = "Build gstreamer-feedstock directly (without setup scripts), no particular variant specified" +[tasks."build-osx_64_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_.yaml" +description = "Build gstreamer-feedstock with variant osx_64_ directly (without setup scripts)" +[tasks."inspect-osx_64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_.yaml" +description = "List contents of gstreamer-feedstock packages built for variant osx_64_" [tasks."build-osx_arm64_"] cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_.yaml" description = "Build gstreamer-feedstock with variant osx_arm64_ directly (without setup scripts)" diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 7edef23..d8f4fd5 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -3,3 +3,5 @@ MACOSX_SDK_VERSION: # [osx] - '12.3' # [osx] github_actions_labels: # [osx and arm64] - cirun-macos-m4-large # [osx and arm64] +# CONDA_BUILD_SYSROOT: +# - "/Users/wolfv/sdk/MacOSX12.3.sdk" \ No newline at end of file diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index a7a27c9..a1da13a 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -21,7 +21,7 @@ source: build: number: 0 - skip: not target_platform == "osx-arm64" + skip: not osx outputs: - package: From 40ee5f47cf97f8e11bbad630d3c5ec155429628b Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 07:59:05 +0200 Subject: [PATCH 21/27] run on github --- .github/workflows/conda-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index ac8c5c4..1c583d7 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -24,7 +24,7 @@ jobs: - CONFIG: osx_arm64_ UPLOAD_PACKAGES: True os: macos - runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'osx', 'arm64'] + runs_on: macos-latest steps: - name: Checkout code From 493694b7b313d0aec8b1a851f0b91e7f770c3088 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 08:56:56 +0200 Subject: [PATCH 22/27] try something --- recipe/install_gstreamer.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipe/install_gstreamer.sh b/recipe/install_gstreamer.sh index 84779d5..2d9aa14 100644 --- a/recipe/install_gstreamer.sh +++ b/recipe/install_gstreamer.sh @@ -48,5 +48,9 @@ file $PREFIX/bin/gst-inspect-1.0 otool -l $PREFIX/bin/gst-inspect-1.0 otool -L $PREFIX/bin/gst-inspect-1.0 +export GST_VAAPI_ALL_DRIVERS=0 +export GST_GL_PLATFORM=glx +export GST_GL_API=opengl + # print more debug info about the file $PREFIX/bin/gst-inspect-1.0 --version \ No newline at end of file From fb983aadcd349b97ddd766a23942e6a4896777ea Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 08:57:18 +0200 Subject: [PATCH 23/27] .. --- recipe/recipe.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index a1da13a..0b3db61 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -80,6 +80,10 @@ outputs: - "**/lib/girepository-1.0/GstCheck-1.0.typelib" - script: + - export GST_VAAPI_ALL_DRIVERS=0 + - export GST_GL_PLATFORM=glx + - export GST_GL_API=opengl + - gst-inspect-1.0 --version - gst-launch-1.0 --version - gst-stats-1.0 --version From ef78dda4294364024f7aa62113a1be2a632a3720 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sat, 31 May 2025 17:33:23 +0200 Subject: [PATCH 24/27] try cirun again --- .github/workflows/conda-build.yml | 2 +- recipe/recipe.yaml | 52 ++++++++++++++++++------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 1c583d7..ac8c5c4 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -24,7 +24,7 @@ jobs: - CONFIG: osx_arm64_ UPLOAD_PACKAGES: True os: macos - runs_on: macos-latest + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_', 'osx', 'arm64'] steps: - name: Checkout code diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 0b3db61..cd39e1a 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -80,9 +80,11 @@ outputs: - "**/lib/girepository-1.0/GstCheck-1.0.typelib" - script: - - export GST_VAAPI_ALL_DRIVERS=0 - - export GST_GL_PLATFORM=glx - - export GST_GL_API=opengl + - if: target_platform == "osx-arm64" + then: + - export GST_VAAPI_ALL_DRIVERS=0 + - export GST_GL_PLATFORM=glx + - export GST_GL_API=opengl - gst-inspect-1.0 --version - gst-launch-1.0 --version @@ -96,6 +98,7 @@ outputs: - package: name: gst-plugins-base + build: script: install_base_plugins # activate_in_script: true @@ -151,24 +154,29 @@ outputs: - ${{ pin_subpackage('gst-plugins-base', upper_bound='x.x') }} tests: - # - package_contents: - # lib: - # - if: unix - # then: - # - gstreamer-1.0/libgstapp-1.0.* - # - gstreamer-1.0/libgstaudio-1.0.* - # - gstreamer-1.0/libgstfft-1.0.* - # - gstreamer-1.0/libgstpbutils-1.0.* - # - gstreamer-1.0/libgstriff-1.0.* - # - gstreamer-1.0/libgstrtp-1.0.* - # - gstreamer-1.0/libgstrtsp-1.0.* - # - gstreamer-1.0/libgstsdp-1.0.* - # - gstreamer-1.0/libgsttag-1.0.* - # - gstreamer-1.0/libgstvideo-1.0.* - - # - gstreamer-1.0/${{ "lib" if unix }}gstallocators-1.0.* - # - girepository-1.0/GstVideo-1.0.typelib + - package_contents: + lib: + - if: unix + then: + - gstreamer-1.0/libgstapp-1.0.* + - gstreamer-1.0/libgstaudio-1.0.* + - gstreamer-1.0/libgstfft-1.0.* + - gstreamer-1.0/libgstpbutils-1.0.* + - gstreamer-1.0/libgstriff-1.0.* + - gstreamer-1.0/libgstrtp-1.0.* + - gstreamer-1.0/libgstrtsp-1.0.* + - gstreamer-1.0/libgstsdp-1.0.* + - gstreamer-1.0/libgsttag-1.0.* + - gstreamer-1.0/libgstvideo-1.0.* + + - gstreamer-1.0/${{ "lib" if unix }}gstallocators-1.0.* + - girepository-1.0/GstVideo-1.0.typelib - script: + - if: target_platform == "osx-arm64" + then: + - export GST_VAAPI_ALL_DRIVERS=0 + - export GST_GL_PLATFORM=glx + - export GST_GL_API=opengl - gst-inspect-1.0 --plugin volume about: @@ -245,8 +253,8 @@ outputs: - ${{ pin_subpackage('gst-plugins-good', upper_bound='x.x') }} run: - # - ${{ pin_subpackage('gstreamer', exact=True) }} - # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} + - ${{ pin_subpackage('gstreamer', exact=True) }} + - ${{ pin_subpackage('gst-plugins-base', exact=True) }} - if: not ppc64le then: From 4468c05ac71573b4b35a2f4298d89972320b3c70 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Sun, 1 Jun 2025 08:28:20 +0200 Subject: [PATCH 25/27] test artifact locally perhaps --- .github/workflows/conda-build.yml | 9 + recipe/recipe.yaml | 414 +++++++++++++++--------------- 2 files changed, 216 insertions(+), 207 deletions(-) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index ac8c5c4..27801cb 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -83,6 +83,15 @@ jobs: fi ./.scripts/run_osx_build.sh + # Upload all conda packages as Github artifacts + - name: Upload conda packages + if: matrix.os == 'macos' || matrix.os == 'ubuntu' + uses: actions/upload-artifact@v3 + with: + name: conda-packages-${{ matrix.CONFIG }} + path: /Users/runnerx/miniforge3/conda-bld/**/*.conda + retention-days: 7 + - name: Build on windows shell: cmd run: | diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index cd39e1a..af1ed11 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -79,219 +79,219 @@ outputs: - "**/lib/girepository-1.0/Gst-1.0.typelib" - "**/lib/girepository-1.0/GstCheck-1.0.typelib" - - script: - - if: target_platform == "osx-arm64" - then: - - export GST_VAAPI_ALL_DRIVERS=0 - - export GST_GL_PLATFORM=glx - - export GST_GL_API=opengl - - - gst-inspect-1.0 --version - - gst-launch-1.0 --version - - gst-stats-1.0 --version - - gst-typefind-1.0 --version + # - script: + # - if: target_platform == "osx-arm64" + # then: + # - export GST_VAAPI_ALL_DRIVERS=0 + # - export GST_GL_PLATFORM=glx + # - export GST_GL_API=opengl + + # - gst-inspect-1.0 --version + # - gst-launch-1.0 --version + # - gst-stats-1.0 --version + # - gst-typefind-1.0 --version about: summary: Library for constructing graphs of media-handling components license: LGPL-2.0-or-later license_file: COPYING - - package: - name: gst-plugins-base - - build: - script: install_base_plugins - # activate_in_script: true - - requirements: - build: - - ${{ compiler('c') }} - - ${{ stdlib('c') }} - - ${{ compiler('cxx') }} - - pkg-config - - meson - - ninja - - gettext-tools - - gobject-introspection - host: - - ${{ pin_subpackage('gstreamer', exact=True) }} - - glib - - zlib - - libogg - - libvorbis - - - if: not linux - then: - - libintl-devel - - if: unix - then: - - libpng - - libopus - - if: linux - then: - - libxcb - - alsa-lib - - libgl-devel - - libegl-devel - - libdrm - - expat - - xorg-libxfixes - - xorg-libxext - - xorg-xorgproto - - xorg-libx11 - - xorg-libxrender - - xorg-libxdamage - - xorg-libxxf86vm - - xorg-libxau - - xorg-libxshmfence - - run: - - ${{ pin_subpackage('gstreamer', exact=True) }} - - run_exports: - # remove symbols at .90 patch releases just before minor versions? - # https://abi-laboratory.pro/tracker/timeline/gstreamer/ - - ${{ pin_subpackage('gst-plugins-base', upper_bound='x.x') }} - - tests: - - package_contents: - lib: - - if: unix - then: - - gstreamer-1.0/libgstapp-1.0.* - - gstreamer-1.0/libgstaudio-1.0.* - - gstreamer-1.0/libgstfft-1.0.* - - gstreamer-1.0/libgstpbutils-1.0.* - - gstreamer-1.0/libgstriff-1.0.* - - gstreamer-1.0/libgstrtp-1.0.* - - gstreamer-1.0/libgstrtsp-1.0.* - - gstreamer-1.0/libgstsdp-1.0.* - - gstreamer-1.0/libgsttag-1.0.* - - gstreamer-1.0/libgstvideo-1.0.* - - - gstreamer-1.0/${{ "lib" if unix }}gstallocators-1.0.* - - girepository-1.0/GstVideo-1.0.typelib - - script: - - if: target_platform == "osx-arm64" - then: - - export GST_VAAPI_ALL_DRIVERS=0 - - export GST_GL_PLATFORM=glx - - export GST_GL_API=opengl - - gst-inspect-1.0 --plugin volume - - about: - summary: GStreamer Base Plug-ins - description: | - GStreamer Base Plug-ins is a well-groomed and well-maintained collection of - GStreamer plug-ins and elements, spanning the range of possible types of - elements one would want to write for GStreamer. - license: LGPL-2.0-or-later - license_file: COPYING - - - package: - name: gst-plugins-good - build: - script: install_good_plugins - - requirements: - build: - - ${{ compiler('c') }} - - ${{ stdlib('c') }} - - ${{ compiler('cxx') }} - - pkg-config - - meson - - ninja - - gettext-tools - host: - # TODO pin_subpackage not working here with `conda-smithy` - # - ${{ pin_subpackage('gstreamer', exact=True) }} - # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} - - gstreamer - - gst-plugins-base - - - openssl - - libxml2 - - glib - - zlib - - libjpeg-turbo - - - ${{ "libsoup" if not ppc64le }} - - ${{ "libintl-devel" if not linux }} - - - if: unix - then: - - lame - - libpng - - mpg123 - - - if: linux - then: - - pulseaudio-client - - libgl-devel - - libegl-devel - - libdrm - - libxcb - - jack >=1.9.7 - - bzip2 - - libxml2 - - expat - - xorg-xorgproto - - xorg-libxfixes - - xorg-libxext - - xorg-libx11 - - xorg-libxrender - - xorg-libxdamage - - xorg-libxxf86vm - - xorg-libxau - - xorg-libxshmfence - - ignore_run_exports: - from_package: - - python - - run_exports: - - ${{ pin_subpackage('gst-plugins-good', upper_bound='x.x') }} - - run: - - ${{ pin_subpackage('gstreamer', exact=True) }} - - ${{ pin_subpackage('gst-plugins-base', exact=True) }} - - - if: not ppc64le - then: - - libsoup - - glib-networking - - if: linux - then: - - xorg-libxfixes - - xorg-libxdamage - - tests: - # - package_contents: - # lib: - # - gstreamer-1.0/${{ "lib" if unix }}gstalpha.* - # - gstreamer-1.0/${{ "lib" if unix }}gstdebug.* - # - gstreamer-1.0/${{ "lib" if unix }}gstjpeg.* - # - gstreamer-1.0/${{ "lib" if unix }}gstlame.* - # - gstreamer-1.0/${{ "lib" if unix }}gstmpg123.* - # - gstreamer-1.0/${{ "lib" if unix }}gstspectrum.* - # - if: linux - # then: - # - gstreamer-1.0/libgstpulseaudio.so - # - gstreamer-1.0/libgstjack.so - - script: - - gst-inspect-1.0 --plugin alpha - - about: - summary: GStreamer Good Plug-ins - description: | - GStreamer Good Plug-ins is A collection of plug-ins you'd - want to have right next to you on the battlefield. - Shooting sharp and making no mistakes, these plug-ins have it - all: good looks, good code, and good licensing. Documented and - dressed up in tests. If you're looking for a role model to - base your own plug-in on here it is. - license: LGPL-2.0-or-later - license_file: COPYING + # - package: + # name: gst-plugins-base + + # build: + # script: install_base_plugins + # # activate_in_script: true + + # requirements: + # build: + # - ${{ compiler('c') }} + # - ${{ stdlib('c') }} + # - ${{ compiler('cxx') }} + # - pkg-config + # - meson + # - ninja + # - gettext-tools + # - gobject-introspection + # host: + # - ${{ pin_subpackage('gstreamer', exact=True) }} + # - glib + # - zlib + # - libogg + # - libvorbis + + # - if: not linux + # then: + # - libintl-devel + # - if: unix + # then: + # - libpng + # - libopus + # - if: linux + # then: + # - libxcb + # - alsa-lib + # - libgl-devel + # - libegl-devel + # - libdrm + # - expat + # - xorg-libxfixes + # - xorg-libxext + # - xorg-xorgproto + # - xorg-libx11 + # - xorg-libxrender + # - xorg-libxdamage + # - xorg-libxxf86vm + # - xorg-libxau + # - xorg-libxshmfence + + # run: + # - ${{ pin_subpackage('gstreamer', exact=True) }} + + # run_exports: + # # remove symbols at .90 patch releases just before minor versions? + # # https://abi-laboratory.pro/tracker/timeline/gstreamer/ + # - ${{ pin_subpackage('gst-plugins-base', upper_bound='x.x') }} + + # tests: + # - package_contents: + # lib: + # - if: unix + # then: + # - gstreamer-1.0/libgstapp-1.0.* + # - gstreamer-1.0/libgstaudio-1.0.* + # - gstreamer-1.0/libgstfft-1.0.* + # - gstreamer-1.0/libgstpbutils-1.0.* + # - gstreamer-1.0/libgstriff-1.0.* + # - gstreamer-1.0/libgstrtp-1.0.* + # - gstreamer-1.0/libgstrtsp-1.0.* + # - gstreamer-1.0/libgstsdp-1.0.* + # - gstreamer-1.0/libgsttag-1.0.* + # - gstreamer-1.0/libgstvideo-1.0.* + + # - gstreamer-1.0/${{ "lib" if unix }}gstallocators-1.0.* + # - girepository-1.0/GstVideo-1.0.typelib + # - script: + # - if: target_platform == "osx-arm64" + # then: + # - export GST_VAAPI_ALL_DRIVERS=0 + # - export GST_GL_PLATFORM=glx + # - export GST_GL_API=opengl + # - gst-inspect-1.0 --plugin volume + + # about: + # summary: GStreamer Base Plug-ins + # description: | + # GStreamer Base Plug-ins is a well-groomed and well-maintained collection of + # GStreamer plug-ins and elements, spanning the range of possible types of + # elements one would want to write for GStreamer. + # license: LGPL-2.0-or-later + # license_file: COPYING + + # - package: + # name: gst-plugins-good + # build: + # script: install_good_plugins + + # requirements: + # build: + # - ${{ compiler('c') }} + # - ${{ stdlib('c') }} + # - ${{ compiler('cxx') }} + # - pkg-config + # - meson + # - ninja + # - gettext-tools + # host: + # # TODO pin_subpackage not working here with `conda-smithy` + # # - ${{ pin_subpackage('gstreamer', exact=True) }} + # # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} + # - gstreamer + # - gst-plugins-base + + # - openssl + # - libxml2 + # - glib + # - zlib + # - libjpeg-turbo + + # - ${{ "libsoup" if not ppc64le }} + # - ${{ "libintl-devel" if not linux }} + + # - if: unix + # then: + # - lame + # - libpng + # - mpg123 + + # - if: linux + # then: + # - pulseaudio-client + # - libgl-devel + # - libegl-devel + # - libdrm + # - libxcb + # - jack >=1.9.7 + # - bzip2 + # - libxml2 + # - expat + # - xorg-xorgproto + # - xorg-libxfixes + # - xorg-libxext + # - xorg-libx11 + # - xorg-libxrender + # - xorg-libxdamage + # - xorg-libxxf86vm + # - xorg-libxau + # - xorg-libxshmfence + + # ignore_run_exports: + # from_package: + # - python + + # run_exports: + # - ${{ pin_subpackage('gst-plugins-good', upper_bound='x.x') }} + + # run: + # - ${{ pin_subpackage('gstreamer', exact=True) }} + # - ${{ pin_subpackage('gst-plugins-base', exact=True) }} + + # - if: not ppc64le + # then: + # - libsoup + # - glib-networking + # - if: linux + # then: + # - xorg-libxfixes + # - xorg-libxdamage + + # tests: + # # - package_contents: + # # lib: + # # - gstreamer-1.0/${{ "lib" if unix }}gstalpha.* + # # - gstreamer-1.0/${{ "lib" if unix }}gstdebug.* + # # - gstreamer-1.0/${{ "lib" if unix }}gstjpeg.* + # # - gstreamer-1.0/${{ "lib" if unix }}gstlame.* + # # - gstreamer-1.0/${{ "lib" if unix }}gstmpg123.* + # # - gstreamer-1.0/${{ "lib" if unix }}gstspectrum.* + # # - if: linux + # # then: + # # - gstreamer-1.0/libgstpulseaudio.so + # # - gstreamer-1.0/libgstjack.so + # - script: + # - gst-inspect-1.0 --plugin alpha + + # about: + # summary: GStreamer Good Plug-ins + # description: | + # GStreamer Good Plug-ins is A collection of plug-ins you'd + # want to have right next to you on the battlefield. + # Shooting sharp and making no mistakes, these plug-ins have it + # all: good looks, good code, and good licensing. Documented and + # dressed up in tests. If you're looking for a role model to + # base your own plug-in on here it is. + # license: LGPL-2.0-or-later + # license_file: COPYING about: homepage: https://gstreamer.freedesktop.org/ From ddb7c766ad7e55e2a5a05a935755062b5bb426f4 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Mon, 2 Jun 2025 13:35:52 +1000 Subject: [PATCH 26/27] Fix artifacts issue --- .github/workflows/conda-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 27801cb..4c46aeb 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -86,7 +86,7 @@ jobs: # Upload all conda packages as Github artifacts - name: Upload conda packages if: matrix.os == 'macos' || matrix.os == 'ubuntu' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: conda-packages-${{ matrix.CONFIG }} path: /Users/runnerx/miniforge3/conda-bld/**/*.conda @@ -108,4 +108,4 @@ jobs: BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} - if: matrix.os == 'windows' \ No newline at end of file + if: matrix.os == 'windows' From 361c5523e0571e961a7c7e242a9caa5daed8f1f3 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Mon, 2 Jun 2025 15:11:51 +0200 Subject: [PATCH 27/27] undo failure --- recipe/install_gstreamer.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/recipe/install_gstreamer.sh b/recipe/install_gstreamer.sh index 2d9aa14..0a6cece 100644 --- a/recipe/install_gstreamer.sh +++ b/recipe/install_gstreamer.sh @@ -43,14 +43,14 @@ rm -rf $PREFIX/share/gdb rm -rf $PREFIX/share/gstreamer-1.0/gdb # check if an arm64 file -file $PREFIX/bin/gst-inspect-1.0 +# file $PREFIX/bin/gst-inspect-1.0 -otool -l $PREFIX/bin/gst-inspect-1.0 -otool -L $PREFIX/bin/gst-inspect-1.0 +# otool -l $PREFIX/bin/gst-inspect-1.0 +# otool -L $PREFIX/bin/gst-inspect-1.0 -export GST_VAAPI_ALL_DRIVERS=0 -export GST_GL_PLATFORM=glx -export GST_GL_API=opengl +# export GST_VAAPI_ALL_DRIVERS=0 +# export GST_GL_PLATFORM=glx +# export GST_GL_API=opengl -# print more debug info about the file -$PREFIX/bin/gst-inspect-1.0 --version \ No newline at end of file +# # print more debug info about the file +# $PREFIX/bin/gst-inspect-1.0 --version \ No newline at end of file