QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
543 stars 48 forks source link

ArchLinux template update failed with python <3.11 dependency #8170

Closed lubellier closed 1 year ago

lubellier commented 1 year ago

Qubes OS release

Qubes OS 4.1.2 with all the updates

Brief summary

ArchLinux template update failed with python <3.11 dependency

Steps to reproduce

In the ArchLinux template, launch pacman -Syu.

I daily update my ArchLinux template with the stable repositories, the last success update is 02-may-2023.

Expected behavior

ArchLinux template updated.

Actual behavior

Package update failes with the error message:

:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing python (3.11.3-1) breaks dependency 'python<3.11' required by qubes-db-vm
:: installing python (3.11.3-1) breaks dependency 'python<3.11' required by qubes-vm-core

Analysis

ArchLinux switched to python-3.11 but Qubes always uses a python < 3.11 dependency in the archlinux/PKGBUILD.* files.

What to do?

In the main branch and the 4.1 branch, fix the dependency from 'python<3.11' to 'python<3.12' in:

m4teh commented 1 year ago

Same issue. Cannot update any arch template until resolved.

lubellier commented 1 year ago

I closes the issue. Reasons: the PRs merged, the stable packages published, and installing theses packages solved the issue.

lxwagno commented 1 year ago

sorry if I'm a noob at qubes packages in arch, but how can I update to pick up this change? If I try to pacman -S qubes-db-vm for example, I get: "error: target not found: qubes-db-vm"

Thanks!

m4teh commented 1 year ago

sorry if I'm a noob at qubes packages in arch, but how can I update to pick up this change? If I try to pacman -S qubes-db-vm for example, I get: "error: target not found: qubes-db-vm"

Thanks!

Manually grab the updated packages from here and install them :)

https://ftp.qubes-os.org/repo/archlinux/r4.1/current/vm/archlinux/pkgs/

lxwagno commented 1 year ago

sorry if I'm a noob at qubes packages in arch, but how can I update to pick up this change? If I try to pacman -S qubes-db-vm for example, I get: "error: target not found: qubes-db-vm" Thanks!

Manually grab the updated packages from here and install them :)

https://ftp.qubes-os.org/repo/archlinux/r4.1/current/vm/archlinux/pkgs/

Thank you! Will try this

lxwagno commented 1 year ago

sorry if I'm a noob at qubes packages in arch, but how can I update to pick up this change? If I try to pacman -S qubes-db-vm for example, I get: "error: target not found: qubes-db-vm" Thanks!

Manually grab the updated packages from here and install them :)

https://ftp.qubes-os.org/repo/archlinux/r4.1/current/vm/archlinux/pkg

I can confirm this worked. Thanks m4teh for the quick response!!

manucircles commented 1 year ago

This is also broken on qubes 4.2

manucircles commented 1 year ago

Is there a plan to bring up the python version in 4.2?

manucircles commented 1 year ago

Is this closed? I still am unable to update my arch linux. Thanks @andrewdavidwong

andrewdavidwong commented 1 year ago

@manucircles, I didn't realize you were requesting to have this issue reopened until your most recent comment. Reopening now.

DemiMarie commented 1 year ago

This has been fixed, but you need to make sure you have updates-testing enabled.

manucircles commented 1 year ago

Thanks so much @DemiMarie and @andrewdavidwong. Is there any way to bring just this fix over rather than enabling updates-testing system wide on my production system? I see there was some discussion about this above however I am unsure of what exact command to run. Or perhaps I should just wait for it to be included in standard packages for dom0 on 4.2-rc1? Thanks in advance.

DemiMarie commented 1 year ago

@manucircles you need to enable updates-testing in the Arch VM, but it might not be possible to update it at this point due to not having been updated for too long. You might need to migrate your data to a new Arch VM.

manucircles commented 1 year ago

@DemiMarie I enabled testing and community-testing in /etc/pacman.conf - but I still get the same error

error: failed to prepare transaction (could not satisfy dependencies) :: installing python (3.11.5-1) breaks dependency 'python<3.11' required by qubes-db-vm :: installing python (3.11.5-1) breaks dependency 'python<3.11' required by qubes-vm-core


[testing] Include = /etc/pacman.d/mirrorlist

[core] Include = /etc/pacman.d/mirrorlist

[extra] Include = /etc/pacman.d/mirrorlist

[community-testing] Include = /etc/pacman.d/mirrorlist

[community] Include = /etc/pacman.d/mirrorlist

DemiMarie commented 1 year ago

@manucircles you will need to enable the Qubes OS repositories so that new qubes-db-vm and qubes-vm-core packages can be obtained. The servers for these are not part of /etc/pacman.d/mirrorlist, which is for Arch mirrors only.

manucircles commented 1 year ago

Ok thanks, what is the command to do that? I only see commands for debian and fedora on the qubes guide:

Fedora There are three Qubes VM testing repositories (where * denotes the Release):

qubes-vm--current-testing – testing packages that will eventually land in the stable (current) repository qubes-vm--security-testing – a subset of qubes-vm--current-testing that contains packages that qualify as security fixes qubes-vm--unstable – packages that are not intended to land in the stable (qubes-vm-*-current) repository; mostly experimental debugging packages To temporarily enable any of these repos, use the --enablerepo= option. Example commands:

sudo dnf upgrade --enablerepo=qubes-vm--current-testing sudo dnf upgrade --enablerepo=qubes-vm--security-testing sudo dnf upgrade --enablerepo=qubes-vm-*-unstable

DemiMarie commented 1 year ago

You’ll need to create the repository files manually with the correct URLs.

lubellier commented 1 year ago

@manucircles example for my 4.1 archLinux-template with the current (i.e. stable) repository,

[user@tpl-archlinux-41 ~]$ cat /etc/pacman.d/90-qubes-4.1-current.conf
[qubes-r4.1-current]
Server = https://archlinux.qubes-os.org/r4.1/current/vm/archlinux/pkgs

so with the 4.2 current-testing repository, for you it should be:

[user@<your 4.2 archlinux> ~]$ cat /etc/pacman.d/90-qubes-4.2-current-testing.conf
[qubes-r4.2-current-testing]
Server = https://archlinux.qubes-os.org/r4.2/current-testing/vm/archlinux/pkgs

Take care you'll get a lot of updates, do a backup clone of your VM before the update... ArchLinux is a rolling OS and you'll use a testing (unstable) QubesOS repository.

manucircles commented 1 year ago

Thanks very much @lubellier and @DemiMarie - it is very clear now.

I could not find E5001C1D49BE9129DEEC06284C6270146C463D90 to validate on any of the public key servers.

Also I get errors now - is this because I have not updated in months? I guess in that case if there is nothing that can be done I will have to rebuild the template from scratch. Thanks


:: Synchronizing package databases... qubes-r4.2-curre... 6.7 KiB 5.95 KiB/s 00:01 [######################] 100% testing is up to date core is up to date extra is up to date community-testing is up to date community is up to date multilib is up to date error: qubes-r4.2-current-testing: key "E5001C1D49BE9129DEEC06284C6270146C463D90" is unknown :: Import PGP key E5001C1D49BE9129DEEC06284C6270146C463D90? [Y/n] Y error: key "E5001C1D49BE9129DEEC06284C6270146C463D90" could not be looked up remotely error: failed to synchronize all databases (unexpected error) user@archlinux ~ $

DemiMarie commented 1 year ago

Thanks very much @lubellier and @DemiMarie - it is very clear now.

I could not find E5001C1D49BE9129DEEC06284C6270146C463D90 to validate on any of the public key servers.

Also I get errors now - is this because I have not updated in months? I guess in that case if there is nothing that can be done I will have to rebuild the template from scratch. Thanks

Possibly. Arch needs to be regularly updated or it stops working. It’s also only community supported.

I’m going to close this issue, since it’s fixed in the current code.

manucircles commented 1 year ago

Thanks for all the help. What is your standard practice on closing issues? Wouldn't it be better to close once the fix is merged to main from current-testing? Otherwise others will have the same problem?

marmarek commented 1 year ago

The fix is in the repo. Your template didn't have that repo configured, which I believe is also fixed already (with https://github.com/QubesOS/qubes-builder-archlinux/pull/68).

manucircles commented 1 year ago

Thanks very clear now.

Where can I get PGP key: E5001C1D49BE9129DEEC06284C6270146C463D90

I can't find it on the public keyservers and I cant see it in the qubes github repo.

andrewdavidwong commented 1 year ago

@manucircles: Please ask on the forum or qubes-users (for all questions, help, and support) or open a separate issue (if you believe that key being hard to find is a bug, and there isn't already an issue for it).

manucircles commented 1 year ago

@andrewdavidwong would the error below constitute a bug? Should it not automatically resolve the missing key as is the usual case with package managers?


error: qubes-r4.2-current-testing: key "E5001C1D49BE9129DEEC06284C6270146C463D90" is unknown :: Import PGP key E5001C1D49BE9129DEEC06284C6270146C463D90? [Y/n] Y error: key "E5001C1D49BE9129DEEC06284C6270146C463D90" could not be looked up remotely


If so I can log a bug, otherwise I will just follow up in the forum as you suggest? Thanks

marmarek commented 1 year ago

They key is in https://github.com/QubesOS/qubes-meta-packages/blob/main/repos/qubes-repo-archlinux-key.asc. The one for R4.1 packages is in release4.1 branch. Normally it is included in the built template (but before the PR linked above, it wasn't the case).

manucircles commented 1 year ago

BTW Everything updated nicely - I did not have to create a fresh arch vm and migrate. Thanks again everyone for the support.