diff --git a/CHANGELOG.md b/CHANGELOG.md index e8760cf..e2bab8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.1.9] - 2024-07-28 + +- Change the default configuration to use a preinstalled protobuf compiler, instead of attempting to + build the `protobuf-src` crate, which causes many headaches on less common platforms. This means + that the `vendored-protoc` feature is no longer included in the default features. + + ## [0.1.8] - 2024-07-26 - New method `contains()` on `PsshBoxVec`. diff --git a/Cargo.toml b/Cargo.toml index 1abf3eb..8971434 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "pssh-box" description = "Parsing and serialization support for PSSH boxes used in DRM systems" -version = "0.1.8" +version = "0.1.9" authors = ["Eric Marsden "] readme = "README.md" repository = "https://github.com/emarsden/pssh-box-rs/" @@ -27,7 +27,7 @@ byteorder = "1.5.0" hex = "0.4.3" hex-literal = "0.4.1" hxdmp = "0.2.1" -bstr = "1.9.1" +bstr = "1.10.0" num_enum = "0.7.2" base64 = "0.22.1" tracing = { version = "0.1.40", features = ["attributes"] } @@ -36,13 +36,12 @@ anyhow = "1.0.86" [dev-dependencies] clap = { version = "=4.3.24", features = ["cargo", "unicode", "wrap_help"] } reqwest = { version = "0.12.5", features = ["blocking"] } -tokio = { version = "1.39.1", features = ["rt-multi-thread", "time", "macros"] } +tokio = { version = "1.39.2", features = ["rt-multi-thread", "time", "macros"] } tracing-subscriber = { version = "0.3", features = ["env-filter", "time"] } test-log = { version = "0.2.16", features = ["trace"] } pretty_assertions = "1.4.0" [features] -default = ["vendored-protoc"] vendored-protoc = ["dep:protobuf-src"] [build-dependencies] diff --git a/README.md b/README.md index 35f8223..2f35922 100755 --- a/README.md +++ b/README.md @@ -79,14 +79,16 @@ if let PsshData::Widevine(ref pd) = pssh.pssh_data { ## Build The protoc compiler is used during the build process to translate the protobuf interface definition -for Widevine PSSH data into Rust structs. This happens in the `build.rs` file. - -The default configuration of this crate depends on the `protobuf-src` crate to build a vendored -version of the protoc compiler. This requires a working C++ compiler and autoconf support. To build -on Windows, the simplest solution seems to be the UCRT64 environment of -[MSYS2](https://www.msys2.org/); see our GitHub continuous integration workflow for one recipe that -works. Disable the default feature `vendored-protoc` to use a locally installed protoc compiler -instead (from Debian package `protobuf-compiler`, for example). +for Widevine PSSH data into Rust structs. This happens in the `build.rs` file. The default +configuration uses a **prebuilt protobuf compiler**, which must be locally installed (from Debian +package `protobuf-compiler`, for example). + +As an alternative if the `vendored-protoc` feature is enabled, the `protobuf-src` crate is used to +build a vendored version of the protoc compiler. This requires a working C++ compiler and cmake +support, and tends to be rather unreliable (in particular, the abseil-cpp component of protobuf +often causes build failures on any mildly unusual platform). To build on Windows, the simplest +solution seems to be the UCRT64 environment of [MSYS2](https://www.msys2.org/); see our GitHub +continuous integration workflow for one recipe that works. ## License