[gentoo-dev] [PATCH 0/3] net-misc/curl: add curl_quic USE_EXPAND

2024-06-21 Thread kangie
From: Matt Jolly Hi all, Thanks to dev-libs/openssl exposing an RFC 9000 (QUIC) API from 3.2, cURL is able to use OpenSSL as a QUIC backend in addition to its current suppport via net-libs/ngtcp2. Considering the current state of QUIC implementations, the popularity of cURL, its support for a m

[gentoo-dev] [PATCH 1/3] profiles/desc: add curl_quic

2024-06-21 Thread kangie
From: Matt Jolly The CURL_QUIC USE_EXPAND enables us to sanely manage QUIC (RFC 9000) backends as they are added to cURL in the future: currently there are two supported implementations, OpenSSL and ngtcp2, however it's likely that other popular TLS libraries will expose QUIC APIs over time, and

[gentoo-dev] [PATCH 2/3] profiles/base: make.defaults: add CURL_QUIC

2024-06-21 Thread kangie
From: Matt Jolly Signed-off-by: Matt Jolly --- profiles/base/make.defaults | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/base/make.defaults b/profiles/base/make.defaults index c70c5d198531..957af187bda2 100644 --- a/profiles/base/make.defaults +++ b/profiles/base/

[gentoo-dev] [PATCH 3/3] net-misc/curl: wire up live ebuild for openssl-quic

2024-06-21 Thread kangie
From: Matt Jolly Thanks to dev-libs/openssl exposing a QUIC API from 3.2, cURL is able to use OpenSSL as a QUIC backend. This commit enables users to select between the `curl_quic_ngtcp2` and `curl_quic_openssl` backends via their associated USE_EXPAND and provides a mechanism to easily add more

[gentoo-dev] [PATCH 06/10] dev-lang/rust{,-bin}: -r100: Drop the `profiler` USE.

2024-11-06 Thread kangie
From: Matt Jolly We're the ones deviating from the norm. Including the profiler does not noticably increase the build time (at least on amd64), nor does it pull in additional dependencies. What it _does_ do is break upstream build systems that assume a standard rust configuration like upstream w

[gentoo-dev] [PATCH 02/10] cargo: update for rust eclass

2024-11-06 Thread kangie
From: Matt Jolly Inherit the rust eclass and take advantage of eclass features like `RUST_MIN_VER`. Also replace calls to `cargo` with the rust eclass exported ${CARGO}. If used without llvm-r1 (typical usage) an || dependency on Rust slots (between `RUST_M{AX,IN}_VER` if set) will be added. I

[gentoo-dev] [PATCH 00/10] new eclass: rust; slotting dev-lang/rust{-bin}

2024-11-06 Thread kangie
From: Matt Jolly This patchset slots Rust, adds `rust.eclass`, a helper eclass for slotted Rust, and updates `cargo.eclass` to take advantage of the new slotted Rust, requiring a revbump of dependent packages. The intent is to immediately deprecate and shortly remove legacy Rust slots and the v

[gentoo-dev] [PATCH 04/10] profiles/arch/mips: use.mask system-llvm on rust-1.71.1-r100

2024-11-06 Thread kangie
From: Matt Jolly This requires a version of LLVM that is not keyworded for mips. Signed-off-by: Matt Jolly --- profiles/arch/mips/package.use.mask | 4 1 file changed, 4 insertions(+) diff --git a/profiles/arch/mips/package.use.mask b/profiles/arch/mips/package.use.mask index fa77510aa1

[gentoo-dev] [PATCH 05/10] dev-lang/rust-bin: llvm-r1 and slot (-r100)

2024-11-06 Thread kangie
From: Matt Jolly Use the llvm-r1 eclass and our knowledge of the internal LLVM used in -bin to add an appropriate `llvm_slot_{x}` IUSE to each Rust-bin ebuild so that the Rust (and LLVM) eclasses can select an appropriate slotted implementation. `LLVM_OPTIONAL` is used as we don't need to consum

[gentoo-dev] [PATCH 07/10] www-client/chromium: example chromium with slotted rust

2024-11-06 Thread kangie
From: Matt Jolly Signed-off-by: Matt Jolly --- .../chromium/chromium-130.0.6723.91-r1.ebuild | 1387 + 1 file changed, 1387 insertions(+) create mode 100644 www-client/chromium/chromium-130.0.6723.91-r1.ebuild diff --git a/www-client/chromium/chromium-130.0.6723.91-r1.ebuild

[gentoo-dev] [PATCH 08/10] www-client/firefox: add 132.0-r1 - rust and llvm-r1 eclasses

2024-11-06 Thread kangie
From: Matt Jolly Firefox is a bit unusual in that the LTO via the USE=clang path requires a strong dependency between the selected Rust and LLVM slots, while building with GCC (and without LTO) does not. Leverage llvm-r1 to add `llvm_slot_x` USE and use these to ensure that an appropriate Rust i

[gentoo-dev] [PATCH 01/10] rust.eclass: Introduce new eclass for slotted Rust

2024-11-06 Thread kangie
From: Matt Jolly The rust eclass acts similarly to the llvm eclass. It works with optional `RUST_{MAX,MIN}_SLOT` variables to enable ebuilds to trivially generate (and enforce) dependencies on an appropriate Rust SLOT. A `RUST_NEEDS_LLVM` variable can be set to have the eclass read `LLVM_COMPAT

[gentoo-dev] [PATCH 10/10] net-libs/rustls-ffi: rust slot

2024-11-06 Thread kangie
From: Matt Jolly Signed-off-by: Matt Jolly --- .../rustls-ffi/rustls-ffi-0.13.0-r1.ebuild| 107 ++ 1 file changed, 107 insertions(+) create mode 100644 net-libs/rustls-ffi/rustls-ffi-0.13.0-r1.ebuild diff --git a/net-libs/rustls-ffi/rustls-ffi-0.13.0-r1.ebuild b/net-libs/

[gentoo-dev] [PATCH 09/10] gnome-base/librsvg: rust eclass

2024-11-06 Thread kangie
From: Matt Jolly Signed-off-by: Matt Jolly --- gnome-base/librsvg/librsvg-2.58.2-r1.ebuild | 421 1 file changed, 421 insertions(+) create mode 100644 gnome-base/librsvg/librsvg-2.58.2-r1.ebuild diff --git a/gnome-base/librsvg/librsvg-2.58.2-r1.ebuild b/gnome-base/librsv

[gentoo-dev] [PATCH 1/3] cargo.eclass: add trivial crate overrides

2024-11-24 Thread kangie
From: Matt Jolly Updating vulnerable (or otherwise outdated) crates in Rust ebuilds is painful. Generally speaking, there are 5 options: - Run `cargo update` to fetch new versions from the web. This is obviously not suitable for use in Portage. - Patch the software via Portage to accept a non-

[gentoo-dev] [PATCH 0/3] cargo.eclass: Trivial crate replacements

2024-11-24 Thread kangie
From: Matt Jolly Updating vulnerable or outdated crates in Rust ebuilds is not easy. This patchset aims to reduce the developer effort and knowledge required to substitute crates into a Rust build process. We do this by: - Enabling `paths = ['/foo/bar/baz']` style global replacements. This us

[gentoo-dev] [PATCH 2/3] dev-lang/rust{,-bin}: Add 1.54.0

2024-11-24 Thread kangie
From: Matt Jolly These are the the old ebuilds, updated to be slotted. Other changes: - `USE=rls` was dropped at some point, this is now hard-enabled. - As the LLVM is far too old for Gentoo we are using the bundled LLVM exclusively. In particular, dev-lang/rust:1.54.0 forms an important p

[gentoo-dev] [PATCH 3/3] app-antivirus/clamav: example of trivial crate replacement

2024-11-24 Thread kangie
From: Matt Jolly Signed-off-by: Matt Jolly --- app-antivirus/clamav/Manifest | 2 +- .../{clamav-1.0.7-r1.ebuild => clamav-1.0.7-r2.ebuild}| 8 +++- 2 files changed, 8 insertions(+), 2 deletions(-) rename app-antivirus/clamav/{clamav-1.0.7-r1.ebuild => clama

[gentoo-dev] [PATCH] rust.eclass: add ERUST_{SLOT,TYPE} user variables

2024-12-03 Thread kangie
From: Matt Jolly These variables enable users (though most likely Gentoo developers) to override the selection of the Rust implementation by the eclass. This means that _only_ the specified ERUST_SLOT and/or ERUST_TYPE ('source' or 'binary') will be checked for, with the eclass `die`ing with "No

[gentoo-dev] [PATCH] rust.eclass: be verbose when checking if a Rust is suitable

2024-12-16 Thread kangie
From: Matt Jolly This commit addresses some feedback that the Rust eclass should provide feedback to users on what it's actually doing and why a particular Rust was (or was not) deemed suitable for use. To do this we now: - Explicitly note if a Rust slot was skipped due to LLVM_SLOT incompati

[gentoo-dev] [PATCH 1/2] rust-toolchain.eclass: simplify `rust_all_arch_uris`

2025-02-18 Thread kangie
From: Matt Jolly The `mips` logic has been moved into the one ebuild that it impacts, and that ebuild is only required for one package - we'll try to remove it from the tree soon. Merge `loong` into `rust_all_arch_uris()` output unconditionally; the check is now superfluous - all pre-1.71.0 rust

[gentoo-dev] [PATCH 2/2] rust-toolchain.eclass: add rename param to `rust_all_arch_uris()`

2025-02-18 Thread kangie
From: Matt Jolly Also update `rust_arch_uri` to also fetch the asc if we're renaming so that we can use verify-sig. Signed-off-by: Matt Jolly --- eclass/rust-toolchain.eclass | 34 +++--- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/eclass/rust-to

[gentoo-dev] [PATCH 0/2] rust-toolchain.eclass updates

2025-02-18 Thread kangie
From: Matt Jolly These commits are part of a larger body of work which will enable us to add the `beta` and `nightly` channels to dev-lang/rust{,-bin}. Please feel free to provide feedback on the commits directly via the following PR: https://github.com/gentoo/gentoo/pull/40524 which will be mer