Version 7 (modified by 8 years ago) (diff) | ,
---|
Building Fedora / Enterprise Linux
Overview
There are two types of repo trees that need to be created: build-dependencies and runtime-dependencies. Packages that are in the build-dependency category should only be installed in a mock environment in order to build xpra.
Goals
- Document build process
- Make Build process reproducible
- Build in a clean chroot (this is done with mock)
Mock Config
Use the default config provided by mock: epel-6-x86_64 or fedora-20-x86_64
Add a local repository stanza mock config that is used for build dependencies
[local] name=local baseurl=http://pyther.net/xpra-build/el6/x86_64/ #baseurl=file///home/pyther/xpra-build/el6/x86_64/ cost=2000 enabled=1
Creating a Repository
$ createrepo /home/pyther/xpra-build/el6/x86_64/ Spawning worker 0 with 16 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
Packages
yasm
- version that ships with el5 is too old
- required to build x264, ffmpeg, and libvpx
- spec taken from EPEL6
x264
- package structure based on rpmfusion's x264 package
- configures build options needed for xpra
ffmpeg
- package structure based on rpmfusion's ffmpeg package
- configures build options needed for xpra
libvpx
- required for el5, el6
- fedora 19 and 20 ship libvpx
libwebp
- required for el5, el6
- fedora 19 and 20 ship libvpx
Cython
- required for el5, el6 - version in epel is too old
- fedora ships with new enough version
libfakeXinerama
xorg-x11-drv-dummy
- based on upstream SPEC with xpra DPI patch added (see ticket:163#comment:25)
EL5
Enterprise Linux 5 (RHEL / Centos)
Build SRPMS: http://pyther.net/xpra-build/el5/src/
Run-time SRPMS: http://pyther.net/xpra/el5/src/
Build Dependencies (we need to build)'
- yasm
- x264
- ffmpeg (depends on x264)
- libvpx
- libwebp
- Cython
Run-time Dependencies (we need to build)'
- libfakeXinerama
- netifaces
Building
# xpra build depends mock -r epel-5-x86_64 --rebuild yasm-1.2.0-1.el6.src.rpm --resultdir ~/build-el5/ -v mock -r epel-5-x86_64 --rebuild x264-20140612-1.el6.src.rpm --resultdir ~/build-el5/ -v mock -r epel-5-x86_64 --rebuild ffmpeg-2.2.3-1.el6.src.rpm --resultdir ~/build-el5/ -v mock -r epel-5-x86_64 --rebuild libvpx-1.3.0-1.el6.src.rpm --resultdir ~/build-el5/ -v mock -r epel-5-x86_64 --rebuild libwebp-0.4.0-1.el6.src.rpm --resultdir ~/build-el5/ -v mock -r epel-5-x86_64 --rebuild Cython-0.20.1-1.el6.src.rpm --resultdir ~/build-el5/ -v # xpra run-time dependencies mock -r epel-5-x86_64 --rebuild libfakeXinerama-0.1.0-3.el6.src.rpm --resultdir ~/build-el5/ -v mock -r epel-5-x86_64 --rebuild netifaces-0.8-2.el6.src.rpm --resultdir ~/build-el5/ -v mock -r epel-5-x86_64 --rebuild xpra-0.13.6-0.el6.src.rpm --resultdir ~/build-el5/ -v
To generate repodata for the el5 repo on el6 use
createrepo --checksum sha x86_64/
EL6
Enterprise Linux 6 (RHEL / Centos)
Bulid SRPMS: http://pyther.net/xpra-build/el6/src/
Run-time SRPMS: http://pyther.net/xpra/el6/src/
Build Dependencies (we need to build)'
- x264
- ffmpeg (depends on x264)
- libvpx
- libwebp
- Cython
Run-time Dependencies (we need to build)'
- libfakeXinerama
- python-lz4
- netifaces
- xorg-x11-drv-dummy
Building
# xpra build depends mock -r epel-6-x86_64 --rebuild x264-20140612-1.el6.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild ffmpeg-2.2.3-1.el6.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild libvpx-1.3.0-1.el6.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild libwebp-0.4.0-1.el6.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild Cython-0.20.1-1.el6.src.rpm --resultdir ~/build-el6/ -v # xpra run-time dependencies mock -r epel-6-x86_64 --rebuild libfakeXinerama-0.1.0-3.el6.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild python-lz4-0.6.1-0.el6.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild netifaces-0.8-2.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild xorg-x11-drv-dummy-0.3.6-2.xpra1.el6.src.rpm --resultdir ~/build-el6/ -v mock -r epel-6-x86_64 --rebuild xpra-0.13.6-0.el6.src.rpm --resultdir ~/build-el6/ -v
Fedora 19 / 20
Bulid SRPMS: http://pyther.net/xpra-build/f20/src/
Run-time SRPMS: http://pyther.net/xpra/f20/src/
libvpx, libwebp, and Cython are build dependencies but they are provided by upstream
Build Dependencies (we need to build)
- x264
- ffmpeg (depends on x264)
Run-time Dependencies (we need to build)
- libfakeXinerama
- python-lz4
- netifaces
- xorg-x11-drv-dummy 0.3.6-11
Building
# xpra build depends mock -r fedora-20-x86_64 --rebuild x264-20140612-1.el6.src.rpm --resultdir ~/build-f20/ mock -r fedora-20-x86_64 --rebuild ffmpeg-2.2.3-1.el6.src.rpm --resultdir ~/build-f20/ # xpra run-time dependencies mock -r fedora-20-x86_64 --rebuild libfakeXinerama-0.1.0-3.el6.src.rpm --resultdir ~/build-f20/ mock -r fedora-20-x86_64 --rebuild python-lz4-0.6.1-0.el6.src.rpm --resultdir ~/build-f20/ mock -r fedora-20-x86_64 --rebuild netifaces-0.8-2.src.rpm --resultdir ~/build-f20/ mock -r fedora-20-x86_64 --rebuild xorg-x11-drv-dummy-0.3.6-11.xpra1.el6.src.rpm --resultdir ~/build-f20/