Debian 13 is here and I am itching to update my template in-place

https://www.debian.org/News/2025/20250809

I would like to get working on debian 13 as soon as possible. I also want to do an in-place upgrade, as I don’t keep track of the packages I installed (maybe I should find a command that gives me a list of that). What do you guys think? Should I wait, or should I go on with the in-place upgrade?

Btw, is qubes-specific software packages (like qvm-move, etc.) going to carry on with me into debian 13? Or are they going to have their own specific releases?

I have been using (in-place upgraded) Debian 13 templates since April:

I do not use Debian templates for ServiceVMs. But I am almost certain that all bugs related to it are already solved.

1 Like

How about this for a strategy?

Clone it. Update the clone, and play with it until you don’t have any doubts…

2 Likes

@alimirjamali are you using the new debian.sources format on your debian 13 templates?

https://www.debian.org/releases/trixie/release-notes/upgrading.en.html#preparing-apt-sources-files

1 Like

Actually no. I am using the old .list format. I was not aware of this change (thanks for sharing)

1 Like

That’s how I do it and I think even the documentation recommends it. I clone templates to a new name (say, debian-12-xfcedebian-13-xfce), upgrade the cloned one then switch some or all AppVMs to the new template. If anything goes wrong, I just change the templates back. If everything works, then after a month or two I remove the old template.

2 Likes

are you using this naming with your “custom” debian templates? It might cause some problem if later on you would like to download debian-13-xfce template from qubesOS repos

1 Like

@alimirjamali btw, how long (typically) does it take for the debian-13-xfce templates to be released, following debian 13 release itself?

It is hard to tell. As the decision is with Marek. But I guess it should not be very long. Since it has been under test for ever (around 5 months). Should not be very long. Maybe one or two weeks. But do not take what I say for granted.

1 Like

It’s an easy step. Clone the template, cat/paste the new sources

Types: deb
URIs: Index of /debian
Suites: trixie trixie-updates
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: Index of /debian-security
Suites: trixie-security
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

to

/etc/apt/sources.list.d/debian.sources

within the clone.

Done. apt-get update will complain about duplicate references, so one could do some

rm /etc/apt/sources.list

The rest just as follows (and already cited) …

All my printing qubes rely on minimal debian templates and it took 5mins per qube to get them switched over. It’s all working nicely. Not a single hiccup so far.

I did do an inplace upgrade of a copy of a debian-12 template to debian-13 and having multiple keyboard layout is giving me issues. While initially I can switch keyboard layouts, at some point, either after going into hibernation or using a kvm to switch the keyboard disables the actual keyboard toggle keys. Also, there is a difference in the keyboard mappings for some locals between the qubes os debian-12 and an upgraded debian-13 so there also that. Heads up for anyone using multiple keyboard layouts. I might have to switch back to debian-12 because of this

edit: additional information. In my case, the layout missing is related to french canadian keyboard. In dom0 the keyboard layout I use is French (Canada) - Canadian (intl. 1st part) but this is actually French (Canada) - Canadian (CSA) in the debian 13 template. This means that I have to constantly flip the keyboard layout in the qube instead of system wide and the keys to switch layout go dead often. I should investigate adding or renaming the layout in the debian 13 template but in the mean time, just be aware of the issue

edit2 - solution: at least for me, simply add the missing keyboard layout in /usr/share/X11/xdb/symbols/ca in the debian 13 template and it will find it and use the appropriate layout. It’s still a bit wonky when I switch with a KVM but at least a quick toggle of the system layout and it lands back on its feet

I simply replace my templates every time there’s a new one, then I run qubesctl --show-output --templates state.highstate and I’m back to a working state. The way I got this working is with a pillar of the format:

template-user-installed:
  install: 
    - netcat
    - qubes-something
  downloaded:
    - chromium
    - Other program with dumb suid files or automatically enabled services which I may want on certain VMs
  purged:
    - nodejs

I have a salt rules to apply this, and other changes I want applied to my templates.

Note that salt scripts are executed as the highest privilege in dom0, do not import salt scripts from anyone unless you fully understand completely what they do.

1 Like