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"
 }

Reply via email to