summaryrefslogtreecommitdiff
blob: fbc0cda64767edea7756e8d91b9b4ed5d8747b3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/icecream/icecream-0.9.7-r1.ebuild,v 1.3 2012/08/23 11:42:07 xarthisius Exp $

EAPI=4

inherit autotools base user

MY_P=icecc-${PV}

DESCRIPTION="icecc is a program for distributed compiling of C(++) code across several machines; based on distcc"
HOMEPAGE="http://en.opensuse.org/Icecream"
SRC_URI="ftp://ftp.suse.com/pub/projects/${PN}/${MY_P}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
IUSE=""

S=${WORKDIR}/${MY_P}

PATCHES=(
	"${FILESDIR}/0.9.6-symlinks.patch"
	"${FILESDIR}/0.9.6-crosscompile.patch"
	"${FILESDIR}/${PV}-automake.patch"
	"${FILESDIR}/${PV}-glibc2.16.patch"
	"${FILESDIR}/${PN}-conf.d-verbosity.patch"
	"${FILESDIR}/${PN}-gentoo-multilib.patch"
)

pkg_setup() {
	enewgroup icecream
	enewuser icecream -1 -1 /var/cache/icecream icecream
}

src_prepare() {
	base_src_prepare
	sed -i -e "s/Defaut/Default/g" suse/sysconfig.icecream || die #275761
	eautoreconf
}

src_install() {
	default

	dosbin "${FILESDIR}"/icecream-config
	dosbin "${FILESDIR}"/icecream-create-env

	newconfd suse/sysconfig.icecream icecream
	doinitd "${FILESDIR}"/icecream

	diropts -m0755
	keepdir /usr/lib/icecc/bin
}

pkg_postinst() {
	ebegin "Scanning for compiler front-ends..."
	/usr/sbin/icecream-config --install-links
	/usr/sbin/icecream-config --install-links "${CHOST}"
	eend ${?}

	elog
	elog "If you have compiled binutils/gcc/glibc with processor-specific flags"
	elog "(as normal using Gentoo), there is a greater chance that your compiler"
	elog "won't work on other machines. The best would be to build gcc, glibc and"
	elog "binutils without those flags and then copy the needed files into your"
	elog "tarball for distribution to other machines. This tarball can be created"
	elog "by running /usr/bin/icecc --build-native, and used by setting"
	elog "ICECC_VERSION in /etc/conf.d/icecream"
	elog '  ICECC_VERSION=<filename_of_archive_containing_your_environment>'
	elog
	elog "To use icecream with portage add the following line to /etc/make.conf"
	elog '  PREROOTPATH=/usr/lib/icecc/bin'
	elog
	elog "To use icecream with normal make use (e.g. in /etc/profile)"
	elog '  PATH=/usr/lib/icecc/bin:$PATH'
	elog
	elog "N.B. To use icecream with ccache, the ccache PATH should come first:"
	elog '  PATH=/usr/lib/ccache/bin:/usr/lib/icecc/bin:$PATH'
	elog
	elog "Don't forget to open the following ports in your firewall(s):"
	elog " TCP/10245 on the daemon computers (required)"
	elog " TCP/8765 for the the scheduler computer (required)"
	elog " TCP/8766 for the telnet interface to the scheduler (optional)"
	elog " UDP/8765 for broadcast to find the scheduler (optional)"
	elog
	elog "Further usage instructions: ${HOMEPAGE}"
}