Date: Thu, 30 Dec 2021 18:50:03 -0800 From: "Ronald F. Guilmette" <rfg@tristatelogic.com> To: freebsd-questions@freebsd.org Subject: Package naming conventions (?) Message-ID: <34017.1640919003@segfault.tristatelogic.com>
next in thread | raw e-mail | index | archive | help
I don't know if I should file a bug report on this or not. Feedback would be appreciated. There is a small problem with what appears to be the "standard" naming convention(s) for package names. Specifically, something less than 100% of all packages seem to follow the obvious naming convention(s), and this has caused me some minor grief. In general, full package names end with a version number which consists exclusively of digits, periods, commas, and underscores. Thus the *generalized* (non-version-specific) package names for all currently installed packages may, generally speaking, be derived thusly: pkg info | awk '{print $1}' | sed -E 's/-([0-9]|,|_|\.)+$//' = (I am not aware of any easier way to generate such a list of the base name= s of all currently installed packages. If I have just missed how to do that more easily, please let me know.) Anyway, the above command pipeline yields a list of the base names of all installed packages with the exception of a small number of packages that do not conform to the "standard" (lexical structure) naming conventions for full package names, specifically, these ones: fstrcmp-0.7.D001 drm-kmod-g20190710_1 drm-fbsd13-kmod-5.4.144.g20211013 (This is only a list of the full packages names that I am aware of that fa= il to follow the standard naming conventions. There may be others.) Why is this an issue? Here's why... I just did a fresh install of 13.0-STABLE. After that I did: pkg install `cat my.desired.pkgs` where my.desired.pkgs is the name of a file containing the base names of a= ll of the packages that I routinely use and want installed, e.g.: firefox gimp gthumb ... etc. After allowing the "pkg install" command to run to completion (while I had dinner) I wanted to verify that, in fact, all of the packages that I had asked to have installed did in fact get installed. If it were not for the occasional goofy/non-normal full package names mentioned above, this would have been a simple matter of just doing the following: pkg info | awk '{print $1}' | sed -E 's/-([0-9]|,|_|\.)+$//' > my.inst= .pkgs comm -23 my.desired.pkgs my.inst.pkgs That would have / should have yielded a list of just those packages that I had wanted to get installed, but that for some reason did not in fact get installed. Unfortunately, due to the problem with there being less than 100% of all full package names following the "standard" lexical structure of the vast majority of all package names, the above pair of commands yielded a list of not just the packages that failed to install successfully, but also the goofy/non-normal package names mentioned above. So, what say you all? Is this a bug or a feature? Maybe I just have a fetish for adherence to obvious conventions, but this does annoy me. And it clearly doesn't have to be this way. Regards, rfg
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?34017.1640919003>