From a0237e6d77996fddde255009ba9e9d59945dbb5f134c4f69755d0791a894ed12 Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Tue, 23 Jun 2020 14:19:06 +0000 Subject: [PATCH 1/2] Accepting request 816596 from home:fbui:systemd:openSUSE-Factory - Fix inconsistent file modes for some ghost files (bsc#1173227) Ghost files are assumed by rpm to have mode 000 by default which is not consistent with file permissions set at runtime. Also /var/lib/systemd/random-seed was tracked wrongly as a directory. Also don't track (ghost) /etc/systemd/system/runlevel*.target aliases since we're not supposed to track units or aliases user might define/override. OBS-URL: https://build.opensuse.org/request/show/816596 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1105 --- systemd-mini.changes | 15 +++++++++++++++ systemd-mini.spec | 21 ++++++++++----------- systemd.changes | 15 +++++++++++++++ systemd.spec | 21 ++++++++++----------- 4 files changed, 50 insertions(+), 22 deletions(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index ca453cf5..23628635 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Jun 23 13:29:18 UTC 2020 - Franck Bui + +- Fix inconsistent file modes for some ghost files (bsc#1173227) + + Ghost files are assumed by rpm to have mode 000 by default which is + not consistent with file permissions set at runtime. + + Also /var/lib/systemd/random-seed was tracked wrongly as a + directory. + + Also don't track (ghost) /etc/systemd/system/runlevel*.target + aliases since we're not supposed to track units or aliases user + might define/override. + ------------------------------------------------------------------- Fri Jun 19 09:59:29 UTC 2020 - Franck Bui diff --git a/systemd-mini.spec b/systemd-mini.spec index 09fa9f68..bf483c15 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -672,10 +672,6 @@ mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog -# Create ghost databases -touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database -touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin - # Make sure the NTP units dir exists mkdir -p %{buildroot}%{_ntpunitsdir} @@ -724,8 +720,15 @@ EOF install -m 644 %{S:11} %{buildroot}%{_unitdir}/ ln -s ../after-local.service %{buildroot}%{_unitdir}/multi-user.target.wants/ +# ghost directories with default permissions. mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed + +# ghost files with default permisssions. +touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf +touch %{buildroot}%{_sysconfdir}/vconsole.conf +touch %{buildroot}%{_sysconfdir}/locale.conf +touch %{buildroot}%{_sysconfdir}/machine-info +touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database %fdupes -s %{buildroot}%{_mandir} @@ -1242,12 +1245,8 @@ fi %ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf %ghost %config(noreplace) %{_sysconfdir}/vconsole.conf %ghost %config(noreplace) %{_sysconfdir}/locale.conf -%ghost %config(noreplace) %{_sysconfdir}/machine-id %ghost %config(noreplace) %{_sysconfdir}/machine-info -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target +%ghost %attr(0444,root,root) %config(noreplace) %{_sysconfdir}/machine-id %{_datadir}/systemd %{_datadir}/factory @@ -1319,7 +1318,7 @@ fi %endif %ghost %{_localstatedir}/lib/systemd/catalog/database %ghost %{_localstatedir}/lib/systemd/backlight -%ghost %{_localstatedir}/lib/systemd/random-seed +%ghost %attr(0600,root,root) %{_localstatedir}/lib/systemd/random-seed %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions diff --git a/systemd.changes b/systemd.changes index ca453cf5..23628635 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Jun 23 13:29:18 UTC 2020 - Franck Bui + +- Fix inconsistent file modes for some ghost files (bsc#1173227) + + Ghost files are assumed by rpm to have mode 000 by default which is + not consistent with file permissions set at runtime. + + Also /var/lib/systemd/random-seed was tracked wrongly as a + directory. + + Also don't track (ghost) /etc/systemd/system/runlevel*.target + aliases since we're not supposed to track units or aliases user + might define/override. + ------------------------------------------------------------------- Fri Jun 19 09:59:29 UTC 2020 - Franck Bui diff --git a/systemd.spec b/systemd.spec index 2fce83cf..f9f3dc79 100644 --- a/systemd.spec +++ b/systemd.spec @@ -670,10 +670,6 @@ mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog -# Create ghost databases -touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database -touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin - # Make sure the NTP units dir exists mkdir -p %{buildroot}%{_ntpunitsdir} @@ -722,8 +718,15 @@ EOF install -m 644 %{S:11} %{buildroot}%{_unitdir}/ ln -s ../after-local.service %{buildroot}%{_unitdir}/multi-user.target.wants/ +# ghost directories with default permissions. mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed + +# ghost files with default permisssions. +touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf +touch %{buildroot}%{_sysconfdir}/vconsole.conf +touch %{buildroot}%{_sysconfdir}/locale.conf +touch %{buildroot}%{_sysconfdir}/machine-info +touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database %fdupes -s %{buildroot}%{_mandir} @@ -1240,12 +1243,8 @@ fi %ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf %ghost %config(noreplace) %{_sysconfdir}/vconsole.conf %ghost %config(noreplace) %{_sysconfdir}/locale.conf -%ghost %config(noreplace) %{_sysconfdir}/machine-id %ghost %config(noreplace) %{_sysconfdir}/machine-info -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target +%ghost %attr(0444,root,root) %config(noreplace) %{_sysconfdir}/machine-id %{_datadir}/systemd %{_datadir}/factory @@ -1317,7 +1316,7 @@ fi %endif %ghost %{_localstatedir}/lib/systemd/catalog/database %ghost %{_localstatedir}/lib/systemd/backlight -%ghost %{_localstatedir}/lib/systemd/random-seed +%ghost %attr(0600,root,root) %{_localstatedir}/lib/systemd/random-seed %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions From 006b3d0150b6207838f1a052a7872f0b7165d231b3ebb4079e341a3c21894611 Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Wed, 24 Jun 2020 06:50:07 +0000 Subject: [PATCH 2/2] Accepting request 816786 from home:fbui:systemd:openSUSE-Factory - migrate-sysconfig-i18n.sh: fix marker handling (bsc#1173229) The marker is used to make sure the script is run only once. Instead of storing it in /usr, use /var which is more appropriate for such file. Also make it owned by systemd package. OBS-URL: https://build.opensuse.org/request/show/816786 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1106 --- scripts-systemd-migrate-sysconfig-i18n.sh | 18 ++++++++++++++---- systemd-mini.changes | 11 +++++++++++ systemd-mini.spec | 9 +++++---- systemd.changes | 11 +++++++++++ systemd.spec | 9 +++++---- 5 files changed, 46 insertions(+), 12 deletions(-) diff --git a/scripts-systemd-migrate-sysconfig-i18n.sh b/scripts-systemd-migrate-sysconfig-i18n.sh index 02646759..432e9e74 100644 --- a/scripts-systemd-migrate-sysconfig-i18n.sh +++ b/scripts-systemd-migrate-sysconfig-i18n.sh @@ -128,8 +128,18 @@ migrate_language () { fi } -migrate_locale; rv1=$? -migrate_keyboard; rv2=$? -migrate_language; rv3=$? -test $((rv1 + rv2 + rv3)) -eq 0 +# The marker could have been incorrectly put in /usr/lib. In this case +# move it to its new place. +mv /usr/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done \ + /var/lib/systemd/i18n-migrated &>/dev/null + +if ! test -e /var/lib/systemd/i18n-migrated; then + declare -i rv=0 + + migrate_locale; rv+=$? + migrate_keyboard; rv+=$? + migrate_language; rv+=$? + + test $rv -eq 0 && touch /var/lib/systemd/i18n-migrated +fi diff --git a/systemd-mini.changes b/systemd-mini.changes index 23628635..0fd3cfe4 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 24 06:33:33 UTC 2020 - Franck Bui + +- migrate-sysconfig-i18n.sh: fix marker handling (bsc#1173229) + + The marker is used to make sure the script is run only once. Instead + of storing it in /usr, use /var which is more appropriate for such + file. + + Also make it owned by systemd package. + ------------------------------------------------------------------- Tue Jun 23 13:29:18 UTC 2020 - Franck Bui diff --git a/systemd-mini.spec b/systemd-mini.spec index bf483c15..3506747e 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -729,6 +729,7 @@ touch %{buildroot}%{_sysconfdir}/vconsole.conf touch %{buildroot}%{_sysconfdir}/locale.conf touch %{buildroot}%{_sysconfdir}/machine-info touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database +touch %{buildroot}%{_localstatedir}/lib/systemd/i18n-migrated %fdupes -s %{buildroot}%{_mandir} @@ -872,10 +873,9 @@ fi # This is needed both at package updates and package installations # because we might be upgrading from a system which was running SysV # init (systemd package is being installed). -if ! test -e %{_prefix}/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done; then - %{_prefix}/lib/systemd/scripts/migrate-sysconfig-i18n.sh && - touch %{_prefix}/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done || : -fi +# +# It's run only once. +%{_prefix}/lib/systemd/scripts/migrate-sysconfig-i18n.sh || : %postun %systemd_postun @@ -1318,6 +1318,7 @@ fi %endif %ghost %{_localstatedir}/lib/systemd/catalog/database %ghost %{_localstatedir}/lib/systemd/backlight +%ghost %{_localstatedir}/lib/systemd/i18n-migrated %ghost %attr(0600,root,root) %{_localstatedir}/lib/systemd/random-seed %dir %{_datadir}/bash-completion diff --git a/systemd.changes b/systemd.changes index 23628635..0fd3cfe4 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 24 06:33:33 UTC 2020 - Franck Bui + +- migrate-sysconfig-i18n.sh: fix marker handling (bsc#1173229) + + The marker is used to make sure the script is run only once. Instead + of storing it in /usr, use /var which is more appropriate for such + file. + + Also make it owned by systemd package. + ------------------------------------------------------------------- Tue Jun 23 13:29:18 UTC 2020 - Franck Bui diff --git a/systemd.spec b/systemd.spec index f9f3dc79..c96ca5e2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -727,6 +727,7 @@ touch %{buildroot}%{_sysconfdir}/vconsole.conf touch %{buildroot}%{_sysconfdir}/locale.conf touch %{buildroot}%{_sysconfdir}/machine-info touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database +touch %{buildroot}%{_localstatedir}/lib/systemd/i18n-migrated %fdupes -s %{buildroot}%{_mandir} @@ -870,10 +871,9 @@ fi # This is needed both at package updates and package installations # because we might be upgrading from a system which was running SysV # init (systemd package is being installed). -if ! test -e %{_prefix}/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done; then - %{_prefix}/lib/systemd/scripts/migrate-sysconfig-i18n.sh && - touch %{_prefix}/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done || : -fi +# +# It's run only once. +%{_prefix}/lib/systemd/scripts/migrate-sysconfig-i18n.sh || : %postun %systemd_postun @@ -1316,6 +1316,7 @@ fi %endif %ghost %{_localstatedir}/lib/systemd/catalog/database %ghost %{_localstatedir}/lib/systemd/backlight +%ghost %{_localstatedir}/lib/systemd/i18n-migrated %ghost %attr(0600,root,root) %{_localstatedir}/lib/systemd/random-seed %dir %{_datadir}/bash-completion