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

Enable Qt6 when present #1011

Merged
merged 3 commits into from
Jan 29, 2023
Merged

Enable Qt6 when present #1011

merged 3 commits into from
Jan 29, 2023

Conversation

tuxmaster5000
Copy link
Contributor

@tuxmaster5000 tuxmaster5000 commented Dec 5, 2021

Thank you for contributing to the Bareos Project!

Please check

  • Short description and the purpose of this PR is present above this paragraph

If you have any questions or problems, please give a comment in the PR.

Helpful documentation and best practices

Checklist for the reviewer of the PR (will be processed by the Bareos team)

General
  • PR name is meaningful
  • Purpose of the PR is understood
  • Separate commit for this PR in the CHANGELOG.md, PR number referenced is same
  • Commit descriptions are understandable and well formatted
Source code quality
  • Source code changes are understandable
  • Variable and function names are meaningful
  • Code comments are correct (logically and spelling)
  • [ ] Required documentation changes are present and part of the PR
  • bareos-check-sources --since-merge does not report any problems
  • git status should not report modifications in the source tree after building and testing

@joergsteffens
Copy link
Member

Thank you for your contribution. On what platform have you tested it? Has it been required, e.g. is there already a platform which only includes qt6 and not qt5?

@tuxmaster5000
Copy link
Contributor Author

I have testes it on Fedora 34. If we drop the Qt4 support, then the CMake file can be much smarter. And so far I know, Qt4 is EOL since 2015.

@joergsteffens
Copy link
Member

We automatically build packages with your PR., see https://download.bareos.org/bareos/experimental/CD/PR-1011/ .
It build without problems on all distributions. However, it turns out that RHEL/CentOS 7 still builds again Qt4. And that our Fedora packages are build against Qt5 not Qt6, see:

./CentOS_7/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.el7.x86_64.rpm
libQtCore.so.4()(64bit)
libQtGui.so.4()(64bit)
./CentOS_8/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.el8.x86_64.rpm
./CentOS_8/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.el8.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.12)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./Fedora_34/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.fc34.x86_64.rpm
./Fedora_34/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.fc34.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.15)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./Fedora_35/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.fc35.x86_64.rpm
./Fedora_35/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.fc35.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.15)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./RHEL_7/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.el7_9.x86_64.rpm
libQtCore.so.4()(64bit)
libQtGui.so.4()(64bit)
./RHEL_8/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.el8.x86_64.rpm
./RHEL_8/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.el8.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.12)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./SLE_12_SP5/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
./SLE_12_SP5/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.6)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./SLE_15_SP2/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
./SLE_15_SP2/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.12)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./SLE_15_SP3/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
./SLE_15_SP3/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.12)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./openSUSE_Leap_15.2/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
./openSUSE_Leap_15.2/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.12)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)
./openSUSE_Leap_15.3/debug/x86_64/bareos-traymonitor-debuginfo-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
./openSUSE_Leap_15.3/x86_64/bareos-traymonitor-21.0.0~pre1076.f9a0e324d-2.x86_64.rpm
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.12)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit)
libQt5Widgets.so.5(Qt_5)(64bit)

This has several reason. First: the SPEC files require qt5:

%if 0%{?centos_version} > 700 || 0%{?rhel_version} > 700 || 0%{?fedora} >= 29
BuildRequires: qt5-qtbase-devel
%else
BuildRequires: qt-devel
%endif

When this is changed, our build environment might required changes too.
I've not checked the packages of the other platforms.

That brings us to the question about how to proceed. As qt is only required for the traymonitor and it is currently working, this only has a low priority. We'll not include this change before releasing Bareos 21 (which still should happen this year).

Do you want to continue on this? Next step should be adapting the SPEC file. For Debian it is debian/control and in our case also the debian/control.in

@tuxmaster5000
Copy link
Contributor Author

You must install the qt6 packages in your build root, which comes with fedota. I don't have an idea how you build the packages.
On my side I use my own spec file(to fix some security problems which exists under RHEL8 and newer in bareos) to build it via mock.

@joergsteffens
Copy link
Member

In this form, the PR is complete. Also we don't see an urge to build the bareos-traymonitor with qt6. We at least postpone it for after the release of bareos-21 (which should happen soon).

@joergsteffens
Copy link
Member

Updated to current master and modify Debian package specifications to use qt6, if available.

Copy link
Member

@joergsteffens joergsteffens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your PR. While we still not building against QT6, we are now at least be able to do so.

@joergsteffens joergsteffens merged commit 47d9cdb into bareos:master Jan 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants