File suse-migration-sle16-activation.spec of Package suse-migration-sle16-activation

#
# spec file for package suse-migration-activation
#
# Copyright (c) 2022 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name:             suse-migration-sle16-activation
Version:          2.1.29
Release:          0
Url:              https://github.com/SUSE/suse-migration-services
Summary:          SUSE Distribution SLE16 Migration Activation
License:          GPL-3.0+
Group:            System/Management
Source:           suse-migration-sle16-activation.tar.gz
BuildRoot:        %{_tmppath}/%{name}-%{version}-build
Conflicts:        suse-migration-services
BuildRequires:    grub2
Requires:         Migration >= 2.1.2
Requires:         grub2
Requires(post):   util-linux-systemd
Requires(postun): util-linux-systemd
Requires(pre):	  sed
Requires(pre):	  zypper
Requires(pre):    suse-migration-scripts
ExclusiveArch:    aarch64 ppc64le x86_64

%description -n suse-migration-sle16-activation
Script code to activate the SLE16 migration image to be booted at
next reboot of the machine.

%prep
%setup -q -n suse_migration_services-%{version}

%install
install -D -m 755 grub.d/99_migration \
    %{buildroot}/etc/grub.d/99_migration

%pre
# Prevent installation for CPUs that are too old
# SLE16 image panics on CPUs older than x86_64_v2 (i.e. x86_64) (bsc#1249593), so we need to block migration before getting into the image.
# We need the ZYPP_READONLY_HACK here since we are running inside a zypper transaction; without this the invocation of zypper will fail due to locking issues.
if [ "$(ZYPP_READONLY_HACK=1 zypper system-architecture)" == "x86_64" ]; then
    echo "CPU Architecture too old. Aborting installation."
    exit 1
fi

# store snapper pre snapshot if available
if [ -x /usr/bin/snapper ]; then
    PRE_SNAPSHOT=$(snapper -c root --machine-readable csv list --disable-used-space --columns subvolume,number,type 2>/dev/null| grep '^/,[^,]*,pre' |sed -e '$!d' -e 's|/,\([^,]*\),pre|\1|g')
    if [ "x$PRE_SNAPSHOT" != x ]; then
        echo $PRE_SNAPSHOT > /var/cache/suse_migration_snapper_btrfs_pre_snapshot_number
    fi
fi

# Prepare network migration
source %{_datarootdir}/suse_migration_services/network_pre.functions
setup_wicked_to_NetworkManager_prereqs

%post
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg

%postun
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg

%files
%defattr(-,root,root,-)
%dir /etc/grub.d
/etc/grub.d/*
%ghost /var/cache/suse_migration_snapper_btrfs_pre_snapshot_number

%changelog
openSUSE Build Service is sponsored by