diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100755 index aef462c4..00000000 --- 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-cos7-x86_64 - linux_aarch64_: - CONFIG: linux_aarch64_ - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_ppc64le_: - CONFIG: linux_ppc64le_ - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - 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 7708e23e..ac0bf384 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,7 +5,7 @@ jobs: - job: osx pool: - vmImage: macOS-12 + vmImage: macOS-13 strategy: matrix: osx_64_: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml deleted file mode 100755 index d609fcdf..00000000 --- a/.azure-pipelines/azure-pipelines-win.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: win - pool: - vmImage: windows-2022 - strategy: - matrix: - win_64_: - CONFIG: win_64_ - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: - CONDA_BLD_PATH: D:\\bld\\ - UPLOAD_TEMP: D:\\tmp - - steps: - - - task: PythonScript@0 - displayName: 'Download Miniforge' - inputs: - scriptSource: inline - script: | - import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' - path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" - urllib.request.urlretrieve(url, path) - - - script: | - start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge - displayName: Install Miniforge - - - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" - displayName: Add conda to PATH - - - script: | - call ".scripts\run_win_build.bat" - displayName: Run Windows build - env: - 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 ae2c554f..00000000 --- a/.ci_support/linux_64_.yaml +++ /dev/null @@ -1,45 +0,0 @@ -alsa_lib: -- '1.2' -c_compiler: -- gcc -c_compiler_version: -- '12' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.12' -cdt_name: -- cos6 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '12' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -fontconfig: -- '2' -freetype: -- '2' -giflib: -- '5.2' -harfbuzz: -- '9' -lcms2: -- '2' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - c_stdlib_version - - cdt_name -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml deleted file mode 100644 index d7132837..00000000 --- a/.ci_support/linux_aarch64_.yaml +++ /dev/null @@ -1,49 +0,0 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu -alsa_lib: -- '1.2' -c_compiler: -- gcc -c_compiler_version: -- '12' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_arch: -- aarch64 -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '12' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -fontconfig: -- '2' -freetype: -- '2' -giflib: -- '5.2' -harfbuzz: -- '9' -lcms2: -- '2' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -target_platform: -- linux-aarch64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - c_stdlib_version - - cdt_name -zlib: -- '1' diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml deleted file mode 100644 index e5471132..00000000 --- a/.ci_support/linux_ppc64le_.yaml +++ /dev/null @@ -1,45 +0,0 @@ -alsa_lib: -- '1.2' -c_compiler: -- gcc -c_compiler_version: -- '12' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '12' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -fontconfig: -- '2' -freetype: -- '2' -giflib: -- '5.2' -harfbuzz: -- '9' -lcms2: -- '2' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -target_platform: -- linux-ppc64le -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - c_stdlib_version - - cdt_name -zlib: -- '1' diff --git a/.ci_support/migrations/harfbuzz9.yaml b/.ci_support/migrations/harfbuzz9.yaml deleted file mode 100644 index 0216ea65..00000000 --- a/.ci_support/migrations/harfbuzz9.yaml +++ /dev/null @@ -1,8 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for harfbuzz 9 - kind: version - migration_number: 1 -harfbuzz: -- '9' -migrator_ts: 1719592972.538086 diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 2a553a13..ae0c39c6 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -1,11 +1,17 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '10.15' MACOSX_SDK_VERSION: -- '10.13' +- '10.15' +ace: +- 8.0.1 c_compiler: - clang c_compiler_version: -- '16' +- '18' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.15' channel_sources: - conda-forge channel_targets: @@ -13,7 +19,23 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '16' +- '18' +fontconfig: +- '2' +freetype: +- '2' +giflib: +- '5.2' +harfbuzz: +- '9' +lcms2: +- '2' +libiconv: +- '1' +libjpeg_turbo: +- '3' +libpng: +- '1.6' macos_machine: - x86_64-apple-darwin13.4.0 target_platform: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 56a6c9bb..c4d2f457 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -2,10 +2,16 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' MACOSX_SDK_VERSION: - '11.0' +ace: +- 8.0.1 c_compiler: - clang c_compiler_version: -- '16' +- '18' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' channel_sources: - conda-forge channel_targets: @@ -13,7 +19,23 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '16' +- '18' +fontconfig: +- '2' +freetype: +- '2' +giflib: +- '5.2' +harfbuzz: +- '9' +lcms2: +- '2' +libiconv: +- '1' +libjpeg_turbo: +- '3' +libpng: +- '1.6' macos_machine: - arm64-apple-darwin20.0.0 target_platform: diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml deleted file mode 100644 index e7173480..00000000 --- a/.ci_support/win_64_.yaml +++ /dev/null @@ -1,6 +0,0 @@ -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -target_platform: -- win-64 diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml deleted file mode 100644 index 0535f6aa..00000000 --- a/.github/workflows/automerge.yml +++ /dev/null @@ -1,17 +0,0 @@ -on: - status: {} - check_suite: - types: - - completed - -jobs: - automerge-action: - runs-on: ubuntu-latest - name: automerge - steps: - - name: automerge-action - id: automerge-action - uses: conda-forge/automerge-action@main - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} diff --git a/.github/workflows/webservices.yml b/.github/workflows/webservices.yml deleted file mode 100644 index d6f06b5c..00000000 --- a/.github/workflows/webservices.yml +++ /dev/null @@ -1,13 +0,0 @@ -on: repository_dispatch - -jobs: - webservices: - runs-on: ubuntu-latest - name: webservices - steps: - - name: webservices - id: webservices - uses: conda-forge/webservices-dispatch-action@main - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh deleted file mode 100755 index 6e5bc56d..00000000 --- a/.scripts/build_steps.sh +++ /dev/null @@ -1,107 +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 <=24.1" -mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" - -# set up the condarc -setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -source run_conda_forge_build_setup - - -# 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 file - - -# 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:-} --no-test" -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 - 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 -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:-}" - - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" - - ( 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 00f377a8..00000000 --- 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_osx_build.sh b/.scripts/run_osx_build.sh index ba0c8791..0b364984 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -7,28 +7,39 @@ source .scripts/logging_utils.sh set -xe MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} +MINIFORGE_HOME=${MINIFORGE_HOME%/} # remove trailing slash -( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null - -MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh" -curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" -rm -rf ${MINIFORGE_HOME} -bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} - -( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null +( 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" +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}" +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" +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 ( startgroup "Configuring conda" ) 2> /dev/null - -source ${MINIFORGE_HOME}/etc/profile.d/conda.sh +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 -mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \ - pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" + @@ -88,8 +99,8 @@ else ( startgroup "Inspecting artifacts" ) 2> /dev/null - # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + # 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 -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat deleted file mode 100755 index 65650bf2..00000000 --- a/.scripts/run_win_build.bat +++ /dev/null @@ -1,130 +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. - -:: Note: we assume a Miniforge installation is available - -:: INPUTS (required environment variables) -:: CONFIG: name of the .ci_support/*.yaml file for this job -:: CI: azure, github_actions, or unset -:: UPLOAD_PACKAGES: true or false -:: UPLOAD_ON_BRANCH: true or false - -setlocal enableextensions enabledelayedexpansion - -call :start_group "Configuring conda" - -:: Activate the base conda environment -call activate base -:: Configure the solver -set "CONDA_SOLVER=libmamba" -if !errorlevel! neq 0 exit /b !errorlevel! -set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" - -:: Provision the necessary dependencies to build the recipe later -echo Installing dependencies -mamba.exe install "python=3.10" pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes -if !errorlevel! neq 0 exit /b !errorlevel! - -:: 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% --no-test" - ) -) - -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%" -) - -call :end_group - -:: Build the recipe -echo Building recipe -conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% -if !errorlevel! neq 0 exit /b !errorlevel! - -call :start_group "Inspecting artifacts" -:: inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 -WHERE inspect_artifacts >nul 2>nul && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" -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 4e93df94..dcb2151a 100644 --- a/README.md +++ b/README.md @@ -3,27 +3,12 @@ About openjdk-feedstock Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/openjdk-feedstock/blob/main/LICENSE.txt) - -About openjdk -------------- - Home: https://openjdk.java.net Package license: GPL-2.0-or-later WITH Classpath-exception-2.0 Summary: An open-source implementation of the JDK -About openjdk -------------- - -Home: https://www.azul.com/products/zulu/ - -Package license: GPL-2.0-or-later WITH Classpath-exception-2.0 - -Summary: The Zulu OpenJDK build. - -Zulu OpenJDK is an open source build of the Java JDK. - Current build status ==================== @@ -42,27 +27,6 @@ Current build status - - - - - - - - - - - -
VariantStatus
linux_64 - - variant - -
linux_aarch64 - - variant - -
linux_ppc64le - - variant - -
osx_64 @@ -76,13 +40,6 @@ Current build status variant
win_64 - - variant - -
diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e5306da9..a13f0ae2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,7 +2,30 @@ # update the conda-forge.yml and/or the recipe/meta.yaml. # -*- mode: yaml -*- -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 +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/build-locally.py b/build-locally.py index e0d408d0..c4a56c66 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,13 +1,16 @@ -#!/usr/bin/env python3 +#!/bin/sh +"""exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on # # This file has been generated by conda-smithy in order to build the recipe # locally. # -import os +# The line above this comment is a bash / sh / zsh guard +# to stop people from running it with the wrong interpreter import glob +import os +import platform import subprocess from argparse import ArgumentParser -import platform def setup_environment(ns): @@ -23,6 +26,13 @@ def setup_environment(ns): os.path.dirname(__file__), "miniforge3" ) + # The default cache location might not be writable using docker on macOS. + if ns.config.startswith("linux") and platform.system() == "Darwin": + os.environ["CONDA_FORGE_DOCKER_RUN_ARGS"] = ( + os.environ.get("CONDA_FORGE_DOCKER_RUN_ARGS", "") + + " -e RATTLER_CACHE_DIR=/tmp/rattler_cache" + ) + def run_docker_build(ns): script = ".scripts/run_docker_build.sh" diff --git a/recipe/build.sh b/recipe/build.sh index 98d020d2..94bab603 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -1,21 +1,8 @@ #!/bin/bash - set -exuo pipefail JVM_BUILD_LOG_LEVEL=warn -# Remove code signatures from osx-64 binaries as they will be invalidated in the later process. -# TODO: Fix https://github.com/thefloweringash/sigtool to add --remove-signature support -if [[ "${target_platform}" == "osx-64" ]]; then - for b in `ls bin`; do - /usr/bin/codesign --remove-signature bin/$b - done - for b in `ls lib/*.dylib lib/*.dylib.* lib/**/*.dylib`; do - /usr/bin/codesign --remove-signature $b - done - /usr/bin/codesign --remove-signature lib/jspawnhelper -fi - echo "--------------------------------------------------" env | sort echo "--------------------------------------------------" @@ -64,7 +51,7 @@ function jdk_install function source_build { - cd src + cd $SRC_DIR/src chmod +x configure @@ -81,14 +68,33 @@ function source_build export CPATH=$BUILD_PREFIX/include export LIBRARY_PATH=$BUILD_PREFIX/lib - _TOOLCHAIN_ARGS="CC=${CC_FOR_BUILD} CXX=${CXX_FOR_BUILD} CPP=${CXX_FOR_BUILD//+/p}" + _TOOLCHAIN_ARGS="CC=${CC_FOR_BUILD} CXX=${CXX_FOR_BUILD}" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS AR=$BUILD_PREFIX/bin/$BUILD-ar" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_CXXFILT=$BUILD_PREFIX/bin/$BUILD-c++filt" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS NM=$BUILD_PREFIX/bin/$BUILD-nm" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJCOPY=$BUILD_PREFIX/bin/$BUILD-objcopy" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJDUMP=$BUILD_PREFIX/bin/$BUILD-objdump" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS READELF=$BUILD_PREFIX/bin/$BUILD-readelf" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS STRIP=$BUILD_PREFIX/bin/$BUILD-strip" + if [[ "${target_platform}" == linux* ]]; then + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJCOPY=$BUILD_PREFIX/bin/$BUILD-objcopy" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJDUMP=$BUILD_PREFIX/bin/$BUILD-objdump" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS READELF=$BUILD_PREFIX/bin/$BUILD-readelf" + # gcc's preprocessor is called $TRIPLE-cpp, but has no separate `_FOR_BUILD` + # environment variable; it's easily constructed from gxx's $TRIPLE-c++ though + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CPP=${CXX_FOR_BUILD//+/p}" + + CONFIGURE_ARGS="--with-cups=${BUILD_PREFIX}" + CONFIGURE_ARGS="$CONFIGURE_ARGS --with-freetype=system" + else + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/$BUILD-install_name_tool" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS LIPO=$BUILD_PREFIX/bin/$BUILD-lipo" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OTOOL=$BUILD_PREFIX/bin/$BUILD-otool" + # clang has different naming for CC & CPP: $TRIPLE-clang{,-cpp} + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CPP=${CC_FOR_BUILD}-cpp" + + # on osx, cups is in SDK + CONFIGURE_ARGS="--with-cups=${CONDA_BUILD_SYSROOT}/usr" + # system libs not supported for non-linux by openjdk + CONFIGURE_ARGS="$CONFIGURE_ARGS --with-freetype=bundled" + fi export PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig # CFLAGS, CXXFLAGS are intentionally empty @@ -114,8 +120,6 @@ function source_build --with-stdc++lib=dynamic \ --disable-warnings-as-errors \ --with-x=${BUILD_PREFIX} \ - --with-cups=${BUILD_PREFIX} \ - --with-freetype=system \ --with-giflib=system \ --with-libpng=system \ --with-zlib=system \ @@ -124,6 +128,7 @@ function source_build --with-harfbuzz=system \ --with-fontconfig=${BUILD_PREFIX} \ --with-boot-jdk=$SRC_DIR/bootjdk \ + $CONFIGURE_ARGS \ $_TOOLCHAIN_ARGS make JOBS=$CPU_COUNT $_TOOLCHAIN_ARGS images popd @@ -161,22 +166,47 @@ function source_build # We purposefully do NOT include LD here as the openjdk build system resolves that internally from # --build, --host, and --target in conjunction with BUILD_CC and CC - _TOOLCHAIN_ARGS="BUILD_CC=${CC_FOR_BUILD} BUILD_CXX=${CXX_FOR_BUILD} BUILD_CPP=${CXX_FOR_BUILD//+/p}" + _TOOLCHAIN_ARGS="BUILD_CC=${CC_FOR_BUILD} BUILD_CXX=${CXX_FOR_BUILD}" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_AR=$BUILD_PREFIX/bin/$BUILD-ar" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_CXXFILT=$BUILD_PREFIX/bin/$BUILD-c++filt" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_NM=$BUILD_PREFIX/bin/$BUILD-nm" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_OBJCOPY=$BUILD_PREFIX/bin/$BUILD-objcopy" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_OBJDUMP=$BUILD_PREFIX/bin/$BUILD-objdump" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_READELF=$BUILD_PREFIX/bin/$BUILD-readelf" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_STRIP=$BUILD_PREFIX/bin/$BUILD-strip" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CC=${CC} CXX=${CXX} CPP=${CXX//+/p}" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CC=${CC} CXX=${CXX}" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS AR=$BUILD_PREFIX/bin/$HOST-ar" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CXXFILT=$BUILD_PREFIX/bin/$HOST-c++filt" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS NM=$BUILD_PREFIX/bin/$HOST-nm" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJCOPY=$BUILD_PREFIX/bin/$HOST-objcopy" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJDUMP=$BUILD_PREFIX/bin/$HOST-objdump" - _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS READELF=$BUILD_PREFIX/bin/$HOST-readelf" _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS STRIP=$BUILD_PREFIX/bin/$HOST-strip" + if [[ "${target_platform}" == linux* ]]; then + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_CXXFILT=$BUILD_PREFIX/bin/$BUILD-c++filt" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_OBJCOPY=$BUILD_PREFIX/bin/$BUILD-objcopy" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_OBJDUMP=$BUILD_PREFIX/bin/$BUILD-objdump" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_READELF=$BUILD_PREFIX/bin/$BUILD-readelf" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CXXFILT=$BUILD_PREFIX/bin/$HOST-c++filt" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJCOPY=$BUILD_PREFIX/bin/$HOST-objcopy" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OBJDUMP=$BUILD_PREFIX/bin/$HOST-objdump" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS READELF=$BUILD_PREFIX/bin/$HOST-readelf" + # see comment further up + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_CPP=${CXX_FOR_BUILD//+/p}" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CPP=${CXX//+/p}" + + CONFIGURE_ARGS="$CONFIGURE_ARGS --with-cups=${BUILD_PREFIX}" + CONFIGURE_ARGS="$CONFIGURE_ARGS --with-freetype=system" + else + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_CXXFILT=$BUILD_PREFIX/bin/llvm-cxxfilt" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/$BUILD-install_name_tool" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_LIPO=$BUILD_PREFIX/bin/$BUILD-lipo" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_OTOOL=$BUILD_PREFIX/bin/$BUILD-otool" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CXXFILT=$BUILD_PREFIX/bin/llvm-cxxfilt" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/$HOST-install_name_tool" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS LIPO=$BUILD_PREFIX/bin/$HOST-lipo" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS OTOOL=$BUILD_PREFIX/bin/$HOST-otool" + # see comment further up + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS BUILD_CPP=${CC_FOR_BUILD}-cpp" + _TOOLCHAIN_ARGS="$_TOOLCHAIN_ARGS CPP=${CC}-cpp" + + # on osx, cups is in SDK + CONFIGURE_ARGS="$CONFIGURE_ARGS --with-cups=${CONDA_BUILD_SYSROOT}/usr" + # system libs not supported for non-linux by openjdk + CONFIGURE_ARGS="$CONFIGURE_ARGS --with-freetype=bundled" + fi ./configure \ --prefix=$PREFIX \ @@ -188,8 +218,6 @@ function source_build --with-extra-ldflags="$LDFLAGS" \ --with-log=${JVM_BUILD_LOG_LEVEL} \ --with-x=$PREFIX \ - --with-cups=$PREFIX \ - --with-freetype=system \ --with-fontconfig=$PREFIX \ --with-giflib=system \ --with-libpng=system \ @@ -208,14 +236,16 @@ function source_build make JOBS=$CPU_COUNT images $_TOOLCHAIN_ARGS || printerror } -if [[ "$target_platform" == linux* ]]; then - export INSTALL_DIR=$SRC_DIR/bootjdk/ - jdk_install - source_build - cd build/*/images/jdk +export INSTALL_DIR=$SRC_DIR/bootjdk/ +# jdk_install expects `./{bin,include,...}` to exist +if [[ "${target_platform}" == osx* ]]; then + cd ./Contents/Home fi +jdk_install +source_build export INSTALL_DIR=$PREFIX/lib/jvm +cd $SRC_DIR/src/build/*/images/jdk jdk_install # Symlink java binaries @@ -229,15 +259,12 @@ for i in $(find $INSTALL_DIR/man -type f -printf '%P\n'); do ln -s -r -f "$INSTALL_DIR/man/$i" "$PREFIX/man/$i" done -if [[ "$target_platform" == linux* ]]; then - # This is not present on AdoptOpenJDK>=17 and appears to have been replaced with $INSTALL_DIR/libjli.so - # mv $INSTALL_DIR/lib/jli/*.so $INSTALL_DIR/lib/ - - # Include dejavu fonts to allow java to work even on minimal cloud - # images where these fonts are missing (thanks to @chapmanb) - mkdir -p $INSTALL_DIR/lib/fonts - mv $SRC_DIR/fonts/ttf/* $INSTALL_DIR/lib/fonts/ -fi +# Include dejavu fonts to allow java to work even on minimal cloud +# images where these fonts are missing (thanks to @chapmanb) +mkdir -p $INSTALL_DIR/lib/fonts + +mv $SRC_DIR/fonts/ttf/* $INSTALL_DIR/lib/fonts/ + find $PREFIX -name "*.debuginfo" -exec rm -rf {} \; diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml new file mode 100644 index 00000000..820f22a9 --- /dev/null +++ b/recipe/conda_build_config.yaml @@ -0,0 +1,3 @@ +c_stdlib_version: # [osx and x86_64] + # missing _objc_alloc_init on older targets + - 10.15 # [osx and x86_64] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e3c5b7fc..26556542 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -7,7 +7,7 @@ {% set temurin_url = "https://github.com/adoptium/temurin" ~ major ~ "-binaries/releases/download" %} {% set temurin_base = "jdk-" ~ jdk_full ~ "/OpenJDK" ~ major ~ "U-jdk" %} -{% set temurin_suffix = "linux_hotspot_" ~ jdk_full.replace("+", "_") ~ ".tar.gz" %} +{% set temurin_suffix = "hotspot_" ~ jdk_full.replace("+", "_") ~ ".tar.gz" %} {% set zulu_url = "https://cdn.azul.com/zulu/bin" %} {% set zulu_base = "zulu" ~ zulu_build ~ "-jdk" ~ version %} @@ -20,32 +20,29 @@ package: source: # example of full url for version=17.0.8 & openjdk_revision=7: # https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8+7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.8_7.tar.gz - - url: {{ temurin_url }}/{{ temurin_base }}_x64_{{ temurin_suffix }} # [build_platform == "linux-64"] - sha256: e59c6bf801cc023a1ea78eceb5e6756277f1564cd0a421ea984efe6cb96cfcf8 # [build_platform == "linux-64"] - # native compilation: currently unused - - url: {{ temurin_url }}/{{ temurin_base }}_aarch64_{{ temurin_suffix }} # [build_platform == "linux-aarch64"] - sha256: 980156d37580bd6fec142e02900497984e94c4b819a0c0eb7ce790bfc7c7d920 # [build_platform == "linux-aarch64"] - - url: {{ temurin_url }}/{{ temurin_base }}_ppc64le_{{ temurin_suffix }} # [build_platform == "linux-ppc64le"] - sha256: 45dde71faf8cbb78fab3c976894259655c8d3de827347f23e0ebe5710921dded # [build_platform == "linux-ppc64le"] + - url: {{ temurin_url }}/{{ temurin_base }}_x64_linux_{{ temurin_suffix }} # [build_platform == "linux-64"] + sha256: e59c6bf801cc023a1ea78eceb5e6756277f1564cd0a421ea984efe6cb96cfcf8 # [build_platform == "linux-64"] + - url: {{ temurin_url }}/{{ temurin_base }}_x64_mac_{{ temurin_suffix }} # [build_platform == "osx-64"] + sha256: 9445952d4487451af024a9a3f56373df76fbd928d9ff9186988aa27be2e4f10c # [build_platform == "osx-64"] + - url: {{ temurin_url }}/{{ temurin_base }}_aarch64_mac_{{ temurin_suffix }} # [build_platform == "osx-arm64"] + sha256: 80d6fa75e87280202ae7660139870fe50f07fca9dc6c4fbd3f2837cbd70ec902 # [build_platform == "osx-arm64"] - - url: https://github.com/openjdk/jdk{{ major }}u/archive/refs/tags/jdk-{{ jdk_full }}.tar.gz # [linux] - sha256: 0cfb7f2799384df43a9832df638f31c9be33a4a8650f8478f35272ee70dd7173 # [linux] - folder: src # [linux] - - url: https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-fonts-ttf-2.37.zip # [linux] - sha256: 7576310b219e04159d35ff61dd4a4ec4cdba4f35c00e002a136f00e96a908b0a # [linux] - folder: fonts # [linux] + - url: https://github.com/openjdk/jdk{{ major }}u/archive/refs/tags/jdk-{{ jdk_full }}.tar.gz # [unix] + sha256: 0cfb7f2799384df43a9832df638f31c9be33a4a8650f8478f35272ee70dd7173 # [unix] + folder: src # [unix] + - url: https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-fonts-ttf-2.37.zip # [unix] + sha256: 7576310b219e04159d35ff61dd4a4ec4cdba4f35c00e002a136f00e96a908b0a # [unix] + folder: fonts # [unix] # example of full url for zulu_build=17.44.15-ca & version=17.0.8: - # https://cdn.azul.com/zulu/bin/zulu17.44.15-ca-jdk17.0.8-macosx_x64.zip - - url: {{ zulu_url }}/{{ zulu_base }}-macosx_x64.zip # [osx and x86_64] - sha256: 72875bfcee08ebe61fca9d80de4bba9ae138cee3f3584074a6d5149c79cd26e7 # [osx and x86_64] - - url: {{ zulu_url }}/{{ zulu_base }}-macosx_aarch64.zip # [osx and arm64] - sha256: ae8d4863565bba47a30fccbe7e5a4de153db114f16c4eb60524394c5dd190359 # [osx and arm64] + # https://cdn.azul.com/zulu/bin/zulu17.44.15-ca-jdk17.0.8-win_x64.zip - url: {{ zulu_url }}/{{ zulu_base }}-win_x64.zip # [win64] sha256: cf112b96b665eb34107590c83af83e56735caa677e2a96d1991419aa26b5d511 # [win64] build: number: 1 + # debug + skip: true # [not osx] # Binaries are already relocatable and conda-build's post-processing would add a very long RPATH to binaries # which doesn't fit anymore into the __LINKEDIT section. For this, we either need to manually reassemble # the Mach-O header or build everything from source. @@ -57,62 +54,57 @@ build: requirements: build: - # We also need a compiler on osx to produce correct signatures - - {{ compiler('cxx') }} # [not win] - - {{ stdlib('c') }} # [linux] - - pkg-config # [linux] - - autoconf # [linux] - - unzip # [linux] - - zip # [linux] - - make !=4.3.* # [linux] - - zlib # [linux and (build_platform != target_platform)] - - freetype # [linux and (build_platform != target_platform)] - - harfbuzz # [linux and (build_platform != target_platform)] - - libpng # [linux and (build_platform != target_platform)] - - giflib # [linux and (build_platform != target_platform)] - - harfbuzz # [linux and (build_platform != target_platform)] - - libjpeg-turbo # [linux and (build_platform != target_platform)] + - {{ compiler('cxx') }} # [unix] + - {{ stdlib('c') }} # [unix] + - cctools_osx-64 # [osx and (build_platform != target_platform)] + - libcxx # [osx and (build_platform != target_platform)] + - pkg-config # [unix] + - autoconf # [unix] + - unzip # [unix] + - zip # [unix] + - make !=4.3.* # [unix] + - zlib # [unix and (build_platform != target_platform)] + - freetype # [unix and (build_platform != target_platform)] + - harfbuzz # [unix and (build_platform != target_platform)] + - libpng # [unix and (build_platform != target_platform)] + - giflib # [unix and (build_platform != target_platform)] + - libiconv # [osx and (build_platform != target_platform)] + - libjpeg-turbo # [unix and (build_platform != target_platform)] - libcups # [linux and (build_platform != target_platform)] - alsa-lib # [linux and (build_platform != target_platform)] - - fontconfig # [linux and (build_platform != target_platform)] - - xorg-libx11 # [linux and (build_platform != target_platform)] - - xorg-libxext # [linux and (build_platform != target_platform)] - - xorg-libxt # [linux and (build_platform != target_platform)] - - xorg-libxtst # [linux and (build_platform != target_platform)] - - xorg-libxrender # [linux and (build_platform != target_platform)] - - xorg-libxrandr # [linux and (build_platform != target_platform)] - - xorg-libxi # [linux and (build_platform != target_platform)] - - lcms2 # [linux and (build_platform != target_platform)] + - fontconfig # [unix and (build_platform != target_platform)] + - xorg-libx11 # [unix and (build_platform != target_platform)] + - xorg-libxext # [unix and (build_platform != target_platform)] + - xorg-libxt # [unix and (build_platform != target_platform)] + - xorg-libxtst # [unix and (build_platform != target_platform)] + - xorg-libxrender # [unix and (build_platform != target_platform)] + - xorg-libxrandr # [unix and (build_platform != target_platform)] + - xorg-libxi # [unix and (build_platform != target_platform)] + - lcms2 # [unix and (build_platform != target_platform)] - symlink-exe-build # [win] - m2-bash # [win] host: - - zlib # [linux or osx] - - freetype # [linux] - - harfbuzz # [linux] - - libpng # [linux] - - giflib # [linux] - - harfbuzz # [linux] - - libjpeg-turbo # [linux] + - zlib # [unix] + - freetype # [unix] + - harfbuzz # [unix] + - libpng # [unix] + - giflib # [unix] + - libiconv # [osx] + - libjpeg-turbo # [unix] - libcups # [linux] - alsa-lib # [linux] - - fontconfig # [linux] - - xorg-libx11 # [linux] - - xorg-libxext # [linux] - - xorg-libxt # [linux] - - xorg-libxtst # [linux] - - xorg-libxrender # [linux] - - xorg-libxrandr # [linux] - - xorg-libxi # [linux] - - lcms2 # [linux] - - vs2015_runtime # [win] + - fontconfig # [unix] + - xorg-libx11 # [unix] + - xorg-libxext # [unix] + - xorg-libxt # [unix] + - xorg-libxtst # [unix] + - xorg-libxrender # [unix] + - xorg-libxrandr # [unix] + - xorg-libxi # [unix] + - lcms2 # [unix] + - vc14_runtime # [win] run: - - xorg-libx11 # [linux] - - xorg-libxext # [linux] - - xorg-libxtst # [linux] - - xorg-libxrender # [linux] - - xorg-libxi # [linux] - - {{ pin_compatible("alsa-lib", max_pin="x.x.x") }} # [linux] - - vs2015_runtime # [win] + - vc14_runtime # [win] test: requires: @@ -130,16 +122,16 @@ test: - if not exist %JAVA_HOME%\\release exit 1 # [win] about: - home: https://www.azul.com/products/zulu/ # [not linux] - home: https://openjdk.java.net # [linux] + home: https://www.azul.com/products/zulu/ # [win] + home: https://openjdk.java.net # [unix] license: GPL-2.0-or-later WITH Classpath-exception-2.0 license_family: GPL license_file: - LICENSE - - fonts/LICENSE # [linux] - summary: The Zulu OpenJDK build. # [not linux] - summary: An open-source implementation of the JDK # [linux] - description: Zulu OpenJDK is an open source build of the Java JDK. # [not linux] + - fonts/LICENSE # [unix] + summary: An open-source implementation of the JDK # [unix] + summary: The Zulu OpenJDK build. # [win] + description: Zulu OpenJDK is an open source build of the Java JDK. # [win] extra: recipe-maintainers: