Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nothing provides 'libqt5core5 >= 5.9.5' #777

Open
safrye opened this issue Nov 6, 2023 · 7 comments
Open

nothing provides 'libqt5core5 >= 5.9.5' #777

safrye opened this issue Nov 6, 2023 · 7 comments

Comments

@safrye
Copy link

safrye commented Nov 6, 2023

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

@matty0ung
Copy link
Contributor

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.

@penguinpee
Copy link
Contributor

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.

@safrye
Copy link
Author

safrye commented Nov 12, 2023

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?

@matty0ung
Copy link
Contributor

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.

@safrye
Copy link
Author

safrye commented Nov 17, 2023

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.

@matty0ung
Copy link
Contributor

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"!

@safrye
Copy link
Author

safrye commented Nov 18, 2023

No problem.
I appreciate the help and many thanks for keeping my favourite brewing software free and alive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants