[systemd-devel] Antw: Re: suggestion: auto reload as the default to help packagers?

Andrei Borzenkov arvidjaar at gmail.com
Mon Jun 3 07:48:36 UTC 2019


03.06.2019 10:15, Ulrich Windl пишет:
>>>> Michael Chapman <mike at very.puzzling.org> schrieb am 31.05.2019 um 13:28 in
> Nachricht <alpine.LFD.2.21.1905312123080.3180 at beren.home>:
>> On Fri, 31 May 2019, Reindl Harald wrote:
>>> Am 31.05.19 um 12:31 schrieb Michael Chapman:
>>>> For RPM on Fedora, the systemd package has %transfiletriggerin and 
>>>> %transfiletriggerun scriptlets that run automatically at the end of the 
>>>> RPM transaction if units were installed or removed. This is the cleanest 
>>>> approach since it means all changes from all updated packages are applied 
>>>> at once.
>>>
>>> sadly that's all theory given that all services in Fedora are
>>> automatically hard restartet when packages are updated and "at the end"
>>> is too late when the service got restarted with the old unit but new binary
>>
>> I actually got it slightly wrong: %transfiletriggerin and 
>> %transfiletriggerun occur in the _middle_ of the transaction, in between 

That's not what source says:

https://github.com/rpm-software-management/rpm/blob/096ec07465f6d223a1e9d68b688889e2fab103f7/lib/transaction.c#L1660

The sequence is

%pretrans
%transfiletriggerun
actual transaction
%posttrans
%transfiletriggerpostun
%transfiletriggerin

Are you sure you do not mix up %transfiletrigger and %filetrigger?

>> installation of new packages (or new versions of packages) and removal of 
>> old packages (or old versions of packages). While %transfiletriggerin 
>> does perform a daemon-reload, %transfiletriggerun simply stores a 
>> flag that's picked up by a separate %filetriggerpostun scriptlet. That 
>> reloads systemd.
> 
> Where is the definitive documentation for these (rather new) RPM features?

I am afraid only in sources.

> And do all the major RPM-based dirstributions support these?
> 

Upstream RPM includes support for %transfiletrigger in 4.13 so it can be
assumed any distribution with this or newer version does support them.
Actual patch is several years earlier.


More information about the systemd-devel mailing list