From 4fe594d44fd787898592e5776898d9accb875bd6 Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 19:46:20 +0400 Subject: [PATCH 01/11] chore(ci): update rust workflow for multi-arch cross compilation and caching --- .github/workflows/rust.yml | 59 ++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index f959dcde..d4648a4c 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -7,9 +7,7 @@ on: - "v*" jobs: - build: - strategy: fail-fast: false matrix: @@ -35,50 +33,49 @@ jobs: - uses: actions-rs/toolchain@v1.0.7 with: profile: minimal - toolchain: nightly-2023-05-20 + toolchain: stable override: true - - name: Add WASM target - run: rustup target add wasm32-unknown-unknown + - name: Install cross-compilation tools + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - - uses: actions/cache@v4.2.3 - with: - path: ~/.cargo/registry - key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} + - name: Install cross + run: cargo install cross - - uses: actions/cache@v4.2.3 - with: - path: ~/.cargo/git - key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }} + - name: Add targets + run: | + rustup target add wasm32-unknown-unknown + rustup target add ${{ matrix.target }} + + - name: Configure cross-compilation + run: | + echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV + echo "AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar" >> $GITHUB_ENV + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - uses: actions/cache@v4.2.3 with: - path: target - key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - uses: actions-rs/cargo@v1.0.3 - with: - command: build - args: '--release' + - name: Build + run: cross build --release --target ${{ matrix.target }} - name: Package shell: bash run: | - cd target/release - tar czvf ../../poscan-consensus-${{ matrix.name }}.tar.gz poscan-consensus${{ matrix.suffix }} - cd - - - - name: Package WASM Artifact - if: matrix.name == 'linux-x86_64' - run: | - cd target/release/wbuild/poscan-runtime - tar czvf ../../../../poscan_runtime-wasm32-unknown-unknown.tar.gz poscan_runtime.compact.compressed.wasm + cd target/${{ matrix.target }}/release + tar czvf ../../../poscan-consensus-${{ matrix.name }}.tar.gz poscan-consensus${{ matrix.suffix }} - name: Publish uses: softprops/action-gh-release@v2.2.2 with: - files: | - poscan-consensus-* - poscan_runtime-* + files: poscan-consensus-* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 2e9c4690efd620b9d4997fc7eb7e2eb8ac3d215f Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 19:56:21 +0400 Subject: [PATCH 02/11] chore(Cargo.lock): update obj-rs git reference to latest commit --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 215255a1..ba0044a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4627,7 +4627,7 @@ dependencies = [ [[package]] name = "obj-rs" version = "0.7.0" -source = "git+https://github.com/3Dpass/obj-rs?branch=dev#e2ce997504f2106ccdfc054490131a2501e59e00" +source = "git+https://github.com/3Dpass/obj-rs?branch=dev#1e61a670c284c4d4d05b6265958edffa6eee813a" dependencies = [ "anyhow", "core2", From ef70bcd457515b94c3bf36f81dea57dfd061aca0 Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 20:05:41 +0400 Subject: [PATCH 03/11] chore(ci): add windows build and improve packaging in github actions workflow --- .github/workflows/rust.yml | 48 +++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d4648a4c..d810b332 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -24,38 +24,47 @@ jobs: os: macos-latest name: macos suffix: '' + - target: x86_64-pc-windows-msvc + os: windows-latest + name: windows-x86_64 + suffix: '.exe' runs-on: ${{ matrix.os }} steps: + # ------------- Checkout ------------- - uses: actions/checkout@v4.2.2 + # ------------- Rust toolchain ------------- - uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - - name: Install cross-compilation tools + # ------------- Ubuntu-only prerequisites ------------- + - name: Install AArch64 gcc/g++ + if: startsWith(matrix.os, 'ubuntu') run: | sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - - name: Install cross - run: cargo install cross - - - name: Add targets + # ------------- Add compilation targets ------------- + - name: Add Rust targets run: | rustup target add wasm32-unknown-unknown rustup target add ${{ matrix.target }} - - name: Configure cross-compilation + # ------------- AArch64 linker env (Ubuntu only) ------------- + - name: Configure AArch64 linker env + if: matrix.target == 'aarch64-unknown-linux-gnu' run: | - echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - echo "AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar" >> $GITHUB_ENV + echo "AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar" >> $GITHUB_ENV echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + # ------------- Cache ------------- - uses: actions/cache@v4.2.3 with: path: | @@ -64,18 +73,31 @@ jobs: target key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Build - run: cross build --release --target ${{ matrix.target }} + # ------------- Build ------------- + - name: Build project + shell: bash + run: | + set -e + cargo build --release --target ${{ matrix.target }} - - name: Package + # ------------- Package ------------- + - name: Package artifact shell: bash run: | + set -e cd target/${{ matrix.target }}/release + + # Strip to shrink size (skip on Windows) + if [[ "$RUNNER_OS" != "Windows" ]]; then + strip poscan-consensus${{ matrix.suffix }} || true + fi + tar czvf ../../../poscan-consensus-${{ matrix.name }}.tar.gz poscan-consensus${{ matrix.suffix }} - - name: Publish + # ------------- Publish ------------- + - name: Publish release assets uses: softprops/action-gh-release@v2.2.2 with: - files: poscan-consensus-* + files: poscan-consensus-${{ matrix.name }}.tar.gz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 22c9966c30f073c87f56100c499cd9d1d0cae831 Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 20:10:41 +0400 Subject: [PATCH 04/11] chore(ci): update rust toolchain to nightly-2023-05-20 in github actions workflow --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d810b332..94808a75 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -39,7 +39,7 @@ jobs: - uses: actions-rs/toolchain@v1.0.7 with: profile: minimal - toolchain: stable + toolchain: nightly-2023-05-20 override: true # ------------- Ubuntu-only prerequisites ------------- From 55766f3f81a69df0db6346eb9d8dd86d8416c149 Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 21:04:01 +0400 Subject: [PATCH 05/11] chore(ci): refactor rust workflow for improved caching and packaging --- .github/workflows/rust.yml | 81 +++++++++++++++----------------------- 1 file changed, 31 insertions(+), 50 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 94808a75..f959dcde 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -7,7 +7,9 @@ on: - "v*" jobs: + build: + strategy: fail-fast: false matrix: @@ -24,80 +26,59 @@ jobs: os: macos-latest name: macos suffix: '' - - target: x86_64-pc-windows-msvc - os: windows-latest - name: windows-x86_64 - suffix: '.exe' runs-on: ${{ matrix.os }} steps: - # ------------- Checkout ------------- - uses: actions/checkout@v4.2.2 - # ------------- Rust toolchain ------------- - uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: nightly-2023-05-20 override: true - # ------------- Ubuntu-only prerequisites ------------- - - name: Install AArch64 gcc/g++ - if: startsWith(matrix.os, 'ubuntu') - run: | - sudo apt-get update - sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + - name: Add WASM target + run: rustup target add wasm32-unknown-unknown - # ------------- Add compilation targets ------------- - - name: Add Rust targets - run: | - rustup target add wasm32-unknown-unknown - rustup target add ${{ matrix.target }} + - uses: actions/cache@v4.2.3 + with: + path: ~/.cargo/registry + key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - # ------------- AArch64 linker env (Ubuntu only) ------------- - - name: Configure AArch64 linker env - if: matrix.target == 'aarch64-unknown-linux-gnu' - run: | - echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - echo "AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar" >> $GITHUB_ENV - echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + - uses: actions/cache@v4.2.3 + with: + path: ~/.cargo/git + key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }} - # ------------- Cache ------------- - uses: actions/cache@v4.2.3 with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('**/Cargo.lock') }} + path: target + key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - # ------------- Build ------------- - - name: Build project - shell: bash - run: | - set -e - cargo build --release --target ${{ matrix.target }} + - uses: actions-rs/cargo@v1.0.3 + with: + command: build + args: '--release' - # ------------- Package ------------- - - name: Package artifact + - name: Package shell: bash run: | - set -e - cd target/${{ matrix.target }}/release - - # Strip to shrink size (skip on Windows) - if [[ "$RUNNER_OS" != "Windows" ]]; then - strip poscan-consensus${{ matrix.suffix }} || true - fi + cd target/release + tar czvf ../../poscan-consensus-${{ matrix.name }}.tar.gz poscan-consensus${{ matrix.suffix }} + cd - - tar czvf ../../../poscan-consensus-${{ matrix.name }}.tar.gz poscan-consensus${{ matrix.suffix }} + - name: Package WASM Artifact + if: matrix.name == 'linux-x86_64' + run: | + cd target/release/wbuild/poscan-runtime + tar czvf ../../../../poscan_runtime-wasm32-unknown-unknown.tar.gz poscan_runtime.compact.compressed.wasm - # ------------- Publish ------------- - - name: Publish release assets + - name: Publish uses: softprops/action-gh-release@v2.2.2 with: - files: poscan-consensus-${{ matrix.name }}.tar.gz + files: | + poscan-consensus-* + poscan_runtime-* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 110533fae5ad383a31f5714580d90441ff25253b Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 21:21:35 +0400 Subject: [PATCH 06/11] chore(ci): add cross-compilation support for aarch64 and update packaging paths --- .github/workflows/rust.yml | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index f959dcde..5a129d46 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -35,9 +35,21 @@ jobs: - uses: actions-rs/toolchain@v1.0.7 with: profile: minimal - toolchain: nightly-2023-05-20 + toolchain: nightly-2023-05-05 override: true + - name: Install system dependencies + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends libclang-dev cmake + + - name: Install cross-compilation tools + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: | + sudo apt-get install -y gcc-aarch64-linux-gnu + rustup target add aarch64-unknown-linux-gnu + - name: Add WASM target run: rustup target add wasm32-unknown-unknown @@ -59,20 +71,24 @@ jobs: - uses: actions-rs/cargo@v1.0.3 with: command: build - args: '--release' + args: '--release --target ${{ matrix.target }}' + env: + CC_aarch64_unknown_linux_gnu: aarch64-linux-gnu-gcc + CXX_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ + AR_aarch64_unknown_linux_gnu: aarch64-linux-gnu-ar - name: Package shell: bash run: | - cd target/release - tar czvf ../../poscan-consensus-${{ matrix.name }}.tar.gz poscan-consensus${{ matrix.suffix }} + cd target/${{ matrix.target }}/release + tar czvf ../../../poscan-consensus-${{ matrix.name }}.tar.gz poscan-consensus${{ matrix.suffix }} cd - - name: Package WASM Artifact if: matrix.name == 'linux-x86_64' run: | - cd target/release/wbuild/poscan-runtime - tar czvf ../../../../poscan_runtime-wasm32-unknown-unknown.tar.gz poscan_runtime.compact.compressed.wasm + cd target/${{ matrix.target }}/release/wbuild/poscan-runtime + tar czvf ../../../../../poscan_runtime-wasm32-unknown-unknown.tar.gz poscan_runtime.compact.compressed.wasm - name: Publish uses: softprops/action-gh-release@v2.2.2 From 93eec53f1f3b6cf11e785aedb6352f2afa3dca3d Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 21:31:58 +0400 Subject: [PATCH 07/11] chore(ci): add separate upload steps for build and wasm artifacts in github actions --- .github/workflows/rust.yml | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 5a129d46..d3f21cd5 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -9,7 +9,6 @@ on: jobs: build: - strategy: fail-fast: false matrix: @@ -90,7 +89,31 @@ jobs: cd target/${{ matrix.target }}/release/wbuild/poscan-runtime tar czvf ../../../../../poscan_runtime-wasm32-unknown-unknown.tar.gz poscan_runtime.compact.compressed.wasm - - name: Publish + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: poscan-consensus-${{ matrix.name }} + path: poscan-consensus-${{ matrix.name }}.tar.gz + retention-days: 1 + + - name: Upload WASM artifacts + if: matrix.name == 'linux-x86_64' + uses: actions/upload-artifact@v4 + with: + name: poscan-runtime-wasm + path: poscan_runtime-wasm32-unknown-unknown.tar.gz + retention-days: 1 + + release: + needs: build + runs-on: ubuntu-latest + steps: + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + merge-multiple: true + + - name: Publish release uses: softprops/action-gh-release@v2.2.2 with: files: | From 6133168932ed113494589f1bf579f926629cf125 Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 21:35:31 +0400 Subject: [PATCH 08/11] chore(ci): update rust workflow to install additional compilers and targets --- .github/workflows/rust.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d3f21cd5..b0cb626f 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -41,16 +41,18 @@ jobs: if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update - sudo apt-get install -y --no-install-recommends libclang-dev cmake + sudo apt-get install -y --no-install-recommends libclang-dev cmake g++ - name: Install cross-compilation tools if: matrix.target == 'aarch64-unknown-linux-gnu' run: | - sudo apt-get install -y gcc-aarch64-linux-gnu + sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu rustup target add aarch64-unknown-linux-gnu - - name: Add WASM target - run: rustup target add wasm32-unknown-unknown + - name: Add targets + run: | + rustup target add wasm32-unknown-unknown + rustup target add ${{ matrix.target }} - uses: actions/cache@v4.2.3 with: @@ -75,6 +77,7 @@ jobs: CC_aarch64_unknown_linux_gnu: aarch64-linux-gnu-gcc CXX_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ AR_aarch64_unknown_linux_gnu: aarch64-linux-gnu-ar + CMAKE_CXX_COMPILER_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ - name: Package shell: bash From 899beb9e78372939749310d99ac745446ed70a89 Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 21:56:26 +0400 Subject: [PATCH 09/11] chore(ci): update rust workflow with specific macos version and improved aarch64 cross-compilation setup --- .github/workflows/rust.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b0cb626f..d96d5f11 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -22,7 +22,7 @@ jobs: name: linux-aarch64 suffix: '' - target: x86_64-apple-darwin - os: macos-latest + os: macos-13 name: macos suffix: '' @@ -42,11 +42,13 @@ jobs: run: | sudo apt-get update sudo apt-get install -y --no-install-recommends libclang-dev cmake g++ + sudo ln -sf /usr/bin/g++ /usr/bin/c++ - name: Install cross-compilation tools if: matrix.target == 'aarch64-unknown-linux-gnu' run: | sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + sudo ln -sf /usr/bin/aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-c++ rustup target add aarch64-unknown-linux-gnu - name: Add targets @@ -78,6 +80,8 @@ jobs: CXX_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ AR_aarch64_unknown_linux_gnu: aarch64-linux-gnu-ar CMAKE_CXX_COMPILER_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc + RUSTFLAGS_aarch64_unknown_linux_gnu: -C linker=aarch64-linux-gnu-gcc - name: Package shell: bash From 7db3569f584b9f2ebbf4e438d776108518279524 Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 22:35:14 +0400 Subject: [PATCH 10/11] chore(ci): add rustfmt component and update environment variables in rust workflow --- .github/workflows/rust.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d96d5f11..a94fed44 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -36,6 +36,7 @@ jobs: profile: minimal toolchain: nightly-2023-05-05 override: true + components: rustfmt - name: Install system dependencies if: matrix.os == 'ubuntu-latest' @@ -82,6 +83,9 @@ jobs: CMAKE_CXX_COMPILER_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc RUSTFLAGS_aarch64_unknown_linux_gnu: -C linker=aarch64-linux-gnu-gcc + CXXFLAGS: -std=c++17 + CXXFLAGS_aarch64_unknown_linux_gnu: -std=c++17 + ROCKSDB_DISABLE_JEMALLOC: 1 - name: Package shell: bash From 0aa454404b3715c6196f428a52da5bd692c8451e Mon Sep 17 00:00:00 2001 From: Mikhail Fedosov Date: Sun, 1 Jun 2025 22:48:48 +0400 Subject: [PATCH 11/11] chore(workflow): add cstdint and cinttypes includes to CXXFLAGS in rust.yml --- .github/workflows/rust.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a94fed44..2ae599e9 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -83,8 +83,8 @@ jobs: CMAKE_CXX_COMPILER_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc RUSTFLAGS_aarch64_unknown_linux_gnu: -C linker=aarch64-linux-gnu-gcc - CXXFLAGS: -std=c++17 - CXXFLAGS_aarch64_unknown_linux_gnu: -std=c++17 + CXXFLAGS: -std=c++17 -include cstdint -include cinttypes + CXXFLAGS_aarch64_unknown_linux_gnu: -std=c++17 -include cstdint -include cinttypes ROCKSDB_DISABLE_JEMALLOC: 1 - name: Package