File suse-migration-services.spec of Package suse-migration-services.37254
#
# spec file for package suse-migration-services
#
# Copyright (c) 2024 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
%if 0%{?suse_version} >= 1600
%define pythons %{primary_python}
%else
%define pythons python3
%endif
%global _sitelibdir %{%{pythons}_sitelib}
Name: suse-migration-services
Version: 2.1.5
Release: 0
Url: https://github.com/SUSE/suse-migration-services
Summary: SUSE Distribution Migration Services
License: GPL-3.0+
Group: System/Management
Source: suse-migration-services.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: %{pythons}-setuptools
BuildRequires: %{pythons}-Cerberus
BuildRequires: %{pythons}-PyYAML
%if 0%{?suse_version} >= 1600
BuildRequires: %{pythons}-pip
BuildRequires: %{pythons}-wheel
%endif
BuildRequires: systemd-rpm-macros
Requires: %{pythons}-Cerberus
Requires: %{pythons}-PyYAML
Requires: %{pythons}-setuptools
Requires: %{pythons}-migration
Requires: util-linux
Requires: kexec-tools
Requires: ca-certificates
Requires: dialog
Requires: rsync
Requires: suseconnect-ng
Requires: suse-migration-services = %{version}-%{release}
Requires(preun): systemd
Requires(postun): systemd
BuildArch: noarch
%description
Systemd services to prepare and run a distribution migration process.
%package -n %{pythons}-migration
Summary: The systemd services for the python migration module
Group: System/Management
%description -n %{pythons}-migration
Python based implementation for suse major code stream upgrade system
%package -n suse-migration-pre-checks
Summary: The pre-checks code used with the python migration module
Group: System/Management
Requires: %{pythons}-migration
Conflicts: suse-migration-sle15-activation < 2.0.33
%description -n suse-migration-pre-checks
Checks to be performed before starting a distribution migration process
%package -n suse-migration
Summary: The migrate tool for a container based upgrade
Group: System/Management
Requires: podman
Requires: sudo
BuildArch: noarch
%description -n suse-migration
The migrate tool to start the migration as container based process
%prep
%setup -q -n suse_migration_services-%{version}
%build
%if 0%{?suse_version} >= 1600
%pyproject_wheel
%else
%{pythons} setup.py build
%endif
%install
%if 0%{?suse_version} >= 1600
%pyproject_install
%else
%{pythons} setup.py install --prefix=%{_prefix} --root=%{buildroot}
%endif
install -D -m 755 tools/run_migration \
%{buildroot}%{_sbindir}/run_migration
install -D -m 644 systemd/suse-migration-mount-system.service \
%{buildroot}%{_unitdir}/suse-migration-mount-system.service
install -D -m 644 systemd/suse-migration-pre-checks.service \
%{buildroot}%{_unitdir}/suse-migration-pre-checks.service
install -D -m 644 systemd/suse-migration-post-mount-system.service \
%{buildroot}%{_unitdir}/suse-migration-post-mount-system.service
install -D -m 644 systemd/suse-migration-setup-host-network.service \
%{buildroot}%{_unitdir}/suse-migration-setup-host-network.service
install -D -m 644 systemd/suse-migration-prepare.service \
%{buildroot}%{_unitdir}/suse-migration-prepare.service
install -D -m 644 systemd/suse-migration.service \
%{buildroot}%{_unitdir}/suse-migration.service
install -D -m 644 systemd/suse-migration-container.service \
%{buildroot}%{_unitdir}/suse-migration-container.service
install -D -m 644 systemd/suse-migration-container-prepare.service \
%{buildroot}%{_unitdir}/suse-migration-container-prepare.service
install -D -m 644 systemd/suse-migration-container-product-setup.service \
%{buildroot}%{_unitdir}/suse-migration-container-product-setup.service
install -D -m 644 systemd/suse-migration-container-reboot.service \
%{buildroot}%{_unitdir}/suse-migration-container-reboot.service
install -D -m 644 systemd/suse-migration-container-emergency.service \
%{buildroot}%{_unitdir}/suse-migration-container-emergency.service
install -D -m 644 systemd/suse-migration-grub-setup.service \
%{buildroot}%{_unitdir}/suse-migration-grub-setup.service
install -D -m 644 systemd/suse-migration-update-bootloader.service \
%{buildroot}%{_unitdir}/suse-migration-update-bootloader.service
install -D -m 644 systemd/suse-migration-product-setup.service \
%{buildroot}%{_unitdir}/suse-migration-product-setup.service
install -D -m 644 systemd/suse-migration-regenerate-initrd.service \
%{buildroot}%{_unitdir}/suse-migration-regenerate-initrd.service
install -D -m 644 systemd/suse-migration-kernel-load.service \
%{buildroot}%{_unitdir}/suse-migration-kernel-load.service
install -D -m 644 systemd/suse-migration-reboot.service \
%{buildroot}%{_unitdir}/suse-migration-reboot.service
install -D -m 644 systemd/suse-migration-ssh-keys.service \
%{buildroot}%{_unitdir}/suse-migration-ssh-keys.service
install -D -m 644 systemd/suse-migration-console-log.service \
%{buildroot}%{_unitdir}/suse-migration-console-log.service
install -D -m 755 tools/migrate \
%{buildroot}%{_sbindir}/migrate
# preun / postun
# While the package provides services all services are one-shot.
# Additionally this services runs as part of a live ISO migration
# system which is used and booted only once. It's contents are
# packed into a readonly squashfs layer. Therefore there is no
# need for use of the "standard" systemd service handling macros.
%files
%{_sbindir}/run_migration
%{_bindir}/suse-migration-ssh-keys
%{_bindir}/suse-migration-mount-system
%{_bindir}/suse-migration-post-mount-system
%{_bindir}/suse-migration-setup-host-network
%{_bindir}/suse-migration-prepare
%{_bindir}/suse-migration
%{_bindir}/suse-migration-grub-setup
%{_bindir}/suse-migration-update-bootloader
%{_bindir}/suse-migration-product-setup
%{_bindir}/suse-migration-regenerate-initrd
%{_bindir}/suse-migration-kernel-load
%{_bindir}/suse-migration-reboot
%{_unitdir}/suse-migration-ssh-keys.service
%{_unitdir}/suse-migration-mount-system.service
%{_unitdir}/suse-migration-post-mount-system.service
%{_unitdir}/suse-migration-setup-host-network.service
%{_unitdir}/suse-migration-prepare.service
%{_unitdir}/suse-migration.service
%{_unitdir}/suse-migration-container.service
%{_unitdir}/suse-migration-container-prepare.service
%{_unitdir}/suse-migration-container-product-setup.service
%{_unitdir}/suse-migration-container-reboot.service
%{_unitdir}/suse-migration-container-emergency.service
%{_unitdir}/suse-migration-console-log.service
%{_unitdir}/suse-migration-grub-setup.service
%{_unitdir}/suse-migration-update-bootloader.service
%{_unitdir}/suse-migration-product-setup.service
%{_unitdir}/suse-migration-regenerate-initrd.service
%{_unitdir}/suse-migration-kernel-load.service
%{_unitdir}/suse-migration-reboot.service
%files -n %{pythons}-migration
%{python_sitelib}/*
%files -n suse-migration-pre-checks
%{_bindir}/suse-migration-pre-checks
%{_unitdir}/suse-migration-pre-checks.service
%files -n suse-migration
%{_sbindir}/migrate
%changelog