Note on 'systemd-216-9'

Adam Williamson adamwill at
Tue Nov 4 20:48:36 UTC 2014

On Tue, 2014-11-04 at 21:20 +0100, Zbigniew Jędrzejewski-Szmek wrote:
> On Tue, Nov 04, 2014 at 08:56:40AM -0800, Adam Williamson wrote:
> > On Tue, 2014-11-04 at 17:37 +0100, Tomasz Torcz wrote:
> > > On Tue, Nov 04, 2014 at 08:30:32AM -0800, Adam Williamson wrote:
> > > > systemd "216-9" is not built from 216 at all, it is in fact systemd-217
> > > 
> > >   Why the misleading version number?
> > 
> > There is a comment in the spec:
> > 
> > # This is really closer to 217 than to 216, and it is easier to revert a few
> > # patches then to carry all the other patches after 216.
> > 
> > and a changelog note:
> > 
> > - Pull more changes from upstream, including post-217 bugfixes. This
> >   is now a bastard mix of systemd-216 and systemd-217, with some of
> >   the important changes in systemd 217 still reverted:
> >     readahead removal, timedatectl change, fq_codel as default,
> >     job timeouts for init and poweroff, multi-seat-x removal,
> >     coredumps from watchdog timeouts.
> > 
> > For the record, systemd-216-8 had ~588 patches.
> > 
> > I think the intent is that 216-8 and 216-9 be more or less the same
> > codebase but arrived at in different ways, but in practice there seems
> > to be a noticeable difference.
> > 
> > The diff I came up with is:
> > 
> >
> This diffs autogenerated content.

There's a bit of stuff at the top that could have been trimmed out,
sure, but I didn't want to spend *too* much time on it. It's not that

> It also contains a rename of functions to add mac_ prefixes to
> selinux functions. And a rename to hashmap functions in preparation
> of for implementation changes which were done post 217 (and are
> not part of this update). 

None of which was communicated in the package changelog, or the update
description. And remember, what you just wrote is gobbledegook to most
of the people testing updates, they are not necessarily coders and do
not necessarily know anything about systemd internals. They are folks
volunteering to provide feedback on pre-release updates; even those who
are also Fedora packagers are not necessarily coders, and those who are
coders don't necessarily know systemd's design.

> It is also done without -M, so catches
> some renames as significant changes.
> I'm frankly puzzled about the point of this exercise.

Well, remember, I'm not a specialist. I'm just the QA monkey. I don't
know the detailed ins and outs of every codebase in the distro, QA
doesn't in general, we just try to test the bits. The more information
is available about what those changes actually *are*, communicated in a
style appropriate to the knowledge level of the folks doing the testing,
the better that job is going to get done. I didn't inspect the diff in a
huge degree of detail, I just was interested in how much difference
there actually is between '216 stable plus 500+ patches' (216-5 / 216-8)
and '217 minus some reversions (216-6 / 216-9), so I bashed at the trees
for fifteen minutes trying to figure it out, and it looked like rather
more difference than the update description and package changelog
suggested, so I thought it would be a good idea to communicate that.

Again, one thing that could prevent us having to have this kind of
discussion would be for systemd to have more
sophisticated/heavier/whatever stable release management. The
systemd-stable repo is a definite improvement on the previous approach,
but it's still missing actual *release management*, when you say 'OK,
we're going to release an actual thing that will be called systemd 216.1
and we're going to put all these bits in it and we're going to write
down what those are'.

Right now if someone asks what systemd is in Fedora 21, what do we say?
Well, we can say 'systemd-216 stable' and point to ,
but then they ask 'what's that?', and what do we say? Where is its
existence described? It's not systemd-216. It's not systemd-217. It
doesn't have a version, it doesn't have a tarball, it doesn't have a
readme, it doesn't have a changelog. The NEWS file says "CHANGES WITH
217:", so it seems dangerous to assume that it accurately describes all
the changes on the 216-stable branch and *only* those changes.

You only really have a hope of understanding what it *is* by reading the
commit log, somehow grokking that it used to be produced by backporting
a ton of changes onto 216 but is now produced by reverting/excluding a
bunch of stuff from 217, and understanding what the things that were
reverted actually *are* and what the implications of their
reversion/exclusion are. And then to answer the original question, you
have to figure out somehow whether there are any downstream-specific
changes in the Fedora package vs. the 216-stable tree and what they are,
when the current maintenance approach means that when we update to a new
checkout of the 216-stable tree we bump the package release but when we
add a downstream specific change we...bump the package release.

One simple change that might help a bit right now is to follow the
Fedora package versioning convention for when your package is built from
SCM snapshots:

So the systemd package should not just be 'systemd-216-8', or whatever,
but something like:


(checkout id entirely invented). That would at least give us an
indicator right in the package version / changelog of when the upstream
checkout got changed.
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net

More information about the devel mailing list