public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>,
	openembedded-core@lists.openembedded.org
Subject: Re: RFE: make the init manager an image feature (again)
Date: Sat, 16 Feb 2013 20:40:55 +0100	[thread overview]
Message-ID: <20130216194055.GB3300@jama> (raw)
In-Reply-To: <1361018098.31795.33.camel@ted>

[-- Attachment #1: Type: text/plain, Size: 6352 bytes --]

On Sat, Feb 16, 2013 at 12:34:58PM +0000, Richard Purdie wrote:
> On Sat, 2013-02-16 at 12:57 +0100, Enrico Scholz wrote:
> > Richard Purdie <richard.purdie@linuxfoundation.org> writes:
> > >> it would be nice when the decision to make the init manager a distribution
> > >> feature will be reverted to the old oe-meta mechanism.
> > >
> > > The trouble is that by making it an "image feature", people will
> > > expect *everything* to work properly and to be able to have fully
> > > functional sysvinit and systemd variants of images.
> > 
> > I do not see an obvious reason why fully functional sysvinit, systemd and
> > perhaps upstart image variants based on the same distribution/package set
> > are impossible.
> > 
> > Of course, not "everything" will work.  But initmgr being a distribution
> > feature makes some things completely impossible.
> >
> > > We already see this expectation.
> > 
> > IMO, removal of features just to lower expectations is the completely
> > wrong way.
> 
> meta-oe earned a *horrendous* reputation because of the way systemd was
> implemented there. I believe (as do a number of others) that it has
> damaged OE's reputation and usability and actively hurts new users. Yes,
> the people who use systemd and meta-oe were happy. People who didn't
> want systemd were not. There continues to be a fairly toxic mix of
> distro policy mingled in with the recipes in there although good
> progress is being made in fixing that and I'm grateful to the people
> who've noticed and taken on that work (and done previous work like the
> separation of meta-systemd).

I was using sysvinit images even with systemd in meta-oe, setting 2
VIRTUAL_RUNTIME variables and 1 .bbappend was enough to keep sysvinit
images working.

I agree that we were missing documentation for that and new users
weren't able to figure it out for themselves.
 
> It was clear systemd needed to move into the core but also become more
> configurable to work for everyone. I don't want to remove features, I do
> want to talk about whether there is a better way we can fulfil certain
> uses cases, particularly with a focus on usability.

I was talking with Ross about systemd as DISTRO_FEATURE, I agreed that
it's fine to have it as DISTRO_FEATURE but I didn't expect that it also
means that he wants to move PN-systemd to PN without upgrade path and
possibility to create image without PN-systemd packages.

My expectation was that systemd in DISTRO_FEATURES will enable
systemd.bbclass functionality (same functionality as
meta-systemd/system.bbclass had), not that it will force systemd and
only systemd.

Like with "3g" in DISTRO_FEATURES we expect that DISTRO supports 3g but
not that every possible image and MACHINE will provide 3g functionality.

I can imagine distribution with sysvinit+upstart+systemd in
DISTRO_FEATURES if they are careful enough to prepare images with only
right packages.

> > > Trying to explain to people what the limitations are, what is expected
> > > to work and what isn't will be difficult.
> > 
> > OpenEmbedded is not an end-user distribution but for people who are
> > willing to invest some learning effort.  Trying to limit ourself on the
> > lowest common ground is not desirable imo.
> 
> I did not say we're not going to support your use case. I'm asking if we
> can summarise exactly what the problem is and whether there is another
> way we can get there which isn't going to surprise as many people and be
> easier to use.
> 
> I'm actually moderately annoyed that throughout the various discussions
> about systemd and how we'd get it into OE-Core nobody actually mentioned
> these specific requirements until very late in the implementation.

I think we all replied on first patch to move from PN-systemd to PN.
 
> At the bare minimum, we actually need to document the usecases people
> are using and require. Yes, you know your usecase but you need to take
> some responsibility for ensuring its documented and known about else it
> will continue to get broken time and time again.
> 
> > > For that reason I'd rather see this done in a different way, for
> > > example blacklisting the problematic systemd dependencies at image
> > > generation time with some kind of stronger BAD_RECOMMENDS code.
> > 
> > Assuming we are able to break the hard dependencies, what is with package
> > scripts which require programs, files or directories from these deps?  Do
> > we need a way to differ between good and bad script failures then?
> 
> At the technical level there is little difference from packaging these
> things separately to avoid specific dependencies and explicitly telling
> the package manager to avoid that dependency instead.
> 
> Equally there are other cases where people do want to break specific
> dependencies so this could help us in that area too.
> 
> Perhaps there is a dependency we need to drop to a Recommends level,
> then use BAD_RECOMMENDS to handy that. We do need to document why we do
> that and how it is expected to be used.

I think the problem Enrico describes is that systemctl calls were
contained to PN-systemd postinst/prerm scripts, now with systemd support
moved from PN-systemd to PN you have to move postinst/prerm too and if
you allow runtime dependency on systemd package to be broken, then you
need to wrap each postinst/prerm script with check to see if e.g. systemctl 
exists on target image.

> > Sounds extremely hacky and fragile...
> 
> It depends on the implementation.
> 
> Having initscripts in individual packages and having to play tricks to
> ensure the right sets of packages get installed is rather hacky and
> fragile.

Automatic RRECOMMENDS from systemd.class was working fine, only other
place where you needed to make sure all bits are in place was
packagegroup-core-boot.

I wasn't even using automatic RRECOMMEND but small packagegroup recipe
to pull only systemd support for packages where I wanted it. It was more
flexible and allowed me for example to install only ntpdate without
systemd support:

ntpdate works fine for people who wants to occasionally sync their time
ntpdate-systemd is better for people who want to sync on every boot

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

  parent reply	other threads:[~2013-02-16 19:56 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-15 18:19 RFE: make the init manager an image feature (again) Enrico Scholz
2013-02-15 18:47 ` Otavio Salvador
2013-02-15 23:44   ` Martin Jansa
2013-02-16  9:15 ` Richard Purdie
2013-02-16 10:47   ` Otavio Salvador
2013-02-16 12:53     ` Richard Purdie
2013-02-16 13:41       ` Otavio Salvador
2013-02-24  8:50         ` Khem Raj
2013-02-24 14:10           ` Otavio Salvador
2013-02-25 10:28           ` Enrico Scholz
2013-02-17 23:20       ` Martin Jansa
2013-02-18 10:17         ` Enrico Scholz
2013-02-20 19:58           ` Burton, Ross
2013-02-21 10:34             ` Enrico Scholz
2013-02-21 10:40               ` Burton, Ross
2013-02-21 11:34                 ` Enrico Scholz
2013-02-21 11:50                   ` Otavio Salvador
2013-02-21 12:01                     ` Phil Blundell
2013-02-16 11:57   ` Enrico Scholz
2013-02-16 12:34     ` Richard Purdie
2013-02-16 13:28       ` Otavio Salvador
2013-02-16 19:40       ` Martin Jansa [this message]
2013-02-16 19:49         ` Otavio Salvador
2013-02-17 13:06       ` Enrico Scholz
2013-02-21 15:35 ` Burton, Ross
2013-02-21 15:49   ` Otavio Salvador
2013-02-21 17:20   ` Enrico Scholz
2013-02-24 10:37   ` Ross Burton
2013-02-24 10:45     ` Ross Burton
2013-02-24 14:06     ` Otavio Salvador
2013-02-24 22:04       ` Ross Burton
2013-02-25  7:38         ` Martin Jansa
2013-02-25  7:46         ` Andreas Müller
2013-02-25 11:45         ` Otavio Salvador
2013-02-25 11:28     ` Enrico Scholz
2013-02-26  6:45     ` Khem Raj
  -- strict thread matches above, loose matches on Subject: below --
2013-02-16 20:20 Daniel Lazzari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130216194055.GB3300@jama \
    --to=martin.jansa@gmail.com \
    --cc=enrico.scholz@sigma-chemnitz.de \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox