Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package opensuse-migration-tool for
openSUSE:Leap:16.0 checked in at 2025-11-27 13:19:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:16.0/opensuse-migration-tool (Old)
and /work/SRC/openSUSE:Leap:16.0/.opensuse-migration-tool.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opensuse-migration-tool"
Thu Nov 27 13:19:51 2025 rev:7 rq: version:20251029.ed0d12d
Changes:
--------
---
/work/SRC/openSUSE:Leap:16.0/opensuse-migration-tool/opensuse-migration-tool.changes
2025-07-29 16:45:17.466334842 +0200
+++
/work/SRC/openSUSE:Leap:16.0/.opensuse-migration-tool.new.14147/opensuse-migration-tool.changes
2025-11-27 13:19:53.489359858 +0100
@@ -1,0 +2,53 @@
+Fri Nov 7 11:05:51 UTC 2025 - Lubos Kocman <[email protected]>
+
+- Drop accidentally created submodule
+ * Add opensuse-migration-tool to .gitignore
+
+-------------------------------------------------------------------
+Wed Oct 29 20:31:04 UTC 2025 - [email protected]
+
+- Update to version 20251029.ed0d12d:
+ * Update opensuse-migration-tool
+
+-------------------------------------------------------------------
+Fri Oct 17 11:28:12 UTC 2025 - [email protected]
+
+- Update to version 20251017.e28f94c:
+ * fix: remove the check for x86-64-v3 flag xsave from the v2 check
+
+-------------------------------------------------------------------
+Wed Oct 01 20:43:21 UTC 2025 - [email protected]
+
+- Update to version 20251001.d4b9783:
+ * Be consistently not using abbreviations in zypper
+ * Refactor upgrade for not just Tumbleweed
+ * Update migration matrix
+ * Add support from MicroOS-Slowroll -> MicroOS
+ * Enable MicroOS-Slowroll migration target
+ * fix: remove the check for x86-64-v3 flag `movbe` from the v2 check
+ * Update README to remove duplicate warning
+ * Revise experimental usage warning in README
+ * Update screenshot
+ * Keep only Experimental in the title
+
+-------------------------------------------------------------------
+Fri Sep 12 13:22:56 UTC 2025 - [email protected]
+
+- Update to version 20250815.344dba5:
+ * Keep only Experimental in the title
+ * Install custom dialogrc with a green theme
+
+-------------------------------------------------------------------
+Thu Jul 31 13:20:21 UTC 2025 - [email protected]
+
+- Update to version 20250731.8b95d00:
+ * Do not enable migration scripts by default
+
+-------------------------------------------------------------------
+Wed Jul 30 23:38:59 UTC 2025 - [email protected]
+
+- Update to version 20250731.2b96308:
+ * Add 10_keepapparmor.sh 10_keepselinux.sh 20_ia32.sh migration services
+ * Fancy README.md
+
+-------------------------------------------------------------------
Old:
----
opensuse-migration-tool-20250729.4ed6ec5.obscpio
New:
----
opensuse-migration-tool-20251029.ed0d12d.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ opensuse-migration-tool.spec ++++++
--- /var/tmp/diff_new_pack.lodMjV/_old 2025-11-27 13:19:55.421441357 +0100
+++ /var/tmp/diff_new_pack.lodMjV/_new 2025-11-27 13:19:55.437442031 +0100
@@ -1,7 +1,7 @@
#
# spec file for package opensuse-migration-tool
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
# Copyright (c) 2025 Marcela Maslanova
# Copyright (c) 2025 Lubos Kocman
#
@@ -19,7 +19,7 @@
Name: opensuse-migration-tool
-Version: 20250729.4ed6ec5
+Version: 20251029.ed0d12d
Release: 0
Summary: Migration and Upgrade tool for openSUSE
License: Apache-2.0
@@ -53,15 +53,19 @@
# Install scripts directory
cp -a scripts %{buildroot}/%{_datadir}/%{name}/
+# Dialogrc custom theme
+cp dialogrc %{buildroot}%{_datadir}/%{name}/dialogrc
+
%check
%files
%defattr(644,root,root,755)
%attr(0755, root, root) %{_sbindir}/%{name}
-%{_datadir}/%{name}
-%{_datadir}/%{name}/scripts
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/scripts
+%{_datadir}/%{name}
+%{_datadir}/%{name}/scripts
+%{_datadir}/%{name}/dialogrc
%attr(0755, root, root) %{_datadir}/%{name}/scripts/*
%attr(0644, root, root) %{_datadir}/%{name}/SLES.prod
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.lodMjV/_old 2025-11-27 13:19:55.613449456 +0100
+++ /var/tmp/diff_new_pack.lodMjV/_new 2025-11-27 13:19:55.637450468 +0100
@@ -1,7 +1,7 @@
-mtime: 1753868719
-commit: 0363e36b3852b5182a2d2399424bc05d378b2da094fdc46c2835296f34772a72
+mtime: 1763481938
+commit: 99f08127a2bad47e4c8d40549725c9114e81b38b0802f1fe21a6bcc60e6fe7c9
url: https://src.opensuse.org/pool/opensuse-migration-tool
-revision: 0363e36b3852b5182a2d2399424bc05d378b2da094fdc46c2835296f34772a72
+revision: 99f08127a2bad47e4c8d40549725c9114e81b38b0802f1fe21a6bcc60e6fe7c9
trackingbranch: Leap-16.0
projectscmsync: https://src.opensuse.org/openSUSE/Leap
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.lodMjV/_old 2025-11-27 13:19:55.845459242 +0100
+++ /var/tmp/diff_new_pack.lodMjV/_new 2025-11-27 13:19:55.869460255 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/opensuse-migration-tool.git</param>
- <param
name="changesrevision">4ed6ec561640b43eadfdcf2fb6b0474816a97b65</param></service></servicedata>
+ <param
name="changesrevision">ed0d12d53c7eeab780c8c81b18a469d18c4a59df</param></service></servicedata>
(No newline at EOF)
++++++ build.specials.obscpio ++++++
--- old/.gitignore 2025-10-21 12:00:11.000000000 +0200
+++ new/.gitignore 2025-11-27 13:19:50.000000000 +0100
@@ -1 +1,2 @@
.osc
+opensuse-migration-tool
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2025-11-27 13:19:50.000000000 +0100
@@ -0,0 +1,2 @@
+.osc
+opensuse-migration-tool
++++++ opensuse-migration-tool-20250729.4ed6ec5.obscpio ->
opensuse-migration-tool-20251029.ed0d12d.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opensuse-migration-tool-20250729.4ed6ec5/README.md
new/opensuse-migration-tool-20251029.ed0d12d/README.md
--- old/opensuse-migration-tool-20250729.4ed6ec5/README.md 2025-07-29
15:01:42.000000000 +0200
+++ new/opensuse-migration-tool-20251029.ed0d12d/README.md 2025-10-29
21:29:32.000000000 +0100
@@ -1,143 +1,172 @@
-# openSUSE migration tool
+# ๐๏ธ openSUSE Migration Tool
-The tool was created during [Hackweek
24](https://hackweek.opensuse.org/24/projects/new-migration-tool-for-leap).
+   
-The goal is to simplify upgrades and cross-distribution migrations within
openSUSE distributions.
+> ๐ช **Experimental** โ Use with caution until a complete test suite is
implemented.
+>
+A command-line tool to **simplify upgrades and migrations** across openSUSE
distributions โ including *Leap*, *Tumbleweed*, *Slowroll*, and even migrations
from **Leap to SLE**.
-It also supports migration from openSUSE Leap to SUSE Linux Enterprise.
+General documentation about openSUSE Leap upgrade or Migration can be found at
[SDB:System_upgrade](https://en.opensuse.org/SDB:System_upgrade) wiki.
-**The tool is still experimental and is not expected to be used in production
until we have a proper test suite.**
+---
+<img width="1443" height="910" alt="image"
src="https://github.com/user-attachments/assets/e7a37163-88a5-4de0-8e05-d8f543a3f61b"
/>
-
+## ๐ Key Features
+๐ **Upgrade to pre-releases such as Leap 16.0 Beta**
+๐ **Migration across various openSUSE distributions**
+๐ **Migration to SUSE Linux Enterprise products**
+๐ **Integrates get.opensuse.org product API + openSUSE-repos**
+๐ **Dry-run mode for safe previews**
+๐ **Support for immutable systems (Leap Micro)**
+๐ **Disabling 3rd party repos prior to migration**
-The tool gets information about point releases from [get.opensuse.org
API](https://get.opensuse.org/api/v0/distributions.json)
-and also utilizes [openSUSE-repos](https://github.com/openSUSE/openSUSE-repos)
for a cross distribution migration.
-Installing openSUSE-repos from the target repo of an upgrade or migration
takes away any manual tinkering of distribution repositories.
+---
+
+## ๐ Supported Migration Paths
-**Intended supported scenarios**
```
-Leap -> Leap n+1, Leap -> SLES, Leap -> Tumbleweed, Leap -> Slowroll
-Leap Micro -> Leap Micro n+1, Leap Micro -> MicroOS
-Slowroll -> Tumbleweed
-Tumbleweed -> Slowroll
+Tumbleweed โ Slowroll
+Slowroll โ Tumbleweed
+MicroOS โ MicroOS-Slowroll
+MicroOS-Slowroll โ MicroOS
+Leap โ Leap n+1, SLES, Tumbleweed, Slowroll
+Leap Micro โ Leap Micro n+1, MicroOS, MicroOS-Slowroll
```
-**Known unsupported scenarios**
+โ ๏ธ **Unsupported or discouraged paths**:
-Migration from Tumbleweed (rolling) to any point release is not possible as
it's effectively a downgrade.
-Migration from non-immutable to immutable is generally unsupported and not
recommended.
-So no option for Tumbleweed -> MicroOS either.
-For such unsupported cases please do a clean install.
+* Tumbleweed โ Leap (downgrade, not supported)
+* Tumbleweed โ MicroOS (immutable shift)
+* Non-immutable โ Immutable (generally unsupported)
+---
+## ๐ License
+This project is licensed under the [Apache-2.0
License](http://www.apache.org/licenses/LICENSE-2.0). ๐
-## License
-This project uses the [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
license.
+---
-## Testing
+## ๐งช Quick Start: Testing the Tool
-Please always run the tool first with --dry-run to get an overall idea of what
the tool would do to your system.
-I highly recommend testing the tool in a virtual machine or container via e.g.
distrobox.
+> Always use `--dry-run` first to preview planned changes!
-### Execution on a regular system such as Leap, Tumbleweed, Slowroll
+### ๐ง On regular systems (Leap, Tumbleweed, Slowroll)
-```
-$ sudo zypper in opensuse-migration-tool
-$ opensuse-migration-tool --dry-run
-$ sudo opensuse-migration-tool
-$ reboot
+```bash
+sudo zypper in opensuse-migration-tool
+opensuse-migration-tool --dry-run
+sudo opensuse-migration-tool
+reboot
```
-### Execution on Immutable systems such as Leap Micro
+---
-```
-$ sudo transactional-update shell
-# Inside the shell
-$ sudo zypper in opensuse-migration-tool
-$ opensuse-migration-tool --dry-run
-$ sudo opensuse-migration-tool
-$ exit && reboot # into new snapshot
-```
+### ๐จ On immutable systems (Leap Micro)
-### Upgrading to pre-releases such as Alpha, Beta
+```bash
+sudo transactional-update shell
+# Inside shell:
+zypper in opensuse-migration-tool
+opensuse-migration-tool --dry-run
+sudo opensuse-migration-tool
+exit && reboot # boot into new snapshot
+```
-By default the tool with **not show up** Alpha, Beta, RC releases of point
releases as viable targets for upgrade/migration.
-E.g. Leap Micro 6.1 Beta or Leap 16.9 Alpha.
+---
-This is on purpose. We want to ensure that nobody accidentally upgrades their
system to e.g. Alpha version of an upcoming release.
+### ๐ง Upgrading to Alpha/Beta/RC Releases
-The --pre-release argument does the trick, then we'll fetch information from
[get.opensuse.org API](https://get.opensuse.org/api/v0/distributions.json)
about all available releases which are not EOL.
-Default behavior is to fetch only releases with state "Stable" which means
released/supported.
+By default, **pre-release versions are hidden** to avoid accidental installs.
+Use `--pre-release` to opt-in:
-```
+```bash
./opensuse-migration-tool --pre-release --dry-run
sudo ./opensuse-migration-tool --pre-release
-
```
-### Alternatively with git/distrobox (recommended for development)
+---
-Leap Micro migration can be easily developed/tested on a toolbox image.
-Just be aware that the toolbox container won't be immutable inside, so no need
for transactional-update here.
+## ๐ณ Development & Testing in Distrobox (Recommended)
-Please be aware that in such a container environment there could be an issue
with updating bind-mounted files such as
[/etc/hostname](https://bugzilla.opensuse.org/show_bug.cgi?id=1233982).
-```
-$ git clone https://github.com/openSUSE/opensuse-migration-tool.git
-$ cd opensuse-migration-tool
-$ distrobox create --image
registry.opensuse.org/opensuse/leap-micro/6.0/toolbox --name micro60
-$ distrobox enter micro60
-$ zypper in bc jq curl dialog sed gawk
-$ ./opensuse-migration-tool --dry-run
-$ sudo ./opensuse-migration-tool
-```
+### Leap Micro inside Toolbox container
+
+```bash
+git clone https://github.com/openSUSE/opensuse-migration-tool.git
+cd opensuse-migration-tool
+distrobox create --image registry.opensuse.org/opensuse/leap-micro/6.0/toolbox
--name micro60
+distrobox enter micro60
+
+zypper in bc jq curl dialog sed gawk
+./opensuse-migration-tool --dry-run
+sudo ./opensuse-migration-tool
```
-$ git clone https://github.com/openSUSE/opensuse-migration-tool.git
-$ cd opensuse-migration-tool
-$ distrobox create --image opensuse/leap:15.5 --name leap155
-$ distrobox enter leap155
-$ sudo zypper in bc jq curl dialog sed gawk
-$ ./opensuse-migration-tool --dry-run
-$ sudo ./opensuse-migration-tool
+
+### Leap 15.5 container
+
+```bash
+distrobox create --image opensuse/leap:15.5 --name leap155
+distrobox enter leap155
+
+sudo zypper in bc jq curl dialog sed gawk
+./opensuse-migration-tool --dry-run
+sudo ./opensuse-migration-tool
```
-## Documentation for a manual migration
+โ ๏ธ **Heads-up:** Toolbox environments are not truly immutable and may exhibit
issues (e.g. bind-mounted `/etc/hostname` โ [bug
1233982](https://bugzilla.opensuse.org/show_bug.cgi?id=1233982)).
-These are wiki that describe the manual upgrade process with zypper dup
+---
-https://en.opensuse.org/SDB:System_upgrade
+## ๐ Manual Migration Resources
-https://en.opensuse.org/SDB:How_to_migrate_to_SLE
+For traditional `zypper dup` approaches:
-https://en.opensuse.org/SDB:System_upgrade_to_LeapMicro_6.0
+* ๐ [System Upgrade (Leap)](https://en.opensuse.org/SDB:System_upgrade)
+* ๐ [Leap โ SLE Migration
Guide](https://en.opensuse.org/SDB:How_to_migrate_to_SLE)
+* ๐ [Leap Micro
Upgrade](https://en.opensuse.org/SDB:System_upgrade_to_LeapMicro_6.0)
-### Packaging
-```
-$ osc bco Base:System opensuse-migration-tool # fork Package from Base:System
-$ cd Base:System/opensuse-migration-tool
-$ osc service runall
-$ osc addremove
-$ vim *.changes # review changelog, deduplicate lines from git history etc.
-$ osc build # ensure that changes build locally
-$ osc commit
-$ osc sr # submit changes to the Base:System
-```
-**Maintainer typically forwards submission from devel project to
openSUSE:Factory on accept.**
+---
-If this is not the case you can submit it manually.
+## ๐ฆ Packaging & Submitting to openSUSE
+### Working on the package (Base\:System)
+
+```bash
+osc bco Base:System opensuse-migration-tool
+cd Base:System/opensuse-migration-tool
+
+osc service runall
+osc addremove
+vim *.changes # Review changelog
+osc build # Test build locally
+osc commit
+osc sr # Submit to Base:System
```
-$ osc sr Base:System opensuse-migration-tool openSUSE:Factory
-```
-Aside from Factory we want to ensure that supported Leap Micro and Leap
releases get the update too.
-**Once changes are accepted in openUSSE:Factory do following.**
+### Forwarding to openSUSE\:Factory
+
+If not done by the maintainer:
+```bash
+osc sr Base:System opensuse-migration-tool openSUSE:Factory
```
-$ osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:Micro:6.1
-$ osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:16.0
-$ osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:15.6:Update
+
+### Submitting to Leap and Leap Micro
+
+After Factory acceptance:
+
+```bash
+osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:Micro:6.1
+osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:16.0
+osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:15.6:Update
```
+
+---
+
+## ๐ค Contributions Welcome!
+
+We're happy to receive PRs, testing reports, or feedback on supported
scenarios.
+Please open issues or pull requests on GitHub.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opensuse-migration-tool-20250729.4ed6ec5/opensuse-migration-tool
new/opensuse-migration-tool-20251029.ed0d12d/opensuse-migration-tool
--- old/opensuse-migration-tool-20250729.4ed6ec5/opensuse-migration-tool
2025-07-29 15:01:42.000000000 +0200
+++ new/opensuse-migration-tool-20251029.ed0d12d/opensuse-migration-tool
2025-10-29 21:29:32.000000000 +0100
@@ -59,7 +59,7 @@
for tool in "${REQUIRED_TOOLS[@]}"; do
if ! command -v "$tool" &>/dev/null; then
echo "$tool is required but not installed."
- echo "Please run: sudo zypper in ${REQUIRED_TOOLS[*]}"
+ echo "Please run: sudo zypper install ${REQUIRED_TOOLS[*]}"
exit 1
fi
done
@@ -130,7 +130,7 @@
# Required x86_64-v2 flags
#required_v2_flags=("cx16" "sse4_1" "sse4_2" "popcnt" "movbe" "xsave")
-required_v2_flags=("cx16" "sse4_1" "sse4_2" "popcnt" "movbe" "xsave")
+required_v2_flags=("cx16" "sse4_1" "sse4_2" "popcnt")
# Required x86_64-v3 flags
#required_v3_flags=("cx16" "sse4_1" "sse4_2" "popcnt" "movbe" "xsave" "avx"
"avx2" "bmi1" "bmi2" "fma" "abm")
@@ -163,9 +163,17 @@
# System-specific options
if [[ "$NAME" == "openSUSE Leap Micro" ]]; then
+ MIGRATION_OPTIONS["$CURRENT_INDEX"]="openSUSE MicroOS-Slowroll"
+ ((CURRENT_INDEX++))
MIGRATION_OPTIONS["$CURRENT_INDEX"]="MicroOS"
((CURRENT_INDEX++))
populate_options "LeapMicro" "$VERSION" '.state!="EOL"'
+elif [[ "$NAME" == "openSUSE MicroOS" ]]; then
+ MIGRATION_OPTIONS["$CURRENT_INDEX"]="openSUSE MicroOS-Slowroll"
+ ((CURRENT_INDEX++))
+elif [[ "$NAME" == "openSUSE MicroOS-Slowroll" ]]; then
+ MIGRATION_OPTIONS["$CURRENT_INDEX"]="MicroOS"
+ ((CURRENT_INDEX++))
elif [[ "$NAME" == "openSUSE Leap" ]]; then
MIGRATION_OPTIONS["$CURRENT_INDEX"]="SUSE Linux Enterprise $(sed 's/\./
SP/' <<<"$VERSION")"
((CURRENT_INDEX++))
@@ -183,7 +191,7 @@
((CURRENT_INDEX++))
else
dialog --clear \
- --title "[EXPERIMENTAL] System Migration - NOT FOR PRODUCTION" \
+ --title "[EXPERIMENTAL] System Migration" \
--msgbox "\nMigration from $NAME is currently not supported.\n\nPlease
report issue at https://github.com/openSUSE/opensuse-migration-tool" \
10 60
reset; exit 1;
@@ -192,7 +200,7 @@
# Display migration options
if [[ ${#MIGRATION_OPTIONS[@]} -eq 0 ]]; then
dialog --clear \
- --title "[EXPERIMENTAL] System Migration - NOT FOR PRODUCTION" \
+ --title "[EXPERIMENTAL] System Migration" \
--msgbox "\nNo migration options available from $NAME.\n\nPlease report
issue at https://github.com/openSUSE/opensuse-migration-tool." \
10 60
reset; exit 1
@@ -204,45 +212,16 @@
done
# Display dialog and get choice
CHOICE=$(dialog --clear \
- --title "[EXPERIMENTAL] System Migration - NOT FOR PRODUCTION" \
+ --title "[EXPERIMENTAL] System Migration" \
--menu "Select the migration target from $NAME:" \
20 60 10 \
"${DIALOG_ITEMS[@]}" \
2>&1 >/dev/tty) || exit
-rpmsave_repo() {
-### XXX: This could go away if we install openSUSE-repos before migration
-### It does the same thing
-for repo_file in \
-repo-backports-debug-update.repo repo-oss.repo repo-backports-update.repo \
-repo-sle-debug-update.repo repo-debug-non-oss.repo repo-sle-update.repo \
-repo-debug.repo repo-source.repo repo-debug-update.repo repo-update.repo \
-repo-debug-update-non-oss.repo repo-update-non-oss.repo repo-non-oss.repo \
-download.opensuse.org-oss.repo download.opensuse.org-non-oss.repo
download.opensuse.org-tumbleweed.repo \
-repo-openh264.repo openSUSE-*-0.repo repo-main.repo $TMP_REPO_NAME.repo; do
- if [ -f /etc/zypp/repos.d/$repo_file ]; then
- echo "Storing old copy as /etc/zypp/repos.d/$repo_file.rpmsave"
- $DRYRUN mv /etc/zypp/repos.d/$repo_file
/etc/zypp/repos.d/$repo_file.rpmsave
- fi
-done
-# regexpes
-for file in /etc/zypp/repos.d/openSUSE-*.repo; do
- repo_file=$(basename $file)
- if [ -f /etc/zypp/repos.d/$repo_file ]; then
- echo "Storing old copy as /etc/zypp/repos.d/$repo_file.rpmsave"
- $DRYRUN mv /etc/zypp/repos.d/$repo_file
/etc/zypp/repos.d/$repo_file.rpmsave
- fi
-done
-# Ensure to drop any SCC generated service/repo files for Leap
-# e.g. /etc/zypp/services.d/openSUSE_Leap_15.6_x86_64.service
-for file in /etc/zypp/services.d/openSUSE_*.service; do
- service_file=$(basename $file)
- if [ -f /etc/zypp/services.d/$service_file ]; then
- echo "Storing old copy as /etc/zypp/repos.d/$service_file.rpmsave"
- $DRYRUN mv /etc/zypp/services.d/$service_file
/etc/zypp/services.d/$service_file.rpmsave
- fi
-done
-}
+# Ensure that openSUSE-repos is always installed.
+# That handles also the old distribution repository cleanup
+$DRYRUN zypper install -y --force-resolution openSUSE-repos
+$DRYRUN zypper refresh-services # so we don't see further refresh after
disabling repo
# Step: Detect and offer to disable 3rd-party repositories
# This is the #1 reason for failed migration
@@ -343,14 +322,14 @@
# This is a dream workflow that doesn't really work. Enable BCI
repo and register as SLES with BCI-release
# Perhaps we can fix it in near future
- #$DRYRUN zypper ar -f
https://updates.suse.com/SUSE/Products/SLE-BCI/$SP/$ARCH/product/ $TMP_REPO_NAME
- #$DRYRUN zypper in --force-resolution -y suseconnect-ng
- #$DRYRUN zypper in --force-resolution -y unified-installer-release
SLE_BCI-release # sles-release is not in BCI
+ #$DRYRUN zypper addrepo -f
https://updates.suse.com/SUSE/Products/SLE-BCI/$SP/$ARCH/product/ $TMP_REPO_NAME
+ #$DRYRUN zypper install --force-resolution -y suseconnect-ng
+ #$DRYRUN zypper install --force-resolution -y
unified-installer-release SLE_BCI-release # sles-release is not in BCI
MAJVER=$(echo $VERSION| awk -F"." '{ print $1 }') # 15
MINVER=$(echo $VERSION| awk -F"." '{ print $2 }') # 6
echo $REGCODE
- $DRYRUN zypper in -y suseconnect-ng snapper grub2-snapper-plugin
+ $DRYRUN zypper install -y suseconnect-ng snapper
grub2-snapper-plugin
# Backup /etc/os-release before release package removal
echo "Backing up /etc/os-release as /etc/os-release.backup"
$DRYRUN cp /etc/os-release /etc/os-release.backup
@@ -379,9 +358,6 @@
fi
$DRYRUN rm -r /etc/products.d/baseproduct
$DRYRUN ln -s /etc/products.d/SLES.prod /etc/products.d/baseproduct
- if [ -z "$DRYRUN" ]; then
- rpmsave_repo # invalidates all standard openSUSE repos
- fi
$DRYRUN suseconnect -e $EMAIL -r $REGCODE
$DRYRUN SUSEConnect -p PackageHub/$VERSION/$ARCH
@@ -394,7 +370,7 @@
$DRYRUN rpm -e --nodeps branding-openSUSE grub2-branding-openSUSE
wallpaper-branding-openSUSE plymouth-branding-openSUSE
systemd-presets-branding-openSUSE systemd-presets-branding-MicroOS
$DRYRUN zypper remove -y opensuse-welcome # might not be
present on text-installations
- $DRYRUN zypper in -y branding-SLE-15 grub2-branding-SLE
wallpaper-branding-SLE-15 plymouth-branding-SLE systemd-presets-branding-SLE
+ $DRYRUN zypper install -y branding-SLE-15 grub2-branding-SLE
wallpaper-branding-SLE-15 plymouth-branding-SLE systemd-presets-branding-SLE
;;
"openSUSE Tumbleweed")
$DRYRUN echo "Upgrading to ${MIGRATION_OPTIONS[$CHOICE]}"
@@ -411,9 +387,9 @@
fi
fi
$DRYRUN zypper addrepo -f $REPOURL $TMP_REPO_NAME
- $DRYRUN zypper in -y --from $TMP_REPO_NAME openSUSE-repos-Leap #
install repos from the nextrelease
+ $DRYRUN zypper install --repo $TMP_REPO_NAME -y --force-resolution
--from $TMP_REPO_NAME openSUSE-repos-Tumbleweed # install repos from the
nextrelease
$DRYRUN zypper removerepo $TMP_REPO_NAME # drop the temp repo, we
have now definitions of all repos we need
- $DRYRUN zypper refs # !Important! make sure that all repo files
under index service were regenerated
+ $DRYRUN zypper refresh-services # !Important! make sure that all
repo files under index service were regenerated
$DRYRUN zypper dup -y --force-resolution --allow-vendor-change
--download in-advance
if [ $? -ne 0 ]; then # re-run zypper dup as interactive in case
of failure in non-interactive mode
@@ -429,13 +405,14 @@
exit 1
fi
$DRYRUN zypper addrepo -f $REPOURL $TMP_REPO_NAME
- $DRYRUN zypper in -y --from $TMP_REPO_NAME openSUSE-repos-Slowroll
# install repos from the nextrelease
+ $DRYRUN zypper install --repo $TMP_REPO_NAME -y --force-resolution
--from $TMP_REPO_NAME --allow-downgrade openSUSE-repos-Slowroll # install repos
from the nextrelease
$DRYRUN zypper removerepo $TMP_REPO_NAME # drop the temp repo, we
have now definitions of all repos we need
- $DRYRUN zypper refs # !Important! make sure that all repo files
under index service were regenerated
-
- $DRYRUN zypper dup -y --force-resolution --allow-vendor-change
--download in-advance
+ $DRYRUN zypper refresh-services # !Important! make sure that all
repo files under index service were regenerated
+
+ # --allow-downgrade is important in case that you choose Tumblweed
-> Slowroll migration
+ $DRYRUN zypper dup -y --force-resolution --allow-downgrade
--allow-vendor-change --download in-advance
if [ $? -ne 0 ]; then # re-run zypper dup as interactive in case
of failure in non-interactive mode
- $DRYRUN zypper dup --force-resolution --allow-vendor-change
--download in-advance
+ $DRYRUN zypper dup --force-resolution --allow-downgrade
--allow-vendor-change --download in-advance
fi
;;
*"openSUSE LeapMicro"*)
@@ -443,9 +420,9 @@
$DRYRUN echo "Upgrading to ${MIGRATION_OPTIONS[$CHOICE]}"
TARGET_VER=`echo ${MIGRATION_OPTIONS[$CHOICE]} | awk '{ print $NF
}'`
$DRYRUN zypper addrepo -f
https://download.opensuse.org/distribution/leap-micro/$TARGET_VER/product/repo/openSUSE-Leap-Micro-$TARGET_VER-$ARCH/
$TMP_REPO_NAME
- $DRYRUN zypper in -y --from $TMP_REPO_NAME
openSUSE-repos-LeapMicro # install repos from the nextrelease
+ $DRYRUN zypper install --repo $TMP_REPO_NAME -y --force-resolution
--from $TMP_REPO_NAME openSUSE-repos-LeapMicro # install repos from the
nextrelease
$DRYRUN zypper removerepo $TMP_REPO_NAME # drop the temp repo, we
have now definitions of all repos we need
- $DRYRUN zypper refs # !Important! make sure that all repo files
under index service were regenerated
+ $DRYRUN zypper refresh-services # !Important! make sure that all
repo files under index service were regenerated
$DRYRUN zypper --releasever $TARGET_VER dup -y --force-resolution
--allow-vendor-change --download in-advance
if [ $? -ne 0 ]; then # re-run zypper dup as interactive in case
of failure in non-interactive mode
@@ -465,15 +442,37 @@
fi
$DRYRUN zypper addrepo -f
https://download.opensuse.org/distribution/leap/$TARGET_VER/repo/oss
$TMP_REPO_NAME
- $DRYRUN zypper in -y --from $TMP_REPO_NAME openSUSE-repos-Leap #
install repos from the nextrelease
+ $DRYRUN zypper install --repo $TMP_REPO_NAME -y --force-resolution
--from $TMP_REPO_NAME openSUSE-repos-Leap # install repos from the nextrelease
$DRYRUN zypper removerepo $TMP_REPO_NAME # drop the temp repo, we
have now definitions of all repos we need
- $DRYRUN zypper refs # !Important! make sure that all repo files
under index service were regenerated
+ $DRYRUN zypper refresh-services # !Important! make sure that all
repo files under index service were regenerated
$DRYRUN zypper --releasever $TARGET_VER dup -y --force-resolution
--allow-vendor-change --download-in-advance
if [ $? -ne 0 ]; then # re-run zypper dup as interactive in case
of failure in non-interactive mode
$DRYRUN zypper --releasever $TARGET_VER dup --force-resolution
--allow-vendor-change --download-in-advance
fi
;;
+ *"MicroOS-Slowroll"*)
+ $DRYRUN echo "Upgrading to ${MIGRATION_OPTIONS[$CHOICE]}"
+ # https://download.opensuse.org/ports/ # for other arches
+ REPOURL="https://download.opensuse.org/slowroll/repo/oss/"
+ if [ "$ARCH" != "x86_64" ]; then
+ # Let's not messup any systems and make sure this is properly
implemented first
+ echo "Unsupported arch '$ARCH'."
+ echo "Please open an issue at
https://github.com/openSUSE/opensuse-migration-tool/issues"
+ echo "Make sure to add output of 'uname -i' and content of
your /etc/os-release into the ticket."
+ exit 1
+ fi
+ $DRYRUN zypper addrepo -f $REPOURL $TMP_REPO_NAME
+ $DRYRUN zypper install --repo $TMP_REPO_NAME -y
--force-resolution --from $TMP_REPO_NAME --allow-downgrade
openSUSE-repos-Slowroll # install repos from the nextrelease
+ $DRYRUN zypper removerepo $TMP_REPO_NAME # drop the temp repo, we
have now definitions of all repos we need
+ $DRYRUN zypper refresh-services # !Important! make sure that all
repo files under index service were regenerated
+
+ # --allow-downgrade is important in case that you choose MicroOS
-> MicroOS-Slowroll migration
+ $DRYRUN zypper dup -y --force-resolution --allow-downgrade
--allow-vendor-change --download in-advance
+ if [ $? -ne 0 ]; then # re-run zypper dup as interactive in case
of failure in non-interactive mode
+ $DRYRUN zypper dup --force-resolution --allow-downgrade
--allow-vendor-change --download in-advance
+ fi
+ ;;
*"MicroOS"*)
$DRYRUN echo "Upgrading to ${MIGRATION_OPTIONS[$CHOICE]}"
# https://download.opensuse.org/ports/ # for other arches
@@ -489,9 +488,9 @@
fi
fi
$DRYRUN zypper addrepo -f $REPOURL $TMP_REPO_NAME
- $DRYRUN zypper in -y --from $TMP_REPO_NAME
openSUSE-repos-MicroOS # install repos from the nextrelease
+ $DRYRUN zypper install --repo $TMP_REPO_NAME -y
--force-resolution --from $TMP_REPO_NAME openSUSE-repos-MicroOS # install repos
from the nextrelease
$DRYRUN zypper removerepo $TMP_REPO_NAME # drop the temp repo, we
have now definitions of all repos we need
- $DRYRUN zypper refs # !Important! make sure that all repo files
under index service were regenerated
+ $DRYRUN zypper refresh-services # !Important! make sure that all
repo files under index service were regenerated
$DRYRUN zypper dup -y --force-resolution --allow-vendor-change
--download in-advance
if [ $? -ne 0 ]; then # re-run zypper dup as interactive in case
of failure in non-interactive mode
@@ -510,7 +509,10 @@
name=$(basename "$script" .sh)
if "$script" --check; then
case "$name" in
- "20_pulse2pipewire") desc="Switch to PipeWire" ;;
+ "10_keepapparmor") desc="Keep AppArmor (SELinux is the new
default)" ;;
+ "10_keepselinux") desc="Switch to SELinux (new default)" ;;
+ "20_pulse2pipewire") desc="Switch to PipeWire (new default)" ;;
+ "20_ia32") desc="Allow 32bit binary execution (Steam)" ;;
*) desc="Run $name" ;;
esac
AVAILABLE_TASKS["$name"]="$desc"
@@ -520,7 +522,7 @@
if [[ ${#AVAILABLE_TASKS[@]} -gt 0 ]]; then
CHECKLIST_ITEMS=()
for key in "${!AVAILABLE_TASKS[@]}"; do
- CHECKLIST_ITEMS+=("$key" "${AVAILABLE_TASKS[$key]}" "on")
+ CHECKLIST_ITEMS+=("$key" "${AVAILABLE_TASKS[$key]}" "off")
done
SELECTED_TASKS=$(dialog --clear \
--title "Post-Migration Optional Tasks" \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opensuse-migration-tool-20250729.4ed6ec5/scripts/10_keepapparmor.sh
new/opensuse-migration-tool-20251029.ed0d12d/scripts/10_keepapparmor.sh
--- old/opensuse-migration-tool-20250729.4ed6ec5/scripts/10_keepapparmor.sh
1970-01-01 01:00:00.000000000 +0100
+++ new/opensuse-migration-tool-20251029.ed0d12d/scripts/10_keepapparmor.sh
2025-10-29 21:29:32.000000000 +0100
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# SELinux is the new default but some people prefer AppArmor
+# https://code.opensuse.org/leap/features/issue/182
+#
https://en.opensuse.org/SDB:AppArmor#Switching_from_SELinux_to_AppArmor_for_Leap_16.0_and_Tumbleweed
+
+set -euo pipefail
+
+log() {
+ echo "[MIGRATION] $1"
+}
+
+error_exit() {
+ echo "[MIGRATION][ERROR] $1" >&2
+ exit 1
+}
+
+# Check if we have security=apparmor as boot param
+if [[ "${1:-}" == "--check" ]]; then
+ if ! /usr/sbin/update-bootloader --get-option security | grep apparmor
&>/dev/null; then
+ exit 0
+ else
+ exit 1
+ fi
+fi
+
+log "Drop any SELinux boot options"
+sudo update-bootloader --del-option "security=selinux"
+sudo update-bootloader --del-option "enforcing=1"
+sudo update-bootloader --del-option "selinux=1"
+log "Adding AppArmor boot options"
+sudo update-bootloader --add-option "security=apparmor"
+
+if rpm -q patterns-base-apparmor &>/dev/null; then
+ log "Package patterns-base-apparmor is already installed. Skipping."
+ exit 0
+
+else
+ log "Installing packages: patterns-base-apparmor"
+ if sudo zypper --non-interactive install --force-resolution
patterns-base-apparmor; then
+ log "Installation completed successfully."
+ else
+ error_exit "Package installation failed. Please check zypper logs or
try again manually."
+ fi
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opensuse-migration-tool-20250729.4ed6ec5/scripts/10_keepselinux.sh
new/opensuse-migration-tool-20251029.ed0d12d/scripts/10_keepselinux.sh
--- old/opensuse-migration-tool-20250729.4ed6ec5/scripts/10_keepselinux.sh
1970-01-01 01:00:00.000000000 +0100
+++ new/opensuse-migration-tool-20251029.ed0d12d/scripts/10_keepselinux.sh
2025-10-29 21:29:32.000000000 +0100
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# SELinux is the new default manual switch
+# might be needed for people migrating from 15.X
+
+#
https://en.opensuse.org/SDB:AppArmor#Switching_from_SELinux_to_AppArmor_for_Leap_16.0_and_Tumbleweed
+
+set -euo pipefail
+
+log() {
+ echo "[MIGRATION] $1"
+}
+
+error_exit() {
+ echo "[MIGRATION][ERROR] $1" >&2
+ exit 1
+}
+
+# Check if we have security=selinux as boot param
+if [[ "${1:-}" == "--check" ]]; then
+ if ! /usr/sbin/update-bootloader --get-option security | grep selinux
&>/dev/null; then
+ exit 0
+ else
+ exit 1
+ fi
+fi
+
+log "Drop AppArmor boot options"
+sudo update-bootloader --del-option "security=apparmor"
+
+log "Add any SELinux boot options"
+sudo update-bootloader --add-option "security=selinux"
+sudo update-bootloader --add-option "enforcing=1"
+sudo update-bootloader --add-option "selinux=1"
+
+if rpm -q patterns-base-apparmor &>/dev/null; then
+ log "Uninstalling packages: patterns-base-apparmor"
+ if sudo zypper --non-interactive remove --force-resolution
patterns-base-apparmor; then
+ log "Uninstallation of AppArmor completed successfully."
+ else
+ error_exit "Package uninstallation failed. Please check zypper logs or
try again manually."
+ fi
+
+else
+ log "Installing packages: patterns-selinux selinux-policy-targeted-gaming"
+ sudo zypper --non-interactive install -t pattern --force-resolution selinux
+ sudo zypper --non-interactive install selinux-policy-targeted-gaming
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opensuse-migration-tool-20250729.4ed6ec5/scripts/20_ia32.sh
new/opensuse-migration-tool-20251029.ed0d12d/scripts/20_ia32.sh
--- old/opensuse-migration-tool-20250729.4ed6ec5/scripts/20_ia32.sh
1970-01-01 01:00:00.000000000 +0100
+++ new/opensuse-migration-tool-20251029.ed0d12d/scripts/20_ia32.sh
2025-10-29 21:29:32.000000000 +0100
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+# SLES 16 disables 32bit support in kernel by default
+# Things like Steam, Proton, Virtualbox will need it
+
+set -euo pipefail
+
+log() {
+ echo "[MIGRATION] $1"
+}
+
+error_exit() {
+ echo "[MIGRATION][ERROR] $1" >&2
+ exit 1
+}
+
+# This is used to generate dynamic list of tasks
+if [[ "${1:-}" == "--check" ]]; then
+ if ! rpm -q grub2-compat-ia32 &>/dev/null; then
+ exit 0
+ else
+ exit 1
+ fi
+fi
+
+log "Installing packages: grub2-compat-ia32"
+if sudo zypper --non-interactive install --force-resolution grub2-compat-ia32;
then
+ log "Installation completed successfully."
+else
+ error_exit "Package installation failed. Please check zypper logs or try
again manually."
+fi
++++++ opensuse-migration-tool.obsinfo ++++++
--- /var/tmp/diff_new_pack.lodMjV/_old 2025-11-27 13:19:57.101512225 +0100
+++ /var/tmp/diff_new_pack.lodMjV/_new 2025-11-27 13:19:57.121513069 +0100
@@ -1,5 +1,5 @@
name: opensuse-migration-tool
-version: 20250729.4ed6ec5
-mtime: 1753794102
-commit: 4ed6ec561640b43eadfdcf2fb6b0474816a97b65
+version: 20251029.ed0d12d
+mtime: 1761769772
+commit: ed0d12d53c7eeab780c8c81b18a469d18c4a59df