Xpra: Ticket #2028: RHEL 7.6 updates Xorg abi

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


Sun, 04 Nov 2018 04:31:01 GMT - Antoine Martin: status changed

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.


Sun, 04 Nov 2018 07:47:47 GMT - 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!


Mon, 05 Nov 2018 23:34:04 GMT - 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


Tue, 13 Nov 2018 15:48:52 GMT - Antoine Martin: owner, status, description changed

@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

Wed, 14 Nov 2018 00:35:25 GMT - 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.


Wed, 14 Nov 2018 05:36:05 GMT - Antoine Martin: owner, status changed

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


Wed, 14 Nov 2018 05:59:42 GMT - Antoine Martin: owner, status changed

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

Wed, 14 Nov 2018 22:20:10 GMT - 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...


Thu, 15 Nov 2018 00:37:19 GMT - Chris Schultz:

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


Thu, 15 Nov 2018 04:25:57 GMT - 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


Thu, 15 Nov 2018 04:47:53 GMT - 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.


Thu, 15 Nov 2018 19:54:10 GMT - 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

Fri, 16 Nov 2018 12:41:22 GMT - 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.


Sun, 18 Nov 2018 19:14:10 GMT - Chris Schultz: status changed; resolution set

yum update now working fine. Thanks!


Sat, 23 Jan 2021 05:40:13 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2028