xpra icon
Bug tracker and wiki

Opened 21 months ago

Last modified 5 weeks ago

#1037 reopened task

opensuse support

Reported by: Antoine Martin Owned by: alas
Priority: minor Milestone: future
Component: packaging Version: trunk
Keywords: Cc:

Description (last modified by Antoine Martin)

Found Bootstrap openSUSE into Chroot which was quite helpful.

After adding dozens of hard to find package names (http://rpm.pbone.net/ helped), you can run the script to get a chroot.
Here's the list that worked for me with opensuse 13.2:

RPMDEPS="libpopt0 liblua5_1 libselinux1 libcap2 libacl libbz2 zlib libz1 libgmp10   \
         libelf1 liblzma5 libattr insserv sed fillup coreutils grep    \
         diffutils permissions perl info pam libpcre0 libpcre1 perl-base gdbm   \
         libzio libaudit1 libcrack2 libdb file cracklib libxcrypt      \
         cracklib-dict-full"
ZYPPERDEPS="procps libzypp libaugeas libgcc libstdc++6 satsolver-tools  \
            util-linux libcurl4 libopenssl1 libexpat libproxy1 libxml2 \
            krb5 libidn libldap libssh2 libmodman libgconf libglib     \
            libcom_err2 keyutils-libs cyrus-sasl libsasl2 libmagic1 \
            libkeyutils1 systemd libgcc_s1 udev file-magic libsolv-tools \
            libgdbm4 insserv-compat libprocps3 findutils libsemanage1 gawk \
            pkg-config acl shadow kbd libkmod2  distribution-release \
            libsgutils2 libustr-1_0 libcap-ng0 dracut xz hardlink modutils pigz \
            elfutils systemd-sysvinit kmod-compat openSUSE-release-ftp libdw1 \
            module-init-tools kmod libapparmor1 libcryptsetup4 libqrencode3 \
            libseccomp2 netcfg pam-config pwdutils systemd-presets-branding-openSUSE \
            sysvinit-tools expat fipscheck distribution-release cpio sg3_utils \
            ncurses-utils mkinitrd libasm1 suse-module-tools device-mapper libfipscheck1 \
            libsepol1 aaa_base libdbus-1-3  dbus-1 suse-module-tools libsmartcols1 \
            libutempter0  gpg2 libudev gzip     \
            bzip2 pwdutils pinentry dirmngr libadns libassuan          \
            libgcrypt libgpg-error libksba libpth libusb pam-modules   \
            libnscd libblkid libmount libuuid1 openssl                 \
            update-alternatives glib2-branding-openSUSE"

(there are probably more packages than we actually need for a plain chroot, but it's easier this way and most of them would need to be installed later anyway)

Then you need to install all the packages we need for building from source:

zypper install lsb-release subversion tar file rsync patch python-devel python-setuptools \
    gcc make gtk2-devel python-gtk python-gtk-devel python-gobject2-devel \
    python-cython libX11-devel libXtst-devel libXcomposite-devel libXdamage-devel \
    libvpx-devel libwebp-devel python-Pillow \
    libXrandr-devel cups python-cups \
    which rpmbuild \
    tk-devel python3-devel python3-setuptools python3-numpy \
    xorg-x11-server-Xvfb xorg-x11-server-Xorg libxkbfile-devel pygtk2-codegen

(again, probably more than is strictly needed)

The big remaining problems:

  • there is no x264 on opensuse, which means we will have to build it and package it - HARD
  • same for ffmpeg..
  • packaging for all the extra bits that simply do not exist in suse: python-lz4, rencode, fakexinerama, python-netifaces, patched dummy driver, sound plugins, pygtkgl, pycuda, etc..
  • actual packaging (modifying the spec file)
  • extra codecs: nvenc, opencl, x265, etc (not going to worry too much about those initally)
  • testing...

Looks doable, but this will take time.

Change History (9)

comment:1 Changed 21 months ago by Antoine Martin

Description: modified (diff)
Status: newassigned

r11327 + r11328 makes it possible to build some of the dependencies on opensuse 13.2, now available in the beta area:

  • libfakeXinerama
  • libvpx-xpra
  • libwebp-xpra
  • ffmpeg-xpra
  • PyOpenGL and PyOpenGL-accelerate.
  • python-pillow
  • python-rencode

Remaining:

  • pycuda / nvenc: Not going to deal with this for now, requires: gcc-c++, boost-devel
  • python-lz4: needs lz4-devel which is missing? lzo-devel exists so we could make a python-lzo package?
  • the big one: xpra itself

comment:2 Changed 21 months ago by Antoine Martin

python-lz4 is available, but it is out of date..

Updates:

  • we also need a more up to date Cython to avoid build errors, which must be named python-Cython + more package names updated: r11331 + r11332
  • opensuse needs "-fno-strict-aliasing": r11335
  • gstreamer sound package naming, dummy driver, xorg: r11336, r11338
  • python-lz4 done in r11340

Extra build dependencies to install:

zypper install \
    libXinerama-devel python-tk tk-devel libjpeg8-devel liblcms-devel python-qt4 \
    python3-devel gobject-introspection-devel python3-gobject gtk3-devel \
    desktop-file-utils python-gobject2-devel python3-Cython python-numpy-devel yasm

As for suse "leap" aka 42.1, it needs minor tweaks to make a chroot using the script:

  • URL=http://download.opensuse.org/distribution/leap/${VERSION}/repo/oss/suse
  • new dependency: patterns-sles-fips (hard to fingure this one out as it only manifests itself as a fatal FIPS selftest failure)

There are now beta suse packages for both 13.2 and 42.1


Remaining tasks:

  • patched dummy driver
  • python-lzo, x265, etc

Useful packaging link: Build Service cross distribution howto

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

comment:3 Changed 21 months ago by Antoine Martin

  • r11340 fixes the python-lz4 spec file.
  • for building dummy, you need to install:
    zypper install  xf86dgaproto-devel xorg-x11-proto-devel xorg-x11-server-sdk xorg-x11-server-sdk
    

Then use the new xf86-video-dummy specfile added in r11341.

Note: this will not be installed automatically: http://smithfarm-thebrain.blogspot.com/2012/12/opensuse-following-package-update-will.html.
To install it you need to:

zypper install --from=winswitch xf86-video-dummy

It should then be sticky and update from the new repository.

comment:4 Changed 21 months ago by Antoine Martin

As of r11342, it should now be mostly functional. Just not fully tested (ie: opengl, sound, printing, etc..)

I will eventually add these repository installation instructions in a more visible place:

  • install the repo key
    rpm --import http://winswitch.org/gpg.asc
    
  • add the repo file:
    cat <<EOF > /etc/zypp/repos.d/winswitch.repo
    [winswitch]
    name=winswitch $releasever - $basearch
    enabled=1
    autorefresh=0
    baseurl=http://winswitch.org/beta/openSUSE/$releasever/$basearch/
    type=rpm-md
    gpgcheck=1
    gpgkey=http://winswitch.org/gpg.asc
    EOF
    
  • install the patched dummy driver:
    zypper install --from=winswitch xf86-video-dummy
    
  • install xpra:
    zypper install xpra
    
Last edited 21 months ago by Antoine Martin (previous) (diff)

comment:5 Changed 21 months ago by Antoine Martin

Owner: changed from Antoine Martin to alas
Status: assignednew

The repo is now public with instructions here: http://winswitch.org/downloads/rpm-repository.html?dist_select=openSUSE and a link from here: http://winswitch.org/downloads/.

The packages can be found here: http://xpra.org/dists/openSUSE/13.2/.

@afarr: this is mostly a FYI, unless you need to support opensuse, feel free to test or just close.

comment:6 Changed 19 months ago by J. Max Mena

Resolution: fixed
Status: newclosed

Tested both client and server - both appear to be working "out of the box"...They do complain about vpx not working.

Closing as both are working fine. May file tickets in the future if we need to support suse.

comment:7 Changed 15 months ago by Antoine Martin

  • r12745 fixes the opengl package names so we can use the system provided ones rather than requiring our own packages
  • r12750 + r12751 fixes the shadow utils package name
Last edited 15 months ago by Antoine Martin (previous) (diff)

comment:8 Changed 5 months ago by Antoine Martin

Resolution: fixed
Status: closedreopened

As per OpenSUSE version history: Releases and opensuse Release Lifetime, opensuse 13.x is EOL.
We need to support "Leap" (42.x) better... which is a PITA because it is missing a large number of dependencies.

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

comment:9 Changed 5 weeks ago by Antoine Martin

Milestone: 0.16future

no time for this and the spec file needs a lot more fixes now

Note: See TracTickets for help on using tickets.