xpra icon
Bug tracker and wiki

Opened 6 years ago

Closed 6 years ago

#688 closed enhancement (fixed)

build script for rpm packages

Reported by: pyther Owned by: pyther
Priority: minor Milestone:
Component: packaging Version: trunk
Keywords: Cc:

Description

We need a script to automate the build process of the el5, el6, fedora 19, and fedora 20 repository using mock.

The script uses mock to builds packages using srpms. Currently, the srpms must be generated manually and placed in SRPM_DIR.

Each package that is built gets moved to a local repository which mocks is configured to look at. This allow for repository dependent packages.

Two repositories get built for each distro/version: main and build. build contains build dependencies such as Cython and yasm which we do not want to distribute.

Just dumping what I've done this weekend. Looking for some general feedback (is there something glaringly wrong, sound approach, etc...).

Example Output:

$ python pkg_xpra.py 
==== building packages for fedora 20 ====
building x264-xpra-20140909-1.fc20.src.rpm
building ffmpeg-xpra-2.3.3-1.fc20.src.rpm
building libfakeXinerama-0.1.0-3.fc20.src.rpm
building xorg-x11-drv-dummy-0.3.6-11.xpra1.fc20.src.rpm
building PyOpenGL-3.1.0final-1.fc20.src.rpm
building PyOpenGL-accelerate-3.1.0-1.fc20.src.rpm
building python-lz4-0.7.0-0.fc20.src.rpm
building python-pillow-2.5.3-1.fc20.src.rpm
building python-netifaces-0.10.4-2.fc20.src.rpm
building xpra-0.14.7-1.fc20.src.rpm
WARNING: FAILED TO BUILD PACKAGES!!
  python-lz4
==== finished building packages for fedora 20
==== building packages for el 6 ====
no source rpms found for yasm
building Cython-0.21-2.fc20.src.rpm
building x264-xpra-20140909-1.fc20.src.rpm
no source rpms found for libvpx-xpra
no source rpms found for libwebp-xpra
building ffmpeg-xpra-2.3.3-1.fc20.src.rpm
building libfakeXinerama-0.1.0-3.fc20.src.rpm
building xorg-x11-drv-dummy-0.3.6-2.xpra1.el6.src.rpm
building PyOpenGL-3.1.0final-1.fc20.src.rpm
building PyOpenGL-accelerate-3.1.0-1.fc20.src.rpm
building python-lz4-0.7.0-0.fc20.src.rpm
building python-pillow-2.5.3-1.fc20.src.rpm
building python-netifaces-0.10.4-2.fc20.src.rpm
building python-crypto-2.6.1-2.el6.src.rpm
building xpra-0.14.7-1.fc20.src.rpm
WARNING: FAILED TO BUILD PACKAGES!!
  yasm
  libvpx-xpra
  libwebp-xpra
  python-lz4
  xpra
==== finished building packages for el 6
$ ls repos/el6/{build,main}/x86_64/ -1 | grep -v debug
repos/el6/build/x86_64/:
Cython-0.21-2.el6.x86_64.rpm
repodata

repos/el6/main/x86_64/:
ffmpeg-xpra-2.3.3-1.el6.x86_64.rpm
ffmpeg-xpra-devel-2.3.3-1.el6.x86_64.rpm
libfakeXinerama-0.1.0-3.el6.x86_64.rpm
PyOpenGL-3.1.0final-1.el6.noarch.rpm
PyOpenGL-accelerate-3.1.0-1.el6.x86_64.rpm
PyOpenGL-Tk-3.1.0final-1.el6.noarch.rpm
python-crypto-2.6.1-2.el6.x86_64.rpm
python-netifaces-0.10.4-2.el6.x86_64.rpm
python-pillow-2.5.3-1.el6.x86_64.rpm
python-pillow-devel-2.5.3-1.el6.x86_64.rpm
python-pillow-doc-2.5.3-1.el6.noarch.rpm
python-pillow-qt-2.5.3-1.el6.x86_64.rpm
python-pillow-sane-2.5.3-1.el6.x86_64.rpm
python-pillow-tk-2.5.3-1.el6.x86_64.rpm
repodata
x264-xpra-20140909-1.el6.x86_64.rpm
x264-xpra-devel-20140909-1.el6.x86_64.rpm
xorg-x11-drv-dummy-0.3.6-2.xpra1.el6.x86_64.rpm

Obviously I am missing some source rpms.

Things to do:

  • support building point releases of EL6 (6.3, 6.4)
  • support for options to specify BUILD_ROOT and SRPM_DIR
  • option to be verbose
  • mock logs for each package that is built. Currently, mock logs are append to build.log, root.log, or state.log for a given distro/version.
  • improve script documentation
  • build SPRMS from specs in trunk/rpm_build

Attachments (1)

pkg_xpra.py (8.3 KB) - added by pyther 6 years ago.

Download all attachments as: .zip

Change History (3)

Changed 6 years ago by pyther

Attachment: pkg_xpra.py added

comment:1 Changed 6 years ago by Antoine Martin

Owner: changed from Antoine Martin to pyther

Adding links to related tickets:

  • #683: unbundle rencode
  • #687: lz4 buildrequires fix
  • #605: original spec files
  • #606: xpra spec file changes

Please also add:

  • Fedora 21, rawhide
  • centos 7

Nice to have:

  • some form of pycuda support, so I can continue to make builds with nvenc

comment:2 Changed 6 years ago by Antoine Martin

Resolution: fixed
Status: newclosed

I've done all of this, and even more:

  • sound packages for mp3 support
  • pycuda for nvenc3 / nvenc4 builds in trunk no longer require the CUDA SDK at runtime
  • version bumps..

etc

Closing.

Note: See TracTickets for help on using tickets.