Migrate repositories
dms migrate dux moves the package-manager repositories for DMS from the legacy avengemedia owner to duxlabs. Only the repository changes. The package renames (dgop to dux-gop and the others) exist only in the duxlabs repositories and happen on the next upgrade after the move (on Debian and openSUSE the command switches them itself); see Renamed packages.
Usage
dms migrate dux # list the moves, ask, then run them
dms migrate dux --dry-run # print the commands without running anything
dms migrate dux -y # no prompt
| Flag | Effect |
|---|---|
--dry-run | Print the commands it would run and change nothing |
-y, --yes | Skip the confirmation prompt |
What moves
| Distribution | From | To |
|---|---|---|
| Fedora, EL 10 (COPR) | avengemedia/dms, avengemedia/dms-git, avengemedia/danklinux | duxlabs/dms, duxlabs/dms-git, duxlabs/dux-repo |
| Ubuntu (PPA) | ppa:avengemedia/dms, ppa:avengemedia/dms-git, ppa:avengemedia/danklinux | ppa:duxlabs/dms, ppa:duxlabs/dms-git, ppa:duxlabs/dux-repo |
| Void (XBPS) | https://void.danklinux.com/dms/current, https://void.danklinux.com/danklinux/current | https://void.duxlabs.dev/dms/current, https://void.duxlabs.dev/dux-repo/current |
| Debian, openSUSE (OBS) | home:AvengeMedia:dms, home:AvengeMedia:dms-git, home:AvengeMedia:danklinux | home:duxlabs-dev:dms, home:duxlabs-dev:dms-git, home:duxlabs-dev:dux-repo |
Only repositories that are enabled on your system are moved. The short-lived duxlabs/dux dependency repository (used by the 2.0 release docs before it was renamed) is also treated as legacy and replaced by duxlabs/dux-repo. The dms-git repositories appear only if you use the development builds.
What you will see
Nothing to migrate on <distro>.Your distribution has no repositories to move.Already migrated.Your DMS repositories already come fromduxlabs.- Otherwise, a table of the moves, followed by a confirmation prompt.
The command is idempotent: running it again skips repositories that already moved, so it is safe to repeat.
Commands it runs
The commands run with sudo, so you may be asked for your password. --dry-run prints the same lines.
Fedora, EL 10:
sudo dnf copr enable -y duxlabs/dms
sudo dnf copr enable -y duxlabs/dux-repo
sudo dnf copr remove -y avengemedia/dms
sudo dnf copr remove -y avengemedia/danklinux
With the development builds installed, duxlabs/dms-git is enabled and avengemedia/dms-git is removed as well.
Ubuntu, for each PPA that moves:
sudo add-apt-repository -y ppa:duxlabs/<ppa>
sudo add-apt-repository -r -y ppa:avengemedia/<ppa>
ppa:avengemedia/danklinux is replaced by ppa:duxlabs/dux-repo.
Void, for each /etc/xbps.d/*.conf file with a legacy repository= line, whatever the file is called:
sudo sed -i 's|repository=https://void.danklinux.com/dms/current|repository=https://void.duxlabs.dev/dms/current|' /etc/xbps.d/dms.conf
sudo xbps-install -S
danklinux/current is replaced by dux-repo/current. If you only had dms/current (greeter-only installs), dux-repo/current is added to /etc/xbps.d/dux.conf, since the greeter now lives there. The packages are signed with the same key as before, so XBPS does not ask you to import a new one.
Debian, for each OBS project that moves (<project> is dms, dms-git or dux-repo, <old> is dms, dms-git or danklinux, <release> is Debian_13, Debian_Testing or Debian_Unstable):
curl -fsSL https://download.opensuse.org/repositories/home:/duxlabs-dev:/<project>/<release>/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/home-duxlabs-dev-<project>.gpg
echo 'deb [signed-by=/etc/apt/keyrings/home-duxlabs-dev-<project>.gpg arch=<arch>] https://download.opensuse.org/repositories/home:/duxlabs-dev:/<project>/<release>/ /' | sudo tee /etc/apt/sources.list.d/home-duxlabs-dev-<project>.list
sudo apt-get update
sudo apt-get install -y dux-gop dux-greeter
sudo rm -f /etc/apt/sources.list.d/duxlabs.list /etc/apt/keyrings/duxlabs.gpg
sudo apt-get update
home:AvengeMedia:danklinux is replaced by home:duxlabs-dev:dux-repo. The new projects are signed with a new key, which the first command installs. The apt-get install line lists the new names of the renamed packages you have installed under their old names (dgop and dms-greeter in this example), so they switch right away. The rm -f lines remove each sources file that points at a legacy project, whatever it is called (duxlabs.list from the 2.0 docs in this example), together with its keyring unless another source still uses it.
openSUSE, for each OBS project that moves (<project> and <old> as above, <release> is openSUSE_Tumbleweed, openSUSE_Slowroll, 16.0 or 16.1):
sudo zypper addrepo -f https://download.opensuse.org/repositories/home:/duxlabs-dev:/<project>/<release>/home:duxlabs-dev:<project>.repo
sudo zypper --gpg-auto-import-keys refresh
sudo zypper --non-interactive install --oldpackage --allow-vendor-change --from home_duxlabs-dev_dms --from home_duxlabs-dev_dux-repo 'dms>=2.0.0' 'dux-greeter>=2.0.0' 'dux-gop>=0.1.12' 'quickshell>=0.3.2'
sudo zypper removerepo home_AvengeMedia_<old>
The zypper install line switches each package you installed from a legacy project to the new one, under its new name if it was renamed. zypper keeps installed packages with the vendor they came from, so without --allow-vendor-change they would stay on the legacy repositories. OBS numbers each build's release itself, so the new release can be lower than the installed one: --oldpackage allows that, and the >= floor is the installed version. Packages from openSUSE itself are left alone. If you moved the repositories by hand, running dms migrate dux still performs this switch.
Fedora Atomic (Silverblue, Kinoite, Bazzite): there is no dnf copr, so the command prints a curl for the new .repo file and an rm -f for the old one and leaves them for you to run.
Other distributions
- Arch, NixOS, Gentoo: nothing to migrate.
dms doctor shows whether any legacy repositories are left.