| Summary: | Mk/Scripts/cargo-crates.awk: "make cargo-crates" doesn't strip branch name | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Ports & Packages | Reporter: | Jan Beich <jbeich> | ||||||||
| Component: | Ports Framework | Assignee: | Tobias Kortkamp <tobik> | ||||||||
| Status: | Closed FIXED | ||||||||||
| Severity: | Affects Some People | CC: | portmgr, ports-bugs | ||||||||
| Priority: | --- | Keywords: | needs-qa | ||||||||
| Version: | Latest | ||||||||||
| Hardware: | Any | ||||||||||
| OS: | Any | ||||||||||
| URL: | https://reviews.freebsd.org/D11571 | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Jan Beich
2017-07-07 21:41:52 UTC
Created attachment 184162 [details]
v0.1
x11/alacritty has ?rev=<hash>, so let's tackle it as well.
(In reply to Jan Beich from comment #1) Looking at [1] I think we would need to strip ?tag= as well. A dependency of e.g. libc = {git = "https://github.com/rust-lang/libc", tag = "0.2.26"} in Cargo.toml results in [[package]] name = "libc" version = "0.2.26" source = "git+https://github.com/rust-lang/libc?tag=0.2.26#288942e6858a4b2f8ee56338da5386263b9c4b82" in Cargo.lock and then the wrong GH_TUPLE output again: GH_TUPLE= rust-lang:libc?tag=0.2.26:288942e6858a4b2f8ee56338da5386263b9c4b82:libc which (given that we have an actual tag) probably should be GH_TUPLE= rust-lang:libc:0.2.26:libc [1] https://github.com/rust-lang/cargo/blob/master/src/doc/specifying-dependencies.md#specifying-dependencies-from-git-repositories Created attachment 184169 [details]
cargo-crates.diff
Here's a patch that has special handling for ?tag=.
I created a review on Phabricator with a slightly more sophisticated solution. A commit references this bug: Author: tobik Date: Wed Jul 19 14:00:17 UTC 2017 New revision: 446198 URL: https://svnweb.freebsd.org/changeset/ports/446198 Log: When specifying Git dependencies in Cargo.toml developers can set 3 additional keys: rev, branch, tag [1]. These are reflected in a projects' Cargo.lock file as e.g. git+https://github.com/servo/angle?branch=servo#a1371e8a160128677af863d1d73f150862ba42b2 git+https://github.com/rust-lang/libc?tag=0.2.26#288942e6858a4b2f8ee56338da5386263b9c4b82 Currently cargo-crates.awk generates the wrong output in these cases: GH_TUPLE= servo:angle?branch=servo:a1371e8a160128677af863d1d73f150862ba42b2:angle \ rust-lang:libc?tag=0.2.26:288942e6858a4b2f8ee56338da5386263b9c4b82:libc Fix cargo-crates.awk to ignore the query string (except in the tag case) and generate GH_TUPLE= servo:angle:a1371e8a160128677af863d1d73f150862ba42b2:angle \ rust-lang:libc:0.2.26:libc instead. [1] https://github.com/rust-lang/cargo/blob/master/src/doc/specifying-dependencies.md#specifying-dependencies-from-git-repositories PR: 220548 Reported by: jbeich Reviewed by: jbeich, mat Differential Revision: https://reviews.freebsd.org/D11571 Changes: head/Mk/Scripts/cargo-crates.awk |