[csw-maintainers] packages names normalization (long)

Darin Perusich Darin.Perusich at cognigencorp.com
Wed Apr 29 18:22:03 CEST 2009


One thing I feel needs to be addressed is package naming consistency
between PKGname and shortname. If the short name is soft_rt or soft-rt
shouldn't the PKGname be CSWsoft_rt or CSWsoft-rt? There's no
"technical" reason for this given my reading of the pkginfo manual. This
lack of consistency makes searching for packages with pkginfo or listing
/var/sadm/pkg a really hassle.

A perfect example of this is openSSL or openSSH. The PKGname for the
various component packages is CSWossl* or CSWossh*. One would kind of
expect to the PKGname to be CSWopenssl_rt or CSWopenssh_client. I
realize there are historical reasons for not changed this, I'm simply
using this as examples.

Peter FELECAN wrote:
> Reading the standards page,
> http://www.opencsw.org/standards/pkgcreation, I understand that the
> standard for naming CSW splitted packages is:
> 
> PKGname	     shortname
> ------------ ---------
> CSWsoftrt    soft_rt
> CSWsoftdevel soft_devel
> CSWsoftdoc   soft_doc 
> 
> Some of the cited rationales are: to optimize the download size of the
> required packages, to offer a better granularity in packages
> inter-dependencies, &c.
> 
> For the moment, this standard is not applied consistently, but I
> understand that it is now enforced.
> 
> Here is a more developed functional relation with the suffixes cited above:
> 
> _rt    : run-time
> 
>          Any component needed to run the product or *derived* products:
>          shared libraries, &c
> 
> _devel : development
> 
>          Any component needed for developing *derived*  but not
>          needed for running it: headers, static libraries, pkgconfig
>          elements, &c
> 
> _doc   : documentation
> 
>          Any component documenting the product and/or the creation of
>          *derived* products.
> 
> There is something missing: the nil suffix which, in my opinion,
> group the components which are *run*, i.e. binaries, shell scripts, &c
> 
> A package with a nil suffix, using the above examples, has the form:
> 
> CSWsoft      soft
> CSWsoftrt    soft_rt
> CSWsoftdevel soft_devel
> CSW softdoc  soft_doc
> 
> Why do I think that we should have nil suffixed packages names:
> 
> 1. Installing the product by:
> 
>    pkg-get install softrt
> 
>    is less intuitive than:
> 
>    pkg-get install soft
> 
> 2. Installing the product's binaries is not always necessary to run
>    *derived* products, its run-time is however necessary.
> 
> Giving a full example is probably a good way to enhance the
> documentation of this standard. Consequently, here is the splitting of
> the autogen project:
> 
> CSWautogen      autogen
> CSWautogenrt    autogen_rt
> CSWautogendevel autogen_devel
> CSWautogendoc   autogen_doc
> 
> and their respective content is (I omitted the /opt/csw prefix):
> 
> autogen:
> 
> 	bin/autogen
> 	bin/autoopts-config
> 	bin/columns
> 	bin/getdefs
> 	bin/xml2ag
> 	share/autogen/aginfo.tpl
> 	share/autogen/aginfo3.tpl
> 	share/autogen/agman-lib.tpl
> 	share/autogen/agman1.tpl
> 	share/autogen/agman3.tpl
> 	share/autogen/autoopts.m4
> 	share/autogen/confmacs.tpl
> 	share/autogen/conftest.tpl
> 	share/autogen/fsm-macro.tpl
> 	share/autogen/fsm-trans.tpl
> 	share/autogen/fsm.tpl
> 	share/autogen/getopt.tpl
> 	share/autogen/optcode.tpl
> 	share/autogen/opthead.tpl
> 	share/autogen/options.tpl
> 	share/autogen/optlib.tpl
> 	share/autogen/optmain.tpl
> 	share/autogen/rc-sample.tpl
> 	share/autogen/stdoptions.def
> 	share/autogen/usage.tpl
> 	share/man/man1/autogen.1
> 	share/man/man1/autoopts-config.1
> 	share/man/man1/columns.1
> 	share/man/man1/getdefs.1
> 	share/man/man1/xml2ag.1
> 
> autogen_rt:
> 
> 	lib/libguileopts.so.0.0.1
> 	lib/libopts.so.25.7.0
> 	share/doc/autogen/AUTHORS
> 	share/doc/autogen/COPYING
> 	share/doc/autogen/ChangeLog
> 	share/doc/autogen/INSTALL
> 	share/doc/autogen/NEWS
> 	share/doc/autogen/README
> 	share/doc/autogen/THANKS
> 	share/doc/autogen/TODO
> 
> autogen_devel:
> 
> 	include/autoopts/options.h
> 	include/autoopts/usage-txt.h
> 	lib/libguileopts.a
> 	lib/libopts.a
> 	lib/pkgconfig
> 	lib/pkgconfig/autoopts.pc
> 	share/aclocal/autoopts.m4
> 	share/aclocal/liboptschk.m4
> 	share/man/man3/ao_string_tokenize.3
> 	share/man/man3/configFileLoad.3
> 	share/man/man3/optionFileLoad.3
> 	share/man/man3/optionFindNextValue.3
> 	share/man/man3/optionFindValue.3
> 	share/man/man3/optionFree.3
> 	share/man/man3/optionGetValue.3
> 	share/man/man3/optionLoadLine.3
> 	share/man/man3/optionNextValue.3
> 	share/man/man3/optionOnlyUsage.3
> 	share/man/man3/optionProcess.3
> 	share/man/man3/optionRestore.3
> 	share/man/man3/optionSaveFile.3
> 	share/man/man3/optionSaveState.3
> 	share/man/man3/optionUnloadNested.3
> 	share/man/man3/optionVersion.3
> 	share/man/man3/strequate.3
> 	share/man/man3/streqvcmp.3
> 	share/man/man3/streqvmap.3
> 	share/man/man3/strneqvcmp.3
> 	share/man/man3/strtransform.3
> 
> autogen_doc:
> 
> 	share/doc/autogen/autogen.dvi
> 	share/doc/autogen/autogen.pdf
> 	share/doc/autogen/autogen.ps
> 	share/info/autogen.info
> 	share/info/autogen.info-1
> 	share/info/autogen.info-2
> 
> All your comments are welcome and when we agree it should be nice to
> update the standards page.

-- 
Darin Perusich
Unix Systems Administrator
Cognigen Corporation
395 Youngs Rd.
Williamsville, NY 14221
Phone: 716-633-3463
Email: darinper at cognigencorp.com



More information about the maintainers mailing list