Release v0.1.15 (#141)

* remove current zcash

* Squashed 'depend/zcash/' content from commit 889162ccf

git-subtree-dir: depend/zcash
git-subtree-split: 889162ccf3e0c2de4fda7aceec35dc3769c19131

* apply patch

* update dependencies
This commit is contained in:
Alfredo Garcia 2024-04-17 15:41:59 -03:00 committed by GitHub
parent cf9e0d26cf
commit 084da225db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
84 changed files with 2215 additions and 4950 deletions

View File

@ -8,6 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] - ReleaseDate
## [0.1.15] - 2024-04-11
### Changed
- Update `depend/zcash` to version 5.8.0 which includes updated dependencies
- Update other dependencies to match Zebra
- Restore Windows support
## [0.1.14] - 2023-10-18
@ -95,8 +101,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated `bindgen` to a non yanked version
<!-- next-url -->
[Unreleased]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.14...HEAD
[0.1.14]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.14...v0.1.14
[Unreleased]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.15...HEAD
[0.1.15]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.14...v0.1.15
[0.1.14]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.13...v0.1.14
[0.1.13]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.12...v0.1.13
[0.1.12]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.11...v0.1.12

56
Cargo.lock generated
View File

@ -114,7 +114,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
"syn 2.0.35",
"syn 2.0.58",
"which",
]
@ -412,9 +412,9 @@ dependencies = [
[[package]]
name = "cxx"
version = "1.0.107"
version = "1.0.113"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbe98ba1789d56fb3db3bee5e032774d4f421b685de7ba703643584ba24effbe"
checksum = "048948e14bc2c2652ec606c8e3bb913407f0187288fb351a0b2d972beaf12070"
dependencies = [
"cc",
"cxxbridge-flags",
@ -431,24 +431,24 @@ dependencies = [
"codespan-reporting",
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
name = "cxxbridge-flags"
version = "1.0.107"
version = "1.0.113"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20888d9e1d2298e2ff473cee30efe7d5036e437857ab68bbfea84c74dba91da2"
checksum = "af40b0467c68d3d9fb7550ef984edc8ad47252f703ef0f1f2d1052e0e4af8793"
[[package]]
name = "cxxbridge-macro"
version = "1.0.107"
version = "1.0.113"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fa16a70dd58129e4dfffdff535fb1bce66673f7bbeec4a5a1765a504e1ccd84"
checksum = "7743446286141c9f6d4497c493c01234eb848e14d2e20866ae9811eae0630cb9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
@ -853,7 +853,7 @@ checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
@ -1041,14 +1041,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
dependencies = [
"proc-macro2",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
name = "proc-macro2"
version = "1.0.67"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
dependencies = [
"unicode-ident",
]
@ -1081,9 +1081,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
[[package]]
name = "quote"
version = "1.0.33"
version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2",
]
@ -1326,7 +1326,7 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
@ -1377,9 +1377,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.35"
version = "2.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59bf04c28bee9043ed9ea1e41afc0552288d3aba9c6efdd78903b802926f4879"
checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
dependencies = [
"proc-macro2",
"quote",
@ -1431,7 +1431,7 @@ checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
@ -1469,7 +1469,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
@ -1584,7 +1584,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
"wasm-bindgen-shared",
]
@ -1606,7 +1606,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@ -1788,9 +1788,9 @@ dependencies = [
[[package]]
name = "zcash_primitives"
version = "0.13.0-rc.1"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0cc4391d9325e0a51a7cbff02b5c4b5472d66087bd9c903ddb12dea7ec22f3e0"
checksum = "d17e4c94ca8d69d2fcf2be97522da5732a580eb2125cda3b150761952f8df8e6"
dependencies = [
"aes",
"bip0039",
@ -1825,9 +1825,9 @@ dependencies = [
[[package]]
name = "zcash_proofs"
version = "0.13.0-rc.1"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48f22eff3bdc382327ef28f809024ddc89ec6d903ba71be629b2cbea34afdda2"
checksum = "df0c99f65a840ff256c106b28d67d702d9759d206112473d4982c92003262406"
dependencies = [
"bellman",
"blake2b_simd",
@ -1898,7 +1898,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]
[[package]]
@ -1918,5 +1918,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.35",
"syn 2.0.58",
]

View File

@ -57,7 +57,7 @@ blake2s_simd = "1"
bls12_381 = "0.8"
byteorder = "1"
crossbeam-channel = "0.5"
cxx = { version = "=1.0.107", features = ["c++17"] }
cxx = { version = "=1.0.113", features = ["c++17"] }
group = "0.13"
incrementalmerkletree = "0.5"
jubjub = "0.10"
@ -72,8 +72,8 @@ tracing = "0.1"
zcash_address = "0.3"
zcash_encoding = "0.2"
zcash_note_encryption = "0.4"
zcash_primitives = { version = "=0.13.0-rc.1", features = ["temporary-zcashd", "transparent-inputs"] }
zcash_proofs = { version = "=0.13.0-rc.1", features = ["directories"] }
zcash_primitives = { version = "=0.13.0", features = ["temporary-zcashd", "transparent-inputs"] }
zcash_proofs = { version = "=0.13.0", features = ["directories"] }
bridgetree = "0.4"
rand = "0.8"
@ -100,7 +100,7 @@ syn = { version = "1.0.109", features = ["full", "printing"] }
hex = ">= 0.4.3"
lazy_static = "1.4.0"
incrementalmerkletree = { version = "0.5", features = ["test-dependencies"] }
zcash_primitives = { version = "=0.13.0-rc.1", features = ["temporary-zcashd", "transparent-inputs", "test-dependencies"] }
zcash_primitives = { version = "=0.13.0", features = ["temporary-zcashd", "transparent-inputs", "test-dependencies"] }
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"

View File

@ -1,6 +1,9 @@
name: Audits
on: [push, pull_request]
on:
pull_request:
push:
branches: master
permissions:
contents: read
@ -10,7 +13,7 @@ jobs:
name: Vet Rust dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: toolchain
- run: rustup override set ${{steps.toolchain.outputs.name}}
@ -21,7 +24,7 @@ jobs:
name: Check licenses
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check licenses

View File

@ -13,7 +13,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: toolchain
- run: rustup override set ${{steps.toolchain.outputs.name}}
- name: Setup mdBook
uses: peaceiris/actions-mdbook@v1

View File

@ -1,122 +0,0 @@
name: Build
on: [push, pull_request]
jobs:
build:
name: Tier ${{ matrix.tier }} platform ${{ matrix.platform }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.tier == 3 }}
strategy:
matrix:
include:
- name: ubuntu-20.04
tier: 1
platform: Ubuntu 20.04
os: ubuntu-20.04
- name: ubuntu-22.04
tier: 3
platform: Ubuntu 22.04
os: ubuntu-22.04
- name: macos-11
tier: 3
platform: macOS Big Sur 11
os: macos-11
brew_deps: >
autoconf
automake
coreutils
libtool
pkgconfig
- name: mingw32
tier: 3
platform: Windows (64-bit MinGW)
os: ubuntu-latest
cross_deps: >
mingw-w64
host: HOST=x86_64-w64-mingw32
- name: aarch64-linux
tier: 3
platform: ARM64 Linux
os: ubuntu-latest
cross_deps: >
g++-aarch64-linux-gnu
host: HOST=aarch64-linux-gnu
steps:
- uses: actions/checkout@v3
- name: Install Homebrew build dependencies
if: matrix.brew_deps != ''
run: brew install ${{ matrix.brew_deps }}
- name: Install cross-compilation build dependencies
if: matrix.cross_deps != ''
run: sudo apt update && sudo apt install ${{ matrix.cross_deps }}
- name: Configure MinGW to use POSIX variant
if: matrix.name == 'mingw32'
run: |
sudo update-alternatives --set x86_64-w64-mingw32-gcc $(update-alternatives --query x86_64-w64-mingw32-gcc | grep Alternative | grep posix | cut -d' ' -f2)
sudo update-alternatives --set x86_64-w64-mingw32-g++ $(update-alternatives --query x86_64-w64-mingw32-g++ | grep Alternative | grep posix | cut -d' ' -f2)
- name: Cache built dependencies
uses: actions/cache@v3
with:
path: depends/built
key: ${{ matrix.name }}-built-${{ hashFiles('depends/Makefile', 'depends/funcs.mk') }}-${{ hashFiles('depends/packages/*.mk', 'depends/patches/**/*') }}
restore-keys: |
${{ matrix.name }}-built-${{ hashFiles('depends/Makefile', 'depends/funcs.mk') }}-
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: bash
run: echo "timestamp=$(date +'%Y-%m-%d-%H;%M;%S')" >> "$GITHUB_OUTPUT"
- name: Cache ccache files
uses: actions/cache@v3
with:
path: ~/.cache/ccache
key: ${{ matrix.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
restore-keys: |
${{ matrix.name }}-ccache-
- name: Get the number of available processing cores
id: nproc
shell: bash
run: echo "count=$(nproc 2> /dev/null || sysctl -n hw.logicalcpu)" >> "$GITHUB_OUTPUT"
- name: Build zcashd
id: build
run: >
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"
- name: Build zcashd with libraries enabled
if: ${{ always() && steps.build.outcome == 'success' }}
run: >
CONFIGURE_FLAGS="--with-libs"
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"
- name: Build zcashd with wallet disabled
if: ${{ always() && steps.build.outcome == 'success' }}
run: >
CONFIGURE_FLAGS="--disable-wallet"
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"
- name: Build zcashd with mining disabled
if: ${{ always() && steps.build.outcome == 'success' }}
run: >
CONFIGURE_FLAGS="--disable-mining"
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"

284
depend/zcash/.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,284 @@
name: CI
on:
pull_request:
push:
branches: master
jobs:
matrices:
name: Define CI matrix
runs-on: ubuntu-latest
strategy:
matrix:
cfg:
- data:
- name: ubuntu-20.04
tier: 1
platform: Ubuntu 20.04
build_os: ubuntu-20.04-8cores
test_os: ubuntu-20.04
- name: ubuntu-22.04
tier: 3
platform: Ubuntu 22.04
build_os: ubuntu-22.04-8cores
test_os: ubuntu-22.04
- name: macos-11
tier: 3
platform: macOS Big Sur 11
build_os: macos-11
test_os: macos-11
brew_deps: >
autoconf
automake
coreutils
libtool
pkgconfig
- name: mingw32
tier: 3
platform: Windows (64-bit MinGW)
build_os: ubuntu-22.04-8cores
test_os: windows-latest
cross_deps: >
mingw-w64
host: HOST=x86_64-w64-mingw32
file_ext: ".exe"
- name: aarch64-linux
tier: 3
platform: ARM64 Linux
build_os: ubuntu-22.04-8cores
cross_deps: >
g++-aarch64-linux-gnu
host: HOST=aarch64-linux-gnu
outputs:
build_matrix: ${{ steps.set-matrices.outputs.build_matrix }}
test_matrix: ${{ steps.set-matrices.outputs.test_matrix }}
test_names: ${{ steps.set-matrices.outputs.test_names }}
steps:
- id: set-matrices
env:
CFG: ${{ toJSON(matrix.cfg) }}
run: |
jq -r -n 'env.CFG | fromjson | @json "build_matrix=\(.data)"' >> $GITHUB_OUTPUT
jq -r -n 'env.CFG | fromjson | [.data[] | select(.test_os)] | @json "test_matrix=\(.)"' >> $GITHUB_OUTPUT
jq -r -n 'env.CFG | fromjson | [.data[] | select(.test_os) | .name] | @json "test_names=\(.)"' >> $GITHUB_OUTPUT
build:
name: Build tier ${{ matrix.tier }} platform ${{ matrix.platform }}
needs: matrices
runs-on: ${{ matrix.build_os }}
continue-on-error: ${{ matrix.tier == 3 }}
strategy:
matrix:
include: ${{ fromJson(needs.matrices.outputs.build_matrix) }}
steps:
- uses: actions/checkout@v4
- name: Install Homebrew build dependencies
if: matrix.brew_deps != ''
run: brew install ${{ matrix.brew_deps }}
- name: Install cross-compilation build dependencies
if: matrix.cross_deps != ''
run: sudo apt update && sudo apt install ${{ matrix.cross_deps }}
- name: Configure MinGW to use POSIX variant
if: matrix.name == 'mingw32'
run: |
sudo update-alternatives --set x86_64-w64-mingw32-gcc $(update-alternatives --query x86_64-w64-mingw32-gcc | grep Alternative | grep posix | cut -d' ' -f2)
sudo update-alternatives --set x86_64-w64-mingw32-g++ $(update-alternatives --query x86_64-w64-mingw32-g++ | grep Alternative | grep posix | cut -d' ' -f2)
- name: Cache built dependencies
uses: actions/cache@v3
with:
path: depends/built
key: ${{ matrix.name }}-built-${{ hashFiles('depends/Makefile', 'depends/funcs.mk') }}-${{ hashFiles('depends/packages/*.mk', 'depends/patches/**/*') }}
restore-keys: |
${{ matrix.name }}-built-${{ hashFiles('depends/Makefile', 'depends/funcs.mk') }}-
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: bash
run: echo "timestamp=$(date +'%Y-%m-%d-%H;%M;%S')" >> "$GITHUB_OUTPUT"
- name: Cache ccache files
uses: actions/cache@v3
with:
path: ${{ runner.os == 'macOS' && '~/Library/Caches/ccache' || '~/.cache/ccache' }}
key: ${{ matrix.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
restore-keys: |
${{ matrix.name }}-ccache-
- name: Get the number of available processing cores
id: nproc
shell: bash
run: echo "count=$(nproc 2> /dev/null || sysctl -n hw.logicalcpu)" >> "$GITHUB_OUTPUT"
- name: Build zcashd
id: build
run: >
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"
- name: Upload zcashd artifact
uses: actions/upload-artifact@v3
with:
name: zcashd-${{ matrix.name }}
path: |
${{ format('src/zcash-cli{0}', matrix.file_ext) }}
${{ format('src/zcashd{0}', matrix.file_ext) }}
- name: Upload zcash-btest artifact
if: matrix.test_os != ''
uses: actions/upload-artifact@v3
with:
name: zcash-btest-${{ matrix.name }}
path: ${{ format('src/test/test_bitcoin{0}', matrix.file_ext) }}
- name: Upload zcash-gtest artifact
if: matrix.test_os != ''
uses: actions/upload-artifact@v3
with:
name: zcash-gtest-${{ matrix.name }}
path: ${{ format('src/zcash-gtest{0}', matrix.file_ext) }}
bitrot:
name: Bitrot check tier ${{ matrix.tier }} platform ${{ matrix.platform }}
needs: [matrices, build]
runs-on: ${{ matrix.build_os }}
continue-on-error: ${{ matrix.tier == 3 }}
strategy:
matrix:
include: ${{ fromJson(needs.matrices.outputs.build_matrix) }}
steps:
- uses: actions/checkout@v4
- name: Install Homebrew build dependencies
if: matrix.brew_deps != ''
run: brew install ${{ matrix.brew_deps }}
- name: Install cross-compilation build dependencies
if: matrix.cross_deps != ''
run: sudo apt update && sudo apt install ${{ matrix.cross_deps }}
- name: Configure MinGW to use POSIX variant
if: matrix.name == 'mingw32'
run: |
sudo update-alternatives --set x86_64-w64-mingw32-gcc $(update-alternatives --query x86_64-w64-mingw32-gcc | grep Alternative | grep posix | cut -d' ' -f2)
sudo update-alternatives --set x86_64-w64-mingw32-g++ $(update-alternatives --query x86_64-w64-mingw32-g++ | grep Alternative | grep posix | cut -d' ' -f2)
- name: Cache built dependencies
uses: actions/cache@v3
with:
path: depends/built
key: ${{ matrix.name }}-built-${{ hashFiles('depends/Makefile', 'depends/funcs.mk') }}-${{ hashFiles('depends/packages/*.mk', 'depends/patches/**/*') }}
restore-keys: |
${{ matrix.name }}-built-${{ hashFiles('depends/Makefile', 'depends/funcs.mk') }}-
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: bash
run: echo "timestamp=$(date +'%Y-%m-%d-%H;%M;%S')" >> "$GITHUB_OUTPUT"
- name: Cache ccache files
uses: actions/cache@v3
with:
path: ${{ runner.os == 'macOS' && '~/Library/Caches/ccache' || '~/.cache/ccache' }}
key: ${{ matrix.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
restore-keys: |
${{ matrix.name }}-ccache-
- name: Get the number of available processing cores
id: nproc
shell: bash
run: echo "count=$(nproc 2> /dev/null || sysctl -n hw.logicalcpu)" >> "$GITHUB_OUTPUT"
- name: Build zcashd with libraries enabled
run: >
CONFIGURE_FLAGS="--with-libs"
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"
- name: Build zcashd with wallet disabled
run: >
CONFIGURE_FLAGS="--disable-wallet"
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"
- name: Build zcashd with mining disabled
run: >
CONFIGURE_FLAGS="--disable-mining"
${{ matrix.host }}
./zcutil/build.sh
-j"${{ steps.nproc.outputs.count }}"
test-btest:
name: Boost.Test tier ${{ matrix.tier }} platform ${{ matrix.platform }}
needs: [matrices, build]
runs-on: ${{ matrix.test_os }}
continue-on-error: ${{ matrix.tier != 1 }}
strategy:
matrix:
include: ${{ fromJson(needs.matrices.outputs.test_matrix) }}
steps:
- name: Download zcash-btest artifact
uses: actions/download-artifact@v3
with:
name: zcash-btest-${{ matrix.name }}
- name: Make artifact executable
if: runner.os != 'Windows'
run: chmod +x ${{ format('./test_bitcoin{0}', matrix.file_ext) }}
- name: Run Boost.Tests
run: ${{ format('./test_bitcoin{0}', matrix.file_ext) }} -p
test-gtest:
name: GoogleTest tier ${{ matrix.tier }} platform ${{ matrix.platform }} - shard ${{ matrix.gtest_shards }}
needs: [matrices, build]
runs-on: ${{ matrix.test_os }}
continue-on-error: ${{ matrix.tier != 1 }}
strategy:
matrix:
name: ${{ fromJson(needs.matrices.outputs.test_names) }}
shard_index: [0, 1]
include: ${{ fromJson(needs.matrices.outputs.test_matrix) }}
steps:
- name: Download zcash-gtest artifact
uses: actions/download-artifact@v3
with:
name: zcash-gtest-${{ matrix.name }}
- name: Make artifact executable
if: runner.os != 'Windows'
run: chmod +x ${{ format('./zcash-gtest{0}', matrix.file_ext) }}
- name: Get environment variables
id: env
shell: bash
run: |
echo "appdata=$APPDATA" >> "$GITHUB_OUTPUT"
echo "home=$HOME" >> "$GITHUB_OUTPUT"
- name: Download Sprout parameters
uses: carlosperate/download-file-action@v2.0.1
with:
file-url: "https://download.z.cash/downloads/sprout-groth16.params"
location: >
${{
runner.os == 'Windows' && steps.env.outputs.appdata || steps.env.outputs.home
}}${{
runner.os == 'macOS' && '/Library/Application Support/' || '/'
}}${{
runner.os == 'Linux' && '.zcash-params' || 'ZcashParams'
}}
- name: Run GoogleTests
env:
GTEST_TOTAL_SHARDS: 2
GTEST_SHARD_INDEX: ${{ matrix.shard_index }}
run: ${{ format('./zcash-gtest{0}', matrix.file_ext) }}

View File

@ -8,7 +8,7 @@ jobs:
name: Scripted diffs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
@ -19,7 +19,7 @@ jobs:
name: General
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo python3 -m pip install yq
@ -66,7 +66,7 @@ jobs:
name: Python
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo python3 -m pip install pyflakes
@ -82,7 +82,7 @@ jobs:
name: Clippy (MSRV)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Run clippy
uses: actions-rs/clippy-check@v1
with:
@ -94,5 +94,5 @@ jobs:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: cargo fmt -- --check

669
depend/zcash/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
Zcash 5.7.0
Zcash 5.8.0
<img align="right" width="120" height="80" src="doc/imgs/logo.png">
===========

View File

@ -1,7 +1,7 @@
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 5)
define(_CLIENT_VERSION_MINOR, 7)
define(_CLIENT_VERSION_MINOR, 8)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_BUILD, 50)
define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))

View File

@ -1,42 +0,0 @@
ARG FROMBASEOS
ARG FROMBASEOS_BUILD_TAG=latest
FROM electriccoinco/zcashd-build-$FROMBASEOS$FROMBASEOS_BUILD_TAG
ARG DUMBINIT_VERSION=1.2.2
RUN wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMBINIT_VERSION}/dumb-init_${DUMBINIT_VERSION}_amd64
RUN chmod +x /usr/bin/dumb-init
# Buildbot user
ARG BUILDBOT_USER=zcbbworker
ARG BUILDBOT_UID=2001
RUN useradd --home-dir /home/$BUILDBOT_USER \
--shell /bin/bash \
--create-home \
--uid $BUILDBOT_UID\
$BUILDBOT_USER
USER $BUILDBOT_USER
WORKDIR /home/$BUILDBOT_USER
ADD bbworker-requirements.txt requirements.txt
RUN python -m venv venv \
&& . venv/bin/activate \
&& python -m pip install wheel \
&& python -m pip install -r requirements.txt
# Buildbot worker
ARG BASEOS
ENV BUILDBOT_WORKER_NAME=$BASEOS-docker
ENV BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
ENV BUILDBOT_MASTER_HOST=dev-ci.z.cash
ENV BUILDBOT_MASTER_PORT=9899
WORKDIR /home/$BUILDBOT_USER
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
&& echo "OS: $BASEOS" > $BUILDBOT_WORKER_NAME/info/host
ADD bbworker-buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]

View File

@ -1,35 +0,0 @@
FROM electriccoinco/zcashd-build-arch
# Buildbot user
ARG BUILDBOT_USER=zcbbworker
ARG BUILDBOT_UID=2001
RUN useradd --home-dir /home/$BUILDBOT_USER \
--shell /bin/bash \
--create-home \
--uid $BUILDBOT_UID\
$BUILDBOT_USER
USER $BUILDBOT_USER
WORKDIR /home/$BUILDBOT_USER
ADD bbworker-requirements.txt requirements.txt
RUN python -m venv venv \
&& . venv/bin/activate \
&& python -m pip install wheel \
&& python -m pip install -r requirements.txt
# Buildbot worker
ARG BUILDBOT_WORKER_NAME=arch-docker
ARG BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
ARG BUILDBOT_MASTER_HOST=dev-ci.z.cash
ARG BUILDBOT_MASTER_PORT=9899
WORKDIR /home/$BUILDBOT_USER
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
&& echo "OS: Centos 8" > $BUILDBOT_WORKER_NAME/info/host
ADD bbworker-buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]

View File

@ -1,30 +0,0 @@
ARG FROMBASEOS
ARG FROMBASEOS_BUILD_TAG
FROM $FROMBASEOS:$FROMBASEOS_BUILD_TAG
ARG DEBIAN_FRONTEND=noninteractive
ADD apt-package-list.txt /tmp/apt-package-list.txt
RUN apt-get update \
&& apt-get install -y $(tr "\n" " " < /tmp/apt-package-list.txt) \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 1
ARG PYTHONVERSION=3.7.5
RUN apt-get install -y \
build-essential \
zlib1g-dev \
libncurses5-dev \
libgdbm-dev \
libnss3-dev \
libssl-dev \
libreadline-dev \
libffi-dev \
curl
WORKDIR /tmp
RUN curl https://www.python.org/ftp/python/$PYTHONVERSION/Python-$PYTHONVERSION.tar.xz -o python.tar.xz \
&& tar -xf python.tar.xz \
&& cd Python-$PYTHONVERSION \
&& ./configure --enable-optimizations \
&& make -j 8 \
&& make altinstall \
&& update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 1
RUN update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.7 1

View File

@ -1,9 +0,0 @@
ARG FROMBASEOS
ARG FROMBASEOS_BUILD_TAG
FROM $FROMBASEOS:$FROMBASEOS_BUILD_TAG
ARG DEBIAN_FRONTEND=noninteractive
ADD apt-package-list.txt /tmp/apt-package-list.txt
RUN apt-get update \
&& apt-get install -y $(tr "\n" " " < /tmp/apt-package-list.txt) \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 1

View File

@ -1,23 +0,0 @@
ARG ARCHLINUX_TAG
FROM archlinux:$ARCHLINUX_TAG
RUN pacman -Syyu --noconfirm \
&& pacman -S --noconfirm \
base-devel \
git \
python3 \
python-pip \
wget
RUN wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64
RUN chmod +x /usr/bin/dumb-init
RUN python -m pip install virtualenv
# AUR for libtinfo5 Source: https://dev.to/cloudx/testing-our-package-build-in-the-docker-world-34p0
RUN useradd builduser -m \
&& passwd -d builduser \
&& cd /home/builduser \
&& git clone "https://aur.archlinux.org/ncurses5-compat-libs.git" ncurses5-compat-libs \
&& chown builduser -R ncurses5-compat-libs \
&& (printf 'builduser ALL=(ALL) ALL\n' | tee -a /etc/sudoers) \
&& sudo -u builduser bash -c 'gpg --keyserver pool.sks-keyservers.net --recv-keys 702353E0F7E48EDB' \
&& sudo -u builduser bash -c 'cd ~/ncurses5-compat-libs && makepkg -si --noconfirm'

View File

@ -1,8 +0,0 @@
ARG FROMBASEOS
ARG FROMBASEOS_BUILD_TAG=latest
FROM electriccoinco/zcashd-build-$FROMBASEOS$FROMBASEOS_BUILD_TAG
RUN useradd -ms /bin/bash -U debian
USER debian:debian
WORKDIR /home/debian
CMD ["sleep", "infinity"]

View File

@ -1,41 +0,0 @@
# zcashd ci Docker images
These Dockerfiles can be used to build zcashd.
The current objective is to build a base image for each distribution that includes the system packages to build zcashd. From `build` images, more targeted images are created.
The process is meant to be automated, but an example `docker-build.sh` script is included.
## build images
`apt-package-list.txt` contains the required packages for debian based systems.
`Dockerfile-build.apt` uses that file, and some build time arguments, to build apt based build images.
Currently available images are hosted at
https://hub.docker.com/r/electriccoinco/zcashd-build/tags
## gitian images
`Dockerfile-gitian.apt` uses the build images to generate images for use with [gitian-builder](https://github.com/devrandom/gitian-builder)
Currently available images are hosted at https://hub.docker.com/r/electriccoinco/zcashd-gitian/tags
## bbworker images
`Dockerfile-bbworker.apt` uses the build images for use with [buildbot](https://buildbot.net)
- bbworker-buildbot.tac is a required worker boot file (most is overridden at instancitation)
- bbworker-requirements.txt is the python package requirements for the buildbot worker
Currently available images are hosted at https://hub.docker.com/r/electriccoinco/zcashd-bbworker/tags
### Stand alone, best effort images
Additional buildbot workers for Centos8 and Arch.
- Dockerfile-bbworker.arch

View File

@ -1,23 +0,0 @@
autoconf
bsdmainutils
build-essential
cmake
curl
g++-aarch64-linux-gnu
git
lcov
libcap-dev
libffi-dev
libtinfo5
libtool
libssl-dev
libz-dev
libbz2-dev
mingw-w64
pkg-config
python3
python3-dev
python3-venv
valgrind
wget
zstd

View File

@ -1,40 +0,0 @@
import fnmatch
import os
import sys
from twisted.application import service
from twisted.python.log import FileLogObserver
from twisted.python.log import ILogObserver
from buildbot_worker.bot import Worker
# setup worker
basedir = os.environ.get("BUILDBOT_BASEDIR",
os.path.abspath(os.path.dirname(__file__)))
application = service.Application('buildbot-worker')
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
# and worker on the same process!
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
workername = os.environ.get("WORKERNAME", 'docker')
passwd = os.environ.get("WORKERPASS")
# delete the password from the environ so that it is not leaked in the log
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
for name in list(os.environ.keys()):
for toremove in blacklist:
if fnmatch.fnmatch(name, toremove):
del os.environ[name]
keepalive = 600
umask = None
maxdelay = 300
allow_shutdown = None
maxretries = 10
s = Worker(buildmaster_host, port, workername, passwd, basedir,
keepalive, umask=umask, maxdelay=maxdelay,
allow_shutdown=allow_shutdown, maxRetries=maxretries)
s.setServiceParent(application)

View File

@ -1,9 +0,0 @@
buildbot-worker
pyblake2
pyflakes
pyutil
pyzmq
requests
simplejson
twisted[tls]
wheel

View File

@ -1,56 +0,0 @@
#!/usr/bin/env bash
export LC_ALL=C
set -exo pipefail
# Debian 9
docker build . -f Dockerfile-build-python.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=9 -t electriccoinco/zcashd-build-debian9
docker push electriccoinco/zcashd-build-debian9
docker build . -f Dockerfile-bbworker.apt --build-arg BASEOS=debian --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=9 -t electriccoinco/zcashd-bbworker-debian9
docker push electriccoinco/zcashd-bbworker-debian9
# Debian 10
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=10 -t electriccoinco/zcashd-build-debian10
docker push electriccoinco/zcashd-build-debian10
docker build . -f Dockerfile-gitian.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=10 -t electriccoinco/zcashd-gitian-debian10
docker push electriccoinco/zcashd-gitian-debian10
docker build . -f Dockerfile-bbworker.apt --build-arg BASEOS=debian --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=10 -t electriccoinco/zcashd-bbworker-debian10
docker push electriccoinco/zcashd-bbworker-debian10
# Debian 11
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=bullseye -t electriccoinco/zcashd-build-debian11
docker push electriccoinco/zcashd-build-debian11
docker build . -f Dockerfile-gitian.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=bullseye -t electriccoinco/zcashd-gitian-debian11
docker push electriccoinco/zcashd-gitian-debian11
docker build . -f Dockerfile-bbworker.apt --build-arg BASEOS=debian --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=bullseye -t electriccoinco/zcashd-bbworker-debian11
docker push electriccoinco/zcashd-bbworker-debian11
# Ubuntu 16.04
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=16.04 -t electriccoinco/zcashd-build-ubuntu1604
docker push electriccoinco/zcashd-build-ubuntu1604
docker build . -f Dockerfile-gitian.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=1604 -t electriccoinco/zcashd-gitian-ubuntu1604
docker push electriccoinco/zcashd-gitian-ubuntu1604
docker build . -f Dockerfile-bbworker.apt --build-arg BASEOS=ubuntu --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=1604 -t electriccoinco/zcashd-bbworker-ubuntu1604
docker push electriccoinco/zcashd-bbworker-ubuntu1604
# Ubuntu 18.04
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=18.04 -t electriccoinco/zcashd-build-ubuntu1804
docker push electriccoinco/zcashd-build-ubuntu1804
docker build . -f Dockerfile-gitian.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=1804 -t electriccoinco/zcashd-gitian-ubuntu1804
docker push electriccoinco/zcashd-gitian-ubuntu1804
docker build . -f Dockerfile-bbworker.apt --build-arg BASEOS=ubuntu --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=1804 -t electriccoinco/zcashd-bbworker-ubuntu1804
docker push electriccoinco/zcashd-bbworker-ubuntu1804
# Ubuntu 20.04
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=20.04 -t electriccoinco/zcashd-build-ubuntu2004
docker push electriccoinco/zcashd-build-ubuntu2004
docker build . -f Dockerfile-gitian.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=2004 -t electriccoinco/zcashd-gitian-ubuntu2004
docker push electriccoinco/zcashd-gitian-ubuntu2004
docker build . -f Dockerfile-bbworker.apt --build-arg BASEOS=ubuntu --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=2004 -t electriccoinco/zcashd-bbworker-ubuntu2004
docker push electriccoinco/zcashd-bbworker-ubuntu2004
# Arch 20200908
docker build . -f Dockerfile-build.arch --build-arg ARCHLINUX_TAG=20200908 -t electriccoinco/zcashd-build-arch
docker build . -f Dockerfile-bbworker.arch -t electriccoinco/zcashd-bbworker-arch
docker push electriccoinco/zcashd-build-arch
docker push electriccoinco/zcashd-bbworker-arch

View File

@ -1,9 +0,0 @@
ARG FROMBASEOS
ARG FROMBASEOS_BUILD_TAG
FROM $FROMBASEOS:$FROMBASEOS_BUILD_TAG
ARG DEBIAN_FRONTEND=noninteractive
ADD apt-package-list.txt /tmp/apt-package-list.txt
RUN apt-get update \
&& apt-get install -y $(tr "\n" " " < /tmp/apt-package-list.txt) \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 1

View File

@ -1,14 +0,0 @@
ARG FROMBASEOS
ARG FROMBASEOS_BUILD_TAG
FROM $FROMBASEOS:$FROMBASEOS_BUILD_TAG
RUN pacman -Syyu --noconfirm \
&& pacman -S --noconfirm \
base-devel \
git \
python3 \
python-pip \
ncurses \
wget
RUN sudo link /lib/libtinfo.so.6 /lib/libtinfo.so.5

View File

@ -1,11 +0,0 @@
ARG FROMBASEOS
ARG FROMBASEOS_BUILD_TAG
FROM electriccoinco/zcashd-build-$FROMBASEOS$FROMBASEOS_BUILD_TAG
ADD requirements.txt requirements.txt
RUN python -m venv venv \
&& . venv/bin/activate \
&& pip install --upgrade pip \
&& python -m pip install -r requirements.txt
ADD ./zcash-params /home/.zcash-params

View File

@ -1,34 +0,0 @@
# zcashd ci Docker images
These Dockerfiles can be used to build zcashd.
The current objective is to build a base image for each distribution that includes the system packages to build zcashd. From `build` images, more targeted images are created.
The process is meant to be automated, but an example `docker-build.sh` script is included.
## build images
`apt-package-tekton-list.txt` contains the required packages for debian based systems.
`Dockerfile-build.apt` uses that file, and some build time arguments, to build apt based build images.
Currently available images are hosted at
https://hub.docker.com/r/electriccoinco/zcashd-build/tags
## Tekton worker images
`Dockerfile-tekton-worker` uses the above build images as a base and layers on toolchains needed for testing
- requirements.txt is the python package requirements for the tekton worker
Currently available images are hosted at https://hub.docker.com/r/electriccoinco
### Stand alone, best effort images
Additional Tekton base builders for Centos8 and Arch. Can be used with `Dockerfile-tekton-worker` to create Tekton workers.
- Dockerfile-build.arch

View File

@ -1,24 +0,0 @@
autoconf
bsdmainutils
build-essential
cmake
curl
g++-aarch64-linux-gnu
git
lcov
libcap-dev
libffi-dev
libtinfo5
libtool
libssl-dev
libz-dev
libbz2-dev
mingw-w64
pkg-config
python3
python3-pip
python3-dev
python3-venv
valgrind
wget
zstd

View File

@ -1,53 +0,0 @@
#!/usr/bin/env bash
export LC_ALL=C
set -exo pipefail
# Debian 9
docker build . -f Dockerfile-build-python.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=9 -t electriccoinco/zcashd-build-debian9
docker push electriccoinco/zcashd-build-debian9
docker build . -f Dockerfile-tekton-worker --build-arg BASEOS=debian --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=9 -t electriccoinco/zcashd-worker-debian9
docker push electriccoinco/zcashd-worker-debian9
# Debian 10
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=10 -t electriccoinco/zcashd-build-debian10
docker push electriccoinco/zcashd-build-debian10
docker build . -f Dockerfile-tekton-worker --build-arg BASEOS=debian --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=10 -t electriccoinco/zcashd-worker-debian10
docker push electriccoinco/zcashd-worker-debian10
# Debian 11
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=bullseye -t electriccoinco/zcashd-build-debian11
docker push electriccoinco/zcashd-build-debian11
docker build . -f Dockerfile-tekton-worker --build-arg FROMBASEOS=debian --build-arg FROMBASEOS_BUILD_TAG=11 -t electriccoinco/zcashd-worker-debian11
docker push electriccoinco/zcashd-worker-debian11
# Ubuntu 16.04
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=16.04 -t electriccoinco/zcashd-build-ubuntu1604
docker push electriccoinco/zcashd-build-ubuntu1604
docker build . -f Dockerfile-tekton-worker --build-arg BASEOS=ubuntu --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=1604 -t electriccoinco/zcashd-worker-ubuntu1604
docker push electriccoinco/zcashd-worker-ubuntu1604
# Ubuntu 18.04
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=18.04 -t electriccoinco/zcashd-build-ubuntu1804
docker push electriccoinco/zcashd-build-ubuntu1804
docker build . -f Dockerfile-tekton-worker --build-arg BASEOS=ubuntu --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=1804 -t electriccoinco/zcashd-worker-ubuntu1804
docker push electriccoinco/zcashd-worker-ubuntu1804
# Ubuntu 20.04
docker build . -f Dockerfile-build.apt --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=20.04 -t electriccoinco/zcashd-build-ubuntu2004
docker push electriccoinco/zcashd-build-ubuntu2004
docker build . -f Dockerfile-tekton-worker --build-arg BASEOS=ubuntu --build-arg FROMBASEOS=ubuntu --build-arg FROMBASEOS_BUILD_TAG=2004 -t electriccoinco/zcashd-worker-ubuntu2004
docker push electriccoinco/zcashd-worker-ubuntu2004
# Arch 20210418.0.20194
docker build . -f Dockerfile-build.arch --build-arg FROMBASEOS=archlinux --build-arg FROMBASEOS_BUILD_TAG=base-20210418.0.20194 -t electriccoinco/zcashd-build-archlinux
docker push electriccoinco/zcashd-build-archlinux
docker build . -f Dockerfile-tekton-worker --build-arg FROMBASEOS=archlinux -t electriccoinco/zcashd-worker-archlinux
docker push electriccoinco/zcashd-worker-archlinux

View File

@ -1,8 +0,0 @@
wheel
pyblake2
pyflakes
pyutil
pyzmq
requests
simplejson
twisted[tls]

View File

@ -1,89 +0,0 @@
# infra-tekton-labs
Examples of CI/CD used to support Zcash build and testing
# Environment Tooling Setup (Pre-Install/Install)
### Install Docker
https://docs.docker.com/engine/install/
#### Setup Docker
If you are installing Docker for the first time, to run `docker` without `sudo` privilege for every docker command:
- Check if Docker group already exists:
- `cat /etc/group | grep docker`
- How to create docker group:
- `sudo groupadd docker`
- Add current user to docker group
- `sudo usermod -a -G docker $CURR_USER`
- Validate current user was added:
- `cat /etc/group | grep docker`
- Restart system to persist changes and graceful setup (had issues with just logout/login)
### Install Kind
https://kind.sigs.k8s.io/
### Install Kubctl
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
### Install Tkn
https://tekton.dev/docs/cli/
# Setup Local Zcash CI Environment
Follow the steps below 1-3 to complete a local Zcash Tekton installation, assuming the above dependencies are installed.
### Create cluster (e.g. micro k8, kind, minicube)
1. `kind create cluster --name zcash-tekton-lab`
Other Useful commands
- Validate cluster creation & context: `kubectl cluster-info --context kind-zcash-tekton-lab`
- Delete cluster: `kind delete cluster --name zcash-tekton-lab || true`
- List Kube contexts: `kubectl config get-contexts`
- Delete Kube contexts: `kubectl config delete-context <context_name>`
- Setup Kube context: `kubectl config current-context`
- Create new Kube context: `kubectl config set-context zcash_local_ci --user=cluster-admin`
- Switch to new context: `kubectl config use-context zcash_local_ci`
### Create Tekton Pipeline in cluster
See: https://github.com/tektoncd/pipeline for recent version
2. `kubectl apply -f releases/tekton-pipeline-v0.37.0.yaml`
(Alternative)
`kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.37.0/release.yaml`
### Create Tekton Dashboard in cluster
See: https://github.com/tektoncd/dashboard for recent version
3. `kubectl apply -f releases/tekton-dashboard-readonly-v0.27.0.yaml`
Validate deployment of Tekton Dashboard & Pipeline
`kubectl get pods --namespace tekton-pipelines`
Forward Tekton Dashboard:
`kubectl --namespace tekton-pipelines port-forward svc/tekton-dashboard 9097:9097 &`
View Dashboard in Browser:
`http://localhost:9097/`
## Create Tekton Task
kubectl apply -f ./tasks/zcash-build.yml
tkn task start --showlog zcash-build
tkn task delete zcash-build
## Create Tekton Pipeline
kubectl apply -f ./pipeline/zcash-build-pipeline.yml
tkn pipeline start --showlog zcash-build-pipeline
tkn pipeline delete zcash-build-pipeline

View File

@ -1,334 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
labels:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
name: extensions.dashboard.tekton.dev
spec:
group: dashboard.tekton.dev
names:
categories:
- tekton
- tekton-dashboard
kind: Extension
plural: extensions
shortNames:
- ext
- exts
preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.apiVersion
name: API version
type: string
- jsonPath: .spec.name
name: Kind
type: string
- jsonPath: .spec.displayname
name: Display name
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
type: object
x-kubernetes-preserve-unknown-fields: true
served: true
storage: true
subresources:
status: {}
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
name: tekton-dashboard
namespace: tekton-pipelines
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
name: tekton-dashboard-info
namespace: tekton-pipelines
rules:
- apiGroups:
- ""
resourceNames:
- dashboard-info
resources:
- configmaps
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
name: tekton-dashboard-backend
rules:
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- apiGroups:
- security.openshift.io
resources:
- securitycontextconstraints
verbs:
- use
- apiGroups:
- tekton.dev
resources:
- clustertasks
- clustertasks/status
verbs:
- get
- list
- watch
- apiGroups:
- triggers.tekton.dev
resources:
- clusterinterceptors
- clustertriggerbindings
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
name: tekton-dashboard-tenant
rules:
- apiGroups:
- dashboard.tekton.dev
resources:
- extensions
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
- namespaces
- pods
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- tekton.dev
resources:
- tasks
- taskruns
- pipelines
- pipelineruns
- pipelineresources
- conditions
- tasks/status
- taskruns/status
- pipelines/status
- pipelineruns/status
- taskruns/finalizers
- pipelineruns/finalizers
verbs:
- get
- list
- watch
- apiGroups:
- triggers.tekton.dev
resources:
- eventlisteners
- triggerbindings
- triggers
- triggertemplates
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
name: tekton-dashboard-info
namespace: tekton-pipelines
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: tekton-dashboard-info
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:authenticated
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
rbac.dashboard.tekton.dev/subject: tekton-dashboard
name: tekton-dashboard-backend
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tekton-dashboard-backend
subjects:
- kind: ServiceAccount
name: tekton-dashboard
namespace: tekton-pipelines
---
apiVersion: v1
data:
version: v0.27.0
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
name: dashboard-info
namespace: tekton-pipelines
---
apiVersion: v1
kind: Service
metadata:
labels:
app: tekton-dashboard
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/name: dashboard
app.kubernetes.io/part-of: tekton-dashboard
app.kubernetes.io/version: v0.27.0
dashboard.tekton.dev/release: v0.27.0
version: v0.27.0
name: tekton-dashboard
namespace: tekton-pipelines
spec:
ports:
- name: http
port: 9097
protocol: TCP
targetPort: 9097
selector:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/name: dashboard
app.kubernetes.io/part-of: tekton-dashboard
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: tekton-dashboard
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/name: dashboard
app.kubernetes.io/part-of: tekton-dashboard
app.kubernetes.io/version: v0.27.0
dashboard.tekton.dev/release: v0.27.0
version: v0.27.0
name: tekton-dashboard
namespace: tekton-pipelines
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/name: dashboard
app.kubernetes.io/part-of: tekton-dashboard
template:
metadata:
labels:
app: tekton-dashboard
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/name: dashboard
app.kubernetes.io/part-of: tekton-dashboard
app.kubernetes.io/version: v0.27.0
name: tekton-dashboard
spec:
containers:
- args:
- --port=9097
- --logout-url=
- --pipelines-namespace=tekton-pipelines
- --triggers-namespace=tekton-pipelines
- --read-only=true
- --log-level=info
- --log-format=json
- --namespace=
- --stream-logs=true
- --external-logs=
env:
- name: INSTALLED_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.27.0@sha256:d57860eb2ff1f97ca1b657eda6ec640584ec8b756e80a5f888c98b7b056c14c1
livenessProbe:
httpGet:
path: /health
port: 9097
name: tekton-dashboard
ports:
- containerPort: 9097
readinessProbe:
httpGet:
path: /readiness
port: 9097
nodeSelector:
kubernetes.io/os: linux
securityContext:
runAsNonRoot: true
runAsUser: 65532
serviceAccountName: tekton-dashboard
volumes: []
---
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: dashboard
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-dashboard
rbac.dashboard.tekton.dev/subject: tekton-dashboard
name: tekton-dashboard-tenant
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tekton-dashboard-tenant
subjects:
- kind: ServiceAccount
name: tekton-dashboard
namespace: tekton-pipelines

View File

@ -1,218 +0,0 @@
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: zcash-build-bench
spec:
params:
- name: JOBS
default: "4"
type: string
- name: BUILD_FOR_HOST
default: x86_64-pc-linux-gnu
type: string
- name: CONFIGURE_FLAGS
default: ""
type: string
- name: BUILD_CONTAINER
default: electriccoinco/zcashd-bench-debian10
type: string
- name: TEST_TARGET
default: ""
type: string
resources:
inputs:
- name: source
type: git
steps:
- name: build
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cd workspace/source
echo $(git rev-parse HEAD)
echo $(git rev-parse --short HEAD)
if [ "$(params.BUILD_FOR_HOST)" == "x86_64-apple-darwin18" ]
then
mkdir -p depends/SDKs
curl -fs https://ecc.mypinata.cloud/ipfs/QmeSwckvSCGL9SXGdEHoAyqXdzD7T9HYTwsC34Bj5EVDF5 \
-o depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
tar zxvf depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz \
-C depends/SDKs
fi
CONFIGURE_FLAGS=$(params.CONFIGURE_FLAGS) HOST=$(params.BUILD_FOR_HOST) ./zcutil/build.sh -j$(params.JOBS)
- name: bench-sleep
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time sleep | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-createsaplingspend
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time createsaplingspend | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-verifysaplingspend
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time verifysaplingspend | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-createsaplingoutput
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time createsaplingoutput | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-verifysaplingoutput
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time verifysaplingoutput | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-createjoinsplit
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time createjoinsplit | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-verifyjoinsplit
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time verifyjoinsplit | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-verifyequihash
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time verifyequihash | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-loadwallet-200k-recv
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time loadwallet 200k-recv | sed 1d | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-loadwallet-200k-send
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time loadwallet 200k-send | sed 1d | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-listunspent-200k-recv
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time listunspent 200k-recv | sed 1d | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-listunspent-200k-send
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time listunspent 200k-send | sed 1d | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-connectblocksapling
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp -r /home/block-1723244.tar.xz /workspace/source
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time connectblocksapling | sed -n '2,$p' | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-connectblockorchard
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp -r /home/block-1708048.tar.xz /workspace/source
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time connectblockorchard | sed -n '2,$p' | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py
- name: bench-connectblockslow
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cp -a /home/.zcash-params $HOME/
cp -r /home/block-107134.tar.xz /workspace/source
cp /home/perf_metrics.py /workspace/source
cd /workspace/source
./qa/zcash/performance-measurements.sh time connectblockslow | sed -n '2,$p' | jq '.[]|.runningtime | tonumber' | python ./perf_metrics.py

View File

@ -1,57 +0,0 @@
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: zcash-build-test
spec:
params:
- name: JOBS
default: "4"
type: string
- name: BUILD_FOR_HOST
default: x86_64-pc-linux-gnu
type: string
- name: CONFIGURE_FLAGS
default: ""
type: string
- name: BUILD_CONTAINER
default: electriccoinco/zcashd-worker-ubuntu2004v2
type: string
- name: TEST_TARGET
default: ""
type: string
resources:
inputs:
- name: source
type: git
steps:
- name: build
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cd workspace/source
echo $(git rev-parse HEAD)
echo $(git rev-parse --short HEAD)
if [ "$(params.BUILD_FOR_HOST)" == "x86_64-apple-darwin18" ]
then
mkdir -p depends/SDKs
curl -fs https://ecc.mypinata.cloud/ipfs/QmeSwckvSCGL9SXGdEHoAyqXdzD7T9HYTwsC34Bj5EVDF5 \
-o depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
tar zxvf depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz \
-C depends/SDKs
fi
CONFIGURE_FLAGS=$(params.CONFIGURE_FLAGS) HOST=$(params.BUILD_FOR_HOST) ./zcutil/build.sh -j$(params.JOBS)
- name: test
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
python -m pip install pyblake2 pyflakes python-qpid-proton pyutil pyzmq requests simplejson
cp -a /home/.zcash-params $HOME/
echo $(git rev-parse HEAD)
echo $(git rev-parse --short HEAD)
HOST=x86_64-pc-linux-gnu /workspace/source/qa/zcash/full_test_suite.py $(params.TEST_TARGET)

View File

@ -1,51 +0,0 @@
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: zcash-build
spec:
params:
- name: JOBS
default: "4"
type: string
- name: BUILD_FOR_HOST
default: x86_64-pc-linux-gnu
type: string
- name: CONFIGURE_FLAGS
default: ""
type: string
- name: BUILD_CONTAINER
default: electriccoinco/zcashd-worker-ubuntu2004v2
type: string
resources:
inputs:
- name: source
type: git
steps:
- name: setup-venv
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -e -o pipefail
python3 -m venv /venv/zcash-build-venv
source /venv/zcash-build-venv/bin/activate
python -m pip install pyblake2 pyflakes python-qpid-proton pyutil pyzmq requests simplejson
- name: build
image: $(params.BUILD_CONTAINER)
script: |
#!/bin/bash
set -o pipefail
cd workspace/source
echo $(git rev-parse HEAD)
echo $(git rev-parse --short HEAD)
if [ "$(params.BUILD_FOR_HOST)" == "x86_64-apple-darwin18" ]
then
mkdir -p depends/SDKs
curl -fs https://ecc.mypinata.cloud/ipfs/QmeSwckvSCGL9SXGdEHoAyqXdzD7T9HYTwsC34Bj5EVDF5 \
-o depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
tar zxvf depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz \
-C depends/SDKs
fi
CONFIGURE_FLAGS=$(params.CONFIGURE_FLAGS) HOST=$(params.BUILD_FOR_HOST) ./zcutil/build.sh -j$(params.JOBS)

View File

@ -1,62 +0,0 @@
# Zcash CI workers
This folder contains the Ansible playbooks for configuring a fresh OS
installation for use as a Buildbot worker in Zcash's CI.
# Criteria for Adding Workers
a. Don't add workers until users complain about a problem on a platform that
doesn't yet have workers. However, if we anticipate many users will use a
platform, we may pre-emptively add an unsupported worker for it.
b. Prioritize the platforms that seem to have the most users.
c. When adding workers, start by adding workers for the "most common" variant of
any distro. Then if users later encounter problems with a sub-variant, we can
consider adding new workers at that point. Example: add Ubuntu Desktop before
Xubuntu, on the assumption the former has a larger population base, and the
latter only materially differs in the GUI.
# Setting up a latent worker on Amazon EC2
1. Add a regular (non-latent) worker to the master.cfg for dev-ci.z.cash, and
deploy the changes.
- This enables the Ansible playbook to run to completion, ending in the worker
connecting to the master.
2. Start a basic EC2 instance using the template AMI for the target OS.
- Choose the smallest instance size, it won't be used for building Zcash.
3. Figure out which user to log into the instance with.
- E.g. for the Ubuntu template, use "ubuntu" instead of "root"
- If you get an Ansible error later with a message like "Failed to connect to
the host via ssh: Received message too long 1349281121\r\n", that means the
instance is sending a text string in response to the SSH connection, and the
Ansible protocol is balking. Try manually logging in with the same
credentials to diagnose.
4. Create `inventory/hosts` containing the following:
[zcash-ci-worker-unix]
some-name ansible_host=<INSTANCE_IP> ansible_ssh_user=<USERNAME>
5. Run `ansible-playbook -e buildbot_worker_host_template=templates/host.ec2.j2 -i inventory/hosts unix.yml`,
passing in the worker's Buildbot name and password.
- After a successful run, the worker should be connected to dev-ci.z.cash and
visible in its worker list.
6. Create an AMI from the instance. This is the worker AMI to put into the
master.cfg for dev-ci.z.cash.
- 16 GB of storage should be sufficient.
7. SSH into the instance, and edit the worker config to connect to ci.z.cash.
8. Create an AMI from the instance. This is the worker AMI to put into the
master.cfg for ci.z.cash.
- 16 GB of storage should be sufficient.
9. Delete the instance (it is no longer needed).
10. Edit the master.cfg to turn the new worker into a latent (using the new AMI
IDs), add it to the appropriate worker groups, set up new builders etc.
- Deploy this via the normal PR review process.

View File

@ -1,2 +0,0 @@
[ssh_connection]
pipelining = True

View File

@ -1,2 +0,0 @@
export PATH=$HOME/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export EDITOR=vim

View File

@ -1,27 +0,0 @@
---
# Configure a Buildbot worker
- include: unix.yml
- name: Install grind-specific worker dependencies
hosts: zcash-ci-worker-unix
become: true
vars_files:
- vars/default.yml
tasks:
- name: Get dependencies for distribution
include_vars: "{{ item }}"
with_first_found:
- files:
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_major_version | int }}.yml"
- "vars/{{ ansible_distribution }}.yml"
- "vars/{{ ansible_os_family }}.yml"
skip: true
- name: Install required packages
package:
name: "{{ item }}"
state: present
with_items: "{{ grind_deps }}"

View File

@ -1,10 +0,0 @@
---
- name: Check if brew is installed
stat:
path: /usr/local/bin/brew
register: brew_check
- name: Fail if brew is unavailable
fail:
msg: 'brew is not installed! Please install Homebrew: https://docs.brew.sh/Installation.html'
when: not brew_check.stat.exists

View File

@ -1,8 +0,0 @@
---
- name: Fetch pip installer
get_url:
url: https://bootstrap.pypa.io/get-pip.py
dest: /tmp/get-pip.py
- name: Install pip
command: "{{ ansible_python.executable }} /tmp/get-pip.py"

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.buildbot.worker</string>
<key>ProgramArguments</key>
<array>
<string>{{ buildbot_worker_dir }}/venv/bin/buildbot-worker</string>
<string>start</string>
<string>{{ buildbot_worker_name }}</string>
</array>
<key>WorkingDirectory</key>
<string>{{ buildbot_worker_dir }}</string>
<key>UserName</key>
<string>{{ buildbot_worker_user }}</string>
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<true/>
</dict>
</dict>
</plist>

View File

@ -1,17 +0,0 @@
[Unit]
Description=Buildbot worker
Wants=network.target
After=network.target
[Service]
Type=forking
PIDFile={{ buildbot_worker_dir }}/{{ buildbot_worker_name }}/twistd.pid
WorkingDirectory={{ buildbot_worker_dir }}
ExecStart={{ buildbot_worker_dir }}/venv/bin/buildbot-worker start {{ buildbot_worker_name }}
ExecReload={{ buildbot_worker_dir }}/venv/bin/buildbot-worker restart {{ buildbot_worker_name }}
ExecStop={{ buildbot_worker_dir }}/venv/bin/buildbot-worker stop {{ buildbot_worker_name }}
Restart=always
User={{ buildbot_worker_user }}
[Install]
WantedBy=multi-user.target

View File

@ -1 +0,0 @@
OS: {{ ansible_distribution }} {{ ansible_distribution_version }}

View File

@ -1,3 +0,0 @@
OS: {{ ansible_distribution }} {{ ansible_distribution_version }}
Memory: {{ ansible_memtotal_mb }} MB
CPU: {{ ansible_processor if ansible_processor is string else ansible_processor[1] }} ({{ ansible_processor_cores }} cores)

View File

@ -1,209 +0,0 @@
---
- name: Configure a Buildbot worker for Zcash CI
hosts: zcash-ci-worker-unix
become: true
gather_facts: False
vars_files:
- vars/default.yml
- vars/buildbot.yml
vars_prompt:
- name: "buildbot_worker_admin"
prompt: "Admin details"
default: "Zcash <sysadmin@z.cash>"
- name: "buildbot_worker_name"
prompt: "Buildbot worker name (provided by ZECC)"
private: no
- name: "buildbot_worker_password"
prompt: "Buildbot worker password (provided by ZECC)"
pre_tasks:
- name: Install Python 2.7 for Ansible and Buildbot
raw: test -e /usr/bin/python || test -e /usr/bin/python2 || test -e /usr/bin/python2.7 || test -e /usr/local/bin/python2.7 || (test -e /usr/bin/apt && apt -qqy update && apt install -qqy python) || (test -e /usr/bin/dnf && dnf install -qqy python2) || (test -e /usr/sbin/pkg && pkg install -qqy python2)
register: output
changed_when:
- output.stdout != ""
- output.stdout != "\r\n"
- name: Check if Python is in the configured location
raw: test -e {{ ansible_python_interpreter }}
ignore_errors: true
register: python_check
when: ansible_python_interpreter is defined
- name: Fail if configured Python is unavailable
fail:
msg: "Python is not accessible at {{ ansible_python_interpreter }} on this host! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2.7 binary."
when: ansible_python_interpreter is defined and python_check.rc == 1
- name: Check if Python is in the default location
raw: test -e /usr/bin/python
ignore_errors: true
register: python_check
when: ansible_python_interpreter is undefined
- name: Fail if default Python is unavailable
fail:
msg: Python is not accessible at /usr/bin/python on this host! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2.7 binary.
when: ansible_python_interpreter is undefined and python_check.rc == 1
- name: Gathering Facts
setup:
tags: deps
- name: Fail if Python is the wrong version
fail:
msg: "The Python binary at {{ ansible_python.executable }} is version {{ ansible_python_version }}! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2.7 binary."
when: ansible_python.version.major != 2 or ansible_python.version.minor != 7
tasks:
- name: Get dependencies for distribution
include_vars: "{{ item }}"
with_first_found:
- files:
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_major_version | int }}.yml"
- "vars/{{ ansible_distribution }}.yml"
- "vars/{{ ansible_os_family }}.yml"
skip: true
tags: deps
- name: Collate dependencies
set_fact:
package_deps: "{{ buildbot_deps + fetch_deps + conf_deps + build_deps + link_deps + dist_deps }}"
python_modules: "{{ buildbot_modules + rpc_test_modules }}"
tags: deps
- name: Install Homebrew [MacOSX]
include: tasks/install-brew.yml
when: ansible_distribution == 'MacOSX'
tags: deps
- name: Update rolling release [Arch Linux]
pacman:
update_cache: yes
upgrade: yes
when: ansible_distribution == 'Archlinux'
tags: deps
- name: Install required packages
package:
name: "{{ item }}"
state: present
with_items: "{{ package_deps }}"
become_user: "{{ ansible_ssh_user if ansible_distribution == 'MacOSX' else 'root' }}"
tags: deps
- name: Install pip [CentOS, MacOSX]
include: tasks/install-pip.yml
when: ansible_distribution in ['CentOS', 'MacOSX']
- name: Install required Python system modules
pip:
name: "{{ item }}"
state: latest
executable: "{{ '/usr/local/bin/pip' if ansible_distribution == 'MacOSX' else omit }}"
with_items: "{{ system_modules }}"
- name: Set up the Buildbot worker user
user:
name: "{{ buildbot_worker_user }}"
comment: Buildbot worker
shell: /bin/bash
state: present
- name: Get absolute path to Buildbot worker home directory
command: echo ~
register: homedir
become_user: "{{ buildbot_worker_user }}"
- name: Save absolute path to Buildbot worker home directory
set_fact:
buildbot_worker_dir: "{{ homedir.stdout }}"
- name: Install required Python modules
pip:
name: "{{ item }}"
state: latest
virtualenv: "~{{ buildbot_worker_user }}/venv"
virtualenv_command: "{{ '/usr/local/bin/virtualenv' if ansible_distribution == 'MacOSX' else omit }}"
with_items: "{{ python_modules }}"
become_user: "{{ buildbot_worker_user }}"
notify: restart buildbot-worker
- name: Create Buildbot worker
command: >
~{{ buildbot_worker_user }}/venv/bin/buildbot-worker create-worker ~/{{ buildbot_worker_name }}
{{ buildbot_master_host }}:{{ buildbot_master_port }}
{{ buildbot_worker_name|quote }} {{ buildbot_worker_password|quote }}
args:
creates: "~/{{ buildbot_worker_name }}/buildbot.tac"
become_user: "{{ buildbot_worker_user }}"
- name: Set admin details for Buildbot worker
copy:
content: "{{ buildbot_worker_admin }}"
dest: "~{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/info/admin"
owner: "{{ buildbot_worker_user }}"
group: "{{ omit if ansible_distribution == 'MacOSX' else buildbot_worker_user }}"
mode: "0644"
- name: Set host details for Buildbot worker
template:
src: "{{ buildbot_worker_host_template }}"
dest: "~{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/info/host"
owner: "{{ buildbot_worker_user }}"
group: "{{ omit if ansible_distribution == 'MacOSX' else buildbot_worker_user }}"
mode: "0644"
- name: Install custom bashrc for virtualenv
copy:
src: bashrc
dest: "~{{ buildbot_worker_user }}/.bashrc"
owner: "{{ buildbot_worker_user }}"
group: "{{ omit if ansible_distribution == 'MacOSX' else buildbot_worker_user }}"
mode: "0644"
- name: Copy Buildbot worker systemd service unit
template:
src: templates/buildbot-worker.service.j2
dest: "/etc/systemd/system/buildbot-worker.service"
owner: root
group: root
mode: "0644"
when: ansible_distribution != 'MacOSX'
notify: reload systemd
- name: Copy Buildbot worker launchd service unit
template:
src: templates/buildbot-worker.plist.j2
dest: "/Library/LaunchDaemons/net.buildbot.worker.plist"
owner: root
group: wheel
mode: "0644"
when: ansible_distribution == 'MacOSX'
- name: Start Buildbot worker
service:
name: buildbot-worker
state: started
enabled: yes
when: ansible_distribution != 'MacOSX'
- name: Load Buildbot worker service [MacOSX]
command: launchctl load /Library/LaunchDaemons/net.buildbot.worker.plist
when: ansible_distribution == 'MacOSX'
- name: Start Buildbot worker [MacOSX]
command: launchctl start net.buildbot.worker
when: ansible_distribution == 'MacOSX'
handlers:
- name: restart buildbot-worker
service:
name: buildbot-worker
state: restarted
- name: reload systemd
command: /bin/systemctl daemon-reload

View File

@ -1,7 +0,0 @@
---
buildbot_deps:
- python2-pip
build_deps:
- cmake
- multilib/gcc
- make

View File

@ -1,13 +0,0 @@
---
buildbot_deps: [] # Empty to remove python-pip
build_deps:
- bzip2
- cmake
- gcc
- gcc-c++
- make
- patch
dist_deps:
- pkgconfig # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
- python-devel
- redhat-rpm-config

View File

@ -1,6 +0,0 @@
---
build_deps:
- build-essential # Depends on g++, libc6-dev, make
- cmake
dist_deps:
- python-dev

View File

@ -1,11 +0,0 @@
---
build_deps:
- cmake
- gcc
- gcc-c++
- make
- patch
dist_deps:
- pkgconfig # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
- python-devel
- redhat-rpm-config

View File

@ -1,10 +0,0 @@
---
buildbot_deps:
- py27-pip
build_deps:
- cmake
- gcc
- gmake
dist_deps:
- bash
- pkgconf # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in

View File

@ -1,6 +0,0 @@
---
buildbot_deps:
- coreutils # For gnproc etc.
# Most are already installed
build_deps:
- cmake

View File

@ -1,4 +0,0 @@
---
build_deps:
- build-essential # Depends on g++, libc6-dev, make
- cmake

View File

@ -1,5 +0,0 @@
---
buildbot_worker_user: zcbbworker
buildbot_master_host: dev-ci.z.cash
buildbot_master_port: 9899
buildbot_worker_host_template: templates/host.j2

View File

@ -1,53 +0,0 @@
---
# These variables can be overridden in distribution files.
# Dependencies required to install Buildbot
buildbot_deps:
- python-pip # So we can install Python modules
# Dependencies required to download files
fetch_deps:
- curl # For depends/
- git
- wget # For zcutil/fetch-params.sh
# Dependencies required to configure Zcash
conf_deps:
- autoconf
- automake
- m4
- pkg-config
# Dependencies required to compile Zcash
build_deps:
- cmake
- g++
- gcc
- make
# Dependencies required to link Zcash
link_deps:
- libtool
# Additional distribution-specific dependencies
dist_deps: []
# Additional grind-specific dependencies
grind_deps:
- lcov
- valgrind
# Python modules required on the system
system_modules:
- virtualenv
# Python modules required for a Zcash Buildbot worker
buildbot_modules:
- pip # Needs to be updated first so Buildbot installs
- buildbot-worker
- pyflakes
# Python modules required to run the Zcash RPC test suite
rpc_test_modules:
- pyblake2
- pyzmq

View File

@ -1,3 +1,15 @@
zcash (5.8.0) stable; urgency=medium
* 5.8.0 release.
-- Electric Coin Company <team@electriccoin.co> Tue, 02 Jan 2024 19:19:15 +0000
zcash (5.8.0~rc1) stable; urgency=medium
* 5.8.0-rc1 release.
-- Electric Coin Company <team@electriccoin.co> Thu, 21 Dec 2023 16:56:50 +0000
zcash (5.7.0) stable; urgency=medium
* 5.7.0 release.

View File

@ -154,7 +154,7 @@ Copyright: 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free
2013 Ericsson AB
2014 AppDynamics Inc.
2015-2016 Brocade Communications Systems Inc.
License: LGPL-3+ with ZeroMQ exception
License: MPL-2.0
Files: depends/sources/google*.tar.gz
Copyright: 2008 Google Inc.
@ -1232,50 +1232,6 @@ License: ISC
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
License: LGPL
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
.
On Debian systems the GNU Lesser General Public License (LGPL) is
located in '/usr/share/common-licenses/LGPL'.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Comment:
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
License: LGPL-3+ with ZeroMQ exception
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
.
On Debian systems the GNU Lesser General Public License (LGPL) is
located in '/usr/share/common-licenses/LGPL'.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
--------------------------------------------------------------------------------
SPECIAL EXCEPTION GRANTED BY COPYRIGHT HOLDERS
.
As a special exception, copyright holders give you permission to link this
library with independent modules to produce an executable, regardless of
the license terms of these independent modules, and to copy and distribute
the resulting executable under terms of your choice, provided that you also
meet, for each linked independent module, the terms and conditions of
the license of that module. An independent module is a module which is not
derived from or based on this library. If you modify this library, you must
extend this exception to your version of the library.
Note: this exception relieves you of any obligations under sections 4 and 5
of this license, and section 6 of the GNU General Public License.
Comment:
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
License: GNU-All-permissive-License
Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice
@ -1362,6 +1318,381 @@ License: Expat-with-advertising-clause
promote the sale, use or other dealings in this Software without
prior written authorization from the authors.
License: MPL-2.0
Mozilla Public License Version 2.0
==================================
.
1. Definitions
--------------
.
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
.
1.3. "Contribution"
means Covered Software of a particular Contributor.
.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
.
1.5. "Incompatible With Secondary Licenses"
means
.
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
.
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
.
1.8. "License"
means this document.
.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
.
1.10. "Modifications"
means any of the following:
.
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
.
(b) any new file in Source Code Form that contains any Covered
Software.
.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
.
2. License Grants and Conditions
--------------------------------
.
2.1. Grants
.
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
.
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
.
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
.
2.2. Effective Date
.
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
.
2.3. Limitations on Grant Scope
.
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
.
(a) for any code that a Contributor has removed from Covered Software;
or
.
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
.
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
.
2.4. Subsequent Licenses
.
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
.
2.5. Representation
.
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
.
2.6. Fair Use
.
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
.
2.7. Conditions
.
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
.
3. Responsibilities
-------------------
.
3.1. Distribution of Source Form
.
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
.
3.2. Distribution of Executable Form
.
If You distribute Covered Software in Executable Form then:
.
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
.
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
.
3.3. Distribution of a Larger Work
.
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
.
3.4. Notices
.
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
.
3.5. Application of Additional Terms
.
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
.
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
.
5. Termination
--------------
.
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
.
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
.
8. Litigation
-------------
.
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
.
9. Miscellaneous
----------------
.
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
.
10. Versions of the License
---------------------------
.
10.1. New Versions
.
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
.
10.2. Effect of New Versions
.
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
.
10.3. Modified Versions
.
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
.
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
.
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
.
Exhibit A - Source Code Form License Notice
-------------------------------------------
.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.
.
You may add additional accurate notices of copyright ownership.
.
Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------
.
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.
License: CC0-1.0
Creative Commons Legal Code
.

View File

@ -1,5 +1,5 @@
---
name: "zcash-5.7.0"
name: "zcash-5.8.0"
enable_cache: true
distro: "debian"
suites:

View File

@ -1,5 +1,5 @@
---
name: "zcash-5.7.0"
name: "zcash-5.8.0"
enable_cache: true
distro: "debian"
suites:

View File

@ -20,11 +20,13 @@ $(package)_config_opts_darwin=--disable-atomicsupport
endif
$(package)_config_opts_aarch64=--disable-atomicsupport
$(package)_cxxflags+=-std=c++17
$(package)_cflags+=-Wno-deprecated-non-prototype
$(package)_ldflags+=-static-libstdc++ -Wno-unused-command-line-argument
ifeq ($(host_os),freebsd)
$(package)_ldflags+=-static-libstdc++ -lcxxrt
$(package)_ldflags+=-lcxxrt
else
$(package)_ldflags+=-static-libstdc++ -lc++abi
$(package)_ldflags+=-lc++abi
endif
endef

View File

@ -1,8 +1,8 @@
package=native_ccache
$(package)_version=4.8.3
$(package)_version=4.9
$(package)_download_path=https://github.com/ccache/ccache/releases/download/v$($(package)_version)
$(package)_file_name=ccache-$($(package)_version).tar.gz
$(package)_sha256_hash=d59dd569ad2bbc826c0bc335c8ebd73e78ed0f2f40ba6b30069347e63585d9ef
$(package)_sha256_hash=866b2223d59333640f0e7a003cbb85b32d9ca3c9445bd9e3cf142942e69dd3ec
$(package)_build_subdir=build
$(package)_dependencies=native_cmake native_zstd

View File

@ -1,8 +1,8 @@
package=native_cmake
$(package)_version=3.27.6
$(package)_version=3.28.1
$(package)_download_path=https://github.com/Kitware/CMake/releases/download/v$($(package)_version)
$(package)_file_name=cmake-$($(package)_version).tar.gz
$(package)_sha256_hash=ef3056df528569e0e8956f6cf38806879347ac6de6a4ff7e4105dc4578732cfb
$(package)_sha256_hash=15e94f83e647f7d620a140a7a5da76349fc47a1bfed66d0f5cdee8e7344079ad
define $(package)_set_vars
$(package)_config_opts += -DCMAKE_BUILD_TYPE:STRING=Release

View File

@ -1,14 +1,14 @@
package=native_cxxbridge
# The version needs to match cxx in Cargo.toml
$(package)_version=1.0.107
$(package)_version=1.0.113
$(package)_download_path=https://github.com/dtolnay/cxx/archive/refs/tags
$(package)_file_name=native_cxxbridge-$($(package)_version).tar.gz
$(package)_download_file=$($(package)_version).tar.gz
$(package)_sha256_hash=961256a942c2369d84db29f6f7d09bce7fa7de221ec729856216a87b0970b1df
$(package)_sha256_hash=0760e02a1faf3357b28f0ee759ffaae05299092d8d3081a23ec2557e55aaf947
$(package)_build_subdir=gen/cmd
$(package)_dependencies=native_rust
# This file is somewhat annoying to update, but can be done like so from the repo base:
# $ export VERSION=1.0.107
# $ export VERSION=1.0.113
# $ rm .cargo/config .cargo/.configured-for-offline
# $ mkdir tmp
# $ cd tmp

View File

@ -1,9 +1,9 @@
package=utfcpp
$(package)_version=3.2.5
$(package)_version=4.0.5
$(package)_download_path=https://github.com/nemtrif/$(package)/archive/refs/tags
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_download_file=v$($(package)_version).tar.gz
$(package)_sha256_hash=14fd1b3c466814cb4c40771b7f207b61d2c7a0aa6a5e620ca05c00df27f25afd
$(package)_sha256_hash=ffc668a310e77607d393f3c18b32715f223da1eac4c4d6e0579a11df8e6b59cf
define $(package)_stage_cmds
mkdir -p $($(package)_staging_dir)$(host_prefix)/include && \

View File

@ -1,9 +1,9 @@
package=zeromq
$(package)_version=4.3.4
$(package)_version=4.3.5
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5
$(package)_patches=windows-unused-variables.diff use-snprintf-not-sprintf.patch check_snprintf_return.patch
$(package)_sha256_hash=6653ef5910f17954861fe72332e68b03ca6e4d9c7160eb3a8de5a5a913bfab43
$(package)_patches=stats_proxy-missing-braces.diff
ifneq ($(host_os),darwin)
$(package)_dependencies=libcxx
@ -27,9 +27,7 @@ define $(package)_set_vars
endef
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/windows-unused-variables.diff && \
patch -p1 < $($(package)_patch_dir)/use-snprintf-not-sprintf.patch && \
patch -p1 < $($(package)_patch_dir)/check_snprintf_return.patch
patch -p1 < $($(package)_patch_dir)/stats_proxy-missing-braces.diff
endef
define $(package)_config_cmds

View File

@ -16,9 +16,9 @@ checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
[[package]]
name = "basic-toml"
version = "0.1.4"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6"
checksum = "2f2139706359229bfa8f19142ac1155b4b80beafb7a60471ac5dd109d4a19778"
dependencies = [
"serde",
]
@ -41,9 +41,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clang-ast"
version = "0.1.20"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "152da76e4e754905d7f915611170325310a95ab872a15ed8516c64c1ee4c0e13"
checksum = "15fd928f71f2ac27e00ee62e89293ddf696465db41434efa7f7699cddc034702"
dependencies = [
"rustc-hash",
"serde",
@ -96,7 +96,7 @@ dependencies = [
[[package]]
name = "cxx"
version = "1.0.107"
version = "1.0.113"
dependencies = [
"cc",
"cxx-build",
@ -111,7 +111,7 @@ dependencies = [
[[package]]
name = "cxx-build"
version = "1.0.107"
version = "1.0.113"
dependencies = [
"cc",
"codespan-reporting",
@ -127,7 +127,7 @@ dependencies = [
[[package]]
name = "cxx-gen"
version = "0.7.107"
version = "0.7.113"
dependencies = [
"codespan-reporting",
"proc-macro2",
@ -146,7 +146,7 @@ dependencies = [
[[package]]
name = "cxxbridge-cmd"
version = "1.0.107"
version = "1.0.113"
dependencies = [
"clap",
"codespan-reporting",
@ -157,11 +157,11 @@ dependencies = [
[[package]]
name = "cxxbridge-flags"
version = "1.0.107"
version = "1.0.113"
[[package]]
name = "cxxbridge-macro"
version = "1.0.107"
version = "1.0.113"
dependencies = [
"clang-ast",
"cxx",
@ -191,9 +191,9 @@ checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632"
[[package]]
name = "flate2"
version = "1.0.27"
version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
dependencies = [
"crc32fast",
"miniz_oxide",
@ -207,24 +207,24 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "itoa"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
[[package]]
name = "jobserver"
version = "0.1.26"
version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
dependencies = [
"libc",
]
[[package]]
name = "libc"
version = "0.2.148"
version = "0.2.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
[[package]]
name = "link-cplusplus"
@ -256,30 +256,30 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.18.0"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "pkg-config"
version = "0.3.27"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
[[package]]
name = "proc-macro2"
version = "1.0.67"
version = "1.0.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.33"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
@ -298,9 +298,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
[[package]]
name = "ryu"
version = "1.0.15"
version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
[[package]]
name = "scratch"
@ -310,18 +310,18 @@ checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
[[package]]
name = "serde"
version = "1.0.188"
version = "1.0.194"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.188"
version = "1.0.194"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0"
dependencies = [
"proc-macro2",
"quote",
@ -330,9 +330,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.107"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
checksum = "6fbd975230bada99c8bb618e0c365c2eefa219158d5c6c29610fd09ff1833257"
dependencies = [
"itoa",
"ryu",
@ -347,9 +347,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "syn"
version = "2.0.33"
version = "2.0.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9caece70c63bfba29ec2fed841a09851b14a235c60010fa4de58089b6c025668"
checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e"
dependencies = [
"proc-macro2",
"quote",
@ -358,18 +358,18 @@ dependencies = [
[[package]]
name = "termcolor"
version = "1.2.0"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
dependencies = [
"winapi-util",
]
[[package]]
name = "trybuild"
version = "1.0.84"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5c89fd17b7536f2cf66c97cff6e811e89e728ca0ed13caeed610c779360d8b4"
checksum = "8419ecd263363827c5730386f418715766f584e2f874d32c23c5b00bd9727e7e"
dependencies = [
"basic-toml",
"dissimilar",
@ -389,9 +389,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-width"
version = "0.1.10"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
[[package]]
name = "winapi"
@ -411,9 +411,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.5"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
dependencies = [
"winapi",
]

View File

@ -1,48 +0,0 @@
From 6dc559c0726c2d2d9a928bd8d1ed89773c0b47ea Mon Sep 17 00:00:00 2001
From: Daira Hopwood <daira@jacaranda.org>
Date: Wed, 1 Feb 2023 15:15:19 +0000
Subject: [PATCH] #4494 added calls to snprintf, but did not take into account
that snprintf can truncate, and then return the number of characters that
would have been written without truncation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
---
RELICENSE/daira.md | 15 +++++++++++++++
src/tcp_address.cpp | 5 +++--
src/udp_engine.cpp | 6 +++---
3 files changed, 21 insertions(+), 5 deletions(-)
create mode 100644 RELICENSE/daira.md
diff --git a/src/tcp_address.cpp b/src/tcp_address.cpp
index 46b4defc7..cd8016f64 100644
--- a/src/tcp_address.cpp
+++ b/src/tcp_address.cpp
@@ -129,8 +129,9 @@ static std::string make_address_string (const char *hbuf_,
pos += hbuf_len;
memcpy (pos, ipv6_suffix_, sizeof ipv6_suffix_ - 1);
pos += sizeof ipv6_suffix_ - 1;
- pos += snprintf (pos, max_port_str_length + 1 * sizeof (char), "%d",
- ntohs (port_));
+ int res = snprintf (pos, max_port_str_length + 1, "%d", ntohs (port_));
+ zmq_assert (res > 0 && res < (int) (max_port_str_length + 1));
+ pos += res;
return std::string (buf, pos - buf);
}
diff --git a/src/udp_engine.cpp b/src/udp_engine.cpp
index 47f1359e1..5ca03a425 100644
--- a/src/udp_engine.cpp
+++ b/src/udp_engine.cpp
@@ -367,9 +367,9 @@ void zmq::udp_engine_t::sockaddr_to_msg (zmq::msg_t *msg_,
const char *const name = inet_ntoa (addr_->sin_addr);
char port[6];
- const int port_len = snprintf (port, 6 * sizeof (char), "%d",
- static_cast<int> (ntohs (addr_->sin_port)));
- zmq_assert (port_len > 0);
+ const int port_len =
+ snprintf (port, 6, "%d", static_cast<int> (ntohs (addr_->sin_port)));
+ zmq_assert (port_len > 0 && port_len < 6);
const size_t name_len = strlen (name);
const int size = static_cast<int> (name_len) + 1 /* colon */

View File

@ -0,0 +1,13 @@
diff -ur zeromq-4.3.5-orig/src/proxy.cpp zeromq-4.3.5/src/proxy.cpp
--- zeromq-4.3.5-orig/src/proxy.cpp 2023-10-09 09:37:00.000000000 +0000
+++ zeromq-4.3.5/src/proxy.cpp 2023-12-18 21:24:25.551814814 +0000
@@ -499,7 +499,7 @@
zmq_pollitem_t itemsout[] = {{frontend_, 0, ZMQ_POLLOUT, 0},
{backend_, 0, ZMQ_POLLOUT, 0}};
- stats_proxy stats = {0};
+ stats_proxy stats = {{{0}}};
// Proxy can be in these three states
proxy_state_t state = active;
Only in zeromq-4.3.5/src: .proxy.cpp.swp

View File

@ -1,249 +0,0 @@
From f7df6c8599835d6022335d63f37e291514d9a6f4 Mon Sep 17 00:00:00 2001
From: Arnaud Loonstra <arnaud@sphaero.org>
Date: Tue, 24 Jan 2023 12:54:48 +0100
Subject: [PATCH] deprecate sprint and replace with snprintf
---
src/tcp_address.cpp | 3 ++-
src/udp_engine.cpp | 4 ++--
tests/test_inproc_connect.cpp | 4 ++--
tests/test_issue_566.cpp | 2 +-
tests/test_proxy.cpp | 12 ++++++++----
tests/test_reqrep_tcp.cpp | 8 ++++++--
tests/test_setsockopt.cpp | 2 +-
tests/test_stream_disconnect.cpp | 4 ++--
tests/test_unbind_wildcard.cpp | 12 ++++++------
tests/test_ws_transport.cpp | 3 ++-
tests/testutil.cpp | 18 +++++++++---------
11 files changed, 41 insertions(+), 31 deletions(-)
diff --git a/src/tcp_address.cpp b/src/tcp_address.cpp
index bdda66a200..46b4defc79 100644
--- a/src/tcp_address.cpp
+++ b/src/tcp_address.cpp
@@ -129,7 +129,8 @@ static std::string make_address_string (const char *hbuf_,
pos += hbuf_len;
memcpy (pos, ipv6_suffix_, sizeof ipv6_suffix_ - 1);
pos += sizeof ipv6_suffix_ - 1;
- pos += sprintf (pos, "%d", ntohs (port_));
+ pos += snprintf (pos, max_port_str_length + 1 * sizeof (char), "%d",
+ ntohs (port_));
return std::string (buf, pos - buf);
}
diff --git a/src/udp_engine.cpp b/src/udp_engine.cpp
index d09bfe166e..47f1359e1b 100644
--- a/src/udp_engine.cpp
+++ b/src/udp_engine.cpp
@@ -367,8 +367,8 @@ void zmq::udp_engine_t::sockaddr_to_msg (zmq::msg_t *msg_,
const char *const name = inet_ntoa (addr_->sin_addr);
char port[6];
- const int port_len =
- sprintf (port, "%d", static_cast<int> (ntohs (addr_->sin_port)));
+ const int port_len = snprintf (port, 6 * sizeof (char), "%d",
+ static_cast<int> (ntohs (addr_->sin_port)));
zmq_assert (port_len > 0);
const size_t name_len = strlen (name);
diff --git a/tests/test_inproc_connect.cpp b/tests/test_inproc_connect.cpp
index 7a3acbda8c..c6437d55bb 100644
--- a/tests/test_inproc_connect.cpp
+++ b/tests/test_inproc_connect.cpp
@@ -155,7 +155,7 @@ void test_connect_before_bind_ctx_term ()
void *connect_socket = test_context_socket (ZMQ_ROUTER);
char ep[32];
- sprintf (ep, "inproc://cbbrr%d", i);
+ snprintf (ep, 32 * sizeof (char), "inproc://cbbrr%d", i);
TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (connect_socket, ep));
// Cleanup
@@ -233,7 +233,7 @@ void test_simultaneous_connect_bind_threads ()
// Set up thread arguments: context followed by endpoint string
for (unsigned int i = 0; i < no_of_times; ++i) {
thr_args[i] = (void *) endpts[i];
- sprintf (endpts[i], "inproc://foo_%d", i);
+ snprintf (endpts[i], 20 * sizeof (char), "inproc://foo_%d", i);
}
// Spawn all threads as simultaneously as possible
diff --git a/tests/test_issue_566.cpp b/tests/test_issue_566.cpp
index 7a8859feba..2495eadfbe 100644
--- a/tests/test_issue_566.cpp
+++ b/tests/test_issue_566.cpp
@@ -58,7 +58,7 @@ void test_issue_566 ()
void *dealer = zmq_socket (ctx2, ZMQ_DEALER);
// Leave space for NULL char from sprintf, gcc warning
char routing_id[11];
- sprintf (routing_id, "%09d", cycle);
+ snprintf (routing_id, 11 * sizeof (char), "%09d", cycle);
TEST_ASSERT_SUCCESS_ERRNO (
zmq_setsockopt (dealer, ZMQ_ROUTING_ID, routing_id, 10));
int rcvtimeo = 1000;
diff --git a/tests/test_proxy.cpp b/tests/test_proxy.cpp
index 5666721be1..16722e3ce5 100644
--- a/tests/test_proxy.cpp
+++ b/tests/test_proxy.cpp
@@ -88,7 +88,8 @@ static void client_task (void *db_)
TEST_ASSERT_SUCCESS_ERRNO (
zmq_setsockopt (endpoint, ZMQ_LINGER, &linger, sizeof (linger)));
char endpoint_source[256];
- sprintf (endpoint_source, "inproc://endpoint%d", databag->id);
+ snprintf (endpoint_source, 256 * sizeof (char), "inproc://endpoint%d",
+ databag->id);
TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (endpoint, endpoint_source));
char *my_endpoint = s_recv (endpoint);
TEST_ASSERT_NOT_NULL (my_endpoint);
@@ -107,7 +108,8 @@ static void client_task (void *db_)
char content[CONTENT_SIZE_MAX] = {};
// Set random routing id to make tracing easier
char routing_id[ROUTING_ID_SIZE] = {};
- sprintf (routing_id, "%04X-%04X", rand () % 0xFFFF, rand () % 0xFFFF);
+ snprintf (routing_id, ROUTING_ID_SIZE * sizeof (char), "%04X-%04X",
+ rand () % 0xFFFF, rand () % 0xFFFF);
TEST_ASSERT_SUCCESS_ERRNO (zmq_setsockopt (
client, ZMQ_ROUTING_ID, routing_id,
ROUTING_ID_SIZE)); // includes '\0' as an helper for printf
@@ -164,7 +166,8 @@ static void client_task (void *db_)
}
if (keep_sending) {
- sprintf (content, "request #%03d", ++request_nbr); // CONTENT_SIZE
+ snprintf (content, CONTENT_SIZE_MAX * sizeof (char),
+ "request #%03d", ++request_nbr); // CONTENT_SIZE
if (is_verbose)
printf ("client send - routing_id = %s request #%03d\n",
routing_id, request_nbr);
@@ -228,7 +231,8 @@ void server_task (void * /*unused_*/)
TEST_ASSERT_NOT_NULL (endpoint_receivers[i]);
TEST_ASSERT_SUCCESS_ERRNO (zmq_setsockopt (
endpoint_receivers[i], ZMQ_LINGER, &linger, sizeof (linger)));
- sprintf (endpoint_source, "inproc://endpoint%d", i);
+ snprintf (endpoint_source, 256 * sizeof (char), "inproc://endpoint%d",
+ i);
TEST_ASSERT_SUCCESS_ERRNO (
zmq_bind (endpoint_receivers[i], endpoint_source));
}
diff --git a/tests/test_reqrep_tcp.cpp b/tests/test_reqrep_tcp.cpp
index c1bdf4719b..01d263ab3d 100644
--- a/tests/test_reqrep_tcp.cpp
+++ b/tests/test_reqrep_tcp.cpp
@@ -66,8 +66,12 @@ void make_connect_address (char *connect_address_,
const int port_,
const char *bind_address_)
{
- sprintf (connect_address_, "tcp://%s:%i;%s", ipv6_ ? "[::1]" : "127.0.0.1",
- port_, strrchr (bind_address_, '/') + 1);
+ if (ipv6_)
+ snprintf (connect_address_, 30 * sizeof (char), "tcp://[::1]:%i;%s",
+ port_, strrchr (bind_address_, '/') + 1);
+ else
+ snprintf (connect_address_, 38 * sizeof (char), "tcp://127.0.0.1:%i;%s",
+ port_, strrchr (bind_address_, '/') + 1);
}
void test_multi_connect (int ipv6_)
diff --git a/tests/test_setsockopt.cpp b/tests/test_setsockopt.cpp
index 7e51a519c3..50414682b3 100644
--- a/tests/test_setsockopt.cpp
+++ b/tests/test_setsockopt.cpp
@@ -120,7 +120,7 @@ void test_setsockopt_bindtodevice ()
TEST_ASSERT_EQUAL_INT8 ('\0', devname[0]);
TEST_ASSERT_EQUAL_UINT (1, buflen);
- sprintf (devname, "testdev");
+ snprintf (devname, BOUNDDEVBUFSZ * sizeof (char), "testdev");
buflen = strlen (devname);
TEST_ASSERT_SUCCESS_ERRNO (
diff --git a/tests/test_stream_disconnect.cpp b/tests/test_stream_disconnect.cpp
index d46916f279..2e1e77960c 100644
--- a/tests/test_stream_disconnect.cpp
+++ b/tests/test_stream_disconnect.cpp
@@ -78,8 +78,8 @@ void test_stream_disconnect ()
// Apparently Windows can't connect to 0.0.0.0. A better fix would be welcome.
#ifdef ZMQ_HAVE_WINDOWS
- sprintf (connect_endpoint, "tcp://127.0.0.1:%s",
- strrchr (bind_endpoint, ':') + 1);
+ snprintf (connect_endpoint, MAX_SOCKET_STRING * sizeof (char),
+ "tcp://127.0.0.1:%s", strrchr (bind_endpoint, ':') + 1);
#else
strcpy (connect_endpoint, bind_endpoint);
#endif
diff --git a/tests/test_unbind_wildcard.cpp b/tests/test_unbind_wildcard.cpp
index f25d6acc46..92a577d9dd 100644
--- a/tests/test_unbind_wildcard.cpp
+++ b/tests/test_unbind_wildcard.cpp
@@ -40,8 +40,8 @@ void test_address_wildcard_ipv4 ()
// Apparently Windows can't connect to 0.0.0.0. A better fix would be welcome.
#ifdef ZMQ_HAVE_WINDOWS
- sprintf (connect_endpoint, "tcp://127.0.0.1:%s",
- strrchr (bind_endpoint, ':') + 1);
+ snprintf (connect_endpoint, 256 * sizeof (char), "tcp://127.0.0.1:%s",
+ strrchr (bind_endpoint, ':') + 1);
#else
strcpy (connect_endpoint, bind_endpoint);
#endif
@@ -81,11 +81,11 @@ void test_address_wildcard_ipv6 ()
#ifdef ZMQ_HAVE_WINDOWS
if (ipv6)
- sprintf (connect_endpoint, "tcp://[::1]:%s",
- strrchr (bind_endpoint, ':') + 1);
+ snprintf (connect_endpoint, 256 * sizeof (char), "tcp://[::1]:%s",
+ strrchr (bind_endpoint, ':') + 1);
else
- sprintf (connect_endpoint, "tcp://127.0.0.1:%s",
- strrchr (bind_endpoint, ':') + 1);
+ snprintf (connect_endpoint, 256 * sizeof (char), "tcp://127.0.0.1:%s",
+ strrchr (bind_endpoint, ':') + 1);
#else
strcpy (connect_endpoint, bind_endpoint);
#endif
diff --git a/tests/test_ws_transport.cpp b/tests/test_ws_transport.cpp
index 49b810fec0..6781af4d7d 100644
--- a/tests/test_ws_transport.cpp
+++ b/tests/test_ws_transport.cpp
@@ -47,7 +47,8 @@ void test_roundtrip ()
zmq_getsockopt (sb, ZMQ_LAST_ENDPOINT, bind_address, &addr_length));
// Windows can't connect to 0.0.0.0
- sprintf (connect_address, "ws://127.0.0.1%s", strrchr (bind_address, ':'));
+ snprintf (connect_address, MAX_SOCKET_STRING * sizeof (char),
+ "ws://127.0.0.1%s", strrchr (bind_address, ':'));
TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (sc, connect_address));
diff --git a/tests/testutil.cpp b/tests/testutil.cpp
index 5306aff9b2..ba7eb9b592 100644
--- a/tests/testutil.cpp
+++ b/tests/testutil.cpp
@@ -510,16 +510,15 @@
addr_len = sizeof (struct sockaddr_storage);
TEST_ASSERT_SUCCESS_RAW_ERRNO (
getsockname (s_pre, (struct sockaddr *) &addr, &addr_len));
- sprintf (my_endpoint_, "%s://%s:%u",
- protocol_ == IPPROTO_TCP
- ? "tcp"
- : protocol_ == IPPROTO_UDP
- ? "udp"
- : protocol_ == IPPROTO_WSS ? "wss" : "ws",
- address_,
- af_ == AF_INET
- ? ntohs ((*(struct sockaddr_in *) &addr).sin_port)
- : ntohs ((*(struct sockaddr_in6 *) &addr).sin6_port));
+ snprintf (
+ my_endpoint_, 6 + strlen (address_) + 7 * sizeof (char), "%s://%s:%u",
+ protocol_ == IPPROTO_TCP ? "tcp"
+ : protocol_ == IPPROTO_UDP ? "udp"
+ : protocol_ == IPPROTO_WSS ? "wss"
+ : "ws",
+ address_,
+ af_ == AF_INET ? ntohs ((*(struct sockaddr_in *) &addr).sin_port)
+ : ntohs ((*(struct sockaddr_in6 *) &addr).sin6_port));
}
return s_pre;

View File

@ -1,17 +0,0 @@
diff -ur zeromq-4.3.3-orig/src/clock.cpp zeromq-4.3.3/src/clock.cpp
--- zeromq-4.3.3-orig/src/clock.cpp 2020-10-13 13:44:04.190000000 +0100
+++ zeromq-4.3.3/src/clock.cpp 2020-10-13 13:47:04.170000000 +0100
@@ -126,9 +126,13 @@
init_compatible_get_tick_count64 ();
#endif
+#ifndef ZMQ_HAVE_WINDOWS
const uint64_t usecs_per_msec = 1000;
+#endif
const uint64_t usecs_per_sec = 1000000;
+#if !defined(ZMQ_HAVE_WINDOWS) && !defined(ZMQ_HAVE_FREEBSD)
const uint64_t nsecs_per_usec = 1000;
+#endif
zmq::clock_t::clock_t () :
_last_tsc (rdtsc ()),

View File

@ -1,7 +1,7 @@
Zcash Contributors
==================
Jack Grigg (1388)
Jack Grigg (1416)
Kris Nuttycombe (702)
Simon Liu (460)
Sean Bowe (409)
@ -22,7 +22,7 @@ sasha (80)
Cory Fields (78)
Matt Corallo (62)
Nathan Wilcox (57)
Daira Emma Hopwood (49)
Daira Emma Hopwood (51)
practicalswift (43)
Dimitris Apostolou (43)
Kevin Gallagher (38)
@ -80,6 +80,7 @@ Gareth Davies (5)
sandakersmann (4)
instagibbs (4)
gladcow (4)
Yasser Isa (4)
WO (4)
Sjors Provoost (4)
Nate Wilcox (4)
@ -114,6 +115,7 @@ kpcyrd (2)
kobake (2)
hexabot (2)
face (2)
dependabot[bot] (2)
aniemerg (2)
Yuri Zhykin (2)
UdjinM6 (2)
@ -170,7 +172,6 @@ ewillbefull@gmail.com (1)
emilrus (1)
dismad (1)
dexX7 (1)
dependabot[bot] (1)
daniel (1)
cronicc (1)
codetriage-readme-bot (1)
@ -179,7 +180,6 @@ ayleph (1)
avnish98 (1)
adityapk00 (1)
Za Wilcox (1)
Yasser Isa (1)
Yasser (1)
William M Peaster (1)
Vidar Holen (1)

View File

@ -42,9 +42,8 @@ time, and may shift due to changes in network solution power.
<!-- RELEASE_SCRIPT_START_MARKER - If you make changes here, check make-release.py -->
| `zcashd` version | Release date | Halt height | End of Support |
| ---------------- | ------------ | ----------- | -------------- |
| 5.6.0-rc1 | 2023-06-08 | 2243024 | 2023-09-28 |
| 5.6.0 | 2023-06-14 | 2250924 | 2023-10-04 |
| 5.6.1 | 2023-06-21 | 2258800 | 2023-10-11 |
| 5.7.0-rc1 | 2023-09-22 | 2365300 | 2024-01-12 |
| 5.7.0 | 2023-09-28 | 2372200 | 2024-01-18 |
| 5.8.0-rc1 | 2023-12-21 | 2468300 | 2024-04-11 |
| 5.8.0 | 2024-01-02 | 2482200 | 2024-04-23 |
<!-- RELEASE_SCRIPT_END_MARKER -->

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASH-CLI "1" "September 2023" "zcash-cli v5.7.0" "User Commands"
.TH ZCASH-CLI "1" "January 2024" "zcash-cli v5.8.0" "User Commands"
.SH NAME
zcash-cli \- manual page for zcash-cli v5.7.0
zcash-cli \- manual page for zcash-cli v5.8.0
.SH DESCRIPTION
Zcash RPC client version v5.7.0
Zcash RPC client version v5.8.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASH-TX "1" "September 2023" "zcash-tx v5.7.0" "User Commands"
.TH ZCASH-TX "1" "January 2024" "zcash-tx v5.8.0" "User Commands"
.SH NAME
zcash-tx \- manual page for zcash-tx v5.7.0
zcash-tx \- manual page for zcash-tx v5.8.0
.SH DESCRIPTION
Zcash zcash\-tx utility version v5.7.0
Zcash zcash\-tx utility version v5.8.0
.SS "Usage:"
.TP
zcash\-tx [options] <hex\-tx> [commands]

View File

@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASHD-WALLET-TOOL "1" "September 2023" "zcashd-wallet-tool v5.7.0" "User Commands"
.TH ZCASHD-WALLET-TOOL "1" "January 2024" "zcashd-wallet-tool v5.8.0" "User Commands"
.SH NAME
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.7.0
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.8.0
.SH SYNOPSIS
.B zcashd-wallet-tool
[\fI\,OPTIONS\/\fR]

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASHD "1" "September 2023" "zcashd v5.7.0" "User Commands"
.TH ZCASHD "1" "January 2024" "zcashd v5.8.0" "User Commands"
.SH NAME
zcashd \- manual page for zcashd v5.7.0
zcashd \- manual page for zcashd v5.8.0
.SH DESCRIPTION
Zcash Daemon version v5.7.0
Zcash Daemon version v5.8.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.

View File

@ -0,0 +1,36 @@
Changelog
=========
Daira Emma Hopwood (2):
Suppress compilation warnings for K&R-style prototypes when building bdb by adding `-Wno-deprecated-non-prototype` to `CFLAGS`.
Suppress link warnings when building bdb by adding `-Wno-unused-command-line-argument` to `LDFLAGS`.
Jack Grigg (19):
CI: Use latest stable Rust for book deployment
CI: Rename build workflow to CI
CI: Only run CI workflow once per PR
CI: Switch to 8-core Ubuntu runners
CI: Move matrix definition into a separate job
CI: Rename `matrix.os` to `matrix.build_os`
CI: Upload artifacts from regular build
CI: Run btests and gtests
CI: Split config flag bitrot builds into a separate job
CI: Fix CCache path on macOS
cargo vet prune
cargo update
depends: utfcpp 4.0.4
depends: ZeroMQ 4.3.5
depends: native_cmake 3.28.1
depends: cxx 1.0.111
qa: Bump postponed dependencies
make-release.py: Versioning changes for 5.8.0-rc1.
make-release.py: Updated manpages for 5.8.0-rc1.
Yasser Isa (3):
Delete contrib/ci-builders directory
Delete contrib/ci-workers directory
CI: Add sharding to GoogleTest job
dependabot[bot] (1):
build(deps): bump actions/checkout from 3 to 4

View File

@ -0,0 +1,45 @@
Changelog
=========
Daira Emma Hopwood (2):
Suppress compilation warnings for K&R-style prototypes when building bdb by adding `-Wno-deprecated-non-prototype` to `CFLAGS`.
Suppress link warnings when building bdb by adding `-Wno-unused-command-line-argument` to `LDFLAGS`.
Jack Grigg (28):
CI: Use latest stable Rust for book deployment
CI: Rename build workflow to CI
CI: Only run CI workflow once per PR
CI: Switch to 8-core Ubuntu runners
CI: Move matrix definition into a separate job
CI: Rename `matrix.os` to `matrix.build_os`
CI: Upload artifacts from regular build
CI: Run btests and gtests
CI: Split config flag bitrot builds into a separate job
CI: Fix CCache path on macOS
cargo vet prune
cargo update
depends: utfcpp 4.0.4
depends: ZeroMQ 4.3.5
depends: native_cmake 3.28.1
depends: cxx 1.0.111
qa: Bump postponed dependencies
make-release.py: Versioning changes for 5.8.0-rc1.
make-release.py: Updated manpages for 5.8.0-rc1.
make-release.py: Updated release notes and changelog for 5.8.0-rc1.
make-release.py: Updated book for 5.8.0-rc1.
Update Rust dependencies for 5.8.0
Postpone update to Rust 1.75.0
depends: cxx 1.0.113
depends: native_ccache 4.9
depends: utfcpp 4.0.5
make-release.py: Versioning changes for 5.8.0.
make-release.py: Updated manpages for 5.8.0.
Yasser Isa (3):
Delete contrib/ci-builders directory
Delete contrib/ci-workers directory
CI: Add sharding to GoogleTest job
dependabot[bot] (1):
build(deps): bump actions/checkout from 3 to 4

File diff suppressed because it is too large Load Diff

View File

@ -32,11 +32,11 @@ version = "0.8.2"
criteria = "safe-to-deploy"
[[exemptions.ahash]]
version = "0.8.3"
version = "0.8.6"
criteria = "safe-to-deploy"
[[exemptions.aho-corasick]]
version = "1.0.5"
version = "1.1.1"
criteria = "safe-to-deploy"
[[exemptions.allocator-api2]]
@ -107,10 +107,6 @@ criteria = "safe-to-deploy"
version = "0.1.2"
criteria = "safe-to-deploy"
[[exemptions.cc]]
version = "1.0.83"
criteria = "safe-to-deploy"
[[exemptions.chacha20]]
version = "0.9.1"
criteria = "safe-to-deploy"
@ -127,6 +123,10 @@ criteria = "safe-to-deploy"
version = "1.0.9"
criteria = "safe-to-deploy"
[[exemptions.const-oid]]
version = "0.9.6"
criteria = "safe-to-deploy"
[[exemptions.cpufeatures]]
version = "0.2.8"
criteria = "safe-to-deploy"
@ -167,8 +167,12 @@ criteria = "safe-to-deploy"
version = "1.0.95"
criteria = "safe-to-deploy"
[[exemptions.der]]
version = "0.7.8"
criteria = "safe-to-deploy"
[[exemptions.deranged]]
version = "0.3.8"
version = "0.3.10"
criteria = "safe-to-deploy"
[[exemptions.digest]]
@ -228,7 +232,7 @@ version = "0.2.6"
criteria = "safe-to-deploy"
[[exemptions.gimli]]
version = "0.27.0"
version = "0.28.1"
criteria = "safe-to-deploy"
[[exemptions.group]]
@ -243,12 +247,16 @@ criteria = "safe-to-deploy"
version = "0.8.1"
criteria = "safe-to-deploy"
[[exemptions.hashbrown]]
version = "0.14.3"
criteria = "safe-to-deploy"
[[exemptions.hdwallet]]
version = "0.3.1"
criteria = "safe-to-deploy"
[[exemptions.hermit-abi]]
version = "0.3.1"
version = "0.3.3"
criteria = "safe-to-deploy"
[[exemptions.home]]
@ -304,25 +312,25 @@ version = "0.9.0"
criteria = "safe-to-deploy"
[[exemptions.libc]]
version = "0.2.148"
version = "0.2.151"
criteria = "safe-to-deploy"
[[exemptions.libm]]
version = "0.2.2"
criteria = "safe-to-deploy"
[[exemptions.libredox]]
version = "0.0.1"
criteria = "safe-to-deploy"
[[exemptions.linux-raw-sys]]
version = "0.4.7"
version = "0.4.12"
criteria = "safe-to-deploy"
[[exemptions.memchr]]
version = "2.6.3"
criteria = "safe-to-deploy"
[[exemptions.memoffset]]
version = "0.6.5"
criteria = "safe-to-deploy"
[[exemptions.memuse]]
version = "0.2.0"
criteria = "safe-to-deploy"
@ -348,7 +356,7 @@ version = "0.2.1"
criteria = "safe-to-deploy"
[[exemptions.mio]]
version = "0.8.2"
version = "0.8.10"
criteria = "safe-to-deploy"
[[exemptions.nix]]
@ -363,10 +371,6 @@ criteria = "safe-to-deploy"
version = "0.7.0"
criteria = "safe-to-deploy"
[[exemptions.nu-ansi-term]]
version = "0.46.0"
criteria = "safe-to-deploy"
[[exemptions.num_cpus]]
version = "1.13.1"
criteria = "safe-to-deploy"
@ -379,10 +383,6 @@ criteria = "safe-to-deploy"
version = "1.17.0"
criteria = "safe-to-deploy"
[[exemptions.overload]]
version = "0.1.1"
criteria = "safe-to-deploy"
[[exemptions.pairing]]
version = "0.22.0"
criteria = "safe-to-deploy"
@ -423,12 +423,20 @@ criteria = "safe-to-deploy"
version = "0.8.0"
criteria = "safe-to-deploy"
[[exemptions.pkcs8]]
version = "0.10.2"
criteria = "safe-to-deploy"
[[exemptions.poly1305]]
version = "0.7.2"
criteria = "safe-to-deploy"
[[exemptions.portable-atomic]]
version = "1.4.3"
version = "1.6.0"
criteria = "safe-to-deploy"
[[exemptions.powerfmt]]
version = "0.2.0"
criteria = "safe-to-deploy"
[[exemptions.ppv-lite86]]
@ -472,11 +480,7 @@ version = "0.3.0"
criteria = "safe-to-deploy"
[[exemptions.redox_syscall]]
version = "0.2.16"
criteria = "safe-to-deploy"
[[exemptions.redox_syscall]]
version = "0.3.5"
version = "0.4.1"
criteria = "safe-to-deploy"
[[exemptions.redox_users]]
@ -516,7 +520,7 @@ version = "2.1.0"
criteria = "safe-to-deploy"
[[exemptions.rustix]]
version = "0.38.13"
version = "0.38.28"
criteria = "safe-to-deploy"
[[exemptions.rusty-fork]]
@ -527,10 +531,6 @@ criteria = "safe-to-deploy"
version = "1.0.11"
criteria = "safe-to-deploy"
[[exemptions.scopeguard]]
version = "1.1.0"
criteria = "safe-to-deploy"
[[exemptions.secp256k1]]
version = "0.26.0"
criteria = "safe-to-deploy"
@ -555,8 +555,8 @@ criteria = "safe-to-deploy"
version = "1.0.81"
criteria = "safe-to-deploy"
[[exemptions.sharded-slab]]
version = "0.1.4"
[[exemptions.sha2]]
version = "0.10.8"
criteria = "safe-to-deploy"
[[exemptions.siphasher]]
@ -567,10 +567,6 @@ criteria = "safe-to-deploy"
version = "0.1.3"
criteria = "safe-to-deploy"
[[exemptions.socket2]]
version = "0.4.9"
criteria = "safe-to-deploy"
[[exemptions.socket2]]
version = "0.5.4"
criteria = "safe-to-deploy"
@ -579,6 +575,10 @@ criteria = "safe-to-deploy"
version = "0.5.2"
criteria = "safe-to-deploy"
[[exemptions.spki]]
version = "0.7.3"
criteria = "safe-to-deploy"
[[exemptions.static_assertions]]
version = "1.1.0"
criteria = "safe-to-deploy"
@ -599,12 +599,8 @@ criteria = "safe-to-deploy"
version = "0.8.0"
criteria = "safe-to-deploy"
[[exemptions.thread_local]]
version = "1.1.4"
criteria = "safe-to-deploy"
[[exemptions.time]]
version = "0.3.28"
version = "0.3.30"
criteria = "safe-to-deploy"
[[exemptions.time-macros]]
@ -612,7 +608,7 @@ version = "0.2.7"
criteria = "safe-to-deploy"
[[exemptions.tokio]]
version = "1.32.0"
version = "1.35.0"
criteria = "safe-to-deploy"
[[exemptions.toml_edit]]
@ -624,7 +620,7 @@ version = "0.3.2"
criteria = "safe-to-deploy"
[[exemptions.tracing]]
version = "0.1.37"
version = "0.1.40"
criteria = "safe-to-deploy"
[[exemptions.tracing-appender]]
@ -639,10 +635,6 @@ criteria = "safe-to-deploy"
version = "0.1.30"
criteria = "safe-to-deploy"
[[exemptions.tracing-subscriber]]
version = "0.3.16"
criteria = "safe-to-deploy"
[[exemptions.typenum]]
version = "1.15.0"
criteria = "safe-to-deploy"
@ -664,11 +656,11 @@ version = "0.11.0+wasi-snapshot-preview1"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen]]
version = "0.2.87"
version = "0.2.89"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen-backend]]
version = "0.2.87"
version = "0.2.89"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen-macro]]
@ -680,7 +672,7 @@ version = "0.2.87"
criteria = "safe-to-deploy"
[[exemptions.web-sys]]
version = "0.3.64"
version = "0.3.66"
criteria = "safe-to-deploy"
[[exemptions.which]]
@ -700,7 +692,7 @@ version = "0.4.0"
criteria = "safe-to-deploy"
[[exemptions.winnow]]
version = "0.5.15"
version = "0.5.31"
criteria = "safe-to-deploy"
[[exemptions.wyz]]
@ -711,8 +703,16 @@ criteria = "safe-to-deploy"
version = "2.5.0"
criteria = "safe-to-deploy"
[[exemptions.zerocopy]]
version = "0.7.31"
criteria = "safe-to-deploy"
[[exemptions.zerocopy-derive]]
version = "0.7.31"
criteria = "safe-to-deploy"
[[exemptions.zeroize]]
version = "1.4.3"
version = "1.7.0"
criteria = "safe-to-deploy"
[[exemptions.zeroize_derive]]

View File

@ -64,6 +64,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows-sys]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows-targets]]
version = "0.48.5"
when = "2023-08-18"
@ -71,6 +78,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows-targets]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_aarch64_gnullvm]]
version = "0.48.5"
when = "2023-08-18"
@ -78,6 +92,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_aarch64_gnullvm]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_aarch64_msvc]]
version = "0.48.5"
when = "2023-08-18"
@ -85,6 +106,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_aarch64_msvc]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_i686_gnu]]
version = "0.48.5"
when = "2023-08-18"
@ -92,6 +120,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_i686_gnu]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_i686_msvc]]
version = "0.48.5"
when = "2023-08-18"
@ -99,6 +134,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_i686_msvc]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_x86_64_gnu]]
version = "0.48.5"
when = "2023-08-18"
@ -106,6 +148,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_x86_64_gnu]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_x86_64_gnullvm]]
version = "0.48.5"
when = "2023-08-18"
@ -113,6 +162,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_x86_64_gnullvm]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_x86_64_msvc]]
version = "0.48.5"
when = "2023-08-18"
@ -120,6 +176,13 @@ user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.windows_x86_64_msvc]]
version = "0.52.0"
when = "2023-11-15"
user-id = 64539
user-login = "kennykerr"
user-name = "Kenny Kerr"
[[publisher.zcash_address]]
version = "0.3.0"
when = "2023-06-06"
@ -146,14 +209,14 @@ user-login = "nuttycom"
user-name = "Kris Nuttycombe"
[[publisher.zcash_primitives]]
version = "0.13.0-rc.1"
when = "2023-09-08"
version = "0.13.0"
when = "2023-09-25"
user-id = 6289
user-login = "str4d"
[[publisher.zcash_proofs]]
version = "0.13.0-rc.1"
when = "2023-09-08"
version = "0.13.0"
when = "2023-09-25"
user-id = 6289
user-login = "str4d"
@ -226,6 +289,12 @@ who = "Benjamin Bouvier <public@benj.me>"
criteria = "safe-to-deploy"
delta = "0.9.0 -> 0.10.2"
[[audits.bytecode-alliance.audits.cc]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
version = "1.0.73"
notes = "I am the author of this crate."
[[audits.bytecode-alliance.audits.cfg-if]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
@ -260,12 +329,6 @@ criteria = "safe-to-deploy"
delta = "0.3.0 -> 0.3.1"
notes = "Just a dependency version bump and a bug fix for redox"
[[audits.bytecode-alliance.audits.errno-dragonfly]]
who = "Jamey Sharp <jsharp@fastly.com>"
criteria = "safe-to-deploy"
version = "0.1.2"
notes = "This should be portable to any POSIX system and seems like it should be part of the libc crate, but at any rate it's safe as is."
[[audits.bytecode-alliance.audits.futures-channel]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
@ -278,32 +341,17 @@ criteria = "safe-to-deploy"
version = "0.3.27"
notes = "Unsafe used to implement a concurrency primitive AtomicWaker. Well-commented and not obviously incorrect. Like my other audits of these concurrency primitives inside the futures family, I couldn't certify that it is correct without formal methods, but that is out of scope for this vetting."
[[audits.bytecode-alliance.audits.gimli]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
delta = "0.27.0 -> 0.27.3"
notes = "More support for more DWARF, nothing major in this update. Some small refactorings and updates to publication of the package but otherwise everything's in order."
[[audits.bytecode-alliance.audits.gimli]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
delta = "0.27.3 -> 0.28.0"
notes = """
Still looks like a good DWARF-parsing crate, nothing major was added or deleted
and no `unsafe` code to review here.
"""
[[audits.bytecode-alliance.audits.hashbrown]]
who = "Chris Fallin <chris@cfallin.org>"
criteria = "safe-to-deploy"
delta = "0.12.3 -> 0.13.1"
notes = "The diff looks plausible. Much of it is low-level memory-layout code and I can't be 100% certain without a deeper dive into the implementation logic, but nothing looks actively malicious."
[[audits.bytecode-alliance.audits.hashbrown]]
who = "Trevor Elliott <telliott@fastly.com>"
[[audits.bytecode-alliance.audits.http]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
delta = "0.13.1 -> 0.13.2"
notes = "I read through the diff between v0.13.1 and v0.13.2, and verified that the changes made matched up with the changelog entries. There were very few changes between these two releases, and it was easy to verify what they did."
delta = "0.2.9 -> 1.0.0"
notes = "Minor changes leading up to the 1.0.0 release and nothing fundamentally new here."
[[audits.bytecode-alliance.audits.libm]]
who = "Alex Crichton <alex@alexcrichton.com>"
@ -329,12 +377,6 @@ who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "0.1.0"
[[audits.bytecode-alliance.audits.memoffset]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
delta = "0.7.1 -> 0.8.0"
notes = "This was a small update to the crate which has to do with Rust language features and compiler versions, no substantial changes."
[[audits.bytecode-alliance.audits.miniz_oxide]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
@ -349,6 +391,12 @@ its own longevity should be relatively hardened against some of the more common
compression-related issues.
"""
[[audits.bytecode-alliance.audits.nu-ansi-term]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "0.46.0"
notes = "one use of unsafe to call windows specific api to get console handle."
[[audits.bytecode-alliance.audits.object]]
who = "Jamey Sharp <jsharp@fastly.com>"
criteria = "safe-to-deploy"
@ -370,6 +418,12 @@ criteria = "safe-to-deploy"
delta = "0.31.1 -> 0.32.0"
notes = "Various new features and refactorings as one would expect from an object parsing crate, all looks good."
[[audits.bytecode-alliance.audits.overload]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "0.1.1"
notes = "small crate, only defines macro-rules!, nicely documented as well"
[[audits.bytecode-alliance.audits.pin-utils]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
@ -406,11 +460,23 @@ criteria = "safe-to-deploy"
version = "1.0.17"
notes = "plenty of unsafe pointer and vec tricks, but in well-structured and commented code that appears to be correct"
[[audits.bytecode-alliance.audits.sharded-slab]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "0.1.4"
notes = "I always really enjoy reading eliza's code, she left perfect comments at every use of unsafe."
[[audits.bytecode-alliance.audits.tempfile]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
delta = "3.3.0 -> 3.5.0"
[[audits.bytecode-alliance.audits.thread_local]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "1.1.4"
notes = "uses unsafe to implement thread local storage of objects"
[[audits.bytecode-alliance.audits.tinyvec]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
@ -431,6 +497,11 @@ intended to multiplex across the internal representation of a tinyvec,
presumably. This trivially doesn't contain anything bad.
"""
[[audits.bytecode-alliance.audits.tracing-subscriber]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "0.3.17"
[[audits.bytecode-alliance.audits.try-lock]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
@ -622,12 +693,33 @@ who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
delta = "0.2.0 -> 0.2.1"
[[audits.isrg.audits.fiat-crypto]]
who = "Tim Geoghegan <timg@divviup.org>"
criteria = "safe-to-deploy"
delta = "0.2.1 -> 0.2.2"
notes = "No changes to `unsafe` code, or any functional changes that I can detect at all."
[[audits.isrg.audits.fiat-crypto]]
who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
delta = "0.2.2 -> 0.2.4"
[[audits.isrg.audits.fiat-crypto]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
delta = "0.2.4 -> 0.2.5"
[[audits.isrg.audits.getrandom]]
who = "Tim Geoghegan <timg@letsencrypt.org>"
criteria = "safe-to-deploy"
delta = "0.2.9 -> 0.2.10"
notes = "These changes include some new `unsafe` code for the `emscripten` and `psvita` targets, but all it does is call `libc::getentropy`."
[[audits.isrg.audits.getrandom]]
who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
delta = "0.2.10 -> 0.2.11"
[[audits.isrg.audits.hmac]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
@ -643,6 +735,11 @@ who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
delta = "0.2.15 -> 0.2.16"
[[audits.isrg.audits.num-traits]]
who = "Ameer Ghani <inahga@divviup.org>"
criteria = "safe-to-deploy"
delta = "0.2.16 -> 0.2.17"
[[audits.isrg.audits.once_cell]]
who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
@ -653,6 +750,11 @@ who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
delta = "1.17.2 -> 1.18.0"
[[audits.isrg.audits.once_cell]]
who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
delta = "1.18.0 -> 1.19.0"
[[audits.isrg.audits.opaque-debug]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
@ -673,11 +775,21 @@ who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
delta = "1.6.1 -> 1.7.0"
[[audits.isrg.audits.rayon]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
delta = "1.7.0 -> 1.8.0"
[[audits.isrg.audits.rayon-core]]
who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
delta = "1.10.2 -> 1.11.0"
[[audits.isrg.audits.rayon-core]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
delta = "1.11.0 -> 1.12.0"
[[audits.isrg.audits.serde]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
@ -748,11 +860,6 @@ who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
delta = "1.0.94 -> 1.0.95"
[[audits.isrg.audits.sha2]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
version = "0.10.2"
[[audits.isrg.audits.syn]]
who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy"
@ -859,6 +966,13 @@ criteria = "safe-to-deploy"
delta = "2.2.1 -> 2.3.2"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.bitflags]]
who = "Jan-Erik Rediger <jrediger@mozilla.com>"
criteria = "safe-to-deploy"
delta = "2.4.0 -> 2.4.1"
notes = "Only allowing new clippy lints"
aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml"
[[audits.mozilla.audits.block-buffer]]
who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
@ -871,6 +985,18 @@ criteria = "safe-to-deploy"
delta = "1.2.1 -> 1.3.0"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.cc]]
who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
delta = "1.0.73 -> 1.0.78"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.cc]]
who = "Jan-Erik Rediger <jrediger@mozilla.com>"
criteria = "safe-to-deploy"
delta = "1.0.78 -> 1.0.83"
aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml"
[[audits.mozilla.audits.crossbeam-channel]]
who = "Jan-Erik Rediger <jrediger@mozilla.com>"
criteria = "safe-to-deploy"
@ -1002,12 +1128,6 @@ criteria = "safe-to-deploy"
version = "0.4.1"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.memoffset]]
who = "Gabriele Svelto <gsvelto@mozilla.com>"
criteria = "safe-to-deploy"
delta = "0.6.5 -> 0.7.1"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.nom]]
who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
@ -1269,12 +1389,6 @@ criteria = "safe-to-deploy"
delta = "1.0.91 -> 1.0.93"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.sha2]]
who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
delta = "0.10.2 -> 0.10.6"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.syn]]
who = "Jan-Erik Rediger <jrediger@mozilla.com>"
criteria = "safe-to-deploy"

View File

@ -4,36 +4,54 @@
# bdb 18.1.40 2020-09-01
#
# Boost 1.84.0 causes gtests to fail on macOS.
boost 1.84.0 2024-02-01
native_b2 1.84.0 2024-02-01
# Clang and Rust are currently pinned to LLVM 15
libcxx 15.0.7 2023-11-15
libcxx 16.0.0 2023-11-15
libcxx 16.0.1 2023-11-15
libcxx 16.0.2 2023-11-15
libcxx 16.0.2 2023-11-15
libcxx 16.0.3 2023-11-15
libcxx 16.0.4 2023-11-15
libcxx 16.0.5 2023-11-15
libcxx 16.0.6 2023-11-15
libcxx 17.0.0 2023-11-15
libcxx 17.0.1 2023-11-15
native_clang 15.0.7 2023-11-15
native_clang 16.0.0 2023-11-15
native_clang 16.0.1 2023-11-15
native_clang 16.0.2 2023-11-15
native_clang 16.0.3 2023-11-15
native_clang 16.0.4 2023-11-15
native_clang 16.0.5 2023-11-15
native_clang 16.0.6 2023-11-15
native_clang 17.0.0 2023-11-15
native_clang 17.0.1 2023-11-15
native_rust 1.70.0 2023-11-15
native_rust 1.71.0 2023-11-15
native_rust 1.71.1 2023-11-15
native_rust 1.72.0 2023-11-15
native_rust 1.72.1 2023-11-15
libcxx 15.0.7 2024-03-15
libcxx 16.0.0 2024-03-15
libcxx 16.0.1 2024-03-15
libcxx 16.0.2 2024-03-15
libcxx 16.0.2 2024-03-15
libcxx 16.0.3 2024-03-15
libcxx 16.0.4 2024-03-15
libcxx 16.0.5 2024-03-15
libcxx 16.0.6 2024-03-15
libcxx 17.0.0 2024-03-15
libcxx 17.0.1 2024-03-15
libcxx 17.0.2 2024-03-15
libcxx 17.0.3 2024-03-15
libcxx 17.0.4 2024-03-15
libcxx 17.0.5 2024-03-15
libcxx 17.0.6 2024-03-15
native_clang 15.0.7 2024-03-15
native_clang 16.0.0 2024-03-15
native_clang 16.0.1 2024-03-15
native_clang 16.0.2 2024-03-15
native_clang 16.0.3 2024-03-15
native_clang 16.0.4 2024-03-15
native_clang 16.0.5 2024-03-15
native_clang 16.0.6 2024-03-15
native_clang 17.0.0 2024-03-15
native_clang 17.0.1 2024-03-15
native_clang 17.0.2 2024-03-15
native_clang 17.0.3 2024-03-15
native_clang 17.0.4 2024-03-15
native_clang 17.0.5 2024-03-15
native_clang 17.0.6 2024-03-15
native_rust 1.70.0 2024-03-15
native_rust 1.71.0 2024-03-15
native_rust 1.71.1 2024-03-15
native_rust 1.72.0 2024-03-15
native_rust 1.72.1 2024-03-15
native_rust 1.73.0 2024-03-15
native_rust 1.74.0 2024-03-15
native_rust 1.74.1 2024-03-15
native_rust 1.75.0 2024-03-15
# We follow upstream Bitcoin Core's LevelDB updates
leveldb 1.23 2023-11-15
leveldb 1.23 2024-03-15
# We're never updating to this version
bdb 18.1.40 2024-03-01
bdb 18.1.40 2025-03-01

View File

@ -16,7 +16,7 @@
//! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it
#define CLIENT_VERSION_MAJOR 5
#define CLIENT_VERSION_MINOR 7
#define CLIENT_VERSION_MINOR 8
#define CLIENT_VERSION_REVISION 0
#define CLIENT_VERSION_BUILD 50

View File

@ -13,7 +13,7 @@
// Per https://zips.z.cash/zip-0200
// Shut down nodes running this version of code, 16 weeks' worth of blocks after the estimated
// release block height. A warning is shown during the 14 days' worth of blocks prior to shut down.
static const int APPROX_RELEASE_HEIGHT = 2243176;
static const int APPROX_RELEASE_HEIGHT = 2353176;
static const int RELEASE_TO_DEPRECATION_WEEKS = 16;
static const int EXPECTED_BLOCKS_PER_HOUR = 3600 / Consensus::POST_BLOSSOM_POW_TARGET_SPACING;
static_assert(EXPECTED_BLOCKS_PER_HOUR == 48, "The value of Consensus::POST_BLOSSOM_POW_TARGET_SPACING was chosen such that this assertion holds.");