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

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

Closed
totaam opened this issue Jul 15, 2014 · 21 comments
Closed

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

totaam opened this issue Jul 15, 2014 · 21 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Jul 15, 2014

Issue migrated from trac ticket # 613

component: external | priority: major | resolution: fixed

2014-07-15 03:16:26: pyther created the issue


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.

@totaam
Copy link
Collaborator Author

totaam commented Jul 15, 2014

2014-07-15 03:16:50: pyther uploaded file ffmpeg-xpra.spec (3.0 KiB)

@totaam
Copy link
Collaborator Author

totaam commented Jul 15, 2014

2014-07-15 03:16:58: pyther uploaded file x264-xpra.spec (1.5 KiB)

@totaam
Copy link
Collaborator Author

totaam commented Jul 15, 2014

2014-07-15 03:17:46: pyther uploaded file libvpx-xpra.spec (1.6 KiB)

@totaam
Copy link
Collaborator Author

totaam commented Jul 15, 2014

2014-07-15 03:17:54: pyther uploaded file libwebp-xpra.spec (1.4 KiB)

@totaam
Copy link
Collaborator Author

totaam commented Jul 15, 2014

2014-07-15 03:18:07: pyther uploaded file xpra.spec (53.3 KiB)

@totaam
Copy link
Collaborator Author

totaam commented Jul 20, 2014

2014-07-20 14:48:23: totaam changed status from new to assigned

@totaam
Copy link
Collaborator Author

totaam commented Jul 20, 2014

2014-07-20 14:48:23: totaam changed owner from antoine to totaam

@totaam
Copy link
Collaborator Author

totaam commented Jul 20, 2014

2014-07-20 14:48:23: totaam edited the issue description

@totaam
Copy link
Collaborator Author

totaam commented Jul 20, 2014

2014-07-20 14:48:23: totaam commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Jul 31, 2014

2014-07-31 17:16:11: totaam changed status from assigned to new

@totaam
Copy link
Collaborator Author

totaam commented Jul 31, 2014

2014-07-31 17:16:11: totaam changed owner from totaam to pyther

@totaam
Copy link
Collaborator Author

totaam commented Jul 31, 2014

2014-07-31 17:16:11: totaam commented


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 7058 (done in backwards, forward port in r7059)
  • minimal changes to xpra specfile for building with private libraries in r7057 (backport in 7058)
  • 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 cleaned up xpra.spec #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?

@totaam
Copy link
Collaborator Author

totaam commented Aug 7, 2014

2014-08-07 13:17:29: totaam commented


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

@totaam
Copy link
Collaborator Author

totaam commented Aug 8, 2014

2014-08-08 06:16:32: totaam commented


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

@totaam
Copy link
Collaborator Author

totaam commented Aug 8, 2014

2014-08-08 10:21:11: totaam commented


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

@totaam
Copy link
Collaborator Author

totaam commented Aug 17, 2014

2014-08-17 02:18:24: pyther commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Aug 17, 2014

2014-08-17 15:16:45: totaam commented


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

See also #635

@totaam
Copy link
Collaborator Author

totaam commented Aug 24, 2014

2014-08-24 07:19:04: totaam commented


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

@totaam
Copy link
Collaborator Author

totaam commented Sep 12, 2014

2014-09-12 03:24:30: totaam changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Sep 12, 2014

2014-09-12 03:24:30: totaam changed resolution from ** to fixed

@totaam
Copy link
Collaborator Author

totaam commented Sep 12, 2014

2014-09-12 03:24:30: totaam commented


Not heard too many complaints.. closing.

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