From 0bb1ff363131a51195bf8d5e5ec5b91cc3770248 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 14:58:58 -0400 Subject: [PATCH 01/43] [NEW] updateing workflow to build libdave from source --- .github/workflows/default.yml | 191 ++++++++++++++++++++++------------ src/libdave.csproj | 2 - 2 files changed, 126 insertions(+), 67 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 4090c7e..17ea5e2 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -12,88 +12,149 @@ on: env: DOTNET_NOLOGO: true + CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cpp/vcpkg/scripts/buildsystems/vcpkg.cmake + LIBDAVE_REF: v1.1.1/cpp NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages + VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite + VCPKG_CACHE_DIR: ${{ github.workspace }}/vcpkg_cache + +defaults: + run: + working-directory: ./cpp + shell: bash jobs: build: - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v6 - with: - fetch-depth: 1 + name: build (${{ matrix.rid }}) + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false + matrix: + include: + - rid: linux-x64 + runner: ubuntu-24.04 - - name: setup dotnet - uses: actions/setup-dotnet@v5 - with: - cache: true - cache-dependency-path: ./**/packages.lock.json - global-json-file: global.json + - rid: linux-arm64 + runner: ubuntu-24.04-arm - - name: restore sample - run: dotnet restore sample/libdave.sample.csproj --locked-mode + - rid: osx-arm64 + runner: macos-26 - - name: build sample - run: dotnet build sample/libdave.sample.csproj --no-restore + - rid: osx-x64 + runner: macos-26-intel - pack: - if: startsWith(github.ref, 'refs/heads/main') || startsWith(github.ref, 'refs/heads/develop') + - rid: win-x64 + runner: windows-2025 - runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v6 with: + repository: discord/libdave + ref: ${{ env.LIBDAVE_REF }} + submodules: recursive fetch-depth: 0 - fetch-tags: true - - - name: setup dotnet - uses: actions/setup-dotnet@v5 - with: - cache: true - cache-dependency-path: ./**/packages.lock.json - global-json-file: global.json - - - name: restore - run: dotnet restore --locked-mode - - - name: pack - run: dotnet build src/libdave.csproj -c Release && dotnet pack src/libdave.csproj -c Release -o dist --no-build - - - name: upload artifact - uses: actions/upload-artifact@v7 - with: - name: libdave - path: dist - - publish: - needs: [pack] - runs-on: ubuntu-latest - permissions: - id-token: write - - steps: - - name: checkout - uses: actions/checkout@v6 - with: - fetch-depth: 1 + - name: capture vcpkg revision + run: git -C vcpkg rev-parse HEAD > vcpkg_commit.txt - - name: setup dotnet - uses: actions/setup-dotnet@v5 + - name: restore vcpkg cache + id: cache-vcpkg-restore + uses: actions/cache/restore@v5 with: - global-json-file: global.json - - - name: nuget login - uses: NuGet/login@v1 - id: login + path: ${{ env.VCPKG_CACHE_DIR }} + key: vcpkg-${{ matrix.runner }}-boringssl-v03-${{ hashFiles('cpp/vcpkg_commit.txt', 'cpp/vcpkg-alts/**') }} + restore-keys: | + vcpkg-${{ matrix.runner }}-boringssl + + - name: setup tools (Linux) + if: runner.os == 'Linux' + run: sudo apt-get install -y nasm + + - name: setup tools (macOS) + if: runner.os == 'macOS' + run: | + brew install go nasm + + echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV + echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV + + - name: bootstrap vcpkg (linux/macOS) + if: runner.os != 'Windows' + run: ../vcpkg/bootstrap-vcpkg.sh -disableMetrics + + - name: bootstrap vcpkg (windows) + if: runner.os == 'Windows' + shell: cmd + run: ..\vcpkg\bootstrap-vcpkg.bat -disableMetrics + + - name: setup build + run: echo "BUILD_DIR=${{ runner.temp }}/build" >> $GITHUB_ENV + + - name: configure (shared) + run: | + make "${{ env.BUILD_DIR }}-shared" \ + BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ + BUILD_TYPE=Release \ + SSL=boringssl \ + BUILD_SHARED_LIBS=ON \ + TESTING=OFF \ + INSTALL_VCPKG_LICENSES=ON \ + MSVC_RUNTIME_LIBRARY=MultiThreaded + + - name: configure (static) + run: | + make "${{ env.BUILD_DIR }}-static" \ + BUILD_DIR="${{ env.BUILD_DIR }}-static" \ + BUILD_TYPE=Release \ + SSL=boringssl \ + BUILD_SHARED_LIBS=OFF \ + TESTING=OFF \ + INSTALL_VCPKG_LICENSES=ON \ + MSVC_RUNTIME_LIBRARY=MultiThreaded + + - name: build (shared) + run: | + make all \ + BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ + BUILD_TYPE=Release + + - name: build (static) + run: | + make all \ + BUILD_DIR="${{ env.BUILD_DIR }}-static" \ + BUILD_TYPE=Release + + - name: save vcpkg cache + if: steps.cache-vcpkg-restore.outputs.cache-hit != 'true' + uses: actions/cache/save@v5 with: - user: ${{ secrets.NUGET_USER }} + key: ${{ steps.cache-vcpkg-restore.outputs.cache-primary-key }} + path: ${{ env.VCPKG_CACHE_DIR }} + + - name: prepare artifact (linux) + if: runner.os == 'Linux' + run: | + mkdir -p ../../dist/bin ../../dist/lib + cp "${{ env.BUILD_DIR }}-shared/libdave.so" ../../dist/bin/libdave.so + cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a + + - name: prepare artifact (macOS) + if: runner.os == 'macOS' + run: | + mkdir -p ../../dist/bin ../../dist/lib + cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" ../../dist/bin/libdave.dylib + cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a + + - name: prepare artifact (windows) + if: runner.os == 'Windows' + run: | + mkdir -p ../../dist/bin ../../dist/lib + cp "${{ env.BUILD_DIR }}-shared/Release/dave.dll" ../../dist/bin/libdave.dll + cp "${{ env.BUILD_DIR }}-static/Release/dave_static.lib" ../../dist/lib/libdave.lib - - name: download artifact - uses: actions/download-artifact@v8 + - name: upload artifact + uses: actions/upload-artifact@v7 with: - name: libdave - - - name: push - run: dotnet nuget push "*.nupkg" --api-key ${{steps.login.outputs.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate + name: libdave-${{ matrix.rid }} + path: dist \ No newline at end of file diff --git a/src/libdave.csproj b/src/libdave.csproj index 06a0f51..901ea9b 100644 --- a/src/libdave.csproj +++ b/src/libdave.csproj @@ -1,6 +1,4 @@ - - Native library assets for libdave. true From f3188024b21928d51a62b87e37ef59e70fefe2d8 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 15:08:50 -0400 Subject: [PATCH 02/43] General Updates: - [FIX] incorrect relative paths in workflow - [NEW] added `pack`+`publish` stages - [NEW] update build assets for updated packaging --- .github/workflows/default.yml | 109 ++++++++++++++++++++++++++++++++-- Directory.Build.props | 2 +- src/build/libdave.props | 2 +- src/build/libdave.targets | 6 +- src/libdave.csproj | 2 + src/libdave.targets | 90 ---------------------------- 6 files changed, 109 insertions(+), 102 deletions(-) delete mode 100644 src/libdave.targets diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 17ea5e2..644c58d 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -13,7 +13,7 @@ on: env: DOTNET_NOLOGO: true CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cpp/vcpkg/scripts/buildsystems/vcpkg.cmake - LIBDAVE_REF: v1.1.1/cpp + LIBDAVE_VERSION: 1.1.1 NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite VCPKG_CACHE_DIR: ${{ github.workspace }}/vcpkg_cache @@ -51,7 +51,7 @@ jobs: uses: actions/checkout@v6 with: repository: discord/libdave - ref: ${{ env.LIBDAVE_REF }} + ref: v${{ env.LIBDAVE_VERSION }}/cpp submodules: recursive fetch-depth: 0 @@ -81,12 +81,12 @@ jobs: - name: bootstrap vcpkg (linux/macOS) if: runner.os != 'Windows' - run: ../vcpkg/bootstrap-vcpkg.sh -disableMetrics + run: ./vcpkg/bootstrap-vcpkg.sh -disableMetrics - name: bootstrap vcpkg (windows) if: runner.os == 'Windows' shell: cmd - run: ..\vcpkg\bootstrap-vcpkg.bat -disableMetrics + run: .\vcpkg\bootstrap-vcpkg.bat -disableMetrics - name: setup build run: echo "BUILD_DIR=${{ runner.temp }}/build" >> $GITHUB_ENV @@ -157,4 +157,103 @@ jobs: uses: actions/upload-artifact@v7 with: name: libdave-${{ matrix.rid }} - path: dist \ No newline at end of file + path: dist + + pack: + needs: [build] + runs-on: ubuntu-latest + + permissions: + checks: write + contents: read + + steps: + - name: checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + fetch-tags: true + + - name: setup dotnet + uses: actions/setup-dotnet@v5 + with: + cache: true + cache-dependency-path: ./**/packages.lock.json + global-json-file: global.json + + - name: download artifacts + uses: actions/download-artifact@v8 + with: + pattern: libdave-* + merge-multiple: false + path: artifact + + - name: restore + shell: pwsh + run: | + dotnet restore --locked-mode + + $artifact = Join-Path ${{ github.workspace }} "artifact" + $output = Join-Path ${{ github.workspace }} "src" + + foreach ($runtime in @("linux-arm64", "linux-x64", "osx-arm64", "osx-x64", "win-x64")) { + foreach ($file in Get-ChildItem -Path ([System.IO.Path]::Combine($artifact, "libdave-$runtime", "lib")) -Recurse -File) { + New-Item -ItemType Directory -Path ([System.IO.Path]::Combine($output, "static", $runtime, "native")) -Force | Out-Null + + $destination = [System.IO.Path]::Combine($output, "static", $runtime, "native", $file.Name) + Move-Item -Path $file.FullName -Destination $destination -Force + + Write-Host "[!] Moved ${file.FullName} to '$destination'" + } + + foreach ($file in Get-ChildItem -Path ([System.IO.Path]::Combine($artifact, "libdave-$runtime", "bin")) -Recurse -File) { + New-Item -ItemType Directory -Path ([System.IO.Path]::Combine($output, "shared", $runtime, "native")) -Force | Out-Null + + $destination = [System.IO.Path]::Combine($output, "shared", $runtime, "native", $file.Name) + Move-Item -Path $file.FullName -Destination $destination -Force + + Write-Host "[!] Moved ${file.FullName} to '$destination'" + } + } + + - name: pack + run: dotnet build src/libdave.csproj -c Release -p:LibDaveVersion="${{ env.LIBDAVE_VERSION }}" && dotnet pack src/libdave.csproj -c Release -o dist --no-build -p:LibDaveVersion="${{ env.LIBDAVE_VERSION }}" + + - name: upload artifact + uses: actions/upload-artifact@v7 + with: + name: libdave-nuget + path: dist + + publish: + needs: [pack] + runs-on: ubuntu-latest + + permissions: + contents: read + id-token: write + + steps: + - name: checkout + uses: actions/checkout@v6 + with: + fetch-depth: 1 + + - name: setup dotnet + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + + - name: nuget login + uses: NuGet/login@v1 + id: login + with: + user: ${{ secrets.NUGET_USER }} + + - name: download artifact + uses: actions/download-artifact@v8 + with: + name: libdave-nuget + + - name: push + run: dotnet nuget push "*.nupkg" --api-key ${{steps.login.outputs.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate diff --git a/Directory.Build.props b/Directory.Build.props index 7259b3b..cec3976 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -30,7 +30,7 @@ - 1.1.1 + 1.1.1 diff --git a/src/build/libdave.props b/src/build/libdave.props index fe80bb3..6cdd08b 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -3,7 +3,7 @@ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)\..')) true - true + true false diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 293469e..a3c888c 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -5,7 +5,7 @@ false - true + true false @@ -32,8 +32,4 @@ - - - - \ No newline at end of file diff --git a/src/libdave.csproj b/src/libdave.csproj index 901ea9b..5a2d595 100644 --- a/src/libdave.csproj +++ b/src/libdave.csproj @@ -1,4 +1,5 @@ + Native library assets for libdave. true @@ -14,4 +15,5 @@ + \ No newline at end of file diff --git a/src/libdave.targets b/src/libdave.targets deleted file mode 100644 index 46f9844..0000000 --- a/src/libdave.targets +++ /dev/null @@ -1,90 +0,0 @@ - - - - 3 - $(BaseIntermediateOutputPath)\libdave - - $(BaseIntermediateOutputPath)\libdave.assets - $(LibDaveOutput)\assets - - $(BaseIntermediateOutputPath)\libdave.packages - $(LibDaveOutput)\packages - - - - - - - - - - - - - - - - - - - - - - <_LibDaveDownloadBaseUrl>https://github.com/discord/libdave/releases/download/ - <_LibDaveReleaseTag>$([System.Uri]::EscapeDataString('v$(LibDaveVersion)/cpp')) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_LibDaveAsset Include="$(LibDaveAssetsOutput)\**\*.*" /> - - - - - - - - - - - - - - \ No newline at end of file From a3f5eabed507846169d82ad329ea6f3bc930f558 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 15:24:27 -0400 Subject: [PATCH 03/43] [FIX] incorrect paths in windows `prepare-artifacts` build step --- .github/workflows/default.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 644c58d..5b82b7d 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -135,23 +135,29 @@ jobs: - name: prepare artifact (linux) if: runner.os == 'Linux' run: | + tree "${{ env.BUILD_DIR }}" + mkdir -p ../../dist/bin ../../dist/lib cp "${{ env.BUILD_DIR }}-shared/libdave.so" ../../dist/bin/libdave.so - cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a + cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a - name: prepare artifact (macOS) if: runner.os == 'macOS' run: | + tree "${{ env.BUILD_DIR }}" + mkdir -p ../../dist/bin ../../dist/lib cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" ../../dist/bin/libdave.dylib - cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a + cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a - name: prepare artifact (windows) if: runner.os == 'Windows' run: | + tree "${{ env.BUILD_DIR }}" + mkdir -p ../../dist/bin ../../dist/lib - cp "${{ env.BUILD_DIR }}-shared/Release/dave.dll" ../../dist/bin/libdave.dll - cp "${{ env.BUILD_DIR }}-static/Release/dave_static.lib" ../../dist/lib/libdave.lib + cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" ../../dist/bin/libdave.dll + cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" ../../dist/lib/libdave.lib - name: upload artifact uses: actions/upload-artifact@v7 From 4db4b51620aee935f9e55d1490642bd129240788 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 15:30:35 -0400 Subject: [PATCH 04/43] - [FIX] do not use `tree` when preparing artifact - [FIX] don't override clang --- .github/workflows/default.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 5b82b7d..8fb04e9 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -76,8 +76,12 @@ jobs: run: | brew install go nasm - echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV - echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV + # brew install go llvm@18 nasm + + # LLVM_PREFIX="$(brew --prefix llvm@18)" + # echo "CC=${LLVM_PREFIX}/bin/clang" >> $GITHUB_ENV + # echo "CXX=${LLVM_PREFIX}/bin/clang++" >> $GITHUB_ENV + # echo "${LLVM_PREFIX}/bin" >> $GITHUB_PATH - name: bootstrap vcpkg (linux/macOS) if: runner.os != 'Windows' @@ -135,8 +139,6 @@ jobs: - name: prepare artifact (linux) if: runner.os == 'Linux' run: | - tree "${{ env.BUILD_DIR }}" - mkdir -p ../../dist/bin ../../dist/lib cp "${{ env.BUILD_DIR }}-shared/libdave.so" ../../dist/bin/libdave.so cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a @@ -144,8 +146,6 @@ jobs: - name: prepare artifact (macOS) if: runner.os == 'macOS' run: | - tree "${{ env.BUILD_DIR }}" - mkdir -p ../../dist/bin ../../dist/lib cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" ../../dist/bin/libdave.dylib cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a @@ -153,8 +153,6 @@ jobs: - name: prepare artifact (windows) if: runner.os == 'Windows' run: | - tree "${{ env.BUILD_DIR }}" - mkdir -p ../../dist/bin ../../dist/lib cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" ../../dist/bin/libdave.dll cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" ../../dist/lib/libdave.lib From 225547dde3356733e8090a75bd1cb47ec35bcab2 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 15:48:42 -0400 Subject: [PATCH 05/43] - [FIX] build stage definition; - [FIX] macos openssl build errors - [NEW] added `LinkerArg` support to build assets --- .github/workflows/default.yml | 22 ++++++++-------------- src/build/libdave.props | 1 + src/build/libdave.targets | 11 ++++++++++- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 8fb04e9..6d2ae68 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -18,15 +18,15 @@ env: VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite VCPKG_CACHE_DIR: ${{ github.workspace }}/vcpkg_cache -defaults: - run: - working-directory: ./cpp - shell: bash - jobs: build: name: build (${{ matrix.rid }}) runs-on: ${{ matrix.runner }} + defaults: + run: + working-directory: ./cpp + shell: bash + strategy: fail-fast: false matrix: @@ -64,8 +64,7 @@ jobs: with: path: ${{ env.VCPKG_CACHE_DIR }} key: vcpkg-${{ matrix.runner }}-boringssl-v03-${{ hashFiles('cpp/vcpkg_commit.txt', 'cpp/vcpkg-alts/**') }} - restore-keys: | - vcpkg-${{ matrix.runner }}-boringssl + restore-keys: vcpkg-${{ matrix.runner }}-boringssl - name: setup tools (Linux) if: runner.os == 'Linux' @@ -75,13 +74,8 @@ jobs: if: runner.os == 'macOS' run: | brew install go nasm - - # brew install go llvm@18 nasm - - # LLVM_PREFIX="$(brew --prefix llvm@18)" - # echo "CC=${LLVM_PREFIX}/bin/clang" >> $GITHUB_ENV - # echo "CXX=${LLVM_PREFIX}/bin/clang++" >> $GITHUB_ENV - # echo "${LLVM_PREFIX}/bin" >> $GITHUB_PATH + brew unlink openssl@3 || true + brew unlink openssl@1.1 || true - name: bootstrap vcpkg (linux/macOS) if: runner.os != 'Windows' diff --git a/src/build/libdave.props b/src/build/libdave.props index 6cdd08b..1b5b7ad 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -5,6 +5,7 @@ true true false + \ No newline at end of file diff --git a/src/build/libdave.targets b/src/build/libdave.targets index a3c888c..ae73eee 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -11,6 +11,11 @@ false + + -Wl,-Bstatic;-Wl,-lstdc++;-Wl,-lgcc;-Wl,-Bdynamic + -lc++ + + PreserveNewest @@ -29,7 +34,11 @@ - + + + + + \ No newline at end of file From a63251a57b45cdf26e3adca6ffb0ae96f2457438 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 15:51:48 -0400 Subject: [PATCH 06/43] [FIX] don't unlink openssl@1 during mac builds --- .github/workflows/default.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 6d2ae68..9c1663e 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -75,7 +75,6 @@ jobs: run: | brew install go nasm brew unlink openssl@3 || true - brew unlink openssl@1.1 || true - name: bootstrap vcpkg (linux/macOS) if: runner.os != 'Windows' From fdcee9d119efe78a5f0849a39c6333d2d5e7107c Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 16:10:43 -0400 Subject: [PATCH 07/43] [FIX] incorrect artifact path --- .github/workflows/default.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 9c1663e..f4061f2 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -154,7 +154,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: libdave-${{ matrix.rid }} - path: dist + path: ../../dist pack: needs: [build] From 2c25c563d398825a4468b0600f7091c9b429d598 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 16:24:43 -0400 Subject: [PATCH 08/43] - [NEW] adjust env scoping - [FIX] incorrect artifact path --- .github/workflows/default.yml | 82 ++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index f4061f2..39251da 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -12,11 +12,8 @@ on: env: DOTNET_NOLOGO: true - CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cpp/vcpkg/scripts/buildsystems/vcpkg.cmake LIBDAVE_VERSION: 1.1.1 NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages - VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite - VCPKG_CACHE_DIR: ${{ github.workspace }}/vcpkg_cache jobs: build: @@ -27,6 +24,12 @@ jobs: working-directory: ./cpp shell: bash + env: + CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cpp/vcpkg/scripts/buildsystems/vcpkg.cmake + # OUTPUT_DIR: ${{ github.workspace }}/dist + VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite + VCPKG_CACHE_DIR: ${{ github.workspace }}/vcpkg_cache + strategy: fail-fast: false matrix: @@ -55,10 +58,10 @@ jobs: submodules: recursive fetch-depth: 0 - - name: capture vcpkg revision + - name: setup vcpkg run: git -C vcpkg rev-parse HEAD > vcpkg_commit.txt - - name: restore vcpkg cache + - name: cache vcpkg id: cache-vcpkg-restore uses: actions/cache/restore@v5 with: @@ -90,8 +93,9 @@ jobs: - name: configure (shared) run: | - make "${{ env.BUILD_DIR }}-shared" \ - BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ + mkdir -p "${{ env.BUILD_DIR }}/bin" + make "${{ env.BUILD_DIR }}/bin" \ + BUILD_DIR="${{ env.BUILD_DIR }}/bin" \ BUILD_TYPE=Release \ SSL=boringssl \ BUILD_SHARED_LIBS=ON \ @@ -101,8 +105,8 @@ jobs: - name: configure (static) run: | - make "${{ env.BUILD_DIR }}-static" \ - BUILD_DIR="${{ env.BUILD_DIR }}-static" \ + make "${{ env.BUILD_DIR }}/lib" \ + BUILD_DIR="${{ env.BUILD_DIR }}/lib" \ BUILD_TYPE=Release \ SSL=boringssl \ BUILD_SHARED_LIBS=OFF \ @@ -113,48 +117,48 @@ jobs: - name: build (shared) run: | make all \ - BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ + BUILD_DIR="${{ env.BUILD_DIR }}/bin" \ BUILD_TYPE=Release - name: build (static) run: | make all \ - BUILD_DIR="${{ env.BUILD_DIR }}-static" \ + BUILD_DIR="${{ env.BUILD_DIR }}/lib" \ BUILD_TYPE=Release - - name: save vcpkg cache - if: steps.cache-vcpkg-restore.outputs.cache-hit != 'true' - uses: actions/cache/save@v5 - with: - key: ${{ steps.cache-vcpkg-restore.outputs.cache-primary-key }} - path: ${{ env.VCPKG_CACHE_DIR }} - - - name: prepare artifact (linux) - if: runner.os == 'Linux' - run: | - mkdir -p ../../dist/bin ../../dist/lib - cp "${{ env.BUILD_DIR }}-shared/libdave.so" ../../dist/bin/libdave.so - cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a - - - name: prepare artifact (macOS) - if: runner.os == 'macOS' - run: | - mkdir -p ../../dist/bin ../../dist/lib - cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" ../../dist/bin/libdave.dylib - cp "${{ env.BUILD_DIR }}-static/libdave.a" ../../dist/lib/libdave.a - - - name: prepare artifact (windows) - if: runner.os == 'Windows' - run: | - mkdir -p ../../dist/bin ../../dist/lib - cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" ../../dist/bin/libdave.dll - cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" ../../dist/lib/libdave.lib + # - name: prepare artifact (linux) + # if: runner.os == 'Linux' + # run: | + # mkdir -p "${{ env.OUTPUT_DIR }}/bin" "${{ env.OUTPUT_DIR }}/lib" + # cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.OUTPUT_DIR }}/bin/libdave.so" + # cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.OUTPUT_DIR }}/lib/libdave.a" + + # - name: prepare artifact (macOS) + # if: runner.os == 'macOS' + # run: | + # mkdir -p "${{ env.OUTPUT_DIR }}/bin" "${{ env.OUTPUT_DIR }}/lib" + # cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.OUTPUT_DIR }}/bin/libdave.dylib" + # cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.OUTPUT_DIR }}/lib/libdave.a" + + # - name: prepare artifact (windows) + # if: runner.os == 'Windows' + # run: | + # mkdir -p "${{ env.OUTPUT_DIR }}/bin" "${{ env.OUTPUT_DIR }}/lib" + # cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.OUTPUT_DIR }}/bin/libdave.dll" + # cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.OUTPUT_DIR }}/lib/libdave.lib" - name: upload artifact uses: actions/upload-artifact@v7 with: name: libdave-${{ matrix.rid }} - path: ../../dist + path: ${{ env.BUILD_DIR }} + + - name: Post cache vcpkg + if: steps.cache-vcpkg-restore.outputs.cache-hit != 'true' + uses: actions/cache/save@v5 + with: + key: ${{ steps.cache-vcpkg-restore.outputs.cache-primary-key }} + path: ${{ env.VCPKG_CACHE_DIR }} pack: needs: [build] From 2b0d94409e941beab083378494ac9d881d05bbe8 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 16:31:54 -0400 Subject: [PATCH 09/43] [FIX] artifact preparation/packaging --- .github/workflows/default.yml | 65 +++++++++++++++++------------------ 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 39251da..a1b11d8 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -11,9 +11,13 @@ on: workflow_dispatch: env: + ARTIFACT_DIR: ${{ github.workspace }}/dist + CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cpp/vcpkg/scripts/buildsystems/vcpkg.cmake DOTNET_NOLOGO: true LIBDAVE_VERSION: 1.1.1 NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages + VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite + VCPKG_CACHE_DIR: ${{ github.workspace }}/vcpkg_cache jobs: build: @@ -24,12 +28,6 @@ jobs: working-directory: ./cpp shell: bash - env: - CMAKE_TOOLCHAIN_FILE: ${{ github.workspace }}/cpp/vcpkg/scripts/buildsystems/vcpkg.cmake - # OUTPUT_DIR: ${{ github.workspace }}/dist - VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite - VCPKG_CACHE_DIR: ${{ github.workspace }}/vcpkg_cache - strategy: fail-fast: false matrix: @@ -93,9 +91,8 @@ jobs: - name: configure (shared) run: | - mkdir -p "${{ env.BUILD_DIR }}/bin" - make "${{ env.BUILD_DIR }}/bin" \ - BUILD_DIR="${{ env.BUILD_DIR }}/bin" \ + make "${{ env.BUILD_DIR }}-shared" \ + BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ BUILD_TYPE=Release \ SSL=boringssl \ BUILD_SHARED_LIBS=ON \ @@ -105,8 +102,8 @@ jobs: - name: configure (static) run: | - make "${{ env.BUILD_DIR }}/lib" \ - BUILD_DIR="${{ env.BUILD_DIR }}/lib" \ + make "${{ env.BUILD_DIR }}-static" \ + BUILD_DIR="${{ env.BUILD_DIR }}-static" \ BUILD_TYPE=Release \ SSL=boringssl \ BUILD_SHARED_LIBS=OFF \ @@ -117,41 +114,41 @@ jobs: - name: build (shared) run: | make all \ - BUILD_DIR="${{ env.BUILD_DIR }}/bin" \ + BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ BUILD_TYPE=Release - name: build (static) run: | make all \ - BUILD_DIR="${{ env.BUILD_DIR }}/lib" \ + BUILD_DIR="${{ env.BUILD_DIR }}-static" \ BUILD_TYPE=Release - # - name: prepare artifact (linux) - # if: runner.os == 'Linux' - # run: | - # mkdir -p "${{ env.OUTPUT_DIR }}/bin" "${{ env.OUTPUT_DIR }}/lib" - # cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.OUTPUT_DIR }}/bin/libdave.so" - # cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.OUTPUT_DIR }}/lib/libdave.a" - - # - name: prepare artifact (macOS) - # if: runner.os == 'macOS' - # run: | - # mkdir -p "${{ env.OUTPUT_DIR }}/bin" "${{ env.OUTPUT_DIR }}/lib" - # cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.OUTPUT_DIR }}/bin/libdave.dylib" - # cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.OUTPUT_DIR }}/lib/libdave.a" - - # - name: prepare artifact (windows) - # if: runner.os == 'Windows' - # run: | - # mkdir -p "${{ env.OUTPUT_DIR }}/bin" "${{ env.OUTPUT_DIR }}/lib" - # cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.OUTPUT_DIR }}/bin/libdave.dll" - # cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.OUTPUT_DIR }}/lib/libdave.lib" + - name: prepare artifact (linux) + if: runner.os == 'Linux' + run: | + mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" + cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" + + - name: prepare artifact (macOS) + if: runner.os == 'macOS' + run: | + mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" + cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" + + - name: prepare artifact (windows) + if: runner.os == 'Windows' + run: | + mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" + cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" - name: upload artifact uses: actions/upload-artifact@v7 with: name: libdave-${{ matrix.rid }} - path: ${{ env.BUILD_DIR }} + path: ${{ env.ARTIFACT_DIR }} - name: Post cache vcpkg if: steps.cache-vcpkg-restore.outputs.cache-hit != 'true' From 41468b6d9de76024d584ad1e9e109d7c5b5c66e8 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 17:33:25 -0400 Subject: [PATCH 10/43] [FIX] static linking --- src/build/libdave.props | 2 +- src/build/libdave.targets | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/build/libdave.props b/src/build/libdave.props index 1b5b7ad..2122c0a 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -3,7 +3,7 @@ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)\..')) true - true + true false diff --git a/src/build/libdave.targets b/src/build/libdave.targets index ae73eee..01bbfa5 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -38,7 +38,7 @@ - + \ No newline at end of file From f3769d34a6cd3fccf683ef2e93ba847ac7483800 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 17:49:22 -0400 Subject: [PATCH 11/43] [NEW] static linking improvements --- .github/workflows/default.yml | 6 ++++++ src/build/libdave.targets | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index a1b11d8..6037095 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -127,6 +127,8 @@ jobs: if: runner.os == 'Linux' run: | mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + ls -la ${{ env.BUILD_DIR }}-shared && ls -la ${{ env.BUILD_DIR }}-static + cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" @@ -134,6 +136,8 @@ jobs: if: runner.os == 'macOS' run: | mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + ls -la ${{ env.BUILD_DIR }}-shared && ls -la ${{ env.BUILD_DIR }}-static + cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" @@ -141,6 +145,8 @@ jobs: if: runner.os == 'Windows' run: | mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + ls -la ${{ env.BUILD_DIR }}-shared/Release && ls -la ${{ env.BUILD_DIR }}-static/Release + cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 01bbfa5..fda0376 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -35,10 +35,8 @@ - - - + \ No newline at end of file From e536ce0034e033a8e8611327281dc524997434a0 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 18:13:40 -0400 Subject: [PATCH 12/43] - [NEW] package `libcrypto`+`libsll` - [FIX] static linking defaults --- .github/workflows/default.yml | 17 +++++++++++++++++ src/build/libdave.targets | 6 +++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 6037095..6a66385 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -34,18 +34,23 @@ jobs: include: - rid: linux-x64 runner: ubuntu-24.04 + vcpkg_rid: x64-linux - rid: linux-arm64 runner: ubuntu-24.04-arm + vcpkg_rid: arm64-linux - rid: osx-arm64 runner: macos-26 + vcpkg_rid: arm64-osx - rid: osx-x64 runner: macos-26-intel + vcpkg_rid: x64-osx - rid: win-x64 runner: windows-2025 + vcpkg_rid: x64-windows steps: - name: checkout @@ -132,6 +137,10 @@ jobs: cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" + VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" + cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" + - name: prepare artifact (macOS) if: runner.os == 'macOS' run: | @@ -141,6 +150,10 @@ jobs: cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" + VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" + cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" + - name: prepare artifact (windows) if: runner.os == 'Windows' run: | @@ -150,6 +163,10 @@ jobs: cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" + VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + cp "${VCPKG_INSTALLED}/lib/libssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" + cp "${VCPKG_INSTALLED}/lib/libcrypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" + - name: upload artifact uses: actions/upload-artifact@v7 with: diff --git a/src/build/libdave.targets b/src/build/libdave.targets index fda0376..da40db8 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -5,14 +5,14 @@ false - true + true false - - -Wl,-Bstatic;-Wl,-lstdc++;-Wl,-lgcc;-Wl,-Bdynamic + + -Wl,--push-state,--as-needed,-Bstatic,-lstdc++,-lgcc,--pop-state -lc++ From b368d46c149802c72ea70b4eb32ea9275b1e4273 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 18:19:32 -0400 Subject: [PATCH 13/43] [FIX] windows build --- .github/workflows/default.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 6a66385..d323d7c 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -50,7 +50,7 @@ jobs: - rid: win-x64 runner: windows-2025 - vcpkg_rid: x64-windows + vcpkg_rid: x64-windows-static steps: - name: checkout From 99b1f1fee72a6712c1a8646a7db66f5525996e66 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 18:24:25 -0400 Subject: [PATCH 14/43] [TEMP] windows packaging fixes --- .github/workflows/default.yml | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index d323d7c..5ccdf7b 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -32,21 +32,21 @@ jobs: fail-fast: false matrix: include: - - rid: linux-x64 - runner: ubuntu-24.04 - vcpkg_rid: x64-linux + # - rid: linux-x64 + # runner: ubuntu-24.04 + # vcpkg_rid: x64-linux - - rid: linux-arm64 - runner: ubuntu-24.04-arm - vcpkg_rid: arm64-linux + # - rid: linux-arm64 + # runner: ubuntu-24.04-arm + # vcpkg_rid: arm64-linux - - rid: osx-arm64 - runner: macos-26 - vcpkg_rid: arm64-osx + # - rid: osx-arm64 + # runner: macos-26 + # vcpkg_rid: arm64-osx - - rid: osx-x64 - runner: macos-26-intel - vcpkg_rid: x64-osx + # - rid: osx-x64 + # runner: macos-26-intel + # vcpkg_rid: x64-osx - rid: win-x64 runner: windows-2025 @@ -163,6 +163,8 @@ jobs: cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" + ls -la "${{ env.BUILD_DIR }}-static/vcpkg_installed" + VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" cp "${VCPKG_INSTALLED}/lib/libssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" cp "${VCPKG_INSTALLED}/lib/libcrypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" From 2a103921ec5eacf15b8de4f0d3d0c1f68e4299b8 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 18:28:57 -0400 Subject: [PATCH 15/43] [TEMP] windows packaging fixes --- .github/workflows/default.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 5ccdf7b..bd8c610 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -163,7 +163,7 @@ jobs: cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" - ls -la "${{ env.BUILD_DIR }}-static/vcpkg_installed" + tree "${{ env.BUILD_DIR }}-static/vcpkg_installed" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" cp "${VCPKG_INSTALLED}/lib/libssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" From cfd4cadfd272aa123da377258eb0baf2b6f7c7bc Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 18:32:02 -0400 Subject: [PATCH 16/43] [TEMP] windows packaging fixes --- .github/workflows/default.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index bd8c610..76faa1d 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -163,7 +163,7 @@ jobs: cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" - tree "${{ env.BUILD_DIR }}-static/vcpkg_installed" + ls -aR "${{ env.BUILD_DIR }}-static/vcpkg_installed" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" cp "${VCPKG_INSTALLED}/lib/libssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" From 2a66797e3f97003a96d6ed82a9e03a529da09422 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 18:36:54 -0400 Subject: [PATCH 17/43] [FIX] windows packaging fixes --- .github/workflows/default.yml | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 76faa1d..fa5700f 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -32,21 +32,21 @@ jobs: fail-fast: false matrix: include: - # - rid: linux-x64 - # runner: ubuntu-24.04 - # vcpkg_rid: x64-linux + - rid: linux-x64 + runner: ubuntu-24.04 + vcpkg_rid: x64-linux - # - rid: linux-arm64 - # runner: ubuntu-24.04-arm - # vcpkg_rid: arm64-linux + - rid: linux-arm64 + runner: ubuntu-24.04-arm + vcpkg_rid: arm64-linux - # - rid: osx-arm64 - # runner: macos-26 - # vcpkg_rid: arm64-osx + - rid: osx-arm64 + runner: macos-26 + vcpkg_rid: arm64-osx - # - rid: osx-x64 - # runner: macos-26-intel - # vcpkg_rid: x64-osx + - rid: osx-x64 + runner: macos-26-intel + vcpkg_rid: x64-osx - rid: win-x64 runner: windows-2025 @@ -163,11 +163,9 @@ jobs: cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" - ls -aR "${{ env.BUILD_DIR }}-static/vcpkg_installed" - VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - cp "${VCPKG_INSTALLED}/lib/libssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" - cp "${VCPKG_INSTALLED}/lib/libcrypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" + cp "${VCPKG_INSTALLED}/lib/ssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" + cp "${VCPKG_INSTALLED}/lib/crypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" - name: upload artifact uses: actions/upload-artifact@v7 From ec6f754770726bf32926c7ff7c5914acebde638b Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 18:58:15 -0400 Subject: [PATCH 18/43] [FIX] package `libmlspp` --- .github/workflows/default.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index fa5700f..7a43755 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -138,8 +138,9 @@ jobs: cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" + cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" + cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" - name: prepare artifact (macOS) if: runner.os == 'macOS' @@ -152,6 +153,7 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" + cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" - name: prepare artifact (windows) @@ -165,6 +167,7 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" cp "${VCPKG_INSTALLED}/lib/ssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" + cp "${VCPKG_INSTALLED}/lib/mlspp.lib" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.lib" cp "${VCPKG_INSTALLED}/lib/crypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" - name: upload artifact From 55ff3a5d7eb1aed66abfe5d1461c0505470bdb5c Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 19:21:45 -0400 Subject: [PATCH 19/43] [NEW] package all libs for nativeaot/static linking --- .github/workflows/default.yml | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 7a43755..68a8c15 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -138,9 +138,14 @@ jobs: cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" + cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" + cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" + cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" + cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" - name: prepare artifact (macOS) if: runner.os == 'macOS' @@ -152,9 +157,14 @@ jobs: cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" - cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" + cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" + cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" + cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" + cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" + cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" + cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" + cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" - name: prepare artifact (windows) if: runner.os == 'Windows' @@ -166,9 +176,15 @@ jobs: cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - cp "${VCPKG_INSTALLED}/lib/ssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" - cp "${VCPKG_INSTALLED}/lib/mlspp.lib" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.lib" + + cp "${VCPKG_INSTALLED}/lib/bytes.lib" "${{ env.ARTIFACT_DIR }}/lib/libbytes.lib" cp "${VCPKG_INSTALLED}/lib/crypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" + cp "${VCPKG_INSTALLED}/lib/hpke.lib" "${{ env.ARTIFACT_DIR }}/lib/libhpke.lib" + cp "${VCPKG_INSTALLED}/lib/mls_ds.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.lib" + cp "${VCPKG_INSTALLED}/lib/mls_vectors.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.lib" + cp "${VCPKG_INSTALLED}/lib/mlspp.lib" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.lib" + cp "${VCPKG_INSTALLED}/lib/ssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" + cp "${VCPKG_INSTALLED}/lib/tls_syntax.lib" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.lib" - name: upload artifact uses: actions/upload-artifact@v7 From 197b9daa21a57a28d29be130f5f2b8cb7c48ba00 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Mon, 6 Apr 2026 19:48:44 -0400 Subject: [PATCH 20/43] [FIX] adjust aot build items --- src/build/libdave.targets | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index da40db8..2bf61b2 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -12,7 +12,7 @@ - -Wl,--push-state,--as-needed,-Bstatic,-lstdc++,-lgcc,--pop-state + -Wl,--push-state,-Bstatic,-lstdc++,-lgcc,--pop-state -lc++ @@ -33,9 +33,21 @@ - + + + + + + + + + + + + + From d5968e590dd4a48881b1c6ffc56b235df23e7ab2 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 09:54:53 -0400 Subject: [PATCH 21/43] [NEW] build against openssl --- .github/workflows/default.yml | 67 ++++++++++++++++++----------------- src/build/libdave.targets | 21 +---------- 2 files changed, 36 insertions(+), 52 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 68a8c15..93b8ce2 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -69,8 +69,8 @@ jobs: uses: actions/cache/restore@v5 with: path: ${{ env.VCPKG_CACHE_DIR }} - key: vcpkg-${{ matrix.runner }}-boringssl-v03-${{ hashFiles('cpp/vcpkg_commit.txt', 'cpp/vcpkg-alts/**') }} - restore-keys: vcpkg-${{ matrix.runner }}-boringssl + key: vcpkg-${{ matrix.runner }}-openssl-${{ hashFiles('cpp/vcpkg_commit.txt', 'cpp/vcpkg-alts/**') }} + restore-keys: vcpkg-${{ matrix.runner }}-openssl - name: setup tools (Linux) if: runner.os == 'Linux' @@ -78,9 +78,7 @@ jobs: - name: setup tools (macOS) if: runner.os == 'macOS' - run: | - brew install go nasm - brew unlink openssl@3 || true + run: brew install go nasm - name: bootstrap vcpkg (linux/macOS) if: runner.os != 'Windows' @@ -99,7 +97,7 @@ jobs: make "${{ env.BUILD_DIR }}-shared" \ BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ BUILD_TYPE=Release \ - SSL=boringssl \ + SSL=openssl \ BUILD_SHARED_LIBS=ON \ TESTING=OFF \ INSTALL_VCPKG_LICENSES=ON \ @@ -110,7 +108,7 @@ jobs: make "${{ env.BUILD_DIR }}-static" \ BUILD_DIR="${{ env.BUILD_DIR }}-static" \ BUILD_TYPE=Release \ - SSL=boringssl \ + SSL=openssl \ BUILD_SHARED_LIBS=OFF \ TESTING=OFF \ INSTALL_VCPKG_LICENSES=ON \ @@ -138,14 +136,16 @@ jobs: cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" - cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" - cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" - cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" - cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" - cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" - cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" - cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" + ls -lR "${VCPKG_INSTALLED}/lib" + + # cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" + # cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" + # cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" + # cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" + # cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" + # cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" + # cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" + # cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" - name: prepare artifact (macOS) if: runner.os == 'macOS' @@ -157,14 +157,16 @@ jobs: cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" - cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" - cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" - cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" - cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" - cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" - cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" - cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" + ls -lR "${VCPKG_INSTALLED}/lib" + + # cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" + # cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" + # cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" + # cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" + # cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" + # cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" + # cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" + # cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" - name: prepare artifact (windows) if: runner.os == 'Windows' @@ -176,15 +178,16 @@ jobs: cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - - cp "${VCPKG_INSTALLED}/lib/bytes.lib" "${{ env.ARTIFACT_DIR }}/lib/libbytes.lib" - cp "${VCPKG_INSTALLED}/lib/crypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" - cp "${VCPKG_INSTALLED}/lib/hpke.lib" "${{ env.ARTIFACT_DIR }}/lib/libhpke.lib" - cp "${VCPKG_INSTALLED}/lib/mls_ds.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.lib" - cp "${VCPKG_INSTALLED}/lib/mls_vectors.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.lib" - cp "${VCPKG_INSTALLED}/lib/mlspp.lib" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.lib" - cp "${VCPKG_INSTALLED}/lib/ssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" - cp "${VCPKG_INSTALLED}/lib/tls_syntax.lib" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.lib" + ls -lR "${VCPKG_INSTALLED}/lib" + + # cp "${VCPKG_INSTALLED}/lib/bytes.lib" "${{ env.ARTIFACT_DIR }}/lib/libbytes.lib" + # cp "${VCPKG_INSTALLED}/lib/crypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" + # cp "${VCPKG_INSTALLED}/lib/hpke.lib" "${{ env.ARTIFACT_DIR }}/lib/libhpke.lib" + # cp "${VCPKG_INSTALLED}/lib/mls_ds.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.lib" + # cp "${VCPKG_INSTALLED}/lib/mls_vectors.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.lib" + # cp "${VCPKG_INSTALLED}/lib/mlspp.lib" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.lib" + # cp "${VCPKG_INSTALLED}/lib/ssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" + # cp "${VCPKG_INSTALLED}/lib/tls_syntax.lib" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.lib" - name: upload artifact uses: actions/upload-artifact@v7 diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 2bf61b2..c62e67b 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -11,11 +11,6 @@ false - - -Wl,--push-state,-Bstatic,-lstdc++,-lgcc,--pop-state - -lc++ - - PreserveNewest @@ -34,21 +29,7 @@ - - - - - - - - - - - - - - - + \ No newline at end of file From 96a25f295a9021b3edf2c661fa2abfcf3cab0a85 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 10:02:47 -0400 Subject: [PATCH 22/43] [FIX] do not explicitly specify ssl version (use openssl@3 by default) --- .github/workflows/default.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 93b8ce2..035c002 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -97,7 +97,6 @@ jobs: make "${{ env.BUILD_DIR }}-shared" \ BUILD_DIR="${{ env.BUILD_DIR }}-shared" \ BUILD_TYPE=Release \ - SSL=openssl \ BUILD_SHARED_LIBS=ON \ TESTING=OFF \ INSTALL_VCPKG_LICENSES=ON \ @@ -108,7 +107,6 @@ jobs: make "${{ env.BUILD_DIR }}-static" \ BUILD_DIR="${{ env.BUILD_DIR }}-static" \ BUILD_TYPE=Release \ - SSL=openssl \ BUILD_SHARED_LIBS=OFF \ TESTING=OFF \ INSTALL_VCPKG_LICENSES=ON \ From 75e8bd2c34eae41948a492b098a023b677449e20 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 10:16:13 -0400 Subject: [PATCH 23/43] [NEW] package all static libs --- .github/workflows/default.yml | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 035c002..cf8599c 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -128,43 +128,25 @@ jobs: if: runner.os == 'Linux' run: | mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" - ls -la ${{ env.BUILD_DIR }}-shared && ls -la ${{ env.BUILD_DIR }}-static - cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -lR "${VCPKG_INSTALLED}/lib" - # cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" - # cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" - # cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" - # cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" - # cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" - # cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" - # cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" - # cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" + cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" - name: prepare artifact (macOS) if: runner.os == 'macOS' run: | mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" - ls -la ${{ env.BUILD_DIR }}-shared && ls -la ${{ env.BUILD_DIR }}-static - cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -lR "${VCPKG_INSTALLED}/lib" - # cp "${VCPKG_INSTALLED}/lib/libbytes.a" "${{ env.ARTIFACT_DIR }}/lib/libbytes.a" - # cp "${VCPKG_INSTALLED}/lib/libcrypto.a" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.a" - # cp "${VCPKG_INSTALLED}/lib/libhpke.a" "${{ env.ARTIFACT_DIR }}/lib/libhpke.a" - # cp "${VCPKG_INSTALLED}/lib/libmls_ds.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.a" - # cp "${VCPKG_INSTALLED}/lib/libmls_vectors.a" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.a" - # cp "${VCPKG_INSTALLED}/lib/libmlspp.a" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.a" - # cp "${VCPKG_INSTALLED}/lib/libssl.a" "${{ env.ARTIFACT_DIR }}/lib/libssl.a" - # cp "${VCPKG_INSTALLED}/lib/libtls_syntax.a" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a" + cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" - name: prepare artifact (windows) if: runner.os == 'Windows' @@ -178,14 +160,7 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -lR "${VCPKG_INSTALLED}/lib" - # cp "${VCPKG_INSTALLED}/lib/bytes.lib" "${{ env.ARTIFACT_DIR }}/lib/libbytes.lib" - # cp "${VCPKG_INSTALLED}/lib/crypto.lib" "${{ env.ARTIFACT_DIR }}/lib/libcrypto.lib" - # cp "${VCPKG_INSTALLED}/lib/hpke.lib" "${{ env.ARTIFACT_DIR }}/lib/libhpke.lib" - # cp "${VCPKG_INSTALLED}/lib/mls_ds.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_ds.lib" - # cp "${VCPKG_INSTALLED}/lib/mls_vectors.lib" "${{ env.ARTIFACT_DIR }}/lib/libmls_vectors.lib" - # cp "${VCPKG_INSTALLED}/lib/mlspp.lib" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.lib" - # cp "${VCPKG_INSTALLED}/lib/ssl.lib" "${{ env.ARTIFACT_DIR }}/lib/libssl.lib" - # cp "${VCPKG_INSTALLED}/lib/tls_syntax.lib" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.lib" + cp "${VCPKG_INSTALLED}/lib/*.lib" "${{ env.ARTIFACT_DIR }}/lib" - name: upload artifact uses: actions/upload-artifact@v7 From fefb07886d43027c2d2e1c2196180b7e1f18b154 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 10:22:32 -0400 Subject: [PATCH 24/43] [TEMP] adjust listing command in artifact preparation --- .github/workflows/default.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index cf8599c..7b91ee9 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -132,7 +132,7 @@ jobs: cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - ls -lR "${VCPKG_INSTALLED}/lib" + ls -aR "${VCPKG_INSTALLED}/lib" cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" @@ -144,7 +144,7 @@ jobs: cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - ls -lR "${VCPKG_INSTALLED}/lib" + ls -aR "${VCPKG_INSTALLED}/lib" cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" @@ -152,13 +152,11 @@ jobs: if: runner.os == 'Windows' run: | mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" - ls -la ${{ env.BUILD_DIR }}-shared/Release && ls -la ${{ env.BUILD_DIR }}-static/Release - cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - ls -lR "${VCPKG_INSTALLED}/lib" + ls -aR "${VCPKG_INSTALLED}/lib" cp "${VCPKG_INSTALLED}/lib/*.lib" "${{ env.ARTIFACT_DIR }}/lib" From 77e107781dc61f260949e39341b24a53abd8e65d Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 10:25:18 -0400 Subject: [PATCH 25/43] [FIX] manually enumerate files to copy --- .github/workflows/default.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 7b91ee9..bf0ec37 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -134,7 +134,9 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -aR "${VCPKG_INSTALLED}/lib" - cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" + for file in "${VCPKG_INSTALLED}/lib/*.a"; do + cp "$file" "${{ env.ARTIFACT_DIR }}/lib" + done - name: prepare artifact (macOS) if: runner.os == 'macOS' @@ -146,7 +148,11 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -aR "${VCPKG_INSTALLED}/lib" - cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" + for file in "${VCPKG_INSTALLED}/lib/*.a"; do + cp "$file" "${{ env.ARTIFACT_DIR }}/lib" + done + + # cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" - name: prepare artifact (windows) if: runner.os == 'Windows' @@ -158,7 +164,9 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -aR "${VCPKG_INSTALLED}/lib" - cp "${VCPKG_INSTALLED}/lib/*.lib" "${{ env.ARTIFACT_DIR }}/lib" + for file in "${VCPKG_INSTALLED}/lib/*.a"; do + cp "$file" "${{ env.ARTIFACT_DIR }}/lib" + done - name: upload artifact uses: actions/upload-artifact@v7 From 06a5c080970956db8a6f2e49e96143900ff8920b Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 10:26:01 -0400 Subject: [PATCH 26/43] [FIX] copy `.lib` files on windows --- .github/workflows/default.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index bf0ec37..09a1dbd 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -164,7 +164,7 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -aR "${VCPKG_INSTALLED}/lib" - for file in "${VCPKG_INSTALLED}/lib/*.a"; do + for file in "${VCPKG_INSTALLED}/lib/*.lib"; do cp "$file" "${{ env.ARTIFACT_DIR }}/lib" done From 697fc8863fce8af453917c0c8a99ce91b9b715ec Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 10:33:49 -0400 Subject: [PATCH 27/43] [FIX] don't use double quotes (ensure wildcard is expanded by the shell) --- .github/workflows/default.yml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 09a1dbd..3347ae4 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -134,9 +134,7 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -aR "${VCPKG_INSTALLED}/lib" - for file in "${VCPKG_INSTALLED}/lib/*.a"; do - cp "$file" "${{ env.ARTIFACT_DIR }}/lib" - done + cp ${VCPKG_INSTALLED}/lib/*.a ${{ env.ARTIFACT_DIR }}/lib - name: prepare artifact (macOS) if: runner.os == 'macOS' @@ -148,11 +146,7 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -aR "${VCPKG_INSTALLED}/lib" - for file in "${VCPKG_INSTALLED}/lib/*.a"; do - cp "$file" "${{ env.ARTIFACT_DIR }}/lib" - done - - # cp "${VCPKG_INSTALLED}/lib/*.a" "${{ env.ARTIFACT_DIR }}/lib" + cp ${VCPKG_INSTALLED}/lib/*.a ${{ env.ARTIFACT_DIR }}/lib - name: prepare artifact (windows) if: runner.os == 'Windows' @@ -164,9 +158,7 @@ jobs: VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" ls -aR "${VCPKG_INSTALLED}/lib" - for file in "${VCPKG_INSTALLED}/lib/*.lib"; do - cp "$file" "${{ env.ARTIFACT_DIR }}/lib" - done + cp ${VCPKG_INSTALLED}/lib/*.lib ${{ env.ARTIFACT_DIR }}/lib - name: upload artifact uses: actions/upload-artifact@v7 From 40d0ab095426180e8daa857edb2459d2ce5258d0 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 10:44:16 -0400 Subject: [PATCH 28/43] [FIX] use pwsh for preparing artifact --- .github/workflows/default.yml | 39 +++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 3347ae4..eff724b 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -126,39 +126,42 @@ jobs: - name: prepare artifact (linux) if: runner.os == 'Linux' + shell: pwsh run: | - mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" - cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" - cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" + New-Item -ItemType Directory -Path "${{ env.ARTIFACT_DIR }}/bin", "${{ env.ARTIFACT_DIR }}/lib" -Force | Out-Null + Copy-Item "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" + Copy-Item "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" - VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - ls -aR "${VCPKG_INSTALLED}/lib" + $VcpkgInstalled = "${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + Get-ChildItem -Path "$VcpkgInstalled/lib" -Recurse | Format-Table - cp ${VCPKG_INSTALLED}/lib/*.a ${{ env.ARTIFACT_DIR }}/lib + Get-ChildItem -Path "$VcpkgInstalled/lib" -File | Copy-Item -Destination "${{ env.ARTIFACT_DIR }}/lib" - name: prepare artifact (macOS) if: runner.os == 'macOS' + shell: pwsh run: | - mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" - cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" - cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" + New-Item -ItemType Directory -Path "${{ env.ARTIFACT_DIR }}/bin", "${{ env.ARTIFACT_DIR }}/lib" -Force | Out-Null + Copy-Item "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" + Copy-Item "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" - VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - ls -aR "${VCPKG_INSTALLED}/lib" + $VcpkgInstalled = "${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + Get-ChildItem -Path "$VcpkgInstalled/lib" -Recurse | Format-Table - cp ${VCPKG_INSTALLED}/lib/*.a ${{ env.ARTIFACT_DIR }}/lib + Get-ChildItem -Path "$VcpkgInstalled/lib" -File | Copy-Item -Destination "${{ env.ARTIFACT_DIR }}/lib" - name: prepare artifact (windows) if: runner.os == 'Windows' + shell: pwsh run: | - mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" - cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" - cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" + New-Item -ItemType Directory -Path "${{ env.ARTIFACT_DIR }}/bin", "${{ env.ARTIFACT_DIR }}/lib" -Force | Out-Null + Copy-Item "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" + Copy-Item "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" - VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - ls -aR "${VCPKG_INSTALLED}/lib" + $VcpkgInstalled = "${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + Get-ChildItem -Path "$VcpkgInstalled/lib" -Recurse | Format-Table - cp ${VCPKG_INSTALLED}/lib/*.lib ${{ env.ARTIFACT_DIR }}/lib + Get-ChildItem -Path "$VcpkgInstalled/lib" -File | Copy-Item -Destination "${{ env.ARTIFACT_DIR }}/lib" - name: upload artifact uses: actions/upload-artifact@v7 From 27cfab9701576122bb7f0b5629ab56084cf06f1a Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 14:06:21 -0400 Subject: [PATCH 29/43] - [NEW] optmize packaging - [NEW] use targets for improved extensibility - [NEW] added sbom - [NEW] specify supported runtimes - [FIX] linker/aot settings --- .github/workflows/default.yml | 49 +++++++++++----------- Directory.Build.props | 2 + sample/libdave.sample.csproj | 1 + sample/packages.lock.json | 34 +++++++++++++++ src/build/libdave.props | 1 - src/build/libdave.targets | 78 +++++++++++++++++++++-------------- src/libdave.csproj | 1 + src/packages.lock.json | 13 +++++- tool/download.ps1 | 70 ------------------------------- 9 files changed, 122 insertions(+), 127 deletions(-) delete mode 100644 tool/download.ps1 diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index eff724b..f375daa 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -126,42 +126,43 @@ jobs: - name: prepare artifact (linux) if: runner.os == 'Linux' - shell: pwsh run: | - New-Item -ItemType Directory -Path "${{ env.ARTIFACT_DIR }}/bin", "${{ env.ARTIFACT_DIR }}/lib" -Force | Out-Null - Copy-Item "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" - Copy-Item "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" - - $VcpkgInstalled = "${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - Get-ChildItem -Path "$VcpkgInstalled/lib" -Recurse | Format-Table + mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + cp "${{ env.BUILD_DIR }}-shared/libdave.so" "${{ env.ARTIFACT_DIR }}/bin/libdave.so" + cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" - Get-ChildItem -Path "$VcpkgInstalled/lib" -File | Copy-Item -Destination "${{ env.ARTIFACT_DIR }}/lib" + VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + cp ${VCPKG_INSTALLED}/lib/libbytes.a ${{ env.ARTIFACT_DIR }}/lib/libbytes.a + cp ${VCPKG_INSTALLED}/lib/libhpke.a ${{ env.ARTIFACT_DIR }}/lib/libhpke.a + cp ${VCPKG_INSTALLED}/lib/libmlspp.a ${{ env.ARTIFACT_DIR }}/lib/libmlspp.a + cp ${VCPKG_INSTALLED}/lib/libtls_syntax.a ${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a - name: prepare artifact (macOS) if: runner.os == 'macOS' - shell: pwsh run: | - New-Item -ItemType Directory -Path "${{ env.ARTIFACT_DIR }}/bin", "${{ env.ARTIFACT_DIR }}/lib" -Force | Out-Null - Copy-Item "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" - Copy-Item "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" + mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + cp "${{ env.BUILD_DIR }}-shared/libdave.dylib" "${{ env.ARTIFACT_DIR }}/bin/libdave.dylib" + cp "${{ env.BUILD_DIR }}-static/libdave.a" "${{ env.ARTIFACT_DIR }}/lib/libdave.a" - $VcpkgInstalled = "${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - Get-ChildItem -Path "$VcpkgInstalled/lib" -Recurse | Format-Table - - Get-ChildItem -Path "$VcpkgInstalled/lib" -File | Copy-Item -Destination "${{ env.ARTIFACT_DIR }}/lib" + VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + cp ${VCPKG_INSTALLED}/lib/libbytes.a ${{ env.ARTIFACT_DIR }}/lib/libbytes.a + cp ${VCPKG_INSTALLED}/lib/libhpke.a ${{ env.ARTIFACT_DIR }}/lib/libhpke.a + cp ${VCPKG_INSTALLED}/lib/libmlspp.a ${{ env.ARTIFACT_DIR }}/lib/libmlspp.a + cp ${VCPKG_INSTALLED}/lib/libtls_syntax.a ${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.a - name: prepare artifact (windows) if: runner.os == 'Windows' shell: pwsh run: | - New-Item -ItemType Directory -Path "${{ env.ARTIFACT_DIR }}/bin", "${{ env.ARTIFACT_DIR }}/lib" -Force | Out-Null - Copy-Item "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" - Copy-Item "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" - - $VcpkgInstalled = "${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" - Get-ChildItem -Path "$VcpkgInstalled/lib" -Recurse | Format-Table - - Get-ChildItem -Path "$VcpkgInstalled/lib" -File | Copy-Item -Destination "${{ env.ARTIFACT_DIR }}/lib" + mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" + cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" + cp "${{ env.BUILD_DIR }}-static/Release/libdave.lib" "${{ env.ARTIFACT_DIR }}/lib/libdave.lib" + + VCPKG_INSTALLED="${{ env.BUILD_DIR }}-static/vcpkg_installed/${{ matrix.vcpkg_rid }}" + cp "${VCPKG_INSTALLED}/lib/bytes.lib" "${{ env.ARTIFACT_DIR }}/lib/libbytes.lib" + cp "${VCPKG_INSTALLED}/lib/hpke.lib" "${{ env.ARTIFACT_DIR }}/lib/libhpke.lib" + cp "${VCPKG_INSTALLED}/lib/mlspp.lib" "${{ env.ARTIFACT_DIR }}/lib/libmlspp.lib" + cp "${VCPKG_INSTALLED}/lib/tls_syntax.lib" "${{ env.ARTIFACT_DIR }}/lib/libtls_syntax.lib" - name: upload artifact uses: actions/upload-artifact@v7 diff --git a/Directory.Build.props b/Directory.Build.props index cec3976..c8db074 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -13,6 +13,7 @@ false strict true + true true true latest @@ -54,6 +55,7 @@ + diff --git a/sample/libdave.sample.csproj b/sample/libdave.sample.csproj index 0b336e7..12de3aa 100644 --- a/sample/libdave.sample.csproj +++ b/sample/libdave.sample.csproj @@ -3,6 +3,7 @@ Exe + true net10.0 diff --git a/sample/packages.lock.json b/sample/packages.lock.json index 3c59e45..376c663 100644 --- a/sample/packages.lock.json +++ b/sample/packages.lock.json @@ -8,6 +8,24 @@ "resolved": "10.0.201", "contentHash": "MTE+F0fj0N8dtfkEGIcX3/rEycMbOf54DXq/n6n8cE6ZfDIPEElY8lc4X5BpZ+c7DBoQDGLG0iBY/W0YZ3nhtw==" }, + "Microsoft.DotNet.ILCompiler": { + "type": "Direct", + "requested": "[10.0.5, )", + "resolved": "10.0.5", + "contentHash": "yadTZIkStCVsG8nGwvfroSfBApPsgjQbodQyaIfp53dgayE0qhZpywixiCB6lx57JYQ+KVg1m1AFLrj54pxpZg==" + }, + "Microsoft.NET.ILLink.Tasks": { + "type": "Direct", + "requested": "[10.0.5, )", + "resolved": "10.0.5", + "contentHash": "A+5ZuQ0f449tM+MQrhf6R9ZX7lYpjk/ODEwLYKrnF6111rtARx8fVsm4YznUnQiKnnXfaXNBqgxmil6RW3L3SA==" + }, + "Microsoft.Sbom.Targets": { + "type": "Direct", + "requested": "[4.1.5, )", + "resolved": "4.1.5", + "contentHash": "i5z+cNu/cOcdO0AgFB8aXk8w6In2H+haaDfSgd9ImvQIK+rSHavHZIogVoAZLL8jLwYx4bAcs5b7EyuMMG4mQQ==" + }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[10.0.201, )", @@ -46,6 +64,22 @@ "libdave": { "type": "Project" } + }, + "net10.0/win-x64": { + "Microsoft.DotNet.ILCompiler": { + "type": "Direct", + "requested": "[10.0.5, )", + "resolved": "10.0.5", + "contentHash": "yadTZIkStCVsG8nGwvfroSfBApPsgjQbodQyaIfp53dgayE0qhZpywixiCB6lx57JYQ+KVg1m1AFLrj54pxpZg==", + "dependencies": { + "runtime.win-x64.Microsoft.DotNet.ILCompiler": "10.0.5" + } + }, + "runtime.win-x64.Microsoft.DotNet.ILCompiler": { + "type": "Transitive", + "resolved": "10.0.5", + "contentHash": "vblLkpVhSDYOmrEW0jypX7YVtLg7idU1QzUyx45ZdZ2sFUSSf3mYFCr0FW3+KZgXWpN1ve9ZPrxNywvHISF4bA==" + } } } } \ No newline at end of file diff --git a/src/build/libdave.props b/src/build/libdave.props index 2122c0a..8c63e91 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -5,7 +5,6 @@ true true false - \ No newline at end of file diff --git a/src/build/libdave.targets b/src/build/libdave.targets index c62e67b..98fccfd 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -1,35 +1,51 @@ - - - false - - - true - - - false - - - - - PreserveNewest - PreserveNewest - runtimes\%(RecursiveDir)\%(Filename)%(Extension) - runtimes\%(RecursiveDir)\%(Filename)%(Extension) - - - - PreserveNewest - PreserveNewest - %(Filename)%(Extension) - %(Filename)%(Extension) - - - - - - - + + + + false + + + true + + + false + + + + + + + PreserveNewest + PreserveNewest + runtimes\%(RecursiveDir)\%(Filename)%(Extension) + runtimes\%(RecursiveDir)\%(Filename)%(Extension) + + + + PreserveNewest + PreserveNewest + %(Filename)%(Extension) + %(Filename)%(Extension) + + + + + + + true + true + + + + + + + + + + + + \ No newline at end of file diff --git a/src/libdave.csproj b/src/libdave.csproj index 5a2d595..055b51f 100644 --- a/src/libdave.csproj +++ b/src/libdave.csproj @@ -5,6 +5,7 @@ true $(NoWarn);NU5100;NU5128; README.md + linux-arm64;linux-x64;osx-arm64;osx-x64;win-x64 netstandard2.1 diff --git a/src/packages.lock.json b/src/packages.lock.json index 06b9587..c43f79c 100644 --- a/src/packages.lock.json +++ b/src/packages.lock.json @@ -8,6 +8,12 @@ "resolved": "10.0.201", "contentHash": "MTE+F0fj0N8dtfkEGIcX3/rEycMbOf54DXq/n6n8cE6ZfDIPEElY8lc4X5BpZ+c7DBoQDGLG0iBY/W0YZ3nhtw==" }, + "Microsoft.Sbom.Targets": { + "type": "Direct", + "requested": "[4.1.5, )", + "resolved": "4.1.5", + "contentHash": "i5z+cNu/cOcdO0AgFB8aXk8w6In2H+haaDfSgd9ImvQIK+rSHavHZIogVoAZLL8jLwYx4bAcs5b7EyuMMG4mQQ==" + }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[10.0.201, )", @@ -57,6 +63,11 @@ "resolved": "4.6.3", "contentHash": "qdcDOgnFZY40+Q9876JUHnlHu7bosOHX8XISRoH94fwk6hgaeQGSgfZd8srWRZNt5bV9ZW2TljcegDNxsf+96A==" } - } + }, + ".NETStandard,Version=v2.1/linux-arm64": {}, + ".NETStandard,Version=v2.1/linux-x64": {}, + ".NETStandard,Version=v2.1/osx-arm64": {}, + ".NETStandard,Version=v2.1/osx-x64": {}, + ".NETStandard,Version=v2.1/win-x64": {} } } \ No newline at end of file diff --git a/tool/download.ps1 b/tool/download.ps1 deleted file mode 100644 index 1b469ae..0000000 --- a/tool/download.ps1 +++ /dev/null @@ -1,70 +0,0 @@ -[CmdletBinding()] -param( - [Parameter(Mandatory)] - [string]$Version, - - [Parameter(Mandatory)] - [string]$OutputDir -) - -function Get-NetCoreRuntime { - param([string]$runtime) - - if ($runtime -eq "windows-x64") { return "win-x64" } - return $runtime -} - -$runtimes = @("linux-arm64", "linux-x64", "macos-arm64", "macos-x64", "windows-x64") -$cache = ([System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())) - -New-Item -ItemType Directory -Path $cache | Out-Null -Write-Host "[!] Downloading Packages $Version to '$cache'..." - -$version = "v$Version/cpp" -foreach ($runtime in $runtimes) { - $package = "libdave-$runtime-boringssl.zip" - $url = "https://github.com/discord/libdave/releases/download/$([Uri]::EscapeDataString($version))/$package" - - $destination = [System.IO.Path]::Combine($cache, $package) - Invoke-WebRequest -Uri $url -OutFile $destination - - Write-Host "[!] Downloaded $package to '$destination'" -} - -$obj = ([System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())) - -Write-Host "[!] Extracting Packages to '$obj'..." -foreach ($runtime in $runtimes) { - $package = "libdave-$runtime-boringssl.zip" - - $destination = [System.IO.Path]::Combine($obj, $runtime) - Expand-Archive -Path ([System.IO.Path]::Combine($cache, $package)) -DestinationPath $destination - - Write-Host "[!] Extracted $package to '$destination'" -} - - -Write-Host "[!] Moving Assets to '$OutputDir'..." -foreach ($runtime in $runtimes) { - $rid = $(Get-NetCoreRuntime $runtime) - - foreach ($file in Get-ChildItem -Path ([System.IO.Path]::Combine($obj, $runtime, "lib")) -Recurse -File) { - New-Item -ItemType Directory -Path ([System.IO.Path]::Combine($OutputDir, "static", $rid, "native")) -Force | Out-Null - - $destination = [System.IO.Path]::Combine($OutputDir, "static", $rid, "native", $file.Name) - Move-Item -Path $file.FullName -Destination $destination -Force - - Write-Host "[!] Moved ${file.FullName} to '$destination'" - } - - foreach ($file in Get-ChildItem -Path ([System.IO.Path]::Combine($obj, $runtime, "bin")) -Recurse -File) { - New-Item -ItemType Directory -Path ([System.IO.Path]::Combine($OutputDir, "runtimes", $rid, "native")) -Force | Out-Null - - $destination = [System.IO.Path]::Combine($OutputDir, "runtimes", $rid, "native", $file.Name) - Move-Item -Path $file.FullName -Destination $destination -Force - - Write-Host "[!] Moved ${file.FullName} to '$destination'" - } - - Write-Host "[!] Moved Assets for runtime '$runtime'" -} \ No newline at end of file From f88560caefefc8038b8f7a86ce59b7d2ffa21b24 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 14:09:10 -0400 Subject: [PATCH 30/43] [FIX] ensure `PrepareForPublish` is targeted --- src/build/libdave.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 98fccfd..404a037 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -1,6 +1,6 @@ - + false @@ -13,7 +13,7 @@ - + PreserveNewest @@ -31,7 +31,7 @@ - + true true From 5e2ddb9701796d624004460998c9dbfebb3ad11e Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 14:12:44 -0400 Subject: [PATCH 31/43] [FIX] don't use `pwsh` for preparing windows artifact --- .github/workflows/default.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index f375daa..1450580 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -152,7 +152,6 @@ jobs: - name: prepare artifact (windows) if: runner.os == 'Windows' - shell: pwsh run: | mkdir -p "${{ env.ARTIFACT_DIR }}/bin" "${{ env.ARTIFACT_DIR }}/lib" cp "${{ env.BUILD_DIR }}-shared/Release/libdave.dll" "${{ env.ARTIFACT_DIR }}/bin/libdave.dll" From a58f4c66b6a3df06627db248fdf83aef7df3b865 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 14:21:23 -0400 Subject: [PATCH 32/43] [FIX] restore of sample project (missing rids) --- sample/libdave.sample.csproj | 1 + sample/packages.lock.json | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/sample/libdave.sample.csproj b/sample/libdave.sample.csproj index 12de3aa..4ef4b47 100644 --- a/sample/libdave.sample.csproj +++ b/sample/libdave.sample.csproj @@ -4,6 +4,7 @@ Exe true + linux-x64;win-x64 net10.0 diff --git a/sample/packages.lock.json b/sample/packages.lock.json index 376c663..a6de1e1 100644 --- a/sample/packages.lock.json +++ b/sample/packages.lock.json @@ -65,6 +65,22 @@ "type": "Project" } }, + "net10.0/linux-x64": { + "Microsoft.DotNet.ILCompiler": { + "type": "Direct", + "requested": "[10.0.5, )", + "resolved": "10.0.5", + "contentHash": "yadTZIkStCVsG8nGwvfroSfBApPsgjQbodQyaIfp53dgayE0qhZpywixiCB6lx57JYQ+KVg1m1AFLrj54pxpZg==", + "dependencies": { + "runtime.linux-x64.Microsoft.DotNet.ILCompiler": "10.0.5" + } + }, + "runtime.linux-x64.Microsoft.DotNet.ILCompiler": { + "type": "Transitive", + "resolved": "10.0.5", + "contentHash": "QYAggijHfk8FpLrPVhaESEOCYGWzEjA9JLapzg6XMFK5TGmwQ2HIqEprFv28MwvB5GdPGaZVLXE5icnkgLUfSA==" + } + }, "net10.0/win-x64": { "Microsoft.DotNet.ILCompiler": { "type": "Direct", From 88c3c505a95b47d61ce3e59471a103cfe0a0cd1c Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 14:51:01 -0400 Subject: [PATCH 33/43] [FIX] adjust target before/after --- src/build/libdave.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 404a037..3aed5de 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -1,6 +1,6 @@ - + false @@ -13,7 +13,7 @@ - + PreserveNewest @@ -31,7 +31,7 @@ - + true true From ded9356167d7bb148dba3b7c2f64ae45a295b84a Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 15:09:29 -0400 Subject: [PATCH 34/43] [FIX] target conditions --- src/build/libdave.targets | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 3aed5de..3d56292 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -13,8 +13,8 @@ - - + + PreserveNewest PreserveNewest @@ -31,13 +31,13 @@ - - + + true true - + From e316e708676747b56210e0365564541c5a051e28 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 15:40:44 -0400 Subject: [PATCH 35/43] [FIX] property defaults --- src/build/libdave.props | 3 +++ src/build/libdave.targets | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/build/libdave.props b/src/build/libdave.props index 8c63e91..21461cd 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -3,7 +3,10 @@ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)\..')) true + + false true + false diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 3d56292..302db73 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -40,11 +40,11 @@ - - - - - + + + + + From 680c5e45514f31d2574f0059e888395b2e28a3d3 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 16:24:43 -0400 Subject: [PATCH 36/43] [NEW] `LibDaveEnableStaticLinking` default value --- src/build/libdave.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/libdave.props b/src/build/libdave.props index 21461cd..4f946b5 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -4,7 +4,7 @@ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)\..')) true - false + true false From 03e8dabc3d3e8264b4987bffc130e018403b330b Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 16:38:42 -0400 Subject: [PATCH 37/43] [NEW] default property values --- src/build/libdave.props | 7 +++---- src/build/libdave.targets | 12 ++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/build/libdave.props b/src/build/libdave.props index 4f946b5..c1f939a 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -2,12 +2,11 @@ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)\..')) - true - - - true false + true + none + true \ No newline at end of file diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 302db73..ebf7f4f 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -3,18 +3,18 @@ - false + false - true + true - false + false - + PreserveNewest PreserveNewest @@ -32,12 +32,12 @@ - + true true - + From b33d9b25813577188ac66acd9e4703fd75f297d2 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 17:13:46 -0400 Subject: [PATCH 38/43] [NEW] use `DependsOn` instead of `After` --- src/build/libdave.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index ebf7f4f..bd0cc23 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -13,7 +13,7 @@ - + PreserveNewest @@ -31,7 +31,7 @@ - + true true From a8974546bfe16626bf7e43292daf20a490150644 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 17:34:55 -0400 Subject: [PATCH 39/43] [FIX] property defaults+target deps --- src/build/libdave.targets | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index bd0cc23..87630e1 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -1,20 +1,18 @@ - - - - false + + + false - - true + + true - - false - - + + false + - - + + PreserveNewest PreserveNewest @@ -31,13 +29,13 @@ - - + + true true - + From 6bf06448fc3d79bc7d481cf0a41bb02621aee2c4 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 18:28:09 -0400 Subject: [PATCH 40/43] - [FIX] targets/content includes not copying - [NEW] added warning/errors for invalid configurations --- src/build/libdave.targets | 65 ++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 87630e1..0337f7e 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -11,39 +11,40 @@ false - - - - PreserveNewest - PreserveNewest - runtimes\%(RecursiveDir)\%(Filename)%(Extension) - runtimes\%(RecursiveDir)\%(Filename)%(Extension) - - - - PreserveNewest - PreserveNewest - %(Filename)%(Extension) - %(Filename)%(Extension) - - - + + + PreserveNewest + PreserveNewest + runtimes\%(RecursiveDir)\%(Filename)%(Extension) + runtimes\%(RecursiveDir)\%(Filename)%(Extension) + + + + PreserveNewest + PreserveNewest + %(Filename)%(Extension) + %(Filename)%(Extension) + + + + + true + true + + + + + + + + + + + - - - true - true - - - - - - - - - - - + + + \ No newline at end of file From 49724b623e43ace1fe014da5f0a57f870f6c3f91 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 18:53:01 -0400 Subject: [PATCH 41/43] - [NEW] update README - [NEW] use `auto` for `LibDaveStaticLinking` --- README.md | 4 ++-- src/build/libdave.props | 4 ++-- src/build/libdave.targets | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f7c296f..9c77bce 100644 --- a/README.md +++ b/README.md @@ -8,5 +8,5 @@ Native library assets for [libdave](https://github.com/discord/libdave). | Property | Default | Description | | -------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `$(LibDaveEnableRuntimeLinking)` | `true` | Toggle whether shared libraries are copied to the output directory. | -| `$(LibDaveEnableStaticLinking)` | `$(PublishAot) == 'true' AND $(RuntimeIdentifier) != ''` | Toggle whether `DirectPInvoke`+`NativeLibrary` items are included in the project (for Static Linking) | \ No newline at end of file +| `$(LibDaveRuntimeLinking)` | `true` | Toggle whether shared libraries are copied to the output directory. | +| `$(LibDaveStaticLinking)` | `$(PublishAot) == 'true' AND $(RuntimeIdentifier) != ''` | Toggle whether `DirectPInvoke`+`NativeLibrary` items are included in the project (for Static Linking) | \ No newline at end of file diff --git a/src/build/libdave.props b/src/build/libdave.props index c1f939a..a2a247e 100644 --- a/src/build/libdave.props +++ b/src/build/libdave.props @@ -5,8 +5,8 @@ false true - none - true + auto + true \ No newline at end of file diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 0337f7e..56016b8 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -5,7 +5,7 @@ false - true + true false From db5252e7547bc2c1f0d99171e6450dcab93cfb73 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 18:58:27 -0400 Subject: [PATCH 42/43] do not publish pr builds --- .github/workflows/default.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 1450580..b58c6f4 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -243,6 +243,8 @@ jobs: path: dist publish: + if: startsWith(github.ref, 'refs/heads/main') || startsWith(github.ref, 'refs/heads/develop') + needs: [pack] runs-on: ubuntu-latest From bfc619d462b978af578a770be1f0494141c55c69 Mon Sep 17 00:00:00 2001 From: cryptoc1 Date: Tue, 7 Apr 2026 19:06:08 -0400 Subject: [PATCH 43/43] - [NEW] `LinkStandardCPlusPlusLibrary` on any non-windows platform --- src/build/libdave.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/libdave.targets b/src/build/libdave.targets index 56016b8..e5e066a 100644 --- a/src/build/libdave.targets +++ b/src/build/libdave.targets @@ -28,7 +28,7 @@ - true + true true