During my introductory browsing of the Gentoo Linux Development Policy <http://www.gentoo.org/doc/en/policy.xml>, I realized that a great deal of ebuilds don't meet the standards for naming. Not to be the picky little whiner of the bunch, but I think something could to be done to combat this. I whipped out some Perl to verify names, and it turns out that even with case insensitivity, 158 ebuilds don't meet the naming standards. Some of these have been purposefully overlooked (gtk+), unfortunately most haven't. Poking around a bit, I see two possible solutions: A) Rename all violations, and impliment the enforcement of correct naming at submission time B) The slackers alternative ^_^ Change the rules (Making "+" and "_" legal characters eliminates all but two), then impliment the enforcement of correct naming at submission time (Can't have the requirements _too_ lax, as it'd get hard to parse) A list of the bunk ones follows: app-crypt/pam_krb5-1.0 app-emacs/crypt++-2.91 app-emulation/blight_input-0.0.4 app-games/abuse_sdl-0.6.1-r3 app-games/abuse_sdl-0.7.0 app-games/c++robots-0 app-i18n/imhangul_status_applet-0.2-r1 app-i18n/imhangul_status_applet-0.2 app-i18n/kde-i18n-en_GB-3.1_rc6 app-i18n/kde-i18n-en_GB-2.2.2 app-i18n/kde-i18n-en_GB-3.0.2 app-i18n/kde-i18n-en_GB-3.0.3 app-i18n/kde-i18n-en_GB-3.0.4 app-i18n/kde-i18n-en_GB-3.0.5a app-i18n/kde-i18n-en_GB-3.1 app-i18n/kde-i18n-no_NY-2.2.2 app-i18n/kde-i18n-pt_BR-3.1_rc6 app-i18n/kde-i18n-pt_BR-2.2.2 app-i18n/kde-i18n-pt_BR-3.0.2 app-i18n/kde-i18n-pt_BR-3.0.3 app-i18n/kde-i18n-pt_BR-3.0.4 app-i18n/kde-i18n-pt_BR-3.0.5a app-i18n/kde-i18n-pt_BR-3.1 app-i18n/kde-i18n-zh_CN-3.1_rc6 app-i18n/kde-i18n-zh_CN-3.0.2 app-i18n/kde-i18n-zh_CN-3.0.3 app-i18n/kde-i18n-zh_CN-3.0.4 app-i18n/kde-i18n-zh_CN-3.0.5a app-i18n/kde-i18n-zh_CN-3.1 app-i18n/kde-i18n-zh_CN.GB2312-2.2.2 app-i18n/kde-i18n-zh_TW-3.1_rc6 app-i18n/kde-i18n-zh_TW-3.0.2 app-i18n/kde-i18n-zh_TW-3.0.3 app-i18n/kde-i18n-zh_TW-3.0.4 app-i18n/kde-i18n-zh_TW-3.0.5a app-i18n/kde-i18n-zh_TW-3.1 app-i18n/kde-i18n-zh_TW.Big5-2.2.2 app-i18n/koffice-i18n-en_GB-1.1.1 app-i18n/koffice-i18n-en_GB-1.2.1 app-i18n/koffice-i18n-en_GB-1.2 app-i18n/koffice-i18n-no_NY-1.1.1 app-i18n/koffice-i18n-pt_BR-1.1.1 app-i18n/koffice-i18n-pt_BR-1.2.1 app-i18n/koffice-i18n-pt_BR-1.2 app-i18n/koffice-i18n-zh_TW-1.2.1 app-i18n/koffice-i18n-zh_TW-1.2 app-misc/bonnie++-1.03 app-misc/bonnie++-1.02a app-misc/bonnie++-1.02c-r1 app-misc/bonnie++-1.02c app-misc/linux_logo-4.02 app-misc/linux_logo-4.05 app-sci/vis5d+-1.2.1 dev-db/mysql++-1.7.9 dev-libs/commonc++-1.9.7-r1 dev-libs/commonc++-1.9.7-r2 dev-libs/libsigc++-1.0.4-r2 dev-libs/libsigc++-1.2.0 dev-libs/libsigc++-1.2.2 dev-libs/libsigc++-1.2.3 dev-perl/CDDB_get-1.66-r1 dev-perl/CDDB_get-1.66-r2 dev-perl/CDDB_get-2.10-r1 dev-perl/CDDB_get-2.10-r2 dev-perl/DB_File-1.803 dev-perl/DB_File-1.803-r1 dev-perl/DB_File-1.803-r2 dev-perl/SNMP_Session-0.92-r1 dev-perl/SNMP_Session-0.92 dev-perl/mod_perl-1.27 dev-perl/mod_perl-1.27-r1 dev-perl/mod_perl-1.99.08 dev-php/PEAR-Mail_Mime-1.2.1 dev-php/PEAR-Net_Sieve-0.8.1 dev-php/PEAR-Net_Socket-1.0.1 dev-php/PEAR-System_Command-1.0 dev-php/PEAR-XML_CSSML-1.1 dev-php/PEAR-XML_Tree-1.1 dev-php/PEAR-XML_XPath-1.2 dev-php/mod_php-4.2.3 dev-php/mod_php-4.2.3-r1 dev-php/mod_php-4.2.3-r2 dev-php/mod_php-4.3.0-r1 dev-php/mod_php-4.3.0-r2 dev-php/mod_php-4.3.0 dev-python/mod_python-3.0.0_beta4 dev-python/mod_python-2.7.8 dev-python/mod_python-3.0.1 dev-tcltk/Tk_Theme-23 media-libs/atlas-c++-0.4.4 media-libs/atlas-c++-0.4.5 media-libs/libart_lgpl-2.3.10 media-libs/libart_lgpl-2.3.11 media-libs/nurbs++-3.0.10 media-libs/nurbs++-3.0.11 media-sound/mp3_check-1.98 media-sound/timidity++-2.12.0 net-analyzer/netleds_applet-0.9.1-r3 net-analyzer/netspeed_applet-0.3 net-analyzer/netspeed_applet-0.5 net-analyzer/netspeed_applet-0.7 net-analyzer/netspeed_applet-0.8 net-libs/nss_ldap-202 net-libs/nss_ldap-174-r2 net-libs/pam_ldap-156 net-libs/pam_ldap-134-r1 net-misc/kio_fish-1.1.2 net-misc/pam_smb-1.9.9-r1 net-www/mod_auth_external-2.2.3 net-www/mod_auth_kerb-4.11 net-www/mod_auth_ldap-2.4.1 net-www/mod_auth_mysql-1.11 net-www/mod_authenticache-2.0.6 net-www/mod_contribs-1.0.8-r1 net-www/mod_dav-1.0.3-r1 net-www/mod_gzip-1.3.19.1a-r1 net-www/mod_gzip-1.3.26.1a net-www/mod_injection-0.3.0 net-www/mod_layout-4.0.1a net-www/mod_loopback-2.0 net-www/mod_mp3-0.39 net-www/mod_mp3-0.35-r1 net-www/mod_mp3-0.35-r2 net-www/mod_protection-0.0.2 net-www/mod_random-2.0 net-www/mod_roaming-2.0.0 net-www/mod_ssl-2.8.12 net-www/mod_tcl-1.0 net-www/mod_throttle-3.1.2-r1 net-www/mod_vdbh-1.0.2 net-www/mod_xslt-1.0.5a sys-apps/gzip_x86-0.90 sys-apps/lm_sensors-2.6.5 sys-apps/lm_sensors-2.7.0 sys-apps/microcode_ctl-1.06 sys-libs/libmath++-0.0.3 sys-libs/pam_mysql-0.4.7 x11-libs/gtk+-2.0.6-r3 x11-libs/gtk+-1.2.10-r8 x11-libs/gtk+-1.2.10-r9 x11-libs/gtk+-2.0.7-r1 x11-libs/gtk+-2.0.8-r1 x11-libs/gtk+-2.0.8 x11-libs/gtk+-2.0.9 x11-libs/gtk+-2.1.2 x11-libs/gtk+-2.2.0-r1 x11-libs/gtk+-2.2.0 x11-libs/gtk+-2.2.1 x11-libs/gtk+extra-0.99.17 x11-misc/mixer_app-1.7.0 x11-misc/rss_glx-0.6.8 x11-plugins/wmmon+smp-1.0-r1 x11-plugins/wmweather+-2.1 x11-plugins/wmweather+-2.3 x11-themes/fvwm_icons-1.0 x11-themes/fvwm_sounds-1.0 x11-wm/aewm++-1.0.22 x11-wm/aewm++-goodies-1.0 Note: If you're interested in my script, drop me a mail and I'll post it somewhere, but it is Perl, so have a pair of sunglasses handy ;)
i dont want to suggest taking the 'slackers way' for the sake of being lazy, but using a + and a _ makes sense for somethings ... the language ones and the apache ones for _ and the gtk and similar for the + ...
I did a quick scan through the list, and only found 3 packages using "-" in the name: KDE, PEAR, and atlas. I would propose changing these to use "_", as it doesn't decrease readability. I'm guessing that portage today can handle the "-" inside a name, but I think for sanity and safety reasons, it would be best if the first "-" in the file name indicated the start of the portage version information, and nothing else. Using "+" and other characters in the package name should be fine, because the name doesn't matter a whole lot as long as all the portage tools can reliably parse out the version info.
umm, if you remove '-' from all packages, that affects a lot more than adding _ to portage ;) just because *this* list hardly uses - doesnt mean the rest of portage doesnt
Hmmm.. I guess I wasn't awake yet. Yeah, "-" occurs way more than that and is the accepted character. I guess as long as the regex pattern deals correctly with all the possible version info, it should be safe.
heh, take a look into /usr/portage/media-plugins -- most of the packages there have a - in the name. I think a - is preferrable to _ in ebuild names, quite honestly.
i would argue that _ makes sense in things like apache modules and language addons since that *is* the name of the package ...
This has sat for a while without any movement. My feeling is that most people think _ and + are ok for naming (and they don't screw up parsing), so I guess unless I'm advised otherwise, I'll try to get the wheels moving on changing the docs. After that's done, I'll look into handling the two ebuilds with periods in their names (KDE stuffs), and then consider this resolved.
i do like having '_' and '+' in names ... i dont really like '.' ...
As of a few hours ago, both the ebuilds with '.' in their names have been renamed, so that's no longer a problem.
*** Bug 22845 has been marked as a duplicate of this bug. ***
So if I create a doco bug on http://www.gentoo.org/doc/en/policy.xml#doc_chap3 to include a '+' in the allowed characters of the package name, can this be closed?
Okay; I've updated policy.xml, but since policy.xml will be (or already is) obsoleted by the Dev Handbook it should also be put in the dev handbook.
Done.