Client: testpilotcloud-client-2.4.0~beta1 kills owncloud-client-2.3.4

Created on 21 Nov 2017  路  11Comments  路  Source: owncloud/client

Having both isv:/ownCloud:/desktop and isv:/ownCloud:/testpilot:/testing repos registered, causes mismatch of libraries:
seen during apt-get install testpilotcloud-client:

Get:26 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5dbus5 5.6.2-14+13.1 [221 kB]
Get:27 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5network5 5.6.2-14+13.1 [473 kB]
Get:28 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5gui5 5.6.2-14+13.1 [2128 kB]
Get:55 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5widgets5 5.6.2-14+13.1 [2222 kB]
Get:88 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_17.04  ocqt562-libqt5opengl5 5.6.2-1+22.1 [159 kB]                          
Get:89 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5printsupport5 5.6.2-14+13.1 [206 kB]        
Get:90 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5sql5 5.6.2-14+13.1 [141 kB]                 
Get:91 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_17.04  ocqt562-libqt5webkit5 5.6.2-1 [8839 kB]                              
Get:92 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_17.04  ocqt562-libqt5keychain1 0.7.0-1+4.4 [42.6 kB]                        
Get:93 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  libtestpilotcloudsync0 2.4.0~beta1-8710 [438 kB]          
Get:94 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5sql5-sqlite 5.6.2-14+13.1 [69.1 kB]         
Get:95 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  ocqt562-libqt5xml5 5.6.2-14+13.1 [126 kB]                 
Get:96 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  testpilotcloud-client-l10n 2.4.0~beta1-8710 [344 kB]      
Get:97 http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04  testpilotcloud-client 2.4.0~beta1-8710 [846 kB]          

A Dockerfile to reproduce the issue looks like this:

FROM ubuntu:17.04
RUN apt-get update
RUN apt-get install -y wget
RUN wget -nv https://download.opensuse.org/repositories/isv:ownCloud:desktop/Ubuntu_17.04/Release.key -O - | apt-key add -
RUN echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_17.04/ /' > /etc/apt/sources.list.d/owncloud-client.list
RUN echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/testpilot:/testing/Ubuntu_17.04/ /' > /etc/apt/sources.list.d/testpilotcloud-client.list
RUN apt-get update

RUN apt-get install -y testpilotcloud-client
RUN testpilotcloudcmd --version
#### EXPECT: testpilotcloud version 2.4.0beta1 (build 8710)
#### SEEN:   testpilotcloud version 2.4.0beta1 (build 8710)

RUN testpilotcloud || true
#### EXPECT: QXcbConnection: Could not connect to display    
#### SEEN:   testpilotcloud: relocation error: /opt/ownCloud/qt-5.6.2/lib/x86_64-linux-gnu/libQt5OpenGL.so.5: symbol _ZTV26QOpenGLSharedResourceGuard, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference

RUN apt-get install -y owncloud-client
RUN owncloudcmd --version
#### EXPECT: ownCloud version 2.3.4
#### SEEN:   ownCloud version 2.3.4

RUN owncloud
#### EXPECT: QXcbConnection: Could not connect to display  
#### SEEN:   owncloud: relocation error: /opt/ownCloud/qt-5.6.2/lib/x86_64-linux-gnu/libQt5OpenGL.so.5: symbol _ZTV26QOpenGLSharedResourceGuard, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference
bug p2-high packaging sev2-high

Most helpful comment

Finally got to see everything living together in peace:

+<version> infix makes libraries no longer conflict with each other. Closing here as fixed! 馃帀

All 11 comments

@SamuAlfageme regression test for this please.
@guruz @michaelstingl 2.4.0 release blocker?
@pmaier1 thanks for trying!
@dschmidt seperating the installation paths and package names for 2.3x libs and 2.4x libs should help, right?

Suggest:
@PACKAGE_NAME_PREFIX@ change from ocqt562 to ocqt562+240
@OC_QT_ROOT@ change from /opt/ownCloud/qt-5.6.2/ to /opt/ownCloud/qt-5.6.2+2.4.0/

Both, OC_QT_VERSION and PACKAGE_NAME_PREFIX are rolled into the client package meta data through the templating engine.
genbranding/setup_client_obs.sh now allows control of the template variables from jenkins:

test -z "${PACKAGE_NAME_PREFIX}" && PACKAGE_NAME_PREFIX=ocqt562+240
test -z "${OC_QT_VERSION}" && OC_QT_VERSION=5.6.2+2.4.0

-PACKAGE_NAME_PREFIX="ocqt562"
-OC_QT_VERSION="5.6.2"
+PACKAGE_NAME_PREFIX="${PACKAGE_NAME_PREFIX}"
+OC_QT_VERSION="${OC_QT_VERSION}"

build_obs_{opensuse,owncloud}.sh set the values according to the CLIENT_BRANCH:

```
+# Where we pull the qt libraries from, and how they are named:
+# OC_QT_VERSION also controls the path where the client is located: /opt/ownCloud/qt-$OC_QT_VERSION
case "${CLIENT_BRANCH}" in
2.3* )
export AGGREGATEPAC_PRJ=isv:ownCloud:devel:Qt562:templatized

  • export PACKAGE_NAME_PREFIX=ocqt562
  • export OC_QT_VERSION=5.6.2
    ;;
    *)
    export AGGREGATEPAC_PRJ=isv:ownCloud:Qt562:2.4.0
  • export PACKAGE_NAME_PREFIX=ocqt562+240
  • export OC_QT_VERSION=5.6.2+2.4.0
    ;;
    esac

Deployed into https://build.opensuse.org/project/monitor/isv:ownCloud:Qt562:2.4.0
and into internal build service. Nightlies to be checked, then let's roll a beta2.

@pmaier1 @SamuAlfageme can you please re-test the beta1 from the above Linux repos?
If you approve, we can close this as fixed!

@jnweiger all the test steps I've conducted on xUbuntu distros are looking good now (after purging old clients), I think I have a pre-2.3.3 (templates) version somewhere, will try from there without purging.

EDIT: It seems to be coming and going; now I'm getting broken-packages:

The following packages have unmet dependencies:
 testpilotcloud-client : Depends: libtestpilotcloudsync0 (= 2.4.0~beta1-8743) but 2.4.0~nightly20170724-8128 is to be installed

regression test for this please

Yas that's it, will include in https://github.com/owncloud/platform/issues/81's "update" scenarios.

There is no good way to switch back and forth between nightlies and betas. only one of :testing or :daily repo must be registered.

.oO(maybe nightly could be a theme like testpilotcloud.. but then it won't use the same config directory..)

EDIT: ok bad thought, the solution would just be to have different repos on OBS. not so important rigth now

can this be closed?

@guruz will check with RC1 and 2.3.4 ASAP and report back once again. Last time I did (https://github.com/owncloud/client/issues/6180#issuecomment-347170391) OBS was still a bit unstable to do so.

Finally got to see everything living together in peace:

+<version> infix makes libraries no longer conflict with each other. Closing here as fixed! 馃帀

Was this page helpful?
0 / 5 - 0 ratings