Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opensuse support #1037

Closed
totaam opened this issue Nov 21, 2015 · 23 comments
Closed

opensuse support #1037

totaam opened this issue Nov 21, 2015 · 23 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Nov 21, 2015

Issue migrated from trac ticket # 1037

component: packaging | priority: minor | resolution: wontfix

2015-11-21 06:53:34: antoine created the issue


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.

@totaam
Copy link
Collaborator Author

totaam commented Nov 28, 2015

2015-11-28 16:57:07: antoine changed status from new to assigned

@totaam
Copy link
Collaborator Author

totaam commented Nov 28, 2015

2015-11-28 16:57:07: antoine edited the issue description

@totaam
Copy link
Collaborator Author

totaam commented Nov 28, 2015

2015-11-28 16:57:07: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Nov 29, 2015

2015-11-29 15:44:04: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Nov 30, 2015

2015-11-30 11:15:38: antoine commented


  • 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.

@totaam
Copy link
Collaborator Author

totaam commented Nov 30, 2015

2015-11-30 12:20:20: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Dec 8, 2015

2015-12-08 09:43:04: antoine changed status from assigned to new

@totaam
Copy link
Collaborator Author

totaam commented Dec 8, 2015

2015-12-08 09:43:04: antoine changed owner from antoine to afarr

@totaam
Copy link
Collaborator Author

totaam commented Dec 8, 2015

2015-12-08 09:43:04: antoine commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Jan 19, 2016

2016-01-19 20:56:20: maxmylyn changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Jan 19, 2016

2016-01-19 20:56:20: maxmylyn set resolution to fixed

@totaam
Copy link
Collaborator Author

totaam commented Jan 19, 2016

2016-01-19 20:56:20: maxmylyn commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Jun 5, 2016

2016-06-05 16:35:26: antoine commented


  • 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

@totaam
Copy link
Collaborator Author

totaam commented Mar 25, 2017

2017-03-25 14:27:25: antoine changed status from closed to reopened

@totaam
Copy link
Collaborator Author

totaam commented Mar 25, 2017

2017-03-25 14:27:25: antoine removed resolution (was fixed)

@totaam
Copy link
Collaborator Author

totaam commented Mar 25, 2017

2017-03-25 14:27:25: antoine commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Jul 14, 2017

2017-07-14 17:00:25: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Jan 22, 2018

2018-01-22 05:50:58: antoine changed status from reopened to new

@totaam
Copy link
Collaborator Author

totaam commented Jan 22, 2018

2018-01-22 05:50:58: antoine changed owner from afarr to antoine

@totaam
Copy link
Collaborator Author

totaam commented Jan 22, 2018

2018-01-22 05:50:58: antoine commented


I've removed more opensuse cruft from various specfiles.
Fixing this will require a lot more work, hopefully opensuse will do their own packaging.

@totaam
Copy link
Collaborator Author

totaam commented Feb 19, 2020

2020-02-19 09:30:26: antoine changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Feb 19, 2020

2020-02-19 09:30:26: antoine set resolution to wontfix

@totaam
Copy link
Collaborator Author

totaam commented Feb 19, 2020

2020-02-19 09:30:26: antoine commented


Too much work.

They have some packaging already: [https://software.opensuse.org/package/xpra].

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant