From a68443d7eac8f5effe520a335d4729d11827677a Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 17:27:25 -0500 Subject: [PATCH 01/21] WIP --- .github/workflows/ci.yml | 3 --- Dockerfile.linux-musl | 11 ++++++++--- dockerbuild.sh | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5482c7d4..43a9b5c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,9 +55,6 @@ jobs: - name: Build macOS if: runner.os == 'macOS' run: ./build.libgit2.sh - - name: Setup QEMU - if: matrix.name == 'linux-musl-arm' || matrix.name == 'linux-musl-arm64' - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset - name: Build Linux if: runner.os == 'Linux' run: ./dockerbuild.sh diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index 1cfa1e4e..01f7eec6 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -1,8 +1,13 @@ -ARG ARCH='amd64' -FROM multiarch/alpine:${ARCH}-v3.13 -RUN apk add --no-cache bash build-base cmake +FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx + +FROM --platform=$BUILDPLATFORM alpine + +RUN apk add cmake clang lld WORKDIR /nativebinaries COPY . /nativebinaries/ +ARG TARGETPLATFORM +RUN xx-apk musl-dev gcc + CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file diff --git a/dockerbuild.sh b/dockerbuild.sh index 4ee5a0a2..20982577 100755 --- a/dockerbuild.sh +++ b/dockerbuild.sh @@ -6,9 +6,9 @@ echo "building for $RID" if [[ $RID =~ arm64 ]]; then arch="arm64" elif [[ $RID =~ arm ]]; then - arch="armhf" + arch="arm/v7" elif [[ $RID =~ ppc64le ]]; then - arch="powerpc64le" + arch="ppc64le" else arch="amd64" fi @@ -19,7 +19,7 @@ else dockerfile="Dockerfile.linux" fi -docker buildx build -t $RID -f $dockerfile --build-arg ARCH=$arch . +docker buildx build -t $RID -f $dockerfile --platform=linux/$arch . docker run -t -e RID=$RID --name=$RID $RID From ab747a30daf0fd98358e1dfec77611e1e662f8e5 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 17:36:42 -0500 Subject: [PATCH 02/21] WIP --- dockerbuild.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dockerbuild.sh b/dockerbuild.sh index 20982577..76c82c4e 100755 --- a/dockerbuild.sh +++ b/dockerbuild.sh @@ -6,9 +6,9 @@ echo "building for $RID" if [[ $RID =~ arm64 ]]; then arch="arm64" elif [[ $RID =~ arm ]]; then - arch="arm/v7" + arch="armhf" elif [[ $RID =~ ppc64le ]]; then - arch="ppc64le" + arch="powerpc64le" else arch="amd64" fi @@ -19,7 +19,7 @@ else dockerfile="Dockerfile.linux" fi -docker buildx build -t $RID -f $dockerfile --platform=linux/$arch . +docker buildx build -t $RID -f $dockerfile --platform=linux/$arch --build-arg ARCH=$arch . docker run -t -e RID=$RID --name=$RID $RID From e59153c634724ffc0a2dd307b7e97399d0568a3b Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 17:42:51 -0500 Subject: [PATCH 03/21] WIP --- Dockerfile.linux-musl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index 01f7eec6..0e51ec79 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -2,6 +2,8 @@ FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx FROM --platform=$BUILDPLATFORM alpine +COPY --from=xx / / + RUN apk add cmake clang lld WORKDIR /nativebinaries From c553808a7f209090b2e56ad8f8e556b982bd1acf Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 17:46:22 -0500 Subject: [PATCH 04/21] WIP --- Dockerfile.linux-musl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index 0e51ec79..cae63364 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -10,6 +10,6 @@ WORKDIR /nativebinaries COPY . /nativebinaries/ ARG TARGETPLATFORM -RUN xx-apk musl-dev gcc +RUN xx-apk add musl-dev gcc CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file From dc2c8e6d60f67459163fb6545031bd9c968458d1 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 17:48:03 -0500 Subject: [PATCH 05/21] WIP --- Dockerfile.linux-musl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index cae63364..41d4cd6c 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -10,6 +10,6 @@ WORKDIR /nativebinaries COPY . /nativebinaries/ ARG TARGETPLATFORM -RUN xx-apk add musl-dev gcc +RUN xx-apk add musl-dev gcc bash CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file From 15e0f658f5d10417eebafa57f675700f19754f22 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 17:48:43 -0500 Subject: [PATCH 06/21] Comment out non-Linux for now --- .github/workflows/ci.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43a9b5c7..485a2be0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,15 +16,15 @@ jobs: strategy: matrix: include: - - os: windows-2019 - name: win-x86 - param: -x86 - - os: windows-2019 - name: win-x64 - param: -x64 - - os: windows-2019 - name: win-arm64 - param: -arm64 + # - os: windows-2019 + # name: win-x86 + # param: -x86 + # - os: windows-2019 + # name: win-x64 + # param: -x64 + # - os: windows-2019 + # name: win-arm64 + # param: -arm64 - os: ubuntu-24.04 name: linux-x64 - os: ubuntu-24.04 @@ -39,10 +39,10 @@ jobs: name: linux-musl-arm - os: ubuntu-24.04 name: linux-musl-arm64 - - os: macos-13 - name: osx-x64 - - os: macos-13 - name: osx-arm64 + # - os: macos-13 + # name: osx-x64 + # - os: macos-13 + # name: osx-arm64 fail-fast: false steps: - name: Checkout From 81b4f89b5a144913c50271a2bee75fadd1109477 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 17:55:22 -0500 Subject: [PATCH 07/21] WIP --- Dockerfile.linux-musl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index 41d4cd6c..a47a3cba 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -12,4 +12,6 @@ COPY . /nativebinaries/ ARG TARGETPLATFORM RUN xx-apk add musl-dev gcc bash +RUN cmake $(xx-clang --print-cmake-defines) .. + CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file From f9757c1ddaf422a800bb6a618226d98f504ec6b7 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:00:56 -0500 Subject: [PATCH 08/21] WIP --- build.libgit2.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.libgit2.sh b/build.libgit2.sh index 3ac9e48e..0d5fff81 100755 --- a/build.libgit2.sh +++ b/build.libgit2.sh @@ -26,7 +26,8 @@ pushd libgit2/build export _BINPATH=`pwd` -cmake -DCMAKE_BUILD_TYPE:STRING=Release \ +cmake xx-clang --print-cmake-defines \ + -DCMAKE_BUILD_TYPE:STRING=Release \ -DBUILD_TESTS:BOOL=OFF \ -DUSE_SSH=exec \ -DLIBGIT2_FILENAME=git2-$SHORTSHA \ From ddcc0380de6e50f34c375ad1ff2d77f52ec19c70 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:05:18 -0500 Subject: [PATCH 09/21] WIP --- Dockerfile.linux-musl | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index a47a3cba..41d4cd6c 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -12,6 +12,4 @@ COPY . /nativebinaries/ ARG TARGETPLATFORM RUN xx-apk add musl-dev gcc bash -RUN cmake $(xx-clang --print-cmake-defines) .. - CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file From af4cb23335872fc66bca4c07d069a6ef034148ab Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:08:54 -0500 Subject: [PATCH 10/21] WIP --- build.libgit2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.libgit2.sh b/build.libgit2.sh index 0d5fff81..37c9b2fc 100755 --- a/build.libgit2.sh +++ b/build.libgit2.sh @@ -26,7 +26,7 @@ pushd libgit2/build export _BINPATH=`pwd` -cmake xx-clang --print-cmake-defines \ +cmake $(xx-clang --print-cmake-defines) \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DBUILD_TESTS:BOOL=OFF \ -DUSE_SSH=exec \ From 9fa3977b6b27b303a6e3eb247043f51eac3e4779 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:15:54 -0500 Subject: [PATCH 11/21] WIP --- Dockerfile.linux-musl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index 41d4cd6c..ca8462fc 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -4,12 +4,12 @@ FROM --platform=$BUILDPLATFORM alpine COPY --from=xx / / -RUN apk add cmake clang lld +RUN apk add cmake clang lld bash build-base WORKDIR /nativebinaries COPY . /nativebinaries/ ARG TARGETPLATFORM -RUN xx-apk add musl-dev gcc bash +RUN xx-apk add musl-dev gcc CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file From 915315cc2688111c67f84c886ad8d0f9b1597289 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:26:44 -0500 Subject: [PATCH 12/21] WIP --- build.libgit2.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.libgit2.sh b/build.libgit2.sh index 37c9b2fc..3ac9e48e 100755 --- a/build.libgit2.sh +++ b/build.libgit2.sh @@ -26,8 +26,7 @@ pushd libgit2/build export _BINPATH=`pwd` -cmake $(xx-clang --print-cmake-defines) \ - -DCMAKE_BUILD_TYPE:STRING=Release \ +cmake -DCMAKE_BUILD_TYPE:STRING=Release \ -DBUILD_TESTS:BOOL=OFF \ -DUSE_SSH=exec \ -DLIBGIT2_FILENAME=git2-$SHORTSHA \ From 203ecb5a34cfcc20f96e967f430662deb15ef777 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:27:18 -0500 Subject: [PATCH 13/21] WIP --- Dockerfile.linux-musl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index ca8462fc..02a63487 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -4,7 +4,7 @@ FROM --platform=$BUILDPLATFORM alpine COPY --from=xx / / -RUN apk add cmake clang lld bash build-base +RUN apk add cmake clang lld bash build-base pkg-config WORKDIR /nativebinaries COPY . /nativebinaries/ From bd29d773a9023e306208d83e79c86928bb5da0d1 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:30:12 -0500 Subject: [PATCH 14/21] WIP --- Dockerfile.linux-musl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index 02a63487..bf0fade5 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -4,7 +4,7 @@ FROM --platform=$BUILDPLATFORM alpine COPY --from=xx / / -RUN apk add cmake clang lld bash build-base pkg-config +RUN apk add cmake clang lld bash build-base pkgconf WORKDIR /nativebinaries COPY . /nativebinaries/ From b8f0802e12d78f40e8717a9243eff3615c2e7b62 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:53:18 -0500 Subject: [PATCH 15/21] WIP --- build.libgit2.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build.libgit2.sh b/build.libgit2.sh index 3ac9e48e..b07d0147 100755 --- a/build.libgit2.sh +++ b/build.libgit2.sh @@ -33,6 +33,7 @@ cmake -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_OSX_ARCHITECTURES=$OSXARCHITECTURE \ -DUSE_HTTPS=$USEHTTPS \ -DUSE_BUNDLED_ZLIB=ON \ + $(xx-clang --print-cmake-defines) .. cmake --build . From 181165efbd8edd1ac5d4d2ec46272f52bdb927a0 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 18:54:58 -0500 Subject: [PATCH 16/21] WIP --- build.libgit2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.libgit2.sh b/build.libgit2.sh index b07d0147..aeec848a 100755 --- a/build.libgit2.sh +++ b/build.libgit2.sh @@ -33,7 +33,7 @@ cmake -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_OSX_ARCHITECTURES=$OSXARCHITECTURE \ -DUSE_HTTPS=$USEHTTPS \ -DUSE_BUNDLED_ZLIB=ON \ - $(xx-clang --print-cmake-defines) + $(xx-clang --print-cmake-defines) \ .. cmake --build . From c7d2cbc39bad992c1a6d1890b352edbbb2bc75e6 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 19:10:51 -0500 Subject: [PATCH 17/21] WIP --- Dockerfile.linux-musl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index bf0fade5..c129d932 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -12,4 +12,6 @@ COPY . /nativebinaries/ ARG TARGETPLATFORM RUN xx-apk add musl-dev gcc +RUN xx-info env + CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file From 77e1b80605ee40b2d9fe473c770eaec59917e15c Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 19:17:50 -0500 Subject: [PATCH 18/21] WIP --- dockerbuild.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockerbuild.sh b/dockerbuild.sh index 76c82c4e..2009628f 100755 --- a/dockerbuild.sh +++ b/dockerbuild.sh @@ -21,7 +21,7 @@ fi docker buildx build -t $RID -f $dockerfile --platform=linux/$arch --build-arg ARCH=$arch . -docker run -t -e RID=$RID --name=$RID $RID +docker run -t -e RID=$RID --name=$RID $RID --platform=linux/$arch docker cp $RID:/nativebinaries/nuget.package/runtimes nuget.package From b1c024644c43bba673d3bc2ba48a4dbb9a4c6c11 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 19:22:26 -0500 Subject: [PATCH 19/21] WIP --- dockerbuild.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockerbuild.sh b/dockerbuild.sh index 2009628f..c7f34e77 100755 --- a/dockerbuild.sh +++ b/dockerbuild.sh @@ -21,7 +21,7 @@ fi docker buildx build -t $RID -f $dockerfile --platform=linux/$arch --build-arg ARCH=$arch . -docker run -t -e RID=$RID --name=$RID $RID --platform=linux/$arch +docker run -t -e RID=$RID --name=$RID --platform=linux/$arch $RID docker cp $RID:/nativebinaries/nuget.package/runtimes nuget.package From 0b596d93ae507ff5fd535628ddf927e5ecf14e8a Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 19:37:57 -0500 Subject: [PATCH 20/21] WIP --- Dockerfile.linux-musl | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index c129d932..3c99e86b 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -13,5 +13,6 @@ ARG TARGETPLATFORM RUN xx-apk add musl-dev gcc RUN xx-info env +RUN xx-clang --setup-target-triple CMD ["/bin/bash", "-c", "./build.libgit2.sh"] \ No newline at end of file From 4086f971e85957e560eaf786d32ad138eb1451dd Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Sat, 23 Nov 2024 19:44:19 -0500 Subject: [PATCH 21/21] WIP --- Dockerfile.linux-musl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.linux-musl b/Dockerfile.linux-musl index 3c99e86b..46f5c89c 100644 --- a/Dockerfile.linux-musl +++ b/Dockerfile.linux-musl @@ -4,13 +4,13 @@ FROM --platform=$BUILDPLATFORM alpine COPY --from=xx / / -RUN apk add cmake clang lld bash build-base pkgconf +RUN apk add cmake clang lld bash build-base WORKDIR /nativebinaries COPY . /nativebinaries/ ARG TARGETPLATFORM -RUN xx-apk add musl-dev gcc +RUN xx-apk add musl-dev gcc pkgconf RUN xx-info env RUN xx-clang --setup-target-triple