Skip to content

openSUSE/opensuse-migration-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛍️ openSUSE Migration Tool

🗪 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.

General documentation about openSUSE Leap upgrade or Migration can be found at SDB:System_upgrade wiki.


image

🌟 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


🔄 Supported Migration Paths

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

⚠️ Unsupported or discouraged paths:

  • 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. 👐


🧪 Quick Start: Testing the Tool

Always use --dry-run first to preview planned changes!

🔧 On regular systems (Leap, Tumbleweed, Slowroll)

sudo zypper in opensuse-migration-tool
opensuse-migration-tool --dry-run
sudo opensuse-migration-tool
reboot

💨 On immutable systems (Leap Micro)

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

🚧 Upgrading to Alpha/Beta/RC Releases

By default, pre-release versions are hidden to avoid accidental installs.

Use --pre-release to opt-in:

./opensuse-migration-tool --pre-release --dry-run
sudo ./opensuse-migration-tool --pre-release

🐳 Development & Testing in Distrobox (Recommended)

Leap Micro inside Toolbox container

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 15.5 container

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

⚠️ Heads-up: Toolbox environments are not truly immutable and may exhibit issues (e.g. bind-mounted /etc/hostnamebug 1233982).


📋 Manual Migration Resources

For traditional zypper dup approaches:


📦 Packaging & Submitting to openSUSE

Working on the package (Base:System)

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

Forwarding to openSUSE:Factory

If not done by the maintainer:

osc sr Base:System opensuse-migration-tool openSUSE:Factory

Submitting to Leap and Leap Micro

After Factory acceptance:

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.

About

openSUSE migration tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages