- $1 can never be empty or it's an rpm bug
- Get rid of $FIRST_ARG
$FIRST_ARG was probably introduced because the %service_* macros
were playing tricks on the shell positional parameters. This is bad
practice and error prone so let's assume that no macros should do
that anymore and hence it's safe to assume that positional
parameters remains unchanged after any rpm macro call.
All users of $FIRST_ARG should have been fixed by now and in most
cases the use of the variable was unneeded (since the macros don't
change the shell parameters) and thus confusing.
'net-snmp' has a different use of FIRST_ARG though as it tried to
fake an update during a package installation. Fortunately this could
have been fixed too.
OBS-URL: https://build.opensuse.org/request/show/684198
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd-rpm-macros?expand=0&rev=37
- Fix %_restart_on_update_force: drop one extra trailing '}'
Thanks Werner for spotting.
- Simplify %_restart_on_update and %_stop_on_removal
There's no need to spawn sub shells when these macros are used.
- Macros arguments are mandatory
Especially in %_restart_on_update_never and %_stop_on_removal_never,
let's assume that they always receive unit names as arguments. This
allows to make them slightly simpler (less rpm macro black magic).
Callers will fail earlier if no arguments are passed anyway.
OBS-URL: https://build.opensuse.org/request/show/680383
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd-rpm-macros?expand=0&rev=36
- 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