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-engl...@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-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to