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