- Bump to version 24
- Drop %tmpfiles_create_package
It can't work during transactional updates because the paths that
systemd-tmpfiles usually operates on (such as /var) can't be changed. It
appears that the only user of this macro doesn't really need this macro so
let's drop it.
- Drop %sysusers_create_inline
It's deprecated and the only user of this macro is being converted to
%sysusers_create_package. So drop it now before the deprecated macro attracts
more users.
- Unlike systemd-tmpfiles call in %tmpfiles_create_package(), systemd-sysusers
must always be called by %sysusers_create_package() even on transactional
systems since it's part of the macro contract. Writing to /etc is not
recommended on such systems but it has to work anyways.
OBS-URL: https://build.opensuse.org/request/show/1094319
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=47
- Bump to version 22
- Make sure that (future) users of %sysctl_apply() and %binfmt_apply() will call
the macros with arguments.
- Test the presence of /run/systemd/system to check whether we're operating
during transactional updates. Hence the behavior is the same when operating in
a chroot or during transactional updates.
- Leave %sysctl_apply() and %binfmt_apply() empty (bsc#1211272)
Only the former has very few users currently and none of them has specific
code relying on the new sysctl values to be effective between the macros and
the file triggers.
- Bump to version 21
- Rely on 'systemd-update-helper' shell script to implement %service_* macros
The helper was introduced by upstream commit 6d825ab2d42d3219e49a1. The main
advantage is that we no more need to rebuild all packages to update the macro
definitions.
Internally the script relies on file triggers for 'daemon-reload' operations
and for restarting units (when needed).
- Update other macros to reflect the fact that systemd package provides file
triggers for sysusers, tmpfiles, hwdb, and journal catalog.
OBS-URL: https://build.opensuse.org/request/show/1087187
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=45
- Bump to version 12
- Introduce %sysusers_create_package
%sysusers_create and %sysusers_create_inline are now deprecated and
the new macro should be used instead.
Upstream commit 07a7d4a0040d221ff09e527e91c112b4ffab1dba.
- Introduce %tmpfiles_create_package
%%tmpfiles_create is now deprecreated and the new macros should be
used instead.
Upstream commit 0f78fee8d039000b987848a558fbaa15d916e14e.
- %sysusers_create_inline: use here-docs instead of echo (bsc#1186282)
Upstream commit dd2490ae12ad1e1795ecbf8f8944b950da9c8d06.
OBS-URL: https://build.opensuse.org/request/show/894598
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=35
- Bump to version 11
- Don't pass -f to rm in %service_add_post nor %systemd_user_post
- Add a %systemd_user_pre macro that creates a
/run/systemd/rpm/needs-user-preset/$service file for each new
service being installed so %systemd_user_post can call
`systemctl --global preset $service` properly for newly
installed user services (boo#1183051, boo#1183012).
- Fix %systemd_user_post. The --global parameter was handled as if
it was another service name so %systemd_user_post wasn't working
properly. Replace %systemd_user_post with the code from
%service_add_post it was being expanded to but correctly passing
--global to systemctl (boo#1183051, boo#1182661).
OBS-URL: https://build.opensuse.org/request/show/877267
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=34
- Bump version to 10
- Make upstream %systemd_{pre,post,preun,postun} aliases to their SUSE
counterparts
Packagers can now choose to use the upstream or the SUSE variants
indifferently. For consistency the SUSE variants should be preferred
since almost all SUSE packages already use them but the upstream
versions might be usefull in certain cases where packages need to
support multiple distros based on RPM.
- Improve the logic used to apply the presets (bsc#1177039)
Before presests were applied at a) package installation b) new units
introduced via a package update (but after making sure that it was
not a SysV initscript being converted).
The problem is that a) didn't handle package a renaming or split
properly since the package with the new name is installed rather
being updated and therefore the presets were applied even if they
were already with the old name.
We now cover this case (and the other ones) by applying presets only
if the units are new and the services are not being migrated. This
regardless of whether this happens during an install or an update.
OBS-URL: https://build.opensuse.org/request/show/871420
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=33
- Bump version to 9
- daemon-reload is not needed in %service_add_post
Applying presets, ie enabling/disabling units, doesn't require to
update units loaded in PID1 memory. It's actually needed after and
it's done implicitly by `systemctl preset`.
- Rename the tag file used to detect when presets need to be applied
Rather than placing these tags directly under /run, let's place them
under /run/systemd/rpm. This also has the benefit to make the
workaround for bsc#1059627 no more needed.
- %service_del_preun doesn't accept -f/-n options anymore
The few package calling %service_del_preun with '-f' or '-n' option
have been fixed. These options are not needed anymore.
OBS-URL: https://build.opensuse.org/request/show/850414
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=32
- Bump version to 8
- Introduce %service_del_postun_with_restart()
It's the counterpart of %service_del_postun_without_restart() and
replaces the '-f' option of %service_del_postun().
- Expand %service_del_postun_without_restart in %service_del_postun
- Add a missing space in %_restart_on_update()
- Bump version to 7
- Dont apply presets when migrating from a disabled initscript (bsc#1178481)
- Bump version to 6
- Test for the presence of systemd only once in %service_add_post
- No need to run 'systemd-sysv-convert --save' in %service_add_pre anymore
Due to the fact that the initscripts being removed during package
updates are still available in %post, systemd-sysv-convert has been
reworked so it's only needed to call it in %post.
- Make rpmbuild load our own macros.systemd to import %{%_unitdir} properly
Ideally we should also own other %{_*dir} paths...
- Stop owning /usr/lib/systemd directory as no package other than
systemd is supposed to put files there.
- DISABLE_RESTART_ON_UDPATE is no more read from the (build) environment
%service_del_postun_without_restart is the interface that should be
used by packages that need to prevent theirs services from being
OBS-URL: https://build.opensuse.org/request/show/847458
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=31
- remove confusing --user before --global
Backport from
28d36da64a.
This was spotted in bsc#1090785.
- Fix %systemd_post(): it's never called during package removal
Also make it useful by restoring its original implementation.
- Import more definitions from upstream (v237)
- Fix system_user_post macro for usage with RPM 4.14, backport from
https://github.com/systemd/systemd/commit/e67ba783.
- Move macros.systemd in /usr/lib/rpm
The file is not supposed to be customized by the user.
- Make %systemd_add_pre() more similar to %systemd_add_post()
The main advantage is that we pass only one argument to
systemd-sysv-convert script. The later can now be improved/rewritten
to handle only one argument and return a useful exit status.
- Make sure to apply presets if packages start shipping units during upgrades (bsc#1071543)
If a package started shipping units during upgrade only sysv
migration was done. However if the package didn't ship any sysv
scripts before no presets were applied.
Now during upgrades, preset are always applied (still only during
the first time the units are installed) then followed by the sysv
migration machinery.
The downside of this is that migrated services can have symlinks in
both runlevel.target.wants/ (created by the sysv migration) and in
the directory specified by the [Install] sections (created by
"systemctl preset")...
The whole thing should be rewritten.
- Make sure to clean up "new-in-upgrade" tag file (bsc#1059627)
The tag file might have been incorrectly left by a preceding update.
- Restore previous changes
- Revert previous changes
Also added reasons why the previous changes would be needed.
- Don't execute systemd-tmpfiles if we run in transactional update
mode
If you do transactional updates, it doesn't make any sense to
execute the tmpfiles. They will only create a lot of directories,
files or symlinks in empty directories without any use and later
hidden under the real mount points. With transactional updates, you
should do such things always during the boot phase, as designed by
systemd (and like Fedora and RHEL doing, but in their use case it's
in my opinion a bug).
- Remove a useless test in %service_add_pre()
The test was placed where the condition '[ "$FIRST_ARG" -gt 1 ]' was
always true.
- BuildIgnore systemd-rpm-macros: a small cycle that can be
avoided. system-rpm-macros is being pulled in by rpm-build as
conveniance to the packagers.
- Reference bsc#956849 to please the new OBS 'sanity' check (bsc#1041386)
%tmpfiles_create is already part of the version shipped by Factory
so there's nothing to do here execpt mentioning (bsc#956849).
- Kill preset macros
The last users have been fixed so these macros are no more used by
any package.
The introduction of them was a bad idea and only the branding preset
package is still using a similar mechanism but at least it's now
self contained in this package. Also the package calls now a shell
script instead of rpm macros.
Upstream is working on making this completely obsolete so the preset
branding package could be cleaned up for good.
- RPM group fix
- %service_add_post() suppress daemon-reload when in installation
system (bsc#982343)
- Allow the packagers to specify the options -f and -n on the
macros %service_del_preun(), %service_del_postun(), %systemd_post(),
and %systemd_preun() (boo#968405)
- Also honor DISABLE_STOP_ON_REMOVAL and DISABLE_RESTART_ON_UPDATE
when specified by a package directly in the .spec file. Some
package know that a restart of their service is fatal
(boo#968405).
- Support of DISABLE_STOP_ON_REMOVAL and DISABLE_RESTART_ON_UPDATE
from /etc/sysconfig/service (bsc#955996)
- Skip %systemd_preset_* during the clean installation to prevent
presetting of all services (boo#946216).
- Add %systemd_preset_pre and %systemd_preset_posttrans that will
do one shot presetting of all services with changed system
preset. It makes possible to to fix bad default service state
(bnc#900935#c46, FATE#318949, FATE#317727, bnc#921075).
- Increment version to 3.
- Check for presence/executability of systemd programs before
executing them, and do not suppress warnings/errors resulting
from them.
- Update with new macros from systemd 218
- Remove empty sections from specfile
- Mark /etc/rpm/macros.systemd as configuration file
- Apply then delete patch systemd-daemon-reload-before-service-restart.patch
- Add orignal systemd macros as well (boo#807164)
- make systemd aware of changed unit file content after update
add systemd-daemon-reload-before-service-restart.patch
- Add a %_ntpunitsdir macro
- Add support to not restart services if running in YaST2 or
if DISABLE_RESTART_ON_UPDATE is set to yes [bnc#858429]
- Require coreutils as rm and touch are used
- Make systemd rpm macros package a separate to avoid rebuild of
the full package tree if systemd package change
- Resync with systemd v205 macros
- New package with systemd rpm macros to avoid unnecessary build time
dependencies
OBS-URL: https://build.opensuse.org/request/show/611238
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=25
- Fix %systemd_post(): it's never called during package removal
Also make it useful by restoring its original implementation.
- Import more definitions from upstream (v237)
- Fix system_user_post macro for usage with RPM 4.14, backport from
https://github.com/systemd/systemd/commit/e67ba783.
- Move macros.systemd in /usr/lib/rpm
The file is not supposed to be customized by the user.
- Make %systemd_add_pre() more similar to %systemd_add_post()
The main advantage is that we pass only one argument to
systemd-sysv-convert script. The later can now be improved/rewritten
to handle only one argument and return a useful exit status.
- Make sure to apply presets if packages start shipping units during upgrades (bsc#1071543)
If a package started shipping units during upgrade only sysv
migration was done. However if the package didn't ship any sysv
scripts before no presets were applied.
Now during upgrades, preset are always applied (still only during
the first time the units are installed) then followed by the sysv
migration machinery.
The downside of this is that migrated services can have symlinks in
both runlevel.target.wants/ (created by the sysv migration) and in
the directory specified by the [Install] sections (created by
"systemctl preset")...
The whole thing should be rewritten.
- Make sure to clean up "new-in-upgrade" tag file (bsc#1059627)
The tag file might have been incorrectly left by a preceding update.
- Restore previous changes
- Revert previous changes
Also added reasons why the previous changes would be needed.
- Don't execute systemd-tmpfiles if we run in transactional update
mode
If you do transactional updates, it doesn't make any sense to
execute the tmpfiles. They will only create a lot of directories,
files or symlinks in empty directories without any use and later
hidden under the real mount points. With transactional updates, you
should do such things always during the boot phase, as designed by
systemd (and like Fedora and RHEL doing, but in their use case it's
in my opinion a bug).
- Remove a useless test in %service_add_pre()
The test was placed where the condition '[ "$FIRST_ARG" -gt 1 ]' was
always true.
- BuildIgnore systemd-rpm-macros: a small cycle that can be
avoided. system-rpm-macros is being pulled in by rpm-build as
conveniance to the packagers.
- Reference bsc#956849 to please the new OBS 'sanity' check (bsc#1041386)
%tmpfiles_create is already part of the version shipped by Factory
so there's nothing to do here execpt mentioning (bsc#956849).
- Kill preset macros
The last users have been fixed so these macros are no more used by
any package.
The introduction of them was a bad idea and only the branding preset
package is still using a similar mechanism but at least it's now
self contained in this package. Also the package calls now a shell
script instead of rpm macros.
Upstream is working on making this completely obsolete so the preset
branding package could be cleaned up for good.
- RPM group fix
- %service_add_post() suppress daemon-reload when in installation
system (bsc#982343)
- Allow the packagers to specify the options -f and -n on the
macros %service_del_preun(), %service_del_postun(), %systemd_post(),
and %systemd_preun() (boo#968405)
- Also honor DISABLE_STOP_ON_REMOVAL and DISABLE_RESTART_ON_UPDATE
when specified by a package directly in the .spec file. Some
package know that a restart of their service is fatal
(boo#968405).
- Support of DISABLE_STOP_ON_REMOVAL and DISABLE_RESTART_ON_UPDATE
from /etc/sysconfig/service (bsc#955996)
- Skip %systemd_preset_* during the clean installation to prevent
presetting of all services (boo#946216).
- Add %systemd_preset_pre and %systemd_preset_posttrans that will
do one shot presetting of all services with changed system
preset. It makes possible to to fix bad default service state
(bnc#900935#c46, FATE#318949, FATE#317727, bnc#921075).
- Increment version to 3.
- Check for presence/executability of systemd programs before
executing them, and do not suppress warnings/errors resulting
from them.
- Update with new macros from systemd 218
- Remove empty sections from specfile
- Mark /etc/rpm/macros.systemd as configuration file
- Apply then delete patch systemd-daemon-reload-before-service-restart.patch
- Add orignal systemd macros as well (boo#807164)
- make systemd aware of changed unit file content after update
add systemd-daemon-reload-before-service-restart.patch
- Add a %_ntpunitsdir macro
- Add support to not restart services if running in YaST2 or
if DISABLE_RESTART_ON_UPDATE is set to yes [bnc#858429]
- Require coreutils as rm and touch are used
- Make systemd rpm macros package a separate to avoid rebuild of
the full package tree if systemd package change
- Resync with systemd v205 macros
- New package with systemd rpm macros to avoid unnecessary build time
dependencies
OBS-URL: https://build.opensuse.org/request/show/576778
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd-rpm-macros?expand=0&rev=24