Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-10 Thread Zbigniew Jędrzejewski-Szmek
On Fri, May 10, 2019 at 08:21:24AM -0400, Neal Gompa wrote:
> On Thu, May 9, 2019 at 5:27 PM Zbigniew Jędrzejewski-Szmek
>  wrote:
> >
> > On Thu, May 09, 2019 at 04:56:25PM -0400, Neal Gompa wrote:
> > > On Thu, May 9, 2019 at 10:02 AM Zbigniew Jędrzejewski-Szmek
> > >  wrote:
> > > >
> > > > Hi,
> > > >
> > > > let's drop the requirement and ordering on systemd (as implemented by
> > > > %systemd_requires) from packages which provide systemd units.
> > > >
> > >
> > > In general, I think this idea has some solid foundation. But I think
> > > it'd be dangerous to remove any kind of ordering hints from the
> > > solution, because that means we'd need logic to handle system
> > > bootstrap that needs to include systemd in DNF
> >
> > What system bootstrap? Please explain.
> >
> > > Would transitioning from %{?systemd_requires} to %{?systemd_ordering}
> > > instead work to do what you want? That still offers the necessary
> > > ordering hints to ensure systemd is set up early in a large
> > > transaction that includes everything.
> >
> > If you are talking about an initial installation in the sense of
> > 'dnf --installroot=... install ', then it
> > shouldn't matter whether systemd is installed early or late. It is
> > not started in this transaction, and it should be totally OK (*) to install
> > it at very end.
> >
> > (*) As mentioned in my original e-mail, if packages have scriptlets
> > which use other systemd tools, this does not apply. But in that case those
> > packages need an explicit dependency.
> >
> > > I don't relish the potential bugs that would come from losing all of
> > > those hints in packages that we got from %{?systemd_requires}.
> > > However, %{?systemd_ordering} would fix that issue.
> >
> > No, neither should be needed.
> >
> 
> systemd's preset functionality only kicks in when it installed and the
> preset files exist.

Yes.

> This means that for those scriptlets to actually work when systemd
> is requested, it needs to be early in the install order sequence.

No. (The scriplets themselves don't do anything, but equivalent effect
is provided by systemd package scriptlets which call preset-all.)

> I know that when using the systemd macros, they don't allow the
> package to fail if systemd isn't available. But I strongly disagree
> that allowing systemd to be installed more or less randomly is "fine"
> when making full system installs (such as through Anaconda net-install
> or dnf --installroot= install). With the way we call to systemd for
> presets, it makes much more sense to use %{?systemd_ordering} so that
> it works when systemd needs to be part of the system.

No.

> And the OrderWithRequires statement is supported in RHEL/CentOS 7, so
> %{?systemd_ordering} can be backported via the epel-rpm-macros package
> so that it works as intended.

Yes.

OK, I think I know where the misunderstanding lies.

You seem to assume that %systemd_ordering does something useful, i.e.
that it makes sense to install systemd early. It does not (*).
Please re-read my proposal, I think I explain pretty clearly why not.

Zbyszek

(*) As far as 'systemctl preset' is concerned. If the scriptlets call
other systemd tools, an ordering might still be needed.
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-10 Thread Neal Gompa
On Thu, May 9, 2019 at 5:27 PM Zbigniew Jędrzejewski-Szmek
 wrote:
>
> On Thu, May 09, 2019 at 04:56:25PM -0400, Neal Gompa wrote:
> > On Thu, May 9, 2019 at 10:02 AM Zbigniew Jędrzejewski-Szmek
> >  wrote:
> > >
> > > Hi,
> > >
> > > let's drop the requirement and ordering on systemd (as implemented by
> > > %systemd_requires) from packages which provide systemd units.
> > >
> >
> > In general, I think this idea has some solid foundation. But I think
> > it'd be dangerous to remove any kind of ordering hints from the
> > solution, because that means we'd need logic to handle system
> > bootstrap that needs to include systemd in DNF
>
> What system bootstrap? Please explain.
>
> > Would transitioning from %{?systemd_requires} to %{?systemd_ordering}
> > instead work to do what you want? That still offers the necessary
> > ordering hints to ensure systemd is set up early in a large
> > transaction that includes everything.
>
> If you are talking about an initial installation in the sense of
> 'dnf --installroot=... install ', then it
> shouldn't matter whether systemd is installed early or late. It is
> not started in this transaction, and it should be totally OK (*) to install
> it at very end.
>
> (*) As mentioned in my original e-mail, if packages have scriptlets
> which use other systemd tools, this does not apply. But in that case those
> packages need an explicit dependency.
>
> > I don't relish the potential bugs that would come from losing all of
> > those hints in packages that we got from %{?systemd_requires}.
> > However, %{?systemd_ordering} would fix that issue.
>
> No, neither should be needed.
>

systemd's preset functionality only kicks in when it installed and the
preset files exist. This means that for those scriptlets to actually
work when systemd is requested, it needs to be early in the install
order sequence.

I know that when using the systemd macros, they don't allow the
package to fail if systemd isn't available. But I strongly disagree
that allowing systemd to be installed more or less randomly is "fine"
when making full system installs (such as through Anaconda net-install
or dnf --installroot= install). With the way we call to systemd for
presets, it makes much more sense to use %{?systemd_ordering} so that
it works when systemd needs to be part of the system.

And the OrderWithRequires statement is supported in RHEL/CentOS 7, so
%{?systemd_ordering} can be backported via the epel-rpm-macros package
so that it works as intended.


-- 
真実はいつも一つ!/ Always, there's only one truth!
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-10 Thread Japheth Cleaver

On 5/9/2019 4:14 PM, Nico Kadel-Garcia wrote:

On Thu, May 9, 2019 at 2:40 PM Zbigniew Jędrzejewski-Szmek
 wrote:


Also, if for some reason I don't grok one absolutely needs to use the
exact same spec file for Fedora 31+ and EPEL7 (which is based on F19),
than keeping the dependency as it is now is also an option. One extra
unneeded dependency is not the end of the world.

Zbyszek

It's useful to have one spec file. Maintaining 2 or 3 spec files means
maintaining and keeping synchronized 2, or 3, synchronized git
branches or shoving in logic to detect different build configurations.
This kind of logic is already in practice for RHEL, EPEL, and Fedora
for many packages, even though it is often applied inconsistently.


Not to mention that this is more or less the entire point of having an 
SRPM available. Packaging means that if I need a differing version of 
something on my system, I can often grab the latest .src.rpm and 
recompile locally, and -- subject to ABI compatibility restrictions 
(which will be being taken into account anyway) -- this often Just Works.


No RH SysEng or systems administrator is going to head to a Fedora git 
branch and check out individual components as a starting point. Thus, 
every tiny structural change like this made without regard to backwards 
compatibility (by, say, making a macro a no-op at the distro level 
instead) makes it harder and harder to actually leverage what's in the 
RPM ecosystem.


-jc
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Nico Kadel-Garcia
On Thu, May 9, 2019 at 2:40 PM Zbigniew Jędrzejewski-Szmek
 wrote:

> Also, if for some reason I don't grok one absolutely needs to use the
> exact same spec file for Fedora 31+ and EPEL7 (which is based on F19),
> than keeping the dependency as it is now is also an option. One extra
> unneeded dependency is not the end of the world.
>
> Zbyszek

It's useful to have one spec file. Maintaining 2 or 3 spec files means
maintaining and keeping synchronized 2, or 3, synchronized git
branches or shoving in logic to detect different build configurations.
This kind of logic is already in practice for RHEL, EPEL, and Fedora
for many packages, even though it is often applied inconsistently.
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Zbigniew Jędrzejewski-Szmek
On Thu, May 09, 2019 at 04:56:25PM -0400, Neal Gompa wrote:
> On Thu, May 9, 2019 at 10:02 AM Zbigniew Jędrzejewski-Szmek
>  wrote:
> >
> > Hi,
> >
> > let's drop the requirement and ordering on systemd (as implemented by
> > %systemd_requires) from packages which provide systemd units.
> >
> 
> In general, I think this idea has some solid foundation. But I think
> it'd be dangerous to remove any kind of ordering hints from the
> solution, because that means we'd need logic to handle system
> bootstrap that needs to include systemd in DNF

What system bootstrap? Please explain.

> Would transitioning from %{?systemd_requires} to %{?systemd_ordering}
> instead work to do what you want? That still offers the necessary
> ordering hints to ensure systemd is set up early in a large
> transaction that includes everything.

If you are talking about an initial installation in the sense of
'dnf --installroot=... install ', then it
shouldn't matter whether systemd is installed early or late. It is
not started in this transaction, and it should be totally OK (*) to install
it at very end.

(*) As mentioned in my original e-mail, if packages have scriptlets
which use other systemd tools, this does not apply. But in that case those
packages need an explicit dependency.

> I don't relish the potential bugs that would come from losing all of
> those hints in packages that we got from %{?systemd_requires}.
> However, %{?systemd_ordering} would fix that issue.

No, neither should be needed.

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Neal Gompa
On Thu, May 9, 2019 at 10:02 AM Zbigniew Jędrzejewski-Szmek
 wrote:
>
> Hi,
>
> let's drop the requirement and ordering on systemd (as implemented by
> %systemd_requires) from packages which provide systemd units.
>

In general, I think this idea has some solid foundation. But I think
it'd be dangerous to remove any kind of ordering hints from the
solution, because that means we'd need logic to handle system
bootstrap that needs to include systemd in DNF, and I definitely don't
want hard coded logic of any kind.

Would transitioning from %{?systemd_requires} to %{?systemd_ordering}
instead work to do what you want? That still offers the necessary
ordering hints to ensure systemd is set up early in a large
transaction that includes everything.

I don't relish the potential bugs that would come from losing all of
those hints in packages that we got from %{?systemd_requires}.
However, %{?systemd_ordering} would fix that issue.


-- 
真実はいつも一つ!/ Always, there's only one truth!
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Rex Dieter
Miro Hrončok wrote:

>> So long as EPEL (and Rawhide, tbh) are under the aegis of Fedora, it
>> would be nice at least /some/ effort was made not to toss over
>> incompatible changes, or a broad need for dist conditionals, across the
>> package ecosystem with such cavilerity.
> 
> It's called branches.

And that's fine, being able to easily share .spec's between branches is 
still nice-to-have.

I still personally use and rely on synchronized .spec's (in most branches) a 
*lot*, and will likely continue to do so at leaste until I fully grok and 
embrace modules.

-- Rex
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Zbigniew Jędrzejewski-Szmek
On Thu, May 09, 2019 at 07:56:22PM +0200, Björn 'besser82' Esser wrote:
> Am Donnerstag, den 09.05.2019, 10:21 -0700 schrieb Japheth Cleaver:
> > On 5/9/2019 7:46 AM, Zbigniew Jędrzejewski-Szmek wrote:
> > > On Thu, May 09, 2019 at 09:19:32AM -0500, Mátyás Selmeci wrote:
> > > > On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:
> > > > > Hi,
> > > > > 
> > > > > let's drop the requirement and ordering on systemd (as
> > > > > implemented by
> > > > > %systemd_requires) from packages which provide systemd units.
> > > > > 
> > > > > I now filed [1], which removes the recommendation to use
> > > > > %systemd_requires.
> > > > > Quoting from that ticket:
> > > > > 
> > > > > Nowadays systemd.rpm does a preset-all call when it is
> > > > > installed.
> > > > > This means that individual packages which provide systemd
> > > > > units and
> > > > > call %systemd_post in their %post will work fine no matter
> > > > > if they
> > > > > are installed *before* or *after* systemd.
> > > >  
> > > > Is this true for the version of systemd in RHEL 7 and compatible
> > > > as well?
> > > > How will this affect EPEL packages?
> > > systemd in RHEL generally follows the changes in Fedora, with a
> > > delay.
> > > If this is changed in F31, then it wouldn't filter down to RHEL
> > > until
> > > the next RHEL release. Similarly, such changes should not be
> > > propagated to
> > > packages in EPEL7.
> > > 
> > > Zbyszek
> > 
> > RHEL8 has been out for all of two days. EPEL8 is still to come.
> > 
> > So long as EPEL (and Rawhide, tbh) are under the aegis of Fedora, it 
> > would be nice at least /some/ effort was made not to toss over 
> > incompatible changes, or a broad need for dist conditionals, across
> > the 
> > package ecosystem with such cavilerity.
> > 
> > -jc
> 
> 
> The impact of this change is not too bad considering a few things:
> 
> The use of the `%systemd_requires` macros must be changed to
> `%{?systemd_requires}` in each spec file.  That way rpmbuild will
> evaluate whether the macro is defined and after that will fill in the
> body of the macro.  If it is not defined rpmbuild will simply replace
> the `%{?systemd_requires}` with %nil.

My idea was to keep %systemd_requires defined, but to simply remove
its use from packages in the master branches. I think that's preferable
because it makes the transition smoother: existing packages keep
working, and the dependency can be removed one-by-one without any
flag day. If some packages are not changed, there's no issue apart
from an extra dep.

OTOH, if we stopped defining %systemd_requires, it'd be necessary to
go over all packages and make sure that they don't need the dependency
for some other reason, and if they do, add the dependency in a different
form, so that it still declared when %systemd_requires go away. This
seems like more churn and more chance for breakage.

> That way the definition of that macro can be fully dropped from F-31+
> (and thus get reintroduced at any time later, if needed for $reasons),
> while still keeping the spec file fully compatible with any prior
> releases (including EPEL / RHEL).

I don't think that's worth the trouble. As stated elsewhere in the thread,
we have branches for this. And even if one wants to keep the branches
the same, either conditionalizing or even keeping the extra dep are
perfectly viable options.

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Zbigniew Jędrzejewski-Szmek
On Thu, May 09, 2019 at 08:12:15PM +0200, Miro Hrončok wrote:
> On 09. 05. 19 19:21, Japheth Cleaver wrote:
> >On 5/9/2019 7:46 AM, Zbigniew Jędrzejewski-Szmek wrote:
> >>On Thu, May 09, 2019 at 09:19:32AM -0500, Mátyás Selmeci wrote:
> >>>On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:
> Hi,
> 
> let's drop the requirement and ordering on systemd (as implemented by
> %systemd_requires) from packages which provide systemd units.
> 
> I now filed [1], which removes the recommendation to use 
> %systemd_requires.
> Quoting from that ticket:
> 
>     Nowadays systemd.rpm does a preset-all call when it is installed.
>     This means that individual packages which provide systemd units and
>     call %systemd_post in their %post will work fine no matter if they
>     are installed *before* or *after* systemd.
> >>>Is this true for the version of systemd in RHEL 7 and compatible as well?
> >>>How will this affect EPEL packages?
> >>systemd in RHEL generally follows the changes in Fedora, with a delay.
> >>If this is changed in F31, then it wouldn't filter down to RHEL until
> >>the next RHEL release. Similarly, such changes should not be propagated to
> >>packages in EPEL7.
> >>
> >>Zbyszek
> >
> >RHEL8 has been out for all of two days. EPEL8 is still to come.
> >
> >So long as EPEL (and Rawhide, tbh) are under the aegis of Fedora,
> >it would be nice at least /some/ effort was made not to toss over
> >incompatible changes, or a broad need for dist conditionals,
> >across the package ecosystem with such cavilerity.
> 
> It's called branches.
+1

Also, if for some reason I don't grok one absolutely needs to use the
exact same spec file for Fedora 31+ and EPEL7 (which is based on F19),
than keeping the dependency as it is now is also an option. One extra
unneeded dependency is not the end of the world.

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Miro Hrončok

On 09. 05. 19 19:21, Japheth Cleaver wrote:

On 5/9/2019 7:46 AM, Zbigniew Jędrzejewski-Szmek wrote:

On Thu, May 09, 2019 at 09:19:32AM -0500, Mátyás Selmeci wrote:

On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:

Hi,

let's drop the requirement and ordering on systemd (as implemented by
%systemd_requires) from packages which provide systemd units.

I now filed [1], which removes the recommendation to use %systemd_requires.
Quoting from that ticket:

    Nowadays systemd.rpm does a preset-all call when it is installed.
    This means that individual packages which provide systemd units and
    call %systemd_post in their %post will work fine no matter if they
    are installed *before* or *after* systemd.

Is this true for the version of systemd in RHEL 7 and compatible as well?
How will this affect EPEL packages?

systemd in RHEL generally follows the changes in Fedora, with a delay.
If this is changed in F31, then it wouldn't filter down to RHEL until
the next RHEL release. Similarly, such changes should not be propagated to
packages in EPEL7.

Zbyszek


RHEL8 has been out for all of two days. EPEL8 is still to come.

So long as EPEL (and Rawhide, tbh) are under the aegis of Fedora, it would be 
nice at least /some/ effort was made not to toss over incompatible changes, or a 
broad need for dist conditionals, across the package ecosystem with such 
cavilerity.


It's called branches.

--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Miro Hrončok

On 09. 05. 19 16:19, Mátyás Selmeci wrote:

On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:

Hi,

let's drop the requirement and ordering on systemd (as implemented by
%systemd_requires) from packages which provide systemd units.

I now filed [1], which removes the recommendation to use %systemd_requires.
Quoting from that ticket:

Nowadays systemd.rpm does a preset-all call when it is installed.
This means that individual packages which provide systemd units and
call %systemd_post in their %post will work fine no matter if they
are installed *before* or *after* systemd.
 
Is this true for the version of systemd in RHEL 7 and compatible as well?

How will this affect EPEL packages?


It will not affect EPEL packages because it will only be done on the master 
branch and the EPEL packages are not built from the master branch.


--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Nico Kadel-Garcia
On Thu, May 9, 2019 at 1:57 PM Björn 'besser82' Esser
 wrote:
>
> Am Donnerstag, den 09.05.2019, 10:21 -0700 schrieb Japheth Cleaver:
> > On 5/9/2019 7:46 AM, Zbigniew Jędrzejewski-Szmek wrote:
> > > On Thu, May 09, 2019 at 09:19:32AM -0500, Mátyás Selmeci wrote:
> > > > On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:
> > > > > Hi,
> > > > >
> > > > > let's drop the requirement and ordering on systemd (as
> > > > > implemented by
> > > > > %systemd_requires) from packages which provide systemd units.
> > > > >
> > > > > I now filed [1], which removes the recommendation to use
> > > > > %systemd_requires.
> > > > > Quoting from that ticket:
> > > > >
> > > > > Nowadays systemd.rpm does a preset-all call when it is
> > > > > installed.
> > > > > This means that individual packages which provide systemd
> > > > > units and
> > > > > call %systemd_post in their %post will work fine no matter
> > > > > if they
> > > > > are installed *before* or *after* systemd.
> > > >
> > > > Is this true for the version of systemd in RHEL 7 and compatible
> > > > as well?
> > > > How will this affect EPEL packages?
> > > systemd in RHEL generally follows the changes in Fedora, with a
> > > delay.
> > > If this is changed in F31, then it wouldn't filter down to RHEL
> > > until
> > > the next RHEL release. Similarly, such changes should not be
> > > propagated to
> > > packages in EPEL7.
> > >
> > > Zbyszek
> >
> > RHEL8 has been out for all of two days. EPEL8 is still to come.
> >
> > So long as EPEL (and Rawhide, tbh) are under the aegis of Fedora, it
> > would be nice at least /some/ effort was made not to toss over
> > incompatible changes, or a broad need for dist conditionals, across
> > the
> > package ecosystem with such cavilerity.
> >
> > -jc
>
>
> The impact of this change is not too bad considering a few things:
>
> The use of the `%systemd_requires` macros must be changed to
> `%{?systemd_requires}` in each spec file.  That way rpmbuild will
> evaluate whether the macro is defined and after that will fill in the
> body of the macro.  If it is not defined rpmbuild will simply replace
> the `%{?systemd_requires}` with %nil.
>
> That way the definition of that macro can be fully dropped from F-31+
> (and thus get reintroduced at any time later, if needed for $reasons),
> while still keeping the spec file fully compatible with any prior
> releases (including EPEL / RHEL).
>
> Cheers,
> Björn

RHEL or EPEL compatibility will definitely require other factors, for
RHEL 6 and 7 as well as RHEL 8. The "with_python3" options will
require parallel "with_python2" options for compatibility with RHEL 6,
and ideally disable with_python2 for Fedora 30 and 31, even if they
were simply discarded as compilation for Fedora 30. "Suggests:"
options for dnf will need to be enabled for RHEL 8, but not older
versions of RHEL. I've found it useful to compile such packages with
mock for RHEL 7 and the current Fedora to verify compatibility. The
python tests, in particular, may not have occurred with the other
version of python. (I just ran into this with python3 and subversion.)

And do not get me *going* on RHEL 8's decision to split its
installation media to have two different dnf repositories on the same
installation disk, one in a subdirectory called "BaseOS" and another
called "Appstream" for no reason I can figure out. It means yum repos
or mock setups from the DVD image need to list both repositories
distinctly, for no reason I can imagine.
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Björn 'besser82' Esser
Am Donnerstag, den 09.05.2019, 10:21 -0700 schrieb Japheth Cleaver:
> On 5/9/2019 7:46 AM, Zbigniew Jędrzejewski-Szmek wrote:
> > On Thu, May 09, 2019 at 09:19:32AM -0500, Mátyás Selmeci wrote:
> > > On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:
> > > > Hi,
> > > > 
> > > > let's drop the requirement and ordering on systemd (as
> > > > implemented by
> > > > %systemd_requires) from packages which provide systemd units.
> > > > 
> > > > I now filed [1], which removes the recommendation to use
> > > > %systemd_requires.
> > > > Quoting from that ticket:
> > > > 
> > > > Nowadays systemd.rpm does a preset-all call when it is
> > > > installed.
> > > > This means that individual packages which provide systemd
> > > > units and
> > > > call %systemd_post in their %post will work fine no matter
> > > > if they
> > > > are installed *before* or *after* systemd.
> > >  
> > > Is this true for the version of systemd in RHEL 7 and compatible
> > > as well?
> > > How will this affect EPEL packages?
> > systemd in RHEL generally follows the changes in Fedora, with a
> > delay.
> > If this is changed in F31, then it wouldn't filter down to RHEL
> > until
> > the next RHEL release. Similarly, such changes should not be
> > propagated to
> > packages in EPEL7.
> > 
> > Zbyszek
> 
> RHEL8 has been out for all of two days. EPEL8 is still to come.
> 
> So long as EPEL (and Rawhide, tbh) are under the aegis of Fedora, it 
> would be nice at least /some/ effort was made not to toss over 
> incompatible changes, or a broad need for dist conditionals, across
> the 
> package ecosystem with such cavilerity.
> 
> -jc


The impact of this change is not too bad considering a few things:

The use of the `%systemd_requires` macros must be changed to
`%{?systemd_requires}` in each spec file.  That way rpmbuild will
evaluate whether the macro is defined and after that will fill in the
body of the macro.  If it is not defined rpmbuild will simply replace
the `%{?systemd_requires}` with %nil.

That way the definition of that macro can be fully dropped from F-31+
(and thus get reintroduced at any time later, if needed for $reasons),
while still keeping the spec file fully compatible with any prior
releases (including EPEL / RHEL).

Cheers,
Björn


signature.asc
Description: This is a digitally signed message part
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Japheth Cleaver

On 5/9/2019 7:46 AM, Zbigniew Jędrzejewski-Szmek wrote:

On Thu, May 09, 2019 at 09:19:32AM -0500, Mátyás Selmeci wrote:

On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:

Hi,

let's drop the requirement and ordering on systemd (as implemented by
%systemd_requires) from packages which provide systemd units.

I now filed [1], which removes the recommendation to use %systemd_requires.
Quoting from that ticket:

Nowadays systemd.rpm does a preset-all call when it is installed.
This means that individual packages which provide systemd units and
call %systemd_post in their %post will work fine no matter if they
are installed *before* or *after* systemd.
 
Is this true for the version of systemd in RHEL 7 and compatible as well?

How will this affect EPEL packages?

systemd in RHEL generally follows the changes in Fedora, with a delay.
If this is changed in F31, then it wouldn't filter down to RHEL until
the next RHEL release. Similarly, such changes should not be propagated to
packages in EPEL7.

Zbyszek


RHEL8 has been out for all of two days. EPEL8 is still to come.

So long as EPEL (and Rawhide, tbh) are under the aegis of Fedora, it 
would be nice at least /some/ effort was made not to toss over 
incompatible changes, or a broad need for dist conditionals, across the 
package ecosystem with such cavilerity.


-jc
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Zbigniew Jędrzejewski-Szmek
On Thu, May 09, 2019 at 09:19:32AM -0500, Mátyás Selmeci wrote:
> On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:
> > Hi,
> > 
> > let's drop the requirement and ordering on systemd (as implemented by
> > %systemd_requires) from packages which provide systemd units.
> > 
> > I now filed [1], which removes the recommendation to use %systemd_requires.
> > Quoting from that ticket:
> > 
> >Nowadays systemd.rpm does a preset-all call when it is installed.
> >This means that individual packages which provide systemd units and
> >call %systemd_post in their %post will work fine no matter if they
> >are installed *before* or *after* systemd.
> 
> Is this true for the version of systemd in RHEL 7 and compatible as well?
> How will this affect EPEL packages?

systemd in RHEL generally follows the changes in Fedora, with a delay.
If this is changed in F31, then it wouldn't filter down to RHEL until
the next RHEL release. Similarly, such changes should not be propagated to
packages in EPEL7.

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Mátyás Selmeci
On 5/9/19 9:00 AM, Zbigniew Jędrzejewski-Szmek wrote:
> Hi,
> 
> let's drop the requirement and ordering on systemd (as implemented by
> %systemd_requires) from packages which provide systemd units.
> 
> I now filed [1], which removes the recommendation to use %systemd_requires.
> Quoting from that ticket:
> 
>Nowadays systemd.rpm does a preset-all call when it is installed.
>This means that individual packages which provide systemd units and
>call %systemd_post in their %post will work fine no matter if they
>are installed *before* or *after* systemd.

Is this true for the version of systemd in RHEL 7 and compatible as well?
How will this affect EPEL packages?
-- 
Mátyás (Mat) Selmeci
Open Science Grid Software Team / Center for High-Throughput Computing
University of Wisconsin-Madison Department of Computer Sciences
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


dropping %systemd_requires from most packages (guidelines change and mass package update proposal)

2019-05-09 Thread Zbigniew Jędrzejewski-Szmek
Hi,

let's drop the requirement and ordering on systemd (as implemented by
%systemd_requires) from packages which provide systemd units.

I now filed [1], which removes the recommendation to use %systemd_requires.
Quoting from that ticket:

   Nowadays systemd.rpm does a preset-all call when it is installed.
   This means that individual packages which provide systemd units and
   call %systemd_post in their %post will work fine no matter if they
   are installed *before* or *after* systemd.
   
   If installed *after*, the sequence is:
   ...
   1. install systemd, systemctl preset-all is called
   2. install package with a.service, %systemd_post calls systemctl preset 
a.service
  (a.service is enabled if presets say so).
   
   If installed *before*:
   ...
   1. package is installed, %systemd_post calls systemctl preset a.service, but
  nothing happens because /usr/bin/systemctl is not found.
  (The scriptlet is conditionalized using [ -x /usr/bin/systemctl ], so no
   error or warning is emitted.)
   2. systemd is installed, systemctl preset-all is called
  (a.service is enabled if presets say so).
   
   If systemd is not installed at all:
   the service is never enabled, and there's generally no way to run the service
   using systemd. This might happen for example when building a custom container
   image or systemd portable. I think that's totally reasonable, if systemd 
should
   be used in the image, it should be declared explicitly, and not pulled in as
   a dependency of some random package.
   
   During upgrades:
   %systemd_postun_with_restart calls systemctl try-restart. If systemd is not
   installed, than the service is obviously not running, so there's nothing to
   restart.
   
   The advantages of removing the dependency are:
   1. it is easier to build custom images of various sorts, because systemd is
  a big package and pulls in a *lot* of dependencies. For specialized use 
cases
  this is totally unnecessary.
   2. when those depencencies are removed, rpm has more freedom to order
  the transaction. In case there are other constrains on the ordering
  (that actually matter), there's less chance of circular dependencies and
  it's more likely that rpm will be able to honour those other constraints.
   3. "less is more" in general.
   
   Please note that this applies to calls to systemctl preset and
   systemctl try-restart. If the package calls some other systemd tool,
   for example systemd-tmpfiles or systemd-sysusers, or otherwise requires
   systemd to be installed, it should retain appropriate dependencies.

If this change is accepted by FPC, I'll do a mass package change using
pp privs to remove %systemd_requires use in obvious cases, i.e. when the
scriptlets simply call %systemd_{post,postun,preun}. I think it'd be great
to get rid of those dependencies for F31.

[1] https://pagure.io/packaging-committee/pull-request/890

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org