forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sys-devel/distcc: version bump to 3.3.
Closes: https://bugs.gentoo.org/525838 Closes: https://bugs.gentoo.org/573064 Closes: https://bugs.gentoo.org/650704 Package-Manager: Portage-2.3.24, Repoman-2.3.6
- Loading branch information
Showing
2 changed files
with
194 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
DIST distcc-3.1.tar.bz2 588820 BLAKE2B fbd00a9cf8af0b2a0c901a60086901e505d9859827a8249ed7937cb8298fc946f6f72470e40dba17e143dbf1525cb0aef4deec3d083268d608f24f1447301df0 SHA512 0ca7167309badf5d36d2783bab398295b52c43fde0355cf1902032c70b27fc40c21729c98af0ee4c0aeea0c48755e4626308e9385d938b7822de27cdb048e7bd | ||
DIST distcc-3.2rc1.tar.bz2 609904 BLAKE2B e6b928f3b9231524d37bdf86b39cd6a3601b6cdb1e03d913ae562286794240b4dd364d5d01da2176f9bb440809b166b4b877443459751adf8bd3ecf92ceb8476 SHA512 98b2e8423d724bbb6a615d946d170441a8e293310785f867d7a277b318c043a37b0af39ae8ed1f7a0667803de9db1d1925199bad85130cf9bd9cb347635125ee | ||
DIST distcc-3.3.tar.gz 1171281 BLAKE2B f637cacbfdaaca6efb56e912de55fcfa49e3fffcb8f34649e339f16376250e18a20d30281a46f207992c0b300c726427a3ad5a77bd8976d2993f8f49b9b6b970 SHA512 459c175c8ac905bc70299e77ac11b6d24782bd69c9152126249c9af8fbb4c269e6f7317b02abf50cf6cc0405dd0f887e803320e19dc528a19c4c488640c615dc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,193 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
PYTHON_COMPAT=( python3_{5,6} ) | ||
|
||
inherit autotools flag-o-matic python-single-r1 systemd toolchain-funcs user xdg-utils | ||
|
||
MY_P="${P/_}" | ||
DESCRIPTION="Distribute compilation of C code across several machines on a network" | ||
HOMEPAGE="http://distcc.org/" | ||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz" | ||
|
||
LICENSE="GPL-2" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" | ||
IUSE="gnome gssapi gtk hardened ipv6 selinux xinetd zeroconf" | ||
|
||
RESTRICT="test" | ||
|
||
CDEPEND="${PYTHON_DEPS} | ||
dev-libs/popt | ||
gnome? ( | ||
>=gnome-base/libgnome-2 | ||
>=gnome-base/libgnomeui-2 | ||
x11-libs/gtk+:2 | ||
x11-libs/pango | ||
) | ||
gssapi? ( net-libs/libgssglue ) | ||
gtk? ( x11-libs/gtk+:2 ) | ||
zeroconf? ( >=net-dns/avahi-0.6[dbus] ) | ||
" | ||
DEPEND="${CDEPEND} | ||
sys-libs/binutils-libs | ||
virtual/pkgconfig" | ||
RDEPEND="${CDEPEND} | ||
!net-misc/pump | ||
dev-util/shadowman | ||
>=sys-devel/gcc-config-1.4.1 | ||
selinux? ( sec-policy/selinux-distcc ) | ||
xinetd? ( sys-apps/xinetd )" | ||
|
||
REQUIRED_USE="${PYTHON_REQUIRED_USE}" | ||
|
||
S="${WORKDIR}/${MY_P}" | ||
|
||
pkg_setup() { | ||
enewuser distcc 240 -1 -1 daemon | ||
python-single-r1_pkg_setup | ||
|
||
DCCC_PATH="/usr/$(get_libdir)/distcc/bin" | ||
DISTCC_VERBOSE="0" | ||
} | ||
|
||
src_prepare() { | ||
eapply "${FILESDIR}/${PN}-3.0-xinetd.patch" | ||
# bug #255188 | ||
eapply "${FILESDIR}/${PN}-3.2_rc1-freedesktop.patch" | ||
# SOCKSv5 support needed for Portage, bug #537616 | ||
eapply "${FILESDIR}/${PN}-3.2_rc1-socks5.patch" | ||
eapply_user | ||
|
||
# Bugs #120001, #167844 and probably more. See patch for description. | ||
use hardened && eapply "${FILESDIR}/distcc-hardened.patch" | ||
|
||
sed -i \ | ||
-e "/PATH/s:\$distcc_location:${EPREFIX}${DCCC_PATH}:" \ | ||
-e "s:@PYTHON@:${EPYTHON}:" \ | ||
pump.in || die "sed failed" | ||
|
||
sed \ | ||
-e "s:@EPREFIX@:${EPREFIX:-/}:" \ | ||
-e "s:@libdir@:/usr/$(get_libdir):" \ | ||
"${FILESDIR}/3.2/distcc-config" > "${T}/distcc-config" || die | ||
|
||
eaclocal -Im4 --output=aclocal.m4 | ||
eautoconf | ||
} | ||
|
||
src_configure() { | ||
local myconf="--disable-Werror" | ||
|
||
# --disable-rfc2553 b0rked, bug #254176 | ||
use ipv6 && myconf="${myconf} --enable-rfc2553" | ||
|
||
econf \ | ||
$(use_with gtk) \ | ||
$(use_with gnome) \ | ||
$(use_with gssapi auth) \ | ||
$(use_with zeroconf avahi) \ | ||
${myconf} | ||
} | ||
|
||
src_install() { | ||
default | ||
python_optimize | ||
|
||
newinitd "${FILESDIR}/3.2/init" distccd | ||
systemd_dounit "${FILESDIR}/distccd.service" | ||
systemd_install_serviced "${FILESDIR}/distccd.service.conf" | ||
|
||
cp "${FILESDIR}/3.2/conf" "${T}/distccd" || die | ||
if use zeroconf; then | ||
cat >> "${T}/distccd" <<-EOF || die | ||
# Enable zeroconf support in distccd | ||
DISTCCD_OPTS="\${DISTCCD_OPTS} --zeroconf" | ||
EOF | ||
|
||
sed -i '/ExecStart/ s|$| --zeroconf|' "${D}$(systemd_get_systemunitdir)"/distccd.service || die | ||
fi | ||
doconfd "${T}/distccd" || die | ||
|
||
cat > "${T}/02distcc" <<-EOF || die | ||
# This file is managed by distcc-config; use it to change these settings. | ||
# DISTCC_LOG and DISTCC_DIR should not be set. | ||
DISTCC_VERBOSE="${DISTCC_VERBOSE:-0}" | ||
DISTCC_FALLBACK="${DISTCC_FALLBACK:-1}" | ||
DISTCC_SAVE_TEMPS="${DISTCC_SAVE_TEMPS:-0}" | ||
DISTCC_TCP_CORK="${DISTCC_TCP_CORK}" | ||
DISTCC_SSH="${DISTCC_SSH}" | ||
UNCACHED_ERR_FD="${UNCACHED_ERR_FD}" | ||
DISTCC_ENABLE_DISCREPANCY_EMAIL="${DISTCC_ENABLE_DISCREPANCY_EMAIL}" | ||
DCC_EMAILLOG_WHOM_TO_BLAME="${DCC_EMAILLOG_WHOM_TO_BLAME}" | ||
EOF | ||
doenvd "${T}/02distcc" || die | ||
|
||
keepdir "${DCCC_PATH}" || die | ||
|
||
dobin "${T}/distcc-config" || die | ||
|
||
if use gnome || use gtk; then | ||
einfo "Renaming /usr/bin/distccmon-gnome to /usr/bin/distccmon-gui" | ||
einfo "This is to have a little sensability in naming schemes between distccmon programs" | ||
mv "${ED}/usr/bin/distccmon-gnome" "${ED}/usr/bin/distccmon-gui" || die | ||
dosym distccmon-gui /usr/bin/distccmon-gnome || die | ||
fi | ||
|
||
if use xinetd; then | ||
insinto /etc/xinetd.d || die | ||
newins "doc/example/xinetd" distcc || die | ||
fi | ||
|
||
insinto /usr/share/shadowman/tools | ||
newins - distcc <<<"${EPREFIX}${DCCC_PATH}" | ||
|
||
rm -r "${ED}/etc/default" || die | ||
rm "${ED}/etc/distcc/clients.allow" || die | ||
rm "${ED}/etc/distcc/commands.allow.sh" || die | ||
} | ||
|
||
pkg_postinst() { | ||
if [[ ${ROOT} == / ]]; then | ||
eselect compiler-shadow update distcc | ||
fi | ||
|
||
use gnome && xdg_desktop_database_update | ||
|
||
elog | ||
elog "Tips on using distcc with Gentoo can be found at" | ||
elog "https://wiki.gentoo.org/wiki/Distcc" | ||
elog | ||
elog "How to use pump mode with Gentoo:" | ||
elog "# distcc-config --set-hosts \"foo,cpp,lzo bar,cpp,lzo baz,cpp,lzo\"" | ||
elog "# echo 'FEATURES=\"\${FEATURES} distcc distcc-pump\"' >> /etc/portage/make.conf" | ||
elog "# emerge -u world" | ||
elog | ||
elog "To use the distccmon programs with Gentoo you should use this command:" | ||
elog "# DISTCC_DIR=\"${DISTCC_DIR:-${BUILD_PREFIX}/.distcc}\" distccmon-text 5" | ||
|
||
if use gnome || use gtk; then | ||
elog "Or:" | ||
elog "# DISTCC_DIR=\"${DISTCC_DIR:-${BUILD_PREFIX}/.distcc}\" distccmon-gnome" | ||
fi | ||
|
||
elog | ||
elog "***SECURITY NOTICE***" | ||
elog "Since distcc-3.3, whitelist is used for what distccd could execute. The whilelist" | ||
elog "has to be generated manually by invoking `update-distcc-symlinks`. To revert" | ||
elog "to the old behavior, you need to pass --make-me-a-botnet to distccd in" | ||
elog "/etc/conf.d/distccd. Cf. https://github.com/distcc/distcc/pull/243." | ||
} | ||
|
||
pkg_prerm() { | ||
if [[ -z ${REPLACED_BY_VERSION} && ${ROOT} == / ]]; then | ||
eselect compiler-shadow remove distcc | ||
fi | ||
} | ||
|
||
pkg_postrm() { | ||
use gnome && xdg_desktop_database_update | ||
} |