On Fri, Nov 29, 2019 at 07:59:35AM -0800, Martin Becze wrote:
Toggle quote (40 lines)
> 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 sizeof 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 adifferent rust-clap for when we actually want it and to have that useenough inputs to actually build. I do now actually realize that onlyreally works if we keep all the crates hidden, which I don't think wewant. So I guess that has us sending bug reports upstream that some ofthe optional dependencies aren't actually optional.
In any case, I think it'd be better to skip the optional dependenciesand then add them back in as needed to actually build the crates wewant.
-- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנרGPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351Confidentiality cannot be guaranteed on emails sent or received unencrypted