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
openSUSE Build Service is sponsored by