Re: Initscript migration to systemd: triggerun called on downgrade

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2011-09-02, Iain Arnell <iarnell@xxxxxxxxx> wrote:
> On Fri, Sep 2, 2011 at 9:53 AM, Petr Pisar <ppisar@xxxxxxxxxx> wrote:
>> On 2011-09-01, Bill Nottingham <notting@xxxxxxxxxx> wrote:
>>> Petr Pisar (ppisar@xxxxxxxxxx) said:
>>>> I'm migrating quota_nld service (provided by quota_nld subpackage of
>>>> quota spec) to systemd.
>>>>
>>>> Offical howto <https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Packages_migrating_to_a_systemd_unit_file_from_a_SysV_initscript> recommends:
>>>>
>>>> %triggerun -- httpd < 1.0-2
>>>> # Save the current service runlevel info
>>>> [...]
>>>>
>>>> where `httpd < 1.0-2' are httpd packages older then 1.0-2 under
>>>> uninstallation and `1.0-2' is first httpd version with systemd support.
>>>>
>>>> I modifed quota accoding this how-to, build a package (everything
>>>> locally) and I play with upgrades/downgrades between current F17 version
>>>> and this new one.
>>>>
>>>> Everything works except the triggerun script is called even if doing
>>>> downgrade. Is it intentional and I do not understand triggers, or is it
>>>> a bug in RPM?
>>>
>>> The above triggerun would be called on any uninstallation of httpd less
>>> than 1.0-2, whether you're upgrading or downgrading.
>>>
>> And that's the point. If only httpd-1.0-2 is installed and you do
>> downgrade to httpd-1.0-1, then the triggerun will be executed which
>> is what I do not expect because no httpd less then 1.0-2 can be
>> uninstalled at the time.
>
> The trigger is run in two situations. When the source package (i.e.
> the package containing the triggerun, in this case, httpd-1.0-2) is
> already installed and the target (httpd < 1.0-2) removed, or when the
> target is already installed and the source removed. When downgrading,
> the source package "httpd-1.0-2" is being uninstalled while the target
> "httpd < 1.0-2" is already present on the system. You could use
> triggerpostun instead - that will run only after the target is
> removed, but not when the source package is removed. See "triggers"
> under /usr/share/doc/rpm-4.x.y.
>
I thought triggerun is executed only if a package matching target is
being uninstalled. I missed the notice in `An Unusual Case' section of
triggers documentation.  (In my opinion, the documentation is poorly
written.  There is no specification when triggerun and triggerin are
exectuted.  There is only bunch of examples which do not assure
completeness.)

Then why does migration how-to use triggerun instead of triggerpostun?
I cannot see reason why the code should be executed on downgrade.

(Also I thinkg the triggers should use `-n' option to bind to specific
subpackage to prevent execution when uninstalling independend
subpackage.)

-- Petr

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux