commit: 281acf551568db9d5fe62051b5d3b445f7ca38c9 Author: Craig Andrews <candrews <AT> gentoo <DOT> org> AuthorDate: Sat Nov 30 04:23:44 2019 +0000 Commit: Craig Andrews <candrews <AT> gentoo <DOT> org> CommitDate: Sat Nov 30 04:27:05 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=281acf55
net-libs/quiche: Fix multilib * Depend on multilib rust, doesn't support rust-bin, see: https://bugs.gentoo.org/701362 * Pass --target to cargo * Build boringssl separately because cargo doesn't cross compile correctly, see: https://github.com/cloudflare/quiche/issues/277 Closes: https://bugs.gentoo.org/701346 Package-Manager: Portage-2.3.80, Repoman-2.3.19 Signed-off-by: Craig Andrews <candrews <AT> gentoo.org> .../{quiche-9999.ebuild => quiche-0.1.0-r1.ebuild} | 55 +++++++++++++--------- net-libs/quiche/quiche-9999.ebuild | 25 +++++++--- 2 files changed, 53 insertions(+), 27 deletions(-) diff --git a/net-libs/quiche/quiche-9999.ebuild b/net-libs/quiche/quiche-0.1.0-r1.ebuild similarity index 73% copy from net-libs/quiche/quiche-9999.ebuild copy to net-libs/quiche/quiche-0.1.0-r1.ebuild index 3fad3c0e9a3..53701ea9f16 100644 --- a/net-libs/quiche/quiche-9999.ebuild +++ b/net-libs/quiche/quiche-0.1.0-r1.ebuild @@ -8,15 +8,15 @@ aho-corasick-0.7.6 arrayvec-0.4.11 atty-0.2.13 autocfg-0.1.6 -backtrace-0.3.37 +backtrace-0.3.38 backtrace-sys-0.1.31 -bitflags-1.1.0 +bitflags-1.2.0 bstr-0.2.8 bumpalo-2.6.0 byteorder-1.3.2 cast-0.2.2 cc-1.0.45 -cfg-if-0.1.9 +cfg-if-0.1.10 clap-2.33.0 cmake-0.1.42 criterion-0.3.0 @@ -28,7 +28,7 @@ crossbeam-utils-0.6.6 csv-1.1.1 csv-core-0.1.6 docopt-1.1.0 -either-1.5.2 +either-1.5.3 env_logger-0.6.2 failure-0.1.5 failure_derive-0.1.5 @@ -41,7 +41,7 @@ idna-0.1.5 iovec-0.1.2 itertools-0.8.0 itoa-0.4.4 -js-sys-0.3.27 +js-sys-0.3.28 kernel32-sys-0.2.2 lazy_static-1.4.0 libc-0.2.62 @@ -58,7 +58,7 @@ num-traits-0.2.8 num_cpus-1.10.1 percent-encoding-1.0.1 proc-macro2-0.4.30 -proc-macro2-1.0.3 +proc-macro2-1.0.4 quick-error-1.2.2 quote-0.6.13 quote-1.0.2 @@ -78,8 +78,8 @@ same-file-1.0.5 scopeguard-1.0.0 semver-0.9.0 semver-parser-0.7.0 -serde-1.0.100 -serde_derive-1.0.100 +serde-1.0.101 +serde_derive-1.0.101 serde_json-1.0.40 slab-0.4.2 smallvec-0.6.10 @@ -104,13 +104,13 @@ url-1.7.2 version_check-0.1.5 walkdir-2.2.9 wasi-0.7.0 -wasm-bindgen-0.2.50 -wasm-bindgen-backend-0.2.50 -wasm-bindgen-macro-0.2.50 -wasm-bindgen-macro-support-0.2.50 -wasm-bindgen-shared-0.2.50 -wasm-bindgen-webidl-0.2.50 -web-sys-0.3.27 +wasm-bindgen-0.2.51 +wasm-bindgen-backend-0.2.51 +wasm-bindgen-macro-0.2.51 +wasm-bindgen-macro-support-0.2.51 +wasm-bindgen-shared-0.2.51 +wasm-bindgen-webidl-0.2.51 +web-sys-0.3.28 weedle-0.10.0 winapi-0.2.8 winapi-0.3.8 @@ -122,7 +122,7 @@ wincolor-1.0.2 ws2_32-sys-0.2.1 " -inherit cargo multilib-minimal +inherit cargo cmake-utils flag-o-matic multilib-minimal rust-toolchain DESCRIPTION="Implementation of the QUIC transport protocol and HTTP/3" HOMEPAGE="https://github.com/cloudflare/quiche" @@ -133,7 +133,7 @@ if [[ ${PV} == *9999 ]] ; then else CRATES+=" ${P//_/-}" SRC_URI="$(cargo_crate_uris ${CRATES})" - KEYWORDS="~amd64" + KEYWORDS="~amd64 ~arm64" S="${WORKDIR}/${P//_/-}" fi @@ -151,13 +151,15 @@ IUSE="" DOCS=( CODEOWNERS COPYING README.md ) BDEPEND=" - >=virtual/rust-1.39.0 + >=dev-lang/rust-1.38.0[${MULTILIB_USEDEP}] dev-util/cmake dev-lang/go " DEPEND="" RDEPEND="" +CMAKE_USE_DIR="${S}/deps/boringssl" + src_unpack() { if [[ "${PV}" == *9999* ]]; then git-r3_src_unpack @@ -170,15 +172,26 @@ src_unpack() { src_prepare(){ default + cmake-utils_src_prepare multilib_copy_sources } +multilib_src_configure(){ + append-flags "-fPIC" + local mycmakeargs=( + -DOPENSSL_NO_ASM=ON + -DBUILD_SHARED_LIBS=OFF + ) + BUILD_DIR="${BUILD_DIR}/deps/boringssl/build" cmake-utils_src_configure +} + multilib_src_compile(){ - cargo_src_compile --features pkg-config-meta + BUILD_DIR="${BUILD_DIR}/deps/boringssl/build" cmake-utils_src_compile bssl + QUICHE_BSSL_PATH="${BUILD_DIR}/deps/boringssl" cargo_src_compile --features pkg-config-meta --target="$(rust_abi)" } multilib_src_test(){ - cargo_src_test + QUICHE_BSSL_PATH="${BUILD_DIR}/deps/boringssl" cargo_src_test --target="$(rust_abi)" } multilib_src_install() { @@ -186,5 +199,5 @@ multilib_src_install() { insinto "/usr/$(get_libdir)/pkgconfig" doins target/release/quiche.pc doheader -r include/* - dolib.so target/release/libquiche.so + dolib.so "target/$(rust_abi)/release/libquiche.so" } diff --git a/net-libs/quiche/quiche-9999.ebuild b/net-libs/quiche/quiche-9999.ebuild index 3fad3c0e9a3..9c8f1748e85 100644 --- a/net-libs/quiche/quiche-9999.ebuild +++ b/net-libs/quiche/quiche-9999.ebuild @@ -122,7 +122,7 @@ wincolor-1.0.2 ws2_32-sys-0.2.1 " -inherit cargo multilib-minimal +inherit cargo cmake-utils flag-o-matic multilib-minimal rust-toolchain DESCRIPTION="Implementation of the QUIC transport protocol and HTTP/3" HOMEPAGE="https://github.com/cloudflare/quiche" @@ -133,7 +133,7 @@ if [[ ${PV} == *9999 ]] ; then else CRATES+=" ${P//_/-}" SRC_URI="$(cargo_crate_uris ${CRATES})" - KEYWORDS="~amd64" + KEYWORDS="~amd64 ~arm64" S="${WORKDIR}/${P//_/-}" fi @@ -151,13 +151,15 @@ IUSE="" DOCS=( CODEOWNERS COPYING README.md ) BDEPEND=" - >=virtual/rust-1.39.0 + >=dev-lang/rust-1.38.0[${MULTILIB_USEDEP}] dev-util/cmake dev-lang/go " DEPEND="" RDEPEND="" +CMAKE_USE_DIR="${S}/deps/boringssl" + src_unpack() { if [[ "${PV}" == *9999* ]]; then git-r3_src_unpack @@ -170,15 +172,26 @@ src_unpack() { src_prepare(){ default + cmake-utils_src_prepare multilib_copy_sources } +multilib_src_configure(){ + append-flags "-fPIC" + local mycmakeargs=( + -DOPENSSL_NO_ASM=ON + -DBUILD_SHARED_LIBS=OFF + ) + BUILD_DIR="${BUILD_DIR}/deps/boringssl/build" cmake-utils_src_configure +} + multilib_src_compile(){ - cargo_src_compile --features pkg-config-meta + BUILD_DIR="${BUILD_DIR}/deps/boringssl/build" cmake-utils_src_compile bssl + QUICHE_BSSL_PATH="${BUILD_DIR}/deps/boringssl" cargo_src_compile --features pkg-config-meta --target="$(rust_abi)" } multilib_src_test(){ - cargo_src_test + QUICHE_BSSL_PATH="${BUILD_DIR}/deps/boringssl" cargo_src_test --target="$(rust_abi)" } multilib_src_install() { @@ -186,5 +199,5 @@ multilib_src_install() { insinto "/usr/$(get_libdir)/pkgconfig" doins target/release/quiche.pc doheader -r include/* - dolib.so target/release/libquiche.so + dolib.so "target/$(rust_abi)/release/libquiche.so" }
