xpra icon
Bug tracker and wiki

Opened 6 months ago

Closed 3 weeks ago

#2293 closed task (fixed)

RHEL 8 / CentOS 8 support

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: critical Milestone: 3.0
Component: packaging Version: 2.5.x
Keywords: Cc:

Description

It is based on Fedora 28 so it should be supported out of the box.

We just need a new switch for all the if / else in the specfile.

Ideally, done after #2040 - see also #1910

Change History (10)

comment:1 Changed 6 months ago by Antoine Martin

Status: newassigned
Summary: RHEL8 supportRHEL 8 / CentOS 8 support

Added to specfile in r22699.

comment:2 Changed 4 months ago by Antoine Martin

Probably worth waiting for the release to ensure the specfile is in working order.

CentOS 8 Rough Status Page.

comment:3 Changed 2 months ago by Antoine Martin

Minor tweaks in r23547, r23580

comment:4 Changed 4 weeks ago by Antoine Martin

Not sure they're all needed, but I've installed:

yum groupinstall 'Development Tools'

Then installing the build dependencies for xpra.
Still seems to be missing quite a few packages:

error: Failed build dependencies:
	desktop-backgrounds-compat is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	ffmpeg-xpra-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	gobject-introspection-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	js-jquery is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	libfakeXinerama is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	libxkbfile-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	libyuv-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	pygobject3-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	python2-cryptography is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	python2-pyxdg is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	python2-rencode is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	python3-Cython is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	python3-cairo-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	python3-rencode is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	turbojpeg-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	uglify-js is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	x264-xpra-devel is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64
	xclip is needed by xpra-3.0-0.20190925r23930.el8_0.x86_64

(adding yum --enablerepo=extras install epel-release does not help)
Downloading a bunch of packages directly from https://access.redhat.com/downloads/content/package-browser (why aren't those in the centos repos?) and applying some dependency updates in r23933 + r23935 + r23936, reduces the list of missing dependencies to:

error: Failed build dependencies:
	python2-cryptography is needed by xpra-3.0-0.20190925r23937.el8_0.x86_64
	python2-pyxdg is needed by xpra-3.0-0.20190925r23937.el8_0.x86_64
	python2-rencode is needed by xpra-3.0-0.20190925r23937.el8_0.x86_64
	python3-cairo-devel is needed by xpra-3.0-0.20190925r23937.el8_0.x86_64
	python3-rencode is needed by xpra-3.0-0.20190925r23937.el8_0.x86_64

So the python2 packages will need rencode in the repository. Difficult to build without python2-pbr...
The python3 builds will fail without python3-cairo-devel. Not sure where to get hold of this yet.

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

comment:5 Changed 4 weeks ago by Antoine Martin

Updates:

  • using python2-pbr from the centos7 builds works OK for python2. (this is a noarch python2.7 package)
  • for python3-pbr... I used the Fedora 28 package. (...)
  • r23937: fix cython package name
  • r23938 ffmpeg 4.2.1
  • r23939 enable %global debug_package %{nil} workaround
  • build python3 packages: r23940 : rencode, r23941 : pyu2f, r23943 : pynvml, r23944 : pycuda, r23947 : pyopengl
  • r23946: try to build python-pillow so we can have a python2 version
  • renaming python package dependencies (may need to be changed to an ifdef to continue to support centos7): r23948: pygtkglext, r23952 : python-lz4, r23954 + r23956: pycuda
  • r23949 fix pycuda version
  • r23951 fix libmad debug_package error
  • r23953 fix date in pytools changelog

Problems remaining:

  • pygtkglext fails to build - something path related (ugly hack in spec file broke? looks fixable)
  • no xorg-x11-server-devel anywhere?? so no patched dummy for now..
  • pycuda needs boost-python2 and boost-python2-devel - only build python3 package?
  • xpra needs python3-cairo-devel
  • python-pillow needs PyQt4 - can we skip it?

Full list of packages downloaded from non-centos repositories:

boost-numpy3-1.66.0-6.el8.x86_64.rpm
boost-python3-1.66.0-6.el8.x86_64.rpm
boost-python3-devel-1.66.0-6.el8.x86_64.rpm
gobject-introspection-devel-1.56.1-1.el8.x86_64.rpm
gtest-1.8.0-5.el8.x86_64.rpm
gtest-devel-1.8.0-5.el8.x86_64.rpm
js-uglify-2.8.29-1.el8.noarch.rpm
lcms2-devel-2.9-2.el8.x86_64.rpm
libxkbfile-devel-1.0.9-9.el8.x86_64.rpm
nasm-2.13.03-2.el8.x86_64.rpm
pygobject3-devel-3.28.3-1.el8.x86_64.rpm
python2-pbr-4.1.0-2.el7ost.noarch.rpm
python2-pkgconfig-1.3.1-1.fc28.noarch.rpm
python3-cairo-1.16.3-6.el8.x86_64.rpm
python3-cryptography-2.3-3.el8ost.x86_64.rpm
python3-Cython-0.28.1-3.el8.x86_64.rpm
python3-pbr-3.1.1-8.fc28.noarch.rpm
turbojpeg-1.5.3-10.el8.x86_64.rpm
turbojpeg-devel-1.5.3-10.el8.x86_64.rpm
uglify-js-2.8.29-1.el8.noarch.rpm
Last edited 4 weeks ago by Antoine Martin (previous) (diff)

comment:6 Changed 4 weeks ago by Antoine Martin

To get python3-cairo-devel, download the source RPM and rebuild the package.. This is also true for the packages downloaded from redhat. For some this is trivial, others have more dependencies. Some without source packages?
ie: gtk-doc, which depends on dblatex and docbook-utils, none of which are available from centos, not even in source form?

Updates:

Remaining issues:

  • unit tests failing since r23918 (unrelated - may just revert)
  • pygtkglext - needs fixing
  • pillow needs fixing
  • python2-pyxdg would be nice to have
  • xorg-x11-server-devel: rebuilding from source requires tons of missing dependencies
Last edited 4 weeks ago by Antoine Martin (previous) (diff)

comment:7 Changed 4 weeks ago by Antoine Martin

Updates:

xorg-x11-server-devel

  • lots of packages only from redhat..
  • xorg-x11-util-macros from F28 (redhat only has one for rhel5!)
  • build libdmx to get libdmx-devel (nowhere to be found)
  • xorg-x11-xtrans-devel from F28 (redhat only has one for rhel5!)
  • rebuild egl-wayland to get egl-wayland-devel (and need more of dependencies to do that..)

pycuda

Too difficult to build for python2 (no boost python2), so we now have a specfile just for python3: r23973.

comment:8 Changed 4 weeks ago by Antoine Martin

pillow

  • r24006: cosmetic
  • r24007: don't build the tk bits on centos8
  • r24008: the filter stuff crashes rpmbuild on centos8 (could be related to sitearch?)
  • r24009: sitearch macro problem
  • r24012: don't override the system python3 package (only for python2 builds on centos8 - as we still remove webp: r17474, r17473: #1694)
  • r24013: can't refer to python-devel

pyxdg

Added a specfile based on Fedora's: r24010

Last edited 3 weeks ago by Antoine Martin (previous) (diff)

comment:9 Changed 3 weeks ago by Antoine Martin

pygtkglext

Fixed in r24011

  • r24014 : must use python2-devel for python[2|3]-uinput, python[2|3]-rencode, python2-netifaces
  • r24015 : python2 in centos8 doesn't have subprocess.getoutput
  • r24016 : cannot depend on unversionned 'python'

python2-dbus

  • r24018 add specfile based on the Fedora one
  • r24019 remove checks we can't run
Last edited 3 weeks ago by Antoine Martin (previous) (diff)

comment:10 Changed 3 weeks ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

Force python3 by default:

  • r24020: try to ensure the /usr/bin/xpra script defaults to python3, by changing the install order (python3 install is overwrites the /usr/bin/xpra script last)
  • r24021: try harder and replace the shebang by hand. This finally does nearly what we want (default to python3): on centos, this gets mangled to /usr/libexec/platform-python - which is python3 by default.
Note: See TracTickets for help on using tickets.