Hi packagers,
I just realized there's a mistake in the ScriptletsSnippets page about the new systemd macros: https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Macroized_scriptl...
The page asks to add "Requires: systemd", but the macros are actually expanded at build time and not at run time, thus it should simply be a single "BuildRequires: systemd" line.
Example of the scriptlets when built without systemd:
# rpm -q --scripts mailman3 preinstall scriptlet (using /bin/sh): [...] postinstall scriptlet (using /bin/sh): %systemd_post mailman3.service preuninstall scriptlet (using /bin/sh): %systemd_preun mailman3.service postuninstall scriptlet (using /bin/sh): %systemd_postun_with_restart mailman3.service
And I install time I get:
/var/tmp/rpm-tmp.FtLPUV: line 1: fg: no job control warning: %post(mailman3-3.0.0-0.6.bzr7218.fc19.noarch) scriptlet failed, exit status 1 Non-fatal POSTIN scriptlet failure in rpm package mailman3-3.0.0-0.6.bzr7218.fc19.noarch
obviously because the "%" sign is interpreted as the job control command. When built with systemd, the scriptlets look correct:
$ rpm -qp --scripts mailman3-3.0.0-0.6.bzr7220.fc19.noarch.rpm preinstall scriptlet (using /bin/sh): [...] postinstall scriptlet (using /bin/sh): if [ $1 -eq 1 ] ; then # Initial installation /usr/bin/systemctl preset mailman3.service >/dev/null 2>&1 || : fi preuninstall scriptlet (using /bin/sh): [...] (expanded too) postuninstall scriptlet (using /bin/sh): [...] (expanded too)
This is on F19. Can you confirm that the wiki page should be fixed? Thanks.
Aurélien
On 08/30/2013 01:08 PM, Aurélien Bompard wrote:
Hi packagers,
I just realized there's a mistake in the ScriptletsSnippets page about the new systemd macros: https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Macroized_scriptl...
The page asks to add "Requires: systemd", but the macros are actually expanded at build time and not at run time, thus it should simply be a single "BuildRequires: systemd" line.
Example of the scriptlets when built without systemd:
# rpm -q --scripts mailman3 preinstall scriptlet (using /bin/sh): [...] postinstall scriptlet (using /bin/sh): %systemd_post mailman3.service preuninstall scriptlet (using /bin/sh): %systemd_preun mailman3.service postuninstall scriptlet (using /bin/sh): %systemd_postun_with_restart mailman3.service
And I install time I get:
/var/tmp/rpm-tmp.FtLPUV: line 1: fg: no job control warning: %post(mailman3-3.0.0-0.6.bzr7218.fc19.noarch) scriptlet failed, exit status 1 Non-fatal POSTIN scriptlet failure in rpm package mailman3-3.0.0-0.6.bzr7218.fc19.noarch
obviously because the "%" sign is interpreted as the job control command. When built with systemd, the scriptlets look correct:
$ rpm -qp --scripts mailman3-3.0.0-0.6.bzr7220.fc19.noarch.rpm preinstall scriptlet (using /bin/sh): [...] postinstall scriptlet (using /bin/sh): if [ $1 -eq 1 ] ; then # Initial installation /usr/bin/systemctl preset mailman3.service >/dev/null 2>&1 || : fi preuninstall scriptlet (using /bin/sh): [...] (expanded too) postuninstall scriptlet (using /bin/sh): [...] (expanded too)
This is on F19. Can you confirm that the wiki page should be fixed? Thanks.
Aurélien
I asked systemd maintainers and the correct solution is BuildRequire systemd all the time you are using their macros. They should probably go through packages and verify it's fixed everywhere, because it changed few months ago.
I answered to myself in this ticket [1]. Sadly no-one replied to me and didn't fix it in guidelines.
[1] https://fedorahosted.org/fpc/ticket/318
Marcela
On Fri, Aug 30, 2013 at 01:24:28PM +0200, Marcela Mašláňová wrote:
I asked systemd maintainers and the correct solution is BuildRequire systemd all the time you are using their macros. They should probably go through packages and verify it's fixed everywhere, because it changed few months ago.
I answered to myself in this ticket [1]. Sadly no-one replied to me and didn't fix it in guidelines.
Ah -- sorry, that got closed fixed so it dropped off the FPC's radar.
Reopened and called for voting in ticket.
-Toshio
packaging@lists.fedoraproject.org