On 09/28/2018 02:50 AM, Kevin Kofler wrote:
Mikolaj Izdebski wrote:
> Modules with their API specifications at least make it more clear what
> are expectations about packages. Something user may consider essential
> is only a build dependency for a packager and the packages won't receive
> enough attention from the maintainer.
As I wrote in another thread: Any packages that are used to build packages
that are delivered to the users MUST also themselves be delivered to the
users in a self-hosting distribution. This is the definition of
"self-hosting". It is also required to comply with some copyleft licenses.
This is already not met for Fedora. Lets look at ant package which you
Ant 1.10.2 was built with a chain build .
This chain build can be represented as:
ant-1.10.1-9.fc28 -> ant-1.10.2-0.1.fc28 -> ant-1.10.2-1.fc28
Chain build was necessary because:
- Ant is built with Ant.
- Ant 1.10.2 requires Ant 1.10.2 to build.
- Ant 1.10.2 can't be built with Ant 1.10.1 without patching.
Intermediary build ant-1.10.2-0.1.fc28 (which release starts with 0 to
make it clear it's a bootstrap build) was never shipped to users. It was
used only as a buildroot override that was active for less than 5 minutes:
Tue Mar 6 14:13:24 2018 ant-1.10.2-0.1.fc28 tagged into f28-override
Tue Mar 6 14:17:49 2018 ant-1.10.2-0.1.fc28 untagged from f28-override
Moreover, this intermediary build was already deleted  from Koji.
Users that want to reproduce Ant 1.10.2 build would need to repeat
series of builds and rely on information stored in Koji to know what
builds should be ran in what order. Trying to build packages only from
content released to users would be even more difficult.
This also shows why Java package maintenance may be time consuming and
why I'm looking for ways to reduce maintenance work - even micro version
bumps like 1.10.1 to 1.10.2 may require bootstrapping. Bootstrapping
developed specifically for particular upgrade.
Senior Software Engineer, Red Hat