Closed jnweiger closed 7 years ago
@SamuAlfageme Can you please design a test suite to demonstrate that qt-5.6.2 is a good choice? We have identified several issues with qt-5.1.1 and older versions (including qt4). E.g. https://github.com/owncloud/client/issues/2558 has a good overview.
@guruz https://github.com/owncloud/client/issues/3449 mentions patches. Are these obsolete with 5.6.2?
@jnweiger Yes, no patches needed
Please also remember to take on board this comment: https://github.com/owncloud/client/issues/2558#issuecomment-75262413
Or shall I open another issue for it?
What's the status on this? People in https://github.com/owncloud/client/issues/4828 are waiting for it..
We have set up a devel project in obs for providing Qt-5.6.2 packages for the Linux platforms. https://build.opensuse.org/package/show/isv:ownCloud:devel:Qt562
The plan is:
Qt-5.6.2 libraries will not be ready for all Linux platforms for 2.3.0 The packaging roadmap for the 2.3.0 release now looks like this:
@dschmidt @guruz @michaelstingl please check this covers what we agreed. @crrodriguez @SamuAlfageme fyi.
test the 2.3.0 setup in the testing project using the Qt4/Qt5 packages from the distributions.
So, in summary Qt4 support is not being dropped, before 2.3.1.
Do you have a list of which distributions have issues with Qt 5.x packages and therefore need a Qt 4.x build of the client? I'm also interested in what is exactly the Qt 4.x version there.
@SamuAlfageme We have an original 2.2.4 build unchanged from release time in https://software.opensuse.org/download.html?project=isv%3AownCloud%3Acommunity%3Atesting&package=testpilotcloud-client -- I've disabled rebuilds there for now, so that we don't lose this as a reference. Copying to https://software.opensuse.org/download.html?project=isv%3AownCloud%3Acommunity%3Atesting%3Atestpilotcloud-client-2.2.4-20160927&package=testpilotcloud-client for persistent reference.
@jnweiger current testpilot also works as a more updated reference for the comparison.
The most notable changes between that repository and the current (If we limit to main client package dependencies; e.g. for Ubuntu 14.04)...
Package:
< testpilotcloud-client
> owncloud-client
Version:
< 2.2.4-1.2
> 2.2.4-9.1
Installed-Size:
< 2241
> 2538
Depends: libc6 (>= 2.14), libgcc1 (>= 1:3.0),
< libqt5core5a (>= 5.5.0),
> libowncloudsync0 (= 2.2.4-9.1), libqt5core5a (>= 5.6.0~beta),
libqt5dbus5 (>= 5.0.2), libqt5gui5 (>= 5.0.2) | libqt5gui5-gles (>= 5.0.2), libqt5keychain1, libqt5network5 (>= 5.0.2),
< libqt5webkit5 (>= 5.0.2),
> libqt5webkit5 (>= 5.6.0~rc),
libqt5widgets5 (>= 5.2.0), libqt5xml5 (>= 5.0.2), libssl1.0.0 (>= 1.0.0), libstdc++6 (>= 5.2),
< libtestpilotcloudsync0 (= 2.2.4-1.2), testpilotcloud-client-l10n,
> owncloud-client-l10n,
libqt4-sql-sqlite | libqt5sql5-sqlite
Filename:
< ./amd64/testpilotcloud-client_2.2.4-1.2_amd64.deb
> ./amd64/owncloud-client_2.2.4-9.1_amd64.deb
Size:
< 763094
> 977198
... would be the version of qt core (which switched to v5.6.0~beta) and webkit libraries. I'll peek some more into changes for those repositories and keep posting here.
So, ran the scripts (plus the https://github.com/lvc/pkgdiff utility) and main differences reported between our two references still (as in my previous https://github.com/owncloud/client/issues/5470#issuecomment-276320318) reside in the DEB packages (both Ubuntu and Debian packages) they also were the main source of the problems reported with the tray icons. On rpms I'm seeing they uniformly use qtbase5.4.2
.
Qt-5.6.2 for Debian-7.0 (or Ubuntu-12.04) has a number of missing dependencies that are present on Debian_8.0 and all Ubuntu's 14.04 and up :
nothing provides libgstreamer-plugins-base1.0-dev, nothing provides libgstreamer1.0-dev, nothing provides libxcb-sync-dev, nothing provides libxcb-xkb-dev, nothing provides libxkbcommon-dev, nothing provides libxkbcommon-x11-dev, nothing provides qttools5-dev-tools, nothing provides libqt5sql5-sqlite
:roll_eyes: new OBS wishlist item https://packages.debian.org/source/wheezy-backports/gstreamer1.0
(wheezy has instead: libgstreamer0.10-0.deb libgstreamer-plugins-base0.10-dev.deb libxcb-sync0.deb libxcb-keysyms1.deb )
Rollbacks done:
fyi @guruz @michaelstingl (prepare a re-release announcement?)
prepare a re-release announcement?
@jnweiger what do you mean?
@jnweiger xkbcommon is not available on CentOS either, but Qt also bundles it, we can simply take that - or any reason not to? Not sure about xcb, but it might be bundled as well Maybe check upstream backport patches how they resolve it?
FYI: Fedora and openSUSE builds are good to be tested, I'm currently working on CentOS 6 and 7 support
CentOS 7 package is ready, CentOS 6 has all dependencies ready but we currently can't build the client on that platform because the client uses C++ features (in the Qt5 build at least) that the ancient GCC 4.4 on CentOS 6 can't compile. We need to discuss and figure out what to do here...
@jnweiger what a variety of versions! Reports of installations of .deb
packages now show this data, I don't really if everything is as expected:
libqtcore4 amd64 4.8.5
libqt5core5a:amd64 5.5.1
libqtcore4 amd64 4.8.7
As for the rpm
's the panorama is this: (cc/ @dschmidt)
opt-qt5-qtbase.x86_64 0:5.4.2
libQt5Core5-5.6.1
qt5-qtbase.x86_64 5.7.1
@SamuAlfageme Having old stuff with 16.10 and newer stuff with 16.04 is also what I found confusing in https://github.com/owncloud/enterprise/issues/1634.
[x] collect all needed packages there collected in https://build.opensuse.org/project/show/isv:ownCloud:devel:Qt562
Also linkpack'ed into internal build service: https://obs.int.owncloud.com/project/show/devel:Qt562 CAUTION: prjconf must be manually propagated into internal OBS upon every change. No linking possible.
Both, RPM and DEB packages are built with variables defined in prjconf:
%define _oc_pkg_name_client owncloud-client %define _oc_client_executable owncloud %define _oc_pkg_prefix oc %define _oc_vendordir ownCloud %define _oc_rootdir Qt-5.6.2 %define _oc_prefix /opt/ownCloud/Qt-5.6.2
For DEB packages the variables are substituted into .control .dsc *.rules files manually by running make before checkin.
For RPM the variables autoexpand during the build process, but now the dependency resolution became unreliable. See https://github.com/openSUSE/open-build-service/issues/2665 -- we can workaround with frequent manual
osc rebuildpac --all
Status update. @SamuAlfageme @dschmidt please correct me if I am wrong.
@jnweiger AFAICT owncloud-client for CentOS is ready to test too, there were just issues with build service mirrors today. Downloading manually and doing yum localinstall
just worked. Keyboard and network issues seem fixed now.
@jnweiger @dschmidt @SamuAlfageme Awesome work? Do we already have something to test for the testpilots community?
@michaelstingl https://software.opensuse.org/download.html?project=isv%3AownCloud%3Adevel%3AQt562&package=owncloud-client offers CentOS, Fedora, and openSUSE builds of owncloud-client 2.3.0~beta1 with our new Qt-5.6.2 libraries.
@michaelstingl @dschmidt @jnweiger you can check the result of those installations in this pipeline, including installation sizes, etc. I can easily extend them to include Fedora 24, Centos 6 and OpenSUSE 42.1/13.2 if it's relevant for this too.
To keep everyone up to date:
@jnweiger did a great job of making qt5-qtbase
for DEB based distributions compile. It apparently still has issues, but at least it builds, which is great progress. I'm picking up his work from there now.
Hopefully I can leverage most of the work he did so far for the other packages.
I have qttools
and qtkeychain
building locally, unfortunately the OBS somehow seems to behave a little differently and the builds fail in the verification step. Should be minor issues only - but nothing for tonight anymore.
qt5-webkit
is almost building locally, again verification fails. This is hopefully the last package missing for being able to build the client itself. (When commenting out the webkit depedency there, the build starts).
One issue that I don't understand yet, is an unresolvable dependency on qtchooser
on everything but Ubuntu 16.10. Haven't spent much time on that yet though.
So overall there is quite a bit todo still, but we're making good progress. I'm in a constant feedback loop with @jnweiger, if anyone else can/wants to help out with anything, let me know. Everything I've done I have commited to the OBS. I'm hoping I will get to fixing a few more issues during the weekend.
We have working Qt packages on Ubuntu 16.10 64bit now, minor issues on other Ubuntu/Debian flavors still. The actual client package needs some work still because we need to build Dolphin overlays with system Qt.
First build success for Ubuntu and Debian: all flavours have built an onwcloud-client package for the first time. (I am not yet claming that they are all installable or even work) @SamuAlfageme do you want to try some of them?
I am installing owncloud-client-2.3.0~beta1 from the Qt562 project for Ubuntu-14.04 like this:
cat /etc/apt/sources.list.d/owncloud-client.list deb http://download.opensuse.org/repositories/isv:/ownCloud:/devel:/Qt562/xUbuntu_14.04/ / sudo apt-get install owncloud-client The following extra packages will be installed: libowncloudsync0 libxcb-xinerama0 oc-libqt5core5a oc-libqt5dbus5 oc-libqt5gui5 oc-libqt5keychain1 oc-libqt5network5 oc-libqt5opengl5 oc-libqt5printsupport5 oc-libqt5sql5 oc-libqt5webkit5 oc-libqt5widgets5 oc-libqt5xml5 owncloud-client-l10n Suggested packages: oc-libqt5libqgtk2 qt5-image-formats-plugins qtwayland5 Recommended packages: qttranslations5-l10n oc-libqt5svg5 oc-libqt5sql5-sqlite oc-libqt5sql5-mysql oc-libqt5sql5-odbc oc-libqt5sql5-psql The following NEW packages will be installed: libowncloudsync0 libxcb-xinerama0 oc-libqt5core5a oc-libqt5dbus5 oc-libqt5gui5 oc-libqt5keychain1 oc-libqt5network5 oc-libqt5opengl5 oc-libqt5printsupport5 oc-libqt5sql5 oc-libqt5webkit5 oc-libqt5widgets5 oc-libqt5xml5 owncloud-client owncloud-client-l10n 0 upgraded, 15 newly installed, 0 to remove and 230 not upgraded. ...
Notice all the oc-* packages for Qt, this is our rebuild of qt-5.6.2 that installs into /opt -- just lovely. Currently this client does not install into the usual /usr/bin/owncloud location, instead, you have to call it as
/opt/ownCloud/Qt-5.6.2/bin/owncloud
It starts up fine and does some syncing already. the 'general' tab shows that we use QT-5.6.2 and bandwidth limiting is enabled in the 'network' tab. The tray icon is where it ought to be.
Great progress. Thank you @dschmidt for making this happen!
Actually /usr/bin/owncloud
and /usr/bin/owncloudcmd
should be available too. c.f. https://build.opensuse.org/package/view_file/isv:ownCloud:devel:Qt562/owncloud-client/debian.owncloud-client.install?expand=1
Also if your Ubuntu is not as ancient as @jnweiger 's ;-), you should be able to install the dolphin overlay too. Unfortunately we can't build it on Ubuntu 14.04 or any stable Debian release.
What worries me a little: qt5-image-formats-plugins qtwayland5 qttranslations5-l10n
lack our prefix. Even if they are only suggested/recommended, we should investigate, why they are referenced at all.
@jnweiger @dschmidt Awesome 🎉 I'll get get started today to run the sanity checks for Ubuntu to see how that goes!
I'm getting unmet deps. for all the 3 Ubuntu versions with apt
:
The following packages have unmet dependencies:
owncloud-client : Depends: libowncloudsync0 (= 2.3.0~beta1-1.2) but it is not going to be installed
Depends: owncloud-client-l10n but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Something changed since last night?
I have commited a few (possible) fixes to the OBS, let's see :-) Looking into it, I wonder why it worked for @jnweiger in the first place.
@dschmidt @SamuAlfageme Wanna post on https://central.owncloud.org/ and ask people to test the 2.3.0 client packages with 5.6.2 bundles?
@guruz we could publish them as testpilotcloud to avoid interfering with current setups as @jnweiger suggested in https://github.com/owncloud/client/issues/5470#issuecomment-275680311. Also note that in the Qt562
repository we currently have 2.3.0beta1
Today I fixed some more minor issues with the debian packages, updated the tarball to current 2.3 branch (fixing #5610) and added -dbg
packages.
I chose the legacy -dbg
format (instead of -dbgsym
) as it's completely compatible between Debian and Ubuntu and also is fully supported by the OBS. If we wanted to use -dbgsym
-.ddeb
Files we probably would need changes in OBS to get them published.
Today also most of the libraries succeeded for RHEL-7 https://build.opensuse.org/project/monitor/isv:ownCloud:devel:Qt562:rhel7-extra This is still in a separate project, but should be simple to merge.
we could publish them as testpilotcloud to avoid interfering with current setups
I think changing the Linux nightlies would be a way to go. People who use nightlies can also handle this Qt change.
:+1: power to the people! :+1:
Pushing my RHEL7 libraries from rhel7-extra into the main devel:Qt562
[ 3s] ++ ./test-c++11 [ 3s] + '[' 'Hello World' = 'Hello World' ']' [ 3s] + echo 'SUCCESS!' [ 3s] SUCCESS! [ 3s] + exit 0
@guruz @SamuAlfageme @michaelstingl Party Time! Um, I mean testing time!
Awesome job !!!
@jnweiger just included Debian in the tests and everything is looking good and shiny 😎 (see https://gitlab.com/alfageme/client-linux-tests/pipelines/7125400)
Is it worth to test RHEL packages on RHEL? There's no Dockerimage because of the nature of the project so maybe it's valuable to perform the tests with the packages on CentOS / try out with an unofficial image: https://hub.docker.com/r/richxsl/rhel7/
EDIT: Updated tests including RHEL7 have now been included into the pipeline
I don't know why the hermes feed (https://hermes.opensuse.org/feeds/79973.rdf) wasn't updated after last packages' build success 😕
Open for review:
Next steps to make the progress testable:
2.3.1 tar copied pushed into Qt526
Testpilotclient buiild is outdated 10 Months. Is this still needed?
Testpilotclient buiild is outdated 10 Months. Is this still needed?
Ideally we'd have testpilot and owncloud builds linked from owncloud.org/download Feel free to fix. (And not only during beta/rc phases)
There are two projects for testpilotcloud-client:
Fixed:
Now testpilotcloud-client is build nightly in both projects. Still with old QT libs.
Public client builds