diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-devel/distcc |
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-devel/distcc')
25 files changed, 2224 insertions, 0 deletions
diff --git a/sys-devel/distcc/Manifest b/sys-devel/distcc/Manifest new file mode 100644 index 000000000000..885b73bbd257 --- /dev/null +++ b/sys-devel/distcc/Manifest @@ -0,0 +1,28 @@ +AUX 3.0/conf 1287 SHA256 253cfaa5b53fe4943a9db83e76ff6d6e8855665f69c2f7beca124af3ec63c88a SHA512 e3c32d1bf67fa475ce7b8f6f27835ca604eca23bcb338312c3b93d59123c2747a7c45b2ba7fe19a0c3eec9dca409aa036b1c7aa3776d0f163bd06ac7bb6b2e94 WHIRLPOOL dbd0e9b9b27d40d0ad92cf9b9c663bc5d1b2351a61cd5f9a1e526dfce889eb6bad39ce0b88efd1cbbd45bc6ed827ab5f29150faf0e7aacb9aabf8e730aa08da8 +AUX 3.0/distcc-config 3287 SHA256 63a8d15fea59a6c633c0b40e5e4e153e87fe4f0145fee0b5827934d9fbd1ba47 SHA512 e42c6a7ca191e52937f5754ae4f17f421c78d4e42690b01f1e07ffa057e96f303c4cd9fdaa545df9afbb6596d23bd1d1d51a7467fdb039a6993979ee01eb4754 WHIRLPOOL f9426442400a7c4a7c8a1d69cf51c5db7e90d7bd342bd8fef8d0852cf0d10c3e11c98be9c56dece587274b7f3b1d77cc08a7e795e58d0ace7b7f4fb49850b7d0 +AUX 3.1/conf 1143 SHA256 f6fe901a78b6ca3277a7990920b317265ba5a5d8f137a62b287da730c665890f SHA512 11330d0725ace3d4d48615d0b29a296c89a462047b9d1aa5600b835be064cc6a1ce66958214c518e5bcd8e3048fa7f9aa4f59beb7cbb59494b363358e1447831 WHIRLPOOL 378d4aebd04ad9c60e5ab0e5dcdecd20fc9bf6021a6223bdcd5f7225ab658c2bbc1ccacd6c619bf4a87f59be3464d491afaff56e415054b9afd441a85cde7cc8 +AUX 3.1/init 671 SHA256 4af1591a0f95e45648f0c5a7ffc5e49be012f2f6e497235b3363e9e709dc627f SHA512 5e1ff2c6c72ec761afac48c17e5c558617b512676a007e076f9ecbdd1f69b95ff626929952b2f5fff9a927f0422bd2fded297ad494d64c1113ea11c55dcbe605 WHIRLPOOL fd49143ff850d5f07f4227fec2bd75efc2a577350927ff1a5ba9235301c751e53a48ffbc15d04894ca572b72ee2cc1833256ce5de8a3544427958ea7fe6d0351 +AUX 3.2/conf 1287 SHA256 253cfaa5b53fe4943a9db83e76ff6d6e8855665f69c2f7beca124af3ec63c88a SHA512 e3c32d1bf67fa475ce7b8f6f27835ca604eca23bcb338312c3b93d59123c2747a7c45b2ba7fe19a0c3eec9dca409aa036b1c7aa3776d0f163bd06ac7bb6b2e94 WHIRLPOOL dbd0e9b9b27d40d0ad92cf9b9c663bc5d1b2351a61cd5f9a1e526dfce889eb6bad39ce0b88efd1cbbd45bc6ed827ab5f29150faf0e7aacb9aabf8e730aa08da8 +AUX 3.2/distcc-config 5213 SHA256 a1e4ad31de9ed6423a524943e0221bb9d3f2600030c2d172d97808fc3da331c3 SHA512 4863ce7fdd2f754d1b689533d04e2a306f61adecf85b9fb8a7ff4a74e94f3cad74ca25cdffe9c7f8857d490ee94af1ceef8a097709bb9b77a4bef59af3e0fe71 WHIRLPOOL 4ff9572763f90fe08d0aee8d2451fb935248318d523e0b10d5e6310184af8daaa878756ef5b3629b0de91fc67b94b23c8ae20ca297a86bee8e2d998d12571bd3 +AUX 3.2/init 671 SHA256 4af1591a0f95e45648f0c5a7ffc5e49be012f2f6e497235b3363e9e709dc627f SHA512 5e1ff2c6c72ec761afac48c17e5c558617b512676a007e076f9ecbdd1f69b95ff626929952b2f5fff9a927f0422bd2fded297ad494d64c1113ea11c55dcbe605 WHIRLPOOL fd49143ff850d5f07f4227fec2bd75efc2a577350927ff1a5ba9235301c751e53a48ffbc15d04894ca572b72ee2cc1833256ce5de8a3544427958ea7fe6d0351 +AUX distcc-3.0-fix-fortify.patch 313 SHA256 7b57ae28dcef0c1ecd273a8a10dd1a16fa6a7af618d5438e1fe4398863fa8901 SHA512 11f125fd12398d7e7cdcbbb2bb57d5d374fc3dda0eb88d22176c1c9948393debaf4aa05975d79e6fa4ca8de69b332cd2a75b301868b473c42511901e38b4c2a1 WHIRLPOOL 6eb87c3228717cff12a55770c6ff3d3846ed102ce5fe65e48e49cb7198c60d05fb0f779150c2f21c9cad59d869c249b53ae37f2c2332bacd583298aba6651399 +AUX distcc-3.0-xinetd.patch 558 SHA256 9ef11743e91167548ac6324aa21608a62fd09149a8dbdbab32602f70804e0560 SHA512 1c0aa31606e1ce828ad52c9fff672d9e13a00494b8a3441095aca101d76f0f296308e359330a85745e2c60533eb1dcf82cea3feff2d0a3154b204d56735f0d14 WHIRLPOOL 59b3fdc21fe5a15a5163b02ec6c778085b85ae2eb2c98a1b88a6b5cfb7cd2a9a81512e5ef66892c7cdb1ea17e7e6728fd059b42762e15d2d20a60ad79c458155 +AUX distcc-3.1-argc-fix.patch 480 SHA256 e576553f27c7fabc2dcd3f361a98e2db70fef9fa4f08df91a8bb00c178912a1b SHA512 da9266ee6ce36cf427324b94734fa6e368498422b0a3adcdde9bfe252e163173a989db323b9d2c7e2a2b1048aa76ede13d4dbd169fef34fc559e244a7b802b00 WHIRLPOOL df9b32d2f3697c90bdca4a606280fe9f69d83f5d24f5031797d7a176a563ad4da3b191d085d909a8a9a0c86afba12a6481cda69c3e897d5ae00003c8cccc8877 +AUX distcc-3.1-freedesktop.patch 2959 SHA256 bf8694f4d1eb5e757615929bc58587f538ce733891097eb42204423cab644798 SHA512 4eb6497179ca1f6b57d1b7f6ca8f58d2ad8b7a512f771cd63f835ddf457b988d188800a1d662463d0caec66c06ad151378145f5b910f6bd9eb922e0c228e43c9 WHIRLPOOL 3da6509bcf47132b1f9d215e84756c8e015ba532f2e078ea2b2de163157a44db0fa88d8d37cd772851658586d5308da141f93ee706aaf9e307664c0018dce81d +AUX distcc-3.1-python.patch 10754 SHA256 8ba3c0745a30b5901cfb37f4231d754e5779cbc5a6fa173fb196661d2a035cc2 SHA512 8a66113ef0157b6ec382883325f4acc1dcd7df573c3c7f14bf88429b6060687faa64862a53b510709f6429e082aad97be7934e964168d91f85086c8c5f764a1e WHIRLPOOL 3aed5e32be73c04af7786c0b888e3a11b7f2dbb78c958f2aa1aa4175651cb850aab4dc1559aaacabe2295168aed692238ac71cee1b838d1b3a6a3a44e5db0eee +AUX distcc-3.2_rc1-freedesktop.patch 3140 SHA256 7ead1174fc170cee5c32ac183edf0c15ae35df56bedbbf6bc24c0099fe23b7f6 SHA512 fe953e1884b498da9cbb83ca90af9e49b554ad56fef8a8f55b9e6b46e5904f7376e5e58a9123f4acb474e16577fb6c9371a12eddc29c07c5d488be847f4ed2ef WHIRLPOOL b073d4c775493a2976dc430f949269d6328178254c2080ca1f8c71be3b935cdfcc5e3135e2504e87267059df243f744d2f7f90a517aefebeaed5f55e40607eb1 +AUX distcc-3.2_rc1-gssapi.patch 1638 SHA256 2693fbf5b76ab64874e0a4bc1540067f402799dfabde5202a89ec045f1d88ea0 SHA512 c804189f87068f82e7cb18de4e8d30cc67db7cc7fbcb13872d44e3f6fb006b3c779adf9c6068ae50831ef649da718ddb33c0efc4354636aacc9a7217b3c9a348 WHIRLPOOL fd0afc3bcdc176aec7f2f2e9d990578573628c66a23da60ba8e34663c86835ca138f48a2feb4f02dd8cfa2c28442f65338ea531994a09db38bbdf62bfdfcbe4d +AUX distcc-3.2_rc1-python.patch 10592 SHA256 935328943efe26f20bfb94952bc8bcb7f8536465db72411d81e6f3d1ade37989 SHA512 513c2fb9aa8f222a0f6062795fac1f855d67467d796b406c6b685e345554ce09a96ab9e594d6a05aad6c5a0f8c7906700529cfb562f2dd7c498d9078219b3d6b WHIRLPOOL 0ec9deafa00b161a29ead3ff7791262a189501d2ca69d03d46eb5838ca3effa8e1de7878b72917634cb261ee2cf68401f2b8ca70048345d4bfddc6db82fa56aa +AUX distcc-3.2_rc1-socks5.patch 5462 SHA256 85b48489c360d384a67de91f1a750413a2239dd81fe45d7270c62451114a6f22 SHA512 707b6ad02bb7ff1507cfbfbb4cee673d5f0dc776006e9b7e801deabccf05c6057b33ea43c6a3ddd1756b8d07ff1d5e3087b635f15285195ba795b8679ebdc860 WHIRLPOOL 92f2721675d8dc06d73f8c5b0f0236fc1dc57f1dd1f05bc3765cc5daaa1b41db563af579c8dac4741666aeb10c12edfabf8109eef2e36cbd267506ee1c3ea3d6 +AUX distcc-config 4762 SHA256 91d25533a1395089b5db1dc67270b5ec1ac0b6c4d9d66641f9e2a03c3b50acb2 SHA512 a996e947de0b1156bf74587ad5c321dbad55fae61ee560eb3463bb3d3d5a125539ca1f5e6c9e50c6d0cdac6b4fe3ea489738a7c007c6adc9a3eec55939f139b7 WHIRLPOOL c557858d97aa7888e0c13c42c1aaa38ce34ab3cedc220b8f0c34fe2364dc0dd385acbaa4a3d1e1500a5be93ff5170c55f0715b67482f45468dff6eaad3407692 +AUX distcc-hardened.patch 1084 SHA256 dcf63f201cb7f4bf13eeb1485a5056c64370b9239d28e4acc77a47046dcda6cf SHA512 d1150dc83bf89c332f8c0bd01e15f52f95d71868733bd2e5430a5377f1a4aaa2b5b6e0cd488d33d9b94ce18b0eeeadf4af719db536b001b50e4d482b35c7e057 WHIRLPOOL 5faa97711f48d3bb41c6362d9467dab28546d01015de1b76eaaf847d633711bf56af16d1e3484b9bf9215cdf5436fcc6837bc870287cce02553b9ff756215111 +AUX distccd.service 244 SHA256 d9cbc0f6fbadd1628dfdd9b31f5ade85f4a29cdd2dc05382aff8d9539881a746 SHA512 0626a2da412df4a124ec8f3486b48af92895e97ad626bb848f14e60c9b016de313ca7c17a09565de95fa48233c9f7e37bf79038d1115b339a2033f0eacf0a22f WHIRLPOOL 31e258449949cd8185e5f83cfdc62017dd5576e8c80468fc5624c6f49abd133b488f3d333096fbdb213a8a7dddfb2d2414949e5fc1e68c79c569fd73298f3c93 +AUX distccd.service.conf 186 SHA256 75fd7954ab324efeeb3c7a9379bf261370f4aa715c57f3a9b39413822ce5ebc7 SHA512 19bf25757ba724ba4e728797b8c6fccabb8b95d2945f0e3c216303a04a4e7470507dcf8535657954f265ed5f067f32dcb3fb6558e9958a86de76b1e66e2b31b6 WHIRLPOOL 7b110c3a799469d368ae510d915fbdc6999a4750fa4abd91045e5576ac5aedb5daa063741a5833388d2dfb97d5b76e235bfd49875bd571f4732e27e8cabdabc7 +DIST distcc-3.1.tar.bz2 588820 SHA256 f55dbafd76bed3ce57e1bbcdab1329227808890d90f4c724fcd2d53f934ddd89 SHA512 0ca7167309badf5d36d2783bab398295b52c43fde0355cf1902032c70b27fc40c21729c98af0ee4c0aeea0c48755e4626308e9385d938b7822de27cdb048e7bd WHIRLPOOL 9152feab2b7def17606259293fe7af7815ec295defa0287b7e5c054f17b0cb73d07f6e721855fd06eec4fc838c44ff509db20fc89c47871f7f1349e08cd126bd +DIST distcc-3.2rc1.tar.bz2 609904 SHA256 311671e844625d7fdb18dd3d096cd855751cfe8de13827682bcb7beff9133b30 SHA512 98b2e8423d724bbb6a615d946d170441a8e293310785f867d7a277b318c043a37b0af39ae8ed1f7a0667803de9db1d1925199bad85130cf9bd9cb347635125ee WHIRLPOOL d366abb05d10aa5a458acf7b57f5bf52fd4f5ff46c68494e28140eb944524e66d729ebef60190acb1d9b33a0fb8faea6b909509de67294c29dbebcf01d500a36 +EBUILD distcc-3.1-r10.ebuild 4511 SHA256 cc01f857cf217f2a518a80d8497d2f846375f6d9ff0f236c083ca7b1ac9e2461 SHA512 bc389f2d3c521c59fcfe951ac67a0bfe951da01acf15c01ebf8923fe2c9b3d44876d19f3620c50740616ffa9c36c0b6e483652d19b94870fa3c89af5b5cd1b52 WHIRLPOOL 004340a6582760fde2d9168b8f02fc5d19e7be0cd5bc22434a835bdad58934f6fd4e146fab055fd00391592aa8d2b2963e6f3427ecd0af3da048c26ae738437b +EBUILD distcc-3.2_rc1-r4.ebuild 5741 SHA256 178acde4fd41d4150a00d045644871680fd7d383f6aaa9d02082d1f87b12b69e SHA512 e835571ceecf9653848b85112d983e73358aa5fb6121c099335967155e9bbee50c685bb1b14f046547b99e0a992387fab80869716136cea51aa377a69f79373b WHIRLPOOL 129b874f0f4d9e8be6490efc6066c39a24c62f4c95b2263bf2295a1de8c746176dd456963bfc080024c63e9a7dea3478082166e748d5de800c59a266ed67017e +EBUILD distcc-3.2_rc1-r5.ebuild 5422 SHA256 8fe9505a080f06c7d42a210df7c237b9ac8f356071a4ab2492e3007bd6f54ba8 SHA512 d099c1fb80e9094fd8e6affb9565373e9f83b7160a29a5b7c8108814f486f4d19294c89175ce9e954604765c0c527161b12712594055bc1c33e589a9872d83af WHIRLPOOL 1c47f066c7a1045f4f70e4daa10a55d4fafeec7f1852b57ddc7a3170c841d7967f02363cb13b7113f6c4e5a1dd4d0a5122cb40a7ea65567c4e322bd69b1902a9 +MISC ChangeLog 7754 SHA256 b6ee02e1e9e7607539178853e74202aeb941152f9dd3e636029f3b0c1a99f2c1 SHA512 243c89750837c04bca69441abb56f0d81258d318964dd956f92720a244a9f529263c2243cd0487c353d01cd5e0064fe12b6eb26e99b5118269223c3456ae37c4 WHIRLPOOL c1ccfe5600be8e95fbeb051a4ba79451ea458a6d383a710bb4993d8e8759294995884a4171172a8d08549b1bac71cb0fa95b8f092d09bc8966e9a7e51d294bb5 +MISC ChangeLog-2015 43187 SHA256 092f07c773f2361956f0e8b4d28d338aaa03ee4143644db6922a803e93f90f75 SHA512 2845de19f4949be5630835998b1b2a95369f2d49454579f14df5070186f3416d750014cd2945353d07f88e7e06fd53a125834570f2a2e496060697da36cb7991 WHIRLPOOL db2463f7da6cbf5ed97ee04e7498b804862ac6614eb9b6e84f30280c34103bf5bd47f798d5d516f597ebf3abbad5fd9af6af8e1a5ee58c32b615c994a8b2519e +MISC metadata.xml 591 SHA256 bb88c70f929966bac3eb4e28ae28551d77b51405fdb2a7c1d821d900675d27fe SHA512 e1505d96de755aa36e470200545efec04e93f21fb122d0679b47f0e5b4fd17aeb82d31d02bed9da4a99408200748df14e4599f4ba03925c39566f6411eb98b71 WHIRLPOOL 0bd64f2dc0d1a5e341995838237ef715b83827f6ce91a0d9907330ca70ed4ad23d8f41f6f2361cc9bd2ae3086f1b721b2625b0d9b27da305c23ac55a8c31be18 diff --git a/sys-devel/distcc/distcc-3.1-r10.ebuild b/sys-devel/distcc/distcc-3.1-r10.ebuild new file mode 100644 index 000000000000..0aea024a0e79 --- /dev/null +++ b/sys-devel/distcc/distcc-3.1-r10.ebuild @@ -0,0 +1,169 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PYTHON_COMPAT=( python2_7 ) + +inherit eutils fdo-mime flag-o-matic multilib python-single-r1 systemd toolchain-funcs user + +DESCRIPTION="Distribute compilation of C code across several machines on a network" +HOMEPAGE="http://distcc.org/" +SRC_URI="https://distcc.googlecode.com/files/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd" +IUSE="avahi gtk hardened ipv6 selinux xinetd" + +RESTRICT="test" + +CDEPEND="${PYTHON_DEPS} + dev-libs/popt + avahi? ( >=net-dns/avahi-0.6[dbus] ) + gtk? ( x11-libs/gtk+:2 )" +DEPEND="${CDEPEND} + virtual/pkgconfig" +RDEPEND="${CDEPEND} + !net-misc/pump + >=sys-devel/gcc-config-1.4.1 + selinux? ( sec-policy/selinux-distcc ) + xinetd? ( sys-apps/xinetd )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DISTCC_LOG="" +DCCC_PATH="/usr/$(get_libdir)/distcc/bin" +DISTCC_VERBOSE="0" + +pkg_setup() { + enewuser distcc 240 -1 -1 daemon + python-single-r1_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}/${PN}-3.0-xinetd.patch" + # bug #253786 + epatch "${FILESDIR}/${PN}-3.0-fix-fortify.patch" + # bug #255188 + epatch "${FILESDIR}/${P}-freedesktop.patch" + # bug #258364 + epatch "${FILESDIR}/${P}-python.patch" + # bug #351979 + epatch "${FILESDIR}/${P}-argc-fix.patch" + epatch_user + + sed -i -e "/PATH/s:\$distcc_location:${DCCC_PATH}:" pump.in || die + + # Bugs #120001, #167844 and probably more. See patch for description. + use hardened && epatch "${FILESDIR}/distcc-hardened.patch" +} + +src_configure() { + local myconf="--disable-Werror --with-docdir=/usr/share/doc/${PF}" + # More legacy stuff? + [ "$(gcc-major-version)" = "2" ] && filter-lfs-flags + + # --disable-rfc2553 b0rked, bug #254176 + use ipv6 && myconf="${myconf} --enable-rfc2553" + + econf \ + $(use_with avahi) \ + $(use_with gtk) \ + ${myconf} +} + +src_install() { + # In rare cases, parallel make install failed + MAKEOPTS+=" -j1" + default + + dobin "${FILESDIR}/3.0/distcc-config" + + newinitd "${FILESDIR}/${PV}/init" distccd + systemd_dounit "${FILESDIR}/distccd.service" + systemd_install_serviced "${FILESDIR}/distccd.service.conf" + + cp "${FILESDIR}/3.1/conf" "${T}/distccd" || die + if use avahi; then + cat >> "${T}/distccd" <<-EOF + + # Enable zeroconf support in distccd + DISTCCD_OPTS="\${DISTCCD_OPTS} --zeroconf" + EOF + + sed -i '/ExecStart/ s|$| --zeroconf|' "${ED}"/usr/lib/systemd/system/distccd.service || die + fi + doconfd "${T}/distccd" + + cat > "${T}/02distcc" <<-EOF + # This file is managed by distcc-config; use it to change these settings. + DISTCC_LOG="${DISTCC_LOG}" + DCCC_PATH="${DCCC_PATH}" + DISTCC_VERBOSE="${DISTCC_VERBOSE}" + EOF + doenvd "${T}/02distcc" + + # create the masquerade directory + dodir "${DCCC_PATH}" + for f in cc c++ gcc g++; do + dosym /usr/bin/distcc "${DCCC_PATH}/${f}" + if [ "${f}" != "cc" ]; then + dosym /usr/bin/distcc "${DCCC_PATH}/${CTARGET:-${CHOST}}-${f}" + fi + done + + if 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 + fi + + if use xinetd; then + insinto /etc/xinetd.d + newins "doc/example/xinetd" distcc + fi + + rm -rf "${ED}/etc/default" || die + rm -f "${ED}/etc/distcc/clients.allow" || die + rm -f "${ED}/etc/distcc/commands.allow.sh" || die + + python_fix_shebang "${ED}" + python_optimize +} + +pkg_postinst() { + use gtk && fdo-mime_desktop_database_update + + if use ipv6; then + elog + elog "IPv6 is not supported yet by ${P}." + fi + 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 "# pump emerge -u world" + elog + elog "To use the distccmon programs with Gentoo you should use this command:" + elog "# DISTCC_DIR=\"${DISTCC_DIR}\" distccmon-text 5" + + if use gtk; then + elog "Or:" + elog "# DISTCC_DIR=\"${DISTCC_DIR}\" distccmon-gnome" + fi + + elog + elog "***SECURITY NOTICE***" + elog "If you are upgrading distcc please make sure to run etc-update to" + elog "update your /etc/conf.d/distccd and /etc/init.d/distccd files with" + elog "added security precautions (the --listen and --allow directives)" + elog +} + +pkg_postrm() { + use gtk && fdo-mime_desktop_database_update +} diff --git a/sys-devel/distcc/distcc-3.2_rc1-r4.ebuild b/sys-devel/distcc/distcc-3.2_rc1-r4.ebuild new file mode 100644 index 000000000000..94a42143b8a8 --- /dev/null +++ b/sys-devel/distcc/distcc-3.2_rc1-r4.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PYTHON_COMPAT=( python2_7 ) + +inherit autotools eutils fdo-mime flag-o-matic multilib python-single-r1 systemd toolchain-funcs user + +MY_P="${P/_}" +DESCRIPTION="Distribute compilation of C code across several machines on a network" +HOMEPAGE="http://distcc.org/" +SRC_URI="https://distcc.googlecode.com/files/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 s390 ~sh sparc x86 ~sparc-fbsd ~x86-fbsd" +IUSE="crossdev 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} + virtual/pkgconfig" +RDEPEND="${CDEPEND} + !net-misc/pump + >=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}" + +DCCC_PATH="/usr/$(get_libdir)/distcc/bin" +DISTCC_VERBOSE="0" + +pkg_setup() { + enewuser distcc 240 -1 -1 daemon + python-single-r1_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}/${PN}-3.0-xinetd.patch" + # bug #253786 + epatch "${FILESDIR}/${PN}-3.0-fix-fortify.patch" + # bug #255188 + epatch "${FILESDIR}/${PN}-3.2_rc1-freedesktop.patch" + # bug #258364 + epatch "${FILESDIR}/${PN}-3.2_rc1-python.patch" + # for net-libs/libgssglue + epatch "${FILESDIR}/${PN}-3.2_rc1-gssapi.patch" + # SOCKSv5 support needed for Portage, bug #537616 + epatch "${FILESDIR}/${PN}-3.2_rc1-socks5.patch" + epatch_user + + # Bugs #120001, #167844 and probably more. See patch for description. + use hardened && epatch "${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 --with-docdir=\$(datadir)/doc/${PF}" + # More legacy stuff? + [ "$(gcc-major-version)" = "2" ] && filter-lfs-flags + + # --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 + + # 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 + # 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 + + rm -r "${ED}/etc/default" || die + rm "${ED}/etc/distcc/clients.allow" || die + rm "${ED}/etc/distcc/commands.allow.sh" || die +} + +pkg_postinst() { + if [ -x "${EPREFIX}/usr/bin/distcc-config" ] ; then + if use crossdev; then + "${EPREFIX}/usr/bin/distcc-config" --update-masquerade-with-crossdev + else + "${EPREFIX}/usr/bin/distcc-config" --update-masquerade + fi + fi + + use gnome && fdo-mime_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 "If you are upgrading distcc please make sure to run etc-update to" + elog "update your /etc/conf.d/distccd and /etc/init.d/distccd files with" + elog "added security precautions (the --listen and --allow directives)" + elog +} + +pkg_postrm() { + # delete the masquerade directory + if [ ! -f "${EPREFIX}/usr/bin/distcc" ] ; then + einfo "Remove masquerade symbolic links." + rm "${EPREFIX}${DCCC_PATH}/"*{cc,c++,gcc,g++} + rmdir "${EPREFIX}${DCCC_PATH}" + fi + + use gnome && fdo-mime_desktop_database_update +} diff --git a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild new file mode 100644 index 000000000000..a2c88769102f --- /dev/null +++ b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild @@ -0,0 +1,198 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +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://distcc.googlecode.com/files/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~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} + 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 #253786 + eapply "${FILESDIR}/${PN}-3.0-fix-fortify.patch" + # bug #255188 + eapply "${FILESDIR}/${PN}-3.2_rc1-freedesktop.patch" + # bug #258364 + eapply "${FILESDIR}/${PN}-3.2_rc1-python.patch" + # for net-libs/libgssglue + eapply "${FILESDIR}/${PN}-3.2_rc1-gssapi.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 --with-docdir=\$(datadir)/doc/${PF}" + + # --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 "If you are upgrading distcc please make sure to run etc-update to" + elog "update your /etc/conf.d/distccd and /etc/init.d/distccd files with" + elog "added security precautions (the --listen and --allow directives)" + elog +} + +pkg_prerm() { + if [[ -z ${REPLACED_BY_VERSION} && ${ROOT} == / ]]; then + eselect compiler-shadow remove distcc + fi +} + +pkg_postrm() { + use gnome && xdg_desktop_database_update +} diff --git a/sys-devel/distcc/files/3.0/conf b/sys-devel/distcc/files/3.0/conf new file mode 100644 index 000000000000..c499271685e9 --- /dev/null +++ b/sys-devel/distcc/files/3.0/conf @@ -0,0 +1,40 @@ +# /etc/conf.d/distccd: config file for /etc/init.d/distccd + +DISTCCD_OPTS="" + +# this is the distccd executable +DISTCCD_EXEC="/usr/bin/distccd" + +# this is where distccd will store its pid file +DISTCCD_PIDFILE="/var/run/distccd/distccd.pid" + +# set this option to run distccd with extra parameters +# Default port is 3632. For most people the default is okay. +DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632" + +# Logging +# You can change some logging options here: +# --log-file FILE +# --log-level LEVEL [critical,error,warning, notice, info, debug] +# +# Leaving --log-file blank will log to syslog +# example: --log-file /dev/null --log-level warning +# example: --log-level critical + +DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical" + +# SECURITY NOTICE: +# It is HIGHLY recommended that you use the --listen option +# for increased security. You can specify an IP to permit connections +# from or a CIDR mask +# --listen accepts only a single IP +# --allow is now mandatory as of distcc-2.18. +# example: --allow 192.168.0.0/24 +# example: --allow 192.168.0.5 --allow 192.168.0.150 +# example: --listen 192.168.0.2 +DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24" +#DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.0.2" + +# set this for niceness +# Default is 15 +DISTCCD_OPTS="${DISTCCD_OPTS} -N 15" diff --git a/sys-devel/distcc/files/3.0/distcc-config b/sys-devel/distcc/files/3.0/distcc-config new file mode 100644 index 000000000000..ed2a2eec435e --- /dev/null +++ b/sys-devel/distcc/files/3.0/distcc-config @@ -0,0 +1,122 @@ +#!/usr/bin/env python +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +import os, re, signal, sys +from string import rstrip +from subprocess import Popen + +options=[ + '--get-hosts', + '--set-hosts', + '--get-verbose', + '--set-verbose', + '--get-log', + '--set-log', + '--help', + '--get-env', + '--set-env' +] + +tmpcmdline=sys.argv[1:] +cmdline=[] +envfile = '/etc/env.d/02distcc' + +def exithandler(foo,bar): + os.kill(0,signal.SIGKILL) + sys.exit(1) + +signal.signal(signal.SIGINT,exithandler) + +def isroot(ret=0): + if os.getuid() != 0: + if ret == 0: + print '!!!',sys.argv[:1][0],tmpcmdline[0],'must be run as root' + sys.exit(1) + else: + retval = 0 + else: + retval = 1 + return retval + +def writeenv(var,value): + isroot() + distcc_env = [] + distcc_env = open(envfile, 'r').readlines() + distcc_env_new = open(envfile, 'w') + for i in range(len(distcc_env)): + if re.compile(var+'="(.*)"').match(distcc_env[i]): + distcc_env[i] = var+'="'+value+'"\n' + distcc_env_new.write(distcc_env[i]) + #print 'Set',var,'to:',value + Popen('/usr/sbin/env-update', shell=True) + print 'If you want to use these new settings in an existing shell,' + print 'you need to "source /etc/profile" to get the changes.' + +def readenv(var): + distcc_env = open(envfile, 'r').read() + match = re.compile(var+'="(.*)"').search(distcc_env) + if match: + print var+'='+match.group(1) + else: + print var,'not set.' + +def createdistccdir(dir): + if not os.path.exists(dir): + os.mkdir(dir) + os.chmod(dir, 0755) + +for x in tmpcmdline: + if not x: + continue + if x[0:2]=="--": + if not x in options: + print "!!! Error:",x,"is an invalid option." + sys.exit(1) + else: + cmdline = x + +if '--get-hosts' in tmpcmdline: + HOSTS_ENV = os.environ.get('DISTCC_HOSTS') + HOSTS_HOME = os.environ.get('HOME')+'/hosts' + if HOSTS_ENV: + print HOSTS_ENV + elif os.path.isfile(HOSTS_HOME) and os.path.getsize(HOSTS_HOME) != 0: + print rstrip(open(HOSTS_HOME, 'r').read()) + elif os.path.exists('/etc/distcc/hosts'): + print rstrip(open('/etc/distcc/hosts', 'r').read()) + else: + print 'No configuration file found. Setup your hosts with --set-hosts.' +elif '--set-hosts' in tmpcmdline: + if isroot(1): + PATH = '/etc/distcc' + else: + PATH = os.environ.get('HOME') + createdistccdir(PATH) + open(PATH+'/hosts', 'w').write(cmdline + '\n') +elif '--get-verbose' in tmpcmdline: + readenv('DISTCC_VERBOSE') +elif '--set-verbose' in tmpcmdline: + writeenv('DISTCC_VERBOSE',tmpcmdline[1]) +elif '--get-log' in tmpcmdline: + readenv('DISTCC_LOG') +elif '--set-log' in tmpcmdline: + writeenv('DISTCC_LOG',tmpcmdline[1]) +elif '--get-env' in tmpcmdline: + if len(tmpcmdline) == 1: + print rstrip(open(envfile, 'r').read()) + elif len(tmpcmdline) == 2: + readenv(tmpcmdline[1]) + else: + print '!!! Error: Specify only one variable.' +elif '--set-env' in tmpcmdline: + if len(tmpcmdline) > 2 and len(tmpcmdline) <= 3: + isroot() + writeenv(tmpcmdline[1],tmpcmdline[2]) + else: + print '!!! Error: Awaiting two parameters.' +else: + print 'Usage: %s --set-hosts DISTCC_HOSTS | --get-hosts' % sys.argv[0] + print ' %s --set-verbose { 0 | 1 } | --get-verbose' % sys.argv[0] + print ' %s --set-log FILE | --get-log' % sys.argv[0] + print ' %s --set-env VARIABLE VALUE | --get-env [VARIABLE]' % sys.argv[0] diff --git a/sys-devel/distcc/files/3.1/conf b/sys-devel/distcc/files/3.1/conf new file mode 100644 index 000000000000..39f6e3e86f45 --- /dev/null +++ b/sys-devel/distcc/files/3.1/conf @@ -0,0 +1,35 @@ +# /etc/conf.d/distccd: config file for /etc/init.d/distccd + +# this is the distccd executable +DISTCCD_EXEC="/usr/bin/distccd" + +# this is where distccd will store its pid file +DISTCCD_PIDFILE="/var/run/distccd/distccd.pid" + +# Ports: +# Default port is 3632. For most people the default is okay. +# +# Logging: +# You can change some logging options here: +# --log-file FILE +# --log-level LEVEL [critical,error,warning, notice, info, debug] +# +# Leaving --log-file blank will log to syslog +# example: --log-file /dev/null --log-level warning +# example: --log-level critical +# +# Nice level: +# The default nice level is 15. You can change it by adding: -N xx +# where xx is the nice level. + +# SECURITY NOTICE: +# It is HIGHLY recommended that you use the --listen option +# for increased security. You can specify an IP to permit connections +# from or a CIDR mask +# --listen accepts only a single IP +# --allow is now mandatory as of distcc-2.18. +# example: --allow 192.168.0.0/24 +# example: --allow 192.168.0.5 --allow 192.168.0.150 +# example: --listen 192.168.0.2 + +DISTCCD_OPTS="--port 3632 --log-level notice --log-file /var/log/distccd.log -N 15" diff --git a/sys-devel/distcc/files/3.1/init b/sys-devel/distcc/files/3.1/init new file mode 100644 index 000000000000..e89dcb3702b7 --- /dev/null +++ b/sys-devel/distcc/files/3.1/init @@ -0,0 +1,31 @@ +#!/sbin/openrc-run +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net + use avahi-daemon ypbind +} + +start() { + ebegin "Starting distccd" + + if [ ! -e /var/run/distccd ] ; then + mkdir -p /var/run/distccd + chown distcc:daemon /var/run/distccd + fi + + # Load PATH and GCC_SPECS from gcc-config, bug #262773 + eval "$(gcc-config -E)" + + start-stop-daemon --start --quiet --exec "${DISTCCD_EXEC}" --user distcc -- \ + --daemon --pid-file "${DISTCCD_PIDFILE}" \ + ${DISTCCD_OPTS} + eend $? +} + +stop() { + ebegin "Stopping distccd" + start-stop-daemon --stop --quiet --pidfile "${DISTCCD_PIDFILE}" + eend $? +} diff --git a/sys-devel/distcc/files/3.2/conf b/sys-devel/distcc/files/3.2/conf new file mode 100644 index 000000000000..c499271685e9 --- /dev/null +++ b/sys-devel/distcc/files/3.2/conf @@ -0,0 +1,40 @@ +# /etc/conf.d/distccd: config file for /etc/init.d/distccd + +DISTCCD_OPTS="" + +# this is the distccd executable +DISTCCD_EXEC="/usr/bin/distccd" + +# this is where distccd will store its pid file +DISTCCD_PIDFILE="/var/run/distccd/distccd.pid" + +# set this option to run distccd with extra parameters +# Default port is 3632. For most people the default is okay. +DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632" + +# Logging +# You can change some logging options here: +# --log-file FILE +# --log-level LEVEL [critical,error,warning, notice, info, debug] +# +# Leaving --log-file blank will log to syslog +# example: --log-file /dev/null --log-level warning +# example: --log-level critical + +DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical" + +# SECURITY NOTICE: +# It is HIGHLY recommended that you use the --listen option +# for increased security. You can specify an IP to permit connections +# from or a CIDR mask +# --listen accepts only a single IP +# --allow is now mandatory as of distcc-2.18. +# example: --allow 192.168.0.0/24 +# example: --allow 192.168.0.5 --allow 192.168.0.150 +# example: --listen 192.168.0.2 +DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24" +#DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.0.2" + +# set this for niceness +# Default is 15 +DISTCCD_OPTS="${DISTCCD_OPTS} -N 15" diff --git a/sys-devel/distcc/files/3.2/distcc-config b/sys-devel/distcc/files/3.2/distcc-config new file mode 100644 index 000000000000..cff742c6d22c --- /dev/null +++ b/sys-devel/distcc/files/3.2/distcc-config @@ -0,0 +1,180 @@ +#!/usr/bin/env python2 +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +import os, re, signal, subprocess, sys + +options=[ + '--get-hosts', + '--set-hosts', + '--get-verbose', + '--set-verbose', + '--get-log', + '--set-log', + '--update-masquerade', + '--update-masquerade-with-crossdev', + '--help', + '--get-env', + '--set-env' +] + +tmpcmdline=sys.argv[1:] +cmdline=[] + +eprefix = '@EPREFIX@' +bindir = os.path.join(eprefix, 'usr', 'bin') +sbindir = os.path.join(eprefix, 'usr', 'sbin') +libdir = os.path.join(eprefix, '@libdir@') +sysconfdir = os.path.join(eprefix, 'etc') + +gcc_config = os.path.join(bindir, 'gcc-config') +env_update = os.path.join(sbindir, 'env-update') +envfile = os.path.join(sysconfdir, 'env.d', '02distcc') +default_distcc_dir = os.path.join(sysconfdir, 'distcc') +hostfile = os.path.join(default_distcc_dir, 'hosts') +distcc_path = os.path.join(bindir, 'distcc') +dccc_dir = os.path.join(libdir, 'distcc', 'bin') + +def exithandler(foo,bar): + os.kill(0,signal.SIGKILL) + sys.exit(1) + +signal.signal(signal.SIGINT,exithandler) + +def isroot(ret=0): + if os.getuid() != 0: + if ret == 0: + print('!!! %s %s must be run as root' % (sys.argv[:1][0],tmpcmdline[0])) + sys.exit(1) + else: + retval = 0 + else: + retval = 1 + return retval + +def writeenv(var,value): + isroot() + distcc_env = [] + distcc_env = open(envfile, 'r').readlines() + distcc_env_new = open(envfile, 'w') + for i in range(len(distcc_env)): + if re.compile(var+'="(.*)"').match(distcc_env[i]): + distcc_env[i] = var+'="'+value+'"\n' + distcc_env_new.write(distcc_env[i]) + #print('Set %s to: %s ' % (var,value)) + subprocess.Popen(env_update, shell=True) + print('If you want to use these new settings in an existing shell,') + print('you need to "source /etc/profile" to get the changes.') + +def readenv(var): + distcc_env = open(envfile, 'r').read() + match = re.compile(var+'="(.*)"').search(distcc_env) + if match: + print(var+'='+match.group(1)) + else: + print(var,'not set.') + +def installlink(chost='', version=''): + for file in ['gcc', 'cc', 'c++', 'g++']: + if not chost == '': + file = '%s-%s' % (chost,file) + if not version == '': + file = '%s-%s' % (file,version) + path = os.path.join(dccc_dir,file) + if os.path.exists(os.path.join(bindir,file)): + if not os.path.exists(path): + print('Creating %s symlink...' % (path)) + os.symlink(distcc_path,path) + #else: + # print('Already exists. Skipping...') + +def installlinks(): + p = subprocess.Popen([gcc_config+" -C -l"], shell=True, stdout=subprocess.PIPE) + lines = p.stdout.read().rstrip().split('\n') + for line in lines: + columns = line.split() + if len(columns) >= 2: + matches = re.match("(.*)-(.*)", columns[1]) + chost = matches.group(1) + version = matches.group(2) + installlink(chost) + installlink(chost, version) + +def uninstalllinks(): + for root, dirs, files in os.walk(dccc_dir): + for file in files: + os.remove(os.path.join(root, file)) + +def createdistccdir(dir): + if not os.path.exists(dir): + os.mkdir(dir) + os.chmod(dir, 0o755) + +for x in tmpcmdline: + if not x: + continue + if x[0:2]=="--": + if not x in options: + print("!!! Error: %s is an invalid option." % (x)) + sys.exit(1) + else: + cmdline = x + +if '--get-hosts' in tmpcmdline: + HOSTS_ENV = os.environ.get('DISTCC_HOSTS') + HOSTS_HOME = os.path.join(os.environ.get('HOME'), '.distcc', 'hosts') + if HOSTS_ENV: + print(HOSTS_ENV) + elif os.path.isfile(HOSTS_HOME) and os.path.getsize(HOSTS_HOME) != 0: + print(HOSTS_HOME) + elif os.path.exists(hostfile): + print(open(hostfile, 'r').read().rstrip()) + else: + print('No configuration file found. Setup your hosts with --set-hosts.') +elif '--set-hosts' in tmpcmdline: + if isroot(1): + PATH = default_distcc_dir + else: + PATH = os.path.join(os.environ.get('HOME'), '.distcc') + createdistccdir(PATH) + open(os.path.join(PATH, 'hosts'), 'w').write(cmdline + '\n') +elif '--get-verbose' in tmpcmdline: + readenv('DISTCC_VERBOSE') +elif '--set-verbose' in tmpcmdline: + writeenv('DISTCC_VERBOSE',tmpcmdline[1]) +elif '--get-log' in tmpcmdline: + readenv('DISTCC_LOG') +elif '--set-log' in tmpcmdline: + writeenv('DISTCC_LOG',tmpcmdline[1]) +elif '--update-masquerade' in tmpcmdline: + isroot() + uninstalllinks() + print('Creating symlinks...') + installlink() + installlinks() +elif '--update-masquerade-with-crossdev' in tmpcmdline: + isroot() + uninstalllinks() + print('Creating symlinks...') + installlinks() +elif '--get-env' in tmpcmdline: + if len(tmpcmdline) == 1: + print(open(envfile, 'r').read().rstrip()) + elif len(tmpcmdline) == 2: + readenv(tmpcmdline[1]) + else: + print('!!! Error: Specify only one variable.') +elif '--set-env' in tmpcmdline: + if len(tmpcmdline) > 2 and len(tmpcmdline) <= 3: + isroot() + writeenv(tmpcmdline[1],tmpcmdline[2]) + else: + print('!!! Error: Awaiting two parameters.') +else: + cmd = sys.argv[:1][0] + print('Usage: %s --set-hosts DISTCC_HOSTS | --get-hosts' % (cmd)) + print(' %s --set-verbose { 0 | 1 } | --get-verbose' % (cmd)) + print(' %s --set-log FILE | --get-log' % (cmd)) + print(' %s --set-env VARIABLE VALUE | --get-env [VARIABLE]' % (cmd)) + print(' %s --update-masquerade' % (cmd)) + print(' %s --update-masquerade-with-crossdev' % (cmd)) diff --git a/sys-devel/distcc/files/3.2/init b/sys-devel/distcc/files/3.2/init new file mode 100644 index 000000000000..e89dcb3702b7 --- /dev/null +++ b/sys-devel/distcc/files/3.2/init @@ -0,0 +1,31 @@ +#!/sbin/openrc-run +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net + use avahi-daemon ypbind +} + +start() { + ebegin "Starting distccd" + + if [ ! -e /var/run/distccd ] ; then + mkdir -p /var/run/distccd + chown distcc:daemon /var/run/distccd + fi + + # Load PATH and GCC_SPECS from gcc-config, bug #262773 + eval "$(gcc-config -E)" + + start-stop-daemon --start --quiet --exec "${DISTCCD_EXEC}" --user distcc -- \ + --daemon --pid-file "${DISTCCD_PIDFILE}" \ + ${DISTCCD_OPTS} + eend $? +} + +stop() { + ebegin "Stopping distccd" + start-stop-daemon --stop --quiet --pidfile "${DISTCCD_PIDFILE}" + eend $? +} diff --git a/sys-devel/distcc/files/distcc-3.0-fix-fortify.patch b/sys-devel/distcc/files/distcc-3.0-fix-fortify.patch new file mode 100644 index 000000000000..8edc330e324b --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.0-fix-fortify.patch @@ -0,0 +1,11 @@ +diff -ru a/src/snprintf.h b/src/snprintf.h +--- a/src/snprintf.h 2008-08-06 15:52:06.000000000 -0500 ++++ b/src/snprintf.h 2009-01-04 15:19:22.000000000 -0600 +@@ -7,6 +7,7 @@ + */ + + #include <stdarg.h> ++#include "config.h" + + #ifdef __GNUC__ + /** Use gcc attribute to check printf fns. a1 is the 1-based index of diff --git a/sys-devel/distcc/files/distcc-3.0-xinetd.patch b/sys-devel/distcc/files/distcc-3.0-xinetd.patch new file mode 100644 index 000000000000..47877ad45b42 --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.0-xinetd.patch @@ -0,0 +1,15 @@ +diff -Naur distcc-3.0.orig/doc/example/xinetd distcc-3.0/doc/example/xinetd +--- distcc-3.0.orig/doc/example/xinetd 2008-08-07 05:52:13.000000000 +0900 ++++ distcc-3.0/doc/example/xinetd 2008-10-27 15:32:14.000000000 +0900 +@@ -19,10 +19,6 @@ + socket_type = stream + wait = no + user = distcc +- server = /usr/local/bin/distccd ++ server = /usr/bin/distccd + server_args = --inetd +- +- # This makes xinetd cope if there is no service listed in +- # /etc/services +- type = UNLISTED + } diff --git a/sys-devel/distcc/files/distcc-3.1-argc-fix.patch b/sys-devel/distcc/files/distcc-3.1-argc-fix.patch new file mode 100644 index 000000000000..d7f30b5567fa --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.1-argc-fix.patch @@ -0,0 +1,17 @@ +this fixes virtualbox not compiling with distcc + +https://bugs.gentoo.org/show_bug.cgi?id=351979 +http://code.google.com/p/distcc/issues/detail?id=83 +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626926 + +--- distcc-3.1.orig/source/src/arg.c ++++ distcc-3.1/source/src/arg.c +@@ -515,6 +515,8 @@ + } + free(argv); + *argv_ptr = argv = new_argv; ++ i += extra_args - 1; ++ argc += extra_args - 1; + } + } + return 0; diff --git a/sys-devel/distcc/files/distcc-3.1-freedesktop.patch b/sys-devel/distcc/files/distcc-3.1-freedesktop.patch new file mode 100644 index 000000000000..b23db21a2558 --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.1-freedesktop.patch @@ -0,0 +1,76 @@ +diff -Naur distcc-3.1.orig/Makefile.in distcc-3.1/Makefile.in +--- distcc-3.1.orig/Makefile.in 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/Makefile.in 2009-02-02 00:40:20.000000000 +0900 +@@ -49,13 +49,14 @@ + includedir = @includedir@ + oldincludedir = /usr/include + docdir = @docdir@ +-pkgdatadir = $(datadir)/@PACKAGE_NAME@ ++icondir = $(datadir)/pixmaps ++desktopdir = $(datadir)/applications + + include_server_builddir = $(builddir)/_include_server + + # These must be done from here, not from autoconf, because they can + # contain variable expansions written in Make syntax. Ew. +-DIR_DEFS = -DSYSCONFDIR="\"${sysconfdir}\"" -DPKGDATADIR="\"${pkgdatadir}\"" ++DIR_DEFS = -DSYSCONFDIR="\"${sysconfdir}\"" -DICONDIR="\"${icondir}\"" + + # arguments to pkgconfig + GNOME_PACKAGES = @GNOME_PACKAGES@ +@@ -1003,7 +1004,8 @@ + @echo " documents $(DESTDIR)$(docdir)" + @echo " programs $(DESTDIR)$(bindir)" + @echo " system configuration $(DESTDIR)$(sysconfdir)" +- @echo " shared data files $(DESTDIR)$(pkgdatadir)" ++ @echo " icons $(DESTDIR)$(icondir)" ++ @echo " .desktop file $(DESTDIR)$(desktopdir)" + + + # install-sh can't handle multiple arguments, but we don't need any +@@ -1086,10 +1088,10 @@ + done + + install-gnome-data: $(gnome_data) +- $(mkinstalldirs) "$(DESTDIR)$(pkgdatadir)" +- for p in $(gnome_data); do \ +- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ +- done ++ $(mkinstalldirs) $(DESTDIR)$(icondir) ++ $(mkinstalldirs) $(DESTDIR)$(desktopdir) ++ $(INSTALL_DATA) gnome/distccmon-gnome-icon.png $(DESTDIR)$(icondir) ++ $(INSTALL_DATA) gnome/distccmon-gnome.desktop $(DESTDIR)$(desktopdir) + + install-conf: $(conf_files) $(default_files) + $(mkinstalldirs) "$(DESTDIR)$(sysconfdir)/distcc" +diff -Naur distcc-3.1.orig/gnome/distccmon-gnome.desktop distcc-3.1/gnome/distccmon-gnome.desktop +--- distcc-3.1.orig/gnome/distccmon-gnome.desktop 2008-12-03 06:50:27.000000000 +0900 ++++ distcc-3.1/gnome/distccmon-gnome.desktop 2009-02-02 00:40:55.000000000 +0900 +@@ -1,13 +1,11 @@ + [Desktop Entry] +-Version=0.9.4 +-Encoding=UTF-8 + Exec=distccmon-gnome + Name=distcc monitor + GenericName=Distributed Compile Monitor + Comment=Graphical view of distributed compile tasks +-Icon=distccmon-gnome-icon.png ++Icon=distccmon-gnome-icon + TryExec=distccmon-gnome + Terminal=false + Type=Application +-Categories=GNOME;Application;Development; ++Categories=GNOME;Development; + StartupNotify=true +diff -Naur distcc-3.1.orig/src/mon-gnome.c distcc-3.1/src/mon-gnome.c +--- distcc-3.1.orig/src/mon-gnome.c 2008-12-03 06:50:25.000000000 +0900 ++++ distcc-3.1/src/mon-gnome.c 2009-02-02 00:41:18.000000000 +0900 +@@ -599,7 +599,7 @@ + + #if GTK_CHECK_VERSION(2,2,0) + gtk_window_set_icon_from_file (GTK_WINDOW (mainwin), +- PKGDATADIR "/distccmon-gnome-icon.png", ++ ICONDIR "/distccmon-gnome-icon.png", + NULL); + #endif + diff --git a/sys-devel/distcc/files/distcc-3.1-python.patch b/sys-devel/distcc/files/distcc-3.1-python.patch new file mode 100644 index 000000000000..733357a53932 --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.1-python.patch @@ -0,0 +1,258 @@ +diff -Naur distcc-3.1.orig/bench/statistics.py distcc-3.1/bench/statistics.py +--- distcc-3.1.orig/bench/statistics.py 2008-12-03 06:50:21.000000000 +0900 ++++ distcc-3.1/bench/statistics.py 2009-03-17 01:29:26.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python2.2 ++#! /usr/bin/env python + + # benchmark -- automated system for testing distcc correctness + # and performance on various source trees. +diff -Naur distcc-3.1.orig/configure distcc-3.1/configure +--- distcc-3.1.orig/configure 2008-12-03 06:50:34.000000000 +0900 ++++ distcc-3.1/configure 2009-03-17 01:31:09.000000000 +0900 +@@ -3629,7 +3629,7 @@ + # + # NB: Cannot use AC_CONFIG_LIBOBJ_DIR here, because it's not present + # in autoconf 2.53. +-for ac_prog in python2.5 python-2.5 python2.4 python-2.4 python ++for ac_prog in python + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +diff -Naur distcc-3.1.orig/configure.ac distcc-3.1/configure.ac +--- distcc-3.1.orig/configure.ac 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/configure.ac 2009-03-17 01:29:04.000000000 +0900 +@@ -243,7 +243,7 @@ + # + # NB: Cannot use AC_CONFIG_LIBOBJ_DIR here, because it's not present + # in autoconf 2.53. +-AC_PATH_PROGS(PYTHON, [python2.5 python-2.5 python2.4 python-2.4 python]) ++AC_PATH_PROGS(PYTHON, [python]) + AC_ARG_VAR(PYTHON, [Python interpreter]) + # Python 1 doesn't even support -V + if ! "$PYTHON" -V 2>&1 | grep "^Python" >/dev/null; then +diff -Naur distcc-3.1.orig/include_server/basics.py distcc-3.1/include_server/basics.py +--- distcc-3.1.orig/include_server/basics.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/basics.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + # + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/basics_test.py distcc-3.1/include_server/basics_test.py +--- distcc-3.1.orig/include_server/basics_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/basics_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/c_extensions_test.py distcc-3.1/include_server/c_extensions_test.py +--- distcc-3.1.orig/include_server/c_extensions_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/c_extensions_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/cache_basics.py distcc-3.1/include_server/cache_basics.py +--- distcc-3.1.orig/include_server/cache_basics.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/cache_basics.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/compiler_defaults.py distcc-3.1/include_server/compiler_defaults.py +--- distcc-3.1.orig/include_server/compiler_defaults.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/compiler_defaults.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/compress_files.py distcc-3.1/include_server/compress_files.py +--- distcc-3.1.orig/include_server/compress_files.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/compress_files.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/include_analyzer.py distcc-3.1/include_server/include_analyzer.py +--- distcc-3.1.orig/include_server/include_analyzer.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/include_analyzer.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/include_analyzer_memoizing_node.py distcc-3.1/include_server/include_analyzer_memoizing_node.py +--- distcc-3.1.orig/include_server/include_analyzer_memoizing_node.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/include_analyzer_memoizing_node.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/include_analyzer_memoizing_node_test.py distcc-3.1/include_server/include_analyzer_memoizing_node_test.py +--- distcc-3.1.orig/include_server/include_analyzer_memoizing_node_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/include_analyzer_memoizing_node_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/include_analyzer_test.py distcc-3.1/include_server/include_analyzer_test.py +--- distcc-3.1.orig/include_server/include_analyzer_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/include_analyzer_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/include_server.py distcc-3.1/include_server/include_server.py +--- distcc-3.1.orig/include_server/include_server.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/include_server.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/include_server_test.py distcc-3.1/include_server/include_server_test.py +--- distcc-3.1.orig/include_server/include_server_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/include_server_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/macro_eval.py distcc-3.1/include_server/macro_eval.py +--- distcc-3.1.orig/include_server/macro_eval.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/macro_eval.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/macro_eval_test.py distcc-3.1/include_server/macro_eval_test.py +--- distcc-3.1.orig/include_server/macro_eval_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/macro_eval_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/mirror_path.py distcc-3.1/include_server/mirror_path.py +--- distcc-3.1.orig/include_server/mirror_path.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/mirror_path.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/mirror_path_test.py distcc-3.1/include_server/mirror_path_test.py +--- distcc-3.1.orig/include_server/mirror_path_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/mirror_path_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/parse_command.py distcc-3.1/include_server/parse_command.py +--- distcc-3.1.orig/include_server/parse_command.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/parse_command.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/parse_command_test.py distcc-3.1/include_server/parse_command_test.py +--- distcc-3.1.orig/include_server/parse_command_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/parse_command_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/parse_file.py distcc-3.1/include_server/parse_file.py +--- distcc-3.1.orig/include_server/parse_file.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/parse_file.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/parse_file_test.py distcc-3.1/include_server/parse_file_test.py +--- distcc-3.1.orig/include_server/parse_file_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/parse_file_test.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/run.py distcc-3.1/include_server/run.py +--- distcc-3.1.orig/include_server/run.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/run.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/setup.py distcc-3.1/include_server/setup.py +--- distcc-3.1.orig/include_server/setup.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/setup.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/include_server/statistics.py distcc-3.1/include_server/statistics.py +--- distcc-3.1.orig/include_server/statistics.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.1/include_server/statistics.py 2009-03-17 01:30:46.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + # + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/test/onetest.py distcc-3.1/test/onetest.py +--- distcc-3.1.orig/test/onetest.py 2008-12-03 06:50:22.000000000 +0900 ++++ distcc-3.1/test/onetest.py 2009-03-17 01:29:44.000000000 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + # + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.1.orig/test/testdistcc.py distcc-3.1/test/testdistcc.py +--- distcc-3.1.orig/test/testdistcc.py 2008-12-03 06:50:22.000000000 +0900 ++++ distcc-3.1/test/testdistcc.py 2009-03-17 01:29:36.000000000 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python2.2 ++#! /usr/bin/env python + + # Copyright (C) 2002, 2003, 2004 by Martin Pool <mbp@samba.org> + # Copyright 2007 Google Inc. diff --git a/sys-devel/distcc/files/distcc-3.2_rc1-freedesktop.patch b/sys-devel/distcc/files/distcc-3.2_rc1-freedesktop.patch new file mode 100644 index 000000000000..8f0d8d77a12b --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.2_rc1-freedesktop.patch @@ -0,0 +1,79 @@ +diff -Naur distcc-3.2rc1.orig/Makefile.in distcc-3.2rc1/Makefile.in +--- distcc-3.2rc1.orig/Makefile.in 2011-10-26 11:07:15.000000000 +0900 ++++ distcc-3.2rc1/Makefile.in 2011-10-27 16:57:46.815272689 +0900 +@@ -50,13 +50,14 @@ + includedir = @includedir@ + oldincludedir = /usr/include + docdir = @docdir@ +-pkgdatadir = $(datadir)/@PACKAGE_NAME@ ++icondir = $(datadir)/pixmaps ++desktopdir = $(datadir)/applications + + include_server_builddir = $(builddir)/_include_server + + # These must be done from here, not from autoconf, because they can + # contain variable expansions written in Make syntax. Ew. +-DIR_DEFS = -DSYSCONFDIR="\"${sysconfdir}\"" -DPKGDATADIR="\"${pkgdatadir}\"" ++DIR_DEFS = -DSYSCONFDIR="\"${sysconfdir}\"" -DICONDIR="\"${icondir}\"" + + # arguments to pkgconfig + GNOME_PACKAGES = @GNOME_PACKAGES@ +@@ -1016,7 +1017,8 @@ + @echo " documents $(DESTDIR)$(docdir)" + @echo " programs $(DESTDIR)$(bindir)" + @echo " system configuration $(DESTDIR)$(sysconfdir)" +- @echo " shared data files $(DESTDIR)$(pkgdatadir)" ++ @echo " icons $(DESTDIR)$(icondir)" ++ @echo " .desktop file $(DESTDIR)$(desktopdir)" + + + # install-sh can't handle multiple arguments, but we don't need any +@@ -1108,10 +1110,10 @@ + done + + install-gnome-data: $(gnome_data) +- $(mkinstalldirs) "$(DESTDIR)$(pkgdatadir)" +- for p in $(gnome_data); do \ +- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ +- done ++ $(mkinstalldirs) "$(DESTDIR)$(icondir)" ++ $(mkinstalldirs) "$(DESTDIR)$(desktopdir)" ++ $(INSTALL_DATA) gnome/distccmon-gnome-icon.png "$(DESTDIR)$(icondir)" || exit 1 ++ $(INSTALL_DATA) gnome/distccmon-gnome.desktop "$(DESTDIR)$(desktopdir)" || exit 1 + + install-conf: $(conf_files) $(default_files) + $(mkinstalldirs) "$(DESTDIR)$(sysconfdir)/distcc" +diff -Naur distcc-3.2rc1.orig/gnome/distccmon-gnome.desktop distcc-3.2rc1/gnome/distccmon-gnome.desktop +--- distcc-3.2rc1.orig/gnome/distccmon-gnome.desktop 2011-04-06 03:58:58.000000000 +0900 ++++ distcc-3.2rc1/gnome/distccmon-gnome.desktop 2011-10-27 17:01:50.792242592 +0900 +@@ -1,6 +1,4 @@ + [Desktop Entry] +-Version=0.9.4 +-Encoding=UTF-8 + Exec=distccmon-gnome + Name=distcc monitor + Name[sv]=distcc övervakare +@@ -8,9 +6,9 @@ + GenericName[sv]=Distribuerad kompilerings-övervakare + Comment=Graphical view of distributed compile tasks + Comment[sv]=Grafisk vy av distribuerade kompileringsuppgifter +-Icon=distccmon-gnome-icon.png ++Icon=distccmon-gnome-icon + TryExec=distccmon-gnome + Terminal=false + Type=Application +-Categories=GNOME;Application;Development; ++Categories=GNOME;Development; + StartupNotify=true +diff -Naur distcc-3.2rc1.orig/src/mon-gnome.c distcc-3.2rc1/src/mon-gnome.c +--- distcc-3.2rc1.orig/src/mon-gnome.c 2008-12-03 06:50:25.000000000 +0900 ++++ distcc-3.2rc1/src/mon-gnome.c 2011-10-27 16:54:50.220566026 +0900 +@@ -599,7 +599,7 @@ + + #if GTK_CHECK_VERSION(2,2,0) + gtk_window_set_icon_from_file (GTK_WINDOW (mainwin), +- PKGDATADIR "/distccmon-gnome-icon.png", ++ ICONDIR "/distccmon-gnome-icon.png", + NULL); + #endif + diff --git a/sys-devel/distcc/files/distcc-3.2_rc1-gssapi.patch b/sys-devel/distcc/files/distcc-3.2_rc1-gssapi.patch new file mode 100644 index 000000000000..73551f8a7b80 --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.2_rc1-gssapi.patch @@ -0,0 +1,36 @@ +diff -Naur distcc-3.2rc1.orig/configure.ac distcc-3.2rc1/configure.ac +--- distcc-3.2rc1.orig/configure.ac 2011-10-21 13:40:55.000000000 +0900 ++++ distcc-3.2rc1/configure.ac 2011-10-27 18:06:58.938922585 +0900 +@@ -15,6 +15,8 @@ + AC_CONFIG_HEADERS(src/config.h) + AC_CANONICAL_HOST + ++PKG_PROG_PKG_CONFIG ++ + # FreeBSD installs its version of libpopt into /usr/local/, but does + # not put that on the default library and header path. + # Solaris doesn't even ship libpopt. We used to add that path if +@@ -502,16 +504,17 @@ + [provide mutual authentication services via the GSS-API])]) + + if test x"$with_auth" = xyes; then +- AC_SEARCH_LIBS([gss_init_sec_context], +- [gssapi gssapi_krb5], +- AC_DEFINE(HAVE_GSSAPI, 1, [Define if the GSS_API is available]) ++ PKG_CHECK_MODULES(GSSAPI, libgssglue, ++ [AC_DEFINE(HAVE_GSSAPI, 1, [Define if the GSS_API is available]) ++ CFLAGS="$CFLAGS $GSSAPI_CFLAGS" ++ LIBS="$LIBS $GSSAPI_LIBS" + AUTH_COMMON_OBJS="src/auth_common.o" + AUTH_DISTCC_OBJS="src/auth_distcc.o" +- AUTH_DISTCCD_OBJS="src/auth_distccd.o", +- AC_MSG_FAILURE([--with-auth was given but no GSS-API library found]) ++ AUTH_DISTCCD_OBJS="src/auth_distccd.o"], ++ [AC_MSG_FAILURE([--with-auth was given but no GSS-API library found]) + AUTH_COMMON_OBJS="" + AUTH_DISTCC_OBJS="" +- AUTH_DISTCCD_OBJS="") ++ AUTH_DISTCCD_OBJS=""]) + fi + + AC_SUBST(AUTH_COMMON_OBJS) diff --git a/sys-devel/distcc/files/distcc-3.2_rc1-python.patch b/sys-devel/distcc/files/distcc-3.2_rc1-python.patch new file mode 100644 index 000000000000..409b5a19d321 --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.2_rc1-python.patch @@ -0,0 +1,246 @@ +diff -Naur distcc-3.2rc1.orig/bench/statistics.py distcc-3.2rc1/bench/statistics.py +--- distcc-3.2rc1.orig/bench/statistics.py 2008-12-03 06:50:21.000000000 +0900 ++++ distcc-3.2rc1/bench/statistics.py 2011-10-27 17:05:08.418023081 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python2.2 ++#! /usr/bin/env python + + # benchmark -- automated system for testing distcc correctness + # and performance on various source trees. +diff -Naur distcc-3.2rc1.orig/configure.ac distcc-3.2rc1/configure.ac +--- distcc-3.2rc1.orig/configure.ac 2011-10-21 13:40:55.000000000 +0900 ++++ distcc-3.2rc1/configure.ac 2011-10-27 17:05:31.179112690 +0900 +@@ -243,7 +243,7 @@ + # + # NB: Cannot use AC_CONFIG_LIBOBJ_DIR here, because it's not present + # in autoconf 2.53. +-AC_PATH_PROGS(PYTHON, [python2.6 python-2.6 python2.5 python-2.5 python2.4 python-2.4 python]) ++AC_PATH_PROGS(PYTHON, [python]) + AC_ARG_VAR(PYTHON, [Python interpreter]) + # Python 1 doesn't even support -V + if ! "$PYTHON" -V 2>&1 | grep "^Python" >/dev/null; then +diff -Naur distcc-3.2rc1.orig/include_server/basics.py distcc-3.2rc1/include_server/basics.py +--- distcc-3.2rc1.orig/include_server/basics.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/basics.py 2011-10-27 17:05:08.421023097 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + # + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/basics_test.py distcc-3.2rc1/include_server/basics_test.py +--- distcc-3.2rc1.orig/include_server/basics_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/basics_test.py 2011-10-27 17:05:08.421023097 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/c_extensions_test.py distcc-3.2rc1/include_server/c_extensions_test.py +--- distcc-3.2rc1.orig/include_server/c_extensions_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/c_extensions_test.py 2011-10-27 17:05:08.421023097 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/cache_basics.py distcc-3.2rc1/include_server/cache_basics.py +--- distcc-3.2rc1.orig/include_server/cache_basics.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/cache_basics.py 2011-10-27 17:05:08.422023101 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/compiler_defaults.py distcc-3.2rc1/include_server/compiler_defaults.py +--- distcc-3.2rc1.orig/include_server/compiler_defaults.py 2011-04-06 03:58:59.000000000 +0900 ++++ distcc-3.2rc1/include_server/compiler_defaults.py 2011-10-27 17:05:08.422023101 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/compress_files.py distcc-3.2rc1/include_server/compress_files.py +--- distcc-3.2rc1.orig/include_server/compress_files.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/compress_files.py 2011-10-27 17:05:08.422023101 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/include_analyzer.py distcc-3.2rc1/include_server/include_analyzer.py +--- distcc-3.2rc1.orig/include_server/include_analyzer.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/include_analyzer.py 2011-10-27 17:05:08.422023101 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/include_analyzer_memoizing_node.py distcc-3.2rc1/include_server/include_analyzer_memoizing_node.py +--- distcc-3.2rc1.orig/include_server/include_analyzer_memoizing_node.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/include_analyzer_memoizing_node.py 2011-10-27 17:05:08.422023101 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/include_analyzer_memoizing_node_test.py distcc-3.2rc1/include_server/include_analyzer_memoizing_node_test.py +--- distcc-3.2rc1.orig/include_server/include_analyzer_memoizing_node_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/include_analyzer_memoizing_node_test.py 2011-10-27 17:05:08.423023105 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/include_analyzer_test.py distcc-3.2rc1/include_server/include_analyzer_test.py +--- distcc-3.2rc1.orig/include_server/include_analyzer_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/include_analyzer_test.py 2011-10-27 17:05:08.423023105 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/include_server.py distcc-3.2rc1/include_server/include_server.py +--- distcc-3.2rc1.orig/include_server/include_server.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/include_server.py 2011-10-27 17:05:08.423023105 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/include_server_test.py distcc-3.2rc1/include_server/include_server_test.py +--- distcc-3.2rc1.orig/include_server/include_server_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/include_server_test.py 2011-10-27 17:05:08.423023105 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/macro_eval.py distcc-3.2rc1/include_server/macro_eval.py +--- distcc-3.2rc1.orig/include_server/macro_eval.py 2011-04-06 03:58:59.000000000 +0900 ++++ distcc-3.2rc1/include_server/macro_eval.py 2011-10-27 17:05:08.423023105 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/macro_eval_test.py distcc-3.2rc1/include_server/macro_eval_test.py +--- distcc-3.2rc1.orig/include_server/macro_eval_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/macro_eval_test.py 2011-10-27 17:05:08.423023105 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/mirror_path.py distcc-3.2rc1/include_server/mirror_path.py +--- distcc-3.2rc1.orig/include_server/mirror_path.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/mirror_path.py 2011-10-27 17:05:08.424023109 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/mirror_path_test.py distcc-3.2rc1/include_server/mirror_path_test.py +--- distcc-3.2rc1.orig/include_server/mirror_path_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/mirror_path_test.py 2011-10-27 17:05:08.424023109 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/parse_command.py distcc-3.2rc1/include_server/parse_command.py +--- distcc-3.2rc1.orig/include_server/parse_command.py 2011-04-06 03:58:59.000000000 +0900 ++++ distcc-3.2rc1/include_server/parse_command.py 2011-10-27 17:05:08.424023109 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/parse_command_test.py distcc-3.2rc1/include_server/parse_command_test.py +--- distcc-3.2rc1.orig/include_server/parse_command_test.py 2011-04-06 03:58:59.000000000 +0900 ++++ distcc-3.2rc1/include_server/parse_command_test.py 2011-10-27 17:05:08.424023109 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/parse_file.py distcc-3.2rc1/include_server/parse_file.py +--- distcc-3.2rc1.orig/include_server/parse_file.py 2011-04-06 03:58:59.000000000 +0900 ++++ distcc-3.2rc1/include_server/parse_file.py 2011-10-27 17:05:08.424023109 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/parse_file_test.py distcc-3.2rc1/include_server/parse_file_test.py +--- distcc-3.2rc1.orig/include_server/parse_file_test.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/parse_file_test.py 2011-10-27 17:05:08.424023109 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/run.py distcc-3.2rc1/include_server/run.py +--- distcc-3.2rc1.orig/include_server/run.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/run.py 2011-10-27 17:05:08.424023109 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/setup.py distcc-3.2rc1/include_server/setup.py +--- distcc-3.2rc1.orig/include_server/setup.py 2011-04-06 03:58:59.000000000 +0900 ++++ distcc-3.2rc1/include_server/setup.py 2011-10-27 17:05:08.425023113 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/include_server/statistics.py distcc-3.2rc1/include_server/statistics.py +--- distcc-3.2rc1.orig/include_server/statistics.py 2008-12-03 06:50:31.000000000 +0900 ++++ distcc-3.2rc1/include_server/statistics.py 2011-10-27 17:05:08.425023113 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2.4 ++#! /usr/bin/python + # + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/test/onetest.py distcc-3.2rc1/test/onetest.py +--- distcc-3.2rc1.orig/test/onetest.py 2008-12-03 06:50:22.000000000 +0900 ++++ distcc-3.2rc1/test/onetest.py 2011-10-27 17:05:08.432023140 +0900 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.4 ++#!/usr/bin/python + # + # Copyright 2007 Google Inc. + # +diff -Naur distcc-3.2rc1.orig/test/testdistcc.py distcc-3.2rc1/test/testdistcc.py +--- distcc-3.2rc1.orig/test/testdistcc.py 2011-10-21 11:40:49.000000000 +0900 ++++ distcc-3.2rc1/test/testdistcc.py 2011-10-27 17:05:08.432023140 +0900 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python2.2 ++#! /usr/bin/env python + + # Copyright (C) 2002, 2003, 2004 by Martin Pool <mbp@samba.org> + # Copyright 2007 Google Inc. diff --git a/sys-devel/distcc/files/distcc-3.2_rc1-socks5.patch b/sys-devel/distcc/files/distcc-3.2_rc1-socks5.patch new file mode 100644 index 000000000000..256a16ffd5ba --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.2_rc1-socks5.patch @@ -0,0 +1,191 @@ +From fdd93b1e9545b66d1b3a2a1ec24d4c8613ee43fb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Sat, 24 Jan 2015 23:59:21 +0100 +Subject: [PATCH] Support SOCKSv5 proxy + +Support using a SOCKSv5 proxy specified as DISTCC_SOCKS_PROXY. +The variable can either a hostname, a host:port pair or an absolute path +to a UNIX socket. When SOCKS is used, the hostname is passed to +the proxy and therefore the name resolution is done remotely. +--- + src/clinet.c | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 135 insertions(+), 2 deletions(-) + +diff --git a/src/clinet.c b/src/clinet.c +index 010a884..4773d8b 100644 +--- a/src/clinet.c ++++ b/src/clinet.c +@@ -31,6 +31,7 @@ + + #include <stdio.h> + #include <stdlib.h> ++#include <stddef.h> + #include <unistd.h> + #include <string.h> + #include <fcntl.h> +@@ -42,8 +43,10 @@ + #include <sys/types.h> + #include <sys/socket.h> + ++#include <arpa/inet.h> + #include <netinet/in.h> + #include <netinet/tcp.h> ++#include <sys/un.h> + + #include <netdb.h> + +@@ -161,7 +164,7 @@ out_failed: + /** + * Open a socket to a tcp remote host with the specified port. + **/ +-int dcc_connect_by_name(const char *host, int port, int *p_fd) ++static int dcc_connect_by_name_real(const char *host, int port, int *p_fd) + { + struct addrinfo hints; + struct addrinfo *res; +@@ -201,7 +204,7 @@ int dcc_connect_by_name(const char *host, int port, int *p_fd) + * + * @todo Don't try for too long to connect. + **/ +-int dcc_connect_by_name(const char *host, int port, int *p_fd) ++static int dcc_connect_by_name_real(const char *host, int port, int *p_fd) + { + struct sockaddr_in sock_out; + struct hostent *hp; +@@ -224,3 +227,133 @@ int dcc_connect_by_name(const char *host, int port, int *p_fd) + } + + #endif /* not ENABLE_RFC2553 */ ++ ++static int dcc_connect_via_socks5(const char *host, int port, int *p_fd, const char *proxy) ++{ ++ int ret; ++ char *proxy_host, *proxy_it; ++ int proxy_port; ++ char buf[262]; ++ int host_length; ++ struct sockaddr_in addr_buf; ++ int skip_bytes; ++ ++ host_length = strlen(host); ++ if (host_length > 255) { ++ rs_log_error("hostname \"%s\" too long for SOCKSv5 (over 255 chars)", host); ++ return EXIT_CONNECT_FAILED; ++ } ++ ++ if (proxy[0] == '/') { /* UNIX socket */ ++ struct sockaddr_un unix_addr; ++ ++ if (strlen(proxy) >= sizeof(unix_addr.sun_path)) ++ { ++ rs_log_error("UNIX socket path \"%s\" too long", proxy); ++ return EXIT_CONNECT_FAILED; ++ } ++ ++ unix_addr.sun_family = AF_UNIX; ++ strcpy(unix_addr.sun_path, proxy); ++ ++ ret = dcc_connect_by_addr((struct sockaddr *) &unix_addr, ++ offsetof(struct sockaddr_un, sun_path) + strlen(proxy) + 1, ++ p_fd); ++ ++ } else { /* hostname? IP address? */ ++ proxy_host = strdup(proxy); ++ if (proxy_host == NULL) return EXIT_OUT_OF_MEMORY; ++ ++ proxy_it = strrchr(proxy_host, ':'); ++ if (proxy_it) { ++ *(proxy_it++) = 0; ++ proxy_port = atoi(proxy_it); ++ ++ if (proxy_port <= 0) { ++ rs_log_error("invalid proxy port \"%s\"", proxy_it); ++ free(proxy_host); ++ return EXIT_CONNECT_FAILED; ++ } ++ } ++ else ++ proxy_port = 1080; ++ ++ ret = dcc_connect_by_name_real(proxy_host, proxy_port, p_fd); ++ free(proxy_host); ++ } ++ ++ if (ret != 0) ++ return ret; ++ ++ /* connected to proxy, now identifier/method selection */ ++ buf[0] = 0x05; /* SOCKSv5 */ ++ buf[1] = 0x01; /* one method */ ++ buf[2] = 0x00; /* NO AUTHENTICATION REQUIRED */ ++ ret = dcc_writex(*p_fd, buf, 3); ++ if (ret != 0) ++ return ret; ++ ++ /* wait for method selection */ ++ ret = dcc_readx(*p_fd, buf, 2); ++ if (ret != 0) ++ return ret; ++ if (buf[0] != 0x05 || buf[1] != 0x00) { /* version, method */ ++ rs_log_error("invalid proxy reply (version 0x%02x, method 0x%02x)", ++ buf[0], buf[1]); ++ return EXIT_CONNECT_FAILED; ++ } ++ ++ /* send connect request */ ++ buf[0] = 0x05; /* SOCKSv5 */ ++ buf[1] = 0x01; /* CONNECT command */ ++ buf[2] = 0x00; /* reserved */ ++ buf[3] = 0x03; /* DOMAINNAME address type */ ++ buf[4] = host_length; ++ memcpy(&buf[5], host, host_length); ++ addr_buf.sin_port = htons(port); ++ memcpy(&buf[5 + host_length], &addr_buf.sin_port, 2); ++ ret = dcc_writex(*p_fd, buf, 7 + host_length); ++ if (ret != 0) ++ return ret; ++ ++ /* wait for the connection */ ++ /* read first 4 bytes of reply + 2 extra bytes we know will be there */ ++ ret = dcc_readx(*p_fd, buf, 6); ++ if (ret != 0) ++ return ret; ++ if (buf[0] != 0x05 || buf[2] != 0x00) { /* version, reserved */ ++ rs_log_error("invalid proxy reply (version 0x%02x, reserved 0x%02x)", ++ buf[0], buf[2]); ++ return EXIT_CONNECT_FAILED; ++ } ++ if (buf[1] != 0x00) { /* reply */ ++ rs_log_error("proxy connection failed, reason=0x%02x", buf[1]); ++ return EXIT_CONNECT_FAILED; ++ } ++ ++ /* now read the remaining (packet size - 6) bytes */ ++ switch (buf[3]) { /* address type */ ++ case 0x01: skip_bytes = 4; break; /* IPv4 */ ++ case 0x03: skip_bytes = buf[4] + 1; break; /* hostname with length field */ ++ case 0x04: skip_bytes = 16; break; /* IPv6 */ ++ default: ++ rs_log_error("invalid proxy reply (address type 0x%02x)", buf[3]); ++ return EXIT_CONNECT_FAILED; ++ } ++ ret = dcc_readx(*p_fd, buf, skip_bytes); ++ if (ret != 0) ++ return ret; ++ ++ return 0; ++} ++ ++int dcc_connect_by_name(const char *host, int port, int *p_fd) ++{ ++ const char *proxy; ++ ++ proxy = getenv("DISTCC_SOCKS_PROXY"); ++ if (proxy) ++ return dcc_connect_via_socks5(host, port, p_fd, proxy); ++ else ++ return dcc_connect_by_name_real(host, port, p_fd); ++} +-- +2.3.0 + diff --git a/sys-devel/distcc/files/distcc-config b/sys-devel/distcc/files/distcc-config new file mode 100644 index 000000000000..094307c10507 --- /dev/null +++ b/sys-devel/distcc/files/distcc-config @@ -0,0 +1,164 @@ +#!/usr/bin/env python +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +import os, re, signal, sys, commands, pwd +from string import rstrip + +options=[ + '--get-hosts', + '--set-hosts', + '--get-verbose', + '--set-verbose', + '--get-log', + '--set-log', + '--install', + '--help', + '--get-env', + '--set-env' +] + +tmpcmdline=sys.argv[1:] +cmdline=[] +envfile = '/etc/env.d/02distcc' + +def exithandler(foo,bar): + os.kill(0,signal.SIGKILL) + sys.exit(1) + +signal.signal(signal.SIGINT,exithandler) + +def isroot(ret=0): + if os.getuid() != 0: + if ret == 0: + print '!!!',sys.argv[:1][0],tmpcmdline[0],'must be run as root' + sys.exit(1) + else: + retval = 0 + else: + retval = 1 + return retval + +def writeenv(var,value): + isroot() + distcc_env = [] + distcc_env = open(envfile, 'r').readlines() + distcc_env_new = open(envfile, 'w') + for i in range(len(distcc_env)): + if re.compile(var+'="(.*)"').match(distcc_env[i]): + distcc_env[i] = var+'="'+value+'"\n' + distcc_env_new.write(distcc_env[i]) + #print 'Set',var,'to:',value + os.popen('/usr/sbin/env-update') + print 'If you want to use these new settings in an existing shell,' + print 'you need to "source /etc/profile" to get the changes.' + +def readenv(var): + distcc_env = open(envfile, 'r').read() + match = re.compile(var+'="(.*)"').search(distcc_env) + if match: + print var+'='+match.group(1) + else: + print var,'not set.' + +def permissions(path,user,group): + for file in os.listdir(path): + #print 'Configuring',path+file+'...' + os.chown(path+file,user,group) + +def installlinks(chost=''): + for file in ['gcc', 'cc', 'c++', 'g++']: + path = '/usr/lib/distcc/bin/' + if not chost == '': + file = chost+'-'+file + if os.path.exists('/usr/bin/'+file): + #print 'Creating',path+file,'symlink...' + if not os.path.exists(path+file): + os.symlink('/usr/bin/distcc',path+file) + #else: + # print 'Already exists. Skipping...' + +def createdistccdir(dir): + if not os.path.exists(dir): + os.mkdir(dir) + os.chmod(dir, 1777) + +for x in tmpcmdline: + if not x: + continue + if x[0:2]=="--": + if not x in options: + print "!!! Error:",x,"is an invalid option." + sys.exit(1) + else: + cmdline = x + +if '--get-hosts' in tmpcmdline: + HOSTS_ENV = os.environ.get('DISTCC_HOSTS') + HOSTS_HOME = os.environ.get('HOME')+'/hosts' + if HOSTS_ENV: + print HOSTS_ENV + elif os.path.isfile(HOSTS_HOME) and os.path.getsize(HOSTS_HOME) != 0: + print HOSTS_HOME + elif os.path.exists('/etc/distcc/hosts'): + print rstrip(open('/etc/distcc/hosts', 'r').read()) + else: + print 'No configuration file found. Setup your hosts with --set-hosts.' +elif '--set-hosts' in tmpcmdline: + if isroot(1): + PATH = '/etc/distcc' + else: + PATH = os.environ.get('HOME') + createdistccdir(PATH) + open(PATH+'/hosts', 'w').write(cmdline + '\n') +elif '--get-verbose' in tmpcmdline: + readenv('DISTCC_VERBOSE') +elif '--set-verbose' in tmpcmdline: + writeenv('DISTCC_VERBOSE',tmpcmdline[1]) +elif '--get-log' in tmpcmdline: + readenv('DISTCC_LOG') +elif '--set-log' in tmpcmdline: + writeenv('DISTCC_LOG',tmpcmdline[1]) +elif '--install' in tmpcmdline: + isroot() + print 'Creating',envfile+'...' + distcc_env = open(envfile, 'w') + distcc_env.write('# This file is managed by distcc-config; use it to change these settings.\n') + distcc_env.write('DISTCC_LOG=""\n') + distcc_env.write('DCCC_PATH="/usr/lib/distcc/bin"\n') + distcc_env.write('DISTCC_VERBOSE="0"\n') + + if os.WEXITSTATUS(commands.getstatusoutput('/usr/sbin/useradd -u 240 -g daemon -s /bin/false -d /dev/null -c "distccd" distcc')[0]) == 9: + os.WEXITSTATUS(commands.getstatusoutput('/usr/sbin/usermod -g daemon -s /bin/false -d /dev/null -c "distccd" distcc')[0]) + + foobar = pwd.getpwnam('distcc') + user = foobar[2] + group = foobar[3] + + makeconf = open('/etc/make.conf', 'r').read() + chost = re.compile('CHOST="(.*)"').search(makeconf).group(1) + print 'Creating symlinks...' + installlinks() + installlinks(chost) + + print 'Checking permissions...' + permissions('/usr/lib/distcc/bin/',user,group) + permissions('/var/run/distccd/',user,group) +elif '--get-env' in tmpcmdline: + if len(tmpcmdline) == 1: + print rstrip(open(envfile, 'r').read()) + elif len(tmpcmdline) == 2: + readenv(tmpcmdline[1]) + else: + print '!!! Error: Specify only one variable.' +elif '--set-env' in tmpcmdline: + if len(tmpcmdline) > 2 and len(tmpcmdline) <= 3: + isroot() + writeenv(tmpcmdline[1],tmpcmdline[2]) + else: + print '!!! Error: Awaiting two parameters.' +else: + print 'Usage: /usr/bin/distcc-config --set-hosts DISTCC_HOSTS | --get-hosts' + print ' /usr/bin/distcc-config --set-verbose { 0 | 1 } | --get-verbose' + print ' /usr/bin/distcc-config --set-log FILE | --get-log' + print ' /usr/bin/distcc-config --set-env VARIABLE VALUE | --get-env [VARIABLE]' diff --git a/sys-devel/distcc/files/distcc-hardened.patch b/sys-devel/distcc/files/distcc-hardened.patch new file mode 100644 index 000000000000..69b3a6516936 --- /dev/null +++ b/sys-devel/distcc/files/distcc-hardened.patch @@ -0,0 +1,24 @@ +From: Gordon Malm <gengor@gentoo.org> + +Make distcc client pass -D__KERNEL__ macro. Hardened GCC uses this +macro to determine if code intended to be run in-kernel is being compiled. +If the code is kernel code, certain compile flags are not applied. + +When using distcc to build kernel code (modules, etc.) without this patch, +the distccd host doesn't get passed -D__KERNEL__. Consequently, gcc on +the distccd host applies all kinds of flags that it shouldn't. + +--- distcc-2.18.3/src/strip.c ++++ distcc-2.18.3-hardened/src/strip.c +@@ -73,7 +73,10 @@ int dcc_strip_local_args(char **from, ch + /* skip through argv, copying all arguments but skipping ones that + * ought to be omitted */ + for (from_i = to_i = 0; from[from_i]; from_i++) { +- if (str_equal("-D", from[from_i]) ++ if (str_equal("-D__KERNEL__", from[from_i])) { ++ to[to_i++] = from[from_i]; ++ } ++ else if (str_equal("-D", from[from_i]) + || str_equal("-I", from[from_i]) + || str_equal("-U", from[from_i]) + || str_equal("-L", from[from_i]) diff --git a/sys-devel/distcc/files/distccd.service b/sys-devel/distcc/files/distccd.service new file mode 100644 index 000000000000..3eb61396b84c --- /dev/null +++ b/sys-devel/distcc/files/distccd.service @@ -0,0 +1,10 @@ +[Unit] +Description=Distccd: A Distributed Compilation Server +After=network.target + +[Service] +User=distcc +ExecStart=/usr/bin/distccd --verbose --no-detach --daemon --port 3632 -N 15 --allow $ALLOWED_SERVERS + +[Install] +WantedBy=multi-user.target diff --git a/sys-devel/distcc/files/distccd.service.conf b/sys-devel/distcc/files/distccd.service.conf new file mode 100644 index 000000000000..a334c3724b96 --- /dev/null +++ b/sys-devel/distcc/files/distccd.service.conf @@ -0,0 +1,6 @@ +# --allow is now mandatory as of distcc-2.18. +# example: --allow 192.168.0.0/24 +# example: --allow 192.168.0.5 --allow 192.168.0.150 + +[Service] +Environment="ALLOWED_SERVERS=127.0.0.1" diff --git a/sys-devel/distcc/metadata.xml b/sys-devel/distcc/metadata.xml new file mode 100644 index 000000000000..9cccb613be75 --- /dev/null +++ b/sys-devel/distcc/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>cluster@gentoo.org</email> + <name>Gentoo Cluster Project</name> + </maintainer> + <longdescription lang="en"> + Distcc is a program to distribute compilation of C code across several + machines on a network. + </longdescription> + <use> + <flag name="crossdev">Enable support for <pkg>sys-devel/crossdev</pkg></flag> + <flag name="gssapi">Enable support for <pkg>net-libs/libgssglue</pkg></flag> + </use> +</pkgmetadata> |