diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 971260b..8ab11f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,37 +12,15 @@ on: type: boolean default: false required: false - buildOnly: - description: 'Only build ffmpeg' - type: boolean - default: false - required: false schedule: - cron: '0 12 * * *' env: DOCKER_BUILDKIT: 1 - HAVE_CLEANUP_PAT: ${{ secrets.CLEANUP_PAT != '' }} jobs: - pre_check: - name: Pre Checks - if: ${{ github.event.inputs.buildOnly != 'true' }} - runs-on: ubuntu-latest - steps: - - name: Repo Check - run: | - if [[ "$GITHUB_REPOSITORY" != "BtbN/FFmpeg-Builds" ]]; then - echo "When forking this repository to make your own builds, you have to adjust this check." - echo "When doing so make sure to randomize the scheduled cron time above, in order to spread out the various build times as much as possible." - echo "This has been put in place due to the enormous amounts of traffic hundreds/thousands of parallel builds can cause on external infrastructure." - exit 1 - fi - exit 0 build_base: name: Build base image - if: ${{ github.event.inputs.buildOnly != 'true' }} - needs: pre_check runs-on: ubuntu-latest steps: - name: Checkout @@ -59,13 +37,7 @@ jobs: password: ${{ github.token }} - name: Image Name id: imagename - run: | - IMG="${GITHUB_REPOSITORY,,}/base" - DLIMG="${GITHUB_REPOSITORY,,}/dl_cache" - echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT - echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT - echo "dlname=ghcr.io/${DLIMG/ /-}" >> $GITHUB_OUTPUT - echo "dlrawname=${DLIMG/ /-}" >> $GITHUB_OUTPUT + run: echo "::set-output name=name::ghcr.io/${GITHUB_REPOSITORY,,}/base" - name: Stop Commands run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}" - name: Build target base image @@ -77,54 +49,14 @@ jobs: tags: ${{ steps.imagename.outputs.name }}:latest cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache - - name: Generate download cache Dockerfile - id: dl_cache - run: | - ./generate.sh dl only - echo "dltagname=$(./util/get_dl_cache_tag.sh)" >> $GITHUB_OUTPUT - cat Dockerfile.dl - - name: Build download cache image - uses: docker/build-push-action@v3 - with: - context: . - file: Dockerfile.dl - pull: true - push: true - tags: ${{ steps.imagename.outputs.dlname }}:${{ steps.dl_cache.outputs.dltagname }} - cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.dlname }}:cache - cache-from: type=registry,ref=${{ steps.imagename.outputs.dlname }}:cache - - name: Cleanup - if: ${{ env.HAVE_CLEANUP_PAT == 'true' }} - continue-on-error: true - uses: BtbN/delete-untagged-ghcr-action@main - with: - token: ${{ secrets.CLEANUP_PAT }} - package_name: ${{ steps.imagename.outputs.rawname }} - repository_owner: ${{ github.repository_owner }} - repository: ${{ github.repository }} - owner_type: user - untagged_only: true - - name: Cleanup Download Cache - if: ${{ env.HAVE_CLEANUP_PAT == 'true' }} - continue-on-error: true - uses: BtbN/delete-untagged-ghcr-action@main - with: - token: ${{ secrets.CLEANUP_PAT }} - package_name: ${{ steps.imagename.outputs.dlrawname }} - repository_owner: ${{ github.repository_owner }} - repository: ${{ github.repository }} - owner_type: user - untagged_only: false - keep_latest: 20 build_target_bases: name: Build target base image - if: ${{ github.event.inputs.buildOnly != 'true' }} needs: build_base runs-on: ubuntu-latest strategy: fail-fast: false matrix: - target: [win64,linux64,linuxarm64] + target: [win64,linux64] steps: - name: Checkout uses: actions/checkout@v3 @@ -140,11 +72,7 @@ jobs: password: ${{ github.token }} - name: Image Name id: imagename - run: | - IMG="${GITHUB_REPOSITORY,,}/base-${{ matrix.target }}" - echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT - echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT - echo "gh_repo=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT + run: echo "::set-output name=name::ghcr.io/${GITHUB_REPOSITORY,,}/base-${{ matrix.target }}" - name: Stop Commands run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}" - name: Build target base image @@ -156,29 +84,15 @@ jobs: tags: ${{ steps.imagename.outputs.name }}:latest cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache - build-args: | - GH_REPO=ghcr.io/${{ steps.imagename.outputs.gh_repo }} - - name: Cleanup - if: ${{ env.HAVE_CLEANUP_PAT == 'true' }} - continue-on-error: true - uses: BtbN/delete-untagged-ghcr-action@main - with: - token: ${{ secrets.CLEANUP_PAT }} - package_name: ${{ steps.imagename.outputs.rawname }} - repository_owner: ${{ github.repository_owner }} - repository: ${{ github.repository }} - owner_type: user - untagged_only: true build_targets: name: Build target-variant image - if: ${{ github.event.inputs.buildOnly != 'true' }} needs: build_target_bases runs-on: ubuntu-latest strategy: fail-fast: false matrix: - target: [win64,linux64,linuxarm64] - variant: [gpl,lgpl,gpl 4.4,gpl 5.1,gpl 6.0,lgpl 4.4,lgpl 5.1,lgpl 6.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.1,gpl-shared 6.0,lgpl-shared 4.4,lgpl-shared 5.1,lgpl-shared 6.0] + target: [win64,linux64] + variant: [gpl,lgpl,gpl 4.4,gpl 5.0,lgpl 4.4,lgpl 5.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.0,lgpl-shared 4.4,lgpl-shared 5.0] steps: - name: Checkout uses: actions/checkout@v3 @@ -197,9 +111,8 @@ jobs: - name: Image Name id: imagename run: | - IMG="${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}" - echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT - echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT + IMG="ghcr.io/${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}" + echo "::set-output name=name::${IMG/ /-}" - name: Stop Commands run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}" - name: Build target base image @@ -211,27 +124,15 @@ jobs: tags: ${{ steps.imagename.outputs.name }}:latest cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache - - name: Cleanup - if: ${{ env.HAVE_CLEANUP_PAT == 'true' }} - continue-on-error: true - uses: BtbN/delete-untagged-ghcr-action@main - with: - token: ${{ secrets.CLEANUP_PAT }} - package_name: ${{ steps.imagename.outputs.rawname }} - repository_owner: ${{ github.repository_owner }} - repository: ${{ github.repository }} - owner_type: user - untagged_only: true build_ffmpeg: name: Build ffmpeg - if: ${{ ( github.event.inputs.buildOnly == 'true' && !cancelled() ) || success() }} needs: build_targets runs-on: ubuntu-latest strategy: fail-fast: false matrix: - target: [win64,linux64,linuxarm64] - variant: [gpl,lgpl,gpl 4.4,gpl 5.1,gpl 6.0,lgpl 4.4,lgpl 5.1,lgpl 6.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.1,gpl-shared 6.0,lgpl-shared 4.4,lgpl-shared 5.1,lgpl-shared 6.0] + target: [win64,linux64] + variant: [gpl,lgpl,gpl 4.4,gpl 5.0,lgpl 4.4,lgpl 5.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.0,lgpl-shared 4.4,lgpl-shared 5.0] steps: - name: Checkout uses: actions/checkout@v3 @@ -252,7 +153,7 @@ jobs: path: artifacts/* publish_release: name: Publish release - if: ${{ !cancelled() && ( github.event_name == 'schedule' || github.event.inputs.doRelease == 'true' ) && needs.build_ffmpeg.result == 'success' }} + if: ${{ github.event_name == 'schedule' || github.event.inputs.doRelease == 'true' }} needs: build_ffmpeg runs-on: ubuntu-latest steps: @@ -267,26 +168,24 @@ jobs: id: create_release run: | set -xe - shopt -s nullglob RELDATE="$(date +'%Y-%m-%d %H:%M')" NAME="Auto-Build $RELDATE" TAGNAME="autobuild-$(date +'%Y-%m-%d-%H-%M')" hub release create $(for a in artifacts/*.{zip,tar.xz}; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME" - echo "tag_name=${TAGNAME}" >> $GITHUB_OUTPUT - echo "rel_date=${RELDATE}" >> $GITHUB_OUTPUT + echo "::set-output name=tag_name::${TAGNAME}" + echo "::set-output name=rel_date::${RELDATE}" env: GITHUB_TOKEN: ${{ github.token }} - name: Update Latest run: | set -xe - shopt -s nullglob mkdir latest_artifacts ./util/repack_latest.sh latest_artifacts artifacts/*.{zip,tar.xz} NAME="Latest Auto-Build (${{ steps.create_release.outputs.rel_date }})" TAGNAME="latest" hub release delete "$TAGNAME" || true git push --delete origin "$TAGNAME" || true - sleep 15 + sleep 30 hub release create $(for a in latest_artifacts/*; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME" env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index cc42dd8..35c90f1 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -17,19 +17,8 @@ jobs: strategy: fail-fast: false matrix: - target: [win64,linux64,linuxarm64] - variant: [lgpl,gpl 6.0,gpl 5.1,lgpl 6.0,lgpl 5.1,gpl-shared,lgpl-shared,gpl-shared 6.0,gpl-shared 5.1,lgpl-shared 6.0,lgpl-shared 5.1] - quickbuild: [1] - include: - - target: win64 - variant: gpl - quickbuild: '' - - target: linux64 - variant: gpl - quickbuild: '' - - target: linuxarm64 - variant: gpl - quickbuild: '' + target: [win64,linux64] + variant: [gpl,lgpl,gpl 4.4,gpl 5.0,lgpl 4.4,lgpl 5.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.0,lgpl-shared 4.4,lgpl-shared 5.0] steps: - name: Checkout uses: actions/checkout@v3 @@ -40,8 +29,6 @@ jobs: driver: docker - name: Build Image run: ./makeimage.sh ${{ matrix.target }} ${{ matrix.variant }} - env: - QUICKBUILD: ${{ matrix.quickbuild }} - name: Build ffmpeg run: ./build.sh ${{ matrix.target }} ${{ matrix.variant }} - name: Upload artifacts diff --git a/.gitignore b/.gitignore index 107f214..bc80281 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -/Dockerfile* +/Dockerfile /ffbuild/ /artifacts/ -/.cache/ diff --git a/README.md b/README.md index 0185e90..f1f6666 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,13 @@ Static Windows (x86_64) and Linux (x86_64) Builds of ffmpeg master and latest re Windows builds are targetting Windows 7 and newer. -Linux (x86_64) builds are targetting Ubuntu 16.04 (glibc-2.23 + linux-4.4) and anything more recent. - -Linux (arm64) builds are targetting Ubuntu 18.04 (glibc-2.27 + linux-4.15) and anything more recent. +Linux builds are targetting Ubuntu 16.04 (glibc-2.23 + linux-4.4) and anything more recent. ## Auto-Builds Builds run daily at 12:00 UTC (or GitHubs idea of that time) and are automatically released on success. -**Auto-Builds run ONLY for win64 and linux(arm)64. There are no win32/x86 auto-builds, though you can produce win32 builds yourself following the instructions below.** +**Auto-Builds run ONLY for win64 and linux64. There are no win32/x86 auto-builds, though you can produce win32 builds yourself following the instructions below.** ### Release Retention Policy @@ -34,11 +32,11 @@ Every file corresponds to its respective package. ### Build Image -* `./makeimage.sh target variant [addin [addin] [addin] ...]` +* `./makeimage.sh target variant [addins]` ### Build FFmpeg -* `./build.sh target variant [addin [addin] [addin] ...]` +* `./build.sh target variant [addins]` On success, the resulting zip file will be in the `artifacts` subdir. @@ -48,22 +46,13 @@ Available targets: * `win64` (x86_64 Windows) * `win32` (x86 Windows) * `linux64` (x86_64 Linux, glibc>=2.23, linux>=4.4) -* `linuxarm64` (arm64 (aarch64) Linux, glibc>=2.27, linux>=4.15) -The linuxarm64 target will not build some dependencies due to lack of arm64 (aarch64) architecture support or cross-compiling restrictions. - -* `davs2` and `xavs2`: aarch64 support is broken. -* `libmfx` and `libva`: Library for Intel QSV, so there is no aarch64 support. - -Available variants: +Available: * `gpl` Includes all dependencies, even those that require full GPL instead of just LGPL. * `lgpl` Lacking libraries that are GPL-only. Most prominently libx264 and libx265. -* `nonfree` Includes fdk-aac in addition to all the dependencies of the gpl variant. * `gpl-shared` Same as gpl, but comes with the libav* family of shared libs instead of pure static executables. * `lgpl-shared` Same again, but with the lgpl set of dependencies. -* `nonfree-shared` Same again, but with the nonfree set of dependencies. -All of those can be optionally combined with any combination of addins: -* `4.4`/`5.0`/`5.1`/`6.0` to build from the respective release branch instead of master. +All of those can be optionally combined with any combination of addins. +* `4.4` to build from the 4.4 release branch instead of master. * `debug` to not strip debug symbols from the binaries. This increases the output size by about 250MB. -* `lto` build all dependencies and ffmpeg with -flto=auto (HIGHLY EXPERIMENTAL, broken for Windows, sometimes works for Linux) diff --git a/addins/5.1.sh b/addins/5.1.sh deleted file mode 100644 index a58b318..0000000 --- a/addins/5.1.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -GIT_BRANCH="release/5.1" diff --git a/addins/6.0.sh b/addins/6.0.sh deleted file mode 100644 index 720a9cd..0000000 --- a/addins/6.0.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -GIT_BRANCH="release/6.0" diff --git a/addins/lto.sh b/addins/lto.sh deleted file mode 100644 index 26fa2c2..0000000 --- a/addins/lto.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -FF_CONFIGURE="$FF_CONFIGURE --enable-lto" - -ffbuild_dockeraddin() { - to_df 'ENV CFLAGS="$CFLAGS -flto=auto" CXXFLAGS="$CXXFLAGS -flto=auto" LDFLAGS="$LDFLAGS -flto=auto"' - to_df 'ENV FFBUILD_TARGET_FLAGS="$FFBUILD_TARGET_FLAGS --ar=${FFBUILD_TOOLCHAIN}-gcc-ar --nm=${FFBUILD_TOOLCHAIN}-gcc-nm --ranlib=${FFBUILD_TOOLCHAIN}-gcc-ranlib"' -} diff --git a/build.sh b/build.sh index 532535a..ef82b48 100755 --- a/build.sh +++ b/build.sh @@ -90,16 +90,16 @@ package_variant ffbuild/prefix "ffbuild/pkgroot/$BUILD_NAME" cd ffbuild/pkgroot if [[ "${TARGET}" == win* ]]; then OUTPUT_FNAME="${BUILD_NAME}.zip" - docker run --rm -i $TTY_ARG "${UIDARGS[@]}" -v "${ARTIFACTS_PATH}":/out -v "${PWD}/${BUILD_NAME}":"/${BUILD_NAME}" -w / "$IMAGE" zip -9 -r "/out/${OUTPUT_FNAME}" "$BUILD_NAME" + zip -9 -r "${ARTIFACTS_PATH}/${OUTPUT_FNAME}" "$BUILD_NAME" else OUTPUT_FNAME="${BUILD_NAME}.tar.xz" - docker run --rm -i $TTY_ARG "${UIDARGS[@]}" -v "${ARTIFACTS_PATH}":/out -v "${PWD}/${BUILD_NAME}":"/${BUILD_NAME}" -w / "$IMAGE" tar cJf "/out/${OUTPUT_FNAME}" "$BUILD_NAME" + tar cJf "${ARTIFACTS_PATH}/${OUTPUT_FNAME}" "$BUILD_NAME" fi cd - rm -rf ffbuild if [[ -n "$GITHUB_ACTIONS" ]]; then - echo "build_name=${BUILD_NAME}" >> "$GITHUB_OUTPUT" + echo "::set-output name=build_name::${BUILD_NAME}" echo "${OUTPUT_FNAME}" > "${ARTIFACTS_PATH}/${TARGET}-${VARIANT}${ADDINS_STR:+-}${ADDINS_STR}.txt" fi diff --git a/generate.sh b/generate.sh index c9fda9b..c919417 100755 --- a/generate.sh +++ b/generate.sh @@ -3,93 +3,32 @@ set -e cd "$(dirname "$0")" source util/vars.sh -export LC_ALL=C.UTF-8 - -rm -f Dockerfile Dockerfile.{dl,final,dl.final} +rm -f Dockerfile layername() { printf "layer-" basename "$1" | sed 's/.sh$//' } +exec_dockerstage() { + SCRIPT="$1" + ( + SELF="$SCRIPT" + source "$SCRIPT" + ffbuild_enabled || exit 0 + ffbuild_dockerstage || exit $? + ) +} + to_df() { _of="${TODF:-Dockerfile}" printf "$@" >> "$_of" echo >> "$_of" } -default_dl() { - to_df "RUN git-mini-clone \"$SCRIPT_REPO\" \"$SCRIPT_COMMIT\" \"$1\"" -} - -### -### Generate download Dockerfile -### - -exec_dockerstage_dl() { - SCRIPT="$1" - ( - SELF="$SCRIPT" - SELFLAYER="$(layername "$STAGE")" - source "$SCRIPT" - ffbuild_dockerdl || exit $? - TODF="Dockerfile.dl.final" ffbuild_dockerlayer_dl || exit $? - ) -} - -export TODF="Dockerfile.dl" - -to_df "FROM ${REGISTRY}/${REPO}/base:latest AS base" -to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR" -to_df "WORKDIR \$FFBUILD_DLDIR" - -for STAGE in scripts.d/*.sh scripts.d/*/*.sh; do - to_df "FROM base AS $(layername "$STAGE")" - exec_dockerstage_dl "$STAGE" -done - -to_df "FROM base AS intermediate" -cat Dockerfile.dl.final >> "$TODF" -rm Dockerfile.dl.final - -to_df "FROM scratch" -to_df "COPY --from=intermediate /opt/ffdl/. /" - -if [[ "$TARGET" == "dl" && "$VARIANT" == "only" ]]; then - exit 0 -fi - -DL_IMAGE="${DL_IMAGE_RAW}:$(./util/get_dl_cache_tag.sh)" - -### -### Generate main Dockerfile -### - -exec_dockerstage() { - SCRIPT="$1" - ( - SELF="$SCRIPT" - source "$SCRIPT" - - ffbuild_enabled || exit 0 - - to_df "ENV SELF=\"$SELF\"" - ffbuild_dockerstage || exit $? - ) -} - -export TODF="Dockerfile" - to_df "FROM ${REGISTRY}/${REPO}/base-${TARGET}:latest AS base" to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR" -for addin in "${ADDINS[@]}"; do -( - source addins/"${addin}.sh" - type ffbuild_dockeraddin &>/dev/null && ffbuild_dockeraddin || true -) -done - PREVLAYER="base" for ID in $(ls -1d scripts.d/??-* | sed -s 's|^.*/\(..\).*|\1|' | sort -u); do LAYER="layer-$ID" diff --git a/images/base-linux64/Dockerfile b/images/base-linux64/Dockerfile index d91dd19..f8c39c7 100644 --- a/images/base-linux64/Dockerfile +++ b/images/base-linux64/Dockerfile @@ -1,5 +1,5 @@ -ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds -FROM $GH_REPO/base:latest +ARG GH_REPO=btbn/ffmpeg-builds +FROM ghcr.io/$GH_REPO/base:latest RUN --mount=src=ct-ng-config,dst=/.config \ git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \ @@ -39,23 +39,17 @@ ADD cross.meson /cross.meson ADD gen-implib.sh /usr/bin/gen-implib RUN git clone --filter=blob:none --depth=1 https://github.com/yugr/Implib.so /opt/implib -ENV FFBUILD_TOOLCHAIN=x86_64-ffbuild-linux-gnu ENV PATH="/opt/ct-ng/bin:${PATH}" \ - FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=x86_64 --target-os=linux" \ - FFBUILD_CROSS_PREFIX="${FFBUILD_TOOLCHAIN}-" \ + FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux" \ + FFBUILD_TOOLCHAIN=x86_64-ffbuild-linux-gnu \ + FFBUILD_CROSS_PREFIX="x86_64-ffbuild-linux-gnu-" \ FFBUILD_RUST_TARGET="x86_64-unknown-linux-gnu" \ FFBUILD_PREFIX=/opt/ffbuild \ FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \ PKG_CONFIG=pkg-config \ PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \ - CC="${FFBUILD_TOOLCHAIN}-gcc" \ - CXX="${FFBUILD_TOOLCHAIN}-g++" \ - LD="${FFBUILD_TOOLCHAIN}-ld" \ - AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \ - RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \ - NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \ - CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ - CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ - LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm" \ + CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -pthread" \ + CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -pthread" \ + LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -Wl,-z,relro,-z,now -pthread -lm" \ STAGE_CFLAGS="-fvisibility=hidden -fno-semantic-interposition" \ STAGE_CXXFLAGS="-fvisibility=hidden -fno-semantic-interposition" diff --git a/images/base-linux64/cross.meson b/images/base-linux64/cross.meson index 8619c70..da9e709 100644 --- a/images/base-linux64/cross.meson +++ b/images/base-linux64/cross.meson @@ -2,8 +2,7 @@ c = 'x86_64-ffbuild-linux-gnu-gcc' cpp = 'x86_64-ffbuild-linux-gnu-g++' ld = 'x86_64-ffbuild-linux-gnu-ld' -ar = 'x86_64-ffbuild-linux-gnu-gcc-ar' -ranlib = 'x86_64-ffbuild-linux-gnu-gcc-ranlib' +ar = 'x86_64-ffbuild-linux-gnu-ar' strip = 'x86_64-ffbuild-linux-gnu-strip' [host_machine] diff --git a/images/base-linux64/ct-ng-config b/images/base-linux64/ct-ng-config index dc1039b..df995dc 100644 --- a/images/base-linux64/ct-ng-config +++ b/images/base-linux64/ct-ng-config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# crosstool-NG 1.25.0.196_227d99d Configuration +# crosstool-NG 1.24.0.533_681aaef Configuration # CT_CONFIGURE_has_static_link=y CT_CONFIGURE_has_cxx11=y @@ -13,13 +13,12 @@ CT_CONFIGURE_has_make_3_81_or_newer=y CT_CONFIGURE_has_make_4_0_or_newer=y CT_CONFIGURE_has_libtool_2_4_or_newer=y CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_71_or_newer=y -CT_CONFIGURE_has_autoreconf_2_71_or_newer=y -CT_CONFIGURE_has_automake_1_16_or_newer=y +CT_CONFIGURE_has_autoconf_2_65_or_newer=y +CT_CONFIGURE_has_autoreconf_2_65_or_newer=y +CT_CONFIGURE_has_automake_1_15_or_newer=y CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y CT_CONFIGURE_has_python_3_4_or_newer=y CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_bison_3_0_4_or_newer=y CT_CONFIGURE_has_python=y CT_CONFIGURE_has_svn=y CT_CONFIGURE_has_git=y @@ -28,7 +27,7 @@ CT_CONFIGURE_has_sha1sum=y CT_CONFIGURE_has_sha256sum=y CT_CONFIGURE_has_sha512sum=y CT_CONFIGURE_has_install_with_strip_program=y -CT_VERSION="1.25.0.196_227d99d" +CT_VERSION="1.24.0.533_681aaef" CT_VCHECK="" CT_CONFIG_VERSION_ENV="4" CT_CONFIG_VERSION_CURRENT="4" @@ -46,7 +45,6 @@ CT_OBSOLETE=y CT_EXPERIMENTAL=y CT_ALLOW_BUILD_AS_ROOT=y CT_ALLOW_BUILD_AS_ROOT_SURE=y -# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set # CT_DEBUG_CT is not set # @@ -65,7 +63,6 @@ CT_REMOVE_DOCS=y # CT_PREFIX_DIR_RO is not set CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y -# CT_TARBALL_RESULT is not set # # Downloading @@ -123,11 +120,12 @@ CT_CONFIG_SHELL="${bash}" # CT_LOG_ERROR is not set # CT_LOG_WARN is not set # CT_LOG_INFO is not set -# CT_LOG_EXTRA is not set +CT_LOG_EXTRA=y # CT_LOG_ALL is not set -CT_LOG_DEBUG=y -CT_LOG_LEVEL_MAX="DEBUG" +# CT_LOG_DEBUG is not set +CT_LOG_LEVEL_MAX="EXTRA" # CT_LOG_SEE_TOOLS_WARN is not set +# CT_LOG_PROGRESS_BAR is not set # CT_LOG_TO_FILE is not set # end of Paths and misc options @@ -138,9 +136,7 @@ CT_LOG_LEVEL_MAX="DEBUG" # CT_ARCH_ARC is not set # CT_ARCH_ARM is not set # CT_ARCH_AVR is not set -# CT_ARCH_BPF is not set # CT_ARCH_C6X is not set -# CT_ARCH_LOONGARCH is not set # CT_ARCH_M68K is not set # CT_ARCH_MICROBLAZE is not set # CT_ARCH_MIPS is not set @@ -165,7 +161,7 @@ CT_ARCH_X86_SHOW=y # Options for x86 # CT_ARCH_X86_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" +CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" CT_ARCH_SUFFIX="" # CT_OMIT_TARGET_VENDOR is not set @@ -175,7 +171,6 @@ CT_ARCH_SUFFIX="" # CT_MULTILIB is not set CT_DEMULTILIB=y CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_LIBSANITIZER=y CT_ARCH_SUPPORTS_32=y CT_ARCH_SUPPORTS_64=y CT_ARCH_DEFAULT_32=y @@ -269,14 +264,6 @@ CT_LINUX_PATCH_GLOBAL=y # CT_LINUX_PATCH_LOCAL_BUNDLED is not set # CT_LINUX_PATCH_NONE is not set CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_6_3 is not set -# CT_LINUX_V_6_2 is not set -# CT_LINUX_V_6_1 is not set -# CT_LINUX_V_6_0 is not set -# CT_LINUX_V_5_19 is not set -# CT_LINUX_V_5_18 is not set -# CT_LINUX_V_5_17 is not set -# CT_LINUX_V_5_16 is not set # CT_LINUX_V_5_15 is not set # CT_LINUX_V_5_14 is not set # CT_LINUX_V_5_13 is not set @@ -314,18 +301,14 @@ CT_LINUX_V_4_4=y # CT_LINUX_V_3_4 is not set # CT_LINUX_V_3_2 is not set # CT_LINUX_V_2_6_32 is not set -CT_LINUX_VERSION="4.4.302" +CT_LINUX_VERSION="4.4.292" CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_5_19_or_older=y -CT_LINUX_older_than_5_19=y CT_LINUX_5_12_or_older=y CT_LINUX_older_than_5_12=y -CT_LINUX_5_5_or_older=y -CT_LINUX_older_than_5_5=y CT_LINUX_5_3_or_older=y CT_LINUX_older_than_5_3=y CT_LINUX_4_8_or_older=y @@ -377,9 +360,7 @@ CT_BINUTILS_PATCH_GLOBAL=y # CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set # CT_BINUTILS_PATCH_NONE is not set CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_40=y -# CT_BINUTILS_V_2_39 is not set -# CT_BINUTILS_V_2_38 is not set +CT_BINUTILS_V_2_38=y # CT_BINUTILS_V_2_37 is not set # CT_BINUTILS_V_2_36 is not set # CT_BINUTILS_V_2_35 is not set @@ -392,14 +373,12 @@ CT_BINUTILS_V_2_40=y # CT_BINUTILS_V_2_28 is not set # CT_BINUTILS_V_2_27 is not set # CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_VERSION="2.40" +CT_BINUTILS_VERSION="2.38" CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_39=y -CT_BINUTILS_2_39_or_later=y CT_BINUTILS_later_than_2_30=y CT_BINUTILS_2_30_or_later=y CT_BINUTILS_later_than_2_27=y @@ -428,11 +407,13 @@ CT_ALL_BINUTILS_CHOICES="BINUTILS" # # C-library # +# CT_LIBC_BIONIC is not set CT_LIBC_GLIBC=y # CT_LIBC_MUSL is not set # CT_LIBC_UCLIBC_NG is not set CT_LIBC="glibc" CT_LIBC_CHOICE_KSYM="GLIBC" +CT_THREADS="nptl" CT_LIBC_GLIBC_SHOW=y # @@ -454,8 +435,6 @@ CT_GLIBC_PATCH_GLOBAL=y # CT_GLIBC_PATCH_LOCAL_BUNDLED is not set # CT_GLIBC_PATCH_NONE is not set CT_GLIBC_PATCH_ORDER="global" -# CT_GLIBC_V_2_37 is not set -# CT_GLIBC_V_2_36 is not set # CT_GLIBC_V_2_35 is not set # CT_GLIBC_V_2_34 is not set # CT_GLIBC_V_2_33 is not set @@ -471,22 +450,15 @@ CT_GLIBC_PATCH_ORDER="global" CT_GLIBC_V_2_23=y # CT_GLIBC_V_2_19 is not set # CT_GLIBC_V_2_17 is not set +# CT_GLIBC_V_2_12_1 is not set CT_GLIBC_VERSION="2.23" CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)" CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" CT_GLIBC_SIGNATURE_FORMAT="packed/.sig" -CT_GLIBC_2_37_or_older=y -CT_GLIBC_older_than_2_37=y -CT_GLIBC_2_36_or_older=y -CT_GLIBC_older_than_2_36=y -CT_GLIBC_2_34_or_older=y -CT_GLIBC_older_than_2_34=y CT_GLIBC_2_32_or_older=y CT_GLIBC_older_than_2_32=y -CT_GLIBC_2_31_or_older=y -CT_GLIBC_older_than_2_31=y CT_GLIBC_2_30_or_older=y CT_GLIBC_older_than_2_30=y CT_GLIBC_2_29_or_older=y @@ -514,15 +486,13 @@ CT_GLIBC_DEP_BINUTILS=y CT_GLIBC_DEP_GCC=y CT_GLIBC_DEP_PYTHON=y CT_GLIBC_SPARC_ALLOW_V7=y -CT_THREADS="nptl" CT_GLIBC_HAS_LIBIDN_ADDON=y # CT_GLIBC_USE_LIBIDN_ADDON is not set CT_GLIBC_NO_SPARC_V8=y CT_GLIBC_HAS_OBSOLETE_RPC=y CT_GLIBC_EXTRA_CONFIG_ARRAY="--with-pic" CT_GLIBC_CONFIGPARMS="" -# CT_GLIBC_ENABLE_DEBUG is not set -CT_GLIBC_EXTRA_CFLAGS="-fPIC -DPIC -no-pie" +CT_GLIBC_EXTRA_CFLAGS="-fPIC -DPIC" CT_GLIBC_ENABLE_OBSOLETE_RPC=y # CT_GLIBC_ENABLE_FORTIFIED_BUILD is not set # CT_GLIBC_DISABLE_VERSIONING is not set @@ -532,9 +502,9 @@ CT_GLIBC_FORCE_UNWIND=y # CT_GLIBC_KERNEL_VERSION_NONE is not set CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y # CT_GLIBC_KERNEL_VERSION_CHOSEN is not set -CT_GLIBC_MIN_KERNEL="4.4.302" +CT_GLIBC_MIN_KERNEL="4.4.292" CT_GLIBC_ENABLE_COMMON_FLAG=y -CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG" +CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG" CT_LIBC_SUPPORT_THREADS_ANY=y CT_LIBC_SUPPORT_THREADS_NATIVE=y @@ -553,8 +523,6 @@ CT_CC_CORE_NEEDED=y CT_CC_SUPPORT_CXX=y CT_CC_SUPPORT_FORTRAN=y CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_D=y -CT_CC_SUPPORT_JIT=y CT_CC_SUPPORT_OBJC=y CT_CC_SUPPORT_OBJCXX=y CT_CC_SUPPORT_GOLANG=y @@ -570,7 +538,6 @@ CT_CC_GCC_PKG_KSYM="GCC" CT_GCC_DIR_NAME="gcc" CT_GCC_USE_GNU=y # CT_GCC_USE_LINARO is not set -# CT_GCC_USE_ORACLE is not set CT_GCC_USE="GCC" CT_GCC_PKG_NAME="gcc" CT_GCC_SRC_RELEASE=y @@ -583,9 +550,7 @@ CT_GCC_PATCH_GLOBAL=y # CT_GCC_PATCH_LOCAL_BUNDLED is not set # CT_GCC_PATCH_NONE is not set CT_GCC_PATCH_ORDER="global" -CT_GCC_V_13=y -# CT_GCC_V_12 is not set -# CT_GCC_V_11 is not set +CT_GCC_V_11=y # CT_GCC_V_10 is not set # CT_GCC_V_9 is not set # CT_GCC_V_8 is not set @@ -593,16 +558,12 @@ CT_GCC_V_13=y # CT_GCC_V_6 is not set # CT_GCC_V_5 is not set # CT_GCC_V_4_9 is not set -CT_GCC_VERSION="13.1.0" +CT_GCC_VERSION="11.2.0" CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_13=y -CT_GCC_13_or_later=y -CT_GCC_later_than_12=y -CT_GCC_12_or_later=y CT_GCC_later_than_11=y CT_GCC_11_or_later=y CT_GCC_later_than_10=y @@ -623,7 +584,7 @@ CT_CC_GCC_ENABLE_PLUGINS=y CT_CC_GCC_HAS_LIBMPX=y CT_CC_GCC_ENABLE_CXX_FLAGS="" CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2" +CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp" # CT_CC_GCC_STATIC_LIBSTDCXX is not set # CT_CC_GCC_SYSTEM_ZLIB is not set CT_CC_GCC_CONFIG_TLS=m @@ -638,7 +599,6 @@ CT_CC_GCC_LTO_ZSTD=m # # Settings for libraries running on target # -CT_CC_GCC_ENABLE_DEFAULT_PIE=y # CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set # CT_CC_GCC_LIBMUDFLAP is not set CT_CC_GCC_LIBGOMP=y @@ -646,7 +606,6 @@ CT_CC_GCC_LIBSSP=m # CT_CC_GCC_LIBQUADMATH is not set # CT_CC_GCC_LIBSANITIZER is not set # CT_CC_GCC_LIBMPX is not set -# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set # # Misc. obscure options. @@ -674,9 +633,7 @@ CT_ALL_CC_CHOICES="GCC" # CT_CC_LANG_CXX=y # CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JIT is not set # CT_CC_LANG_ADA is not set -# CT_CC_LANG_D is not set # CT_CC_LANG_OBJC is not set # CT_CC_LANG_OBJCXX is not set # CT_CC_LANG_GOLANG is not set @@ -773,10 +730,7 @@ CT_ISL_PATCH_GLOBAL=y # CT_ISL_PATCH_LOCAL_BUNDLED is not set # CT_ISL_PATCH_NONE is not set CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_26=y -# CT_ISL_V_0_25 is not set -# CT_ISL_V_0_24 is not set -# CT_ISL_V_0_23 is not set +CT_ISL_V_0_24=y # CT_ISL_V_0_22 is not set # CT_ISL_V_0_21 is not set # CT_ISL_V_0_20 is not set @@ -785,8 +739,7 @@ CT_ISL_V_0_26=y # CT_ISL_V_0_17 is not set # CT_ISL_V_0_16 is not set # CT_ISL_V_0_15 is not set -# CT_ISL_V_0_11 is not set -CT_ISL_VERSION="0.26" +CT_ISL_VERSION="0.24" CT_ISL_MIRRORS="https://libisl.sourceforge.io" CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" @@ -836,7 +789,7 @@ CT_MPC_PATCH_ORDER="global" CT_MPC_V_1_2=y # CT_MPC_V_1_1 is not set # CT_MPC_V_1_0 is not set -CT_MPC_VERSION="1.2.1" +CT_MPC_VERSION="1.2.0" CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" @@ -883,11 +836,10 @@ CT_NCURSES_PATCH_GLOBAL=y # CT_NCURSES_PATCH_LOCAL_BUNDLED is not set # CT_NCURSES_PATCH_NONE is not set CT_NCURSES_PATCH_ORDER="global" -CT_NCURSES_V_6_4=y -# CT_NCURSES_V_6_2 is not set +CT_NCURSES_V_6_2=y # CT_NCURSES_V_6_1 is not set # CT_NCURSES_V_6_0 is not set -CT_NCURSES_VERSION="6.4" +CT_NCURSES_VERSION="6.2" CT_NCURSES_MIRRORS="https://invisible-mirror.net/archives/ncurses $(CT_Mirrors GNU ncurses)" CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" @@ -914,37 +866,14 @@ CT_ZLIB_PATCH_GLOBAL=y # CT_ZLIB_PATCH_LOCAL_BUNDLED is not set # CT_ZLIB_PATCH_NONE is not set CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_13=y -# CT_ZLIB_V_1_2_12 is not set -CT_ZLIB_VERSION="1.2.13" -CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/" +CT_ZLIB_V_1_2_11=y +CT_ZLIB_VERSION="1.2.11" +CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/" CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_COMP_LIBS_ZSTD=y -CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD" -CT_ZSTD_DIR_NAME="zstd" -CT_ZSTD_PKG_NAME="zstd" -CT_ZSTD_SRC_RELEASE=y -# CT_ZSTD_SRC_DEVEL is not set -# CT_ZSTD_SRC_CUSTOM is not set -CT_ZSTD_PATCH_GLOBAL=y -# CT_ZSTD_PATCH_BUNDLED is not set -# CT_ZSTD_PATCH_LOCAL is not set -# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set -# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set -# CT_ZSTD_PATCH_NONE is not set -CT_ZSTD_PATCH_ORDER="global" -CT_ZSTD_V_1_5_5=y -# CT_ZSTD_V_1_5_2 is not set -CT_ZSTD_VERSION="1.5.5" -CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/" -CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_FORMATS=".tar.gz" -CT_ZSTD_SIGNATURE_FORMAT="packed/.sig" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD" +CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB" CT_LIBICONV_NEEDED=y CT_GETTEXT_NEEDED=y CT_GMP_NEEDED=y @@ -953,7 +882,6 @@ CT_ISL_NEEDED=y CT_MPC_NEEDED=y CT_NCURSES_NEEDED=y CT_ZLIB_NEEDED=y -CT_ZSTD_NEEDED=y CT_LIBICONV=y CT_GETTEXT=y CT_GMP=y @@ -962,7 +890,6 @@ CT_ISL=y CT_MPC=y CT_NCURSES=y CT_ZLIB=y -CT_ZSTD=y # end of Companion libraries # diff --git a/images/base-linux64/toolchain.cmake b/images/base-linux64/toolchain.cmake index 91f8226..dd73670 100644 --- a/images/base-linux64/toolchain.cmake +++ b/images/base-linux64/toolchain.cmake @@ -5,8 +5,8 @@ set(triple x86_64-ffbuild-linux-gnu) set(CMAKE_C_COMPILER ${triple}-gcc) set(CMAKE_CXX_COMPILER ${triple}-g++) -set(CMAKE_RANLIB ${triple}-gcc-ranlib) -set(CMAKE_AR ${triple}-gcc-ar) +set(CMAKE_RANLIB ${triple}-ranlib) +set(CMAKE_AR ${triple}-ar) set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot) set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild) diff --git a/images/base-linuxarm64/Dockerfile b/images/base-linuxarm64/Dockerfile deleted file mode 100644 index 89be1fd..0000000 --- a/images/base-linuxarm64/Dockerfile +++ /dev/null @@ -1,63 +0,0 @@ -ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds -FROM $GH_REPO/base:latest - -RUN --mount=src=ct-ng-config,dst=/.config \ - git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \ - ./bootstrap && \ - ./configure --enable-local && \ - make -j$(nproc) && \ - cp /.config .config && \ - ./ct-ng build && \ - cd / && \ - rm -rf ct-ng - -# Prepare cross environment to heavily favour static builds -RUN \ - find /opt/ct-ng -type l \ - -and -name '*.so' \ - -and -not -ipath '*plugin*' \ - -and -not -name 'libdl.*' \ - -and -not -name 'libc.*' \ - -and -not -name 'libm.*' \ - -and -not -name 'libmvec.*' \ - -and -not -name 'librt.*' \ - -and -not -name 'libpthread.*' \ - -delete && \ - find /opt/ct-ng \ - -name 'libdl.a' \ - -or -name 'libc.a' \ - -or -name 'libm.a' \ - -or -name 'libmvec.a' \ - -or -name 'librt.a' \ - -or -name 'libpthread.a' \ - -delete && \ - mkdir /opt/ffbuild - -RUN rustup target add aarch64-unknown-linux-gnu - -ADD toolchain.cmake /toolchain.cmake -ADD cross.meson /cross.meson - -ADD gen-implib.sh /usr/bin/gen-implib -RUN git clone --filter=blob:none --depth=1 https://github.com/yugr/Implib.so /opt/implib - -ENV FFBUILD_TOOLCHAIN=aarch64-ffbuild-linux-gnu -ENV PATH="/opt/ct-ng/bin:${PATH}" \ - FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=aarch64 --target-os=linux" \ - FFBUILD_CROSS_PREFIX="${FFBUILD_TOOLCHAIN}-" \ - FFBUILD_RUST_TARGET="aarch64-unknown-linux-gnu" \ - FFBUILD_PREFIX=/opt/ffbuild \ - FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \ - PKG_CONFIG=pkg-config \ - PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \ - CC="${FFBUILD_TOOLCHAIN}-gcc" \ - CXX="${FFBUILD_TOOLCHAIN}-g++" \ - LD="${FFBUILD_TOOLCHAIN}-ld" \ - AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \ - RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \ - NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \ - CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ - CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ - LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm" \ - STAGE_CFLAGS="-fvisibility=hidden -fno-semantic-interposition" \ - STAGE_CXXFLAGS="-fvisibility=hidden -fno-semantic-interposition" diff --git a/images/base-linuxarm64/cross.meson b/images/base-linuxarm64/cross.meson deleted file mode 100644 index 88a8609..0000000 --- a/images/base-linuxarm64/cross.meson +++ /dev/null @@ -1,13 +0,0 @@ -[binaries] -c = 'aarch64-ffbuild-linux-gnu-gcc' -cpp = 'aarch64-ffbuild-linux-gnu-g++' -ld = 'aarch64-ffbuild-linux-gnu-ld' -ar = 'aarch64-ffbuild-linux-gnu-gcc-ar' -ranlib = 'x86_64-ffbuild-linux-gnu-gcc-ranlib' -strip = 'aarch64-ffbuild-linux-gnu-strip' - -[host_machine] -system = 'linux' -cpu_family = 'aarch64' -cpu = 'aarch64' -endian = 'little' diff --git a/images/base-linuxarm64/ct-ng-config b/images/base-linuxarm64/ct-ng-config deleted file mode 100644 index 1ab09e8..0000000 --- a/images/base-linuxarm64/ct-ng-config +++ /dev/null @@ -1,998 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG 1.25.0.196_227d99d Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_meson=y -CT_CONFIGURE_has_ninja=y -CT_CONFIGURE_has_rsync=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_71_or_newer=y -CT_CONFIGURE_has_autoreconf_2_71_or_newer=y -CT_CONFIGURE_has_automake_1_16_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_bison_3_0_4_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_VERSION="1.25.0.196_227d99d" -CT_VCHECK="" -CT_CONFIG_VERSION_ENV="4" -CT_CONFIG_VERSION_CURRENT="4" -CT_CONFIG_VERSION="4" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -CT_OBSOLETE=y -CT_EXPERIMENTAL=y -CT_ALLOW_BUILD_AS_ROOT=y -CT_ALLOW_BUILD_AS_ROOT_SURE=y -# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${HOME}/src" -# CT_SAVE_TARBALLS is not set -# CT_TARBALLS_BUILDROOT_LAYOUT is not set -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_BUILD_DIR="${CT_BUILD_TOP_DIR}/build" -CT_PREFIX_DIR="/opt/ct-ng" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -# CT_INSTALL_LICENSES is not set -# CT_PREFIX_DIR_RO is not set -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y -# CT_TARBALL_RESULT is not set - -# -# Downloading -# -CT_DOWNLOAD_AGENT_WGET=y -# CT_DOWNLOAD_AGENT_CURL is not set -# CT_DOWNLOAD_AGENT_NONE is not set -# CT_FORBID_DOWNLOAD is not set -# CT_FORCE_DOWNLOAD is not set -CT_CONNECT_TIMEOUT=10 -CT_DOWNLOAD_WGET_OPTIONS="--passive-ftp --tries=3 -nc --progress=dot:binary" -# CT_ONLY_DOWNLOAD is not set -# CT_USE_MIRROR is not set -CT_VERIFY_DOWNLOAD_DIGEST=y -CT_VERIFY_DOWNLOAD_DIGEST_SHA512=y -# CT_VERIFY_DOWNLOAD_DIGEST_SHA256 is not set -# CT_VERIFY_DOWNLOAD_DIGEST_SHA1 is not set -# CT_VERIFY_DOWNLOAD_DIGEST_MD5 is not set -CT_VERIFY_DOWNLOAD_DIGEST_ALG="sha512" -# CT_VERIFY_DOWNLOAD_SIGNATURE is not set - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="-fPIC -DPIC" -CT_EXTRA_CXXFLAGS_FOR_BUILD="-fPIC -DPIC" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="-fPIC -DPIC" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -# CT_LOG_INFO is not set -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -CT_LOG_DEBUG=y -CT_LOG_LEVEL_MAX="DEBUG" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_TO_FILE is not set -# end of Paths and misc options - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -CT_ARCH_ARM=y -# CT_ARCH_AVR is not set -# CT_ARCH_BPF is not set -# CT_ARCH_C6X is not set -# CT_ARCH_LOONGARCH is not set -# CT_ARCH_M68K is not set -# CT_ARCH_MICROBLAZE is not set -# CT_ARCH_MIPS is not set -# CT_ARCH_MOXIE is not set -# CT_ARCH_MSP430 is not set -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_PRU is not set -# CT_ARCH_RISCV is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -# CT_ARCH_X86 is not set -# CT_ARCH_XTENSA is not set -CT_ARCH="arm" -CT_ARCH_CHOICE_KSYM="ARM" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_ARCH_ARM_SHOW=y - -# -# Options for arm -# -CT_ARCH_ARM_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_FLAT_FORMAT=y -CT_ARCH_SUPPORTS_LIBSANITIZER=y -CT_ARCH_SUPPORTS_EITHER_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_ARCH="" -CT_TARGET_CFLAGS="-fPIC -DPIC" -CT_TARGET_LDFLAGS="" -# end of Target options - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="ffbuild" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -# CT_TOOLCHAIN_ENABLE_NLS is not set -# end of Toolchain options - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_USE_WWW_KERNEL_ORG=y -# CT_LINUX_USE_ORACLE is not set -CT_LINUX_USE="LINUX" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -# CT_LINUX_SRC_DEVEL is not set -# CT_LINUX_SRC_CUSTOM is not set -CT_LINUX_PATCH_GLOBAL=y -# CT_LINUX_PATCH_BUNDLED is not set -# CT_LINUX_PATCH_LOCAL is not set -# CT_LINUX_PATCH_BUNDLED_LOCAL is not set -# CT_LINUX_PATCH_LOCAL_BUNDLED is not set -# CT_LINUX_PATCH_NONE is not set -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_6_3 is not set -# CT_LINUX_V_6_2 is not set -# CT_LINUX_V_6_1 is not set -# CT_LINUX_V_6_0 is not set -# CT_LINUX_V_5_19 is not set -# CT_LINUX_V_5_18 is not set -# CT_LINUX_V_5_17 is not set -# CT_LINUX_V_5_16 is not set -# CT_LINUX_V_5_15 is not set -# CT_LINUX_V_5_14 is not set -# CT_LINUX_V_5_13 is not set -# CT_LINUX_V_5_12 is not set -# CT_LINUX_V_5_11 is not set -# CT_LINUX_V_5_10 is not set -# CT_LINUX_V_5_9 is not set -# CT_LINUX_V_5_8 is not set -# CT_LINUX_V_5_7 is not set -# CT_LINUX_V_5_5 is not set -# CT_LINUX_V_5_4 is not set -# CT_LINUX_V_5_3 is not set -# CT_LINUX_V_5_2 is not set -# CT_LINUX_V_5_1 is not set -# CT_LINUX_V_5_0 is not set -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -CT_LINUX_V_4_15=y -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_18 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -CT_LINUX_VERSION="4.15.18" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_5_19_or_older=y -CT_LINUX_older_than_5_19=y -CT_LINUX_5_12_or_older=y -CT_LINUX_older_than_5_12=y -CT_LINUX_5_5_or_older=y -CT_LINUX_older_than_5_5=y -CT_LINUX_5_3_or_older=y -CT_LINUX_older_than_5_3=y -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_REQUIRE_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_LINUX_REQUIRE_3_2_or_later=y -CT_KERNEL_DEP_RSYNC=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -# CT_KERNEL_LINUX_INSTALL_CHECK is not set -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y -# end of Operating System - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -# CT_BINUTILS_USE_LINARO is not set -# CT_BINUTILS_USE_ORACLE is not set -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -# CT_BINUTILS_SRC_DEVEL is not set -# CT_BINUTILS_SRC_CUSTOM is not set -CT_BINUTILS_PATCH_GLOBAL=y -# CT_BINUTILS_PATCH_BUNDLED is not set -# CT_BINUTILS_PATCH_LOCAL is not set -# CT_BINUTILS_PATCH_BUNDLED_LOCAL is not set -# CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set -# CT_BINUTILS_PATCH_NONE is not set -CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_40=y -# CT_BINUTILS_V_2_39 is not set -# CT_BINUTILS_V_2_38 is not set -# CT_BINUTILS_V_2_37 is not set -# CT_BINUTILS_V_2_36 is not set -# CT_BINUTILS_V_2_35 is not set -# CT_BINUTILS_V_2_34 is not set -# CT_BINUTILS_V_2_33 is not set -# CT_BINUTILS_V_2_32 is not set -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_VERSION="2.40" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_39=y -CT_BINUTILS_2_39_or_later=y -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_26=y -CT_BINUTILS_2_26_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_LD_GOLD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -CT_BINUTILS_PLUGINS=y -CT_BINUTILS_RELRO=m -CT_BINUTILS_DETERMINISTIC_ARCHIVES=y -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -# CT_BINUTILS_FOR_TARGET is not set -CT_ALL_BINUTILS_CHOICES="BINUTILS" -# end of Binary utilities - -# -# C-library -# -CT_LIBC_GLIBC=y -# CT_LIBC_MUSL is not set -# CT_LIBC_UCLIBC_NG is not set -CT_LIBC="glibc" -CT_LIBC_CHOICE_KSYM="GLIBC" -CT_LIBC_GLIBC_SHOW=y - -# -# Options for glibc -# -CT_LIBC_GLIBC_PKG_KSYM="GLIBC" -CT_GLIBC_DIR_NAME="glibc" -CT_GLIBC_USE_GNU=y -# CT_GLIBC_USE_ORACLE is not set -CT_GLIBC_USE="GLIBC" -CT_GLIBC_PKG_NAME="glibc" -CT_GLIBC_SRC_RELEASE=y -# CT_GLIBC_SRC_DEVEL is not set -# CT_GLIBC_SRC_CUSTOM is not set -CT_GLIBC_PATCH_GLOBAL=y -# CT_GLIBC_PATCH_BUNDLED is not set -# CT_GLIBC_PATCH_LOCAL is not set -# CT_GLIBC_PATCH_BUNDLED_LOCAL is not set -# CT_GLIBC_PATCH_LOCAL_BUNDLED is not set -# CT_GLIBC_PATCH_NONE is not set -CT_GLIBC_PATCH_ORDER="global" -# CT_GLIBC_V_2_37 is not set -# CT_GLIBC_V_2_36 is not set -# CT_GLIBC_V_2_35 is not set -# CT_GLIBC_V_2_34 is not set -# CT_GLIBC_V_2_33 is not set -# CT_GLIBC_V_2_32 is not set -# CT_GLIBC_V_2_31 is not set -# CT_GLIBC_V_2_30 is not set -# CT_GLIBC_V_2_29 is not set -# CT_GLIBC_V_2_28 is not set -CT_GLIBC_V_2_27=y -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -CT_GLIBC_VERSION="2.27" -CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)" -CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_GLIBC_SIGNATURE_FORMAT="packed/.sig" -CT_GLIBC_2_37_or_older=y -CT_GLIBC_older_than_2_37=y -CT_GLIBC_2_36_or_older=y -CT_GLIBC_older_than_2_36=y -CT_GLIBC_2_34_or_older=y -CT_GLIBC_older_than_2_34=y -CT_GLIBC_2_32_or_older=y -CT_GLIBC_older_than_2_32=y -CT_GLIBC_2_31_or_older=y -CT_GLIBC_older_than_2_31=y -CT_GLIBC_2_30_or_older=y -CT_GLIBC_older_than_2_30=y -CT_GLIBC_2_29_or_older=y -CT_GLIBC_older_than_2_29=y -CT_GLIBC_2_28_or_older=y -CT_GLIBC_older_than_2_28=y -CT_GLIBC_2_27_or_later=y -CT_GLIBC_2_27_or_older=y -CT_GLIBC_later_than_2_26=y -CT_GLIBC_2_26_or_later=y -CT_GLIBC_later_than_2_25=y -CT_GLIBC_2_25_or_later=y -CT_GLIBC_later_than_2_24=y -CT_GLIBC_2_24_or_later=y -CT_GLIBC_later_than_2_23=y -CT_GLIBC_2_23_or_later=y -CT_GLIBC_later_than_2_20=y -CT_GLIBC_2_20_or_later=y -CT_GLIBC_later_than_2_17=y -CT_GLIBC_2_17_or_later=y -CT_GLIBC_later_than_2_14=y -CT_GLIBC_2_14_or_later=y -CT_GLIBC_DEP_KERNEL_HEADERS_VERSION=y -CT_GLIBC_DEP_BINUTILS=y -CT_GLIBC_DEP_GCC=y -CT_GLIBC_DEP_PYTHON=y -CT_GLIBC_SPARC_ALLOW_V7=y -CT_THREADS="nptl" -CT_GLIBC_BUILD_SSP=y -CT_GLIBC_HAS_LIBIDN_ADDON=y -# CT_GLIBC_USE_LIBIDN_ADDON is not set -CT_GLIBC_NO_SPARC_V8=y -CT_GLIBC_HAS_OBSOLETE_RPC=y -CT_GLIBC_EXTRA_CONFIG_ARRAY="--with-pic" -CT_GLIBC_CONFIGPARMS="" -# CT_GLIBC_ENABLE_DEBUG is not set -CT_GLIBC_EXTRA_CFLAGS="-fPIC -DPIC" -CT_GLIBC_ENABLE_OBSOLETE_RPC=y -# CT_GLIBC_ENABLE_FORTIFIED_BUILD is not set -# CT_GLIBC_DISABLE_VERSIONING is not set -CT_GLIBC_OLDEST_ABI="" -CT_GLIBC_FORCE_UNWIND=y -# CT_GLIBC_LOCALES is not set -# CT_GLIBC_KERNEL_VERSION_NONE is not set -CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y -# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set -CT_GLIBC_MIN_KERNEL="4.15.18" -CT_GLIBC_SSP_DEFAULT=y -# CT_GLIBC_SSP_NO is not set -# CT_GLIBC_SSP_YES is not set -# CT_GLIBC_SSP_ALL is not set -# CT_GLIBC_SSP_STRONG is not set -CT_GLIBC_ENABLE_COMMON_FLAG=y -CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y -# end of C-library - -# -# C compiler -# -CT_CC_CORE_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_D=y -CT_CC_SUPPORT_JIT=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -# CT_GCC_USE_LINARO is not set -# CT_GCC_USE_ORACLE is not set -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -# CT_GCC_SRC_DEVEL is not set -# CT_GCC_SRC_CUSTOM is not set -CT_GCC_PATCH_GLOBAL=y -# CT_GCC_PATCH_BUNDLED is not set -# CT_GCC_PATCH_LOCAL is not set -# CT_GCC_PATCH_BUNDLED_LOCAL is not set -# CT_GCC_PATCH_LOCAL_BUNDLED is not set -# CT_GCC_PATCH_NONE is not set -CT_GCC_PATCH_ORDER="global" -CT_GCC_V_13=y -# CT_GCC_V_12 is not set -# CT_GCC_V_11 is not set -# CT_GCC_V_10 is not set -# CT_GCC_V_9 is not set -# CT_GCC_V_8 is not set -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -# CT_GCC_V_5 is not set -# CT_GCC_V_4_9 is not set -CT_GCC_VERSION="13.1.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_13=y -CT_GCC_13_or_later=y -CT_GCC_later_than_12=y -CT_GCC_12_or_later=y -CT_GCC_later_than_11=y -CT_GCC_11_or_later=y -CT_GCC_later_than_10=y -CT_GCC_10_or_later=y -CT_GCC_later_than_9=y -CT_GCC_9_or_later=y -CT_GCC_later_than_8=y -CT_GCC_8_or_later=y -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_REQUIRE_4_9_or_later=y -CT_CC_GCC_ENABLE_PLUGINS=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2" -# CT_CC_GCC_STATIC_LIBSTDCXX is not set -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y -CT_CC_GCC_LTO_ZSTD=m - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_DEFAULT_PIE=y -# CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set -# CT_CC_GCC_LIBMUDFLAP is not set -CT_CC_GCC_LIBGOMP=y -CT_CC_GCC_LIBSSP=m -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSANITIZER is not set -# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -CT_CC_GCC_TM_CLONE_REGISTRY=m -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOATS_AUTO=y -# CT_CC_GCC_DEC_FLOATS_BID is not set -# CT_CC_GCC_DEC_FLOATS_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_GCC_DEC_FLOATS="" -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JIT is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_D is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" -# end of C compiler - -# -# Debug facilities -# -# CT_DEBUG_DUMA is not set -# CT_DEBUG_GDB is not set -# CT_DEBUG_LTRACE is not set -# CT_DEBUG_STRACE is not set -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" -# end of Debug facilities - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -# CT_COMP_LIBS_EXPAT is not set -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -# CT_GETTEXT_SRC_DEVEL is not set -# CT_GETTEXT_SRC_CUSTOM is not set -CT_GETTEXT_PATCH_GLOBAL=y -# CT_GETTEXT_PATCH_BUNDLED is not set -# CT_GETTEXT_PATCH_LOCAL is not set -# CT_GETTEXT_PATCH_BUNDLED_LOCAL is not set -# CT_GETTEXT_PATCH_LOCAL_BUNDLED is not set -# CT_GETTEXT_PATCH_NONE is not set -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_21=y -# CT_GETTEXT_V_0_20_1 is not set -# CT_GETTEXT_V_0_19_8_1 is not set -CT_GETTEXT_VERSION="0.21" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_GETTEXT_0_21_or_later=y -CT_GETTEXT_0_21_or_older=y -CT_GETTEXT_INCOMPATIBLE_WITH_UCLIBC_NG=y - -# -# This version of gettext is not compatible with uClibc-NG. Select -# - -# -# a different version if uClibc-NG is used on the target or (in a -# - -# -# Canadian cross build) on the host. -# -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -# CT_GMP_SRC_DEVEL is not set -# CT_GMP_SRC_CUSTOM is not set -CT_GMP_PATCH_GLOBAL=y -# CT_GMP_PATCH_BUNDLED is not set -# CT_GMP_PATCH_LOCAL is not set -# CT_GMP_PATCH_BUNDLED_LOCAL is not set -# CT_GMP_PATCH_LOCAL_BUNDLED is not set -# CT_GMP_PATCH_NONE is not set -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_2=y -# CT_GMP_V_6_1 is not set -CT_GMP_VERSION="6.2.1" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -# CT_ISL_SRC_DEVEL is not set -# CT_ISL_SRC_CUSTOM is not set -CT_ISL_PATCH_GLOBAL=y -# CT_ISL_PATCH_BUNDLED is not set -# CT_ISL_PATCH_LOCAL is not set -# CT_ISL_PATCH_BUNDLED_LOCAL is not set -# CT_ISL_PATCH_LOCAL_BUNDLED is not set -# CT_ISL_PATCH_NONE is not set -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_26=y -# CT_ISL_V_0_25 is not set -# CT_ISL_V_0_24 is not set -# CT_ISL_V_0_23 is not set -# CT_ISL_V_0_22 is not set -# CT_ISL_V_0_21 is not set -# CT_ISL_V_0_20 is not set -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_V_0_11 is not set -CT_ISL_VERSION="0.26" -CT_ISL_MIRRORS="https://libisl.sourceforge.io" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_later_than_0_18=y -CT_ISL_0_18_or_later=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -# CT_COMP_LIBS_LIBELF is not set -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -# CT_LIBICONV_SRC_DEVEL is not set -# CT_LIBICONV_SRC_CUSTOM is not set -CT_LIBICONV_PATCH_GLOBAL=y -# CT_LIBICONV_PATCH_BUNDLED is not set -# CT_LIBICONV_PATCH_LOCAL is not set -# CT_LIBICONV_PATCH_BUNDLED_LOCAL is not set -# CT_LIBICONV_PATCH_LOCAL_BUNDLED is not set -# CT_LIBICONV_PATCH_NONE is not set -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_16=y -# CT_LIBICONV_V_1_15 is not set -CT_LIBICONV_VERSION="1.16" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -# CT_MPC_SRC_DEVEL is not set -# CT_MPC_SRC_CUSTOM is not set -CT_MPC_PATCH_GLOBAL=y -# CT_MPC_PATCH_BUNDLED is not set -# CT_MPC_PATCH_LOCAL is not set -# CT_MPC_PATCH_BUNDLED_LOCAL is not set -# CT_MPC_PATCH_LOCAL_BUNDLED is not set -# CT_MPC_PATCH_NONE is not set -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_2=y -# CT_MPC_V_1_1 is not set -# CT_MPC_V_1_0 is not set -CT_MPC_VERSION="1.2.1" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_later_than_1_1_0=y -CT_MPC_1_1_0_or_later=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -# CT_MPFR_SRC_DEVEL is not set -# CT_MPFR_SRC_CUSTOM is not set -CT_MPFR_PATCH_GLOBAL=y -# CT_MPFR_PATCH_BUNDLED is not set -# CT_MPFR_PATCH_LOCAL is not set -# CT_MPFR_PATCH_BUNDLED_LOCAL is not set -# CT_MPFR_PATCH_LOCAL_BUNDLED is not set -# CT_MPFR_PATCH_NONE is not set -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_4_0 is not set -# CT_MPFR_V_3_1 is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -# CT_NCURSES_SRC_DEVEL is not set -# CT_NCURSES_SRC_CUSTOM is not set -CT_NCURSES_PATCH_GLOBAL=y -# CT_NCURSES_PATCH_BUNDLED is not set -# CT_NCURSES_PATCH_LOCAL is not set -# CT_NCURSES_PATCH_BUNDLED_LOCAL is not set -# CT_NCURSES_PATCH_LOCAL_BUNDLED is not set -# CT_NCURSES_PATCH_NONE is not set -CT_NCURSES_PATCH_ORDER="global" -CT_NCURSES_V_6_4=y -# CT_NCURSES_V_6_2 is not set -# CT_NCURSES_V_6_1 is not set -# CT_NCURSES_V_6_0 is not set -CT_NCURSES_VERSION="6.4" -CT_NCURSES_MIRRORS="https://invisible-mirror.net/archives/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -# CT_ZLIB_SRC_DEVEL is not set -# CT_ZLIB_SRC_CUSTOM is not set -CT_ZLIB_PATCH_GLOBAL=y -# CT_ZLIB_PATCH_BUNDLED is not set -# CT_ZLIB_PATCH_LOCAL is not set -# CT_ZLIB_PATCH_BUNDLED_LOCAL is not set -# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set -# CT_ZLIB_PATCH_NONE is not set -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_13=y -# CT_ZLIB_V_1_2_12 is not set -CT_ZLIB_VERSION="1.2.13" -CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_COMP_LIBS_ZSTD=y -CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD" -CT_ZSTD_DIR_NAME="zstd" -CT_ZSTD_PKG_NAME="zstd" -CT_ZSTD_SRC_RELEASE=y -# CT_ZSTD_SRC_DEVEL is not set -# CT_ZSTD_SRC_CUSTOM is not set -CT_ZSTD_PATCH_GLOBAL=y -# CT_ZSTD_PATCH_BUNDLED is not set -# CT_ZSTD_PATCH_LOCAL is not set -# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set -# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set -# CT_ZSTD_PATCH_NONE is not set -CT_ZSTD_PATCH_ORDER="global" -CT_ZSTD_V_1_5_5=y -# CT_ZSTD_V_1_5_2 is not set -CT_ZSTD_VERSION="1.5.5" -CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/" -CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_FORMATS=".tar.gz" -CT_ZSTD_SIGNATURE_FORMAT="packed/.sig" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_ZSTD_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_NCURSES=y -CT_ZLIB=y -CT_ZSTD=y -# end of Companion libraries - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -# CT_COMP_TOOLS_AUTOCONF is not set -# CT_COMP_TOOLS_AUTOMAKE is not set -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -# CT_COMP_TOOLS_LIBTOOL is not set -# CT_COMP_TOOLS_M4 is not set -# CT_COMP_TOOLS_MAKE is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" -# end of Companion tools - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set -# end of Test suite diff --git a/images/base-linuxarm64/gen-implib.sh b/images/base-linuxarm64/gen-implib.sh deleted file mode 100755 index 71d6d46..0000000 --- a/images/base-linuxarm64/gen-implib.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -e -if [[ $# != 2 ]]; then - echo "Invalid arguments" - exit 1 -fi -IN="$1" -OUT="$2" - -TMPDIR="$(mktemp -d)" -trap "rm -rf '$TMPDIR'" EXIT -cd "$TMPDIR" - -set -x -python3 /opt/implib/implib-gen.py --target aarch64-linux-gnu --dlopen --lazy-load --verbose "$IN" -${FFBUILD_CROSS_PREFIX}gcc $CFLAGS $STAGE_CFLAGS -DIMPLIB_HIDDEN_SHIMS -c *.tramp.S *.init.c -${FFBUILD_CROSS_PREFIX}ar -rcs "$OUT" *.tramp.o *.init.o diff --git a/images/base-linuxarm64/toolchain.cmake b/images/base-linuxarm64/toolchain.cmake deleted file mode 100644 index 9ca16df..0000000 --- a/images/base-linuxarm64/toolchain.cmake +++ /dev/null @@ -1,16 +0,0 @@ -set(CMAKE_SYSTEM_NAME Linux) -set(CMAKE_SYSTEM_PROCESSOR aarch64) - -set(triple aarch64-ffbuild-linux-gnu) - -set(CMAKE_C_COMPILER ${triple}-gcc) -set(CMAKE_CXX_COMPILER ${triple}-g++) -set(CMAKE_RANLIB ${triple}-gcc-ranlib) -set(CMAKE_AR ${triple}-gcc-ar) - -set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot) -set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild) - -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/images/base-win32/Dockerfile b/images/base-win32/Dockerfile index 01105ef..d62ac18 100644 --- a/images/base-win32/Dockerfile +++ b/images/base-win32/Dockerfile @@ -1,5 +1,5 @@ -ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds -FROM $GH_REPO/base:latest +ARG GH_REPO=btbn/ffmpeg-builds +FROM ghcr.io/$GH_REPO/base:latest RUN --mount=src=ct-ng-config,dst=/.config \ git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \ @@ -24,24 +24,18 @@ RUN rustup target add i686-pc-windows-gnu ADD toolchain.cmake /toolchain.cmake ADD cross.meson /cross.meson -ENV FFBUILD_TOOLCHAIN=i686-w64-mingw32 ENV PATH="/opt/ct-ng/bin:${PATH}" \ - FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=i686 --target-os=mingw32" \ - FFBUILD_CROSS_PREFIX=${FFBUILD_TOOLCHAIN}- \ + FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=i686-w64-mingw32- --arch=i686 --target-os=mingw32" \ + FFBUILD_TOOLCHAIN=i686-w64-mingw32 \ + FFBUILD_CROSS_PREFIX=i686-w64-mingw32- \ FFBUILD_RUST_TARGET=i686-pc-windows-gnu \ FFBUILD_PREFIX=/opt/ffbuild \ FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \ PKG_CONFIG=pkg-config \ PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \ - CC="${FFBUILD_TOOLCHAIN}-gcc" \ - CXX="${FFBUILD_TOOLCHAIN}-g++" \ - LD="${FFBUILD_TOOLCHAIN}-ld" \ - AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \ - RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \ - NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \ - DLLTOOL="${FFBUILD_TOOLCHAIN}-dlltool" \ CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong" \ + DLLTOOL="i686-w64-mingw32-dlltool" \ STAGE_CFLAGS="-fno-semantic-interposition" \ STAGE_CXXFLAGS="-fno-semantic-interposition" diff --git a/images/base-win32/cross.meson b/images/base-win32/cross.meson index c2a0ad1..5b99ce3 100644 --- a/images/base-win32/cross.meson +++ b/images/base-win32/cross.meson @@ -1,11 +1,9 @@ [binaries] c = 'i686-w64-mingw32-gcc' cpp = 'i686-w64-mingw32-g++' -ar = 'i686-w64-mingw32-gcc-ar' -ranlib = 'i686-w64-mingw32-gcc-ranlib' +ar = 'i686-w64-mingw32-ar' strip = 'i686-w64-mingw32-strip' windres = 'i686-w64-mingw32-windres' -dlltool = 'i686-w64-mingw32-dlltool' exe_wrapper = ['wine'] [properties] diff --git a/images/base-win32/ct-ng-config b/images/base-win32/ct-ng-config index 96759e1..4801234 100644 --- a/images/base-win32/ct-ng-config +++ b/images/base-win32/ct-ng-config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# crosstool-NG 1.25.0.196_227d99d Configuration +# crosstool-NG 1.24.0.533_681aaef Configuration # CT_CONFIGURE_has_static_link=y CT_CONFIGURE_has_cxx11=y @@ -13,13 +13,12 @@ CT_CONFIGURE_has_make_3_81_or_newer=y CT_CONFIGURE_has_make_4_0_or_newer=y CT_CONFIGURE_has_libtool_2_4_or_newer=y CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_71_or_newer=y -CT_CONFIGURE_has_autoreconf_2_71_or_newer=y -CT_CONFIGURE_has_automake_1_16_or_newer=y +CT_CONFIGURE_has_autoconf_2_65_or_newer=y +CT_CONFIGURE_has_autoreconf_2_65_or_newer=y +CT_CONFIGURE_has_automake_1_15_or_newer=y CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y CT_CONFIGURE_has_python_3_4_or_newer=y CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_bison_3_0_4_or_newer=y CT_CONFIGURE_has_python=y CT_CONFIGURE_has_svn=y CT_CONFIGURE_has_git=y @@ -28,7 +27,7 @@ CT_CONFIGURE_has_sha1sum=y CT_CONFIGURE_has_sha256sum=y CT_CONFIGURE_has_sha512sum=y CT_CONFIGURE_has_install_with_strip_program=y -CT_VERSION="1.25.0.196_227d99d" +CT_VERSION="1.24.0.533_681aaef" CT_VCHECK="" CT_CONFIG_VERSION_ENV="4" CT_CONFIG_VERSION_CURRENT="4" @@ -46,7 +45,6 @@ CT_MODULES=y CT_EXPERIMENTAL=y CT_ALLOW_BUILD_AS_ROOT=y CT_ALLOW_BUILD_AS_ROOT_SURE=y -# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set # CT_DEBUG_CT is not set # @@ -65,7 +63,6 @@ CT_REMOVE_DOCS=y # CT_PREFIX_DIR_RO is not set CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y -# CT_TARBALL_RESULT is not set # # Downloading @@ -123,11 +120,12 @@ CT_CONFIG_SHELL="${bash}" # CT_LOG_ERROR is not set # CT_LOG_WARN is not set # CT_LOG_INFO is not set -# CT_LOG_EXTRA is not set +CT_LOG_EXTRA=y # CT_LOG_ALL is not set -CT_LOG_DEBUG=y -CT_LOG_LEVEL_MAX="DEBUG" +# CT_LOG_DEBUG is not set +CT_LOG_LEVEL_MAX="EXTRA" # CT_LOG_SEE_TOOLS_WARN is not set +# CT_LOG_PROGRESS_BAR is not set # CT_LOG_TO_FILE is not set # end of Paths and misc options @@ -138,9 +136,7 @@ CT_LOG_LEVEL_MAX="DEBUG" # CT_ARCH_ARC is not set # CT_ARCH_ARM is not set # CT_ARCH_AVR is not set -# CT_ARCH_BPF is not set # CT_ARCH_C6X is not set -# CT_ARCH_LOONGARCH is not set # CT_ARCH_M68K is not set # CT_ARCH_MICROBLAZE is not set # CT_ARCH_MIPS is not set @@ -165,7 +161,7 @@ CT_ARCH_X86_SHOW=y # Options for x86 # CT_ARCH_X86_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" +CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" CT_ARCH_SUFFIX="" # CT_OMIT_TARGET_VENDOR is not set @@ -175,7 +171,6 @@ CT_ARCH_SUFFIX="" # CT_MULTILIB is not set CT_DEMULTILIB=y CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_LIBSANITIZER=y CT_ARCH_SUPPORTS_32=y CT_ARCH_SUPPORTS_64=y CT_ARCH_DEFAULT_32=y @@ -246,7 +241,6 @@ CT_BUILD_SUFFIX="" # Operating System # CT_WINDOWS=y -CT_KERNEL_SUPPORTS_SHARED_LIBS=y # CT_KERNEL_BARE_METAL is not set # CT_KERNEL_LINUX is not set CT_KERNEL_WINDOWS=y @@ -263,7 +257,6 @@ CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" # # Common kernel options # -CT_SHARED_LIBS=y # end of Operating System # @@ -295,9 +288,7 @@ CT_BINUTILS_PATCH_GLOBAL=y # CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set # CT_BINUTILS_PATCH_NONE is not set CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_40=y -# CT_BINUTILS_V_2_39 is not set -# CT_BINUTILS_V_2_38 is not set +CT_BINUTILS_V_2_38=y # CT_BINUTILS_V_2_37 is not set # CT_BINUTILS_V_2_36 is not set # CT_BINUTILS_V_2_35 is not set @@ -310,14 +301,12 @@ CT_BINUTILS_V_2_40=y # CT_BINUTILS_V_2_28 is not set # CT_BINUTILS_V_2_27 is not set # CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_VERSION="2.40" +CT_BINUTILS_VERSION="2.38" CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_39=y -CT_BINUTILS_2_39_or_later=y CT_BINUTILS_later_than_2_30=y CT_BINUTILS_2_30_or_later=y CT_BINUTILS_later_than_2_27=y @@ -368,29 +357,24 @@ CT_MINGW_W64_PATCH_GLOBAL=y # CT_MINGW_W64_PATCH_LOCAL_BUNDLED is not set # CT_MINGW_W64_PATCH_NONE is not set CT_MINGW_W64_PATCH_ORDER="global" -CT_MINGW_W64_V_V10_0=y -# CT_MINGW_W64_V_V9_0 is not set +CT_MINGW_W64_V_V9_0=y # CT_MINGW_W64_V_V8_0 is not set # CT_MINGW_W64_V_V7_0 is not set # CT_MINGW_W64_V_V6_0 is not set # CT_MINGW_W64_V_V5_0 is not set # CT_MINGW_W64_V_V4_0 is not set -CT_MINGW_W64_VERSION="v10.0.0" +CT_MINGW_W64_VERSION="v9.0.0" CT_MINGW_W64_MIRRORS="http://downloads.sourceforge.net/sourceforge/mingw-w64 https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/" CT_MINGW_W64_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_MINGW_W64_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_MINGW_W64_ARCHIVE_FORMATS=".tar.bz2 .zip" CT_MINGW_W64_SIGNATURE_FORMAT="packed/.sig" CT_MINGW_SECURE_API=y -# CT_MINGW_DEFAULT_MSVCRT_DEFAULT is not set -# CT_MINGW_DEFAULT_MSVCRT_MSVCRT is not set -CT_MINGW_DEFAULT_MSVCRT_UCRT=y -# CT_MINGW_DEFAULT_MSVCRT_CUSTOM is not set CT_MINGW_DIRECTX=y CT_MINGW_DDK=y CT_MINGW_TOOLS=y CT_MINGW_TOOL_LIST_ARRAY="gendef genidl genlib genpeimg widl" -CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG" +CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG" CT_LIBC_SUPPORT_THREADS_ANY=y CT_LIBC_SUPPORT_THREADS_NATIVE=y CT_LIBC_SUPPORT_THREADS_POSIX=y @@ -400,8 +384,6 @@ CT_LIBC_SUPPORT_THREADS_POSIX=y # # CT_THREADS_NATIVE is not set CT_THREADS_POSIX=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y # end of C-library # @@ -411,8 +393,6 @@ CT_CC_CORE_NEEDED=y CT_CC_SUPPORT_CXX=y CT_CC_SUPPORT_FORTRAN=y CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_D=y -CT_CC_SUPPORT_JIT=y CT_CC_SUPPORT_OBJC=y CT_CC_SUPPORT_OBJCXX=y CT_CC_SUPPORT_GOLANG=y @@ -428,7 +408,6 @@ CT_CC_GCC_PKG_KSYM="GCC" CT_GCC_DIR_NAME="gcc" CT_GCC_USE_GNU=y # CT_GCC_USE_LINARO is not set -# CT_GCC_USE_ORACLE is not set CT_GCC_USE="GCC" CT_GCC_PKG_NAME="gcc" CT_GCC_SRC_RELEASE=y @@ -441,9 +420,7 @@ CT_GCC_PATCH_GLOBAL=y # CT_GCC_PATCH_LOCAL_BUNDLED is not set # CT_GCC_PATCH_NONE is not set CT_GCC_PATCH_ORDER="global" -CT_GCC_V_13=y -# CT_GCC_V_12 is not set -# CT_GCC_V_11 is not set +CT_GCC_V_11=y # CT_GCC_V_10 is not set # CT_GCC_V_9 is not set # CT_GCC_V_8 is not set @@ -451,16 +428,12 @@ CT_GCC_V_13=y # CT_GCC_V_6 is not set # CT_GCC_V_5 is not set # CT_GCC_V_4_9 is not set -CT_GCC_VERSION="13.1.0" +CT_GCC_VERSION="11.2.0" CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_13=y -CT_GCC_13_or_later=y -CT_GCC_later_than_12=y -CT_GCC_12_or_later=y CT_GCC_later_than_11=y CT_GCC_11_or_later=y CT_GCC_later_than_10=y @@ -480,8 +453,8 @@ CT_GCC_4_9_or_later=y CT_CC_GCC_ENABLE_PLUGINS=y CT_CC_GCC_HAS_LIBMPX=y CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-default-ssp" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2" +CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" +CT_CC_GCC_EXTRA_CONFIG_ARRAY="" CT_CC_GCC_STATIC_LIBSTDCXX=y CT_CC_GCC_SYSTEM_ZLIB=y CT_CC_GCC_CONFIG_TLS=m @@ -501,7 +474,6 @@ CT_CC_GCC_LTO_ZSTD=m CT_CC_GCC_LIBGOMP=y CT_CC_GCC_LIBSSP=m # CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set # # Misc. obscure options. @@ -529,9 +501,7 @@ CT_ALL_CC_CHOICES="GCC" # CT_CC_LANG_CXX=y # CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JIT is not set # CT_CC_LANG_ADA is not set -# CT_CC_LANG_D is not set # CT_CC_LANG_OBJC is not set # CT_CC_LANG_OBJCXX is not set # CT_CC_LANG_GOLANG is not set @@ -628,10 +598,7 @@ CT_ISL_PATCH_GLOBAL=y # CT_ISL_PATCH_LOCAL_BUNDLED is not set # CT_ISL_PATCH_NONE is not set CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_26=y -# CT_ISL_V_0_25 is not set -# CT_ISL_V_0_24 is not set -# CT_ISL_V_0_23 is not set +CT_ISL_V_0_24=y # CT_ISL_V_0_22 is not set # CT_ISL_V_0_21 is not set # CT_ISL_V_0_20 is not set @@ -640,7 +607,7 @@ CT_ISL_V_0_26=y # CT_ISL_V_0_17 is not set # CT_ISL_V_0_16 is not set # CT_ISL_V_0_15 is not set -CT_ISL_VERSION="0.26" +CT_ISL_VERSION="0.24" CT_ISL_MIRRORS="https://libisl.sourceforge.io" CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" @@ -669,7 +636,7 @@ CT_MPC_PATCH_ORDER="global" CT_MPC_V_1_2=y # CT_MPC_V_1_1 is not set # CT_MPC_V_1_0 is not set -CT_MPC_VERSION="1.2.1" +CT_MPC_VERSION="1.2.0" CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" @@ -717,36 +684,14 @@ CT_ZLIB_PATCH_GLOBAL=y # CT_ZLIB_PATCH_LOCAL_BUNDLED is not set # CT_ZLIB_PATCH_NONE is not set CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_13=y -CT_ZLIB_VERSION="1.2.13" -CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/" +CT_ZLIB_V_1_2_11=y +CT_ZLIB_VERSION="1.2.11" +CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/" CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_COMP_LIBS_ZSTD=y -CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD" -CT_ZSTD_DIR_NAME="zstd" -CT_ZSTD_PKG_NAME="zstd" -CT_ZSTD_SRC_RELEASE=y -# CT_ZSTD_SRC_DEVEL is not set -# CT_ZSTD_SRC_CUSTOM is not set -CT_ZSTD_PATCH_GLOBAL=y -# CT_ZSTD_PATCH_BUNDLED is not set -# CT_ZSTD_PATCH_LOCAL is not set -# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set -# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set -# CT_ZSTD_PATCH_NONE is not set -CT_ZSTD_PATCH_ORDER="global" -CT_ZSTD_V_1_5_5=y -# CT_ZSTD_V_1_5_2 is not set -CT_ZSTD_VERSION="1.5.5" -CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/" -CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_FORMATS=".tar.gz" -CT_ZSTD_SIGNATURE_FORMAT="packed/.sig" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD" +CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB" # CT_LIBICONV_NEEDED is not set # CT_GETTEXT_NEEDED is not set CT_GMP_NEEDED=y @@ -754,13 +699,11 @@ CT_MPFR_NEEDED=y CT_ISL_NEEDED=y CT_MPC_NEEDED=y CT_ZLIB_NEEDED=y -CT_ZSTD_NEEDED=y CT_GMP=y CT_MPFR=y CT_ISL=y CT_MPC=y CT_ZLIB=y -CT_ZSTD=y # end of Companion libraries # diff --git a/images/base-win32/toolchain.cmake b/images/base-win32/toolchain.cmake index 4ef5d4c..526610e 100644 --- a/images/base-win32/toolchain.cmake +++ b/images/base-win32/toolchain.cmake @@ -1,16 +1,12 @@ set(CMAKE_SYSTEM_NAME Windows) set(CMAKE_SYSTEM_PROCESSOR i686) -set(triple i686-w64-mingw32) +set(CMAKE_C_COMPILER i686-w64-mingw32-gcc) +set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++) +set(CMAKE_RC_COMPILER i686-w64-mingw32-windres) +set(CMAKE_RANLIB i686-w64-mingw32-ranlib) -set(CMAKE_C_COMPILER ${triple}-gcc) -set(CMAKE_CXX_COMPILER ${triple}-g++) -set(CMAKE_RC_COMPILER ${triple}-windres) -set(CMAKE_RANLIB ${triple}-gcc-ranlib) -set(CMAKE_AR ${triple}-gcc-ar) - -set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot) -set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild) +set(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32 /opt/ffbuild) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) diff --git a/images/base-win64/Dockerfile b/images/base-win64/Dockerfile index 5966a0c..87f5d0f 100644 --- a/images/base-win64/Dockerfile +++ b/images/base-win64/Dockerfile @@ -1,5 +1,5 @@ -ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds -FROM $GH_REPO/base:latest +ARG GH_REPO=btbn/ffmpeg-builds +FROM ghcr.io/$GH_REPO/base:latest RUN --mount=src=ct-ng-config,dst=/.config \ git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \ @@ -24,24 +24,18 @@ RUN rustup target add x86_64-pc-windows-gnu ADD toolchain.cmake /toolchain.cmake ADD cross.meson /cross.meson -ENV FFBUILD_TOOLCHAIN=x86_64-w64-mingw32 ENV PATH="/opt/ct-ng/bin:${PATH}" \ - FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=x86_64 --target-os=mingw32" \ - FFBUILD_CROSS_PREFIX=${FFBUILD_TOOLCHAIN}- \ + FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32" \ + FFBUILD_TOOLCHAIN=x86_64-w64-mingw32 \ + FFBUILD_CROSS_PREFIX=x86_64-w64-mingw32- \ FFBUILD_RUST_TARGET=x86_64-pc-windows-gnu \ FFBUILD_PREFIX=/opt/ffbuild \ FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \ PKG_CONFIG=pkg-config \ PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \ - CC="${FFBUILD_TOOLCHAIN}-gcc" \ - CXX="${FFBUILD_TOOLCHAIN}-g++" \ - LD="${FFBUILD_TOOLCHAIN}-ld" \ - AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \ - RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \ - NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \ - DLLTOOL="${FFBUILD_TOOLCHAIN}-dlltool" \ CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong" \ + DLLTOOL="x86_64-w64-mingw32-dlltool" \ STAGE_CFLAGS="-fno-semantic-interposition" \ STAGE_CXXFLAGS="-fno-semantic-interposition" diff --git a/images/base-win64/cross.meson b/images/base-win64/cross.meson index 0b5513c..f5743f0 100644 --- a/images/base-win64/cross.meson +++ b/images/base-win64/cross.meson @@ -1,11 +1,9 @@ [binaries] c = 'x86_64-w64-mingw32-gcc' cpp = 'x86_64-w64-mingw32-g++' -ar = 'x86_64-w64-mingw32-gcc-ar' -ranlib = 'x86_64-w64-mingw32-gcc-ranlib' +ar = 'x86_64-w64-mingw32-ar' strip = 'x86_64-w64-mingw32-strip' windres = 'x86_64-w64-mingw32-windres' -dlltool = 'x86_64-w64-mingw32-dlltool' exe_wrapper = ['wine'] [properties] diff --git a/images/base-win64/ct-ng-config b/images/base-win64/ct-ng-config index 340cccd..6687370 100644 --- a/images/base-win64/ct-ng-config +++ b/images/base-win64/ct-ng-config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# crosstool-NG 1.25.0.196_227d99d Configuration +# crosstool-NG 1.24.0.533_681aaef Configuration # CT_CONFIGURE_has_static_link=y CT_CONFIGURE_has_cxx11=y @@ -13,13 +13,12 @@ CT_CONFIGURE_has_make_3_81_or_newer=y CT_CONFIGURE_has_make_4_0_or_newer=y CT_CONFIGURE_has_libtool_2_4_or_newer=y CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_71_or_newer=y -CT_CONFIGURE_has_autoreconf_2_71_or_newer=y -CT_CONFIGURE_has_automake_1_16_or_newer=y +CT_CONFIGURE_has_autoconf_2_65_or_newer=y +CT_CONFIGURE_has_autoreconf_2_65_or_newer=y +CT_CONFIGURE_has_automake_1_15_or_newer=y CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y CT_CONFIGURE_has_python_3_4_or_newer=y CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_bison_3_0_4_or_newer=y CT_CONFIGURE_has_python=y CT_CONFIGURE_has_svn=y CT_CONFIGURE_has_git=y @@ -28,7 +27,7 @@ CT_CONFIGURE_has_sha1sum=y CT_CONFIGURE_has_sha256sum=y CT_CONFIGURE_has_sha512sum=y CT_CONFIGURE_has_install_with_strip_program=y -CT_VERSION="1.25.0.196_227d99d" +CT_VERSION="1.24.0.533_681aaef" CT_VCHECK="" CT_CONFIG_VERSION_ENV="4" CT_CONFIG_VERSION_CURRENT="4" @@ -46,7 +45,6 @@ CT_MODULES=y CT_EXPERIMENTAL=y CT_ALLOW_BUILD_AS_ROOT=y CT_ALLOW_BUILD_AS_ROOT_SURE=y -# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set # CT_DEBUG_CT is not set # @@ -65,7 +63,6 @@ CT_REMOVE_DOCS=y # CT_PREFIX_DIR_RO is not set CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y -# CT_TARBALL_RESULT is not set # # Downloading @@ -123,11 +120,12 @@ CT_CONFIG_SHELL="${bash}" # CT_LOG_ERROR is not set # CT_LOG_WARN is not set # CT_LOG_INFO is not set -# CT_LOG_EXTRA is not set +CT_LOG_EXTRA=y # CT_LOG_ALL is not set -CT_LOG_DEBUG=y -CT_LOG_LEVEL_MAX="DEBUG" +# CT_LOG_DEBUG is not set +CT_LOG_LEVEL_MAX="EXTRA" # CT_LOG_SEE_TOOLS_WARN is not set +# CT_LOG_PROGRESS_BAR is not set # CT_LOG_TO_FILE is not set # end of Paths and misc options @@ -138,9 +136,7 @@ CT_LOG_LEVEL_MAX="DEBUG" # CT_ARCH_ARC is not set # CT_ARCH_ARM is not set # CT_ARCH_AVR is not set -# CT_ARCH_BPF is not set # CT_ARCH_C6X is not set -# CT_ARCH_LOONGARCH is not set # CT_ARCH_M68K is not set # CT_ARCH_MICROBLAZE is not set # CT_ARCH_MIPS is not set @@ -165,7 +161,7 @@ CT_ARCH_X86_SHOW=y # Options for x86 # CT_ARCH_X86_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" +CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" CT_ARCH_SUFFIX="" # CT_OMIT_TARGET_VENDOR is not set @@ -175,7 +171,6 @@ CT_ARCH_SUFFIX="" # CT_MULTILIB is not set CT_DEMULTILIB=y CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_LIBSANITIZER=y CT_ARCH_SUPPORTS_32=y CT_ARCH_SUPPORTS_64=y CT_ARCH_DEFAULT_32=y @@ -246,7 +241,6 @@ CT_BUILD_SUFFIX="" # Operating System # CT_WINDOWS=y -CT_KERNEL_SUPPORTS_SHARED_LIBS=y # CT_KERNEL_BARE_METAL is not set # CT_KERNEL_LINUX is not set CT_KERNEL_WINDOWS=y @@ -263,7 +257,6 @@ CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" # # Common kernel options # -CT_SHARED_LIBS=y # end of Operating System # @@ -295,9 +288,7 @@ CT_BINUTILS_PATCH_GLOBAL=y # CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set # CT_BINUTILS_PATCH_NONE is not set CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_40=y -# CT_BINUTILS_V_2_39 is not set -# CT_BINUTILS_V_2_38 is not set +CT_BINUTILS_V_2_38=y # CT_BINUTILS_V_2_37 is not set # CT_BINUTILS_V_2_36 is not set # CT_BINUTILS_V_2_35 is not set @@ -310,14 +301,12 @@ CT_BINUTILS_V_2_40=y # CT_BINUTILS_V_2_28 is not set # CT_BINUTILS_V_2_27 is not set # CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_VERSION="2.40" +CT_BINUTILS_VERSION="2.38" CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_39=y -CT_BINUTILS_2_39_or_later=y CT_BINUTILS_later_than_2_30=y CT_BINUTILS_2_30_or_later=y CT_BINUTILS_later_than_2_27=y @@ -368,29 +357,24 @@ CT_MINGW_W64_PATCH_GLOBAL=y # CT_MINGW_W64_PATCH_LOCAL_BUNDLED is not set # CT_MINGW_W64_PATCH_NONE is not set CT_MINGW_W64_PATCH_ORDER="global" -CT_MINGW_W64_V_V10_0=y -# CT_MINGW_W64_V_V9_0 is not set +CT_MINGW_W64_V_V9_0=y # CT_MINGW_W64_V_V8_0 is not set # CT_MINGW_W64_V_V7_0 is not set # CT_MINGW_W64_V_V6_0 is not set # CT_MINGW_W64_V_V5_0 is not set # CT_MINGW_W64_V_V4_0 is not set -CT_MINGW_W64_VERSION="v10.0.0" +CT_MINGW_W64_VERSION="v9.0.0" CT_MINGW_W64_MIRRORS="http://downloads.sourceforge.net/sourceforge/mingw-w64 https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/" CT_MINGW_W64_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_MINGW_W64_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_MINGW_W64_ARCHIVE_FORMATS=".tar.bz2 .zip" CT_MINGW_W64_SIGNATURE_FORMAT="packed/.sig" CT_MINGW_SECURE_API=y -# CT_MINGW_DEFAULT_MSVCRT_DEFAULT is not set -# CT_MINGW_DEFAULT_MSVCRT_MSVCRT is not set -CT_MINGW_DEFAULT_MSVCRT_UCRT=y -# CT_MINGW_DEFAULT_MSVCRT_CUSTOM is not set CT_MINGW_DIRECTX=y CT_MINGW_DDK=y CT_MINGW_TOOLS=y CT_MINGW_TOOL_LIST_ARRAY="gendef genidl genlib genpeimg widl" -CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG" +CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG" CT_LIBC_SUPPORT_THREADS_ANY=y CT_LIBC_SUPPORT_THREADS_NATIVE=y CT_LIBC_SUPPORT_THREADS_POSIX=y @@ -400,8 +384,6 @@ CT_LIBC_SUPPORT_THREADS_POSIX=y # # CT_THREADS_NATIVE is not set CT_THREADS_POSIX=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y # end of C-library # @@ -411,8 +393,6 @@ CT_CC_CORE_NEEDED=y CT_CC_SUPPORT_CXX=y CT_CC_SUPPORT_FORTRAN=y CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_D=y -CT_CC_SUPPORT_JIT=y CT_CC_SUPPORT_OBJC=y CT_CC_SUPPORT_OBJCXX=y CT_CC_SUPPORT_GOLANG=y @@ -428,7 +408,6 @@ CT_CC_GCC_PKG_KSYM="GCC" CT_GCC_DIR_NAME="gcc" CT_GCC_USE_GNU=y # CT_GCC_USE_LINARO is not set -# CT_GCC_USE_ORACLE is not set CT_GCC_USE="GCC" CT_GCC_PKG_NAME="gcc" CT_GCC_SRC_RELEASE=y @@ -441,9 +420,7 @@ CT_GCC_PATCH_GLOBAL=y # CT_GCC_PATCH_LOCAL_BUNDLED is not set # CT_GCC_PATCH_NONE is not set CT_GCC_PATCH_ORDER="global" -CT_GCC_V_13=y -# CT_GCC_V_12 is not set -# CT_GCC_V_11 is not set +CT_GCC_V_11=y # CT_GCC_V_10 is not set # CT_GCC_V_9 is not set # CT_GCC_V_8 is not set @@ -451,16 +428,12 @@ CT_GCC_V_13=y # CT_GCC_V_6 is not set # CT_GCC_V_5 is not set # CT_GCC_V_4_9 is not set -CT_GCC_VERSION="13.1.0" +CT_GCC_VERSION="11.2.0" CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_13=y -CT_GCC_13_or_later=y -CT_GCC_later_than_12=y -CT_GCC_12_or_later=y CT_GCC_later_than_11=y CT_GCC_11_or_later=y CT_GCC_later_than_10=y @@ -480,8 +453,8 @@ CT_GCC_4_9_or_later=y CT_CC_GCC_ENABLE_PLUGINS=y CT_CC_GCC_HAS_LIBMPX=y CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-default-ssp" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2" +CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" +CT_CC_GCC_EXTRA_CONFIG_ARRAY="" CT_CC_GCC_STATIC_LIBSTDCXX=y CT_CC_GCC_SYSTEM_ZLIB=y CT_CC_GCC_CONFIG_TLS=m @@ -501,7 +474,6 @@ CT_CC_GCC_LTO_ZSTD=m CT_CC_GCC_LIBGOMP=y CT_CC_GCC_LIBSSP=m # CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set # # Misc. obscure options. @@ -529,9 +501,7 @@ CT_ALL_CC_CHOICES="GCC" # CT_CC_LANG_CXX=y # CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JIT is not set # CT_CC_LANG_ADA is not set -# CT_CC_LANG_D is not set # CT_CC_LANG_OBJC is not set # CT_CC_LANG_OBJCXX is not set # CT_CC_LANG_GOLANG is not set @@ -628,10 +598,7 @@ CT_ISL_PATCH_GLOBAL=y # CT_ISL_PATCH_LOCAL_BUNDLED is not set # CT_ISL_PATCH_NONE is not set CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_26=y -# CT_ISL_V_0_25 is not set -# CT_ISL_V_0_24 is not set -# CT_ISL_V_0_23 is not set +CT_ISL_V_0_24=y # CT_ISL_V_0_22 is not set # CT_ISL_V_0_21 is not set # CT_ISL_V_0_20 is not set @@ -640,7 +607,7 @@ CT_ISL_V_0_26=y # CT_ISL_V_0_17 is not set # CT_ISL_V_0_16 is not set # CT_ISL_V_0_15 is not set -CT_ISL_VERSION="0.26" +CT_ISL_VERSION="0.24" CT_ISL_MIRRORS="https://libisl.sourceforge.io" CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" @@ -669,7 +636,7 @@ CT_MPC_PATCH_ORDER="global" CT_MPC_V_1_2=y # CT_MPC_V_1_1 is not set # CT_MPC_V_1_0 is not set -CT_MPC_VERSION="1.2.1" +CT_MPC_VERSION="1.2.0" CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" @@ -717,36 +684,14 @@ CT_ZLIB_PATCH_GLOBAL=y # CT_ZLIB_PATCH_LOCAL_BUNDLED is not set # CT_ZLIB_PATCH_NONE is not set CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_13=y -CT_ZLIB_VERSION="1.2.13" -CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/" +CT_ZLIB_V_1_2_11=y +CT_ZLIB_VERSION="1.2.11" +CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/" CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_COMP_LIBS_ZSTD=y -CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD" -CT_ZSTD_DIR_NAME="zstd" -CT_ZSTD_PKG_NAME="zstd" -CT_ZSTD_SRC_RELEASE=y -# CT_ZSTD_SRC_DEVEL is not set -# CT_ZSTD_SRC_CUSTOM is not set -CT_ZSTD_PATCH_GLOBAL=y -# CT_ZSTD_PATCH_BUNDLED is not set -# CT_ZSTD_PATCH_LOCAL is not set -# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set -# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set -# CT_ZSTD_PATCH_NONE is not set -CT_ZSTD_PATCH_ORDER="global" -CT_ZSTD_V_1_5_5=y -# CT_ZSTD_V_1_5_2 is not set -CT_ZSTD_VERSION="1.5.5" -CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/" -CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZSTD_ARCHIVE_FORMATS=".tar.gz" -CT_ZSTD_SIGNATURE_FORMAT="packed/.sig" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD" +CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB" # CT_LIBICONV_NEEDED is not set # CT_GETTEXT_NEEDED is not set CT_GMP_NEEDED=y @@ -754,13 +699,11 @@ CT_MPFR_NEEDED=y CT_ISL_NEEDED=y CT_MPC_NEEDED=y CT_ZLIB_NEEDED=y -CT_ZSTD_NEEDED=y CT_GMP=y CT_MPFR=y CT_ISL=y CT_MPC=y CT_ZLIB=y -CT_ZSTD=y # end of Companion libraries # diff --git a/images/base-win64/toolchain.cmake b/images/base-win64/toolchain.cmake index 7b21acb..72e09eb 100644 --- a/images/base-win64/toolchain.cmake +++ b/images/base-win64/toolchain.cmake @@ -1,16 +1,12 @@ set(CMAKE_SYSTEM_NAME Windows) set(CMAKE_SYSTEM_PROCESSOR x86_64) -set(triple x86_64-w64-mingw32) +set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) +set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) +set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) +set(CMAKE_RANLIB x86_64-w64-mingw32-ranlib) -set(CMAKE_C_COMPILER ${triple}-gcc) -set(CMAKE_CXX_COMPILER ${triple}-g++) -set(CMAKE_RC_COMPILER ${triple}-windres) -set(CMAKE_RANLIB ${triple}-gcc-ranlib) -set(CMAKE_AR ${triple}-gcc-ar) - -set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot) -set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild) +set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /opt/ffbuild) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) diff --git a/images/base/Dockerfile b/images/base/Dockerfile index 9725cf4..54dedec 100644 --- a/images/base/Dockerfile +++ b/images/base/Dockerfile @@ -1,20 +1,10 @@ -FROM ubuntu:23.04 - -ENV FFBUILD_DLDIR="/opt/ffdl" +FROM ubuntu:21.10 ENV DEBIAN_FRONTEND noninteractive RUN \ - mkdir -p "$FFBUILD_DLDIR" && \ apt-get -y update && \ apt-get -y dist-upgrade && \ - apt-get -y install build-essential yasm nasm \ - xxd pkgconf curl wget unzip zip git subversion mercurial \ - autoconf automake libtool libtool-bin autopoint gettext cmake clang meson ninja-build \ - texinfo texi2html help2man flex bison groff \ - gperf itstool ragel libc6-dev libssl-dev \ - gtk-doc-tools gobject-introspection gawk \ - ocaml ocamlbuild libnum-ocaml-dev indent p7zip-full \ - python3-distutils python3-jinja2 python3-jsonschema python3-apt python-is-python3 && \ + apt-get -y install build-essential yasm nasm xxd pkgconf git curl wget unzip subversion autoconf automake libtool libtool-bin autopoint cmake clang texinfo texi2html help2man flex bison gperf gettext itstool ragel libc6-dev libssl-dev gtk-doc-tools gobject-introspection gawk meson ninja-build p7zip-full python3-distutils python3-apt python-is-python3 && \ apt-get -y clean && \ git config --global user.email "builder@localhost" && \ git config --global user.name "Builder" && \ diff --git a/images/base/git-mini-clone.sh b/images/base/git-mini-clone.sh index e483802..b924ada 100755 --- a/images/base/git-mini-clone.sh +++ b/images/base/git-mini-clone.sh @@ -6,7 +6,17 @@ DEST="$3" git init "$DEST" git -C "$DEST" remote add origin "$REPO" -retry-tool git -C "$DEST" fetch --depth=1 origin "$REF" +RETRY_COUNTER=0 +MAX_RETRY=15 +while [[ $RETRY_COUNTER -lt $MAX_RETRY ]]; do + timeout 120 git -C "$DEST" fetch --depth=1 origin "$REF" && break || sleep 10 + RETRY_COUNTER=$(( $RETRY_COUNTER + 1 )) + echo "Retry $RETRY_COUNTER..." +done +if [[ $RETRY_COUNTER -ge $MAX_RETRY ]]; then + echo "Max retry count exceeded." + exit 1 +fi git -C "$DEST" config advice.detachedHead false git -C "$DEST" checkout FETCH_HEAD diff --git a/images/base/retry-tool.sh b/images/base/retry-tool.sh deleted file mode 100755 index 75c8b8d..0000000 --- a/images/base/retry-tool.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -set -xe - -RETRY_COUNTER=0 -MAX_RETRY=10 -CUR_TIMEOUT=120 -while [[ $RETRY_COUNTER -lt $MAX_RETRY ]]; do - timeout $CUR_TIMEOUT "$@" && break || sleep $(shuf -i 5-90 -n 1) - RETRY_COUNTER=$(( $RETRY_COUNTER + 1 )) - CUR_TIMEOUT=$(( $CUR_TIMEOUT + 60 )) - echo "Retry $RETRY_COUNTER..." -done -if [[ $RETRY_COUNTER -ge $MAX_RETRY ]]; then - echo "Max retry count exceeded." - exit 1 -fi diff --git a/images/base/run_stage.sh b/images/base/run_stage.sh index baf52b1..6db0e8d 100755 --- a/images/base/run_stage.sh +++ b/images/base/run_stage.sh @@ -11,12 +11,5 @@ export RAW_LDFLAGS="$LDFLAGS" mkdir -p /stage source "$1" cd /stage -if [[ -n "$3" ]]; then - cd "$3" -fi -if [[ -z "$2" ]]; then - ffbuild_dockerbuild -else - "$2" -fi +ffbuild_dockerbuild rm -rf /stage "$FFBUILD_PREFIX"/bin diff --git a/makeimage.sh b/makeimage.sh index 2e63a43..1e7761c 100755 --- a/makeimage.sh +++ b/makeimage.sh @@ -3,65 +3,14 @@ set -xe cd "$(dirname "$0")" source util/vars.sh -TMPCFG="$(mktemp --suffix=.toml)" -cat <"$TMPCFG" -[worker.oci] - max-parallelism = 4 -EOF -trap "rm -f '$TMPCFG'" EXIT - -docker buildx inspect ffbuilder &>/dev/null || docker buildx create \ - --bootstrap \ - --name ffbuilder \ - --config "$TMPCFG" \ - --driver-opt network=host \ - --driver-opt env.BUILDKIT_STEP_LOG_MAX_SIZE=-1 \ - --driver-opt env.BUILDKIT_STEP_LOG_MAX_SPEED=-1 - -docker container inspect ffbuildreg &>/dev/null || \ - docker run --rm -d -p 127.0.0.1:64647:5000 --name ffbuildreg registry:2 -LOCAL_REG_PORT="$(docker container inspect --format='{{range $p, $conf := .NetworkSettings.Ports}}{{(index $conf 0).HostPort}}{{end}}' ffbuildreg)" -LOCAL_ROOT="127.0.0.1:${LOCAL_REG_PORT}/local" - -export REGISTRY_OVERRIDE_DL="127.0.0.1:${LOCAL_REG_PORT}" GITHUB_REPOSITORY_DL="local" - if [[ -z "$QUICKBUILD" ]]; then if grep "FROM.*base.*" "images/base-${TARGET}/Dockerfile" >/dev/null 2>&1; then - docker buildx --builder ffbuilder build \ - --cache-from=type=local,src=.cache/"${BASE_IMAGE/:/_}" \ - --cache-to=type=local,mode=max,dest=.cache/"${BASE_IMAGE/:/_}" \ - --push --tag "${LOCAL_ROOT}/base:latest" images/base + docker buildx --builder default build --load --tag "$BASE_IMAGE" images/base fi - docker buildx --builder ffbuilder build \ - --cache-from=type=local,src=.cache/"${TARGET_IMAGE/:/_}" \ - --cache-to=type=local,mode=max,dest=.cache/"${TARGET_IMAGE/:/_}" \ - --push --tag "${LOCAL_ROOT}/base-${TARGET}:latest" \ - --build-arg GH_REPO="$LOCAL_ROOT" "images/base-${TARGET}" - - export REGISTRY_OVERRIDE="$REGISTRY_OVERRIDE_DL" GITHUB_REPOSITORY="$GITHUB_REPOSITORY_DL" + docker buildx --builder default build --load --build-arg GH_REPO="$REPO" --tag "$TARGET_IMAGE" "images/base-${TARGET}" fi ./generate.sh "$TARGET" "$VARIANT" "${ADDINS[@]}" -DL_CACHE_TAG="$(./util/get_dl_cache_tag.sh)" -DL_IMAGE="${DL_IMAGE_RAW}:${DL_CACHE_TAG}" -if docker pull "${DL_IMAGE}"; then - export REGISTRY_OVERRIDE_DL="$REGISTRY" GITHUB_REPOSITORY_DL="$REPO" - ./generate.sh "$TARGET" "$VARIANT" "${ADDINS[@]}" -else - DL_IMAGE="${LOCAL_ROOT}/dl_cache:${DL_CACHE_TAG}" - docker manifest inspect --insecure "${DL_IMAGE}" >/dev/null || - docker buildx --builder ffbuilder build -f Dockerfile.dl \ - --cache-from=type=local,src=.cache/dl_image_cache \ - --cache-to=type=local,mode=max,dest=.cache/dl_image_cache \ - --push --tag "${DL_IMAGE}" . -fi - -docker buildx --builder ffbuilder build \ - --cache-from=type=local,src=.cache/"${IMAGE/:/_}" \ - --cache-to=type=local,mode=max,dest=.cache/"${IMAGE/:/_}" \ - --load --tag "$IMAGE" . - -docker container stop ffbuildreg -docker buildx rm -f ffbuilder +docker buildx --builder default build --load --tag "$IMAGE" . diff --git a/scripts.d/10-mingw-std-threads.sh b/scripts.d/10-mingw-std-threads.sh index d1ced26..7727df4 100755 --- a/scripts.d/10-mingw-std-threads.sh +++ b/scripts.d/10-mingw-std-threads.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/meganz/mingw-std-threads.git" -SCRIPT_COMMIT="6c2061b7da41d6aa1b2162ff4383ec3ece864bc6" +MINGW_STD_THREADS_REPO="https://github.com/meganz/mingw-std-threads.git" +MINGW_STD_THREADS_COMMIT="6c2061b7da41d6aa1b2162ff4383ec3ece864bc6" ffbuild_enabled() { [[ $TARGET == win* ]] || return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$MINGW_STD_THREADS_REPO" "$MINGW_STD_THREADS_COMMIT" mingw-std-threads + cd mingw-std-threads mkdir -p "$FFBUILD_PREFIX"/include cp *.h "$FFBUILD_PREFIX"/include diff --git a/scripts.d/10-mingw.sh b/scripts.d/10-mingw.sh index d0a6546..c019444 100755 --- a/scripts.d/10-mingw.sh +++ b/scripts.d/10-mingw.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://git.code.sf.net/p/mingw-w64/mingw-w64.git" -SCRIPT_COMMIT="3638d5e9a6f28354bc3e18f04ba0d97e2cc3b44c" +MINGW_REPO="https://github.com/mirror/mingw-w64.git" +MINGW_COMMIT="f6b0870e4de11fd04155511606bb6e6564d38c71" ffbuild_enabled() { [[ $TARGET == win* ]] || return -1 @@ -17,12 +17,9 @@ ffbuild_dockerfinal() { to_df "COPY --from=${PREVLAYER} /opt/mingw/. /" } -ffbuild_dockerdl() { - to_df "RUN retry-tool sh -c \"rm -rf mingw && git clone '$SCRIPT_REPO' mingw\" && cd mingw && git checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/mingw" + git-mini-clone "$MINGW_REPO" "$MINGW_COMMIT" mingw + cd mingw cd mingw-w64-headers @@ -37,7 +34,6 @@ ffbuild_dockerbuild() { --prefix="$GCC_SYSROOT/usr/$FFBUILD_TOOLCHAIN" --host="$FFBUILD_TOOLCHAIN" --with-default-win32-winnt="0x601" - --with-default-msvcrt=ucrt --enable-idl ) diff --git a/scripts.d/10-xorg-macros.sh b/scripts.d/10-xorg-macros.sh index d336ff1..e378e3b 100755 --- a/scripts.d/10-xorg-macros.sh +++ b/scripts.d/10-xorg-macros.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/util/macros.git" -SCRIPT_COMMIT="cb147377e9341af05232f95814022abdecf14024" +XORGMACROS_REPO="https://gitlab.freedesktop.org/xorg/util/macros.git" +XORGMACROS_COMMIT="0326ba3c4caa34116c0e7e4af98661858cf25d1c" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -14,7 +14,8 @@ ffbuild_dockerlayer() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$XORGMACROS_REPO" "$XORGMACROS_COMMIT" xorg-macros + cd xorg-macros autoreconf -i ./configure --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/20-libiconv.sh b/scripts.d/20-libiconv.sh index 6303f14..1263beb 100755 --- a/scripts.d/20-libiconv.sh +++ b/scripts.d/20-libiconv.sh @@ -1,21 +1,17 @@ #!/bin/bash -SCRIPT_REPO="https://git.savannah.gnu.org/git/libiconv.git" -SCRIPT_COMMIT="6e2b31f6d66739c5abd850338ea68c6bd2012812" +# https://ftp.gnu.org/gnu/libiconv/ +ICONV_SRC="https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - to_df "RUN retry-tool sh -c \"rm -rf $SELF && git clone '$SCRIPT_REPO' $SELF\" && git -C $SELF checkout \"$SCRIPT_COMMIT\"" - to_df "RUN cd $SELF && retry-tool ./autopull.sh --one-time" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - (unset CC CFLAGS GMAKE && ./autogen.sh) + wget -O iconv.tar.gz "$ICONV_SRC" + tar xaf iconv.tar.gz + rm iconv.tar.gz + cd libiconv* local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/20-libxml2.sh b/scripts.d/20-libxml2.sh index 40dfe1b..6914d3a 100755 --- a/scripts.d/20-libxml2.sh +++ b/scripts.d/20-libxml2.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.gnome.org/GNOME/libxml2.git" -SCRIPT_COMMIT="884474477284474e0151280aaa275a18e3d7a036" +LIBXML2_REPO="https://gitlab.gnome.org/GNOME/libxml2.git" +LIBXML2_COMMIT="145170125af959c814d33899bebb57f2da2f541b" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXML2_REPO" "$LIBXML2_COMMIT" libxml2 + cd libxml2 local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/20-zlib.sh b/scripts.d/20-zlib.sh index b9f4d5c..816d666 100755 --- a/scripts.d/20-zlib.sh +++ b/scripts.d/20-zlib.sh @@ -1,14 +1,19 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/madler/zlib.git" -SCRIPT_COMMIT="04f42ceca40f73e2978b50e93806c2a18c1281fc" +ZLIB_SRC="https://zlib.net/zlib-1.2.12.tar.gz" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + mkdir zlib + cd zlib + + wget "$ZLIB_SRC" -O zlib.tar.gz + tar xaf zlib.tar.gz + rm zlib.tar.gz + cd zlib* local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/25-fftw3.sh b/scripts.d/25-fftw3.sh index ede5622..662b05e 100755 --- a/scripts.d/25-fftw3.sh +++ b/scripts.d/25-fftw3.sh @@ -1,18 +1,26 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/FFTW/fftw3.git" -SCRIPT_COMMIT="69f6c1a6ebd7ac5af33e7074134fb79fbc729c3d" +# https://fftw.org/download.html +FFTW3_SRC="https://fftw.org/fftw-3.3.10.tar.gz" +FFTW3_SHA512="2d34b5ccac7b08740dbdacc6ebe451d8a34cf9d9bfec85a5e776e87adf94abfd803c222412d8e10fbaa4ed46f504aa87180396af1b108666cde4314a55610b40" ffbuild_enabled() { + # Dependency of GPL-Only librubberband + [[ $VARIANT == lgpl* ]] && return -1 return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + mkdir fftw3 + cd fftw3 + + check-wget fftw3.tar.gz "$FFTW3_SRC" "$FFTW3_SHA512" + tar xaf fftw3.tar.gz + rm fftw3.tar.gz + cd fftw* local myconf=( --prefix="$FFBUILD_PREFIX" - --enable-maintainer-mode --disable-shared --enable-static --disable-fortran @@ -21,16 +29,11 @@ ffbuild_dockerbuild() { --enable-threads --with-combined-threads --with-incoming-stack-boundary=2 + --enable-sse2 + --enable-avx + --enable-avx2 ) - if [[ $TARGET != *arm64 ]]; then - myconf+=( - --enable-sse2 - --enable-avx - --enable-avx2 - ) - fi - if [[ $TARGET == win* || $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" @@ -40,7 +43,7 @@ ffbuild_dockerbuild() { return -1 fi - ./bootstrap.sh "${myconf[@]}" + ./configure "${myconf[@]}" make -j$(nproc) make install } diff --git a/scripts.d/25-freetype.sh b/scripts.d/25-freetype.sh index bcb52ed..91b9690 100755 --- a/scripts.d/25-freetype.sh +++ b/scripts.d/25-freetype.sh @@ -1,16 +1,19 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/freetype/freetype.git" -SCRIPT_COMMIT="dec2743e6a2a40cddfc8a9892895cb4f861e1eeb" +# https://sourceforge.net/projects/freetype/files/freetype2/ +FREETYPE_SRC="https://sourceforge.net/projects/freetype/files/freetype2/2.12.0/freetype-2.12.0.tar.xz/download" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - ./autogen.sh + mkdir ft + cd ft + wget -O ft.tar.gz "$FREETYPE_SRC" + tar xaf ft.tar.gz + rm ft.tar.gz + cd freetype* local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/25-fribidi.sh b/scripts.d/25-fribidi.sh index b9d824a..52252d2 100755 --- a/scripts.d/25-fribidi.sh +++ b/scripts.d/25-fribidi.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/fribidi/fribidi.git" -SCRIPT_COMMIT="b54871c339dabb7434718da3fed2fa63320997e5" +FRIBIDI_REPO="https://github.com/fribidi/fribidi.git" +FRIBIDI_COMMIT="6428d8469e536bcbb6e12c7b79ba6659371c435a" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$FRIBIDI_REPO" "$FRIBIDI_COMMIT" fribidi + cd fribidi mkdir build && cd build diff --git a/scripts.d/25-gmp.sh b/scripts.d/25-gmp.sh index 3884ce6..422d267 100755 --- a/scripts.d/25-gmp.sh +++ b/scripts.d/25-gmp.sh @@ -1,20 +1,21 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/BtbN/gmplib.git" -SCRIPT_COMMIT="1d7f62515fc8f5109fabace9592d863417f17c37" +GMP_SRC="https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + wget "$GMP_SRC" -O gmp.tar.xz + tar xaf gmp.tar.xz + rm gmp.tar.xz + cd gmp* - ./.bootstrap + autoreconf -i local myconf=( --prefix="$FFBUILD_PREFIX" - --enable-maintainer-mode --disable-shared --enable-static --with-pic diff --git a/scripts.d/25-libogg.sh b/scripts.d/25-libogg.sh index 066f8fa..aee3dfc 100755 --- a/scripts.d/25-libogg.sh +++ b/scripts.d/25-libogg.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/xiph/ogg.git" -SCRIPT_COMMIT="db5c7a49ce7ebda47b15b78471e78fb7f2483e22" +OGG_REPO="https://github.com/xiph/ogg.git" +OGG_COMMIT="3069cc2bb44160982cdb21b2b8f0660c76b17572" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$OGG_REPO" "$OGG_COMMIT" ogg + cd ogg ./autogen.sh diff --git a/scripts.d/25-openssl.sh b/scripts.d/25-openssl.sh index 63131eb..cc376af 100755 --- a/scripts.d/25-openssl.sh +++ b/scripts.d/25-openssl.sh @@ -1,20 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/openssl/openssl.git" -SCRIPT_COMMIT="openssl-3.0.9" -SCRIPT_TAGFILTER="openssl-3.0.*" +OPENSSL_REPO="https://github.com/openssl/openssl.git" +OPENSSL_COMMIT="OpenSSL_1_1_1o" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - default_dl "$SELF" - to_df "RUN git -C \"$SELF\" submodule update --init --recursive --depth=1" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$OPENSSL_REPO" "$OPENSSL_COMMIT" openssl + cd openssl local myconf=( threads @@ -24,7 +19,6 @@ ffbuild_dockerbuild() { enable-ec enable-srp --prefix="$FFBUILD_PREFIX" - --libdir=lib ) if [[ $TARGET == win64 ]]; then @@ -42,34 +36,15 @@ ffbuild_dockerbuild() { --cross-compile-prefix="$FFBUILD_CROSS_PREFIX" linux-x86_64 ) - elif [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --cross-compile-prefix="$FFBUILD_CROSS_PREFIX" - linux-aarch64 - ) else echo "Unknown target" return -1 fi - export CFLAGS="$CFLAGS -fno-strict-aliasing" - export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" - - # OpenSSL build system prepends the cross prefix itself - export CC="${CC/${FFBUILD_CROSS_PREFIX}/}" - export CXX="${CXX/${FFBUILD_CROSS_PREFIX}/}" - export AR="${AR/${FFBUILD_CROSS_PREFIX}/}" - export RANLIB="${RANLIB/${FFBUILD_CROSS_PREFIX}/}" - ./Configure "${myconf[@]}" sed -i -e "/^CFLAGS=/s|=.*|=${CFLAGS}|" -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" Makefile - make -j$(nproc) build_sw + make -j$(nproc) make install_sw } - -ffbuild_configure() { - [[ $TARGET == win* ]] && return 0 - echo --enable-openssl -} diff --git a/scripts.d/25-xz.sh b/scripts.d/25-xz.sh index 4d9581b..62c13f2 100755 --- a/scripts.d/25-xz.sh +++ b/scripts.d/25-xz.sh @@ -1,20 +1,22 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/xz-mirror/xz.git" -SCRIPT_COMMIT="66bdcfa85fef2911cc80f5f30fed3f9610faccb4" +XZ_SRC="https://sourceforge.net/projects/lzmautils/files/xz-5.2.5.tar.xz/download" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + mkdir xz + cd xz - ./autogen.sh --no-po4a --no-doxygen + wget "$XZ_SRC" -O xz.tar.xz + tar xaf xz.tar.xz + rm xz.tar.xz + cd xz* local myconf=( --prefix="$FFBUILD_PREFIX" - --disable-symbol-versions --disable-shared --enable-static --with-pic diff --git a/scripts.d/35-fontconfig.sh b/scripts.d/35-fontconfig.sh index aba3f20..483a757 100755 --- a/scripts.d/35-fontconfig.sh +++ b/scripts.d/35-fontconfig.sh @@ -1,16 +1,19 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/fontconfig/fontconfig.git" -SCRIPT_COMMIT="7e2a1b2577e8d90ea5be3f14091e809ac7742438" +FONTCONFIG_SRC="https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.14.0.tar.xz" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + mkdir fc + cd fc - ./autogen.sh --noconf + wget "$FONTCONFIG_SRC" -O fc.tar.gz + tar xaf fc.tar.gz + rm fc.tar.gz + cd fontconfig* local myconf=( --prefix="$FFBUILD_PREFIX" @@ -21,13 +24,7 @@ ffbuild_dockerbuild() { --enable-static ) - if [[ $TARGET == linux* ]]; then - myconf+=( - --sysconfdir=/etc - --localstatedir=/var - --host="$FFBUILD_TOOLCHAIN" - ) - elif [[ $TARGET == win* ]]; then + if [[ $TARGET == win* || $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" ) diff --git a/scripts.d/45-harfbuzz.sh b/scripts.d/45-harfbuzz.sh index 65c2f38..1a04724 100755 --- a/scripts.d/45-harfbuzz.sh +++ b/scripts.d/45-harfbuzz.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/harfbuzz/harfbuzz.git" -SCRIPT_COMMIT="73ee9c346f3acccbe14a4caf258b636de7c459be" +HARFBUZZ_REPO="https://github.com/harfbuzz/harfbuzz.git" +HARFBUZZ_COMMIT="6695bf056065f2e2e56c0e00b9740e6685a8af28" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$HARFBUZZ_REPO" "$HARFBUZZ_COMMIT" harfbuzz + cd harfbuzz local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/45-libsamplerate.sh b/scripts.d/45-libsamplerate.sh index 701f294..4611ade 100755 --- a/scripts.d/45-libsamplerate.sh +++ b/scripts.d/45-libsamplerate.sh @@ -1,14 +1,17 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/libsndfile/libsamplerate.git" -SCRIPT_COMMIT="22bd06eb114850ebe31981eb794d150a95439fef" +LIBSR_REPO="https://github.com/libsndfile/libsamplerate.git" +LIBSR_COMMIT="4909e679b3e268a1403608cbd860f3895549b0d5" ffbuild_enabled() { + # Dependency of GPL-Only librubberband + [[ $VARIANT == lgpl* ]] && return -1 return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBSR_REPO" "$LIBSR_COMMIT" libsr + cd libsr mkdir build cd build diff --git a/scripts.d/45-libudfread.sh b/scripts.d/45-libudfread.sh index 58b5780..346a4b0 100755 --- a/scripts.d/45-libudfread.sh +++ b/scripts.d/45-libudfread.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://code.videolan.org/videolan/libudfread.git" -SCRIPT_COMMIT="b3e6936a23f8af30a0be63d88f4695bdc0ea26e1" +LIBUDFREAD_REPO="https://code.videolan.org/videolan/libudfread.git" +LIBUDFREAD_COMMIT="b3e6936a23f8af30a0be63d88f4695bdc0ea26e1" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBUDFREAD_REPO" "$LIBUDFREAD_COMMIT" libudfread + cd libudfread ./bootstrap diff --git a/scripts.d/45-libvorbis.sh b/scripts.d/45-libvorbis.sh index 4b5cde8..d40b622 100755 --- a/scripts.d/45-libvorbis.sh +++ b/scripts.d/45-libvorbis.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/xiph/vorbis.git" -SCRIPT_COMMIT="84c023699cdf023a32fa4ded32019f194afcdad0" +VORBIS_REPO="https://github.com/xiph/vorbis.git" +VORBIS_COMMIT="84c023699cdf023a32fa4ded32019f194afcdad0" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$VORBIS_REPO" "$VORBIS_COMMIT" vorbis + cd vorbis ./autogen.sh diff --git a/scripts.d/45-opencl.sh b/scripts.d/45-opencl.sh index dfbda16..201db29 100755 --- a/scripts.d/45-opencl.sh +++ b/scripts.d/45-opencl.sh @@ -1,33 +1,28 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/KhronosGroup/OpenCL-Headers.git" -SCRIPT_COMMIT="e049b16b5f157e2f28e7b5c301e71e1ccb3fe288" +HEADERS_REPO="https://github.com/KhronosGroup/OpenCL-Headers.git" +HEADERS_COMMIT="dcd5bede6859d26833cd85f0d6bbcee7382dc9b3" -SCRIPT_REPO2="https://github.com/KhronosGroup/OpenCL-ICD-Loader.git" -SCRIPT_COMMIT2="229410f86a8c8c9e0f86f195409e5481a2bae067" +LOADER_REPO="https://github.com/KhronosGroup/OpenCL-ICD-Loader.git" +LOADER_COMMIT="aec3952654832211636fc4af613710f80e203b0a" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - default_dl opencl/headers - to_df "RUN git-mini-clone \"$SCRIPT_REPO2\" \"$SCRIPT_COMMIT2\" opencl/loader" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR"/opencl + mkdir opencl && cd opencl + git-mini-clone "$HEADERS_REPO" "$HEADERS_COMMIT" headers mkdir -p "$FFBUILD_PREFIX"/include/CL cp -r headers/CL/* "$FFBUILD_PREFIX"/include/CL/. + git-mini-clone "$LOADER_REPO" "$LOADER_COMMIT" loader cd loader + mkdir build && cd build - cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DOPENCL_ICD_LOADER_HEADERS_DIR="$FFBUILD_PREFIX"/include -DOPENCL_ICD_LOADER_BUILD_SHARED_LIBS=OFF \ - -DOPENCL_ICD_LOADER_DISABLE_OPENCLON12=ON -DOPENCL_ICD_LOADER_PIC=ON \ - -DOPENCL_ICD_LOADER_BUILD_TESTING=OFF -DBUILD_TESTING=OFF .. + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DOPENCL_ICD_LOADER_HEADERS_DIR="$FFBUILD_PREFIX"/include -DOPENCL_ICD_LOADER_BUILD_SHARED_LIBS=OFF -DOPENCL_ICD_LOADER_DISABLE_OPENCLON12=ON -DOPENCL_ICD_LOADER_PIC=ON -DOPENCL_ICD_LOADER_BUILD_TESTING=OFF -DBUILD_TESTING=OFF .. make -j$(nproc) make install @@ -39,13 +34,12 @@ ffbuild_dockerbuild() { echo "Name: OpenCL" >> OpenCL.pc echo "Description: OpenCL ICD Loader" >> OpenCL.pc echo "Version: 9999" >> OpenCL.pc + echo "Libs: -L\${libdir} -lOpenCL" >> OpenCL.pc echo "Cflags: -I\${includedir}" >> OpenCL.pc if [[ $TARGET == linux* ]]; then - echo "Libs: -L\${libdir} -lOpenCL" >> OpenCL.pc echo "Libs.private: -ldl" >> OpenCL.pc elif [[ $TARGET == win* ]]; then - echo "Libs: -L\${libdir} -l:OpenCL.a" >> OpenCL.pc echo "Libs.private: -lole32 -lshlwapi -lcfgmgr32" >> OpenCL.pc fi diff --git a/scripts.d/45-pulseaudio.sh b/scripts.d/45-pulseaudio.sh index 356b6be..2341940 100755 --- a/scripts.d/45-pulseaudio.sh +++ b/scripts.d/45-pulseaudio.sh @@ -1,26 +1,24 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git" -SCRIPT_COMMIT="e96d278bfc514f290b60c9e924fabc1c772e1689" +PULSEAUDIO_REPO="https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git" +PULSEAUDIO_COMMIT="852c15954ee2c02b8a82cf98f2996adedf6ca0b8" ffbuild_enabled() { [[ $TARGET == linux* ]] || return 1 return 0 } -ffbuild_dockerdl() { - to_df "RUN git clone --filter=blob:none \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git clone --filter=blob:none "$PULSEAUDIO_REPO" pa + cd pa + git checkout "$PULSEAUDIO_COMMIT" # Kill build of utils and their sndfile dep echo > src/utils/meson.build echo > src/pulsecore/sndfile-util.c echo > src/pulsecore/sndfile-util.h sed -ri -e 's/(sndfile_dep = .*)\)/\1, required : false)/' meson.build - sed -ri -e 's/shared_library/library/g' src/meson.build src/pulse/meson.build + sed -ri -e 's/shared_library/static_library/g' src/meson.build src/pulse/meson.build mkdir build && cd build diff --git a/scripts.d/45-vmaf.sh b/scripts.d/45-vmaf.sh index 1ad7bac..78dabaf 100755 --- a/scripts.d/45-vmaf.sh +++ b/scripts.d/45-vmaf.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/Netflix/vmaf.git" -SCRIPT_COMMIT="98bdd77b296da207ab42c3113ec8f30de58db197" +VMAF_REPO="https://github.com/Netflix/vmaf.git" +VMAF_COMMIT="e495579fc8f70f75a27961905a544d6dbd55dedf" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$VMAF_REPO" "$VMAF_COMMIT" vmaf + cd vmaf # Kill build of unused and broken tools echo > libvmaf/tools/meson.build diff --git a/scripts.d/45-x11/10-xcbproto.sh b/scripts.d/45-x11/10-xcbproto.sh index 75dfd3d..70d2d01 100755 --- a/scripts.d/45-x11/10-xcbproto.sh +++ b/scripts.d/45-x11/10-xcbproto.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/proto/xcbproto.git" -SCRIPT_COMMIT="91178913c25b19e0457cdf6d21e00e6a613823e2" +XCBPROTO_REPO="https://gitlab.freedesktop.org/xorg/proto/xcbproto.git" +XCBPROTO_COMMIT="70ca65fa35c3760661b090bc4b2601daa7a099b8" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$XCBPROTO_REPO" "$XCBPROTO_COMMIT" xcbproto + cd xcbproto autoreconf -i diff --git a/scripts.d/45-x11/10-xproto.sh b/scripts.d/45-x11/10-xproto.sh index e0e1428..ee2b6c3 100755 --- a/scripts.d/45-x11/10-xproto.sh +++ b/scripts.d/45-x11/10-xproto.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/proto/xorgproto.git" -SCRIPT_COMMIT="766967322209f2dcb72e6a8edea0c651f586201d" +XPROTO_REPO="https://gitlab.freedesktop.org/xorg/proto/xorgproto.git" +XPROTO_COMMIT="8c8bbb903410e39140727867a26bbe501f77de8f" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$XPROTO_REPO" "$XPROTO_COMMIT" xproto + cd xproto autoreconf -i diff --git a/scripts.d/45-x11/10-xtrans.sh b/scripts.d/45-x11/10-xtrans.sh index 3f582b9..bb72f3f 100755 --- a/scripts.d/45-x11/10-xtrans.sh +++ b/scripts.d/45-x11/10-xtrans.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxtrans.git" -SCRIPT_COMMIT="3b3a3bd75d86aec78f6ef893b198c3efc378bc64" +LIBXTRANS_REPO="https://gitlab.freedesktop.org/xorg/lib/libxtrans.git" +LIBXTRANS_COMMIT="3b5df889f58a99980a35a7b4a18eb4e7d2abeac4" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXTRANS_REPO" "$LIBXTRANS_COMMIT" libxtrans + cd libxtrans autoreconf -i diff --git a/scripts.d/45-x11/20-libxau.sh b/scripts.d/45-x11/20-libxau.sh index 19d9fde..17c2acc 100755 --- a/scripts.d/45-x11/20-libxau.sh +++ b/scripts.d/45-x11/20-libxau.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxau.git" -SCRIPT_COMMIT="df1bf4fe528a5a9eef420f78efb225e4696ac467" +LIBXAU_REPO="https://gitlab.freedesktop.org/xorg/lib/libxau.git" +LIBXAU_COMMIT="d9443b2c57b512cfb250b35707378654d86c7dea" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXAU_REPO" "$LIBXAU_COMMIT" libxau + cd libxau autoreconf -i diff --git a/scripts.d/45-x11/30-libxcb.sh b/scripts.d/45-x11/30-libxcb.sh index 588568d..0adda53 100755 --- a/scripts.d/45-x11/30-libxcb.sh +++ b/scripts.d/45-x11/30-libxcb.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcb.git" -SCRIPT_COMMIT="8935793f1f3751a6aa9d78955c7d6236177986de" +LIBXCB_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcb.git" +LIBXCB_COMMIT="ddafdba11f6919e6fcf977c09c78b06f94de47aa" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXCB_REPO" "$LIBXCB_COMMIT" libxcb + cd libxcb autoreconf -i diff --git a/scripts.d/45-x11/40-libx11.sh b/scripts.d/45-x11/40-libx11.sh index 8d90f37..6e84e24 100755 --- a/scripts.d/45-x11/40-libx11.sh +++ b/scripts.d/45-x11/40-libx11.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libx11.git" -SCRIPT_COMMIT="af2b6dfab1616dc85be9c9b196e4c56d00447851" +LIBX11_REPO="https://gitlab.freedesktop.org/xorg/lib/libx11.git" +LIBX11_COMMIT="35d1513bc7fdd3ac6f5807feb601efc34ac19163" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBX11_REPO" "$LIBX11_COMMIT" libx11 + cd libx11 autoreconf -i @@ -26,12 +27,6 @@ ffbuild_dockerbuild() { --enable-ipv6 ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/50-libxext.sh b/scripts.d/45-x11/50-libxext.sh index 2e73d25..77d5bad 100755 --- a/scripts.d/45-x11/50-libxext.sh +++ b/scripts.d/45-x11/50-libxext.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxext.git" -SCRIPT_COMMIT="de2ebd62c1eb8fe16c11aceac4a6981bda124cf4" +LIBXEXT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxext.git" +LIBXEXT_COMMIT="47904063048fa6ef6e8e16219ddef4d14d5d9a4b" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXEXT_REPO" "$LIBXEXT_COMMIT" libxext + cd libxext autoreconf -i @@ -24,12 +25,6 @@ ffbuild_dockerbuild() { --without-lint ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" @@ -39,7 +34,7 @@ ffbuild_dockerbuild() { return -1 fi - export CFLAGS="$RAW_CFLAGS -D_GNU_SOURCE" + export CFLAGS="$RAW_CFLAGS" export LDFLAFS="$RAW_LDFLAGS" ./configure "${myconf[@]}" diff --git a/scripts.d/45-x11/50-libxfixes.sh b/scripts.d/45-x11/50-libxfixes.sh index 80fa4dd..693f3dd 100755 --- a/scripts.d/45-x11/50-libxfixes.sh +++ b/scripts.d/45-x11/50-libxfixes.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxfixes.git" -SCRIPT_COMMIT="c1cab28e27dd1c5a81394965248b57e490ccf2ca" +LIBXFIXES_REPO="https://gitlab.freedesktop.org/xorg/lib/libxfixes.git" +LIBXFIXES_COMMIT="6fe3bd64dd82f704ed91478acb4c99ab5c00be16" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXFIXES_REPO" "$LIBXFIXES_COMMIT" libxfixes + cd libxfixes autoreconf -i diff --git a/scripts.d/45-x11/50-libxi.sh b/scripts.d/45-x11/50-libxi.sh index f979476..4ba520a 100755 --- a/scripts.d/45-x11/50-libxi.sh +++ b/scripts.d/45-x11/50-libxi.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxi.git" -SCRIPT_COMMIT="3a7503ec7703f10de17c622ea22b7bff736cea74" +LIBXI_REPO="https://gitlab.freedesktop.org/xorg/lib/libxi.git" +LIBXI_COMMIT="f24d7f43ab4d97203e60677a3d42e11dbc80c8b4" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXI_REPO" "$LIBXI_COMMIT" libxi + cd libxi autoreconf -i @@ -20,12 +21,6 @@ ffbuild_dockerbuild() { --with-pic ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/50-libxinerama.sh b/scripts.d/45-x11/50-libxinerama.sh index 6f24a94..9483165 100755 --- a/scripts.d/45-x11/50-libxinerama.sh +++ b/scripts.d/45-x11/50-libxinerama.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxinerama.git" -SCRIPT_COMMIT="51c28095951676a5896437c4c3aa40fb1972bad2" +LIBXINERAMA_REPO="https://gitlab.freedesktop.org/xorg/lib/libxinerama.git" +LIBXINERAMA_COMMIT="c5187f076d16601c15c59c5a2f05c0513d9f042b" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXINERAMA_REPO" "$LIBXINERAMA_COMMIT" libxinerama + cd libxinerama autoreconf -i @@ -20,12 +21,6 @@ ffbuild_dockerbuild() { --with-pic ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/50-libxrender.sh b/scripts.d/45-x11/50-libxrender.sh index 4f5566f..e4ac8af 100755 --- a/scripts.d/45-x11/50-libxrender.sh +++ b/scripts.d/45-x11/50-libxrender.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrender.git" -SCRIPT_COMMIT="07efd80468f6b595e6432edd28b8560ca7695ba0" +LIBXRENDER_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrender.git" +LIBXRENDER_COMMIT="bce0618839fc33f44edd8b5498b8e33d167806ff" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXRENDER_REPO" "$LIBXRENDER_COMMIT" libxrender + cd libxrender autoreconf -i @@ -20,12 +21,6 @@ ffbuild_dockerbuild() { --with-pic ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/50-libxscrnsaver.sh b/scripts.d/45-x11/50-libxscrnsaver.sh index fec2cab..5b37c50 100755 --- a/scripts.d/45-x11/50-libxscrnsaver.sh +++ b/scripts.d/45-x11/50-libxscrnsaver.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxscrnsaver.git" -SCRIPT_COMMIT="9b4e000c6c4ae213a3e52345751d885543f17929" +LIBXSCRNSAVER_REPO="https://gitlab.freedesktop.org/xorg/lib/libxscrnsaver.git" +LIBXSCRNSAVER_COMMIT="aa9fd5061d0a8832480ad0c1acc9d2e864e807f4" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXSCRNSAVER_REPO" "$LIBXSCRNSAVER_COMMIT" libxscrnsaver + cd libxscrnsaver autoreconf -i @@ -20,12 +21,6 @@ ffbuild_dockerbuild() { --with-pic ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/50-libxxf86vm.sh b/scripts.d/45-x11/50-libxxf86vm.sh index 72dd8fa..147573f 100755 --- a/scripts.d/45-x11/50-libxxf86vm.sh +++ b/scripts.d/45-x11/50-libxxf86vm.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxxf86vm.git" -SCRIPT_COMMIT="cfda59347e3a04415340a99f925a9cd85c0531b2" +LIBXXF86VM_REPO="https://gitlab.freedesktop.org/xorg/lib/libxxf86vm.git" +LIBXXF86VM_COMMIT="7f43cd2a905e7b93b83c9ce81dabb768f6fa2bc7" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXXF86VM_REPO" "$LIBXXF86VM_COMMIT" libxxf86vm + cd libxxf86vm autoreconf -i @@ -20,12 +21,6 @@ ffbuild_dockerbuild() { --with-pic ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/60-libglvnd.sh b/scripts.d/45-x11/60-libglvnd.sh index 15c439f..e43f202 100755 --- a/scripts.d/45-x11/60-libglvnd.sh +++ b/scripts.d/45-x11/60-libglvnd.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/glvnd/libglvnd.git" -SCRIPT_COMMIT="179d7278d7485ceea2d440807be9d677d32aedc4" +GLVND_REPO="https://gitlab.freedesktop.org/glvnd/libglvnd.git" +GLVND_COMMIT="5024e5796ea16baf6f9203b1414c870a30b20474" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$GLVND_REPO" "$GLVND_COMMIT" glvnd + cd glvnd mkdir build && cd build diff --git a/scripts.d/45-x11/60-libxcursor.sh b/scripts.d/45-x11/60-libxcursor.sh index eaa36f8..4a11470 100755 --- a/scripts.d/45-x11/60-libxcursor.sh +++ b/scripts.d/45-x11/60-libxcursor.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcursor.git" -SCRIPT_COMMIT="a353f02a7ac4504ad5edb5407278c7a03c507aef" +LIBXCURSOR_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcursor.git" +LIBXCURSOR_COMMIT="27adb16027fa99d83818a0ed9f6623cb03f0c574" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXCURSOR_REPO" "$LIBXCURSOR_COMMIT" libxcursor + cd libxcursor autoreconf -i diff --git a/scripts.d/45-x11/60-libxrandr.sh b/scripts.d/45-x11/60-libxrandr.sh index ab1cdbc..bc159c1 100755 --- a/scripts.d/45-x11/60-libxrandr.sh +++ b/scripts.d/45-x11/60-libxrandr.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrandr.git" -SCRIPT_COMMIT="5b96863cf2a34ee9e72ffc4ec6415bc59b6121fc" +LIBXRANDR_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrandr.git" +LIBXRANDR_COMMIT="55dcda4518eda8ae03ef25ea29d3c994ad71eb0a" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXRANDR_REPO" "$LIBXRANDR_COMMIT" libxrandr + cd libxrandr autoreconf -i @@ -20,12 +21,6 @@ ffbuild_dockerbuild() { --with-pic ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/60-libxv.sh b/scripts.d/45-x11/60-libxv.sh index 980490e..1648a2e 100755 --- a/scripts.d/45-x11/60-libxv.sh +++ b/scripts.d/45-x11/60-libxv.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxv.git" -SCRIPT_COMMIT="b022c9cf7004fe6f794c4c00dd519a2e4c74eca0" +LIBXV_REPO="https://gitlab.freedesktop.org/xorg/lib/libxv.git" +LIBXV_COMMIT="03a6f599d060591a9a7cd8558bd2143a1c7c70d7" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -10,7 +10,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBXV_REPO" "$LIBXV_COMMIT" libxv + cd libxv autoreconf -i @@ -22,12 +23,6 @@ ffbuild_dockerbuild() { --without-lint ) - if [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --disable-malloc0returnsnull - ) - fi - if [[ $TARGET == linux* ]]; then myconf+=( --host="$FFBUILD_TOOLCHAIN" diff --git a/scripts.d/45-x11/99-finalize.sh b/scripts.d/45-x11/99-finalize.sh index c63652b..4cf3f77 100755 --- a/scripts.d/45-x11/99-finalize.sh +++ b/scripts.d/45-x11/99-finalize.sh @@ -1,7 +1,5 @@ #!/bin/bash -SCRIPT_SKIP="1" - ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 return 0 @@ -12,10 +10,6 @@ ffbuild_dockerlayer() { to_df "COPY --from=${SELFLAYER} \$FFBUILD_PREFIX/share/aclocal/. /usr/share/aclocal" } -ffbuild_dockerdl() { - return 0 -} - ffbuild_dockerbuild() { rm "$FFBUILD_PREFIX"/lib/lib*.so* || true rm "$FFBUILD_PREFIX"/lib/*.la || true diff --git a/scripts.d/50-amf.sh b/scripts.d/50-amf.sh index 73ed13c..cfc4689 100755 --- a/scripts.d/50-amf.sh +++ b/scripts.d/50-amf.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git" -SCRIPT_COMMIT="68f2396f1a55a5b12767f5433411bb4093ea65ed" +AMF_REPO="https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git" +AMF_COMMIT="053040d662b4d88d9994dc706b948ee409292537" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$AMF_REPO" "$AMF_COMMIT" amf + cd amf mkdir -p "$FFBUILD_PREFIX"/include mv amf/public/include "$FFBUILD_PREFIX"/include/AMF diff --git a/scripts.d/50-aom.sh b/scripts.d/50-aom.sh index 89b526e..4db70b3 100755 --- a/scripts.d/50-aom.sh +++ b/scripts.d/50-aom.sh @@ -1,18 +1,19 @@ #!/bin/bash -SCRIPT_REPO="https://aomedia.googlesource.com/aom" -SCRIPT_COMMIT="83ccc009eade321c8723ae0da8655fc68ce6a128" +AOM_REPO="https://aomedia.googlesource.com/aom" +AOM_COMMIT="93e83ff473b20e983c6b9bf6ba8d208c70a31188" ffbuild_enabled() { return 0 } ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=/,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/aom,dst=/patches run_stage /stage.sh" + to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/aom,dst=/patches run_stage /stage.sh" } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$AOM_REPO" "$AOM_COMMIT" aom + cd aom for patch in /patches/*.patch; do echo "Applying $patch" diff --git a/scripts.d/50-aribb24/25-libpng.sh b/scripts.d/50-aribb24/25-libpng.sh index e7aa9ff..72e7b36 100755 --- a/scripts.d/50-aribb24/25-libpng.sh +++ b/scripts.d/50-aribb24/25-libpng.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/glennrp/libpng.git" -SCRIPT_COMMIT="82414985c1085737bccd3eedb0aaa997451f5d32" +LIBPNG_REPO="https://github.com/glennrp/libpng.git" +LIBPNG_COMMIT="a37d4836519517bdce6cb9d956092321eca3e73b" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBPNG_REPO" "$LIBPNG_COMMIT" libpng + cd libpng autoreconf -i diff --git a/scripts.d/50-aribb24/50-libaribb24.sh b/scripts.d/50-aribb24/50-libaribb24.sh index c032178..9131ac4 100755 --- a/scripts.d/50-aribb24/50-libaribb24.sh +++ b/scripts.d/50-aribb24/50-libaribb24.sh @@ -1,18 +1,19 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/nkoriyama/aribb24.git" -SCRIPT_COMMIT="5e9be272f96e00f15a2f3c5f8ba7e124862aec38" +ARIBB24_REPO="https://github.com/nkoriyama/aribb24.git" +ARIBB24_COMMIT="5e9be272f96e00f15a2f3c5f8ba7e124862aec38" ffbuild_enabled() { return 0 } ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=/,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/aribb24,dst=/patches run_stage /stage.sh" + to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/aribb24,dst=/patches run_stage /stage.sh" } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$ARIBB24_REPO" "$ARIBB24_COMMIT" aribb24 + cd aribb24 for patch in /patches/*.patch; do echo "Applying $patch" diff --git a/scripts.d/50-avisynth.sh b/scripts.d/50-avisynth.sh index 4978378..cd3f317 100755 --- a/scripts.d/50-avisynth.sh +++ b/scripts.d/50-avisynth.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/AviSynth/AviSynthPlus.git" -SCRIPT_COMMIT="fc5b9bc41fd47001b7da39ea777d29c0ede2a2a7" +AVISYNTH_REPO="https://github.com/AviSynth/AviSynthPlus.git" +AVISYNTH_COMMIT="23f945532f22c75fa1c8e7b99c129b25b88f1cc8" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 @@ -9,10 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - # their version check is insistant on a tag to exist, so make one - git tag -a ffbuild -m "FFbuild Version" + git-mini-clone "$AVISYNTH_REPO" "$AVISYNTH_COMMIT" avisynth + cd avisynth mkdir build && cd build diff --git a/scripts.d/50-chromaprint.sh b/scripts.d/50-chromaprint.sh deleted file mode 100755 index cdec6d4..0000000 --- a/scripts.d/50-chromaprint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -SCRIPT_REPO="https://github.com/acoustid/chromaprint.git" -SCRIPT_COMMIT="aa67c95b9e486884a6d3ee8b0c91207d8c2b0551" - -ffbuild_enabled() { - # pkg-config check is currently only available in master - [[ $ADDINS_STR == *4.4* ]] && return -1 - [[ $ADDINS_STR == *5.0* ]] && return -1 - [[ $ADDINS_STR == *5.1* ]] && return -1 - return 0 -} - -ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - mkdir build && cd build - - cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DBUILD_TOOLS=OFF -DBUILD_TESTS=OFF -DFFT_LIB=fftw3 .. - make -j$(nproc) - make install - - echo "Libs.private: -lfftw3 -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/libchromaprint.pc - echo "Cflags.private: -DCHROMAPRINT_NODLL" >> "$FFBUILD_PREFIX"/lib/pkgconfig/libchromaprint.pc -} - -ffbuild_configure() { - echo --enable-chromaprint -} - -ffbuild_unconfigure() { - echo --disable-chromaprint -} diff --git a/scripts.d/50-dav1d.sh b/scripts.d/50-dav1d.sh index ca12597..dc636d7 100755 --- a/scripts.d/50-dav1d.sh +++ b/scripts.d/50-dav1d.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://code.videolan.org/videolan/dav1d.git" -SCRIPT_COMMIT="a7e12b628472516718d37108fde7d438b14a0372" +DAV1D_REPO="https://code.videolan.org/videolan/dav1d.git" +DAV1D_COMMIT="bfc1178f911543739fe50697998d9df69ad2f201" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$DAV1D_REPO" "$DAV1D_COMMIT" dav1d + cd dav1d mkdir build && cd build diff --git a/scripts.d/50-davs2.sh b/scripts.d/50-davs2.sh index 1e4cd15..64b84a3 100755 --- a/scripts.d/50-davs2.sh +++ b/scripts.d/50-davs2.sh @@ -1,22 +1,18 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/pkuvcl/davs2.git" -SCRIPT_COMMIT="b41cf117452e2d73d827f02d3e30aa20f1c721ac" +DAVS2_REPO="https://github.com/pkuvcl/davs2.git" +DAVS2_COMMIT="b06d7585620f4e90a6d19a2926bb4e59793b8942" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 [[ $TARGET == win32 ]] && return -1 - # davs2 aarch64 support is broken - [[ $TARGET == linuxarm64 ]] && return -1 return 0 } -ffbuild_dockerdl() { - to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git clone "$DAVS2_REPO" davs2 + cd davs2 + git checkout "$DAVS2_COMMIT" cd build/linux local myconf=( @@ -35,10 +31,6 @@ ffbuild_dockerbuild() { return -1 fi - # Work around configure endian check failing on modern gcc/binutils. - # Assumes all supported archs are little endian. - sed -i -e 's/EGIB/bss/g' -e 's/naidnePF/bss/g' configure - ./configure "${myconf[@]}" make -j$(nproc) make install diff --git a/scripts.d/50-fdk-aac.sh b/scripts.d/50-fdk-aac.sh index e5f69b6..f97fa87 100755 --- a/scripts.d/50-fdk-aac.sh +++ b/scripts.d/50-fdk-aac.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/mstorsjo/fdk-aac.git" -SCRIPT_COMMIT="3f864cce9736cc8e9312835465fae18428d76295" +FDK_REPO="https://github.com/mstorsjo/fdk-aac.git" +FDK_COMMIT="072f2cdafdd2bb7ed2d630d09c2a5697a4aec53d" ffbuild_enabled() { [[ $VARIANT == nonfree* ]] || return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$FDK_REPO" "$FDK_COMMIT" fdk + cd fdk ./autogen.sh diff --git a/scripts.d/50-ffnvcodec.sh b/scripts.d/50-ffnvcodec.sh index 63862b5..dc037fc 100755 --- a/scripts.d/50-ffnvcodec.sh +++ b/scripts.d/50-ffnvcodec.sh @@ -1,27 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/FFmpeg/nv-codec-headers.git" -SCRIPT_COMMIT="855f8263d97bbdcaeabaaaa2997e1ccad7c52dc3" - -SCRIPT_REPO2="https://github.com/FFmpeg/nv-codec-headers.git" -SCRIPT_COMMIT2="dc3e4484dc83485734e503991fe5ed3bdf256fba" -SCRIPT_BRANCH2="sdk/11.1" +FFNVCODEC_REPO="https://github.com/FFmpeg/nv-codec-headers.git" +FFNVCODEC_COMMIT="84483da70d903239d4536763fde8c7e6c4e80784" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - default_dl ffnvcodec - to_df "RUN git-mini-clone \"$SCRIPT_REPO2\" \"$SCRIPT_COMMIT2\" ffnvcodec2" -} - ffbuild_dockerbuild() { - if [[ $ADDINS_STR == *4.4* || $ADDINS_STR == *5.0* || $ADDINS_STR == *5.1* ]]; then - cd "$FFBUILD_DLDIR"/ffnvcodec2 - else - cd "$FFBUILD_DLDIR"/ffnvcodec - fi + git-mini-clone "$FFNVCODEC_REPO" "$FFNVCODEC_COMMIT" ffnvcodec + cd ffnvcodec make PREFIX="$FFBUILD_PREFIX" install } diff --git a/scripts.d/50-frei0r.sh b/scripts.d/50-frei0r.sh index ae465f4..a48e371 100755 --- a/scripts.d/50-frei0r.sh +++ b/scripts.d/50-frei0r.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/dyne/frei0r.git" -SCRIPT_COMMIT="c3f987c4cc8c1a7f6928e574f4cb272a7770ca6f" +FREI0R_REPO="https://github.com/dyne/frei0r.git" +FREI0R_COMMIT="114a72f438fa04c5d12593e38dac148dbb9ce10c" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 @@ -10,19 +10,32 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$FREI0R_REPO" "$FREI0R_COMMIT" frei0r + cd frei0r - mkdir build && cd build + ./autogen.sh - cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" .. + local myconf=( + --prefix="$FFBUILD_PREFIX" + --disable-shared + --enable-static + --with-pic + --enable-cpuflags + ) - mkdir -p "$FFBUILD_PREFIX"/lib/pkgconfig - cp frei0r.pc "$FFBUILD_PREFIX"/lib/pkgconfig + if [[ $TARGET == win* || $TARGET == linux* ]]; then + myconf+=( + --host="$FFBUILD_TOOLCHAIN" + ) + else + echo "Unknown target" + return -1 + fi - mkdir -p "$FFBUILD_PREFIX"/include - cp ../include/frei0r.h "$FFBUILD_PREFIX"/include - - cat frei0r.pc + ./configure "${myconf[@]}" + make -C include -j$(nproc) + make -C include install + make install-pkgconfigDATA } ffbuild_configure() { diff --git a/scripts.d/50-gme.sh b/scripts.d/50-gme.sh index e580cd4..5a7a0c7 100755 --- a/scripts.d/50-gme.sh +++ b/scripts.d/50-gme.sh @@ -1,18 +1,16 @@ #!/bin/bash -SCRIPT_REPO="https://bitbucket.org/mpyne/game-music-emu.git" -SCRIPT_COMMIT="6cd4bdb69be304f58c9253fb08b8362f541b3b4b" +GME_REPO="https://bitbucket.org/mpyne/game-music-emu.git" +GME_COMMIT="b3d158a30492181fd7c38ef795c8d4dcfd77eaa9" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git clone "$GME_REPO" gme + cd gme + git checkout "$GME_COMMIT" mkdir build && cd build diff --git a/scripts.d/50-libass.sh b/scripts.d/50-libass.sh index e418f67..363ffa1 100755 --- a/scripts.d/50-libass.sh +++ b/scripts.d/50-libass.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/libass/libass.git" -SCRIPT_COMMIT="1a599b1db748dfc07df98cd37d8603edb87da2fd" +ASS_REPO="https://github.com/libass/libass.git" +ASS_COMMIT="0e0f9da2edc8eead93f9bf0ac4ef0336ad646ea7" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$ASS_REPO" "$ASS_COMMIT" ass + cd ass ./autogen.sh @@ -28,8 +29,6 @@ ffbuild_dockerbuild() { return -1 fi - export CFLAGS="$CFLAGS -Dread_file=libass_internal_read_file" - ./configure "${myconf[@]}" make -j$(nproc) make install diff --git a/scripts.d/50-libbluray.sh b/scripts.d/50-libbluray.sh index 8d23987..14f8d17 100755 --- a/scripts.d/50-libbluray.sh +++ b/scripts.d/50-libbluray.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://code.videolan.org/videolan/libbluray.git" -SCRIPT_COMMIT="bb5bc108ec695889855f06df338958004ff289ef" +LIBBLURAY_REPO="https://code.videolan.org/videolan/libbluray.git" +LIBBLURAY_COMMIT="0540b1c1c53f9813f99233208c5ccccd87004f98" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBBLURAY_REPO" "$LIBBLURAY_COMMIT" libbluray + cd libbluray ./bootstrap diff --git a/scripts.d/50-libjxl/45-brotli.sh b/scripts.d/50-libjxl/45-brotli.sh index 717e814..966fbcb 100755 --- a/scripts.d/50-libjxl/45-brotli.sh +++ b/scripts.d/50-libjxl/45-brotli.sh @@ -1,19 +1,34 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/google/brotli.git" -SCRIPT_COMMIT="413b098564a90a2e6cae192d30642d33a9197a39" +BROTLI_REPO="https://github.com/google/brotli.git" +BROTLI_COMMIT="f4153a09f87cbb9c826d8fc12c74642bb2d879ea" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$BROTLI_REPO" "$BROTLI_COMMIT" brotli + cd brotli mkdir build && cd build - cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF .. + cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. ninja -j$(nproc) ninja install + + # Build system is severely lacking in options, clean up after it + rm -r "${FFBUILD_PREFIX}"/bin + mv "${FFBUILD_PREFIX}"/lib/libbrotlienc{-static,}.a + mv "${FFBUILD_PREFIX}"/lib/libbrotlidec{-static,}.a + mv "${FFBUILD_PREFIX}"/lib/libbrotlicommon{-static,}.a + + if [[ $TARGET == win* ]]; then + rm "${FFBUILD_PREFIX}"/lib/libbrotli*.dll.a + elif [[ $TARGET == linux* ]]; then + rm "${FFBUILD_PREFIX}"/lib/libbrotli*.so* + else + echo "Unknown target" + return -1 + fi } diff --git a/scripts.d/50-libjxl/50-libjxl.sh b/scripts.d/50-libjxl/50-libjxl.sh index adbcf6a..67b5fcb 100755 --- a/scripts.d/50-libjxl/50-libjxl.sh +++ b/scripts.d/50-libjxl/50-libjxl.sh @@ -1,23 +1,18 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/libjxl/libjxl.git" -SCRIPT_COMMIT="c3a4f9ca89ae59c6265a2f1bf2a6d2a87a71fc16" +JXL_REPO="https://github.com/libjxl/libjxl.git" +JXL_COMMIT="bd48652dba3469244af489e48c645307191cc039" ffbuild_enabled() { [[ $ADDINS_STR == *4.4* ]] && return -1 [[ $ADDINS_STR == *5.0* ]] && return -1 - [[ $ADDINS_STR == *5.1* ]] && return -1 - [[ $ADDINS_STR == *6.0* ]] && return -1 return 0 } -ffbuild_dockerdl() { - default_dl "$SELF" - to_df "RUN git -C \"$SELF\" submodule update --init --recursive --depth 1 --recommend-shallow third_party/highway third_party/skcms" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$JXL_REPO" "$JXL_COMMIT" jxl + cd jxl + git submodule update --init --recursive --depth 1 --recommend-shallow third_party/{highway,skcms} mkdir build && cd build @@ -32,7 +27,7 @@ ffbuild_dockerbuild() { cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DBUILD_SHARED_LIBS=OFF -DJPEGXL_STATIC=OFF -DJPEGXL_ENABLE_TOOLS=OFF -DJPEGXL_ENABLE_VIEWERS=OFF -DJPEGXL_EMSCRIPTEN=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF \ - -DJPEGXL_ENABLE_JPEGLI=OFF -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JNI=OFF -DJPEGXL_ENABLE_PLUGINS=OFF \ + -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JNI=OFF -DJPEGXL_ENABLE_PLUGINS=OFF \ -DJPEGXL_ENABLE_DEVTOOLS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_BUNDLE_LIBPNG=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON .. ninja -j$(nproc) ninja install @@ -46,6 +41,10 @@ ffbuild_dockerbuild() { if [[ $TARGET == win* ]]; then echo "Libs.private: -ladvapi32" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl.pc echo "Libs.private: -ladvapi32" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl_threads.pc + + mv "${FFBUILD_PREFIX}"/lib/libjxl{-static,}.a + mv "${FFBUILD_PREFIX}"/lib/libjxl_dec{-static,}.a + mv "${FFBUILD_PREFIX}"/lib/libjxl_threads{-static,}.a fi } diff --git a/scripts.d/50-libmp3lame.sh b/scripts.d/50-libmp3lame.sh index 352e3f2..eb6a4b7 100755 --- a/scripts.d/50-libmp3lame.sh +++ b/scripts.d/50-libmp3lame.sh @@ -1,20 +1,18 @@ #!/bin/bash -SCRIPT_REPO="https://svn.code.sf.net/p/lame/svn/trunk/lame" -SCRIPT_REV="6507" +LAME_SRC="https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - to_df "RUN retry-tool sh -c \"rm -rf lame && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' lame\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR"/lame - - autoreconf -i + mkdir lame + cd lame + wget -O lame.tar.gz "$LAME_SRC" + tar xaf lame.tar.gz + rm lame.tar.gz + cd lame* local myconf=( --prefix="$FFBUILD_PREFIX" @@ -24,7 +22,6 @@ ffbuild_dockerbuild() { --disable-gtktest --disable-cpml --disable-frontend - --disable-decoder ) if [[ $TARGET == win* || $TARGET == linux* ]]; then @@ -36,8 +33,6 @@ ffbuild_dockerbuild() { return -1 fi - export CFLAGS="$CFLAGS -DNDEBUG" - ./configure "${myconf[@]}" make -j$(nproc) make install diff --git a/scripts.d/50-libopus.sh b/scripts.d/50-libopus.sh index e69f098..a7274bb 100755 --- a/scripts.d/50-libopus.sh +++ b/scripts.d/50-libopus.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/xiph/opus.git" -SCRIPT_COMMIT="9fc8fc4cf432640f284113ba502ee027268b0d9f" +OPUS_REPO="https://github.com/xiph/opus.git" +OPUS_COMMIT="ccaaffa9a3ee427e9401c4dcf6462e378d9a4694" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$OPUS_REPO" "$OPUS_COMMIT" opus + cd opus ./autogen.sh diff --git a/scripts.d/50-librist/40-mbedtls.sh b/scripts.d/50-librist/40-mbedtls.sh index 404abda..01aa7b7 100755 --- a/scripts.d/50-librist/40-mbedtls.sh +++ b/scripts.d/50-librist/40-mbedtls.sh @@ -1,22 +1,27 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/ARMmbed/mbedtls.git" -SCRIPT_COMMIT="v3.4.0" -SCRIPT_TAGFILTER="v3.*" +MBEDTLS_REPO="https://github.com/ARMmbed/mbedtls.git" +MBEDTLS_COMMIT="v3.1.0" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$MBEDTLS_REPO" "$MBEDTLS_COMMIT" mbedtls + cd mbedtls mkdir build && cd build cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF -DGEN_FILES=ON \ + -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF \ -DUSE_STATIC_MBEDTLS_LIBRARY=ON -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DINSTALL_MBEDTLS_HEADERS=ON \ .. make -j$(nproc) make install } + +ffbuild_configure() { + [[ $TARGET == win* ]] && return -1 + echo --enable-mbedtls +} diff --git a/scripts.d/50-librist/50-librist.sh b/scripts.d/50-librist/50-librist.sh index 0b648ba..df97141 100755 --- a/scripts.d/50-librist/50-librist.sh +++ b/scripts.d/50-librist/50-librist.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://code.videolan.org/rist/librist.git" -SCRIPT_COMMIT="04ba78abb6f8f673da0cc75056df876178e504fb" +LIBRIST_REPO="https://code.videolan.org/rist/librist.git" +LIBRIST_COMMIT="809390b3b75a259a704079d0fb4d8f1b5f7fa956" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBRIST_REPO" "$LIBRIST_COMMIT" librist + cd librist mkdir build && cd build diff --git a/scripts.d/50-libssh.sh b/scripts.d/50-libssh.sh deleted file mode 100755 index 9f4b611..0000000 --- a/scripts.d/50-libssh.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -SCRIPT_REPO="https://git.libssh.org/projects/libssh.git" -SCRIPT_COMMIT="a7f85944c8c04cd1aba1a122b766f5d04db51050" - -ffbuild_enabled() { - return 0 -} - -ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - mkdir build && cd build - - cmake -GNinja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DBUILD_SHARED_LIBS=OFF \ - -DWITH_EXAMPLES=OFF -DWITH_SERVER=OFF \ - -DWITH_SFTP=ON -DWITH_ZLIB=ON .. - - ninja -j$(nproc) - ninja install - - { - echo "Requires.private: libssl libcrypto zlib" - echo "Cflags.private: -DLIBSSH_STATIC" - } >> "$FFBUILD_PREFIX"/lib/pkgconfig/libssh.pc -} - -ffbuild_configure() { - echo --enable-libssh -} - -ffbuild_unconfigure() { - echo --disable-libssh -} diff --git a/scripts.d/50-libtheora.sh b/scripts.d/50-libtheora.sh index 79b7603..d922288 100755 --- a/scripts.d/50-libtheora.sh +++ b/scripts.d/50-libtheora.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/xiph/theora.git" -SCRIPT_COMMIT="7180717276af1ebc7da15c83162d6c5d6203aabf" +THEORA_REPO="https://github.com/xiph/theora.git" +THEORA_COMMIT="7180717276af1ebc7da15c83162d6c5d6203aabf" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$THEORA_REPO" "$THEORA_COMMIT" theora + cd theora ./autogen.sh diff --git a/scripts.d/50-libvpx.sh b/scripts.d/50-libvpx.sh index f16cc1e..b83b64b 100755 --- a/scripts.d/50-libvpx.sh +++ b/scripts.d/50-libvpx.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://chromium.googlesource.com/webm/libvpx" -SCRIPT_COMMIT="b2c2955c8200ff434f178009df41a1e1e1623156" +LIBVPX_REPO="https://chromium.googlesource.com/webm/libvpx" +LIBVPX_COMMIT="618739f59f5d3505ff76a1a82eb198bed4ec989d" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBVPX_REPO" "$LIBVPX_COMMIT" libvpx + cd libvpx local myconf=( --disable-shared @@ -17,7 +18,6 @@ ffbuild_dockerbuild() { --disable-examples --disable-tools --disable-docs - --disable-unit-tests --enable-vp9-highbitdepth --prefix="$FFBUILD_PREFIX" ) @@ -32,16 +32,11 @@ ffbuild_dockerbuild() { --target=x86-win32-gcc ) export CROSS="$FFBUILD_CROSS_PREFIX" - elif [[ $TARGET == linux64 ]]; then + elif [[ $TARGET == linux* ]]; then myconf+=( --target=x86_64-linux-gcc ) export CROSS="$FFBUILD_CROSS_PREFIX" - elif [[ $TARGET == linuxarm64 ]]; then - myconf+=( - --target=arm64-linux-gcc - ) - export CROSS="$FFBUILD_CROSS_PREFIX" else echo "Unknown target" return -1 @@ -50,9 +45,6 @@ ffbuild_dockerbuild() { ./configure "${myconf[@]}" make -j$(nproc) make install - - # Work around strip breaking LTO symbol index - "$RANLIB" "$FFBUILD_PREFIX"/lib/libvpx.a } ffbuild_configure() { diff --git a/scripts.d/50-libwebp.sh b/scripts.d/50-libwebp.sh index 2579d7e..fa2604e 100755 --- a/scripts.d/50-libwebp.sh +++ b/scripts.d/50-libwebp.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://chromium.googlesource.com/webm/libwebp" -SCRIPT_COMMIT="eac3bd5c53da8bec55a635c6f4234c9cd5753820" +WEBP_REPO="https://chromium.googlesource.com/webm/libwebp" +WEBP_COMMIT="dc3841e077c522be3a011a50d78c717d2656eab9" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$WEBP_REPO" "$WEBP_COMMIT" webp + cd webp ./autogen.sh diff --git a/scripts.d/50-lilv/96-lv2.sh b/scripts.d/50-lilv/96-lv2.sh index 7a14ca7..d8d43d7 100755 --- a/scripts.d/50-lilv/96-lv2.sh +++ b/scripts.d/50-lilv/96-lv2.sh @@ -1,37 +1,24 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/lv2/lv2.git" -SCRIPT_COMMIT="bb6a2103c7adf3c1339728915d7f1497ee98dcbf" +LV2_REPO="https://github.com/lv2/lv2.git" +LV2_COMMIT="6cefc7df1a6158c79d23029df183c09b10b88cad" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LV2_REPO" "$LV2_COMMIT" lv2 + cd lv2 + git submodule update --init --recursive --depth 1 - mkdir build && cd build - - local myconf=( + local mywaf=( --prefix="$FFBUILD_PREFIX" - --buildtype=release - --default-library=static - -Ddocs=disabled - -Dplugins=disabled - -Dtests=disabled - -Donline_docs=false + --no-plugins + --no-coverage ) - if [[ $TARGET == win* || $TARGET == linux* ]]; then - myconf+=( - --cross-file=/cross.meson - ) - else - echo "Unknown target" - return -1 - fi - - meson "${myconf[@]}" .. - ninja -j"$(nproc)" - ninja install + CC="${FFBUILD_CROSS_PREFIX}gcc" CXX="${FFBUILD_CROSS_PREFIX}g++" ./waf configure "${mywaf[@]}" + ./waf -j$(nproc) + ./waf install } diff --git a/scripts.d/50-lilv/96-serd.sh b/scripts.d/50-lilv/96-serd.sh index 3a5cbcb..a84d358 100755 --- a/scripts.d/50-lilv/96-serd.sh +++ b/scripts.d/50-lilv/96-serd.sh @@ -1,36 +1,29 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/drobilla/serd.git" -SCRIPT_COMMIT="dbf48d099a78d2075e224549a28e690d56a6d503" +SERD_REPO="https://github.com/drobilla/serd.git" +SERD_COMMIT="c05fdaa19be53ef618435d3629122a4ebdc7cb63" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SERD_REPO" "$SERD_COMMIT" serd + cd serd + git submodule update --init --recursive --depth 1 - mkdir build && cd build - - local myconf=( + local mywaf=( --prefix="$FFBUILD_PREFIX" - --buildtype=release - --default-library=static - -Ddocs=disabled - -Dtools=disabled - -Dtests=disabled + --no-utils + --static + --no-shared + --largefile + --stack-check ) - if [[ $TARGET == win* || $TARGET == linux* ]]; then - myconf+=( - --cross-file=/cross.meson - ) - else - echo "Unknown target" - return -1 - fi + CC="${FFBUILD_CROSS_PREFIX}gcc" CXX="${FFBUILD_CROSS_PREFIX}g++" ./waf configure "${mywaf[@]}" + ./waf -j$(nproc) + ./waf install - meson "${myconf[@]}" .. - ninja -j"$(nproc)" - ninja install + sed -i 's/Cflags:/Cflags: -DSERD_STATIC/' "$FFBUILD_PREFIX"/lib/pkgconfig/serd-0.pc } diff --git a/scripts.d/50-lilv/96-zix.sh b/scripts.d/50-lilv/96-zix.sh deleted file mode 100755 index 534e224..0000000 --- a/scripts.d/50-lilv/96-zix.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -SCRIPT_REPO="https://github.com/drobilla/zix.git" -SCRIPT_COMMIT="a5c18d52a5351430d370084f25aaf7d166f7afd5" - -ffbuild_enabled() { - return 0 -} - -ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - mkdir build && cd build - - local myconf=( - --prefix="$FFBUILD_PREFIX" - --buildtype=release - --default-library=static - -Ddocs=disabled - -Dbenchmarks=disabled - -Dtests=disabled - -Dtests_cpp=disabled - ) - - if [[ $TARGET == win* || $TARGET == linux* ]]; then - myconf+=( - --cross-file=/cross.meson - ) - else - echo "Unknown target" - return -1 - fi - - meson "${myconf[@]}" .. - ninja -j"$(nproc)" - ninja install -} diff --git a/scripts.d/50-lilv/97-sord.sh b/scripts.d/50-lilv/97-sord.sh index cce7dda..0930117 100755 --- a/scripts.d/50-lilv/97-sord.sh +++ b/scripts.d/50-lilv/97-sord.sh @@ -1,36 +1,27 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/drobilla/sord.git" -SCRIPT_COMMIT="46f4bcbe04330645a11d00e56a7754cc1386bc45" +SORD_REPO="https://github.com/drobilla/sord.git" +SORD_COMMIT="d2efdb2d026216449599350b55c2c85c0d3efb89" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SORD_REPO" "$SORD_COMMIT" sord + cd sord + git submodule update --init --recursive --depth 1 - mkdir build && cd build - - local myconf=( + local mywaf=( --prefix="$FFBUILD_PREFIX" - --buildtype=release - --default-library=static - -Ddocs=disabled - -Dtools=disabled - -Dtests=disabled + --no-utils + --static + --no-shared ) - if [[ $TARGET == win* || $TARGET == linux* ]]; then - myconf+=( - --cross-file=/cross.meson - ) - else - echo "Unknown target" - return -1 - fi + CC="${FFBUILD_CROSS_PREFIX}gcc" CXX="${FFBUILD_CROSS_PREFIX}g++" ./waf configure "${mywaf[@]}" + ./waf -j$(nproc) + ./waf install - meson "${myconf[@]}" .. - ninja -j"$(nproc)" - ninja install + sed -i 's/Cflags:/Cflags: -DSORD_STATIC/' "$FFBUILD_PREFIX"/lib/pkgconfig/sord-0.pc } diff --git a/scripts.d/50-lilv/98-sratom.sh b/scripts.d/50-lilv/98-sratom.sh index d32e200..b325e2f 100755 --- a/scripts.d/50-lilv/98-sratom.sh +++ b/scripts.d/50-lilv/98-sratom.sh @@ -1,35 +1,26 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/lv2/sratom.git" -SCRIPT_COMMIT="b97b447d77fbf172260b4b40f184959f59c3623e" +SRATOM_REPO="https://github.com/lv2/sratom.git" +SRATOM_COMMIT="c46452c83d442de137fa6470ba544e3ba142e923" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SRATOM_REPO" "$SRATOM_COMMIT" sratom + cd sratom + git submodule update --init --recursive --depth 1 - mkdir build && cd build - - local myconf=( + local mywaf=( --prefix="$FFBUILD_PREFIX" - --buildtype=release - --default-library=static - -Ddocs=disabled - -Dtests=disabled + --static + --no-shared ) - if [[ $TARGET == win* || $TARGET == linux* ]]; then - myconf+=( - --cross-file=/cross.meson - ) - else - echo "Unknown target" - return -1 - fi + CC="${FFBUILD_CROSS_PREFIX}gcc" CXX="${FFBUILD_CROSS_PREFIX}g++" ./waf configure "${mywaf[@]}" + ./waf -j$(nproc) + ./waf install - meson "${myconf[@]}" .. - ninja -j"$(nproc)" - ninja install + sed -i 's/Cflags:/Cflags: -DSRATOM_STATIC/' "$FFBUILD_PREFIX"/lib/pkgconfig/sratom-0.pc } diff --git a/scripts.d/50-lilv/99-lilv.sh b/scripts.d/50-lilv/99-lilv.sh index d026da6..5a15b13 100755 --- a/scripts.d/50-lilv/99-lilv.sh +++ b/scripts.d/50-lilv/99-lilv.sh @@ -1,39 +1,31 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/lv2/lilv.git" -SCRIPT_COMMIT="54b32c1949d60225602a7161d5d6c4853230307a" +LILV_REPO="https://github.com/lv2/lilv.git" +LILV_COMMIT="71a2ff5170caaa052814cce19b3de927d10d0e24" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LILV_REPO" "$LILV_COMMIT" lilv + cd lilv + git submodule update --init --recursive --depth 1 - mkdir build && cd build - - local myconf=( + local mywaf=( --prefix="$FFBUILD_PREFIX" - --buildtype=release - --default-library=static - -Ddocs=disabled - -Dtools=disabled - -Dtests=disabled - -Dbindings_py=disabled + --static + --no-shared + --no-bindings + --no-utils + --no-bash-completion ) - if [[ $TARGET == win* || $TARGET == linux* ]]; then - myconf+=( - --cross-file=/cross.meson - ) - else - echo "Unknown target" - return -1 - fi + CC="${FFBUILD_CROSS_PREFIX}gcc" CXX="${FFBUILD_CROSS_PREFIX}g++" ./waf configure "${mywaf[@]}" + ./waf -j$(nproc) + ./waf install - meson "${myconf[@]}" .. - ninja -j"$(nproc)" - ninja install + sed -i 's/Cflags:/Cflags: -DLILV_STATIC/' "$FFBUILD_PREFIX"/lib/pkgconfig/lilv-0.pc } ffbuild_configure() { diff --git a/scripts.d/50-kvazaar.sh b/scripts.d/50-mfx.sh similarity index 62% rename from scripts.d/50-kvazaar.sh rename to scripts.d/50-mfx.sh index 2ee1b5d..b55fd20 100755 --- a/scripts.d/50-kvazaar.sh +++ b/scripts.d/50-mfx.sh @@ -1,16 +1,17 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/ultravideo/kvazaar.git" -SCRIPT_COMMIT="aaae5b0f4926065136f287876c6bc41631bae692" +MFX_REPO="https://github.com/lu-zero/mfx_dispatch.git" +MFX_COMMIT="7e4d221c36c630c1250b23a5dfa15657bc04c10c" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$MFX_REPO" "$MFX_COMMIT" mfx + cd mfx - ./autogen.sh + autoreconf -i local myconf=( --prefix="$FFBUILD_PREFIX" @@ -32,13 +33,13 @@ ffbuild_dockerbuild() { make -j$(nproc) make install - echo "Cflags.private: -DKVZ_STATIC_LIB" >> "$FFBUILD_PREFIX"/lib/pkgconfig/kvazaar.pc + ln -s libmfx.pc "$FFBUILD_PREFIX"/lib/pkgconfig/mfx.pc } ffbuild_configure() { - echo --enable-libkvazaar + echo --enable-libmfx } ffbuild_unconfigure() { - echo --disable-libkvazaar + echo --disable-libmfx } diff --git a/scripts.d/50-onevpl.sh b/scripts.d/50-onevpl.sh deleted file mode 100755 index 1e6aee5..0000000 --- a/scripts.d/50-onevpl.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -SCRIPT_REPO="https://github.com/oneapi-src/oneVPL.git" -SCRIPT_COMMIT="e12ace9761bb52786409e830f619916b86e87fc5" - -ffbuild_enabled() { - [[ $TARGET == *arm64 ]] && return -1 - [[ $ADDINS_STR == *4.4* ]] && return -1 - [[ $ADDINS_STR == *5.0* ]] && return -1 - [[ $ADDINS_STR == *5.1* ]] && return -1 - return 0 -} - -ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - mkdir build && cd build - - cmake -GNinja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DCMAKE_INSTALL_BINDIR="$FFBUILD_PREFIX"/bin -DCMAKE_INSTALL_LIBDIR="$FFBUILD_PREFIX"/lib \ - -DBUILD_DISPATCHER=ON -DBUILD_DEV=ON \ - -DBUILD_PREVIEW=OFF -DBUILD_TOOLS=OFF -DBUILD_TOOLS_ONEVPL_EXPERIMENTAL=OFF -DINSTALL_EXAMPLE_CODE=OFF \ - -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF .. - - ninja -j$(nproc) - ninja install - - rm -rf "$FFBUILD_PREFIX"/{etc,share} -} - -ffbuild_configure() { - echo --enable-libvpl -} - -ffbuild_unconfigure() { - [[ $ADDINS_STR == *4.4* ]] && return 0 - [[ $ADDINS_STR == *5.0* ]] && return 0 - [[ $ADDINS_STR == *5.1* ]] && return 0 - - echo --disable-libvpl -} diff --git a/scripts.d/50-openal.sh b/scripts.d/50-openal.sh deleted file mode 100755 index 7da1fa1..0000000 --- a/scripts.d/50-openal.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -SCRIPT_REPO="https://github.com/kcat/openal-soft.git" -SCRIPT_COMMIT="05f9ce8b978239cebecef1a60f0d451a118fa3df" - -ffbuild_enabled() { - [[ $ADDINS_STR == *4.4* ]] && return -1 - [[ $ADDINS_STR == *5.0* ]] && return -1 - [[ $ADDINS_STR == *5.1* ]] && return -1 - return 0 -} - -ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - mkdir cm_build && cd cm_build - - cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DLIBTYPE=STATIC -DALSOFT_UTILS=OFF -DALSOFT_EXAMPLES=OFF .. - make -j$(nproc) - make install - - echo "Libs.private: -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/openal.pc - - if [[ $TARGET == win* ]]; then - echo "Libs.private: -lole32" >> "$FFBUILD_PREFIX"/lib/pkgconfig/openal.pc - fi -} - -ffbuild_configure() { - echo --enable-openal -} - -ffbuild_unconfigure() { - echo --disable-openal -} diff --git a/scripts.d/50-opencore-amr.sh b/scripts.d/50-opencore-amr.sh index 02309a4..b55bd22 100755 --- a/scripts.d/50-opencore-amr.sh +++ b/scripts.d/50-opencore-amr.sh @@ -1,14 +1,18 @@ #!/bin/bash -SCRIPT_REPO="https://git.code.sf.net/p/opencore-amr/code" -SCRIPT_COMMIT="7dba8c32238418ce0b316a852b2224df586ca896" +OAMR_SRC="https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.5.tar.gz/download" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + mkdir opencore + cd opencore + wget -O opencore.tar.gz "$OAMR_SRC" + tar xaf opencore.tar.gz + rm opencore.tar.gz + cd opencore* autoreconf -i diff --git a/scripts.d/50-openh264.sh b/scripts.d/50-openh264.sh index 476489c..317c970 100755 --- a/scripts.d/50-openh264.sh +++ b/scripts.d/50-openh264.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/cisco/openh264.git" -SCRIPT_COMMIT="986606644aca8f795fc04f76dcc758d88378e4a0" +OPENH264_REPO="https://github.com/cisco/openh264.git" +OPENH264_COMMIT="0819f288dc5fc24fb34089113bc230aea65c8375" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$OPENH264_REPO" "$OPENH264_COMMIT" openh264 + cd openh264 local myconf=( PREFIX="$FFBUILD_PREFIX" @@ -36,11 +37,6 @@ ffbuild_dockerbuild() { OS=linux ARCH=x86_64 ) - elif [[ $TARGET == linuxarm64 ]]; then - myconf+=( - OS=linux - ARCH=aarch64 - ) else echo "Unknown target" return -1 diff --git a/scripts.d/50-openjpeg.sh b/scripts.d/50-openjpeg.sh index 1a8fd49..87b14ef 100755 --- a/scripts.d/50-openjpeg.sh +++ b/scripts.d/50-openjpeg.sh @@ -1,14 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/uclouvain/openjpeg.git" -SCRIPT_COMMIT="1ee6d115e80036d1d38bad7f95a680bfc612c1bf" +OPENJPEG_REPO="https://github.com/uclouvain/openjpeg.git" +OPENJPEG_COMMIT="6a29f5a9e3a1e2dbf1e3df22b7e449bc1db20b5c" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$OPENJPEG_REPO" "$OPENJPEG_COMMIT" openjpeg + cd openjpeg mkdir build && cd build diff --git a/scripts.d/50-openmpt.sh b/scripts.d/50-openmpt.sh index b3803f6..9357d4e 100755 --- a/scripts.d/50-openmpt.sh +++ b/scripts.d/50-openmpt.sh @@ -1,18 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://source.openmpt.org/svn/openmpt/trunk/OpenMPT" -SCRIPT_REV="19445" +OPENMPT_REPO="https://source.openmpt.org/svn/openmpt/trunk/OpenMPT" +OPENMPT_REV="17268" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - to_df "RUN retry-tool sh -c \"rm -rf openmpt && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' openmpt\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR"/openmpt + svn checkout "${OPENMPT_REPO}@${OPENMPT_REV}" openmpt + cd openmpt local myconf=( PREFIX="$FFBUILD_PREFIX" diff --git a/scripts.d/50-rav1e.sh b/scripts.d/50-rav1e.sh index eb8c37c..52ddb04 100755 --- a/scripts.d/50-rav1e.sh +++ b/scripts.d/50-rav1e.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/xiph/rav1e.git" -SCRIPT_COMMIT="5ec4f95d9fe1a9295fe8239e2860c8f84e5e2336" +RAV1E_REPO="https://github.com/xiph/rav1e.git" +RAV1E_COMMIT="d2bc4d20db705b364f8bb7ed0da5cfabf8a985e2" ffbuild_enabled() { [[ $TARGET == win32 ]] && return -1 @@ -9,41 +9,23 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$RAV1E_REPO" "$RAV1E_COMMIT" rav1e + cd rav1e local myconf=( - --prefix="$FFBUILD_PREFIX" - --library-type=staticlib - --crt-static + --prefix="$FFBUILD_PREFIX" \ + --library-type=staticlib \ + --crt-static \ --release ) if [[ -n "$FFBUILD_RUST_TARGET" ]]; then - unset PKG_CONFIG_LIBDIR - - export CC="gcc" - export CXX="g++" - export TARGET_CC="${FFBUILD_CROSS_PREFIX}gcc" - export TARGET_CXX="${FFBUILD_CROSS_PREFIX}g++" - export CROSS_COMPILE=1 - export TARGET_CFLAGS="$CFLAGS" - export TARGET_CXXFLAGS="$CFLAGS" - unset CFLAGS - unset CXXFLAGS - myconf+=( --target="$FFBUILD_RUST_TARGET" ) - cat <$CARGO_HOME/config.toml -[target.$FFBUILD_RUST_TARGET] -linker = "${FFBUILD_CROSS_PREFIX}gcc" -ar = "${FFBUILD_CROSS_PREFIX}ar" -EOF fi - cargo cinstall -v "${myconf[@]}" - - chmod 644 "${FFBUILD_PREFIX}"/lib/*rav1e* + cargo cinstall "${myconf[@]}" } ffbuild_configure() { diff --git a/scripts.d/50-rubberband.sh b/scripts.d/50-rubberband.sh index e3577c4..d8d6c97 100755 --- a/scripts.d/50-rubberband.sh +++ b/scripts.d/50-rubberband.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/breakfastquay/rubberband.git" -SCRIPT_COMMIT="1eddafd7a7c8b64e377d64ee5e87ead881a32a48" +RUBBERBAND_REPO="https://github.com/breakfastquay/rubberband.git" +RUBBERBAND_COMMIT="95371b882b01af86132d17be739de82d2fadf6d7" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 @@ -9,15 +9,14 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$RUBBERBAND_REPO" "$RUBBERBAND_COMMIT" rubberband + cd rubberband mkdir build && cd build local myconf=( --prefix="$FFBUILD_PREFIX" -Ddefault_library=static - -Dfft=fftw - -Dresampler=libsamplerate ) if [[ $TARGET == win* || $TARGET == linux* ]]; then @@ -32,6 +31,9 @@ ffbuild_dockerbuild() { meson "${myconf[@]}" .. ninja -j$(nproc) ninja install + + # Fix static linking + echo "Requires.private: fftw3 samplerate" >> "$FFBUILD_PREFIX"/lib/pkgconfig/rubberband.pc } ffbuild_configure() { diff --git a/scripts.d/50-schannel.sh b/scripts.d/50-schannel.sh index 2ea5efa..873b2f9 100755 --- a/scripts.d/50-schannel.sh +++ b/scripts.d/50-schannel.sh @@ -1,15 +1,9 @@ #!/bin/bash -SCRIPT_SKIP="1" - ffbuild_enabled() { [[ $TARGET == win* ]] } -ffbuild_dockerdl() { - return 0 -} - ffbuild_dockerstage() { return 0 } @@ -18,10 +12,6 @@ ffbuild_dockerbuild() { return 0 } -ffbuild_dockerlayer_dl() { - return 0 -} - ffbuild_configure() { echo --enable-schannel } diff --git a/scripts.d/50-sdl.sh b/scripts.d/50-sdl.sh index bf6b0c2..00ed7e3 100755 --- a/scripts.d/50-sdl.sh +++ b/scripts.d/50-sdl.sh @@ -1,15 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/libsdl-org/SDL.git" -SCRIPT_COMMIT="e16a83d393ae1784040519f42c482e2641b971a2" -SCRIPT_BRANCH="SDL2" +SDL_REPO="https://github.com/libsdl-org/SDL.git" +SDL_COMMIT="981e1e3c4489add5bf6d4df5415af3cf1ef2773d" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SDL_REPO" "$SDL_COMMIT" sdl + cd sdl mkdir build && cd build @@ -49,12 +49,6 @@ ffbuild_dockerbuild() { -e 's/ \-Dmain=SDL_main//g' \ "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc fi - - sed -ri -e 's/ -lSDL2//g' \ - -e 's/Libs: /Libs: -lSDL2 /'\ - "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc - - echo 'Requires: samplerate' >> "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc } ffbuild_configure() { diff --git a/scripts.d/50-soxr.sh b/scripts.d/50-soxr.sh index f3651aa..5df1fea 100755 --- a/scripts.d/50-soxr.sh +++ b/scripts.d/50-soxr.sh @@ -1,14 +1,16 @@ #!/bin/bash -SCRIPT_REPO="https://git.code.sf.net/p/soxr/code" -SCRIPT_COMMIT="945b592b70470e29f917f4de89b4281fbbd540c0" +# https://sourceforge.net/p/soxr/code/ci/master/tree/ +SOXR_REPO="https://git.code.sf.net/p/soxr/code" +SOXR_COMMIT="945b592b70470e29f917f4de89b4281fbbd540c0" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SOXR_REPO" "$SOXR_COMMIT" soxr + cd soxr mkdir build && cd build diff --git a/scripts.d/50-srt.sh b/scripts.d/50-srt.sh index d40e9da..31ddc53 100755 --- a/scripts.d/50-srt.sh +++ b/scripts.d/50-srt.sh @@ -1,23 +1,22 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/Haivision/srt.git" -SCRIPT_COMMIT="61c7bedf27a2edbcf6e6fdc179612980bae53c6a" +SRT_REPO="https://github.com/Haivision/srt.git" +SRT_COMMIT="c76f43df6887b414799211441b733fc2a94abdf5" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SRT_REPO" "$SRT_COMMIT" srt + cd srt mkdir build && cd build cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DENABLE_CXX_DEPS=ON -DUSE_STATIC_LIBSTDCXX=ON -DENABLE_ENCRYPTION=ON -DENABLE_APPS=OFF .. + -DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DENABLE_ENCRYPTION=ON -DENABLE_APPS=OFF .. make -j$(nproc) make install - - echo "Libs.private: -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/srt.pc } ffbuild_configure() { diff --git a/scripts.d/50-svtav1.sh b/scripts.d/50-svtav1.sh index 66b6600..3e67c08 100755 --- a/scripts.d/50-svtav1.sh +++ b/scripts.d/50-svtav1.sh @@ -1,23 +1,21 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.com/AOMediaCodec/SVT-AV1.git" -SCRIPT_COMMIT="08c18ba0768ed3dbbff0903adc326fb3a7549bd9" +SVTAV1_REPO="https://gitlab.com/AOMediaCodec/SVT-AV1.git" +SVTAV1_COMMIT="98aba736053ba0cb00112db88a7f39f16bd64080" ffbuild_enabled() { [[ $TARGET == win32 ]] && return -1 return 0 } -ffbuild_dockerdl() { - to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git clone "$SVTAV1_REPO" svtav1 + cd svtav1 + git checkout "$SVTAV1_COMMIT" mkdir build && cd build - cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DBUILD_APPS=OFF -DENABLE_AVX512=ON .. + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DBUILD_APPS=OFF .. make -j$(nproc) make install } diff --git a/scripts.d/50-twolame.sh b/scripts.d/50-twolame.sh index 8e8a60b..6464678 100755 --- a/scripts.d/50-twolame.sh +++ b/scripts.d/50-twolame.sh @@ -1,17 +1,18 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/njh/twolame.git" -SCRIPT_COMMIT="90b694b6125dbe23a346bd5607a7fb63ad2785dc" +TWOLAME_SRC="https://sourceforge.net/projects/twolame/files/twolame/0.4.0/twolame-0.4.0.tar.gz/download" ffbuild_enabled() { return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" - - NOCONFIGURE=1 ./autogen.sh - touch doc/twolame.1 + mkdir twolame + cd twolame + wget -O twolame.tar.gz "$TWOLAME_SRC" + tar xaf twolame.tar.gz + rm twolame.tar.gz + cd twolame* local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/50-uavs3d.sh b/scripts.d/50-uavs3d.sh index 38e56bd..ba0adc4 100755 --- a/scripts.d/50-uavs3d.sh +++ b/scripts.d/50-uavs3d.sh @@ -1,25 +1,22 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/uavs3/uavs3d.git" -SCRIPT_COMMIT="1fd04917cff50fac72ae23e45f82ca6fd9130bd8" +UAVS3D_REPO="https://github.com/uavs3/uavs3d.git" +UAVS3D_COMMIT="7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d" ffbuild_enabled() { [[ $TARGET == win32 ]] && return -1 return 0 } -ffbuild_dockerdl() { - to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git clone "$UAVS3D_REPO" uavs3d + cd uavs3d + git checkout "$UAVS3D_COMMIT" mkdir build/linux cd build/linux - cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DCOMPILE_10BIT=1 -DBUILD_SHARED_LIBS=NO ../.. + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=NO ../.. make -j$(nproc) make install } diff --git a/scripts.d/50-vaapi/30-libpciaccess.sh b/scripts.d/50-vaapi/30-libpciaccess.sh index 83dfbc2..cedd449 100755 --- a/scripts.d/50-vaapi/30-libpciaccess.sh +++ b/scripts.d/50-vaapi/30-libpciaccess.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libpciaccess.git" -SCRIPT_COMMIT="8980a39004b10298a7db1f1b0b711a19e8b73aee" +LIBPCIACCESS_REPO="https://gitlab.freedesktop.org/xorg/lib/libpciaccess.git" +LIBPCIACCESS_COMMIT="22a93f8b9b4a79eefbdd0b2c412526f6141ac7a8" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBPCIACCESS_REPO" "$LIBPCIACCESS_COMMIT" libpciaccess + cd libpciaccess autoreconf -fi diff --git a/scripts.d/50-vaapi/40-libdrm.sh b/scripts.d/50-vaapi/40-libdrm.sh index f2b3d4c..c6481c9 100755 --- a/scripts.d/50-vaapi/40-libdrm.sh +++ b/scripts.d/50-vaapi/40-libdrm.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://gitlab.freedesktop.org/mesa/drm.git" -SCRIPT_COMMIT="7d7a9901bd67cf5b1ce07e5d237a82e13e9fb500" +LIBDRM_REPO="https://gitlab.freedesktop.org/mesa/drm.git" +LIBDRM_COMMIT="d95b12e7e3ed6a22f284afbc5d2356365b820ea8" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -9,24 +9,26 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBDRM_REPO" "$LIBDRM_COMMIT" libdrm + cd libdrm mkdir build && cd build local myconf=( --prefix="$FFBUILD_PREFIX" -Ddefault_library=shared + -Dlibkms=false -Dudev=false - -Dcairo-tests=disabled - -Dvalgrind=disabled - -Dexynos=disabled - -Dfreedreno=disabled - -Domap=disabled - -Detnaviv=disabled - -Dintel=enabled - -Dnouveau=enabled - -Dradeon=enabled - -Damdgpu=enabled + -Dcairo-tests=false + -Dvalgrind=false + -Dexynos=false + -Dfreedreno=false + -Domap=false + -Detnaviv=false + -Dintel=true + -Dnouveau=true + -Dradeon=true + -Damdgpu=true ) if [[ $TARGET == linux* ]]; then diff --git a/scripts.d/50-vaapi/50-libva.sh b/scripts.d/50-vaapi/50-libva.sh index ed3d88f..fdc26f5 100755 --- a/scripts.d/50-vaapi/50-libva.sh +++ b/scripts.d/50-vaapi/50-libva.sh @@ -1,16 +1,16 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/intel/libva.git" -SCRIPT_COMMIT="984dfee4177021c400367f5dffc0776a6dd745dc" +LIBVA_REPO="https://github.com/intel/libva.git" +LIBVA_COMMIT="aeba58590726ab08b924e6a2ad0078d74c5dd01b" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 - [[ $TARGET == linuxarm64 ]] && return -1 return 0 } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$LIBVA_REPO" "$LIBVA_COMMIT" libva + cd libva autoreconf -i diff --git a/scripts.d/50-vaapi/99-finalize.sh b/scripts.d/50-vaapi/99-finalize.sh index ee8a518..f11547e 100755 --- a/scripts.d/50-vaapi/99-finalize.sh +++ b/scripts.d/50-vaapi/99-finalize.sh @@ -1,16 +1,10 @@ #!/bin/bash -SCRIPT_SKIP="1" - ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 return 0 } -ffbuild_dockerdl() { - return 0 -} - ffbuild_dockerbuild() { rm "$FFBUILD_PREFIX"/lib/lib*.so* || true rm "$FFBUILD_PREFIX"/lib/*.la || true diff --git a/scripts.d/50-vidstab.sh b/scripts.d/50-vidstab.sh index c9a3b4c..a52794c 100755 --- a/scripts.d/50-vidstab.sh +++ b/scripts.d/50-vidstab.sh @@ -1,7 +1,8 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/georgmartius/vid.stab.git" -SCRIPT_COMMIT="05829db776069b7478dd2d90b6e0081668a41abc" +VIDSTAB_REPO="https://github.com/georgmartius/vid.stab.git" +# TODO: clamp to e7715fc until georgmartius/vid.stab#104 get fixed +VIDSTAB_COMMIT="e7715fcf329573cdcff5c57d0e4a25f4c3a0cb7f" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 @@ -9,22 +10,12 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$VIDSTAB_REPO" "$VIDSTAB_COMMIT" vidstab + cd vidstab mkdir build && cd build - local mycmake=( - -DBUILD_SHARED_LIBS=OFF - -DUSE_OMP=ON - ) - - if [[ $TARGET == *arm64 ]]; then - mycmake+=( - -DSSE2_FOUND=FALSE - ) - fi - - cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" "${mycmake[@]}" .. + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DUSE_OMP=ON .. make -j$(nproc) make install diff --git a/scripts.d/50-vulkan/45-vulkan.sh b/scripts.d/50-vulkan/45-vulkan.sh index c1a718b..a643733 100755 --- a/scripts.d/50-vulkan/45-vulkan.sh +++ b/scripts.d/50-vulkan/45-vulkan.sh @@ -1,8 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/KhronosGroup/Vulkan-Headers.git" -SCRIPT_COMMIT="v1.3.257" -SCRIPT_TAGFILTER="v?.*.*" +HEADERS_REPO="https://github.com/KhronosGroup/Vulkan-Headers.git" +HEADERS_VERSION="1.3.212" ffbuild_enabled() { [[ $ADDINS_STR == *4.4* ]] && return -1 @@ -10,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$HEADERS_REPO" "v$HEADERS_VERSION" vkheaders + cd vkheaders mkdir build && cd build @@ -23,7 +23,7 @@ prefix=$FFBUILD_PREFIX includedir=\${prefix}/include Name: vulkan -Version: ${SCRIPT_COMMIT:1} +Version: $HEADERS_VERSION Description: Vulkan (Headers Only) Cflags: -I\${includedir} EOF diff --git a/scripts.d/50-vulkan/50-shaderc.sh b/scripts.d/50-vulkan/50-shaderc.sh index 576dc37..9e96f80 100755 --- a/scripts.d/50-vulkan/50-shaderc.sh +++ b/scripts.d/50-vulkan/50-shaderc.sh @@ -1,20 +1,18 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/google/shaderc.git" -SCRIPT_COMMIT="e31c4c2e41544d63d90be28c46e4a4793a624240" +SHADERC_REPO="https://github.com/google/shaderc.git" +SHADERC_COMMIT="96b1dd72a827304817470274a470c4d3b2293451" ffbuild_enabled() { [[ $ADDINS_STR == *4.4* ]] && return -1 return 0 } -ffbuild_dockerdl() { - default_dl "$SELF" - to_df "RUN cd \"$SELF\" && ./utils/git-sync-deps" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SHADERC_REPO" "$SHADERC_COMMIT" shaderc + cd shaderc + + ./utils/git-sync-deps mkdir build && cd build diff --git a/scripts.d/50-vulkan/55-spirv-cross.sh b/scripts.d/50-vulkan/55-spirv-cross.sh index f5d189c..1da988d 100755 --- a/scripts.d/50-vulkan/55-spirv-cross.sh +++ b/scripts.d/50-vulkan/55-spirv-cross.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/KhronosGroup/SPIRV-Cross.git" -SCRIPT_COMMIT="b8e742c91ba47eb3238c939ee11ec9ba2ba247bf" +SPIRV_CROSS_REPO="https://github.com/KhronosGroup/SPIRV-Cross.git" +SPIRV_CROSS_COMMIT="d7cae5e7cd326ca0ebfb2a7ac4e634a63ecfe19f" ffbuild_enabled() { [[ $ADDINS_STR == *4.4* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$SPIRV_CROSS_REPO" "$SPIRV_CROSS_COMMIT" spirv-cross + cd spirv-cross VER_MAJ="$(grep 'set(spirv-cross-abi-major' CMakeLists.txt | sed -re 's/.* ([0-9]+)\)/\1/')" VER_MIN="$(grep 'set(spirv-cross-abi-minor' CMakeLists.txt | sed -re 's/.* ([0-9]+)\)/\1/')" diff --git a/scripts.d/50-vulkan/60-libplacebo.sh b/scripts.d/50-vulkan/60-libplacebo.sh index 0987426..bcb773a 100755 --- a/scripts.d/50-vulkan/60-libplacebo.sh +++ b/scripts.d/50-vulkan/60-libplacebo.sh @@ -1,23 +1,16 @@ #!/bin/bash -SCRIPT_REPO="https://code.videolan.org/videolan/libplacebo.git" -SCRIPT_COMMIT="b959cab8b859dc53a6dbd26c050be0b3883114c8" +PLACEBO_REPO="https://code.videolan.org/videolan/libplacebo.git" +PLACEBO_COMMIT="f85c3c0791271089a3b1df2b5d6948cd1cb8c63e" ffbuild_enabled() { [[ $ADDINS_STR == *4.4* ]] && return -1 - [[ $ADDINS_STR == *5.0* ]] && return -1 - [[ $ADDINS_STR == *5.1* ]] && return -1 - [[ $ADDINS_STR == *6.0* ]] && return -1 return 0 } -ffbuild_dockerdl() { - default_dl "$SELF" - to_df "RUN git -C \"$SELF\" submodule update --init --recursive" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$PLACEBO_REPO" "$PLACEBO_COMMIT" placebo + cd placebo mkdir build && cd build @@ -26,7 +19,7 @@ ffbuild_dockerbuild() { --buildtype=release --default-library=static -Dvulkan=enabled - -Dvk-proc-addr=disabled + -Dvulkan-link=false -Dvulkan-registry="$FFBUILD_PREFIX"/share/vulkan/registry/vk.xml -Dshaderc=enabled -Dglslang=disabled diff --git a/scripts.d/50-vulkan/99-enable.sh b/scripts.d/50-vulkan/99-enable.sh deleted file mode 100755 index d83e3cb..0000000 --- a/scripts.d/50-vulkan/99-enable.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -SCRIPT_SKIP="1" - -ffbuild_enabled() { - [[ $ADDINS_STR == *4.4* ]] && return -1 - return 0 -} - -ffbuild_dockerdl() { - return 0 -} - -ffbuild_dockerbuild() { - return 0 -} diff --git a/scripts.d/50-x264.sh b/scripts.d/50-x264.sh index 0060cf3..6870132 100755 --- a/scripts.d/50-x264.sh +++ b/scripts.d/50-x264.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/mirror/x264.git" -SCRIPT_COMMIT="eaa68fad9e5d201d42fde51665f2d137ae96baf0" +X264_REPO="https://github.com/mirror/x264.git" +X264_COMMIT="bfc87b7a330f75f5c9a21e56081e4b20344f139e" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 @@ -9,7 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$X264_REPO" "$X264_COMMIT" x264 + cd x264 local myconf=( --disable-cli diff --git a/scripts.d/50-x265.sh b/scripts.d/50-x265.sh index 14bc515..bc6b6c7 100755 --- a/scripts.d/50-x265.sh +++ b/scripts.d/50-x265.sh @@ -1,19 +1,17 @@ #!/bin/bash -SCRIPT_REPO="https://bitbucket.org/multicoreware/x265_git.git" -SCRIPT_COMMIT="8f18e3ad32684eee95e885e718655f93951128c3" +X265_REPO="https://bitbucket.org/multicoreware/x265_git.git" +X265_COMMIT="9b59d45549f460e41a852cfd276f9b89eed2112a" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 return 0 } -ffbuild_dockerdl() { - to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git clone "$X265_REPO" x265 + cd x265 + git checkout "$X265_COMMIT" local common_config=( -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" @@ -63,8 +61,6 @@ EOF fi make install - - echo "Libs.private: -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/x265.pc } ffbuild_configure() { diff --git a/scripts.d/50-xavs2.sh b/scripts.d/50-xavs2.sh index 36b1e65..309edd9 100755 --- a/scripts.d/50-xavs2.sh +++ b/scripts.d/50-xavs2.sh @@ -1,22 +1,18 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/pkuvcl/xavs2.git" -SCRIPT_COMMIT="eae1e8b9d12468059bdd7dee893508e470fa83d8" +XAVS2_REPO="https://github.com/pkuvcl/xavs2.git" +XAVS2_COMMIT="eae1e8b9d12468059bdd7dee893508e470fa83d8" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 [[ $TARGET == win32 ]] && return -1 - # xavs2 aarch64 support is broken - [[ $TARGET == linuxarm64 ]] && return -1 return 0 } -ffbuild_dockerdl() { - to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git clone "$XAVS2_REPO" xavs2 + cd xavs2 + git checkout "$XAVS2_COMMIT" cd build/linux local myconf=( @@ -43,10 +39,6 @@ ffbuild_dockerbuild() { return -1 fi - # Work around configure endian check failing on modern gcc/binutils. - # Assumes all supported archs are little endian. - sed -i -e 's/EGIB/bss/g' -e 's/naidnePF/bss/g' configure - ./configure "${myconf[@]}" make -j$(nproc) make install diff --git a/scripts.d/50-xvid.sh b/scripts.d/50-xvid.sh index 484d2fa..f6ec11a 100755 --- a/scripts.d/50-xvid.sh +++ b/scripts.d/50-xvid.sh @@ -1,19 +1,19 @@ #!/bin/bash -SCRIPT_REPO="http://svn.xvid.org/trunk/xvidcore" -SCRIPT_REV="2198" +XVID_SRC="https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 return 0 } -ffbuild_dockerdl() { - to_df "RUN retry-tool sh -c \"rm -rf xvid && svn checkout --username 'anonymous' --password '' '${SCRIPT_REPO}@${SCRIPT_REV}' xvid\"" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR"/xvid + mkdir xvid + cd xvid + wget -O xvid.tar.gz "$XVID_SRC" + tar xaf xvid.tar.gz + rm xvid.tar.gz + cd xvid* cd build/generic @@ -43,7 +43,8 @@ ffbuild_dockerbuild() { make install if [[ $TARGET == win* ]]; then - rm "$FFBUILD_PREFIX"/{bin/libxvidcore.dll,lib/libxvidcore.dll.a} + rm "$FFBUILD_PREFIX"/{bin/xvidcore.dll,lib/xvidcore.dll.a} + mv "$FFBUILD_PREFIX"/lib/{,lib}xvidcore.a elif [[ $TARGET == linux* ]]; then rm "$FFBUILD_PREFIX"/lib/libxvidcore.so* fi diff --git a/scripts.d/50-zimg.sh b/scripts.d/50-zimg.sh index 49bc5bb..9d8e369 100755 --- a/scripts.d/50-zimg.sh +++ b/scripts.d/50-zimg.sh @@ -1,19 +1,15 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/sekrit-twc/zimg.git" -SCRIPT_COMMIT="ec0c604a9e29dd144b0bb1fb0974ac3b398fc18b" +ZIMG_REPO="https://github.com/sekrit-twc/zimg.git" +ZIMG_COMMIT="b97c086a5b767423b678d922cb62c675df56290e" ffbuild_enabled() { return 0 } -ffbuild_dockerdl() { - default_dl "$SELF" - to_df "RUN git -C \"$SELF\" submodule update --init --recursive --depth=1" -} - ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + git-mini-clone "$ZIMG_REPO" "$ZIMG_COMMIT" zimg + cd zimg ./autogen.sh diff --git a/scripts.d/50-zvbi.sh b/scripts.d/50-zvbi.sh index 5f7cb97..f3670ce 100755 --- a/scripts.d/50-zvbi.sh +++ b/scripts.d/50-zvbi.sh @@ -1,22 +1,19 @@ #!/bin/bash -SCRIPT_REPO="https://svn.code.sf.net/p/zapping/svn/trunk/vbi" -SCRIPT_REV="4270" +ZVBI_REPO="https://svn.code.sf.net/p/zapping/svn/trunk/vbi" +ZVBI_REV="4270" ffbuild_enabled() { return 0 } ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=/,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/zvbi,dst=/patches run_stage /stage.sh" -} - -ffbuild_dockerdl() { - to_df "RUN retry-tool sh -c \"rm -rf $SELF && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' $SELF\"" + to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/zvbi,dst=/patches run_stage /stage.sh" } ffbuild_dockerbuild() { - cd "$FFBUILD_DLDIR/$SELF" + svn checkout "${ZVBI_REPO}@${ZVBI_REV}" zvbi + cd zvbi for patch in /patches/*.patch; do echo "Applying $patch" diff --git a/scripts.d/99-rpath.sh b/scripts.d/99-rpath.sh index be7bc33..09b543c 100755 --- a/scripts.d/99-rpath.sh +++ b/scripts.d/99-rpath.sh @@ -1,7 +1,5 @@ #!/bin/bash -SCRIPT_SKIP="1" - ffbuild_enabled() { [[ $TARGET == linux* ]] } @@ -10,10 +8,6 @@ ffbuild_dockerfinal() { return 0 } -ffbuild_dockerdl() { - return 0 -} - ffbuild_dockerlayer() { return 0 } @@ -22,10 +16,6 @@ ffbuild_dockerstage() { return 0 } -ffbuild_dockerlayer_dl() { - return 0 -} - ffbuild_dockerbuild() { return 0 } diff --git a/util/get_dl_cache_tag.sh b/util/get_dl_cache_tag.sh deleted file mode 100755 index 4ca3a36..0000000 --- a/util/get_dl_cache_tag.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -eo pipefail -printf dlcache_ -tail -n+3 Dockerfile.dl | sha256sum | cut -d' ' -f1 diff --git a/util/update_scripts.sh b/util/update_scripts.sh deleted file mode 100755 index 73c9daf..0000000 --- a/util/update_scripts.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash -set -eo pipefail -shopt -s globstar -export LC_ALL=C - -cd "$(dirname "$0")"/.. - -for scr in scripts.d/**/*.sh; do -echo "Processing ${scr}" -( - source "$scr" - - if [[ -n "$SCRIPT_SKIP" ]]; then - exit 0 - fi - - for i in "" $(seq 2 9); do - REPO_VAR="SCRIPT_REPO$i" - COMMIT_VAR="SCRIPT_COMMIT$i" - REV_VAR="SCRIPT_REV$i" - HGREV_VAR="SCRIPT_HGREV$i" - BRANCH_VAR="SCRIPT_BRANCH$i" - TAGFILTER_VAR="SCRIPT_TAGFILTER$i" - - CUR_REPO="${!REPO_VAR}" - CUR_COMMIT="${!COMMIT_VAR}" - CUR_REV="${!REV_VAR}" - CUR_HGREV="${!HGREV_VAR}" - CUR_BRANCH="${!BRANCH_VAR}" - CUR_TAGFILTER="${!TAGFILTER_VAR}" - - if [[ -z "${CUR_REPO}" ]]; then - if [[ -z "$i" ]]; then - # Mark scripts without repo source for manual check - echo "xxx_CHECKME_xxx" >> "$scr" - echo "Needs manual check." - fi - break - fi - - if [[ -n "${CUR_REV}" ]]; then # SVN - echo "Checking svn rev for ${CUR_REPO}..." - NEW_REV="$(svn info --password="" "${CUR_REPO}" | grep ^Revision: | cut -d" " -f2 | xargs)" - echo "Got ${NEW_REV} (current: ${CUR_REV})" - - if [[ "${NEW_REV}" != "${CUR_REV}" ]]; then - echo "Updating ${scr}" - sed -i "s/^${REV_VAR}=.*/${REV_VAR}=\"${NEW_REV}\"/" "${scr}" - fi - elif [[ -n "${CUR_HGREV}" ]]; then # HG - hg init tmphgrepo - trap "rm -rf tmphgrepo" EXIT - cd tmphgrepo - NEW_HGREV="$(hg in -f -n -l 1 "${CUR_REPO}" | grep changeset | cut -d: -f3 | xargs)" - cd .. - rm -rf tmphgrepo - - echo "Got ${NEW_HGREV} (current: ${CUR_HGREV})" - - if [[ "${NEW_HGREV}" != "${CUR_HGREV}" ]]; then - echo "Updating ${scr}" - sed -i "s/^${HGREV_VAR}=.*/${HGREV_VAR}=\"${NEW_HGREV}\"/" "${scr}" - fi - elif [[ -n "${CUR_COMMIT}" ]]; then # GIT - if [[ -n "${CUR_TAGFILTER}" ]]; then - NEW_COMMIT="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --tags --refs --sort "v:refname" "${CUR_REPO}" "refs/tags/${CUR_TAGFILTER}" | tail -n1 | cut -d/ -f3- | xargs)" - else - if [[ -z "${CUR_BRANCH}" ]]; then - # Fetch default branch name - CUR_BRANCH="$(git remote show "${CUR_REPO}" | grep "HEAD branch:" | cut -d":" -f2 | xargs)" - echo "Found default branch ${CUR_BRANCH}" - fi - NEW_COMMIT="$(git ls-remote --exit-code --heads --refs "${CUR_REPO}" refs/heads/"${CUR_BRANCH}" | cut -f1)" - fi - - echo "Got ${NEW_COMMIT} (current: ${CUR_COMMIT})" - - if [[ "${NEW_COMMIT}" != "${CUR_COMMIT}" ]]; then - echo "Updating ${scr}" - sed -i "s/^${COMMIT_VAR}=.*/${COMMIT_VAR}=\"${NEW_COMMIT}\"/" "${scr}" - fi - else - # Mark scripts with unknown layout for manual check - echo "xxx_CHECKME_UNKNOWN_xxx" >> "$scr" - echo "Unknown layout. Needs manual check." - break - fi - done -) -echo -done diff --git a/util/vars.sh b/util/vars.sh index 0fd91ef..f3002a2 100644 --- a/util/vars.sh +++ b/util/vars.sh @@ -32,28 +32,13 @@ done REPO="${GITHUB_REPOSITORY:-btbn/ffmpeg-builds}" REPO="${REPO,,}" -REGISTRY="${REGISTRY_OVERRIDE:-ghcr.io}" +REGISTRY="ghcr.io" BASE_IMAGE="${REGISTRY}/${REPO}/base:latest" TARGET_IMAGE="${REGISTRY}/${REPO}/base-${TARGET}:latest" IMAGE="${REGISTRY}/${REPO}/${TARGET}-${VARIANT}${ADDINS_STR:+-}${ADDINS_STR}:latest" -DL_IMAGE_RAW="${REGISTRY}/${REPO}/dl_cache" -if [[ -n "$REGISTRY_OVERRIDE_DL" && -n "$GITHUB_REPOSITORY_DL" ]]; then - DL_IMAGE_RAW="${REGISTRY_OVERRIDE_DL}/${GITHUB_REPOSITORY_DL}/dl_cache" - DL_IMAGE_RAW="${DL_IMAGE_RAW,,}" -fi -DL_IMAGE="${DL_IMAGE_RAW}:unset" - -ffbuild_dockerdl() { - default_dl "$SELF" -} - -ffbuild_dockerlayer_dl() { - to_df "COPY --from=${SELFLAYER} \$FFBUILD_DLDIR/. \$FFBUILD_DLDIR" -} - ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=/,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw run_stage /stage.sh" + to_df "RUN --mount=src=${SELF},dst=/stage.sh run_stage /stage.sh" } ffbuild_dockerlayer() { diff --git a/variants/windows-install-static.sh b/variants/default-install.sh similarity index 100% rename from variants/windows-install-static.sh rename to variants/default-install.sh diff --git a/variants/dl-only.sh b/variants/dl-only.sh deleted file mode 100644 index a9bf588..0000000 --- a/variants/dl-only.sh +++ /dev/null @@ -1 +0,0 @@ -#!/bin/bash diff --git a/variants/linux-install-shared.sh b/variants/linux-install-shared.sh index 5507cb6..ef8e791 100644 --- a/variants/linux-install-shared.sh +++ b/variants/linux-install-shared.sh @@ -23,7 +23,4 @@ package_variant() { mkdir -p "$OUT"/doc cp -r "$IN"/share/doc/ffmpeg/* "$OUT"/doc - - mkdir -p "$OUT/man" - cp -r "$IN"/share/man/* "$OUT"/man } diff --git a/variants/linux-install-static.sh b/variants/linux-install-static.sh deleted file mode 100644 index 6c6a4e6..0000000 --- a/variants/linux-install-static.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -package_variant() { - IN="$1" - OUT="$2" - - mkdir -p "$OUT"/bin - cp "$IN"/bin/* "$OUT"/bin - - mkdir -p "$OUT/doc" - cp -r "$IN"/share/doc/ffmpeg/* "$OUT"/doc - - mkdir -p "$OUT/man" - cp -r "$IN"/share/man/* "$OUT"/man -} diff --git a/variants/linux64-gpl.sh b/variants/linux64-gpl.sh index bd5fc12..b3003a4 100644 --- a/variants/linux64-gpl.sh +++ b/variants/linux64-gpl.sh @@ -1,3 +1,3 @@ #!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linux-install-static.sh +source "$(dirname "$BASH_SOURCE")"/default-install.sh source "$(dirname "$BASH_SOURCE")"/defaults-gpl.sh diff --git a/variants/linux64-lgpl.sh b/variants/linux64-lgpl.sh index da1f9b7..f000a33 100644 --- a/variants/linux64-lgpl.sh +++ b/variants/linux64-lgpl.sh @@ -1,3 +1,3 @@ #!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linux-install-static.sh +source "$(dirname "$BASH_SOURCE")"/default-install.sh source "$(dirname "$BASH_SOURCE")"/defaults-lgpl.sh diff --git a/variants/linuxarm64-gpl-shared.sh b/variants/linuxarm64-gpl-shared.sh deleted file mode 100644 index ca8fbb2..0000000 --- a/variants/linuxarm64-gpl-shared.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linux-install-shared.sh -source "$(dirname "$BASH_SOURCE")"/defaults-gpl-shared.sh diff --git a/variants/linuxarm64-gpl.sh b/variants/linuxarm64-gpl.sh deleted file mode 100644 index bd5fc12..0000000 --- a/variants/linuxarm64-gpl.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linux-install-static.sh -source "$(dirname "$BASH_SOURCE")"/defaults-gpl.sh diff --git a/variants/linuxarm64-lgpl-shared.sh b/variants/linuxarm64-lgpl-shared.sh deleted file mode 100644 index 33244aa..0000000 --- a/variants/linuxarm64-lgpl-shared.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linux-install-shared.sh -source "$(dirname "$BASH_SOURCE")"/defaults-lgpl-shared.sh diff --git a/variants/linuxarm64-lgpl.sh b/variants/linuxarm64-lgpl.sh deleted file mode 100644 index da1f9b7..0000000 --- a/variants/linuxarm64-lgpl.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linux-install-static.sh -source "$(dirname "$BASH_SOURCE")"/defaults-lgpl.sh diff --git a/variants/linuxarm64-nonfree-shared.sh b/variants/linuxarm64-nonfree-shared.sh deleted file mode 100644 index ec9e7f4..0000000 --- a/variants/linuxarm64-nonfree-shared.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linuxarm64-gpl-shared.sh -FF_CONFIGURE="--enable-nonfree $FF_CONFIGURE" diff --git a/variants/linuxarm64-nonfree.sh b/variants/linuxarm64-nonfree.sh deleted file mode 100644 index d6bd88b..0000000 --- a/variants/linuxarm64-nonfree.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -source "$(dirname "$BASH_SOURCE")"/linuxarm64-gpl.sh -FF_CONFIGURE="--enable-nonfree $FF_CONFIGURE" -LICENSE_FILE="" diff --git a/variants/win32-gpl.sh b/variants/win32-gpl.sh index d629915..b3003a4 100644 --- a/variants/win32-gpl.sh +++ b/variants/win32-gpl.sh @@ -1,3 +1,3 @@ #!/bin/bash -source "$(dirname "$BASH_SOURCE")"/windows-install-static.sh +source "$(dirname "$BASH_SOURCE")"/default-install.sh source "$(dirname "$BASH_SOURCE")"/defaults-gpl.sh diff --git a/variants/win32-lgpl.sh b/variants/win32-lgpl.sh index f360d75..f000a33 100644 --- a/variants/win32-lgpl.sh +++ b/variants/win32-lgpl.sh @@ -1,3 +1,3 @@ #!/bin/bash -source "$(dirname "$BASH_SOURCE")"/windows-install-static.sh +source "$(dirname "$BASH_SOURCE")"/default-install.sh source "$(dirname "$BASH_SOURCE")"/defaults-lgpl.sh diff --git a/variants/win64-gpl.sh b/variants/win64-gpl.sh index d629915..b3003a4 100644 --- a/variants/win64-gpl.sh +++ b/variants/win64-gpl.sh @@ -1,3 +1,3 @@ #!/bin/bash -source "$(dirname "$BASH_SOURCE")"/windows-install-static.sh +source "$(dirname "$BASH_SOURCE")"/default-install.sh source "$(dirname "$BASH_SOURCE")"/defaults-gpl.sh diff --git a/variants/win64-lgpl.sh b/variants/win64-lgpl.sh index f360d75..f000a33 100644 --- a/variants/win64-lgpl.sh +++ b/variants/win64-lgpl.sh @@ -1,3 +1,3 @@ #!/bin/bash -source "$(dirname "$BASH_SOURCE")"/windows-install-static.sh +source "$(dirname "$BASH_SOURCE")"/default-install.sh source "$(dirname "$BASH_SOURCE")"/defaults-lgpl.sh