blob: a93604bc4718d24e800df02d39da58b2fda8dccc [file] [log] [blame]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001SUMMARY = "A parallel build system"
2DESCRIPTION = "distcc is a parallel build system that distributes \
3compilation of C/C++/ObjC code across machines on a network."
4SECTION = "devel"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
7
8DEPENDS = "avahi binutils"
9
10PACKAGECONFIG ??= "popt"
11PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+"
12# use system popt by default
13PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt"
14
15RRECOMMENDS_${PN} = "avahi-daemon"
16
17SRC_URI = "git://github.com/distcc/distcc.git \
18 file://separatebuilddir.patch \
19 file://default \
20 file://distccmon-gnome.desktop \
21 file://distcc \
22 file://distcc.service"
23SRCREV = "8600f0857dac55ea393dc11a860948692d215fc8"
24S = "${WORKDIR}/git"
25
26inherit autotools pkgconfig update-rc.d useradd systemd
27
28ASNEEDED = ""
29
30EXTRA_OECONF += "--disable-Werror PYTHON='' --disable-pump-mode"
31
32USERADD_PACKAGES = "${PN}"
33USERADD_PARAM_${PN} = "--system \
34 --home /dev/null \
35 --no-create-home \
36 --gid nogroup \
37 distcc"
38
39INITSCRIPT_NAME = "distcc"
40
41SYSTEMD_PACKAGES = "${PN}"
42SYSTEMD_SERVICE_${PN} = "distcc.service"
43
44do_install() {
45 # Improve reproducibility: compress w/o timestamps
46 oe_runmake 'DESTDIR=${D}' "GZIP_BIN=gzip -n" install
47 install -d ${D}${sysconfdir}/init.d/
48 install -d ${D}${sysconfdir}/default
49 install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/
50 install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc
51 install -d ${D}${systemd_unitdir}/system/
52 install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_unitdir}/system
53 sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/distcc.service
54 ${DESKTOPINSTALL}
55}
56DESKTOPINSTALL = ""
57DESKTOPINSTALL_libc-glibc () {
58 install -d ${D}${datadir}/distcc/
59 install -m 0644 ${WORKDIR}/distccmon-gnome.desktop ${D}${datadir}/distcc/
60}
61PACKAGES += "distcc-distmon-gnome"
62
63FILES_${PN} = " ${sysconfdir} \
64 ${bindir}/distcc \
65 ${bindir}/lsdistcc \
66 ${bindir}/distccd \
67 ${bindir}/distccmon-text \
68 ${sbindir}/update-distcc-symlinks \
69 ${systemd_unitdir}/system/distcc.service"
70FILES_distcc-distmon-gnome = " ${bindir}/distccmon-gnome \
71 ${datadir}/distcc"
Brad Bishop19323692019-04-05 15:28:33 -040072
73
74#
75# distcc upstream dropped the 3.2 branch which we reference in older project releases
76# the revisions are there, just the branch is not. In order to be able to continue
77# to build those old releases, adjust any mirror tarball to contain the missing branch
78#
79fixup_distcc_mirror_tarball () {
80 TBALL=${DL_DIR}/git2_github.com.distcc.distcc.git.tar.gz
81 if [ -f $TBALL ]; then
82 TDIR=`mktemp -d`
83 cd $TDIR
84 tar -xzf $TBALL
85 set +e
86 git rev-parse --verify 3.2
87 if [ "$?" != "0" ]; then
88 git branch 3.2 d8b18df3e9dcbe4f092bed565835d3975e99432c
89 tar -czf $TBALL *
90 fi
91 set -e
92 rm -rf $TDIR/*
93 fi
94}
95do_fetch[postfuncs] += "fixup_distcc_mirror_tarball"