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

Usage of private Qt class QZipWriter #3723

Closed
cgzones opened this issue Aug 28, 2021 · 3 comments · Fixed by #4768
Closed

Usage of private Qt class QZipWriter #3723

cgzones opened this issue Aug 28, 2021 · 3 comments · Fixed by #4768
Assignees
Labels
confirmed bug approved by the team feature-request new feature

Comments

@cgzones
Copy link
Contributor

cgzones commented Aug 28, 2021

How to use GitHub

  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

The GUI uses the private Qt class QZipWriter, which also has no stability guarantee.

On Debian the Qt5::GuiPrivate library has no CMake configure script and thus the affected code is removed.

Are there any plans to implement the functionality via public interfaces or is there hope to get these interfaces stable?

@cgzones cgzones added the bug label Aug 28, 2021
@mgallien
Copy link
Collaborator

On Debian Qt5Gui Private component is provided by package qtbase5-private-dev
you can see when adding find_package(Qt5Gui REQUIRED COMPONENTS Private) within a cmake project.

For simplicity the Debian packagers choose to build the desktop client with usage of private APIs to avoid the need to rebuild the desktop client when they update Qt. That is their choice.

Using another method to write zip would be nice but that is definitely a feature request and priority for it is low.

Would like to try maybe using KDE Frameworks 5 Archive library ?

@mgallien mgallien added confirmed bug approved by the team feature-request new feature and removed bug labels Aug 31, 2021
@hefee
Copy link
Contributor

hefee commented Sep 12, 2021

On Debian Qt5Gui Private component is provided by package qtbase5-private-dev
you can see when adding find_package(Qt5Gui REQUIRED COMPONENTS Private) within a cmake project.

For simplicity the Debian packagers choose to build the desktop client with usage of private APIs to avoid the need to rebuild the desktop client when they update Qt. That is their choice.

With a not stable ABI the things in the Private part may change very rapidly. This is the reason, why Debian created this package. As for every minor update all packages, depending on that package needs to get recompiled. The other reason is to make sure, that project do not rely on something, that is not stable. There are only a few valid use cases, when this private API should be used.

Using another method to write zip would be nice but that is definitely a feature request and priority for it is low.

Would like to try maybe using KDE Frameworks 5 Archive library ?

That would be a great alternative.

@mgallien
Copy link
Collaborator

On Debian Qt5Gui Private component is provided by package qtbase5-private-dev
you can see when adding find_package(Qt5Gui REQUIRED COMPONENTS Private) within a cmake project.
For simplicity the Debian packagers choose to build the desktop client with usage of private APIs to avoid the need to rebuild the desktop client when they update Qt. That is their choice.

With a not stable ABI the things in the Private part may change very rapidly. This is the reason, why Debian created this package. As for every minor update all packages, depending on that package needs to get recompiled. The other reason is to make sure, that project do not rely on something, that is not stable. There are only a few valid use cases, when this private API should be used.

I am sorry for my usage of the word simplicity
I wanted to express that not using private APIs in the Debian package means that work is simpler because we are not tied to a specific Qt ABI (as you said no rebuild, ....)

I have no idea when we could switch to a proper public API for that. sorry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
confirmed bug approved by the team feature-request new feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants