Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 618560 - stable-bot should reject atoms with a version but without an equal/greater than/littler than sign
Summary: stable-bot should reject atoms with a version but without an equal/greater th...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Infrastructure
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Michael Palimaka (kensington)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-05-15 19:09 UTC by Jeroen Roovers (RETIRED)
Modified: 2017-05-16 07:03 UTC (History)
4 users (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 Jeroen Roovers (RETIRED) gentoo-dev 2017-05-15 19:09:17 UTC
There is a new script going around that writes atoms that sys-apps/portage rejects. It should be fixed, and the stable-bot script should flag the invalid atoms.
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-05-15 19:44:13 UTC
The 'package list' contents are not reusable for any Portage configuration file I'm aware of. What's the point of changing format partially if it still will require manipulation?
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-05-15 19:45:14 UTC
(it's not running on infra; assigning to the people running it, CC bugzilla for necessary bugs.g.o changes)
Comment 3 Mart Raudsepp gentoo-dev 2017-05-16 00:44:22 UTC
I have the code from kensington for the stablebot and could help with reasonable improvements to it too and ask kensington to deploy them, so hence CCing myself.

Now for the concrete ticket at hand.
The 'package list' are not reusable for anything to portage because 'package list' is universal to all architectures, and it doesn't make sense to litter what goes into package.accept_keywords for testing with all arch information. Thus, this listing has to be processed to a per-arch list anyhow.

Now I don't know what "script going around that writes atoms" is being referred to, but if https://github.com/kensington/bugbot/blob/master/getatoms.py then that outputs perfectly valid snippets that are suitable for putting in /etc/portage/package.accept_keywords of the target architecture.

In the example of bug 618420, it has this in package list (note lack of equal sign):

x11-libs/gtk+-3.22.15         alpha amd64 arm hppa ia64 ppc ppc64 sparc x86
dev-libs/vala-common-0.34.8   alpha amd64 arm hppa ia64 ppc ppc64 sparc x86
dev-lang/vala-0.34.8          alpha amd64 arm hppa ia64 ppc ppc64 sparc x86
x11-libs/gtkmathview-0.8.0-r3 alpha amd64     hppa ia64 ppc ppc64 sparc x86
media-libs/clutter-1.26.2         amd64 x86

... and more amd64/x86 only, and getatoms returns this for arm:

./getatoms.py -a arm --stablereq -b 618420
# bug #618420
=dev-lang/vala-0.34.8
=dev-libs/vala-common-0.34.8
=x11-libs/gtk+-3.22.15

Which is perfectly suitable for package.accept_keywords, because:
"lines without any KEYWORDS imply unstable host arch", thus allowing to emerge them for arch testing. Having a list suitable for passing straight to "emerge" command is not interesting, as one needs a package.accept_keywords first anyways to reasonably test things. Afterwards it's a simple scripted variant of something like
grep -v '^#' /etc/portage/package.accept_keywords |xargs emerge -1v

However thanks to this getatoms.py script also supporting multiple bugs (i.e, "all open security stablereqs for an architecture", or "all open stable requests for a given architecture that has no outstanding blocking bugs"), it can generate a longer file with multiple bugs, to handle multiple at once, and then the comments neatly serve as a list of what bugs to close as done after committing and pushing of the keywords.

Internally stablebot (the part that does the sanity checking on bugzilla) has to strip out legacy leading equal sign, append '.ebuild', run ekeyword on them with appropriate arches list and then repoman in all affected package directories of an up to date git tree. A '=' serves no purpose, especially as >= and other things are not valid, thus is deprecated by stablebot, while supporting it gracefully because it can with near-zero cost.
And things like >= are not valid for very good and obvious reasons, which for now I'm leaving as an exercise to the reader on why, as it's sleep time.
Comment 4 David Seifert gentoo-dev 2017-05-16 07:03:18 UTC
? WAI