Open safrye opened 8 months ago
Hi,
Sorry to hear you're having problems.
I'd be surprised if the package manager didn't understand 5.15.11 > 5.9.5 when it comes to version numbers.
I'm wondering if the issue is case sensitivity of package names (per https://unix.stackexchange.com/questions/192859/why-are-there-capital-letters-in-opensuse-packages).
I'll see if we can try specifying libQt5Core5
instead of libqt5core5
for our RPM dependency.
That's more a question for the SuSE folks. I know in RPM there's also something like an epoch. It precedes the version. If the epoch on the lower version number is higher, it will still sort above the higher version number. I'm not familiar enough (anymore) with the SuSE tools for querying the package database to give more advice.
I'd go for option 2 to see if Brewtarget just finds the lib it needs. If not you need to hunt down what package exactly provides libqt5core5
. It's also worth filing a bug against the package and call in the help of the maintainer.
I'd go for option 2 to see if Brewtarget just finds the lib it needs. If not you need to hunt down what package exactly provides
libqt5core5
. It's also worth filing a bug against the package and call in the help of the maintainer.
I tried option 2, broke the requirement and ignored the signature verification failure.
Problem: nothing provides 'libqt5core5 >= 5.9.5' needed by the to be installed brewtarget-3.0.9-1.x86_64
Solution 1: do not install brewtarget-3.0.9-1.x86_64
Solution 2: break brewtarget-3.0.9-1.x86_64 by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/c/d/?] (c): 2
Resolving dependencies...
Resolving package dependencies...
The following NEW package is going to be installed:
brewtarget
1 new package to install.
Overall download size: 5,6 MiB. Already cached: 0 B. After the operation, additional 12,0 MiB will be used.
Continue? [y/n/v/...? shows all options] (y):
Retrieving: brewtarget-3.0.9-1.x86_64 (Plain RPM files cache) (1/1), 5,6 MiB
brewtarget-3.0.9-2.x86_64.rpm:
Package header is not signed!
brewtarget-3.0.9-1.x86_64 (Plain RPM files cache): Signature verification failed [6-File is unsigned]
Abort, retry, ignore? [a/r/i] (a): i
Checking for file conflicts: .............................................................................[done]
(1/1) Installing: brewtarget-3.0.9-1.x86_64 ..............................................................[done]
Running post-transaction scripts .........................................................................[done]
I can start Brewtarget and the GUI pops up with the question about adding recipes to the database but after clicking yes or no the program crashes with the following error message.
[13:34:04.926] (1dv6pbxuww) ERROR : void ObjectStore::impl::wrapAndUnmapAsNeeded(const ObjectStore::TableDefinition&, const ObjectStore::TableField&, QVariant&) Unexpected type # 10 = QString in QVariant for property forcedCarbonation , field type FieldType # 0 : ( "ObjectStore::FieldType::Bool" ) , value QVariant(QString, "false") , table recipe , column forced_carb [database/ObjectStore.cpp:697]
[13:34:04.928] (1dv6pbxuww) ERROR : void ObjectStore::impl::wrapAndUnmapAsNeeded(const ObjectStore::TableDefinition&, const ObjectStore::TableField&, QVariant&) Call stack is:
Stacktrace:
0# Logging::getStackTrace() in brewtarget
1# ObjectStore::impl::wrapAndUnmapAsNeeded(ObjectStore::TableDefinition const&, ObjectStore::TableField const&, QVariant&) in brewtarget
2# ObjectStore::loadAll(Database*) in brewtarget
3# __pthread_once_slow in /lib64/libc.so.6
4# ObjectStoreTyped<Recipe>::getInstance() in brewtarget
5# BtTreeModel::BtTreeModel(BtTreeView*, BtTreeModel::TypeMasks) in brewtarget
6# BtTreeView::BtTreeView(QWidget*, BtTreeModel::TypeMasks) in brewtarget
7# RecipeTreeView::RecipeTreeView(QWidget*) in brewtarget
8# Ui_mainWindow::setupUi(QMainWindow*) in brewtarget
9# MainWindow::MainWindow(QWidget*) in brewtarget
10# 0x0000560CD24D2FA2 in brewtarget
11# __pthread_once_slow in /lib64/libc.so.6
12# MainWindow::instance() in brewtarget
13# Application::run() in brewtarget
14# main in brewtarget
15# __libc_start_call_main in /lib64/libc.so.6
16# __libc_start_main@@GLIBC_2.34 in /lib64/libc.so.6
17# _start in brewtarget
[database/ObjectStore.cpp:702]
[13:34:04.928] (1dv6pbxuww) ERROR : ASSERT: "false" in file ../src/database/ObjectStore.cpp, line 704 [database/ObjectStore.cpp:704]
[1] 6970 IOT instruction (core dumped) brewtarget
I don't know if this error is related to libqt5core5. Any ideas?
The good news is that the crash is nothing to do with libqt5core5. It's just some mildly problematic data in the database. You can either fix the data in the DB (quick if you know what you are doing with SQL) or I can extend the list of "safe to ignore database problems" that the software knows about.
When the program reads in data from the database, it sanity checks that the data types of the fields its reading in are as expected (eg we didn't try to store a string in a numeric field). If you have a Brewtarget database from an older version of the software, it may have a few instances where fields are not as they should be because we were less strict about things in the past. Where the "not strictly correct" field type is harmless then we've added it to a "known problems that it is safe to ignore" list.
In this particular instance, the error message is saying that the forced_carb
boolean column of the recipe
table it tried to read in from the database holds a string instead of an integer. We can add this to the exceptions list so that the code will interpret "true" and "false" strings from the column instead of the 1 and 0 values it is expecting.
I will make the change, but I won't be able to get to it for about ten days as I'm on a trip.
It worked.
I opened the database.sqlite
file with sqlitebrowser and edited in the table recipe
the forced_carb
values which had the value false
to 0.
The recipes that had the false
value were quite old, from 2013. But this changes were not enough. Brewtarget complained about table instruction , column hasTimer
and table instruction , column completed
having false
values. So after changing some 50 values to 0
the database was finally accepted by the new version of Brewtarget.
I is probably a good idea to let Brewtarget ignore these kind of problems or automatically transpose false
to 0
.
Thanks for the help.
Glad you got it working. Sorry it took so many edits. It's a fair point that the software should do more of this for you. Probably the right thing is to change the error to a warning log. I think I was overly-optimistic in expecting to be able to say "It's only columns X, Y and Z on tables P, Q and R that are known problems and we can treat any other occurrences as hard errors"!
No problem. I appreciate the help and many thanks for keeping my favourite brewing software free and alive.
Hi, I tried to install the RPM-version 3.0.9 on Opensuse Tumbleweed but get the error:
Problem: nothing provides 'libqt5core5 >= 5.9.5' needed by the to be installed brewtarget-3.0.9-1.x86_64 Solution 1: do not install brewtarget-3.0.9-1.x86_64 Solution 2: break brewtarget-3.0.9-1.x86_64 by ignoring some of its dependencies
I have libQt5Core5 installed.i+ | libQt5Core5 | package | 5.15.11+kde138-2.1 | x86_64 | openSUSE:Tumbleweed
May it be that the version check does only see "5.1" instead of "5.15"? I remember having a similar problem with another program. Cheers, sAf