XPost: linux.debian.bugs.dist
From: tg@mirbsd.de
Package: dpkg-dev
Version: 1.22.21
Severity: minor
X-Debbugs-Cc: Thorsten Glaser
The fields are currently, like all the other Vcs-* fields,
specified to take (only) an €€€url€€€ parameter.
For VCS-git, this is not entirely correct, the spec should be:
"VCS-git:" wsp url [wsp "-b" wsp branchname]
This is well-established and has been disseminated right around
the time those VCS-* headers were introduced.
For VCS-CVS, we need two(!) items instead. CVS repository
coordinates are not defined, nor definable, by an URL, as
they are comprised of two independent URL-like entities,
the path to the repository and the module within that.
For example, to obtain the upstream sources for mksh, you can do:
cvs -Rqd _anoncvs@anoncvs.mirbsd.org:/cvs co -PA src/bin/mksh
Here, the RCS ,v files are placed in /cvs/src/bin/mksh/ on
the server. However, we cannot just say, for example,
VCS-CVS: _anoncvs@anoncvs.mirbsd.org:/cvs/src/bin/mksh # wrong
€€€ because the split between the CVS repository and the
module within the repository cannot be determined from
just that.
It also cannot be determined server-side, as each repository
is defined by having a CVSROOT/ subdirectory, but you can
nest them (and I€€€ve seen people do that, and I€€€ve done that
for my cvs2git pseudo-repos as well), and between€€€
cvs -Rqd user@example.org:/repo co subrepo/dir/file
# vs.
cvs -Rqd user@example.org:/repo/subrepo co dir/file
€€€ you get different content (the RCS IDs will differ), so
the distinction must be observed.
With CVS rising in importance due to git going to require
a port of LLVM and Rust to be used, excluding most hobby
OSes, I would like this spec bug to be fixed so lintian
stops complaining. I have been na€€vely (relying only on
the aforementioned announcement) using€€€
"VCS-CVS:" wsp repopath wsp modulepath
€€€ for this purpose, but am willing to work together to find
a better spec if this doesn€€€t suit. (Spaces within directory
names are going to break lots, so I hope people stay off them.)
Herein, repopath is anything that fulfills *(cvs)Repository::
(i.e. works as argument to the cvs -d global option), and
modulepath is a relative filesystem construct.
--- SoupGate-Win32 v1.05
* Origin: you cannot sedate... all the things you hate (1:229/2)
|