Bug#860116: [Pkg-rust-maintainers] Bug#860116: RFH: cargo -- Rust package manager
This is still listed as RFH - is there still help required/appreciated? I like the rust eco-system and would like to contribute here. -- /Laurin -BEGIN PGP PUBLIC KEY BLOCK- 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 CYjPkDA2K1CR/XA27Y87NWg= =lXQM -END PGP PUBLIC KEY BLOCK- signature.asc Description: This is a digitally signed message part
Bug#860116: [Pkg-rust-maintainers] Bug#860116: RFH: cargo -- Rust package manager
On Thursday, April 20, 2017 8:16:00 AM UTC Ximin Luo wrote: > - cargo still embeds libgit2-sys source code, and I can see that in the > deps-tarball-filter.txt Luca was explicitly leaving it in. Is that because > they patch the source code? > > Can we just get rid of it, and link to libgit2 instead? It would be nice, but last time I tried upstream was tracking libgit2 from master: https://github.com/alexcrichton/git2-rs/pull/80 Things may have changed in the meanwhile, I did not re-assess since then. Ciao, Luca -- "If you build a wall, think of what you leave outside it" - Italo Calvino signature.asc Description: This is a digitally signed message part.
Bug#860116: [Pkg-rust-maintainers] Bug#860116: RFH: cargo -- Rust package manager
On Thu, Apr 20, 2017 at 08:16:00AM +, Ximin Luo wrote: > Josh Triplett: > > [..] > > > > ...and looking at git from 20 minutes ago, it looks like you've switched > > over to directory registries now. > > > > Thanks for the tip, yes I figured this out by looking at both your dh-cargo > code and also the Fedora cargo package. [1] > > The new version is uploaded to experimental, but there's some more things I'd > like to tidy up before uploading it to unstable. > > - I get errors about missing "cargotest" and "hamcrest" when I try to `make > test`, it looks like cargotest is actually in the rustc package: > > https://github.com/rust-lang/rust/tree/master/src/tools/cargotest > > Any suggestions on how to deal with this? I guess the obvious thing to do is > to package a librust-cargotest-xxx-dev package but I wonder if there are > better options. > > - cargo still embeds libgit2-sys source code, and I can see that in the > deps-tarball-filter.txt Luca was explicitly leaving it in. Is that because > they patch the source code? > > Can we just get rid of it, and link to libgit2 instead? git2-rs doesn't modify libgit2, but it does use a snapshot from git, via a submodule. And unfortunately, while it supports building against a system version via pkg-config, it doesn't include any version number in its dependency. libgit2 itself doesn't have a stable ABI, so either an older *or* a newer version can potentially fail due to incompatibilities. (Also, like many libraries, libgit2 doesn't really update its SONAME and similar except when releasing, even though many people run git snapshots.) Fortunately, git2-rs uses ctest now to attempt to make sure its bindings match the actual signatures of the functions, so at least an attempt to build against an older (or sometimes newer) version of libgit2 will tend to produce compile errors (assuming you get all the environment variables set correctly to find it). However, I know of at least one case where git2-rs pulled in a new snapshot of libgit2 to obtain critical bugfixes rather than differences in ABI. In short, I think we *could* switch to pulling in the system version of libgit2, but we'd need to work very closely with the libgit2 maintainer, and sometimes package snapshots of libgit2 from git. We might also want to work with libgit2 and git2-rs upstreams to 1) get more regular updates to the version number that appears in the pkg-config file and 2) get libgit2-sys to declare a pkg-config dependency that matches its snapshot of libgit2. - Josh Triplett
Bug#860116: [Pkg-rust-maintainers] Bug#860116: RFH: cargo -- Rust package manager
Josh Triplett: > [..] > > ...and looking at git from 20 minutes ago, it looks like you've switched > over to directory registries now. > Thanks for the tip, yes I figured this out by looking at both your dh-cargo code and also the Fedora cargo package. [1] The new version is uploaded to experimental, but there's some more things I'd like to tidy up before uploading it to unstable. - I get errors about missing "cargotest" and "hamcrest" when I try to `make test`, it looks like cargotest is actually in the rustc package: https://github.com/rust-lang/rust/tree/master/src/tools/cargotest Any suggestions on how to deal with this? I guess the obvious thing to do is to package a librust-cargotest-xxx-dev package but I wonder if there are better options. - cargo still embeds libgit2-sys source code, and I can see that in the deps-tarball-filter.txt Luca was explicitly leaving it in. Is that because they patch the source code? Can we just get rid of it, and link to libgit2 instead? X [1] https://src.fedoraproject.org/cgit/rpms/cargo.git/tree/cargo.spec -- GPG: ed25519/56034877E1F87C35 GPG: rsa4096/1318EFAC5FBBDBCE https://github.com/infinity0/pubkeys.git
Bug#860116: [Pkg-rust-maintainers] Bug#860116: RFH: cargo -- Rust package manager
On Wed, Apr 19, 2017 at 11:11:00PM +, Ximin Luo wrote: > Ximin Luo: > > [..] > > I've made some more process and have pushed 0.17.0 to git. However we're > getting build errors and I don't know how to proceed: > > https://anonscm.debian.org/cgit/pkg-rust/cargo.git/tree/debian/TODO > https://anonscm.debian.org/cgit/pkg-rust/cargo.git/tree/debian/cargo-vendor-pack.py > > I'm not familiar with the Cargo repo formats, and I don't know how > d/cargo-vendor-pack.py should be fixed. Help would be appreciated. > > Josh, is this anything related to how your dh-cargo works? Any code that we > can reuse? Not directly, until we're ready to package all the individual crate dependencies (which we'll want to do at some point). But you can definitely use the same mechanism; it'd be much easier to generate a directory registry than the full Cargo index format. Rather than generating an index file and repo, just: 1) Copy every crate directory, verbatim, into a subdirectory of a vendor directory. 2) Create a file .cargo-checksum.json in the crate directory, containing {"package":"$SHA256","files":{}} , where $SHA256 is the sha256 of the .crate file. 3) Create a directory containing a file "config", containing: [source.crates-io] replace-with = "my-registry" [source.my-registry] directory = "/path/to/the/vendor/directory" 4) Set CARGO_HOME to the directory containing that config file, and build. debcargo can help a bit with this. Run it on a crate, move debian/cargo-checksum.json to .cargo-checksum.json , aggregate debian/copyright, remove the rest of debian/ , and put the resulting directory into the registry directory. ...and looking at git from 20 minutes ago, it looks like you've switched over to directory registries now.
Bug#860116: [Pkg-rust-maintainers] Bug#860116: RFH: cargo -- Rust package manager
Ximin Luo: > [..] I've made some more process and have pushed 0.17.0 to git. However we're getting build errors and I don't know how to proceed: https://anonscm.debian.org/cgit/pkg-rust/cargo.git/tree/debian/TODO https://anonscm.debian.org/cgit/pkg-rust/cargo.git/tree/debian/cargo-vendor-pack.py I'm not familiar with the Cargo repo formats, and I don't know how d/cargo-vendor-pack.py should be fixed. Help would be appreciated. Josh, is this anything related to how your dh-cargo works? Any code that we can reuse? X -- GPG: ed25519/56034877E1F87C35 GPG: rsa4096/1318EFAC5FBBDBCE https://github.com/infinity0/pubkeys.git
Bug#860116: [Pkg-rust-maintainers] Bug#860116: RFH: cargo -- Rust package manager
Ximin Luo: > [..] > > Right now, cargo needs to be updated to the next version, there are some open > bugs about it: > > https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=cargo > > I have not yet looked at this package myself but if there are any questions > you > can probably prod lucab@ to answer them. He has a different handle on IRC, you > can join #debian-rust on OFTC to talk to us. > > [..] I've updated our cargo.git with some documentation on how to update the package, and updated some configs and scripts etc to match. Now things will "work" if you run: $ debian/make_orig_multi.sh 0.16.0 # move the files over $ gbp import-orig ../cargo_0.16.0.orig.tar.gz # also imports the -deps tarball automatically However, I've decided to not yet push these 0.16.0 commits, because I'm not sure if we need to tweak the -deps tarball further. Luca, could you give us some guidance on how to proceed? Perhaps we need to first expand clean-cargo-deps.patch or deps-tarball-filter.txt? X -- GPG: ed25519/56034877E1F87C35 GPG: rsa4096/1318EFAC5FBBDBCE https://github.com/infinity0/pubkeys.git