xpra icon
Bug tracker and wiki

Opened 3 years ago

Closed 3 years ago

#613 closed enhancement (fixed)

{x264,ffmpeg,libvpx,libwep}-xpra packages

Reported by: pyther Owned by: pyther
Priority: major Milestone: 0.14
Component: external Version:
Keywords: Cc:

Description (last modified by Antoine Martin)

As we discussed on IRC, the idea is to have xpra specific packages for x264, ffmpeg, libvpx, and libwebp that do not conflict with packages provided by 3rd party repos, such as rpmfusion.

Libraries get installed in /usr/lib64/xpra.
Development files get installed in /usr/share/include/xpra

This allows xpra-x264 and x264 (rpmfusion) to coexist without conflict.


In the xpra spec, we must set PKG_CONFIG_PATH to include /usr/lib64/xpra/pkgconfig and pass rpath to the linker.

# set pkg_config_path for xpra video libs
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%{_libdir}/xpra/pkgconfig
export PKG_CONFIG_PATH

CFLAG=S-O2 LDFLAGS=-Wl,-rpath=%{_libdir}/xpra python setup.py build --with-opengl %{strict_build_args} %{sound_build_args} %{ffmpeg_build_args} %{vpx_build_args} %{x264_build_args} %{opencl_build_args} %{webp_build_args} %{server_build_args}

I have built these packages against EL5, EL6, Fedora 19, and Fedora 20. I tested xpra builds against these packages and tested on EL5, EL6 and Fedora 20.

I have attached the following specs: x264-xpra, ffmpeg-xpra, libvpx-xpra, libwebp-xpra, and xpra.

The xpra spec is included to provide context on my build procedure. The changes to the SPEC are being discussed in #606.

These spec files should replace those in trunk/rpmbuild/{ffmpeg, x264, libvpx, libwebp}

For F19 and F20 we should probably depend on upstreams version of libvpx and libwebp (as these are likely to be fairly new). For el5 and el6 we should depend on our own.

Attachments (5)

ffmpeg-xpra.spec (3.0 KB) - added by pyther 3 years ago.
x264-xpra.spec (1.5 KB) - added by pyther 3 years ago.
libvpx-xpra.spec (1.6 KB) - added by pyther 3 years ago.
libwebp-xpra.spec (1.4 KB) - added by pyther 3 years ago.
xpra.spec (53.3 KB) - added by pyther 3 years ago.

Download all attachments as: .zip

Change History (14)

Changed 3 years ago by pyther

Attachment: ffmpeg-xpra.spec added

Changed 3 years ago by pyther

Attachment: x264-xpra.spec added

Changed 3 years ago by pyther

Attachment: libvpx-xpra.spec added

Changed 3 years ago by pyther

Attachment: libwebp-xpra.spec added

Changed 3 years ago by pyther

Attachment: xpra.spec added

comment:1 Changed 3 years ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to Antoine Martin
Status: newassigned

Sorry about the delay. Looks good.

I've replaced all the lib* spec files with the updated ones in r6911, also bumped ffmpeg to version 2.2.4 and x264 to 20140719.

(maybe we can find a way to trim down ffmpeg further? no need for postproc, swresample or avfilter..)

I'm holding off on the xpra.spec changes for now as I need to test the build thoroughly first.

comment:2 Changed 3 years ago by Antoine Martin

Owner: changed from Antoine Martin to pyther
Status: assignednew

More!

The good bits:

  • ffmpeg 2.2.5 in r7054 (will try 2.3 later)
  • removed unsupported --enable-pic for webp in r7055, as configure was moaning
  • ensure we build and install the static libx264.a so we can still build static modules in r7056
  • setup.py changes in r7058 (done in backwards, forward port in r7059)
  • minimal changes to xpra specfile for building with private libraries in r7057 (backport in r7058)
  • I have now successfully built static rpms of 0.13.8 against these libraries, straight from svn, using the private packages can be done in time for 0.14.0 (in #606)

The not so good bits:

  • I am having problems with python-lz4-0.7.0 (it's a complete no-go on centos5 because of python24, but let's not worry about that). The version of python-nose available in the repos is too old to build (version check in setup.py IIRC). Looks like we need to also package python-nose... sigh. Here is a specfile from Fedora which may be useful: python26-nose.spec. pyther: Can you help?
  • the Cython specfile was causing me grief, the EPEL bits had to go (not helping), and then there was this PITA: rpmbuild %{dist} not defined on CentOS 5.5?, so in the end I've chopped it down a lot, see r7060 (feel free to re-introduce some, as long as it builds nicely!)
  • also, I doubt that was intentional: CFLAG=S-O2 LDFLAGS=-Wl,-rpath=... ;)

We'll follow up on the xpra spec file in #606. Bar the python-nose, I think we can close this ticket?

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

comment:3 Changed 3 years ago by Antoine Martin

Any idea why the ffmpeg debuginfo packages end up really small? (2 to 6KB - see beta area for examples)

comment:4 Changed 3 years ago by Antoine Martin

After successfully build testing everything, in r7192 I've added specfiles for:

  • PyOpenGL 3.1.0 and PyOpenGL-accelerate 3.1.0 - both build fine on centos6+ but we only support opengl on centos 6.4 and 6.5 because those are the only versions that have pygtkglext... complete no-go on centos5 because of python24 (would be good to add a version check to prevent building a completely broken rpm... not sure how to do that), why not for centos7 though??. Fedora still ships a beta version of 3.1, and without the accelerate module, so I'm making builds for those too.
  • pycrypto 2.6.1 since centos6 is stuck on an insecure version, and it wasn't available for centos5 or centos7 at all... It still moans during the self tests about gmp being too old: You should rebuild using libgmp >= 5 to avoid timing attack vulnerability but we're not going to deal with that (let's hope rhel / centos do..). It is now a hard dependency of the xpra specfile (since rpm does not do "recommends" like debs do).

comment:5 Changed 3 years ago by Antoine Martin

Wasted too much time on the nose vs sphinx vs lz4 madness, ended up disabling the tests to get going again on centos: r7200.

comment:6 Changed 3 years ago by pyther

Any idea why the ffmpeg debuginfo packages end up really small? (2 to 6KB - see beta area for examples)

No immediate ideas. I built the latest ffmpeg-x264 using the spec in trunk and I got a debug package that was about 24KB and contains about 6 files.

I didn't see any debug packages for el6, but the el7 xpra-x264 debug packages were empty.

comment:7 Changed 3 years ago by Antoine Martin

Milestone: 0.150.14

Can I close this or is there something we can do about the empty debug packages?

See also #635

comment:8 Changed 3 years ago by Antoine Martin

netifaces got changed to python-netifaces in r7389, see Packaging mistake for Fedora

comment:9 Changed 3 years ago by Antoine Martin

Resolution: fixed
Status: newclosed

Not heard too many complaints.. closing.

Note: See TracTickets for help on using tickets.