How to reinstall "original" package version?

Hi, I’m increasingly confused about repo and update management.

So during the 3.4.0.24 update I got a warning about some packages not being the expected version. I know that I upgraded a bunch of packages with newer versions from OpenRepos, so I thought I might wanna go back to the “original” versions provided by Jolla. So I’ve disabled all OpenRepos:

# ssu lr
Enabled repositories (global): 
 - adaptation0    ... https://store-repository.jolla.com/releases/3.4.0.24/jolla-hw/adaptation-qualcomm-f5121/armv7hl/
 - adaptation1    ... https://store-repository.jolla.com/releases/3.4.0.24/jolla-hw/adaptation-qualcomm-f5121-dhd/armv7hl/
 - aliendalvik    ... https://store-repository.jolla.com/releases/3.4.0.24/aliendalvik/f5121/
 - apps           ... https://releases.jolla.com/jolla-apps/3.4.0.24/armv7hl/
 - customer-jolla ... https://releases.jolla.com/features/3.4.0.24/customers/jolla/armv7hl/
 - hotfixes       ... https://releases.jolla.com/releases/3.4.0.24/hotfixes/armv7hl/
 - jolla          ... https://releases.jolla.com/releases/3.4.0.24/jolla/armv7hl/
 - sailfish-eas   ... https://store-repository.jolla.com/features/3.4.0.24/sailfish-eas/armv7hl/
 - xt9            ... https://store-repository.jolla.com/features/3.4.0.24/xt9/armv7hl/

Enabled repositories (user): 
 - store ... https://store-repository.jolla.com/f5121/armv7hl/?version=3.4.0.24

Disabled repositories (global, might be overridden by user config): 

Disabled repositories (user): 
 - home                      ... https://download.jollamobile.com/home:/honeybadger/latest_armv7hl/
 - openrepos-wdehoog         ... https://sailfish.openrepos.net/wdehoog/personal/main
 - openrepos-llelectronics   ... https://sailfish.openrepos.net/llelectronics/personal/main
 - openrepos-planetos        ... https://sailfish.openrepos.net/planetos/personal/main
 - openrepos-Schturman       ... https://sailfish.openrepos.net/Schturman/personal/main
 - openrepos-osetr           ... https://sailfish.openrepos.net/osetr/personal/main
 - openrepos-thebootroo      ... https://sailfish.openrepos.net/thebootroo/personal/main
 - openrepos-lukedirtwalker  ... https://sailfish.openrepos.net/lukedirtwalker/personal/main
 - openrepos-birdzhang       ... https://sailfish.openrepos.net/birdzhang/personal/main
 - openrepos-direc85         ... https://sailfish.openrepos.net/direc85/personal/main
 - openrepos-slava           ... https://sailfish.openrepos.net/slava/personal/main
 - openrepos-Kormil          ... https://sailfish.openrepos.net/Kormil/personal/main
 - openrepos-rinigus         ... https://sailfish.openrepos.net/rinigus/personal/main
 - openrepos-martonmiklos    ... https://sailfish.openrepos.net/martonmiklos/personal/main
 - openrepos-ade             ... https://sailfish.openrepos.net/ade/personal/main
 - openrepos-lpr             ... https://sailfish.openrepos.net/lpr/personal/main
 - openrepos-kravich         ... https://sailfish.openrepos.net/kravich/personal/main
 - openrepos-flypig          ... https://sailfish.openrepos.net/flypig/personal/main
 - openrepos-Mister_Magister ... https://sailfish.openrepos.net/Mister_Magister/personal/main
 - openrepos-WerkWolf        ... https://sailfish.openrepos.net/WerkWolf/personal/main
 - openrepos-nodevel         ... https://sailfish.openrepos.net/nodevel/personal/main
 - openrepos-smurfy          ... https://sailfish.openrepos.net/smurfy/personal/main

But then when I try to reinstall e.g. pulseaudio, it can’t seem to find the original RPM:

[root@sailfishx ~]# zypper install -f pulseaudio
Loading repository data...
Reading installed packages...
Forcing installation of 'pulseaudio-11.1+git5.1-1.7.1.jolla.armv7hl' from repository 'jolla'.
Resolving package dependencies...

Problem: pulseaudio-module-keepalive-1.0.1-1.2.3.jolla.armv7hl requires libpulsecommon-12.2.so, but this requirement cannot be provided
  deleted providers: pulseaudio-12.2+git8-1.14.3.jolla.armv7hl
 Solution 1: Following actions will be done:
  deinstallation of pulseaudio-module-keepalive-1.0.1-1.2.3.jolla.armv7hl
  downgrade of pulseaudio-modules-droid-12.2.85-1.16.12.jolla.armv7hl to pulseaudio-modules-droid-11.1.76-1.10.3.jolla.armv7hl
  downgrade of pulseaudio-modules-droid-common-12.2.85-1.16.12.jolla.armv7hl to pulseaudio-modules-droid-common-11.1.76-1.10.3.jolla.armv7hl
  downgrade of pulseaudio-modules-droid-glue-12.2.4-1.6.9.jolla.armv7hl to pulseaudio-modules-droid-glue-11.1.3-1.5.5.jolla.armv7hl
  downgrade of pulseaudio-modules-nemo-common-12.2.30-1.9.6.jolla.armv7hl to pulseaudio-modules-nemo-common-11.1.25-1.5.7.jolla.armv7hl
  downgrade of pulseaudio-modules-nemo-mainvolume-12.2.30-1.9.6.jolla.armv7hl to pulseaudio-modules-nemo-mainvolume-11.1.25-1.5.7.jolla.armv7hl
  downgrade of pulseaudio-modules-nemo-parameters-12.2.30-1.9.6.jolla.armv7hl to pulseaudio-modules-nemo-parameters-11.1.25-1.5.7.jolla.armv7hl
  downgrade of pulseaudio-modules-nemo-stream-restore-12.2.30-1.9.6.jolla.armv7hl to pulseaudio-modules-nemo-stream-restore-11.1.25-1.5.7.jolla.armv7hl
  downgrade of pulseaudio-policy-enforcement-12.2.41-1.9.6.jolla.armv7hl to pulseaudio-policy-enforcement-11.1.38-1.6.4.jolla.armv7hl
  downgrade of libsndfile-1.0.28+git1-1.4.1.jolla.armv7hl to libsndfile-1.0.25-1.3.1.jolla.armv7hl
 Solution 2: do not install pulseaudio-11.1+git5.1-1.7.1.jolla.armv7hl
 Solution 3: break pulseaudio-module-keepalive-1.0.1-1.2.3.jolla.armv7hl by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c] (c): 1
Resolving dependencies...
Resolving package dependencies...

The following package is going to be REMOVED:
  pulseaudio-module-keepalive

The following 10 packages are going to be downgraded:
  libsndfile pulseaudio pulseaudio-modules-droid pulseaudio-modules-droid-common pulseaudio-modules-droid-glue pulseaudio-modules-nemo-common pulseaudio-modules-nemo-mainvolume pulseaudio-modules-nemo-parameters pulseaudio-modules-nemo-stream-restore
  pulseaudio-policy-enforcement

10 packages to downgrade, 1 to remove.
Overall download size: 1.8 MiB. Already cached: 0 B. After the operation, 582.9 KiB will be freed.
Continue? [y/n/...? shows all options] (y): y
Retrieving package libsndfile-1.0.25-1.3.1.jolla.armv7hl                                                                                                                                                                                   (1/10), 169.5 KiB (427.6 KiB unpacked)
Retrieving: libsndfile-1.0.25-1.3.1.jolla.armv7hl.rpm ................................................................................................................................................................................................................[not found]
File './core/armv7hl/libsndfile-1.0.25-1.3.1.jolla.armv7hl.rpm' not found on medium 'https://releases.jolla.com/releases/3.4.0.24/jolla/armv7hl/'
Abort, retry, ignore? [a/r/i/...? shows all options] (a):

What’s going on here? Am I picking up the wrong version for some reason or is the RPM really gone? Also the URL https://releases.jolla.com/releases/3.4.0.24/jolla/armv7hl/ gives me a “403 Forbidden”. Why can’t I simply browse the repos like in every other Linux distribution?

Try refreshing the repo cache with devel-su pkcon refresh

Try refreshing the repo cache with devel-su pkcon refresh

Sorry, forgot to mention, of course I’ve done that multiple times already.

The commands

devel-su
pkcon refresh
version --dup

should reinstall all default system packages.

As much I as agree to this statement and would like this to happen!

Your solution would be (besides what
Alex said) would be:

zypper install -f pulseaudio-modules-keepalive pulseaudio

As keepalive module is a different package and it seems dependencies are not really obeyed using -f? As keepalive should get deinstalled during ‘removal’ of pulseaudio? But as it gets forced to overwrite…

Same will be valid for the other modules. So maybe Alex’ way is easier to follow.

Please browse repo like you browse repo: https://releases.jolla.com/releases/3.4.0.24/jolla/armv7hl/repodata/repomd.xml not like you browse random file share

would be (you may need to list all additional package names here):
zypper in -f --repo jolla pulseaudio

4 Likes

Thanks for the hints everyone, you got me looking in the right direction.

So I took a look at https://releases.jolla.com/releases/3.4.0.24/jolla/armv7hl/repodata/filelists.xml.gz, and that revealed that my zypper was working with old repo metadata, despite running pkcon refresh and ssu update multiple times. It appears that these programs all use their own separate metadata caches, so after a zypper refresh I got plausible results.

Now that looks to me like the sailfish system update GUI was also working with outdated metadata, and that’s why it was warning me about uninstalling (or rather downgrading) pulseaudio and other packages. Unfortunately I have ignored the warning and gone ahead with the system update, so now I can’t verify that the zypper refresh would have removed that spurious update warning. Maybe someone else can try? Or maybe someone knows how these pre-update sanity checks are implemented and whether they use the zypper frontend or something else?

pkcon, zypper and dist-upgrade have independent caches.
you can find it inside /home directory

it’s safe to remove these folders contents