How to make Lubuntu install xterm when listed as depends

I ran into a problem with mkusb in new versions of Lubuntu.

In 24.04.x LTS Lubuntu (live) as well as Ubuntu Server (installed)
the installation via ppa:mkusb/unstable and the command

sudo apt install mkusb

works as expected also when xterm was not installed earlier.

In 25.10 and the early Resolute Lubuntu (live) using a copy of the same ppa files fails to install xterm (when not installed earlier).

The ‘Depends’ list includes xterm:

less -r mkusb_24.1.1-1ubuntu1_all.deb|grep -i depends
 Depends: gdisk, pv, xterm, wmctrl, zenity, rsync, mkusb-common (>= 24.1.1), guidus (>= 24.1.1), mkusb-nox

yet it is ignored when running

sudo apt install mkusb

This workaround works:

sudo apt install mkusb xterm

but I think there is a bug somewhere, that makes Lubuntu 25.10 and Resolute skip installing xterm. It might affect other program packages too.

Edit {This link shows how mkusb is modified to work around this bug.}

Can you help me find a way to solve the problem (and avoid the work-around)

  • modify the control file of building the mkusb deb file or
  • modify (debug) the new versions of Lubuntu (via bug report)?

-o-

In Ubuntu Desktop 25.10 xterm is not part of the live system, but

sudo apt install mkusb

lists to be installed, and it is installed successfully.

-o-

If this bug affects you please say so in the bug report.

1 Like

Out of curiosity, is the “Depends” list the same for mkusb, for both

  • Live session, and
  • Booted on-disk session?

Also, what is the package version reported for

  • apt

for each of those two environments?

2 Likes

Reply to @ericmarceau:

Yes, the ‘depends’ lists for the installing mkusb are the same even for all current versions of Ubuntu and flavours.

Please notice that I have both changed and appended items in the following list:

  • Lubuntu Resolute live : apt 3.1.8ubuntu1 (amd64) – fails
  • Lubuntu 25.10 live : apt 3.1.6ubuntu2 (amd64) – fails
  • Lubuntu 24.04.2 LTS live : apt 2.7.14 (amd64) – works
  • Ubuntu Desktop 25.10 live: apt 3.1.6ubuntu2 --works
  • Ubuntu Desktop 25.10 installed/up-to-date: apt 3.1.6ubuntu2 --works

So with the same apt Ubuntu 25.10 works but Lubuntu 25.10 fails to install mkusb correctly. It was a good guess that apt would be the culprit, but after this check I suspect that the bug is somewhere else.


I should also add, that I only checked if Ubuntu Server 24.04.x LTS listed xterm to be installed alongside mkusb (and it did). It is a text mode system, and would add a lot of dependencies in order to manage the graphical part of mkusb, so I did not perform the installation.

Additional edits:

Finally I can also add that Kubuntu 25.10 live can install mkusb correctly.

2 days later I installed Lubuntu 25.10 into a laptop and after that made it up to date by

sudo apt update && sudo apt full-upgrade

and after that installed mkusb. I had the same problem as in the live session, xterm was not installed automatically, but could be installed separately, so until this bug is fixed, mkusb should be installed into Lubuntu 25.10 and Lubuntu Resolute by

sudo apt install mkusb xterm
2 Likes

In 25.10 qterminal provides xterm. Do you have qterminal installed on the affected Lubuntu 25.10 system?

2 Likes

Yes, I have qterminal installed (by default in the live session of Lubuntu 25.10).

Look at

lubuntu@lubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 25.10
Release:        25.10
Codename:       questing
lubuntu@lubuntu:~$ which qterminal
/usr/bin/qterminal
lubuntu@lubuntu:~$ qterminal --help
QTerminal 2.2.1
Usage: qterminal [OPTION]...

  -d,  --drop               Start in "dropdown mode" (like Yakuake or Tilda)
  -e,  --execute <command>  Execute command instead of shell
  -h,  --help               Print this help
  -p,  --profile <name>     Load profile from ~/.config/<name>.conf
  -v,  --version            Prints application version and exits
  -w,  --workdir <dir>      Start session with specified work directory

Homepage: <https://github.com/lxqt/qterminal>
Report bugs to <https://github.com/lxqt/qterminal/issues>
QThreadStorage: entry 1 destroyed before end of thread 0x6355cc426de0
QThreadStorage: entry 0 destroyed before end of thread 0x6355cc426de0
lubuntu@lubuntu:~$ xterm
Command 'xterm' not found, but can be installed with:
sudo apt install xterm
lubuntu@lubuntu:~$

and

lubuntu@lubuntu:~$ dpkg-query -L qterminal-l10n
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/qterminal-l10n
/usr/share/doc/qterminal-l10n/changelog.Debian.gz
/usr/share/doc/qterminal-l10n/copyright
/usr/share/qterminal
/usr/share/qterminal/translations
/usr/share/qterminal/translations/qterminal_ar.qm
/usr/share/qterminal/translations/qterminal_arn.qm
/usr/share/qterminal/translations/qterminal_ast.qm
/usr/share/qterminal/translations/qterminal_bg.qm
/usr/share/qterminal/translations/qterminal_ca.qm
/usr/share/qterminal/translations/qterminal_cs.qm
/usr/share/qterminal/translations/qterminal_cy.qm
/usr/share/qterminal/translations/qterminal_da.qm
/usr/share/qterminal/translations/qterminal_de.qm
/usr/share/qterminal/translations/qterminal_de_CH.qm
/usr/share/qterminal/translations/qterminal_el.qm
/usr/share/qterminal/translations/qterminal_en_GB.qm
/usr/share/qterminal/translations/qterminal_es.qm
/usr/share/qterminal/translations/qterminal_et.qm
/usr/share/qterminal/translations/qterminal_fa.qm
/usr/share/qterminal/translations/qterminal_fi.qm
/usr/share/qterminal/translations/qterminal_fr.qm
/usr/share/qterminal/translations/qterminal_gl.qm
/usr/share/qterminal/translations/qterminal_he.qm
/usr/share/qterminal/translations/qterminal_hi.qm
/usr/share/qterminal/translations/qterminal_hr.qm
/usr/share/qterminal/translations/qterminal_hu.qm
/usr/share/qterminal/translations/qterminal_id.qm
/usr/share/qterminal/translations/qterminal_it.qm
/usr/share/qterminal/translations/qterminal_ja.qm
/usr/share/qterminal/translations/qterminal_ka.qm
/usr/share/qterminal/translations/qterminal_kab.qm
/usr/share/qterminal/translations/qterminal_kk.qm
/usr/share/qterminal/translations/qterminal_ko_KR.qm
/usr/share/qterminal/translations/qterminal_lg.qm
/usr/share/qterminal/translations/qterminal_lt.qm
/usr/share/qterminal/translations/qterminal_mn.qm
/usr/share/qterminal/translations/qterminal_nb_NO.qm
/usr/share/qterminal/translations/qterminal_nl.qm
/usr/share/qterminal/translations/qterminal_oc.qm
/usr/share/qterminal/translations/qterminal_pa.qm
/usr/share/qterminal/translations/qterminal_pl.qm
/usr/share/qterminal/translations/qterminal_pt.qm
/usr/share/qterminal/translations/qterminal_pt_BR.qm
/usr/share/qterminal/translations/qterminal_ru.qm
/usr/share/qterminal/translations/qterminal_si.qm
/usr/share/qterminal/translations/qterminal_sk_SK.qm
/usr/share/qterminal/translations/qterminal_tr.qm
/usr/share/qterminal/translations/qterminal_uk.qm
/usr/share/qterminal/translations/qterminal_zh_CN.qm
/usr/share/qterminal/translations/qterminal_zh_TW.qm
lubuntu@lubuntu:~$

But the installed qterminal does not make it possible to call xterm by its [standard] name. However, it is still possible to install xterm from the package xterm, so a workaround to install mkusb is

sudo apt install mkusb xterm

Do you think that the existence of qterminal-l10n or some related package inhibits the installation of the package xterm?

1 Like

It’s the existence of the qterminal package. The qterminal package declares that it provides xterm, so when installing anything that depends on xterm, the qterminal package is telling apt that the xterm dependency is already satisfied, so apt does not install xterm as a dependency.

apt-cache show qterminal output should show the Provides: includes xterm

If qterminal claims to provide xterm but does not actually provide xterm, that seems like a bug in the qterminal package?

2 Likes

Thanks @halogen2,

It looks like this in my Lubuntu 25.10 running a live session,

lubuntu@lubuntu:~$ apt-cache show qterminal
Package: qterminal
Architecture: amd64
Version: 2.2.1-0ubuntu1
Priority: optional
Section: universe/x11
Origin: Ubuntu
Maintainer: Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 616
Provides: x-terminal-emulator, xterm
Depends: libc6 (>= 2.34), libcanberra0 (>= 0.2), liblayershellqtinterface6 (>= 6.1.0), libqt6core6t64 (>= 6.8.2), libqt6dbus6 (>= 6.8.2), libqt6gui6 (>= 6.2.0), libqt6widgets6 (>= 6.7.2), libqtermwidget6-2 (>= 2.2.0), libstdc++6 (>= 5), libx11-6
Recommends: qterminal-l10n
Filename: pool/universe/q/qterminal/qterminal_2.2.1-0ubuntu1_amd64.deb
Size: 184760
MD5sum: 23a17ff32ee62ea9a22dc03662a9c083
SHA1: 8db96ba101b49b8bc826bf21a56d146adcc66307
SHA256: 2686f653400bd8bb8e2a24c1d17a511d04398e265ff0206cf3befc599bf6308d
SHA512: e995042d9555280599d71d830f1b92140ba746f4be36c94124005f373548d24a86498d04c3ed720a9be3f484f06c8307be330ede225df57b2dec427687f057bd
Homepage: https://github.com/lxqt/qterminal
Description-en: Lightweight Qt terminal emulator
 QTerminal is a lightweight terminal emulator based on QTermWidget.
 .                                                                                                                 
 Among other it features                                                                                           
   * Split terminals (horizontally and vertically).                                                                
   * Multiple tabs.                                                                                                
   * Customizable shortcuts.                                                                                       
   * Various color schemes.                                                                                        
Description-md5: 05db54684ae5fcd5755e97a4976bf8c2                                                                  
Task: lubuntu-desktop-minimal, lubuntu-desktop                                                                                                           
                                                                                                                                                         
lubuntu@lubuntu:~$ xterm
Command 'xterm' not found, but can be installed with:                                                                                                    
sudo apt install xterm                                                                                                                                   
lubuntu@lubuntu:~$ qterminal
lubuntu@lubuntu:~$ which xterm                                                                                                                           
lubuntu@lubuntu:~$ which qterminal
/usr/bin/qterminal
lubuntu@lubuntu:~$

I agree, that we have identified a bug in the qterminal package in Lubuntu: it claims to provide xterm but does not actually do it. So I will create a bug report.

If this bug affects you please say so in the bug report.

1 Like

As a sanity check, my Synaptic reports 2 packages, not just one:

SNAPSHOT__Synaptic__qterminal


You indicated that you did verify the listing using …

But, have you tried to get the listing for qterminal itself, to confirm xterm was not included?

dpkg-query -L qterminal


If you created a symlink as follows,

sudo ln -s /usr/share/qterminal /bin/xterm

and entered “xterm” at the command line, would you get a proper xterm?

1 Like

@ ericmarceau,

I booted again into Lubuntu 25.10 live, ran the following commands, and looked at the output,

lubuntu@lubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 25.10
Release:        25.10
Codename:       questing
lubuntu@lubuntu:~$ df -h
Filesystem                   Size  Used Avail Use% Mounted on
tmpfs                        3.2G   10M  3.2G   1% /run
/dev/sdb1                    3.3G  3.3G     0 100% /cdrom
/cow                          16G   19M   16G   1% /
/dev/disk/by-label/writable   52G  5.5M   49G   1% /var/log
tmpfs                         16G     0   16G   0% /dev/shm
efivarfs                     128K   78K   46K  63% /sys/firmware/efi/efivars
tmpfs                        5.0M   16K  5.0M   1% /run/lock
tmpfs                        1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
tmpfs                        1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service
tmpfs                         16G  4.0K   16G   1% /tmp
tmpfs                        3.2G   88K  3.2G   1% /run/user/1000
lubuntu@lubuntu:~$ qterminal --version
2.2.1
QThreadStorage: entry 1 destroyed before end of thread 0x5a7c1f004de0
QThreadStorage: entry 0 destroyed before end of thread 0x5a7c1f004de0
lubuntu@lubuntu:~$ apt policy qterminal
qterminal:
  Installed: 2.2.1-0ubuntu1
  Candidate: 2.2.1-0ubuntu1
  Version table:
 *** 2.2.1-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu questing/universe amd64 Packages
        100 /var/lib/dpkg/status
lubuntu@lubuntu:~$ dpkg-query -L qterminal
/.
/usr
/usr/bin
/usr/bin/qterminal
/usr/share
/usr/share/applications
/usr/share/applications/qterminal-drop.desktop
/usr/share/applications/qterminal.desktop
/usr/share/doc
/usr/share/doc/qterminal
/usr/share/doc/qterminal/AUTHORS
/usr/share/doc/qterminal/CONTRIBUTING.md
/usr/share/doc/qterminal/README.md
/usr/share/doc/qterminal/changelog.Debian.gz
/usr/share/doc/qterminal/copyright
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/64x64
/usr/share/icons/hicolor/64x64/apps
/usr/share/icons/hicolor/64x64/apps/qterminal.png
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/qterminal
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/qterminal.1.gz
/usr/share/metainfo
/usr/share/metainfo/qterminal.metainfo.xml
/usr/share/qterminal
/usr/share/qterminal/qterminal_bookmarks_example.xml
lubuntu@lubuntu:~$ xterm
Command 'xterm' not found, but can be installed with:
sudo apt install xterm
lubuntu@lubuntu:~$

If I understand correctly, the qterminal package in Lubuntu 25.10 provides only one executable file, /usr/bin/qterminal.

/usr/share/qterminal is a directory, and will not work as the command xterm.

1 Like

Sorry, wrong target.

What if you tried

sudo ln -s /usr/bin/qterminal /bin/xterm

Will qterminal take on the personality of an xterm (possible embedded behavioural switch)?

@ ericmarceau,

Your suggestion is worth testing, but I already tested it plus a hard linked xterm and those linked xterm simply start qterminal with exactly the same look and feel as when called by its original name.

1 Like

I was hoping that would pinpoint the failure (bug), but it seems not to be the case. :frowning:

Workaround in mkusb

There will probably be no new Lubuntu 25.10 iso file, so in order to make it easier to make USB boot drives, I made a new version, mkusb 25.0.2, that suggests that the user installs xterm if not found, when trying to run it from the menu.

It can also use qterminal instead of xterm (only the menu entry ‘mkusb’ uses qterminal, the other menu entries ‘guidus’ and ‘mkusb-plug’ only suggest that the user installs xterm).

1 Like

The Provides: xterm appears to have been introduced in:

https://git.lubuntu.me/Lubuntu/qterminal-packaging/commit/cdb18d7ae10ef9637a2c1172d665e9bd729ab1d6

Interesting link, but how to interpret that information: Is it really providing xterm (but we don’t understand how to use it) or is it only saying that it provides xterm?

I look at the source for qterminal, searching for “xterm”,

and I don’t see anything that makes me think there is any “xterm” included.

1 Like

I don’t know, this seems me to be a Debian Policy violation. Are packages allowed to claim they “Provide:” another package that already concretely exists? Qterminal appears to be the only terminal emulator package that says that it provides xterm (besides the actual xterm of course). All other term apps just provide the virtual package, x-terminal-emulator. What happens if the other terminal emulator packages start adding xterm to their Provides: control field? How does apt’s solver choose between them?

1 Like

Maybe raise the issue with Debian directly ?

Why? The qterminal packages in Debian don’t list xterm in the Provides: field. This is specific to Ubuntu’s versions in Plucky and Questing. And AFAICT, it’s not a policy violation per se, but it is bad practice since qterminal is not a drop-in replacement for xterm which is the usual reason for listing a concrete package in the Provides: field.

Now when you seek to find out all the reverse dependencies of xterm you get this:

$ apt rdepends xterm
xterm
Reverse Depends:
 |Depends: yeahconsole (>= 168)
    xterm:i386
 |Depends: notion
    qterminal
    xterm:i386
  Depends: mythtv-backend
    qterminal
    xterm:i386
  Suggests: byobu
    qterminal
    xterm:i386
  Recommends: xvkbd
    qterminal
    xterm:i386
  Depends: xubuntu-desktop-minimal
    qterminal
    xterm:i386
  Depends: xubuntu-desktop
    qterminal
    xterm:i386
  Enhances: xtitle
    qterminal
    xterm:i386
 |Suggests: xtermset
    qterminal
    xterm:i386
  Suggests: xtermcontrol
    qterminal
    xterm:i386
  Recommends: xtel
    qterminal
    xterm:i386
 |Depends: xorg
    qterminal
    xterm:i386
 |Recommends: xinit
    qterminal
    xterm:i386
  Recommends: xfe
    qterminal
    xterm:i386
  Suggests: xcas
    qterminal
    xterm:i386
  Suggests: wmaker
    qterminal
    xterm:i386
 |Recommends: wm2
    qterminal
    xterm:i386
 |Depends: winff-qt
    qterminal
    xterm:i386
  Depends: vprerex
    qterminal
    xterm:i386
  Depends: ubuntu-unity-desktop
    qterminal
    xterm:i386
  Recommends: ubuntu-mate-desktop
    qterminal
    xterm:i386
  Recommends: ubuntu-mate-core
    qterminal
    xterm:i386
  Suggests: tucnak
    qterminal
    xterm:i386
 |Recommends: tkcvs
    qterminal
    xterm:i386
 |Depends: tk-brief
    qterminal
    xterm:i386
 |Recommends: steam-libs
    qterminal
    xterm:i386
  Depends: ssvnc
    qterminal
    xterm:i386
 |Depends: squeak-vm
    qterminal
    xterm:i386
 |Depends: spectrwm
    qterminal
    xterm:i386
  Recommends: slim
    qterminal
    xterm:i386
  Depends: singular-ui-xterm
    qterminal
    xterm:i386
 |Depends: seyon
    qterminal
    xterm:i386
 |Depends: secpanel
    qterminal
    xterm:i386
 |Recommends: qtcreator
    qterminal
    xterm:i386
 |Suggests: pconsole
    qterminal
    xterm:i386
  Depends: packagesearch
    qterminal
    xterm:i386
 |Depends: oidc-agent-desktop
    qterminal
    xterm:i386
 |Depends: odin
    qterminal
    xterm:i386
 |Depends: netwag
    qterminal
    xterm:i386
 |Suggests: miwm
    qterminal
    xterm:i386
 |Recommends: mdk
    qterminal
    xterm:i386
  Recommends: macaulay2
    qterminal
    xterm:i386
 |Depends: lwm
    qterminal
    xterm:i386
 |Depends: luakit
    qterminal
    xterm:i386
 |Recommends: links2
    qterminal
    xterm:i386
  Recommends: junior-desktop
    qterminal
    xterm:i386
 |Depends: ivtools-bin
    qterminal
    xterm:i386
  Recommends: iraf
    qterminal
    xterm:i386
  Suggests: icewm-common
    qterminal
    xterm:i386
  Recommends: herbstluftwm
    qterminal
    xterm:i386
 |Depends: grass-gui
    qterminal
    xterm:i386
  Depends: grace
    qterminal
    xterm:i386
 |Depends: gkdebconf
    qterminal
    xterm:i386
  Suggests: gexec
    qterminal
    xterm:i386
 |Depends: firetools
    qterminal
    xterm:i386
 |Depends: exmh
    qterminal
    xterm:i386
  Suggests: evilwm
    qterminal
    xterm:i386
  Recommends: epoptes-client
    qterminal
    xterm:i386
  Depends: epoptes
    qterminal
    xterm:i386
 |Suggests: draai
    qterminal
    xterm:i386
 |Suggests: doublecmd-common
    qterminal
    xterm:i386
  Depends: debroster
    qterminal
    xterm:i386
 |Depends: debian-installer-launcher
    qterminal
    xterm:i386
  Suggests: ddd
    qterminal
    xterm:i386
 |Recommends: codelite
    qterminal
    xterm:i386
  Recommends: codeblocks
    qterminal
    xterm:i386
  Depends: clusterssh
    qterminal
    xterm:i386
  Suggests: advi-examples
    qterminal
    xterm:i386

It’s absurd that qterminal should be listed as reverse dependency for other packages as it is not a drop-in for xterm. As I mentioned yesterday, what if all the other packages that provide x-terminal-emulator also decided include xterm in their Provides: field. There’s 29 of them, so imagine how much longer and useless that “apt rdepends” output would be.

1 Like

This is in Lubuntu-specific packaging, not in Debian, so Debian probably can’t help.

This does seem like an odd packaging decision, though I can see why it was made originally. Probably worth reverting, since the 25.10 ISO ended up with Alacritty on it for a similar reason. (Personally I’d prefer xterm over Alacritty if we have to have a second terminal because of apt behaving poorly.)

2 Likes