forked from pool/systemd
Accepting request 1085215 from Base:System
- Rather than having one script per fix, use a single script (or "fixlet") per
(sub) package that contains all the fixups relative to a (sub) package. This
has the advantage to limit the number of scripts but more importantly it will
ease the sharing of the spec file between TW and SLE. We should also be able
to compare the fixlets of two distros even if the spec files have diverged.
Note that all the fixups are run just once now.
- Make use of %_systemd_util_dir in the spec file.
- Rename the SUSE specific scripts used to fix up the system where systemd is
installed on. Also rename the directory where these scripts are stored.
- kbd-model-map.legacy: drop entry for 'ruwin_alt-UTF-8' as yast doesn't rely on
it anymore, see https://github.com/yast/yast-country/pull/307
- Import commit 25aec157888f7aa9a36726962fcbbf2c74ead440 (merge of v253.4)
For a complete list of changes, visit:
3ce9610975...25aec15788
- Import commit 3ce9610975b5239a21c0c886cb893bb172966de7
3ce9610975 test: dont use anchor char '$' to match a part of a string
03ede3eaa2 locale: when no xvariant match select the entry with an empty xvariant
f08017efd5 locale: convert generated vconsole keymap to x11 layout automatically
e8cf56459b localed-util: make use of strdupcspn()
821c684440 test: use kbd-mode-map we ship in TEST-73-LOCALE
OBS-URL: https://build.opensuse.org/request/show/1085215
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=390
This commit is contained in:
commit
99a49e028a
@ -30,7 +30,7 @@
|
|||||||
%{_mandir}/man5/org.freedesktop.machine1.5.gz
|
%{_mandir}/man5/org.freedesktop.machine1.5.gz
|
||||||
%{_mandir}/man8/systemd-machined.8.gz
|
%{_mandir}/man8/systemd-machined.8.gz
|
||||||
%{_mandir}/man8/systemd-machined.service.8.gz
|
%{_mandir}/man8/systemd-machined.service.8.gz
|
||||||
%{_systemd_util_dir}/scripts/fix-machines-btrfs-subvol.sh
|
%{_systemd_util_dir}/rpm/fixlet-container-post.sh
|
||||||
%{_systemd_util_dir}/systemd-machined
|
%{_systemd_util_dir}/systemd-machined
|
||||||
%{_tmpfilesdir}/systemd-nspawn.conf
|
%{_tmpfilesdir}/systemd-nspawn.conf
|
||||||
%{_unitdir}/dbus-org.freedesktop.machine1.service
|
%{_unitdir}/dbus-org.freedesktop.machine1.service
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
%dir %{_libdir}/systemd
|
%dir %{_libdir}/systemd
|
||||||
%dir %{_localstatedir}/lib/systemd
|
%dir %{_localstatedir}/lib/systemd
|
||||||
%dir %{_localstatedir}/lib/systemd/catalog
|
%dir %{_localstatedir}/lib/systemd/catalog
|
||||||
|
%dir %{_localstatedir}/lib/systemd/rpm
|
||||||
%dir %{_modprobedir}
|
%dir %{_modprobedir}
|
||||||
%dir %{_sysconfdir}/X11/xorg.conf.d
|
%dir %{_sysconfdir}/X11/xorg.conf.d
|
||||||
%dir %{_sysconfdir}/binfmt.d
|
%dir %{_sysconfdir}/binfmt.d
|
||||||
@ -44,7 +45,7 @@
|
|||||||
%dir %{_systemd_user_env_generator_dir}
|
%dir %{_systemd_user_env_generator_dir}
|
||||||
%dir %{_systemd_util_dir}
|
%dir %{_systemd_util_dir}
|
||||||
%dir %{_systemd_util_dir}/ntp-units.d
|
%dir %{_systemd_util_dir}/ntp-units.d
|
||||||
%dir %{_systemd_util_dir}/scripts
|
%dir %{_systemd_util_dir}/rpm
|
||||||
%dir %{_systemd_util_dir}/system-preset
|
%dir %{_systemd_util_dir}/system-preset
|
||||||
%dir %{_systemd_util_dir}/system-shutdown
|
%dir %{_systemd_util_dir}/system-shutdown
|
||||||
%dir %{_systemd_util_dir}/system-sleep
|
%dir %{_systemd_util_dir}/system-sleep
|
||||||
@ -91,7 +92,6 @@
|
|||||||
%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
|
%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
|
||||||
%ghost %dir %attr(2755, root, systemd-journal) %{_localstatedir}/log/journal
|
%ghost %dir %attr(2755, root, systemd-journal) %{_localstatedir}/log/journal
|
||||||
%ghost %{_localstatedir}/lib/systemd/catalog/database
|
%ghost %{_localstatedir}/lib/systemd/catalog/database
|
||||||
%ghost %{_localstatedir}/lib/systemd/i18n-migrated
|
|
||||||
%license LICENSE.GPL2
|
%license LICENSE.GPL2
|
||||||
%license LICENSE.LGPL2.1
|
%license LICENSE.LGPL2.1
|
||||||
%{_bindir}/busctl
|
%{_bindir}/busctl
|
||||||
@ -440,8 +440,7 @@
|
|||||||
%{_sysctldir}/99-sysctl.conf
|
%{_sysctldir}/99-sysctl.conf
|
||||||
%{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator
|
%{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator
|
||||||
%{_systemd_util_dir}/ntp-units.d/80-systemd-timesync.list
|
%{_systemd_util_dir}/ntp-units.d/80-systemd-timesync.list
|
||||||
%{_systemd_util_dir}/scripts/migrate-sysconfig-i18n.sh
|
%{_systemd_util_dir}/rpm/fixlet-systemd-post.sh
|
||||||
%{_systemd_util_dir}/scripts/upgrade-from-pre-210.sh
|
|
||||||
%{_systemd_util_dir}/system-preset/99-default.preset
|
%{_systemd_util_dir}/system-preset/99-default.preset
|
||||||
%{_systemd_util_dir}/systemd
|
%{_systemd_util_dir}/systemd
|
||||||
%{_systemd_util_dir}/systemd-binfmt
|
%{_systemd_util_dir}/systemd-binfmt
|
||||||
|
146
fixlet-container-post.sh
Normal file
146
fixlet-container-post.sh
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
#
|
||||||
|
# This script contains all the fixups run when systemd-container package is
|
||||||
|
# installed or updated.
|
||||||
|
#
|
||||||
|
|
||||||
|
warn() {
|
||||||
|
echo >&2 "warning: $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
is_btrfs_subvolume() {
|
||||||
|
# On btrfs subvolumes always have the inode 256
|
||||||
|
test $(stat --format=%i "$1") -eq 256
|
||||||
|
}
|
||||||
|
|
||||||
|
# This assumes the directory/subvol is emptied by the caller.
|
||||||
|
rm_subvolume_or_directory() {
|
||||||
|
is_btrfs_subvolume "$1" && {
|
||||||
|
btrfs subvolume delete "$1"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
rmdir "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# On systems using BTRFS, convert /var/lib/machines into a subvolume suitable
|
||||||
|
# for snapper to perform snapshots, rollbacks.. in case it was not properly set
|
||||||
|
# up, see bsc#992573. The installer has been fixed to properly initialize it at
|
||||||
|
# installation time.
|
||||||
|
#
|
||||||
|
# The conversion might only be problematic for openSUSE distros (TW/Factory)
|
||||||
|
# where the subvolume was created at the wrong place (via tmpfiles for example)
|
||||||
|
# and it got populated before we had time to fix it. In this case we'll let the
|
||||||
|
# user fix it manually.
|
||||||
|
#
|
||||||
|
# On SLE12 this subvolume was only introduced during the upgrade from v210 to
|
||||||
|
# v228 (ie SLE12-SP[01] -> SLE12-SP2+ when we added this workaround hence no
|
||||||
|
# user should had time to populate it. Note that the subvolume is still created
|
||||||
|
# at the wrong place due to the call to tmpfiles_create macro in the %post
|
||||||
|
# section however it's empty so again we shouldn't face any issue to convert it.
|
||||||
|
#
|
||||||
|
# In order to avoid ugly dependencies added in systemd package, this function
|
||||||
|
# should only be called during package updates when mksubvolume(8) is
|
||||||
|
# available. During installation, /var/lib/machines is supposed to be created by
|
||||||
|
# the installer now.
|
||||||
|
#
|
||||||
|
# See bsc#992573
|
||||||
|
#
|
||||||
|
fix_machines_subvol() {
|
||||||
|
local tagfile=/var/lib/systemd/rpm/container-machines_subvol
|
||||||
|
|
||||||
|
if [ -e $tagfile ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
touch $tagfile
|
||||||
|
|
||||||
|
#
|
||||||
|
# If there's already an entry in fstab for /var/lib/machines, it
|
||||||
|
# means that:
|
||||||
|
#
|
||||||
|
# - the installer initialized /var/lib/machines correctly (default)
|
||||||
|
# - we already fixed it
|
||||||
|
# - the sysadmin added it manually
|
||||||
|
#
|
||||||
|
# In any cases we should return.
|
||||||
|
#
|
||||||
|
# Note: we can't simply check if /var/lib/machines has been mounted
|
||||||
|
# because an update through a chroot might be in progress (see
|
||||||
|
# bsc#1030290).
|
||||||
|
#
|
||||||
|
if mount --fake /var/lib/machines 2>/dev/null; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# If there is already an entry in fstab for /var, it means that:
|
||||||
|
#
|
||||||
|
# - the system has a seperate /var subvolume (default from Feb 2018)
|
||||||
|
# - the system has a seperate /var partition
|
||||||
|
#
|
||||||
|
# In any case we should return.
|
||||||
|
#
|
||||||
|
if mount --fake /var 2>/dev/null; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# If something is already mounted don't try to fix anything, it's been
|
||||||
|
# done manually by the sysadmin.
|
||||||
|
#
|
||||||
|
if mountpoint -q /var/lib/machines; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Let's try to figure out if the current filesystem uses a Snapper
|
||||||
|
# BTRFS specific layout. Note that TW uses a different layout than
|
||||||
|
# SLE...
|
||||||
|
#
|
||||||
|
# FIXME: not sure if it's correct, reliable or optimal.
|
||||||
|
#
|
||||||
|
case $(findmnt -nr -t btrfs -o FSROOT / 2>/dev/null) in
|
||||||
|
*.snapshots/*/snapshot*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return 0
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -d /var/lib/machines; then
|
||||||
|
#
|
||||||
|
# Ok, we're on a system supporting rollbacks and
|
||||||
|
# /var/lib/machines is not a subvolume remotely mounted so it
|
||||||
|
# cannot be suitable for systems supporting rollback. Fix it.
|
||||||
|
#
|
||||||
|
echo "Making /var/lib/machines suitable for rollbacks..."
|
||||||
|
|
||||||
|
type mksubvolume >/dev/null 2>&1 || {
|
||||||
|
warn "mksubvolume(8) is not installed, aborting."
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
test "$(ls -A /var/lib/machines/)" && {
|
||||||
|
warn "/var/lib/machines is not empty, aborting."
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Deleting empty /var/lib/machines directory/subvolume"
|
||||||
|
rm_subvolume_or_directory /var/lib/machines || {
|
||||||
|
warn "fail to delete /var/lib/machines"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# At this point /var/lib/machines shouldn't exist.
|
||||||
|
echo "Creating /var/lib/machines subvolume suitable for rollbacks."
|
||||||
|
mksubvolume /var/lib/machines
|
||||||
|
}
|
||||||
|
|
||||||
|
r=0
|
||||||
|
if [ $1 -gt 1 ]; then
|
||||||
|
# During upgrade
|
||||||
|
fix_machines_subvol || {
|
||||||
|
warn "Please fix /var/lib/machines manually."
|
||||||
|
r=1
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $r
|
@ -1,4 +1,8 @@
|
|||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
|
#
|
||||||
|
# This script contains all the fixups run when systemd package is installed or
|
||||||
|
# updated.
|
||||||
|
#
|
||||||
|
|
||||||
# /etc/sysconfig/console | /etc/vconsole.conf
|
# /etc/sysconfig/console | /etc/vconsole.conf
|
||||||
# -------------------------+---------------------
|
# -------------------------+---------------------
|
||||||
@ -76,13 +80,12 @@ migrate_keyboard () {
|
|||||||
|
|
||||||
# According to
|
# According to
|
||||||
# https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_suse_l10n.html,
|
# https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_suse_l10n.html,
|
||||||
# variables in /etc/sysconfig/language are supposed to be passed to
|
# variables in /etc/sysconfig/language are supposed to be passed to the users'
|
||||||
# the users' shell *only*. However it seems that there has been some
|
# shell *only*. However it seems that there has been some confusion and they
|
||||||
# confusion and they ended up configuring the system-wide locale as
|
# ended up configuring the system-wide locale as well. The logic followed by
|
||||||
# well. The logic followed by systemd was implemented in commit
|
# systemd was implemented in commit 01c4b6f4f0d951d17f6873f68156ecd7763429c6,
|
||||||
# 01c4b6f4f0d951d17f6873f68156ecd7763429c6, which was reverted. The
|
# which was reverted. The code below follows the same logic to migrate content
|
||||||
# code below follows the same logic to migrate content of
|
# of /etc/sysconfig/language into locale.conf.
|
||||||
# /etc/sysconfig/language into locale.conf.
|
|
||||||
migrate_language () {
|
migrate_language () {
|
||||||
local lang=
|
local lang=
|
||||||
local migrated=false
|
local migrated=false
|
||||||
@ -128,18 +131,89 @@ migrate_language () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Migrate old i18n settings previously configured in /etc/sysconfig to the new
|
||||||
|
# locations used by systemd (/etc/locale.conf, /etc/vconsole.conf, ...). Recent
|
||||||
|
# versions of systemd parse the new locations only.
|
||||||
|
#
|
||||||
|
# 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).
|
||||||
|
#
|
||||||
|
# It's run only once.
|
||||||
|
migrate_sysconfig_i18n() {
|
||||||
|
local tagfile=/var/lib/systemd/rpm/systemd-i18n_migrated
|
||||||
|
local -i rv=0
|
||||||
|
|
||||||
# The marker could have been incorrectly put in /usr/lib. In this case
|
if [ -e $tagfile ]; then
|
||||||
# move it to its new place.
|
return 0
|
||||||
mv /usr/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done \
|
fi
|
||||||
/var/lib/systemd/i18n-migrated &>/dev/null
|
|
||||||
|
|
||||||
if ! test -e /var/lib/systemd/i18n-migrated; then
|
# The marker could have been incorrectly put in /usr/lib.
|
||||||
declare -i rv=0
|
mv /usr/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done $tagfile &>/dev/null
|
||||||
|
# The tag files have been moved to /var/lib/systemd/rpm later.
|
||||||
|
mv /var/lib/systemd/i18n-migrated $tagfile &>/dev/null
|
||||||
|
|
||||||
|
if [ -e $tagfile ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
touch $tagfile
|
||||||
|
|
||||||
migrate_locale; rv+=$?
|
migrate_locale; rv+=$?
|
||||||
migrate_keyboard; rv+=$?
|
migrate_keyboard; rv+=$?
|
||||||
migrate_language; rv+=$?
|
migrate_language; rv+=$?
|
||||||
|
|
||||||
test $rv -eq 0 && touch /var/lib/systemd/i18n-migrated
|
return $rv
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# This function is supposed to be called from the %post section of the main
|
||||||
|
# package. It contains all the fixups needed when the system was running a
|
||||||
|
# version of systemd older than v210.
|
||||||
|
#
|
||||||
|
# All hacks can potentially break the admin settings since they work in /etc.
|
||||||
|
#
|
||||||
|
fix_pre_210() {
|
||||||
|
local tagfile=/var/lib/systemd/rpm/systemd-pre_210_fixed
|
||||||
|
|
||||||
|
if [ -e $tagfile ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
touch $tagfile
|
||||||
|
|
||||||
|
#
|
||||||
|
# During migration from sysvinit to systemd, we used to set the systemd
|
||||||
|
# default target to one of the 'runlevel*.target' after reading the
|
||||||
|
# default runlevel from /etc/inittab. We don't do that anymore because
|
||||||
|
# in most cases using the graphical.target target, which is the default,
|
||||||
|
# will do the right thing. Moreover the runlevel targets are considered
|
||||||
|
# as deprecated, so we convert them into "true" systemd targets instead
|
||||||
|
# here.
|
||||||
|
#
|
||||||
|
if target=$(readlink /etc/systemd/system/default.target); then
|
||||||
|
target=$(basename $target)
|
||||||
|
case "$target" in
|
||||||
|
runlevel?.target)
|
||||||
|
echo "Default target is '$target' but use of runlevels is deprecated, converting"
|
||||||
|
systemctl --no-reload set-default $target
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Migrate any symlink which may refer to the old path (ie /lib/systemd).
|
||||||
|
#
|
||||||
|
for f in $(find /etc/systemd/system -type l -xtype l); do
|
||||||
|
new_target="/usr$(readlink $f)"
|
||||||
|
[ -f "$new_target" ] && ln -s -f "$new_target" "$f"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
r=0
|
||||||
|
fix_pre_210 || {
|
||||||
|
r=1
|
||||||
|
}
|
||||||
|
migrate_sysconfig_i18n || {
|
||||||
|
echo >&2 "Failed to migrate i18n settings from /etc/sysconfig, continuing..."
|
||||||
|
r=1
|
||||||
|
}
|
||||||
|
|
||||||
|
exit $r
|
@ -5,9 +5,3 @@
|
|||||||
arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
|
arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
|
||||||
ara ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
|
ara ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
|
||||||
ir ir pc105 - terminate:ctrl_alt_bksp
|
ir ir pc105 - terminate:ctrl_alt_bksp
|
||||||
|
|
||||||
# FIXME: ruwin_alt-UTF-8 is not needed as the legacy "ru" keymap
|
|
||||||
# (/usr/share/kbd/keymaps/i386/qwerty/ru.map.gz) is a dual layout and contains
|
|
||||||
# the Latin letters. Keep it until YaST is updated.
|
|
||||||
|
|
||||||
ruwin_alt-UTF-8 us,ru pc105 ,winkeys terminate:ctrl_alt_bksp,grp:ctrl_shift_toggle,grp_led:scroll
|
|
||||||
|
@ -1,139 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
#
|
|
||||||
# This is used to initially create /var/lib/machines subvolume in case
|
|
||||||
# the system we're running on is using BTRFS with the specific layout
|
|
||||||
# used by snapper to perform snapshots, rollbacks, etc...
|
|
||||||
#
|
|
||||||
# Unfortunately some distros (TW) already shipped versions with
|
|
||||||
# systemd creating a plain subvolume which breaks snapper.
|
|
||||||
#
|
|
||||||
# If /var/lib/machines is already populated then it's going to be
|
|
||||||
# pretty ugly to convert the old subvolume into a new one specially
|
|
||||||
# since it can be in use.
|
|
||||||
#
|
|
||||||
# Hopefully not a lot of users are using machinectl to import
|
|
||||||
# container/VM images. So in most of the cases this directory should
|
|
||||||
# be empty and we can then simple delete the subvolume and create a
|
|
||||||
# new one respecting the snapper layout.
|
|
||||||
#
|
|
||||||
# In the rare case where /var/lib/machines is populated, we will warn
|
|
||||||
# the user and let him fix it manually.
|
|
||||||
#
|
|
||||||
# In order to avoid ugly dependencies added in systemd package, this
|
|
||||||
# script should only be called during package updates when
|
|
||||||
# mksubvolume(8) is available. During installation, /var/lib/machines
|
|
||||||
# is supposed to be created by the installer now.
|
|
||||||
#
|
|
||||||
# See bsc#992573
|
|
||||||
#
|
|
||||||
|
|
||||||
warn() {
|
|
||||||
echo >&2 "warning: $@"
|
|
||||||
}
|
|
||||||
|
|
||||||
is_btrfs_subvolume() {
|
|
||||||
# On btrfs subvolumes always have the inode 256
|
|
||||||
test $(stat --format=%i "$1") -eq 256
|
|
||||||
}
|
|
||||||
|
|
||||||
# This assumes the directory/subvol is emptied by the caller.
|
|
||||||
rm_subvolume_or_directory() {
|
|
||||||
is_btrfs_subvolume "$1" && {
|
|
||||||
btrfs subvolume delete "$1"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
rmdir "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
on_exit() {
|
|
||||||
# Simply print a common error message in case something went
|
|
||||||
# wrong.
|
|
||||||
if test $? -ne 0; then
|
|
||||||
warn "Please fix /var/lib/machines manually."
|
|
||||||
# FIXME: point to a documentation explaining how to do
|
|
||||||
# that.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# If there's already an entry in fstab for /var/lib/machines, it
|
|
||||||
# means that:
|
|
||||||
#
|
|
||||||
# - the installer initialized /var/lib/machines correctly (default)
|
|
||||||
# - we already fixed it
|
|
||||||
# - the sysadmin added it manually
|
|
||||||
#
|
|
||||||
# In any cases we should exit.
|
|
||||||
#
|
|
||||||
# Note: we can't simply check if /var/lib/machines has been mounted
|
|
||||||
# because an update through a chroot might be in progress (see
|
|
||||||
# bsc#1030290).
|
|
||||||
#
|
|
||||||
if mount --fake /var/lib/machines 2>/dev/null; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# If there is already an entry in fstab for /var, it means that:
|
|
||||||
#
|
|
||||||
# - the system has a seperate /var subvolume (default from Feb 2018)
|
|
||||||
# - the system has a seperate /var partition
|
|
||||||
#
|
|
||||||
# In any case we should exit
|
|
||||||
#
|
|
||||||
if mount --fake /var 2>/dev/null; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# If something is already mounted don't try to fix anything, it's been
|
|
||||||
# done manually by the sysadmin.
|
|
||||||
#
|
|
||||||
if mountpoint -q /var/lib/machines; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Let's try to figure out if the current filesystem uses a Snapper
|
|
||||||
# BTRFS specific layout. Note that TW uses a different layout than
|
|
||||||
# SLE...
|
|
||||||
#
|
|
||||||
# FIXME: not sure if it's correct, reliable or optimal.
|
|
||||||
#
|
|
||||||
case $(findmnt -nr -t btrfs -o FSROOT / 2>/dev/null) in
|
|
||||||
*.snapshots/*/snapshot*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
exit 0
|
|
||||||
esac
|
|
||||||
|
|
||||||
trap on_exit EXIT
|
|
||||||
|
|
||||||
if test -d /var/lib/machines; then
|
|
||||||
#
|
|
||||||
# Ok, we're on a system supporting rollbacks and
|
|
||||||
# /var/lib/machines is not a subvolume remotely mounted so it
|
|
||||||
# cannot be suitable for systems supporting rollback. Fix it.
|
|
||||||
#
|
|
||||||
echo "Making /var/lib/machines suitable for rollbacks..."
|
|
||||||
|
|
||||||
type mksubvolume >/dev/null 2>&1 || {
|
|
||||||
warn "mksubvolume(8) is not installed, aborting."
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
test "$(ls -A /var/lib/machines/)" && {
|
|
||||||
warn "/var/lib/machines is not empty, aborting."
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Deleting empty /var/lib/machines directory/subvolume"
|
|
||||||
rm_subvolume_or_directory /var/lib/machines || {
|
|
||||||
warn "fail to delete /var/lib/machines"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# At this point /var/lib/machines shouldn't exist.
|
|
||||||
echo "Creating /var/lib/machines subvolume suitable for rollbacks."
|
|
||||||
mksubvolume /var/lib/machines
|
|
@ -1,34 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
|
|
||||||
#
|
|
||||||
# This script is supposed to be executed from the %post section. It contains all
|
|
||||||
# hacks needed to update a system which was running systemd < v210. This also
|
|
||||||
# includes systems migrating from SysV.
|
|
||||||
#
|
|
||||||
# All hacks can potentially break the admin settings since they work in /etc...
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# During migration from sysvinit to systemd, we used to set the systemd default
|
|
||||||
# target to one of the 'runlevel*.target' after reading the default runlevel
|
|
||||||
# from /etc/inittab. We don't do that anymore because in most cases using the
|
|
||||||
# graphical.target target, which is the default, will do the right
|
|
||||||
# thing. Moreover the runlevel targets are considered as deprecated, so we
|
|
||||||
# convert them into "true" systemd targets instead here.
|
|
||||||
#
|
|
||||||
if target=$(readlink /etc/systemd/system/default.target); then
|
|
||||||
target=$(basename $target)
|
|
||||||
case "$target" in
|
|
||||||
runlevel?.target)
|
|
||||||
echo "Default systemd target is '$target' but use of runlevels is deprecated"
|
|
||||||
systemctl --no-reload set-default $target
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Migrate any symlink which may refer to the old path.
|
|
||||||
#
|
|
||||||
for f in $(find /etc/systemd/system -type l -xtype l); do
|
|
||||||
new_target="/usr$(readlink $f)"
|
|
||||||
[ -f "$new_target" ] && ln -s -f $new_target $f
|
|
||||||
done
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:c5e09e6e9eb4c0b383578dad276f56c174eacd2d7752e0f545db6d2480d627d0
|
|
||||||
size 8205724
|
|
3
systemd-v253.4+suse.28.g25aec15788.tar.xz
Normal file
3
systemd-v253.4+suse.28.g25aec15788.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b619c2dbcc175b630519a1e84553f744ae003b49b031c83ee4cdbfd9226701fe
|
||||||
|
size 8216304
|
@ -1,3 +1,47 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 4 15:20:49 UTC 2023 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Rather than having one script per fix, use a single script (or "fixlet") per
|
||||||
|
(sub) package that contains all the fixups relative to a (sub) package. This
|
||||||
|
has the advantage to limit the number of scripts but more importantly it will
|
||||||
|
ease the sharing of the spec file between TW and SLE. We should also be able
|
||||||
|
to compare the fixlets of two distros even if the spec files have diverged.
|
||||||
|
|
||||||
|
Note that all the fixups are run just once now.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 4 09:32:44 UTC 2023 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Make use of %_systemd_util_dir in the spec file.
|
||||||
|
|
||||||
|
- Rename the SUSE specific scripts used to fix up the system where systemd is
|
||||||
|
installed on. Also rename the directory where these scripts are stored.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 4 08:40:15 UTC 2023 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- kbd-model-map.legacy: drop entry for 'ruwin_alt-UTF-8' as yast doesn't rely on
|
||||||
|
it anymore, see https://github.com/yast/yast-country/pull/307
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 3 06:34:54 UTC 2023 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Import commit 25aec157888f7aa9a36726962fcbbf2c74ead440 (merge of v253.4)
|
||||||
|
|
||||||
|
For a complete list of changes, visit:
|
||||||
|
https://github.com/openSUSE/systemd/compare/3ce9610975b5239a21c0c886cb893bb172966de7...25aec157888f7aa9a36726962fcbbf2c74ead440
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 3 06:20:28 UTC 2023 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Import commit 3ce9610975b5239a21c0c886cb893bb172966de7
|
||||||
|
|
||||||
|
3ce9610975 test: dont use anchor char '$' to match a part of a string
|
||||||
|
03ede3eaa2 locale: when no xvariant match select the entry with an empty xvariant
|
||||||
|
f08017efd5 locale: convert generated vconsole keymap to x11 layout automatically
|
||||||
|
e8cf56459b localed-util: make use of strdupcspn()
|
||||||
|
821c684440 test: use kbd-mode-map we ship in TEST-73-LOCALE
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue May 2 10:34:43 UTC 2023 - Franck Bui <fbui@suse.com>
|
Tue May 2 10:34:43 UTC 2023 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
102
systemd.spec
102
systemd.spec
@ -19,9 +19,9 @@
|
|||||||
%global flavor @BUILD_FLAVOR@%{nil}
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
|
||||||
%define min_kernel_version 4.5
|
%define min_kernel_version 4.5
|
||||||
%define archive_version +suse.22.g66f3a8a47d
|
%define archive_version +suse.28.g25aec15788
|
||||||
|
|
||||||
%define _testsuitedir /usr/lib/systemd/tests
|
%define _testsuitedir %{_systemd_util_dir}/tests
|
||||||
%define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit
|
%define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit
|
||||||
|
|
||||||
# Similar to %%with but returns true/false. The 'true' value can be redefined
|
# Similar to %%with but returns true/false. The 'true' value can be redefined
|
||||||
@ -73,7 +73,7 @@
|
|||||||
|
|
||||||
Name: systemd%{?mini}
|
Name: systemd%{?mini}
|
||||||
URL: http://www.freedesktop.org/wiki/Software/systemd
|
URL: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 253.3
|
Version: 253.4
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A System and Session Manager
|
Summary: A System and Session Manager
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
@ -176,9 +176,8 @@ Source6: baselibs.conf
|
|||||||
Source11: after-local.service
|
Source11: after-local.service
|
||||||
Source14: kbd-model-map.legacy
|
Source14: kbd-model-map.legacy
|
||||||
|
|
||||||
Source100: scripts-systemd-fix-machines-btrfs-subvol.sh
|
Source100: fixlet-container-post.sh
|
||||||
Source101: scripts-systemd-upgrade-from-pre-210.sh
|
Source101: fixlet-systemd-post.sh
|
||||||
Source102: scripts-systemd-migrate-sysconfig-i18n.sh
|
|
||||||
|
|
||||||
Source200: files.systemd
|
Source200: files.systemd
|
||||||
Source201: files.udev
|
Source201: files.udev
|
||||||
@ -748,7 +747,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
|
|||||||
|
|
||||||
%if %{with sd_boot}
|
%if %{with sd_boot}
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
export BRP_PESIGN_FILES="/usr/lib/systemd/boot/efi/systemd-bootx64.efi"
|
export BRP_PESIGN_FILES="%{_systemd_util_dir}/boot/efi/systemd-bootx64.efi"
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -766,14 +765,12 @@ install -m0755 -D %{SOURCE4} %{buildroot}/%{_systemd_util_dir}/systemd-sysv-inst
|
|||||||
mkdir -p % %{buildroot}%{_sysconfdir}/systemd/network
|
mkdir -p % %{buildroot}%{_sysconfdir}/systemd/network
|
||||||
mkdir -p % %{buildroot}%{_sysconfdir}/systemd/nspawn
|
mkdir -p % %{buildroot}%{_sysconfdir}/systemd/nspawn
|
||||||
|
|
||||||
# Package the scripts used to fix all packaging issues. Also drop the
|
# Install the fixlets
|
||||||
# "scripts-{systemd/udev}" prefix which is used because osc doesn't allow
|
mkdir -p %{buildroot}%{_systemd_util_dir}/rpm
|
||||||
# directories in the workspace...
|
|
||||||
%if %{with machined}
|
%if %{with machined}
|
||||||
install -m0755 -D %{SOURCE100} %{buildroot}%{_systemd_util_dir}/scripts/fix-machines-btrfs-subvol.sh
|
install -m0755 %{SOURCE100} %{buildroot}%{_systemd_util_dir}/rpm/
|
||||||
%endif
|
%endif
|
||||||
install -m0755 -D %{SOURCE101} %{buildroot}%{_systemd_util_dir}/scripts/upgrade-from-pre-210.sh
|
install -m0755 %{SOURCE101} %{buildroot}%{_systemd_util_dir}/rpm/
|
||||||
install -m0755 -D %{SOURCE102} %{buildroot}%{_systemd_util_dir}/scripts/migrate-sysconfig-i18n.sh
|
|
||||||
|
|
||||||
%if %{with split_usr}
|
%if %{with split_usr}
|
||||||
mkdir -p %{buildroot}/{bin,sbin}
|
mkdir -p %{buildroot}/{bin,sbin}
|
||||||
@ -844,13 +841,14 @@ mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
|
|||||||
# Make sure directories in /var exist.
|
# Make sure directories in /var exist.
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/rpm
|
||||||
|
|
||||||
# Make sure the NTP units dir exists.
|
# Make sure the NTP units dir exists.
|
||||||
mkdir -p %{buildroot}%{_ntpunitsdir}
|
mkdir -p %{buildroot}%{_ntpunitsdir}
|
||||||
|
|
||||||
# Make sure the shutdown/sleep drop-in dirs exist.
|
# Make sure the shutdown/sleep drop-in dirs exist.
|
||||||
mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/
|
mkdir -p %{buildroot}%{_systemd_util_dir}/system-shutdown/
|
||||||
mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/
|
mkdir -p %{buildroot}%{_systemd_util_dir}/system-sleep/
|
||||||
|
|
||||||
# Make sure these directories are properly owned.
|
# Make sure these directories are properly owned.
|
||||||
mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
|
mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
|
||||||
@ -888,7 +886,6 @@ touch %{buildroot}%{_sysconfdir}/vconsole.conf
|
|||||||
touch %{buildroot}%{_sysconfdir}/locale.conf
|
touch %{buildroot}%{_sysconfdir}/locale.conf
|
||||||
touch %{buildroot}%{_sysconfdir}/machine-info
|
touch %{buildroot}%{_sysconfdir}/machine-info
|
||||||
touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database
|
touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database
|
||||||
touch %{buildroot}%{_localstatedir}/lib/systemd/i18n-migrated
|
|
||||||
|
|
||||||
%fdupes -s %{buildroot}%{_mandir}
|
%fdupes -s %{buildroot}%{_mandir}
|
||||||
|
|
||||||
@ -925,15 +922,13 @@ install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/suse.conf
|
|||||||
# consume those configs (like glibc or pam), see bsc#1170146.
|
# consume those configs (like glibc or pam), see bsc#1170146.
|
||||||
rm -fr %{buildroot}%{_datadir}/factory/*
|
rm -fr %{buildroot}%{_datadir}/factory/*
|
||||||
|
|
||||||
# Add entries for xkeyboard-config converted keymaps; mappings, which
|
# Add entries for xkeyboard-config converted keymaps; mappings, which already
|
||||||
# already exist in original systemd mapping table are being ignored
|
# exist in original systemd mapping table are being ignored though, i.e. not
|
||||||
# though, i.e. not overwritten; needed as long as YaST uses console
|
# overwritten; needed as long as YaST uses console keymaps internally and calls
|
||||||
# keymaps internally and calls localectl to convert from vconsole to
|
# localectl to convert from vconsole to X11 keymaps. Ideally YaST should switch
|
||||||
# X11 keymaps. Ideally YaST should switch to X11 layout names (the
|
# to X11 layout names (the mapping table wouldn't be needed since each X11
|
||||||
# mapping table wouldn't be needed since each X11 keymap has a
|
# keymap has a generated xkbd keymap) and let localectl initialize
|
||||||
# generated xkbd keymap) and let localectl initialize
|
# /etc/vconsole.conf and /etc/X11/xorg.conf.d/00-keyboard.conf (FATE#319454).
|
||||||
# /etc/vconsole.conf and /etc/X11/xorg.conf.d/00-keyboard.conf
|
|
||||||
# (FATE#319454).
|
|
||||||
if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then
|
if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then
|
||||||
cat /usr/share/systemd/kbd-model-map.xkb-generated \
|
cat /usr/share/systemd/kbd-model-map.xkb-generated \
|
||||||
>>%{buildroot}%{_datarootdir}/systemd/kbd-model-map
|
>>%{buildroot}%{_datarootdir}/systemd/kbd-model-map
|
||||||
@ -1062,19 +1057,9 @@ if [ -L %{_localstatedir}/lib/systemd/timesync ]; then
|
|||||||
mv %{_localstatedir}/lib/private/systemd/timesync %{_localstatedir}/lib/systemd/timesync
|
mv %{_localstatedir}/lib/private/systemd/timesync %{_localstatedir}/lib/systemd/timesync
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# This includes all hacks needed when upgrading from SysV.
|
# Run the hacks/fixups to clean up old garbages left by (very) old versions of
|
||||||
%{_prefix}/lib/systemd/scripts/upgrade-from-pre-210.sh || :
|
# systemd.
|
||||||
|
%{_systemd_util_dir}/rpm/fixlet-systemd-post.sh $1 || :
|
||||||
# Migrate old i18n settings previously configured in /etc/sysconfig to the new
|
|
||||||
# locations used by systemd (/etc/locale.conf, /etc/vconsole.conf, ...). Recent
|
|
||||||
# versions of systemd parse the new locations only.
|
|
||||||
#
|
|
||||||
# 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).
|
|
||||||
#
|
|
||||||
# It's run only once.
|
|
||||||
%{_prefix}/lib/systemd/scripts/migrate-sysconfig-i18n.sh || :
|
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
# daemon-reload is implied by systemd_postun_with_restart
|
# daemon-reload is implied by systemd_postun_with_restart
|
||||||
@ -1148,31 +1133,10 @@ rm -f /etc/udev/rules.d/{20,55,65}-cdrom.rules
|
|||||||
%postun -n libudev%{?mini}1 -p %ldconfig
|
%postun -n libudev%{?mini}1 -p %ldconfig
|
||||||
%postun -n libsystemd0%{?mini} -p %ldconfig
|
%postun -n libsystemd0%{?mini} -p %ldconfig
|
||||||
|
|
||||||
|
%if %{with machined}
|
||||||
%pre container
|
%pre container
|
||||||
%systemd_pre machines.target
|
%systemd_pre machines.target
|
||||||
|
|
||||||
%post container
|
|
||||||
%systemd_post machines.target
|
|
||||||
%tmpfiles_create systemd-nspawn.conf
|
|
||||||
%if %{with machined}
|
|
||||||
%ldconfig
|
|
||||||
if [ $1 -gt 1 ]; then
|
|
||||||
# Convert /var/lib/machines subvolume to make it suitable for rollbacks,
|
|
||||||
# if needed. See bsc#992573. The installer has been fixed to create it
|
|
||||||
# at installation time.
|
|
||||||
#
|
|
||||||
# The convertion might only be problematic for openSUSE distros
|
|
||||||
# (TW/Factory) where previous versions had already created the subvolume
|
|
||||||
# at the wrong place (via tmpfiles for example) and user started to
|
|
||||||
# populate and use it. In this case we'll let the user fix it manually.
|
|
||||||
#
|
|
||||||
# For SLE12 this subvolume was only introduced during the upgrade from
|
|
||||||
# v210 to v228 when we added this workaround. Note that the subvolume is
|
|
||||||
# still created at the wrong place due to the call to tmpfiles_create
|
|
||||||
# macro previously however it's empty so there shouldn't be any issues.
|
|
||||||
%{_prefix}/lib/systemd/scripts/fix-machines-btrfs-subvol.sh || :
|
|
||||||
fi
|
|
||||||
|
|
||||||
%preun container
|
%preun container
|
||||||
%systemd_preun machines.target
|
%systemd_preun machines.target
|
||||||
|
|
||||||
@ -1181,6 +1145,14 @@ fi
|
|||||||
%ldconfig
|
%ldconfig
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%post container
|
||||||
|
%tmpfiles_create systemd-nspawn.conf
|
||||||
|
%if %{with machined}
|
||||||
|
%systemd_post machines.target
|
||||||
|
%ldconfig
|
||||||
|
%endif
|
||||||
|
%{_systemd_util_dir}/rpm/fixlet-container-post.sh $1 || :
|
||||||
|
|
||||||
%if %{with coredump}
|
%if %{with coredump}
|
||||||
%post coredump
|
%post coredump
|
||||||
%sysusers_create systemd-coredump.conf
|
%sysusers_create systemd-coredump.conf
|
||||||
@ -1355,9 +1327,9 @@ fi
|
|||||||
%{_unitdir}/systemd-journal-gatewayd.*
|
%{_unitdir}/systemd-journal-gatewayd.*
|
||||||
%{_unitdir}/systemd-journal-remote.*
|
%{_unitdir}/systemd-journal-remote.*
|
||||||
%{_unitdir}/systemd-journal-upload.*
|
%{_unitdir}/systemd-journal-upload.*
|
||||||
%{_prefix}/lib/systemd/systemd-journal-gatewayd
|
%{_systemd_util_dir}/systemd-journal-gatewayd
|
||||||
%{_prefix}/lib/systemd/systemd-journal-remote
|
%{_systemd_util_dir}/systemd-journal-remote
|
||||||
%{_prefix}/lib/systemd/systemd-journal-upload
|
%{_systemd_util_dir}/systemd-journal-upload
|
||||||
%{_sysusersdir}/systemd-remote.conf
|
%{_sysusersdir}/systemd-remote.conf
|
||||||
%{_mandir}/man5/journal-remote.conf*
|
%{_mandir}/man5/journal-remote.conf*
|
||||||
%{_mandir}/man5/journal-upload.conf*
|
%{_mandir}/man5/journal-upload.conf*
|
||||||
@ -1372,8 +1344,8 @@ fi
|
|||||||
%files portable
|
%files portable
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_bindir}/portablectl
|
%{_bindir}/portablectl
|
||||||
%{_prefix}/lib/systemd/systemd-portabled
|
%{_systemd_util_dir}/systemd-portabled
|
||||||
%{_prefix}/lib/systemd/portable
|
%{_systemd_util_dir}/portable
|
||||||
%{_unitdir}/systemd-portabled.service
|
%{_unitdir}/systemd-portabled.service
|
||||||
%{_unitdir}/dbus-org.freedesktop.portable1.service
|
%{_unitdir}/dbus-org.freedesktop.portable1.service
|
||||||
%{_datadir}/dbus-1/system.d/org.freedesktop.portable1.conf
|
%{_datadir}/dbus-1/system.d/org.freedesktop.portable1.conf
|
||||||
|
Loading…
Reference in New Issue
Block a user