cardoe / cargo-ebuild

cargo extension that can generate ebuilds using the in-tree eclasses

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

0.3.0 having problems with optional deps

gyakovlev opened this issue · comments

unable to generate working ebuild for sccache-0.2.13 for example.
seems to be omitting all deps that are marked optional or/and behind features.

sccache package is one of the few using features as useflags.

here's the diff between CRATES string generated by 0.2.0 and 0.3.0 created in the same source:

--- 0.2.0       2020-02-28 23:30:45.649771657 -0800
+++ 0.3.0       2020-02-28 23:30:03.467066148 -0800
@@ -5,6 +5,2 @@
 arc-swap-0.4.4
-arrayref-0.3.5
-arrayvec-0.5.1
-ascii-0.8.7
-ascii-0.9.3
 assert_cmd-0.9.1
@@ -20,7 +16,4 @@
 bitflags-1.2.1
-blake2b_simd-0.5.9
 block-buffer-0.7.3
 block-padding-0.1.5
-buf_redux-0.6.3
-bufstream-0.1.4
 byte-tools-0.3.1
@@ -33,8 +26,4 @@
 chrono-0.4.10
-chunked_transfer-0.3.1
 clap-2.33.0
 cloudabi-0.0.3
-combine-3.8.1
-conhash-0.4.0
-constant_time_eq-0.1.4
 cookie-0.12.0
@@ -48,3 +37,2 @@
 crossbeam-queue-0.1.2
-crossbeam-utils-0.5.0
 crossbeam-utils-0.6.6
@@ -57,3 +45,2 @@
 directories-1.0.2
-dirs-1.0.5
 dtoa-0.4.4
@@ -62,3 +49,2 @@
 env_logger-0.5.13
-error-chain-0.11.0
 error-chain-0.12.1
@@ -100,3 +86,2 @@
 jobserver-0.1.19
-jsonwebtoken-6.0.1
 kernel32-sys-0.2.2
@@ -105,4 +90,2 @@
 libc-0.2.66
-libmount-0.1.15
-libz-sys-1.0.25
 linked-hash-map-0.2.1
@@ -115,11 +98,6 @@
 maybe-uninit-2.0.0
-md-5-0.8.0
-md5-0.3.8
-memcached-rs-0.3.0
-memchr-1.0.2
 memchr-2.2.1
 memoffset-0.5.3
-mime-0.2.6
+md-5-0.8.0
 mime-0.3.14
-mime_guess-1.8.7
 mime_guess-2.0.1
@@ -132,7 +110,4 @@
 msdos_time-0.1.6
-multipart-0.13.6
 native-tls-0.2.3
 net2-0.2.33
-nix-0.11.1
-nix-0.14.1
 normalize-line-endings-0.2.2
@@ -151,6 +126,2 @@
 percent-encoding-2.1.0
-phf-0.7.24
-phf_codegen-0.7.24
-phf_generator-0.7.24
-phf_shared-0.7.24
 pkg-config-0.3.17
@@ -185,5 +156,3 @@
 rdrand-0.4.0
-redis-0.9.1
 redox_syscall-0.1.56
-redox_users-0.3.1
 regex-1.3.1
@@ -194,4 +163,2 @@
 ring-0.14.6
-rouille-2.2.0
-rust-argon2-0.5.1
 rustc-demangle-0.1.16
@@ -199,3 +166,2 @@
 ryu-1.0.2
-safemem-0.2.0
 safemem-0.3.3
@@ -215,3 +181,2 @@
 sha-1-0.8.1
-sha1-0.6.0
 sha2-0.8.0
@@ -219,3 +184,2 @@
 signal-hook-registry-1.2.0
-siphasher-0.2.3
 skeptic-0.4.0
@@ -234,3 +198,2 @@
 synstructure-0.12.3
-syslog-4.0.1
 tar-0.4.26
@@ -238,3 +201,2 @@
 tempfile-3.1.0
-term-0.5.2
 termcolor-1.0.5
@@ -242,5 +204,3 @@
 thread_local-0.3.6
-threadpool-1.7.1
 time-0.1.42
-tiny_http-0.6.2
 tokio-0.1.22
@@ -281,5 +241,3 @@
 try_from-0.3.2
-twoway-0.1.8
 typenum-1.11.2
-unicase-1.4.2
 unicase-2.6.0
@@ -290,4 +248,2 @@
 unicode-xid-0.2.0
-unix_socket-0.5.0
-unreachable-1.0.0
 untrusted-0.6.2
@@ -299,6 +255,4 @@
 vec_map-0.8.1
-version-compare-0.0.10
 version_check-0.1.5
 version_check-0.9.1
-void-1.0.2
 vte-0.3.3

actually even 0.2.0 can't generate working CRATES string.
still getting missing crates, for example

>>> Compiling source in /var/tmp/portage/dev-util/sccache-0.2.13/work/sccache-0.2.13 ...
error: failed to select a version for the requirement `bincode = "= 1.2.0"`
  candidate versions found which didn't match: 1.2.1, 0.8.0

bincode = "= 1.2.0 failure was easy to workaround by manually adding, but 0.3.0 still needs to be looked at, as it produces incomplete crate list.

cargo ebuild uses cargo_metadata to gather dependencies which wraps cargo metadata. Please check the output of cargo metadata to see if its generating the correct data.