Bug#631110: cvs: package description adjustment may help user

June 21st, 2011 - 11:00 am ET by Osamu Aoki | Report spam
Hi,

I was surprised to see mksh in "recommends". No wonder Steve felt as he did
after long day. It is late night here too.

I understand this is required by cvs-switchroot written by the package
maintainer and he certainly uses and loves mksh specific commands such
as array variables and "print" command which absolutely require mksh and
can not be dash. (Command itself seems quite useful for some spacial
purposes.)

So, what should we do to avoid such surprise and negative reaction?
Good communication is essential here.

Let's see the fact.

$ dpkg -L cvs | xargs -n1 file |grep executable
/usr/share/cvs/contrib/cvs2vendor: POSIX shell script text executable
/usr/share/cvs/contrib/rcs2log: POSIX shell script text executable
/usr/share/cvs/contrib/descend.sh: POSIX shell script text executable
/usr/share/cvs/contrib/log_accum: a /usr/bin/perl -T script text executable
/usr/share/cvs/contrib/clmerge: a /usr/bin/perl script text executable
/usr/share/cvs/contrib/log: a /usr/bin/perl -T script text executable
/usr/share/cvs/contrib/newcvsroot: POSIX shell script text executable
/usr/share/cvs/contrib/commit_prep: a /usr/bin/perl -T script text executable
/usr/share/cvs/contrib/mfpipe: a /usr/bin/perl -T script text executable
/usr/share/cvs/contrib/rcs2sccs.sh: POSIX shell script text executable
/usr/share/cvs/contrib/cvs_acls: a /usr/bin/perl -T script text executable
/usr/share/cvs/contrib/validate_repo: a /usr/bin/perl -w script text executable
/usr/share/cvs/contrib/pvcs2rcs: a /usr/bin/perl script text executable
/usr/share/cvs/contrib/rcs-to-cvs: POSIX shell script text executable
/usr/share/cvs/contrib/sandbox_status: POSIX shell script text executable
/usr/share/cvs/contrib/sccs2rcs: C shell script text executable
/usr/share/cvs/contrib/debug_check_log: POSIX shell script text executable
/usr/share/cvs/contrib/rcslock: a /usr/bin/perl -T script text executable
/usr/share/cvs/contrib/cln_hist: a /usr/bin/perl script text executable
/usr/bin/cvsbug: POSIX shell script text executable
/usr/bin/cvs: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped
/usr/bin/cvs-switchroot: a /bin/mksh script text executable

Since all /usr/share/cvs/contrib/* are not in command path, these may be
considered non-essential commands. It is true that in order for 1/3 of
real command of cvs package to function, mksh is required and qualify as
recommend.

But cvs-switchroot is not mentioned in cvs manpage while cvsbug is
mentioned. So this cvs-switchroot is very obscure command much like
ones in /usr/share/cvs/contrib/ written in Perl. Actually, commands in
/usr/share/cvs/contrib/ are mentioned in cvs.txt.gz cvs.html FAQ.gz
while cvs-switchroot is not mentioned elsewhere except
changelog.Debian.gz. (Actually its description is confusing since
cvs-switchroot comes from "debian/cvs-switchroot" and not from
"src/scripts/mnt-cvsroot" as I see it packaged.)

At least, cvs package is quite useful and functional without
cvs-switchroot which almost no one can know of as the way it is
included. The use of cvs-switchroot is rare. Thus, installing cvs
package without functioning mksh is perfectly reasonable set up. Just
lack of corner case functionality. Debian policy 7.2 points me to chose
suggest.

| Suggests
| This is used to declare that one package may be more useful with one or more
| others. Using this field tells the packaging system and the user that the
| listed packages are related to this one and can perhaps enhance its usefulness,
| but that installing this one without them is perfectly reasonable.

So there are 2 options I can think of for this package:

Option 1:
* install cvs-switchroot in usr/share/cvs/contrib/
* drop "recommends" of mksh
* update FAQ and cvs.txt.gz and cvs.html to point people to this command in
usr/share/cvs/contrib/ with mksh requirement.
* Change package description
Description: Concurrent Versions System
CVS is a version control system, which allows you to keep old versions of files
(usually source code), keep a log of who, when, and why changes occurred, etc.,
like RCS or SCCS. It handles multiple developers, multiple directories,
triggers to enable/log/control various operations, and can work over a wide
area network. The following tasks are not included; they can be done in
conjunction with CVS but will tend to require some script-writing and software
other than CVS: bug-tracking, build management (that is, make and make-like
tools), and automated testing.
.
This is based on GNU CVS but does not support pserver operation while
incorporating many patches from MirOS Project and Ubuntu.



Option 2:
* keep cvs-switchroot in current location
* change "recommends" of mksh to "suggests" of mksh
(You may disagree to keep it as "recommends". This is weak point.)
* add cvs-switchroot listed at the bottom of SEE ALSO in cvs manpage
* update FAQ and cvs.txt.gz and cvs.html to point people to this command who
need this with mksh requirement.
* Change package description
Description: Concurrent Versions System
CVS is a version control system, which allows you to keep old versions of files
(usually source code), keep a log of who, when, and why changes occurred, etc.,
like RCS or SCCS. It handles multiple developers, multiple directories,
triggers to enable/log/control various operations, and can work over a wide
area network. The following tasks are not included; they can be done in
conjunction with CVS but will tend to require some script-writing and software
other than CVS: bug-tracking, build management (that is, make and make-like
tools), and automated testing.
.
This is based on GNU CVS but does not support pserver operation while
incorporating many patches from MirOS Project and Ubuntu.
.
cvs-switchroot command to change repository or tag in a cvs working copy
requires mksh package.


Since my English is not so good, please ask
debian-l10n-english@lists.debian.org for final proofing of the "Description".

This makes people to be more comfortable seeing mksh for this package:-)

Regards,

Osamu

FYI:
Debian web infrastructure still rely on CVS since we can just checkout
one file over slow connection :-) So CVS still have advantage over
others in some area.




To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
email Follow the discussionReplies 5 repliesReplies Make a reply

Replies

#1 Thorsten Glaser
June 21st, 2011 - 11:10 am ET | Report spam
Osamu Aoki dixit:

can not be dash.



Just look at the source code of ash some day.

real command of cvs package to function, mksh is required and qualify as



This is not open for discussion.

recommend.



This part is due to lintian – I originally had no mention of mksh
anywhere, but lintian insists on having a dependency when it is
used as shebang script.

But cvs-switchroot is not mentioned in cvs manpage while cvsbug is



The manpage is autogenerated, I will not touch it. But I might
refer to cvs-switchroot from the texinfo page, which is easy
to change and read. Thanks for the idea.

ones in /usr/share/cvs/contrib/ written in Perl. Actually, commands in



Well, it’s not from CVS, it’s from me. I don’t do Perl.
(Actually, I tried to learn it thrice and failed every
time, there are just _way too many_ ways to do “it” in
Perl.) Even if I could, I probably wouldn’t do it.

changelog.Debian.gz. (Actually its description is confusing since
cvs-switchroot comes from "debian/cvs-switchroot" and not from
"src/scripts/mnt-cvsroot" as I see it packaged.)



It comes from src/scripts/mnt-cvsroot in the same CVS repository
where the Debian cvs packaging is hosted. The reference is correct.
(Might have written mircvs://src/scripts/mnt-cvsroot instead…)

* install cvs-switchroot in usr/share/cvs/contrib/



Not really an option, because these aren’t real commands there,
the manpage’ll be lost, etc.

* update FAQ and cvs.txt.gz and cvs.html to point people to this command in



No.

* change "recommends" of mksh to "suggests" of mksh



As you might have read from earlier mails in this thread, I was
considering doing either this or just ignoring lintian. We’ll
see what can be done.

* add cvs-switchroot listed at the bottom of SEE ALSO in cvs manpage



Hm. Will have a look at that at least.

* Change package description



No.

/usr/bin/cvsbug: POSIX shell script text executable



Does anyone actually use this, by the way?

FYI:
Debian web infrastructure still rely on CVS since we can just checkout
one file over slow connection :-) So CVS still have advantage over
others in some area.



Yes, that’s one point I strongly like as well. Glad it’s of use!
Do check out “cvs suck”, too.

bye,
//mirabilos
FWIW, I'm quite impressed with mksh interactively. I thought it was much
*much* more bare bones. But it turns out it beats the living hell out of
ksh93 in that respect. I'd even consider it for my daily use if I hadn't
wasted half my life on my zsh setup. :-) -- Frank Terbeck in #!/bin/mksh



To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact

Similar topics