On Sat, Nov 09, 2002 at 08:33:51PM +0000, Mikhael Goikhman wrote: > On 09 Nov 2002 18:24:18 +0100, Dominik Vogt wrote: > > > > On Sat, Nov 09, 2002 at 05:35:40AM +0000, Mikhael Goikhman wrote: > > > To keep quality and consistency I follow these rules for our files > > > installed into bindir. I would like others to follow them too. > > > > > > 1) We have a special bin/ subdirectory for programs installed to bindir. > > > > > > 2) We don't install any program to bindir that does not have a man page. > > > > > > 3) We don't install any program to bindir without --help and --version. > > > > And "-h", "-?" and "-V" please. In the long run I would like to > > switch to GNU style long options. > > I think -V is a historical casus and it should better be -v, but let it > be -V...
As far as I know, -v is traditionally reserved for --verbose and -V for --version. I'll look that up. > But not -?, it is not even inputable in many shells, should be > escaped as -\?. Well. personally I've never even thought of using -?, but it was an old standard variant of -h that is preferredly used today. Anyway, I agree with Dan that every unknow option should print the usage message. > > > 4) The programs in the system's bindir should not have any extension. > > > > > > Extensions like .sh or .pl are good for files without +x permissions > > > so that a user could know what interpretter to run on these files. > > > Additional reasoning: > > > My /usr/bin has 2002 files. From 280 sh/bash scripts only 11 are *.sh. > > > > > > 5) The programs should have the "fvwm-" prefix for consistency. > > > > > > Additional reasoning: > > > My /usr/bin has 242 files in the dash form like "gnome-bug" and > > > and only 95 files in the underscore form like "pg_dump". > > > > > > I think many projects follow these rules. They lead to a better user > > > experience. > > > > Although I don't see rule 5 as mandatory, it is still better to > > follow some rules than to let chaos reign. One should also point > > out that only programs should be installed into bindir that are > > useful when they are exectued from a command line. Programs that > > do not fulfill this criterion belong into libexecdir. > > > > This is what I think it should look like for the current programs: > > > > source dir install dir > > --------------------------------------------------------- > > fvwm-bug bin bindir > > fvwm-config bin bindir > > fvwm-convert-2.2 bin bindir > > fvwm-convert-2.4 bin bindir > > fvwm-convert-2.6 bin bindir > > fvwm-menu-desktop bin libexecdir > > fvwm-menu-directory bin libexecdir > > fvwm-menu-headlines bin libexecdir > > fvwm-menu-xlock bin libexecdir > > fvwm-perllib bin libexecdir > > I am not sure where did you get such crazy idea. :)) >From the GNU coding standards ;-) > libexecdir is for loadable modules, it is specifically designed _not_ to > be in $PATH, because it is hardcoded into the main executable and used when > a module is loaded. > > All of the scripts above are designed to be run from the command line and > to be in $PATH. Actually, fvwm-perllib _must_ be in $PATH otherwise no > user modules in perl, at least the ones that do not harcode anything, will > work (ok, they may use fvwm-config instead, but they don't). I am not > speaking about reading man pages like "fvwm-perllib man". > > All of fvwm-menu-* scripts are a standard way in fvwm starting from 2.4.0 > to achieve four different tasks, like providing the KDE/GNOME integration > support, building all kinds of directory and web headlines menus and > designed to work under PipeRead, so they should be in $PATH. Yes, they are run from the command line, but it makes no sense to run them outside fvwm context. I guess one could fight lengthy flame wars about the question if that qualifies them for bindir or the "pure" path via fvwm-config/libexecdir should be taken. Whatever, I'll shut up now, especially I really couldn't care less what gets installed where. My only concern here is not breaking things that worked in the past. > > fvwm-root bin bindir > > build_dev.sh utils - > > configure_dev.sh utils - > > fvwm_make_browse_menu.sh examples docdir > > fvwm_make_directory_menu.sh examples docdir > > make_fvwmdist.sh utils - > > quantize_pixmaps bin ? > > rebuild_dev.sh utils - > > xselection bin - > > I think it is a good opportunity to remove quantize_pixmaps and xselection > all together. In any case they should not be installed into bindir, so > should not be in bin/. No objections. > > And while we are defining rules, I think every new script or > > program should follow the GNU coding standards with respect to > > handling and naming command line options, default options and the > > output of the -V/--version option. We can save a lot of trouble > > by using getopt_long() (yes, I know it's not portable - we need > > the getopt source file in the distribution). I even have a nice > > template for option parsing with getopt. > > > > P.S.: I have just removed all the "-blabla" options from > > fvwm-root. They were all introduced after 2.5.0 and can thus be > > removed without notice before 2.6. > > Actually supporting the -version form would not harm. I saw many shell > scripts do it, for example our own autogenerated ./configure. Before you > removed it, most (if not all) our bindir programs supported both variants. > But this is not very important. No, it doesn't hurt, but on the other hand they *will* be removed *everywhere* in 3.0. So, if we don't add them now, we have one tool less to worry about later. Bye Dominik ^_^ ^_^ -- Dominik Vogt, [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] -- Visit the official FVWM web page at <URL:http://www.fvwm.org/>. To unsubscribe from the list, send "unsubscribe fvwm-workers" in the body of a message to [EMAIL PROTECTED] To report problems, send mail to [EMAIL PROTECTED]