xpra icon
Bug tracker and wiki

Opened 5 months ago

Closed 4 months ago

#2028 closed defect (fixed)

RHEL 7.6 updates Xorg abi

Reported by: Chris Schultz Owned by: Chris Schultz
Priority: major Milestone: 2.5
Component: server Version: 2.4.x
Keywords: Cc:

Description (last modified by Antoine Martin)

RHEL 7.6 has upgraded xorg, which has change the abi version. Xpra can no longer be upgraded and therefore breaks RHEL updates.

Error: Package: xorg-x11-drv-dummy-0.3.8-1.xpra1.el7_5.x86_64 (@winswitch)
           Requires: xserver-abi(videodrv-23) >= 0
           Removing: xorg-x11-server-Xorg-1.19.5-5.el7.x86_64 (@rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Updated By: xorg-x11-server-Xorg-1.20.1-5.1.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7_4.1.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7_4.2.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.5-5.1.el7_5.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.15.0-7.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-7.el7_0.3.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-32.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-33.el7_1.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.17.2-10.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-19) = 0
           Available: xorg-x11-server-Xorg-1.17.2-22.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-19) = 0
           Available: xorg-x11-server-Xorg-1.20.1-3.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
           Available: xorg-x11-server-Xorg-1.20.1-5.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
 You could try using --skip-broken to work around the problem

Change History (14)

comment:1 Changed 5 months ago by Antoine Martin

Status: newassigned

When centos 7.6 becomes available, we will be able to rebuild the dummy driver for the new ABI.
Until then, you can remove xpra and its repository, do the upgrade then re-add the xpra repository and update with --skip-broken - that should work (untested).
You may then experience DPI issues with some applications until the update dummy driver is posted.

Last edited 5 months ago by Antoine Martin (previous) (diff)

comment:2 Changed 5 months ago by Chris Schultz

Great, thanks. I have noticed that the RHEL7 docker images contain full REPOs that enable yum upgrades. This allows testing against RHEL without a subscription (dev subs are free these days as well).

Thanks for you help!

comment:3 Changed 5 months ago by Chris Schultz

This is a Dockerfile image that I use to build some RHEL7 rpms, this could be helpful for you to build in a sandbox.

https://github.com/chrisjschultz/docker-rhel7-rpm-build-image

comment:4 Changed 4 months ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to Chris Schultz
Status: assignednew

@cjschultz: any ideas?

$ sudo docker image build -t rhel-rpm-build:latest .
Sending build context to Docker daemon 87.55 kB
Step 1/6 : FROM rhel7.6:latest
Trying to pull repository docker.io/library/rhel7.6 ... 
Trying to pull repository registry.fedoraproject.org/rhel7.6 ... 
Trying to pull repository quay.io/rhel7.6 ... 
Trying to pull repository registry.access.redhat.com/rhel7.6 ... 
sha256:7ae7375bdbb23180d21dfed3408ba82f0d00dd049557cd62716a628367d31d61: Pulling from registry.access.redhat.com/rhel7.6
50a402dbfd72: Pull complete 
c6796217be8f: Pull complete 
Digest: sha256:7ae7375bdbb23180d21dfed3408ba82f0d00dd049557cd62716a628367d31d61
Status: Downloaded newer image for registry.access.redhat.com/rhel7.6:latest
 ---> 3da40a1670b5
Step 2/6 : RUN set -x &&     yum -y upgrade &&     yum -y install sudo epel-release krb5-devel python-devel rpm-build "@Development Tools" &&     yum clean all &&     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py &&     python get-pip.py
 ---> Running in 0ab88cc69ba5
+ yum -y upgrade
Loaded plugins: ovl, product-id, search-disabled-repos, subscription-manager
This system is not receiving updates. You can use subscription-manager on the host to register and assign subscriptions.
There are no enabled repos.
 Run "yum repolist all" to see the repos you have.
 To enable Red Hat Subscription Management repositories:
     subscription-manager repos --enable <repo>
 To enable custom repositories:
     yum-config-manager --enable <repo>
The command '/bin/sh -c set -x &&     yum -y upgrade &&     yum -y install sudo epel-release krb5-devel python-devel rpm-build "@Development Tools" &&     yum clean all &&     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py &&     python get-pip.py' returned a non-zero code: 1

comment:5 in reply to:  4 Changed 4 months ago by Chris Schultz

Well now I know why it works for me (and not on my Ubuntu box):

https://github.com/projectatomic/docker/tree/docker-1.13.1-rhel#add-rhel-super-secrets-patchpatch

I have changed the Dockerfile to use Oracle Linux 7.6, which is a compatible with RHEL/Centos.

comment:6 Changed 4 months ago by Antoine Martin

Owner: changed from Chris Schultz to Antoine Martin
Status: newassigned

That's better, just needed this workaround for SELinux on Fedora: chcon -Rt svirt_sandbox_file_t host_dir.

comment:7 Changed 4 months ago by Antoine Martin

Owner: changed from Antoine Martin to Chris Schultz
Status: assignednew

Except, no:

[root@1f08ba07ec7f /]# yum repolist
Loaded plugins: ovl, ulninfo
repo id                                             repo name                                                                                                          status
ol7_UEKR5/x86_64                                    Latest Unbreakable Enterprise Kernel Release 5 for Oracle Linux 7Server (x86_64)                                     122
ol7_latest/x86_64                                   Oracle Linux 7Server Latest (x86_64)                                                                               11482
repolist: 11604
[root@1f08ba07ec7f /]# yum install xorg-x11-server-devel
Loaded plugins: ovl, ulninfo
No package xorg-x11-server-devel available.
Error: Nothing to do

comment:8 Changed 4 months ago by Chris Schultz

Sigh, sorry. This is missing from OL7, but is in OL6.

I'll see if I can find another way that is more useful...

comment:9 Changed 4 months ago by Chris Schultz

Turns out OEL7 has a bunch of stuff in the optional repos. I have updated the Dockerfile to enable these repos.

comment:10 Changed 4 months ago by Antoine Martin

Better but then I hit this error: Only dest dir longer than base dir not supported.

Fixed by using /usr/src/redhat instead of /build:

diff --git a/build-rpm.sh b/build-rpm.sh
index 7885914..a476c3b 100755
--- a/build-rpm.sh
+++ b/build-rpm.sh
@@ -1,4 +1,4 @@
-for spec in `ls /build/SPECS`;
+for spec in `ls /usr/src/redhat/SPECS`;
 do
-  rpmbuild --define '_topdir /build' -ba /build/SPECS/$spec
+  rpmbuild --define '_topdir /usr/src/redhat' -ba /usr/src/redhat/SPECS/$spec
 done
diff --git a/build.sh b/build.sh
index 33d426b..d375395 100755
--- a/build.sh
+++ b/build.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
-groupadd build -g `stat /build/ --format=%g`
-useradd -u `stat /build/ --format=%u` -g build build 
+groupadd build -g `stat /usr/src/redhat/ --format=%g`
+useradd -u `stat /usr/src/redhat/ --format=%u` -g build build 
 sudo -H -E -u build /build-rpm.sh

Then launching with sudo docker run --rm -it --volume `pwd`/rpmbuild:/usr/src/redhat rhel-rpm-build:latest

Github patches (can't do pull requests with the web ui):

In any case, the centos release isn't too far away: https://wiki.centos.org/Manuals/ReleaseNotes/CentOS7.1810

Last edited 4 months ago by Antoine Martin (previous) (diff)

comment:11 Changed 4 months ago by Antoine Martin

I've cloned the "7.5" repo as "7.6", and added the freshly built xorg-x11-drv-dummy and a few others there.
I will rebuild all the packages eventually (no rush).

@cjschultz: I can't test since I don't have a test 7.6 VM yet, please close this ticket if the repository now updates correctly for you.

comment:12 Changed 4 months ago by Chris Schultz

Hi.

Still getting the upgrade issue, I hardwired in the repo just to be sure.

[winswitch]
name=Winswitch $releasever - $basearch
enabled=1
metadata_expire=1d
gpgcheck=1
gpgkey=https://xpra.org/gpg.asc
baseurl=https://xpra.org/dists/RedHat/7.6/x86_64/
--> Processing Dependency: xserver-abi(videodrv-23) >= 0 for package: xorg-x11-drv-dummy-0.3.8-1.xpra1.el7_5.x86_64
---> Package xorg-x11-server-Xorg.x86_64 0:1.20.1-5.1.el7 will be an update
--> Finished Dependency Resolution
Error: Package: xorg-x11-drv-dummy-0.3.8-1.xpra1.el7_5.x86_64 (@winswitch)
           Requires: xserver-abi(videodrv-23) >= 0
           Removing: xorg-x11-server-Xorg-1.19.5-5.el7.x86_64 (@rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Updated By: xorg-x11-server-Xorg-1.20.1-5.1.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7_4.1.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7_4.2.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.5-5.1.el7_5.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.15.0-7.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-7.el7_0.3.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-32.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-33.el7_1.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.17.2-10.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-19) = 0
           Available: xorg-x11-server-Xorg-1.17.2-22.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-19) = 0
           Available: xorg-x11-server-Xorg-1.20.1-3.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
           Available: xorg-x11-server-Xorg-1.20.1-5.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
**********************************************************************
yum can be configured to try to resolve such errors by temporarily enabling
disabled repos and searching for missing dependencies.
To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf
**********************************************************************

Error: Package: xorg-x11-drv-dummy-0.3.8-1.xpra1.el7_5.x86_64 (@winswitch)
           Requires: xserver-abi(videodrv-23) >= 0
           Removing: xorg-x11-server-Xorg-1.19.5-5.el7.x86_64 (@rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Updated By: xorg-x11-server-Xorg-1.20.1-5.1.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7_4.1.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.3-11.el7_4.2.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.19.5-5.1.el7_5.x86_64 (rhel-7-server-rpms)
               xserver-abi(videodrv-23) = 0
           Available: xorg-x11-server-Xorg-1.15.0-7.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-7.el7_0.3.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-32.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.15.0-33.el7_1.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-15) = 0
           Available: xorg-x11-server-Xorg-1.17.2-10.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-19) = 0
           Available: xorg-x11-server-Xorg-1.17.2-22.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-19) = 0
           Available: xorg-x11-server-Xorg-1.20.1-3.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
           Available: xorg-x11-server-Xorg-1.20.1-5.el7.x86_64 (rhel-7-server-rpms)
              ~xserver-abi(videodrv-24) = 0
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
Last edited 4 months ago by Antoine Martin (previous) (diff)

comment:13 Changed 4 months ago by Antoine Martin

Got it: the old build system used el7_5 for the dist value but the new one uses just el7. So the newly built package doesn't upgrade the old one. (el7 < el7_5 according to string version compare)

r21004 bumps the release no which should take care of the upgrade path.
(I still prefer el7_6 as "dist" value, so I will have to look into tweaking the buildbot: ticket:2040#comment:1)

yum update should fetch it now.

Last edited 4 months ago by Antoine Martin (previous) (diff)

comment:14 Changed 4 months ago by Chris Schultz

Resolution: fixed
Status: newclosed

yum update now working fine. Thanks!

Note: See TracTickets for help on using tickets.