Skip to content

Commit

Permalink
Refactor packaging again
Browse files Browse the repository at this point in the history
Do not change spec file names to allow easier submission.
Also make sure the package can build for SLE15 and SLE12.
Consolidate new migrate tool as sub-package to
suse-migration-services
  • Loading branch information
schaefi committed Oct 19, 2024
1 parent f0fc209 commit 41a0efd
Show file tree
Hide file tree
Showing 9 changed files with 109 additions and 147 deletions.
40 changes: 21 additions & 19 deletions .github/workflows/ci-testing.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,31 @@
name: CILint

on:
push:
branches:
- "master"
pull_request:
on: [push]

jobs:
unit_tests:

runs-on: ubuntu-latest
unit_tests:
name: Unit tests for DMS
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.11"]
os: [ubuntu-latest]
include:
# Use ubuntu 20.04 for python 3.6 (dropped from later versions)
- python-version: 3.6
os: ubuntu-20.04

steps:
- uses: actions/checkout@v3
- name: Python${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Tox
run: |
tox
- uses: actions/checkout@v3
- name: Python${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Tox
run: |
tox
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ __pycache__/

# Distribution / packaging
dist/
dist_migrate/
.tox/
*.egg-info/
.cache
Expand Down
23 changes: 8 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,20 @@ build: check test
mv setup.pye setup.py
# provide rpm source tarball
mv dist/suse_migration_services-${version}.tar.gz \
dist/python-migration.tar.gz
dist/suse-migration-services.tar.gz
# update rpm changelog using reference file
helper/update_changelog.py \
--since package/python-migration.changes.ref --utc > \
dist/python-migration.changes
--since package/suse-migration-services.changes.ref --utc > \
dist/suse-migration-services.changes
helper/update_changelog.py \
--file package/python-migration.changes >> \
dist/python-migration.changes
--file package/suse-migration-services.changes >> \
dist/suse-migration-services.changes
# update package version in spec file
cat package/python-migration-spec-template \
cat package/suse-migration-services-spec-template \
| sed -e s'@%%VERSION@${version}@' \
> dist/python-migration.spec
> dist/suse-migration-services.spec
# provide rpm rpmlintrc
cp package/python-migration-rpmlintrc dist
cp package/suse-migration-services-rpmlintrc dist

sle15_activation: check
rm -f dist/*
Expand Down Expand Up @@ -62,13 +62,6 @@ sle15_activation: check
exit 1;\
fi

migrate:
rm -rf dist_migrate
mkdir -p dist_migrate
cp tools/migrate dist_migrate/
cp package/suse-migration.spec dist_migrate/
cp package/suse-migration.changes dist_migrate/

.PHONY: test
test:
tox
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# spec file for package python-migration
# spec file for package suse-migration-services
#
# Copyright (c) 2024 SUSE LLC
#
Expand All @@ -14,24 +14,36 @@
#
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-migration
%if 0%{?suse_version} >= 1600
%define pythons %{primary_python}
%else
%define pythons python3
%endif
%global _sitelibdir %{%{pythons}_sitelib}

Name: suse-migration-services
Version: %%VERSION
Release: 0
Url: https://github.com/SUSE/suse-migration-services
Summary: SUSE Distribution Migration Services
License: GPL-3.0+
Group: System/Management
Source: python-migration.tar.gz
Source: suse-migration-services.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module Cerberus}
BuildRequires: %{python_module PyYAML}
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: python-Cerberus
Requires: python-PyYAML
Requires: python-setuptools
Requires: %{pythons}-Cerberus
Requires: %{pythons}-PyYAML
Requires: %{pythons}-setuptools
Requires: %{pythons}-migration
Requires: util-linux
Requires: kexec-tools
Requires: ca-certificates
Expand All @@ -42,40 +54,52 @@ Requires: suse-migration-services = %{version}-%{release}
Requires(preun): systemd
Requires(postun): systemd
BuildArch: noarch
%python_subpackages

%description
Python based implementation for suse major code stream upgrade system
Systemd services to prepare and run a distribution migration process.

%package -n suse-migration-services
%package -n python3-migration
Summary: The systemd services for python-migration
Group: System/Management

%description -n suse-migration-services
Systemd services to prepare and run a distribution migration process.
%description -n python3-migration
Python based implementation for suse major code stream upgrade system

%package -n suse-migration-pre-checks
Summary: The pre-checks code used with python-migration
Group: System/Management
Requires: python-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
%python_build
%if 0%{?suse_version} >= 1600
%pyproject_wheel
%else
%{pythons} setup.py build
%endif

%install
%python_install
%python_clone -a %{buildroot}%{_bindir}/suse-migration-pre-checks
%python_clone -a %{buildroot}%{_bindir}/suse-migration-ssh-keys
%python_clone -a %{buildroot}%{_bindir}/suse-migration-mount-system
%python_clone -a %{buildroot}%{_bindir}/suse-migration-post-mount-system
%python_clone -a %{buildroot}%{_bindir}/suse-migration-setup-host-network
%python_clone -a %{buildroot}%{_bindir}/suse-migration-prepare
%python_clone -a %{buildroot}%{_bindir}/suse-migration
%python_clone -a %{buildroot}%{_bindir}/suse-migration-grub-setup
%python_clone -a %{buildroot}%{_bindir}/suse-migration-update-bootloader
%python_clone -a %{buildroot}%{_bindir}/suse-migration-product-setup
%python_clone -a %{buildroot}%{_bindir}/suse-migration-regenerate-initrd
%python_clone -a %{buildroot}%{_bindir}/suse-migration-kernel-load
%python_clone -a %{buildroot}%{_bindir}/suse-migration-reboot
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%if 0%{?suse_version} >= 1600
%pyproject_install
%else
%{pythons} setup.py install --prefix=%{_prefix} --root=%{buildroot}
%endif

install -D -m 644 systemd/suse-migration-mount-system.service \
%{buildroot}%{_unitdir}/suse-migration-mount-system.service
Expand Down Expand Up @@ -134,20 +158,8 @@ install -D -m 644 systemd/suse-migration-ssh-keys.service \
install -D -m 644 systemd/suse-migration-console-log.service \
%{buildroot}%{_unitdir}/suse-migration-console-log.service

%post
%python_install_alternative suse-migration-pre-checks
%python_install_alternative suse-migration-ssh-keys
%python_install_alternative suse-migration-mount-system
%python_install_alternative suse-migration-post-mount-system
%python_install_alternative suse-migration-setup-host-network
%python_install_alternative suse-migration-prepare
%python_install_alternative suse-migration
%python_install_alternative suse-migration-grub-setup
%python_install_alternative suse-migration-update-bootloader
%python_install_alternative suse-migration-product-setup
%python_install_alternative suse-migration-regenerate-initrd
%python_install_alternative suse-migration-kernel-load
%python_install_alternative suse-migration-reboot
install -D -m 755 tools/migrate \
%{buildroot}%{_sbindir}/migrate

# preun / postun
# While the package provides services all services are one-shot.
Expand All @@ -156,26 +168,21 @@ install -D -m 644 systemd/suse-migration-console-log.service \
# packed into a readonly squashfs layer. Therefore there is no
# need for use of the "standard" systemd service handling macros.

%files %{python_files}
%{python_sitelib}/*
%python_alternative %{_bindir}/suse-migration-pre-checks
%python_alternative %{_bindir}/suse-migration-ssh-keys
%python_alternative %{_bindir}/suse-migration-mount-system
%python_alternative %{_bindir}/suse-migration-post-mount-system
%python_alternative %{_bindir}/suse-migration-setup-host-network
%python_alternative %{_bindir}/suse-migration-prepare
%python_alternative %{_bindir}/suse-migration
%python_alternative %{_bindir}/suse-migration-grub-setup
%python_alternative %{_bindir}/suse-migration-update-bootloader
%python_alternative %{_bindir}/suse-migration-product-setup
%python_alternative %{_bindir}/suse-migration-regenerate-initrd
%python_alternative %{_bindir}/suse-migration-kernel-load
%python_alternative %{_bindir}/suse-migration-reboot

%files -n suse-migration-services
%files
%{_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-pre-checks.service
%{_unitdir}/suse-migration-post-mount-system.service
%{_unitdir}/suse-migration-setup-host-network.service
%{_unitdir}/suse-migration-prepare.service
Expand All @@ -193,4 +200,14 @@ install -D -m 644 systemd/suse-migration-console-log.service \
%{_unitdir}/suse-migration-kernel-load.service
%{_unitdir}/suse-migration-reboot.service

%files -n python3-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
File renamed without changes.
File renamed without changes.
4 changes: 0 additions & 4 deletions package/suse-migration.changes

This file was deleted.

45 changes: 0 additions & 45 deletions package/suse-migration.spec

This file was deleted.

0 comments on commit 41a0efd

Please sign in to comment.