I don’t know if any of the following is of use but the libyaml-cpp package is a little unusual in its installed/not installed nature.
Also of note, is it seems to have been installed during the version --dup from 4.2 to 4.3.
Yet it was built April 2019. So a newly installed package for me perhaps? But not a new package?
Also, couldn’t say for sure if it is installed or not installed?
[root@Sailfish nemo]# rpm -q libyaml-cpp*
package libyaml-cpp* is not installed
[root@Sailfish nemo]# rpm -q libyaml-cpp
package libyaml-cpp is not installed
[root@Sailfish nemo]# rpm --query --info libyaml-cpp
package libyaml-cpp is not installed
[root@Sailfish nemo]# rpm --query --info libyaml-cpp0_6-0.6.2+master.20
181213083542.4d61e32-1.3.3.jolla.armv7hl
Name : libyaml-cpp0_6
Version : 0.6.2+master.20181213083542.4d61e32
Release : 1.3.3.jolla
Architecture: armv7hl
Install Date: Thu 04 Nov 2021 07:05:34 AEDT
Group : Development/Libraries/C and C++
Size : 343913
License : MIT
Signature : (none)
Source RPM : yaml-cpp-0.6.2+master.20181213083542.4d61e32-1.3.3.jolla.src.rpm
Build Date : Wed 03 Apr 2019 01:08:10 AEDT
Build Host : phost5
Vendor : meego
URL : GitHub - jbeder/yaml-cpp: A YAML parser and emitter in C++
Summary : YAML parser and emitter in C++
Description :
A YAML parser and emitter in C++ matching the YAML 1.2 spec.
[root@Sailfish nemo]# rpm -Kv libyaml-cpp0_6-0.6.2+master.2018121308354
2.4d61e32-1.3.3.jolla.armv7hl
error: libyaml-cpp0_6-0.6.2+master.20181213083542.4d61e32-1.3.3.jolla.armv7hl: open failed: No such file or directory
[root@Sailfish nemo]# repoquery --plugins -i libyaml-cpp0_6-0.6.2+maste
r.20181213083542.4d61e32-1.3.3.jolla.armv7hl
bash: repoquery: not found
[root@Sailfish nemo]# zypper info libyaml-cpp0_6-0.6.2+master.201812130
83542.4d61e32-1.3.3.jolla.armv7hl
Loading repository data…
Reading installed packages…
package ‘libyaml-cpp0_6-0.6.2+master.20181213083542.4d61e32-1.3.3.jolla.armv7hl’ not found.
Yes! Looks like.
openrepos-birdzhang provides this package.
And it is interpreted as higher version by pkcon/zipper.
0_6-0.6.2 > -0.6.3
So question now:
iirc (I did not update for long time! ) Jolla implemented a deactivation of all open repos repositories before upgrading some releases ago? Or is this not true? And one still needs to deactivate all open repos stuff before starting the upgrade?
Oh dear - all this fuss, and I could have saved it all by disabling openrepos. I should have known to do that. I feel like a have wasted a lot of peoples time from a lazy moment. Sorry all.
Yes, I have openrepos-birdzhang active.
[root@Sailfish nemo]# zypper se yaml-cpp
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
--+----------------------+---------------------------------+-----------
i | libyaml-cpp0_6 | YAML parser and emitter in C++ | package
| yaml-cpp | A YAML parser and emitter for-> | package
| yaml-cpp | A YAML parser and emitter for-> | srcpackage
| yaml-cpp-debuginfo | Debug information for package-> | package
| yaml-cpp-debugsource | Debug sources for package yam-> | package
| yaml-cpp-devel | Development files for yaml-cpp | package
I did a version --dup. This probably worked around Jolla’s disabling of certain repos. Having said that, I think the package has been on openrepos for 2+ years. I have certainly done version --dup for other upgrades in that time period, and it has never been installed in the past? Something different recently?
It’s possible others have a different issue, but @N-Mi has a very similar sounding issue, but used sfos-upgrade rather than version --dup. @olf’s Sfos-upgrade explicitly says it disables openrepos?
Is the fix for me straightforward?
zypper in yaml-cpp -libyaml-cpp0_6-0.6.2+master.20181213083542
.4d61e32-1.3.3.jolla.armv7hl
zypper update libzypp
This seems to have done the trick.
I have just run sfos-upgrade --verify to check the installlation and that seems to have suggested everything is in order now.
Pkcon is currently refreshing and working without complaint.
Things are looking good.
Thanks so much.
Been there (sfos 2–>3 and definitely having all openrepos disabled! - always!), took me 2/3 days or even more, resolved it on my own, even having asked at zendesk did not bring any help…
Can you provide a source for this statement other than the release notes for SailfishOS 1.0.4 (discussed below)?
IMO this is “not true”.
What Jolla added to the GUI updater of SailfishOS 3.4.0, is listing all installed RPMs which have replaced “system RPMs” (i.e., ones from Jolla’s repositories) and recommending to uninstall them before upgrading. But that detection seems to be faulty, sometimes reporting many of Jolla’s own RPMs (i.e., “false positives”). In case of libyaml-cpp0_6-0.6.2 (from openrepos-birdzhang), I suppose that people did not pay attention (or that this detection mechanism also yields “false negatives”, sometimes).
Note that beyond the functionality documented by Jolla, this mechanism also apparently disables (≠ “delete”) the repositories, which provide the detected “system-RPM replacing RPMs”; at least this is what I observed when upgrading from SailfishOS 3.4.0 to 4.0.1.
Furthermore, I believe to have read that Jolla implemented a “repository separation mechanism”, which was “enhanced” in some later SailfishOS release. But I have never seen the exact functionality described and fail to find the remark about the “enhancement” (but IIRC it did not state anything specific). Maybe this just addressed what has been introduced in SailfishOS 1.0.4 and the “enhancement” meant the aforementioned new functionality of the GUI updater of SailfishOS 3.4.0.
The statement from the release notes for SailfishOS 1.0.4 is, “We have implemented disabling of additional repositories before system updates with this release.”, but we all know and regularly see that this is not at all true / working this way: All “additional repositories” are enabled during an SailfishOS update, because their RPMs are also updated by a SailfishOS upgrade and before SailfishOS 3.4.0 “system-RPM replacing RPMs” were pulled in from “additional repositories”, if they carry higher version numbers that the ones provided by Jolla.
And one still needs to deactivate all open repos stuff before starting the upgrade?
Short answer: IMO “No” with any SailfishOS ≥ 1.0.4, if one strictly keeps repositories disabled which contain “system-RPM replacing RPMs” among other RPMs (e.g., openrepos-birdzhang, openrepos-nieldk, openrepos-lachs0r).
Repositories which deliberately and explicitly (i.e., its maintainer knows what he is doing and documented that) contain solely “system-RPM replacing RPMs” are O.K. (e.g., openrepos-obexdcontentfilterolf).
No, Jolla has not implemented any deactivation of Open Repos repositories (afaicr). There is just the utility that attempts to find potentially conflicting packages, list them and recommend removing them. And then the release notes have the recommendation to manually disable O.R. repositories. It is difficult to say if the latter is required (anymore) as it depends on what each user has installed on his/her device. Most of the O.R. repositories and packages are ok. The recommendation is a precaution to prevent inexperienced users from running into trouble with the OS updates.
Maybe that missing statement is what confuses me.
I know that was in earlier release notes but I fail to find it in this one. (or am I just blind?)
There are some remarks about apps from openrepos but nothing about disabling repositories (which ofc is obvious, to me and more experienced user, but…).
Upgrade via “system settings” from 4.2 went ok (Xperia X) but after reboot the phone keep rebooting AFTER reaching the GUI.
I had the time to enter the PIN, the SIMcard PIN - but before I manage to launch anything there’s a short freeze then reboot.
Then:
Reflashed to 4.2 , restore from backup, upgrade in terminal (version – dup) => same result
Reflashed to 4.2 , restore from backup, upgrade in GUI => same result
Is there any way to enable persistent and verbose logging to see what is causing the reboot ( I’d configure that while still in 4.2 then upgrade and retrieve the logs in Recovery mode)
There actually is a mechanism in the update UI and the upgrade boot thing that temporarily disables any non-system repo for the upgrade, then re-enables them when done. As far as I know this mechanism is still working correctly. If you’ve only ever updated with the UI, then you shouldn’t see any other packages downloaded to the special upgrade zypp cache at /home/.pk-zypp-dist-upgrade-cache. Directories for other repos might be present in there if you’ve used version --dup before though, because that doesn’t disable anything.
My guess would be that the people encountering this problem already had the other yaml-cpp installed, or ran version --dup which pulled it in instead of the system version. Hopefully now that package is gone no-one else will run into this. Thank you all for detecting and investigating this in EA, as it would have been much harder for regular users to recover from it.