On Fri, Nov 29, 2019 at 07:59:35AM -0800, Martin Becze wrote: > On 2019-11-28 12:22, Efraim Flashner wrote: > > On Wed, Nov 27, 2019 at 04:36:20PM -0800, mjbecze@riseup.net wrote: > >> > >> > I'd love to see what you have so far if you want to share > >> > >> Okie Dokie, I posted it and cc'd ya. > >> > >> Also I took a look at your patches. > >> 0001-import-crate-Don-t-include-optional-dependencies.patch should work > >> just fine with my patch. But > >> 0003-import-crate-Honor-versioned-dependencies-when-impor.patch will not > >> work. > >> > >> I took a different route here with the naming. If you are interested take > >> a look take a look at my second patch. (recusive-import-semver) only will > >> add the version number to the name if the crate being imported is not the > >> latest version. I thought this was more inline with the canonical names, > >> but if always adding version number the export symbol is desirable it will > >> simplify things. > >> > > > > I'll take a look at it in a minute. I figured with the versioned > > requirements we would always want to be specific in version numbers for > > crate dependents so I figured it made sense. Also, if we did want to > > provide an unversioned '-latest' version we could declare an extra > > variable '(define-public rust-libc rust-libc-0.2)' and now rust-libc > > points to rust-libc-0.2. > > > >> Also I added a function (find-packages-by-name*/direct) to packages.scm > >> which will return the export symbol of a package that already exists. I > >> use this in case there are some non-canocal export name already added. > >> > > I added the no-optional-dep logic to the recusive-semver patch > (https://issues.guix.gnu.org/issue/38408), but it seems to break > packages. I'm testing on the recursive importer on "hello-cli". Attach > is the patch to add the logic and the before and after output for "guix > import crate -r hello-cli". Removing all the optional deps breaks clap > here for some reason which I haven't figured out. Looking at the two attached files I want to bring attention to the size of them: after.scm [text/plain, base64, utf-8, 5.7K] before.scm [text/plain, base64, utf-8, 226K] One way to fix this (in addition to your "default to the don't build" argument) is to keep rust-clap in it's broken state and define a different rust-clap for when we actually want it and to have that use enough inputs to actually build. I do now actually realize that only really works if we keep all the crates hidden, which I don't think we want. So I guess that has us sending bug reports upstream that some of the optional dependencies aren't actually optional. In any case, I think it'd be better to skip the optional dependencies and then add them back in as needed to actually build the crates we want. -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted