Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 503726 - ebuilds with uppercase letters
Summary: ebuilds with uppercase letters
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Low QA with 1 vote (vote)
Assignee: Gentoo Quality Assurance Team
URL: http://devmanual.gentoo.org/ebuild-wr...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-03-07 13:58 UTC by Julian Ospald
Modified: 2020-03-24 01:34 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Julian Ospald 2014-03-07 13:58:14 UTC
# find "$(portageq portdir)" -mindepth 2 -maxdepth 2 -name "*[A-Z]*" -a \! -path "$(portageq portdir)/licenses*" -a \! -path "$(portageq portdir)/profiles*" -a \! -path "$(portageq portdir)/eclass*" -a \! -path "$(portageq portdir)/scripts" | wc -l

1560
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2014-03-07 14:54:45 UTC
uppercase has always been fine for Perl, but otherwise has been not recommended, but tolerated, at maintainer's discression

what's changed?
Comment 2 Julian Ospald 2014-03-07 16:28:50 UTC
QA hassled me last time when I wanted to use uppercase letter for an ebuild, so I thought I will open this bug so they can work on it.
Comment 3 Sergey Popov gentoo-dev 2014-03-08 16:13:08 UTC
As per devmanual:

>The name section should contain only lowercase non-accented letters, the digits 0-9, hyphens, underscores and plus characters. Uppercase characters are strongly discouraged, but technically valid.

So, if you have no really valueable reason(like overcomplicating ebuild's internals if using name without upperscore) to introduce such ebuild - please do not do it. Otherwise - go for it. That's my opinion, let's see what other QA members will say.

Cause, IMO, it's WONTFIX
Comment 4 Julian Ospald 2014-03-08 16:29:51 UTC
(In reply to Sergey Popov from comment #3)
> As per devmanual:
> 
> >The name section should contain only lowercase non-accented letters, the digits 0-9, hyphens, underscores and plus characters. Uppercase characters are strongly discouraged, but technically valid.
> 
> So, if you have no really valueable reason(like overcomplicating ebuild's
> internals if using name without upperscore) to introduce such ebuild -
> please do not do it. Otherwise - go for it. That's my opinion, let's see
> what other QA members will say.
> 
> Cause, IMO, it's WONTFIX

I'd rather vote for removing that wording entirely. Discouraging something has almost no effect, especially when there seems to be no good reason why it's discouraged.

If there is good reason, then it should at least be a repoman warning.

Neither of that currently applies.
Comment 5 Ulrich Müller gentoo-dev 2014-03-08 17:53:38 UTC
(In reply to Sergey Popov from comment #3)
> So, if you have no really valueable reason(like overcomplicating ebuild's
> internals if using name without upperscore) to introduce such ebuild -
> please do not do it.

I mostly agree, except that a valid reason can only be too complicated _eclass_ internals. That is, if you have an eclass handling a large number of packages and case conversion would spoil matching of upstream package names. Examples are perl and modular X.

Case conversion in for a single package is always trivial: If all else fails, the ebuild can assign MY_PN. So uppercase PN should really be avoided there.

In spite of this, I guess we won't go for any big renaming. Package moves for established packages are a nuisance.


(In reply to Julian Ospald (hasufell) from comment #4)
> I'd rather vote for removing that wording entirely. Discouraging something
> has almost no effect, especially when there seems to be no good reason why
> it's discouraged.

Consistent package naming is a very good reason to keep this policy. Maybe we should even add another sentence from the old devrel handbook: "We have some packages in Portage that don't follow these rules, but *your* packages should."
Comment 6 Julian Ospald 2014-03-08 18:42:12 UTC
(In reply to Ulrich Müller from comment #5)
> (In reply to Sergey Popov from comment #3167)
> > So, if you have no really valueable reason(like overcomplicating ebuild's
> > internals if using name without upperscore) to introduce such ebuild -
> > please do not do it.
> 
> I mostly agree, except that a valid reason can only be too complicated
> _eclass_ internals. That is, if you have an eclass handling a large number
> of packages and case conversion would spoil matching of upstream package
> names. Examples are perl and modular X.
> 
> Case conversion in for a single package is always trivial: If all else
> fails, the ebuild can assign MY_PN. So uppercase PN should really be avoided
> there.
> 
> In spite of this, I guess we won't go for any big renaming. Package moves
> for established packages are a nuisance.
> 
> 
> (In reply to Julian Ospald (hasufell) from comment #4168)
> > I'd rather vote for removing that wording entirely. Discouraging something
> > has almost no effect, especially when there seems to be no good reason why
> > it's discouraged.
> 
> Consistent package naming is a very good reason to keep this policy. Maybe
> we should even add another sentence from the old devrel handbook: "We have
> some packages in Portage that don't follow these rules, but *your* packages
> should."

What about a repoman warning then? That would unnecessary avoid package moves. It could be filtered for perl packages ofc.
Comment 7 Julian Ospald 2014-03-08 18:42:51 UTC
*avoid unnecessary
Comment 8 Ulrich Müller gentoo-dev 2014-03-08 19:32:11 UTC
A repoman check won't help so much here, because "cvs add" will already add the package directory to the central repo. So the check would have to be added to the CVS pre-commit hook instead.
Comment 9 Julian Ospald 2014-03-08 21:43:50 UTC
(In reply to Ulrich Müller from comment #8)
> A repoman check won't help so much here, because "cvs add" will already add
> the package directory to the central repo. So the check would have to be
> added to the CVS pre-commit hook instead.

We don't need pkgmoves for directories. So yes, it helps.
Comment 10 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-03-09 16:19:53 UTC
Hmm; on the one hand it helps avoid new packages of such type, on the other hand it is quite nagging for those whom already maintain a package with uppercase letters. Do we really want to do this? Do we want to expect them to change to lowercase letters too?

 $ find /usr/portage/ -mindepth 2 -maxdepth 2 | grep [A-Z] | grep -v '\(CVS\|licenses\|profiles\)' | wc -l
1576
 $ find /usr/portage/ -mindepth 2 -maxdepth 2 | grep [A-Z] | grep -v '\(CVS\|licenses\|profiles\)' | grep -v '\(perl\|PEAR\)' | wc -l
164

With Perl and PEAR warned it are quite a lot; however, as suggested, if we exclude them then just 164 packages sounds reasonable to warn for.

Do we let repoman warn for uppercase ebuilds (dev-perl/* and */*PEAR* excluded)?
Comment 11 Julian Ospald 2014-03-09 16:34:04 UTC
(In reply to Tom Wijsman (TomWij) from comment #10)
> Hmm; on the one hand it helps avoid new packages of such type, on the other
> hand it is quite nagging for those whom already maintain a package with
> uppercase letters. Do we really want to do this? Do we want to expect them
> to change to lowercase letters too?
> 
>  $ find /usr/portage/ -mindepth 2 -maxdepth 2 | grep [A-Z] | grep -v
> '\(CVS\|licenses\|profiles\)' | wc -l
> 1576
>  $ find /usr/portage/ -mindepth 2 -maxdepth 2 | grep [A-Z] | grep -v
> '\(CVS\|licenses\|profiles\)' | grep -v '\(perl\|PEAR\)' | wc -l
> 164
> 
> With Perl and PEAR warned it are quite a lot; however, as suggested, if we
> exclude them then just 164 packages sounds reasonable to warn for.
> 
> Do we let repoman warn for uppercase ebuilds (dev-perl/* and */*PEAR*
> excluded)?

Right, those are the questions that QA should decide on.