public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir
@ 2017-08-17  8:36 Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 01/12] dev-util/shadowman: New package Michał Górny
                   ` (14 more replies)
  0 siblings, 15 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev; +Cc: cluster, robbat2, toolchain, suse, llvm

Hi, everyone.

I've written a new tool called shadowman [1] that aims to partially
replace the current *-config tools shipped with ccache, distcc, icecc
and potentially more.

Why? Because the existing tools are inconsistent, inconvenient
and usually incomplete. The README [2] states a number of advantages:

| 1. one usage syntax that works for all tools,
|
| 2. ability to update/clean masquerades for multiple tools in one call,
|
| 3. consistent (and *good*) implementation -- now all tools get the same
| executable list,
|
| 4. reduced code duplication,
|
| 5. modular layout that allows adding extra tools/compiler wildcards
| by third-party packages.

This thread includes patches that:

a. add the package for shadowman (skipping some bundled modules for
external inclusion) -- for testing it's just a live ebuild with full
keyword set; I will obviously change that before the final inclusion;

b. adds shadowman support to ccache, distcc & icecream packages
(preserving the old utilities for compatibility),

c. adds shadowman update call to toolchain.eclass & clang ebuilds
so that the masquerades get updated automatically on gcc/clang upgrade.

Please review. Alternatively available as PR on GitHub [3].

[1]:https://github.com/mgorny/shadowman
[2]:https://github.com/mgorny/shadowman/blob/master/README
[3]:https://github.com/gentoo/gentoo/pull/5386



^ permalink raw reply	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 01/12] dev-util/shadowman: New package
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/shadowman/metadata.xml          |  8 ++++++++
 dev-util/shadowman/shadowman-9999.ebuild | 27 +++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 dev-util/shadowman/metadata.xml
 create mode 100644 dev-util/shadowman/shadowman-9999.ebuild

diff --git a/dev-util/shadowman/metadata.xml b/dev-util/shadowman/metadata.xml
new file mode 100644
index 000000000000..0319eec4c8be
--- /dev/null
+++ b/dev-util/shadowman/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>mgorny@gentoo.org</email>
+		<name>Michał Górny</name>
+	</maintainer>
+</pkgmetadata>
diff --git a/dev-util/shadowman/shadowman-9999.ebuild b/dev-util/shadowman/shadowman-9999.ebuild
new file mode 100644
index 000000000000..990b92e51623
--- /dev/null
+++ b/dev-util/shadowman/shadowman-9999.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+EGIT_REPO_URI="https://github.com/mgorny/shadowman"
+inherit git-r3
+
+DESCRIPTION="Unified compiler shadow link directory updater"
+HOMEPAGE="https://github.com/mgorny/shadowman"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+# note: only for testing
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND="app-admin/eselect"
+DEPEND="${RDEPEND}"
+
+src_install() {
+	# tool modules are split into their respective packages
+	emake DESTDIR="${D}" install \
+		INSTALL_MODULES_TOOL=""
+	keepdir /usr/share/shadowman/tools
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 01/12] dev-util/shadowman: New package Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:48   ` David Seifert
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 03/12] dev-util/ccache: Install dev-util/shadowman data file Michał Górny
                   ` (12 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/ccache/ccache-3.3.4-r1.ebuild | 68 ++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 dev-util/ccache/ccache-3.3.4-r1.ebuild

diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-util/ccache/ccache-3.3.4-r1.ebuild
new file mode 100644
index 000000000000..1ef1d45179d1
--- /dev/null
+++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit readme.gentoo-r1
+
+DESCRIPTION="fast compiler cache"
+HOMEPAGE="http://ccache.samba.org/"
+SRC_URI="https://samba.org/ftp/ccache/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="app-arch/xz-utils
+	sys-libs/zlib"
+RDEPEND="${DEPEND}
+	sys-apps/gentoo-functions"
+
+src_prepare() {
+	# make sure we always use system zlib
+	rm -rf zlib || die
+	eapply "${FILESDIR}"/${PN}-3.3-size-on-disk.patch #456178
+	eapply_user
+	sed \
+		-e "/^EPREFIX=/s:'':'${EPREFIX}':" \
+		"${FILESDIR}"/ccache-config-3 > ccache-config || die
+}
+
+src_install() {
+	DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.md )
+	default
+
+	dobin ccache-config
+
+	DOC_CONTENTS="
+To use ccache with **non-Portage** C compiling, add
+${EPREFIX}/usr/lib/ccache/bin to the beginning of your path, before ${EPREFIX}/usr/bin.
+Portage 2.0.46-r11+ will automatically take advantage of ccache with
+no additional steps.  If this is your first install of ccache, type
+something like this to set a maximum cache size of 2GB:\\n
+# ccache -M 2G\\n
+If you are upgrading from an older version than 3.x you should clear all of your caches like so:\\n
+# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
+ccache now supports sys-devel/clang and dev-lang/icc, too!"
+
+	readme.gentoo_create_doc
+}
+
+pkg_prerm() {
+	if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+		"${EROOT}"/usr/bin/ccache-config --remove-links
+		"${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+	fi
+}
+
+pkg_postinst() {
+	"${EROOT}"/usr/bin/ccache-config --install-links
+	"${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
+
+	# nuke broken symlinks from previous versions that shouldn't exist
+	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
+	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
+
+	readme.gentoo_print_elog
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 03/12] dev-util/ccache: Install dev-util/shadowman data file
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 01/12] dev-util/shadowman: New package Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm Michał Górny
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/ccache/ccache-3.3.4-r1.ebuild | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-util/ccache/ccache-3.3.4-r1.ebuild
index 1ef1d45179d1..2fd005d88041 100644
--- a/dev-util/ccache/ccache-3.3.4-r1.ebuild
+++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
@@ -34,6 +34,8 @@ src_install() {
 	default
 
 	dobin ccache-config
+	insinto /usr/share/shadowman/tools
+	newins - ccache <<<'/usr/lib/ccache/bin'
 
 	DOC_CONTENTS="
 To use ccache with **non-Portage** C compiling, add
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (2 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 03/12] dev-util/ccache: Install dev-util/shadowman data file Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 05/12] sys-devel/distcc: Convert to EAPI=6 Michał Górny
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/ccache/ccache-3.3.4-r1.ebuild | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-util/ccache/ccache-3.3.4-r1.ebuild
index 2fd005d88041..5a6ccd9fe56c 100644
--- a/dev-util/ccache/ccache-3.3.4-r1.ebuild
+++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
@@ -17,6 +17,7 @@ IUSE=""
 DEPEND="app-arch/xz-utils
 	sys-libs/zlib"
 RDEPEND="${DEPEND}
+	dev-util/shadowman
 	sys-apps/gentoo-functions"
 
 src_prepare() {
@@ -53,17 +54,14 @@ ccache now supports sys-devel/clang and dev-lang/icc, too!"
 
 pkg_prerm() {
 	if [[ -z ${REPLACED_BY_VERSION} ]] ; then
-		"${EROOT}"/usr/bin/ccache-config --remove-links
-		"${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+		eselect compiler-shadow remove ccache
 	fi
 }
 
 pkg_postinst() {
-	"${EROOT}"/usr/bin/ccache-config --install-links
-	"${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
+	eselect compiler-shadow update ccache
 
 	# nuke broken symlinks from previous versions that shouldn't exist
-	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
 	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
 
 	readme.gentoo_print_elog
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 05/12] sys-devel/distcc: Convert to EAPI=6
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (3 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 06/12] sys-devel/distcc: Install dev-util/shadowman data file Michał Górny
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild | 199 ++++++++++++++++++++++++++++++
 1 file changed, 199 insertions(+)
 create mode 100644 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild

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..741fa929f503
--- /dev/null
+++ b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
@@ -0,0 +1,199 @@
+# 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="~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() {
+	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
+
+	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 && 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_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 && xdg_desktop_database_update
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 06/12] sys-devel/distcc: Install dev-util/shadowman data file
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (4 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 05/12] sys-devel/distcc: Convert to EAPI=6 Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm Michał Górny
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
index 741fa929f503..c91826e107c4 100644
--- a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
+++ b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
@@ -146,6 +146,9 @@ src_install() {
 		newins "doc/example/xinetd" distcc || die
 	fi
 
+	insinto /usr/share/shadowman/tools
+	newins - distcc <<<"${DCCC_PATH}"
+
 	rm -r "${ED}/etc/default" || die
 	rm "${ED}/etc/distcc/clients.allow" || die
 	rm "${ED}/etc/distcc/commands.allow.sh" || die
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (5 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 06/12] sys-devel/distcc: Install dev-util/shadowman data file Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 08/12] sys-devel/icecream: Convert to EAPI=6 Michał Górny
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
index c91826e107c4..226ec963f269 100644
--- a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
+++ b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
@@ -15,7 +15,7 @@ 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"
+IUSE="gnome gssapi gtk hardened ipv6 selinux xinetd zeroconf"
 
 RESTRICT="test"
 
@@ -35,6 +35,7 @@ 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 )"
@@ -155,13 +156,7 @@ src_install() {
 }
 
 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
+	eselect compiler-shadow update distcc
 
 	use gnome && xdg_desktop_database_update
 
@@ -190,13 +185,12 @@ pkg_postinst() {
 	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}"
+pkg_prerm() {
+	if [[ -z ${REPLACED_BY_VERSION} ]]; then
+		eselect compiler-shadow remove distcc
 	fi
+}
 
+pkg_postrm() {
 	use gnome && xdg_desktop_database_update
 }
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 08/12] sys-devel/icecream: Convert to EAPI=6
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (6 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 09/12] sys-devel/icecream: Install dev-util/shadowman data file Michał Górny
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/icecream/icecream-1.0.0-r2.ebuild | 51 +++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 sys-devel/icecream/icecream-1.0.0-r2.ebuild

diff --git a/sys-devel/icecream/icecream-1.0.0-r2.ebuild b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
new file mode 100644
index 000000000000..ec2858a94ac8
--- /dev/null
+++ b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_P="${P/icecream/icecc}"
+
+inherit user
+
+DESCRIPTION="icecc is a program for distributed compiling of C(++) code across several machines; based on distcc"
+HOMEPAGE="https://github.com/icecc/icecream"
+SRC_URI="ftp://ftp.suse.com/pub/projects/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
+IUSE=""
+
+RDEPEND="
+	sys-libs/libcap-ng
+"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/${P}-libcap-ng.patch"
+)
+
+pkg_setup() {
+	enewgroup icecream
+	enewuser icecream -1 -1 /var/cache/icecream icecream
+}
+
+src_configure() {
+	econf \
+		--enable-shared --disable-static \
+		--enable-clang-wrappers \
+		--enable-clang-rewrite-includes
+}
+
+src_install() {
+	default
+	find "${D}" -name '*.la' -delete || die
+
+	newconfd suse/sysconfig.icecream icecream
+	newinitd "${FILESDIR}"/icecream-r2 icecream
+
+	insinto /etc/logrotate.d
+	newins suse/logrotate icecream
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 09/12] sys-devel/icecream: Install dev-util/shadowman data file
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (7 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 08/12] sys-devel/icecream: Convert to EAPI=6 Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm Michał Górny
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/icecream/icecream-1.0.0-r2.ebuild | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys-devel/icecream/icecream-1.0.0-r2.ebuild b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
index ec2858a94ac8..187928a2290d 100644
--- a/sys-devel/icecream/icecream-1.0.0-r2.ebuild
+++ b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
@@ -48,4 +48,7 @@ src_install() {
 
 	insinto /etc/logrotate.d
 	newins suse/logrotate icecream
+
+	insinto /usr/share/shadowman/tools
+	newins - icecc <<<'/usr/libexec/icecc/bin'
 }
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (8 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 09/12] sys-devel/icecream: Install dev-util/shadowman data file Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm Michał Górny
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/icecream/icecream-1.0.0-r2.ebuild | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/sys-devel/icecream/icecream-1.0.0-r2.ebuild b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
index 187928a2290d..11a57f81722e 100644
--- a/sys-devel/icecream/icecream-1.0.0-r2.ebuild
+++ b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
@@ -17,6 +17,7 @@ KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
 IUSE=""
 
 RDEPEND="
+	dev-util/shadowman
 	sys-libs/libcap-ng
 "
 DEPEND="${RDEPEND}"
@@ -52,3 +53,13 @@ src_install() {
 	insinto /usr/share/shadowman/tools
 	newins - icecc <<<'/usr/libexec/icecc/bin'
 }
+
+pkg_prerm() {
+	if [[ -z ${REPLACED_BY_VERSION} ]]; then
+		eselect compiler-shadow remove icecc
+	fi
+}
+
+pkg_postinst() {
+	eselect compiler-shadow update icecc
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (9 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman Michał Górny
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 eclass/toolchain.eclass | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index ae2db7f0a442..51b37c54ccbd 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -2067,6 +2067,9 @@ gcc_slot_java() {
 
 toolchain_pkg_postinst() {
 	do_gcc_config
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
 
 	if ! is_crosscompile ; then
 		echo
@@ -2105,6 +2108,10 @@ toolchain_pkg_postinst() {
 }
 
 toolchain_pkg_postrm() {
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+
 	# to make our lives easier (and saner), we do the fix_libtool stuff here.
 	# rather than checking SLOT's and trying in upgrade paths, we just see if
 	# the common libstdc++.la exists in the ${LIBPATH} of the gcc that we are
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (10 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm Michał Górny
@ 2017-08-17  8:36 ` Michał Górny
  2017-08-17 10:14 ` [gentoo-dev] Re: [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Sergei Trofimovich
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-17  8:36 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/clang/clang-4.0.1.ebuild    | 12 ++++++++++++
 sys-devel/clang/clang-5.0.9999.ebuild | 12 ++++++++++++
 sys-devel/clang/clang-9999.ebuild     | 12 ++++++++++++
 3 files changed, 36 insertions(+)

diff --git a/sys-devel/clang/clang-4.0.1.ebuild b/sys-devel/clang/clang-4.0.1.ebuild
index 21a5adf2696c..5cf2e54b13ff 100644
--- a/sys-devel/clang/clang-4.0.1.ebuild
+++ b/sys-devel/clang/clang-4.0.1.ebuild
@@ -276,3 +276,15 @@ multilib_src_install_all() {
 	# +x for some reason; TODO: investigate
 	use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
 }
+
+pkg_postinst() {
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
+}
+
+pkg_postrm() {
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+}
diff --git a/sys-devel/clang/clang-5.0.9999.ebuild b/sys-devel/clang/clang-5.0.9999.ebuild
index 2ecd222748d1..15f5fee5e73b 100644
--- a/sys-devel/clang/clang-5.0.9999.ebuild
+++ b/sys-devel/clang/clang-5.0.9999.ebuild
@@ -273,3 +273,15 @@ multilib_src_install_all() {
 	# +x for some reason; TODO: investigate
 	use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
 }
+
+pkg_postinst() {
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
+}
+
+pkg_postrm() {
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+}
diff --git a/sys-devel/clang/clang-9999.ebuild b/sys-devel/clang/clang-9999.ebuild
index 8dd135d6aa25..0114fae03aae 100644
--- a/sys-devel/clang/clang-9999.ebuild
+++ b/sys-devel/clang/clang-9999.ebuild
@@ -277,3 +277,15 @@ multilib_src_install_all() {
 	# +x for some reason; TODO: investigate
 	use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
 }
+
+pkg_postinst() {
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
+}
+
+pkg_postrm() {
+	if [[ -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
@ 2017-08-17  8:48   ` David Seifert
  2017-08-17  9:00     ` Michał Górny
  0 siblings, 1 reply; 33+ messages in thread
From: David Seifert @ 2017-08-17  8:48 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

On Thu, 2017-08-17 at 10:36 +0200, Michał Górny wrote:
> ---
>  dev-util/ccache/ccache-3.3.4-r1.ebuild | 68
> ++++++++++++++++++++++++++++++++++
>  1 file changed, 68 insertions(+)
>  create mode 100644 dev-util/ccache/ccache-3.3.4-r1.ebuild
> 
> diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-
> util/ccache/ccache-3.3.4-r1.ebuild
> new file mode 100644
> index 000000000000..1ef1d45179d1
> --- /dev/null
> +++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
> @@ -0,0 +1,68 @@
> +# Copyright 1999-2017 Gentoo Foundation
> +# Distributed under the terms of the GNU General Public License v2
> +
> +EAPI=6
> +
> +inherit readme.gentoo-r1
> +
> +DESCRIPTION="fast compiler cache"
> +HOMEPAGE="http://ccache.samba.org/"
> +SRC_URI="https://samba.org/ftp/ccache/${P}.tar.xz"
> +
> +LICENSE="GPL-3"
> +SLOT="0"
> +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc
> ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-
> macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris
> ~x86-solaris"
> +IUSE=""
> +
> +DEPEND="app-arch/xz-utils
> +	sys-libs/zlib"
> +RDEPEND="${DEPEND}
> +	sys-apps/gentoo-functions"
> +
> +src_prepare() {
> +	# make sure we always use system zlib
> +	rm -rf zlib || die
> +	eapply "${FILESDIR}"/${PN}-3.3-size-on-disk.patch #456178
> +	eapply_user
> +	sed \
> +		-e "/^EPREFIX=/s:'':'${EPREFIX}':" \
> +		"${FILESDIR}"/ccache-config-3 > ccache-config || die
> +}
> +
> +src_install() {
> +	DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.md )
> +	default
> +
> +	dobin ccache-config
> +
> +	DOC_CONTENTS="
> +To use ccache with **non-Portage** C compiling, add
> +${EPREFIX}/usr/lib/ccache/bin to the beginning of your path, before
> ${EPREFIX}/usr/bin.
> +Portage 2.0.46-r11+ will automatically take advantage of ccache with
> +no additional steps.  If this is your first install of ccache, type
> +something like this to set a maximum cache size of 2GB:\\n
> +# ccache -M 2G\\n
> +If you are upgrading from an older version than 3.x you should clear
> all of your caches like so:\\n
> +# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
> +ccache now supports sys-devel/clang and dev-lang/icc, too!"
> +
> +	readme.gentoo_create_doc
> +}
> +
> +pkg_prerm() {
> +	if [[ -z ${REPLACED_BY_VERSION} ]] ; then
> +		"${EROOT}"/usr/bin/ccache-config --remove-links
> +		"${EROOT}"/usr/bin/ccache-config --remove-links
> ${CHOST}
> +	fi
> +}
> +
> +pkg_postinst() {
> +	"${EROOT}"/usr/bin/ccache-config --install-links
> +	"${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
> +
> +	# nuke broken symlinks from previous versions that shouldn't
> exist
> +	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
> +	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
> +
> +	readme.gentoo_print_elog
> +}

While I personally am not as uptight about 'local'ising variables, I
believe making DOC_CONTENTS local serves an important purpose: to dodge
any chance of people thinking it is allowed to leak into pkg_* phases
(i.e. the whole rationale of readme.gentoo-r1 in the first place). For
DOCS and friends its irrelevant, as their semantics are only import in
src_* phases.


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6
  2017-08-17  8:48   ` David Seifert
@ 2017-08-17  9:00     ` Michał Górny
  2017-08-17  9:08       ` David Seifert
  0 siblings, 1 reply; 33+ messages in thread
From: Michał Górny @ 2017-08-17  9:00 UTC (permalink / raw)
  To: gentoo-dev; +Cc: cluster, robbat2, toolchain, suse, llvm

W dniu czw, 17.08.2017 o godzinie 10∶48 +0200, użytkownik David Seifert
napisał:
> On Thu, 2017-08-17 at 10:36 +0200, Michał Górny wrote:
> > ---
> >  dev-util/ccache/ccache-3.3.4-r1.ebuild | 68
> > ++++++++++++++++++++++++++++++++++
> >  1 file changed, 68 insertions(+)
> >  create mode 100644 dev-util/ccache/ccache-3.3.4-r1.ebuild
> > 
> > diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-
> > util/ccache/ccache-3.3.4-r1.ebuild
> > new file mode 100644
> > index 000000000000..1ef1d45179d1
> > --- /dev/null
> > +++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
> > @@ -0,0 +1,68 @@
> > +# Copyright 1999-2017 Gentoo Foundation
> > +# Distributed under the terms of the GNU General Public License v2
> > +
> > +EAPI=6
> > +
> > +inherit readme.gentoo-r1
> > +
> > +DESCRIPTION="fast compiler cache"
> > +HOMEPAGE="http://ccache.samba.org/"
> > +SRC_URI="https://samba.org/ftp/ccache/${P}.tar.xz"
> > +
> > +LICENSE="GPL-3"
> > +SLOT="0"
> > +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc
> > ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-
> > macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris
> > ~x86-solaris"
> > +IUSE=""
> > +
> > +DEPEND="app-arch/xz-utils
> > +	sys-libs/zlib"
> > +RDEPEND="${DEPEND}
> > +	sys-apps/gentoo-functions"
> > +
> > +src_prepare() {
> > +	# make sure we always use system zlib
> > +	rm -rf zlib || die
> > +	eapply "${FILESDIR}"/${PN}-3.3-size-on-disk.patch #456178
> > +	eapply_user
> > +	sed \
> > +		-e "/^EPREFIX=/s:'':'${EPREFIX}':" \
> > +		"${FILESDIR}"/ccache-config-3 > ccache-config || die
> > +}
> > +
> > +src_install() {
> > +	DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.md )
> > +	default
> > +
> > +	dobin ccache-config
> > +
> > +	DOC_CONTENTS="
> > +To use ccache with **non-Portage** C compiling, add
> > +${EPREFIX}/usr/lib/ccache/bin to the beginning of your path, before
> > ${EPREFIX}/usr/bin.
> > +Portage 2.0.46-r11+ will automatically take advantage of ccache with
> > +no additional steps.  If this is your first install of ccache, type
> > +something like this to set a maximum cache size of 2GB:\\n
> > +# ccache -M 2G\\n
> > +If you are upgrading from an older version than 3.x you should clear
> > all of your caches like so:\\n
> > +# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
> > +ccache now supports sys-devel/clang and dev-lang/icc, too!"
> > +
> > +	readme.gentoo_create_doc
> > +}
> > +
> > +pkg_prerm() {
> > +	if [[ -z ${REPLACED_BY_VERSION} ]] ; then
> > +		"${EROOT}"/usr/bin/ccache-config --remove-links
> > +		"${EROOT}"/usr/bin/ccache-config --remove-links
> > ${CHOST}
> > +	fi
> > +}
> > +
> > +pkg_postinst() {
> > +	"${EROOT}"/usr/bin/ccache-config --install-links
> > +	"${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
> > +
> > +	# nuke broken symlinks from previous versions that shouldn't
> > exist
> > +	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
> > +	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
> > +
> > +	readme.gentoo_print_elog
> > +}
> 
> While I personally am not as uptight about 'local'ising variables, I
> believe making DOC_CONTENTS local serves an important purpose: to dodge
> any chance of people thinking it is allowed to leak into pkg_* phases
> (i.e. the whole rationale of readme.gentoo-r1 in the first place). For
> DOCS and friends its irrelevant, as their semantics are only import in
> src_* phases.
> 

Are you saying that I should move it to pkg_setup()?

-- 
Best regards,
Michał Górny



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6
  2017-08-17  9:00     ` Michał Górny
@ 2017-08-17  9:08       ` David Seifert
  0 siblings, 0 replies; 33+ messages in thread
From: David Seifert @ 2017-08-17  9:08 UTC (permalink / raw)
  To: gentoo-dev; +Cc: cluster, robbat2, toolchain, suse, llvm

On Thu, 2017-08-17 at 11:00 +0200, Michał Górny wrote:
> W dniu czw, 17.08.2017 o godzinie 10∶48 +0200, użytkownik David
> Seifert
> napisał:
> > On Thu, 2017-08-17 at 10:36 +0200, Michał Górny wrote:
> > > ---
> > >  dev-util/ccache/ccache-3.3.4-r1.ebuild | 68
> > > ++++++++++++++++++++++++++++++++++
> > >  1 file changed, 68 insertions(+)
> > >  create mode 100644 dev-util/ccache/ccache-3.3.4-r1.ebuild
> > > 
> > > diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-
> > > util/ccache/ccache-3.3.4-r1.ebuild
> > > new file mode 100644
> > > index 000000000000..1ef1d45179d1
> > > --- /dev/null
> > > +++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
> > > @@ -0,0 +1,68 @@
> > > +# Copyright 1999-2017 Gentoo Foundation
> > > +# Distributed under the terms of the GNU General Public License
> > > v2
> > > +
> > > +EAPI=6
> > > +
> > > +inherit readme.gentoo-r1
> > > +
> > > +DESCRIPTION="fast compiler cache"
> > > +HOMEPAGE="http://ccache.samba.org/"
> > > +SRC_URI="https://samba.org/ftp/ccache/${P}.tar.xz"
> > > +
> > > +LICENSE="GPL-3"
> > > +SLOT="0"
> > > +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc
> > > ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux
> > > ~ppc-
> > > macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-
> > > solaris
> > > ~x86-solaris"
> > > +IUSE=""
> > > +
> > > +DEPEND="app-arch/xz-utils
> > > +	sys-libs/zlib"
> > > +RDEPEND="${DEPEND}
> > > +	sys-apps/gentoo-functions"
> > > +
> > > +src_prepare() {
> > > +	# make sure we always use system zlib
> > > +	rm -rf zlib || die
> > > +	eapply "${FILESDIR}"/${PN}-3.3-size-on-disk.patch
> > > #456178
> > > +	eapply_user
> > > +	sed \
> > > +		-e "/^EPREFIX=/s:'':'${EPREFIX}':" \
> > > +		"${FILESDIR}"/ccache-config-3 > ccache-config ||
> > > die
> > > +}
> > > +
> > > +src_install() {
> > > +	DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.md )
> > > +	default
> > > +
> > > +	dobin ccache-config
> > > +
> > > +	DOC_CONTENTS="
> > > +To use ccache with **non-Portage** C compiling, add
> > > +${EPREFIX}/usr/lib/ccache/bin to the beginning of your path,
> > > before
> > > ${EPREFIX}/usr/bin.
> > > +Portage 2.0.46-r11+ will automatically take advantage of ccache
> > > with
> > > +no additional steps.  If this is your first install of ccache,
> > > type
> > > +something like this to set a maximum cache size of 2GB:\\n
> > > +# ccache -M 2G\\n
> > > +If you are upgrading from an older version than 3.x you should
> > > clear
> > > all of your caches like so:\\n
> > > +# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache
> > > -C\\n
> > > +ccache now supports sys-devel/clang and dev-lang/icc, too!"
> > > +
> > > +	readme.gentoo_create_doc
> > > +}
> > > +
> > > +pkg_prerm() {
> > > +	if [[ -z ${REPLACED_BY_VERSION} ]] ; then
> > > +		"${EROOT}"/usr/bin/ccache-config --remove-links
> > > +		"${EROOT}"/usr/bin/ccache-config --remove-links
> > > ${CHOST}
> > > +	fi
> > > +}
> > > +
> > > +pkg_postinst() {
> > > +	"${EROOT}"/usr/bin/ccache-config --install-links
> > > +	"${EROOT}"/usr/bin/ccache-config --install-links
> > > ${CHOST}
> > > +
> > > +	# nuke broken symlinks from previous versions that
> > > shouldn't
> > > exist
> > > +	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
> > > +	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
> > > +
> > > +	readme.gentoo_print_elog
> > > +}
> > 
> > While I personally am not as uptight about 'local'ising variables,
> > I
> > believe making DOC_CONTENTS local serves an important purpose: to
> > dodge
> > any chance of people thinking it is allowed to leak into pkg_*
> > phases
> > (i.e. the whole rationale of readme.gentoo-r1 in the first place).
> > For
> > DOCS and friends its irrelevant, as their semantics are only import
> > in
> > src_* phases.
> > 
> 
> Are you saying that I should move it to pkg_setup()?
> 

No, all I'm saying is make DOC_CONTENTS local in src_install().


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [gentoo-dev] Re: [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (11 preceding siblings ...)
  2017-08-17  8:36 ` [gentoo-dev] [PATCH 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman Michał Górny
@ 2017-08-17 10:14 ` Sergei Trofimovich
  2017-08-19 10:19 ` [gentoo-dev] " Manuel Rüger
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
  14 siblings, 0 replies; 33+ messages in thread
From: Sergei Trofimovich @ 2017-08-17 10:14 UTC (permalink / raw)
  To: Michał Górny
  Cc: gentoo-dev, cluster, robbat2, toolchain, suse, llvm

[-- Attachment #1: Type: text/plain, Size: 1597 bytes --]

On Thu, 17 Aug 2017 10:36:29 +0200
Michał Górny <mgorny@gentoo.org> wrote:

> Hi, everyone.
> 
> I've written a new tool called shadowman [1] that aims to partially
> replace the current *-config tools shipped with ccache, distcc, icecc
> and potentially more.
> 
> Why? Because the existing tools are inconsistent, inconvenient
> and usually incomplete. The README [2] states a number of advantages:
> 
> | 1. one usage syntax that works for all tools,
> |
> | 2. ability to update/clean masquerades for multiple tools in one call,
> |
> | 3. consistent (and *good*) implementation -- now all tools get the same
> | executable list,
> |
> | 4. reduced code duplication,
> |
> | 5. modular layout that allows adding extra tools/compiler wildcards
> | by third-party packages.
> 
> This thread includes patches that:
> 
> a. add the package for shadowman (skipping some bundled modules for
> external inclusion) -- for testing it's just a live ebuild with full
> keyword set; I will obviously change that before the final inclusion;
> 
> b. adds shadowman support to ccache, distcc & icecream packages
> (preserving the old utilities for compatibility),
> 
> c. adds shadowman update call to toolchain.eclass & clang ebuilds
> so that the masquerades get updated automatically on gcc/clang upgrade.
> 
> Please review. Alternatively available as PR on GitHub [3].
> 
> [1]:https://github.com/mgorny/shadowman
> [2]:https://github.com/mgorny/shadowman/blob/master/README
> [3]:https://github.com/gentoo/gentoo/pull/5386
> 

Looks ok.

-- 

  Sergei

[-- Attachment #2: Цифровая подпись OpenPGP --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (12 preceding siblings ...)
  2017-08-17 10:14 ` [gentoo-dev] Re: [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Sergei Trofimovich
@ 2017-08-19 10:19 ` Manuel Rüger
  2017-08-19 10:53   ` Michał Górny
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
  14 siblings, 1 reply; 33+ messages in thread
From: Manuel Rüger @ 2017-08-19 10:19 UTC (permalink / raw)
  To: gentoo-dev

On 17.08.2017 10:36, Michał Górny wrote:
> Hi, everyone.
> 
> I've written a new tool called shadowman [1] that aims to partially
> replace the current *-config tools shipped with ccache, distcc, icecc
> and potentially more.
> 
> Why? Because the existing tools are inconsistent, inconvenient
> and usually incomplete. The README [2] states a number of advantages:
> 
> | 1. one usage syntax that works for all tools,
> |
> | 2. ability to update/clean masquerades for multiple tools in one call,
> |
> | 3. consistent (and *good*) implementation -- now all tools get the same
> | executable list,
> |
> | 4. reduced code duplication,
> |
> | 5. modular layout that allows adding extra tools/compiler wildcards
> | by third-party packages.
> 
> This thread includes patches that:
> 
> a. add the package for shadowman (skipping some bundled modules for
> external inclusion) -- for testing it's just a live ebuild with full
> keyword set; I will obviously change that before the final inclusion;
> 
> b. adds shadowman support to ccache, distcc & icecream packages
> (preserving the old utilities for compatibility),
> 
> c. adds shadowman update call to toolchain.eclass & clang ebuilds
> so that the masquerades get updated automatically on gcc/clang upgrade.
> 
> Please review. Alternatively available as PR on GitHub [3].
> 
> [1]:https://github.com/mgorny/shadowman
> [2]:https://github.com/mgorny/shadowman/blob/master/README
> [3]:https://github.com/gentoo/gentoo/pull/5386
> 
> 
Have you considered moving it under the gentoo umbrella (e.g., mirror it
on git.gentoo.org or move it to the gentoo organisation)?

Thanks,
Manuel


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir
  2017-08-19 10:19 ` [gentoo-dev] " Manuel Rüger
@ 2017-08-19 10:53   ` Michał Górny
  2017-08-19 11:10     ` Manuel Rüger
  0 siblings, 1 reply; 33+ messages in thread
From: Michał Górny @ 2017-08-19 10:53 UTC (permalink / raw)
  To: gentoo-dev, Manuel Rüger

Dnia 19 sierpnia 2017 12:19:18 CEST, "Manuel Rüger" <mrueg@gentoo.org> napisał(a):
>On 17.08.2017 10:36, Michał Górny wrote:
>> Hi, everyone.
>> 
>> I've written a new tool called shadowman [1] that aims to partially
>> replace the current *-config tools shipped with ccache, distcc, icecc
>> and potentially more.
>> 
>> Why? Because the existing tools are inconsistent, inconvenient
>> and usually incomplete. The README [2] states a number of advantages:
>> 
>> | 1. one usage syntax that works for all tools,
>> |
>> | 2. ability to update/clean masquerades for multiple tools in one
>call,
>> |
>> | 3. consistent (and *good*) implementation -- now all tools get the
>same
>> | executable list,
>> |
>> | 4. reduced code duplication,
>> |
>> | 5. modular layout that allows adding extra tools/compiler wildcards
>> | by third-party packages.
>> 
>> This thread includes patches that:
>> 
>> a. add the package for shadowman (skipping some bundled modules for
>> external inclusion) -- for testing it's just a live ebuild with full
>> keyword set; I will obviously change that before the final inclusion;
>> 
>> b. adds shadowman support to ccache, distcc & icecream packages
>> (preserving the old utilities for compatibility),
>> 
>> c. adds shadowman update call to toolchain.eclass & clang ebuilds
>> so that the masquerades get updated automatically on gcc/clang
>upgrade.
>> 
>> Please review. Alternatively available as PR on GitHub [3].
>> 
>> [1]:https://github.com/mgorny/shadowman
>> [2]:https://github.com/mgorny/shadowman/blob/master/README
>> [3]:https://github.com/gentoo/gentoo/pull/5386
>> 
>> 
>Have you considered moving it under the gentoo umbrella (e.g., mirror
>it
>on git.gentoo.org or move it to the gentoo organisation)?

No, I'm not interested in giving away credit to my personal work which I'm personally maintaining.

>
>Thanks,
>Manuel


-- 
Best regards,
Michał Górny (by phone)


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir
  2017-08-19 10:53   ` Michał Górny
@ 2017-08-19 11:10     ` Manuel Rüger
  0 siblings, 0 replies; 33+ messages in thread
From: Manuel Rüger @ 2017-08-19 11:10 UTC (permalink / raw)
  To: Michał Górny, gentoo-dev

On 19.08.2017 12:53, Michał Górny wrote:
> Dnia 19 sierpnia 2017 12:19:18 CEST, "Manuel Rüger" <mrueg@gentoo.org> napisał(a):
>> On 17.08.2017 10:36, Michał Górny wrote:
>>> Hi, everyone.
>>>
>>> I've written a new tool called shadowman [1] that aims to partially
>>> replace the current *-config tools shipped with ccache, distcc, icecc
>>> and potentially more.
>>>
>>> Why? Because the existing tools are inconsistent, inconvenient
>>> and usually incomplete. The README [2] states a number of advantages:
>>>
>>> | 1. one usage syntax that works for all tools,
>>> |
>>> | 2. ability to update/clean masquerades for multiple tools in one
>> call,
>>> |
>>> | 3. consistent (and *good*) implementation -- now all tools get the
>> same
>>> | executable list,
>>> |
>>> | 4. reduced code duplication,
>>> |
>>> | 5. modular layout that allows adding extra tools/compiler wildcards
>>> | by third-party packages.
>>>
>>> This thread includes patches that:
>>>
>>> a. add the package for shadowman (skipping some bundled modules for
>>> external inclusion) -- for testing it's just a live ebuild with full
>>> keyword set; I will obviously change that before the final inclusion;
>>>
>>> b. adds shadowman support to ccache, distcc & icecream packages
>>> (preserving the old utilities for compatibility),
>>>
>>> c. adds shadowman update call to toolchain.eclass & clang ebuilds
>>> so that the masquerades get updated automatically on gcc/clang
>> upgrade.
>>>
>>> Please review. Alternatively available as PR on GitHub [3].
>>>
>>> [1]:https://github.com/mgorny/shadowman
>>> [2]:https://github.com/mgorny/shadowman/blob/master/README
>>> [3]:https://github.com/gentoo/gentoo/pull/5386
>>>
>>>
>> Have you considered moving it under the gentoo umbrella (e.g., mirror
>> it
>> on git.gentoo.org or move it to the gentoo organisation)?
> 
> No, I'm not interested in giving away credit to my personal work which I'm personally maintaining.
> 
Why do you consider it to "give away credit" when it's under
github.org/gentoo/ or on git.gentoo.org? You'll still be author of the
commits.

>>
>> Thanks,
>> Manuel
> 
> 



^ permalink raw reply	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package
  2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
                   ` (13 preceding siblings ...)
  2017-08-19 10:19 ` [gentoo-dev] " Manuel Rüger
@ 2017-08-20 10:26 ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
                     ` (11 more replies)
  14 siblings, 12 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/shadowman/metadata.xml          |  8 ++++++++
 dev-util/shadowman/shadowman-9999.ebuild | 27 +++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 dev-util/shadowman/metadata.xml
 create mode 100644 dev-util/shadowman/shadowman-9999.ebuild

diff --git a/dev-util/shadowman/metadata.xml b/dev-util/shadowman/metadata.xml
new file mode 100644
index 000000000000..0319eec4c8be
--- /dev/null
+++ b/dev-util/shadowman/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>mgorny@gentoo.org</email>
+		<name>Michał Górny</name>
+	</maintainer>
+</pkgmetadata>
diff --git a/dev-util/shadowman/shadowman-9999.ebuild b/dev-util/shadowman/shadowman-9999.ebuild
new file mode 100644
index 000000000000..990b92e51623
--- /dev/null
+++ b/dev-util/shadowman/shadowman-9999.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+EGIT_REPO_URI="https://github.com/mgorny/shadowman"
+inherit git-r3
+
+DESCRIPTION="Unified compiler shadow link directory updater"
+HOMEPAGE="https://github.com/mgorny/shadowman"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+# note: only for testing
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND="app-admin/eselect"
+DEPEND="${RDEPEND}"
+
+src_install() {
+	# tool modules are split into their respective packages
+	emake DESTDIR="${D}" install \
+		INSTALL_MODULES_TOOL=""
+	keepdir /usr/share/shadowman/tools
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 02/12] dev-util/ccache: Convert to EAPI=6
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 03/12] dev-util/ccache: Install dev-util/shadowman data file Michał Górny
                     ` (10 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/ccache/ccache-3.3.4-r1.ebuild | 68 ++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 dev-util/ccache/ccache-3.3.4-r1.ebuild

diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-util/ccache/ccache-3.3.4-r1.ebuild
new file mode 100644
index 000000000000..1ef1d45179d1
--- /dev/null
+++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit readme.gentoo-r1
+
+DESCRIPTION="fast compiler cache"
+HOMEPAGE="http://ccache.samba.org/"
+SRC_URI="https://samba.org/ftp/ccache/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="app-arch/xz-utils
+	sys-libs/zlib"
+RDEPEND="${DEPEND}
+	sys-apps/gentoo-functions"
+
+src_prepare() {
+	# make sure we always use system zlib
+	rm -rf zlib || die
+	eapply "${FILESDIR}"/${PN}-3.3-size-on-disk.patch #456178
+	eapply_user
+	sed \
+		-e "/^EPREFIX=/s:'':'${EPREFIX}':" \
+		"${FILESDIR}"/ccache-config-3 > ccache-config || die
+}
+
+src_install() {
+	DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.md )
+	default
+
+	dobin ccache-config
+
+	DOC_CONTENTS="
+To use ccache with **non-Portage** C compiling, add
+${EPREFIX}/usr/lib/ccache/bin to the beginning of your path, before ${EPREFIX}/usr/bin.
+Portage 2.0.46-r11+ will automatically take advantage of ccache with
+no additional steps.  If this is your first install of ccache, type
+something like this to set a maximum cache size of 2GB:\\n
+# ccache -M 2G\\n
+If you are upgrading from an older version than 3.x you should clear all of your caches like so:\\n
+# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
+ccache now supports sys-devel/clang and dev-lang/icc, too!"
+
+	readme.gentoo_create_doc
+}
+
+pkg_prerm() {
+	if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+		"${EROOT}"/usr/bin/ccache-config --remove-links
+		"${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+	fi
+}
+
+pkg_postinst() {
+	"${EROOT}"/usr/bin/ccache-config --install-links
+	"${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
+
+	# nuke broken symlinks from previous versions that shouldn't exist
+	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
+	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
+
+	readme.gentoo_print_elog
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 03/12] dev-util/ccache: Install dev-util/shadowman data file
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm Michał Górny
                     ` (9 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/ccache/ccache-3.3.4-r1.ebuild | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-util/ccache/ccache-3.3.4-r1.ebuild
index 1ef1d45179d1..2fd005d88041 100644
--- a/dev-util/ccache/ccache-3.3.4-r1.ebuild
+++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
@@ -34,6 +34,8 @@ src_install() {
 	default
 
 	dobin ccache-config
+	insinto /usr/share/shadowman/tools
+	newins - ccache <<<'/usr/lib/ccache/bin'
 
 	DOC_CONTENTS="
 To use ccache with **non-Portage** C compiling, add
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 03/12] dev-util/ccache: Install dev-util/shadowman data file Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 05/12] sys-devel/distcc: Convert to EAPI=6 Michał Górny
                     ` (8 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 dev-util/ccache/ccache-3.3.4-r1.ebuild | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

changes in v2: do not apply magic when ROOT!=/

diff --git a/dev-util/ccache/ccache-3.3.4-r1.ebuild b/dev-util/ccache/ccache-3.3.4-r1.ebuild
index 2fd005d88041..4b0d4dddc994 100644
--- a/dev-util/ccache/ccache-3.3.4-r1.ebuild
+++ b/dev-util/ccache/ccache-3.3.4-r1.ebuild
@@ -17,6 +17,7 @@ IUSE=""
 DEPEND="app-arch/xz-utils
 	sys-libs/zlib"
 RDEPEND="${DEPEND}
+	dev-util/shadowman
 	sys-apps/gentoo-functions"
 
 src_prepare() {
@@ -52,18 +53,17 @@ ccache now supports sys-devel/clang and dev-lang/icc, too!"
 }
 
 pkg_prerm() {
-	if [[ -z ${REPLACED_BY_VERSION} ]] ; then
-		"${EROOT}"/usr/bin/ccache-config --remove-links
-		"${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+	if [[ -z ${REPLACED_BY_VERSION} && ${ROOT} == / ]] ; then
+		eselect compiler-shadow remove ccache
 	fi
 }
 
 pkg_postinst() {
-	"${EROOT}"/usr/bin/ccache-config --install-links
-	"${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
+	if [[ ${ROOT} == / ]]; then
+		eselect compiler-shadow update ccache
+	fi
 
 	# nuke broken symlinks from previous versions that shouldn't exist
-	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
 	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
 
 	readme.gentoo_print_elog
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 05/12] sys-devel/distcc: Convert to EAPI=6
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (2 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 06/12] sys-devel/distcc: Install dev-util/shadowman data file Michał Górny
                     ` (7 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild | 199 ++++++++++++++++++++++++++++++
 1 file changed, 199 insertions(+)
 create mode 100644 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild

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..741fa929f503
--- /dev/null
+++ b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
@@ -0,0 +1,199 @@
+# 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="~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() {
+	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
+
+	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 && 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_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 && xdg_desktop_database_update
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 06/12] sys-devel/distcc: Install dev-util/shadowman data file
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (3 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 05/12] sys-devel/distcc: Convert to EAPI=6 Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm Michał Górny
                     ` (6 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
index 741fa929f503..c91826e107c4 100644
--- a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
+++ b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
@@ -146,6 +146,9 @@ src_install() {
 		newins "doc/example/xinetd" distcc || die
 	fi
 
+	insinto /usr/share/shadowman/tools
+	newins - distcc <<<"${DCCC_PATH}"
+
 	rm -r "${ED}/etc/default" || die
 	rm "${ED}/etc/distcc/clients.allow" || die
 	rm "${ED}/etc/distcc/commands.allow.sh" || die
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (4 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 06/12] sys-devel/distcc: Install dev-util/shadowman data file Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 08/12] sys-devel/icecream: Convert to EAPI=6 Michał Górny
                     ` (5 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/distcc/distcc-3.2_rc1-r5.ebuild | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

changes in v2: do not apply magic when ROOT!=/

diff --git a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
index c91826e107c4..b658eca32c27 100644
--- a/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
+++ b/sys-devel/distcc/distcc-3.2_rc1-r5.ebuild
@@ -15,7 +15,7 @@ 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"
+IUSE="gnome gssapi gtk hardened ipv6 selinux xinetd zeroconf"
 
 RESTRICT="test"
 
@@ -35,6 +35,7 @@ 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 )"
@@ -155,12 +156,8 @@ src_install() {
 }
 
 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
+	if [[ ${ROOT} == / ]]; then
+		eselect compiler-shadow update distcc
 	fi
 
 	use gnome && xdg_desktop_database_update
@@ -190,13 +187,12 @@ pkg_postinst() {
 	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}"
+pkg_prerm() {
+	if [[ -z ${REPLACED_BY_VERSION} && ${ROOT} == / ]]; then
+		eselect compiler-shadow remove distcc
 	fi
+}
 
+pkg_postrm() {
 	use gnome && xdg_desktop_database_update
 }
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 08/12] sys-devel/icecream: Convert to EAPI=6
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (5 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 09/12] sys-devel/icecream: Install dev-util/shadowman data file Michał Górny
                     ` (4 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/icecream/icecream-1.0.0-r2.ebuild | 51 +++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 sys-devel/icecream/icecream-1.0.0-r2.ebuild

diff --git a/sys-devel/icecream/icecream-1.0.0-r2.ebuild b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
new file mode 100644
index 000000000000..ec2858a94ac8
--- /dev/null
+++ b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_P="${P/icecream/icecc}"
+
+inherit user
+
+DESCRIPTION="icecc is a program for distributed compiling of C(++) code across several machines; based on distcc"
+HOMEPAGE="https://github.com/icecc/icecream"
+SRC_URI="ftp://ftp.suse.com/pub/projects/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
+IUSE=""
+
+RDEPEND="
+	sys-libs/libcap-ng
+"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/${P}-libcap-ng.patch"
+)
+
+pkg_setup() {
+	enewgroup icecream
+	enewuser icecream -1 -1 /var/cache/icecream icecream
+}
+
+src_configure() {
+	econf \
+		--enable-shared --disable-static \
+		--enable-clang-wrappers \
+		--enable-clang-rewrite-includes
+}
+
+src_install() {
+	default
+	find "${D}" -name '*.la' -delete || die
+
+	newconfd suse/sysconfig.icecream icecream
+	newinitd "${FILESDIR}"/icecream-r2 icecream
+
+	insinto /etc/logrotate.d
+	newins suse/logrotate icecream
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 09/12] sys-devel/icecream: Install dev-util/shadowman data file
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (6 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 08/12] sys-devel/icecream: Convert to EAPI=6 Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm Michał Górny
                     ` (3 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/icecream/icecream-1.0.0-r2.ebuild | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys-devel/icecream/icecream-1.0.0-r2.ebuild b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
index ec2858a94ac8..187928a2290d 100644
--- a/sys-devel/icecream/icecream-1.0.0-r2.ebuild
+++ b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
@@ -48,4 +48,7 @@ src_install() {
 
 	insinto /etc/logrotate.d
 	newins suse/logrotate icecream
+
+	insinto /usr/share/shadowman/tools
+	newins - icecc <<<'/usr/libexec/icecc/bin'
 }
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (7 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 09/12] sys-devel/icecream: Install dev-util/shadowman data file Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm Michał Górny
                     ` (2 subsequent siblings)
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/icecream/icecream-1.0.0-r2.ebuild | 13 +++++++++++++
 1 file changed, 13 insertions(+)

changes in v2: do not apply magic when ROOT!=/

diff --git a/sys-devel/icecream/icecream-1.0.0-r2.ebuild b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
index 187928a2290d..96a3c171e8a0 100644
--- a/sys-devel/icecream/icecream-1.0.0-r2.ebuild
+++ b/sys-devel/icecream/icecream-1.0.0-r2.ebuild
@@ -17,6 +17,7 @@ KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
 IUSE=""
 
 RDEPEND="
+	dev-util/shadowman
 	sys-libs/libcap-ng
 "
 DEPEND="${RDEPEND}"
@@ -52,3 +53,15 @@ src_install() {
 	insinto /usr/share/shadowman/tools
 	newins - icecc <<<'/usr/libexec/icecc/bin'
 }
+
+pkg_prerm() {
+	if [[ -z ${REPLACED_BY_VERSION} && ${ROOT} == / ]]; then
+		eselect compiler-shadow remove icecc
+	fi
+}
+
+pkg_postinst() {
+	if [[ ${ROOT} == / ]]; then
+		eselect compiler-shadow update icecc
+	fi
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (8 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman Michał Górny
  2017-08-21  1:25   ` [gentoo-dev] Re: [PATCH v2 01/12] dev-util/shadowman: New package Duncan
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 eclass/toolchain.eclass | 7 +++++++
 1 file changed, 7 insertions(+)

changes in v2: do not apply magic when ROOT!=/

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index ae2db7f0a442..dad4ae3d1972 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -2067,6 +2067,9 @@ gcc_slot_java() {
 
 toolchain_pkg_postinst() {
 	do_gcc_config
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
 
 	if ! is_crosscompile ; then
 		echo
@@ -2105,6 +2108,10 @@ toolchain_pkg_postinst() {
 }
 
 toolchain_pkg_postrm() {
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+
 	# to make our lives easier (and saner), we do the fix_libtool stuff here.
 	# rather than checking SLOT's and trying in upgrade paths, we just see if
 	# the common libstdc++.la exists in the ${LIBPATH} of the gcc that we are
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] [PATCH v2 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (9 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm Michał Górny
@ 2017-08-20 10:26   ` Michał Górny
  2017-08-21  1:25   ` [gentoo-dev] Re: [PATCH v2 01/12] dev-util/shadowman: New package Duncan
  11 siblings, 0 replies; 33+ messages in thread
From: Michał Górny @ 2017-08-20 10:26 UTC (permalink / raw)
  To: gentoo-dev
  Cc: cluster, robbat2, toolchain, suse, llvm, Michał Górny

---
 sys-devel/clang/clang-4.0.1.ebuild    | 12 ++++++++++++
 sys-devel/clang/clang-5.0.9999.ebuild | 12 ++++++++++++
 sys-devel/clang/clang-9999.ebuild     | 12 ++++++++++++
 3 files changed, 36 insertions(+)

changes in v2: do not apply magic when ROOT!=/

diff --git a/sys-devel/clang/clang-4.0.1.ebuild b/sys-devel/clang/clang-4.0.1.ebuild
index 21a5adf2696c..821cae0ab5b8 100644
--- a/sys-devel/clang/clang-4.0.1.ebuild
+++ b/sys-devel/clang/clang-4.0.1.ebuild
@@ -276,3 +276,15 @@ multilib_src_install_all() {
 	# +x for some reason; TODO: investigate
 	use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
 }
+
+pkg_postinst() {
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
+}
+
+pkg_postrm() {
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+}
diff --git a/sys-devel/clang/clang-5.0.9999.ebuild b/sys-devel/clang/clang-5.0.9999.ebuild
index 2ecd222748d1..54f8aaa20cf6 100644
--- a/sys-devel/clang/clang-5.0.9999.ebuild
+++ b/sys-devel/clang/clang-5.0.9999.ebuild
@@ -273,3 +273,15 @@ multilib_src_install_all() {
 	# +x for some reason; TODO: investigate
 	use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
 }
+
+pkg_postinst() {
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
+}
+
+pkg_postrm() {
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+}
diff --git a/sys-devel/clang/clang-9999.ebuild b/sys-devel/clang/clang-9999.ebuild
index 8dd135d6aa25..010df120d1d5 100644
--- a/sys-devel/clang/clang-9999.ebuild
+++ b/sys-devel/clang/clang-9999.ebuild
@@ -277,3 +277,15 @@ multilib_src_install_all() {
 	# +x for some reason; TODO: investigate
 	use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
 }
+
+pkg_postinst() {
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow update all
+	fi
+}
+
+pkg_postrm() {
+	if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+		eselect compiler-shadow clean all
+	fi
+}
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [gentoo-dev] Re: [PATCH v2 01/12] dev-util/shadowman: New package
  2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
                     ` (10 preceding siblings ...)
  2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman Michał Górny
@ 2017-08-21  1:25   ` Duncan
  11 siblings, 0 replies; 33+ messages in thread
From: Duncan @ 2017-08-21  1:25 UTC (permalink / raw)
  To: gentoo-dev

Michał Górny posted on Sun, 20 Aug 2017 12:26:48 +0200 as excerpted:

> --- /dev/null
> +++ b/dev-util/shadowman/shadowman-9999.ebuild
> @@ -0,0 +1,27 @@
[snip...]
> +# note: only for testing
> +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"

OK, I know you said this was only for testing, but a question
I had the first time around and didn't ask...

It seems to me just as easy... and less chance of potential problems
should a tester accidentally commit it, to handle it the way
gentoo/kde does with live and not-yet-ready ebuilds in their
overlay:

Blank keywords in the ebuild and add it to package.accept_keywords
(or simply package.keywords if you prefer the old name) with a **
entry if you're testing.

Example from my package.accept_keywords (this entry might be in
the symlinkable files in the overlay now, but it wasn't when
I created it):

# 2017.0611 kirigami needed for kde systemsettings
# might as well do it live-9999 too
=kde-frameworks/kirigami-9999                           **


Not that it matters particularly, but is there a reason you chose
to put the keywords in the ebuild instead of having people do
the ** thing as above?  A blank keywords, thereby forcing people
who actually want to test to do the ** thing, would seem less
of an invitation to problems should someone accidentally commit it
during testing (tho admittedly this is a new package so problems
are less likely, but I'm just used to seeing it require the
** accept_keyword thing).  So I'm just wondering what reason you
might have had to do it this way instead.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2017-08-21  1:25 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-17  8:36 [gentoo-dev] [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 01/12] dev-util/shadowman: New package Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
2017-08-17  8:48   ` David Seifert
2017-08-17  9:00     ` Michał Górny
2017-08-17  9:08       ` David Seifert
2017-08-17  8:36 ` [gentoo-dev] [PATCH 03/12] dev-util/ccache: Install dev-util/shadowman data file Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 05/12] sys-devel/distcc: Convert to EAPI=6 Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 06/12] sys-devel/distcc: Install dev-util/shadowman data file Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 08/12] sys-devel/icecream: Convert to EAPI=6 Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 09/12] sys-devel/icecream: Install dev-util/shadowman data file Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm Michał Górny
2017-08-17  8:36 ` [gentoo-dev] [PATCH 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman Michał Górny
2017-08-17 10:14 ` [gentoo-dev] Re: [RFC] [PATCH] dev-util/shadowman: Unified tool to update ccache/distcc/icecc shadow dir Sergei Trofimovich
2017-08-19 10:19 ` [gentoo-dev] " Manuel Rüger
2017-08-19 10:53   ` Michał Górny
2017-08-19 11:10     ` Manuel Rüger
2017-08-20 10:26 ` [gentoo-dev] [PATCH v2 01/12] dev-util/shadowman: New package Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 02/12] dev-util/ccache: Convert to EAPI=6 Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 03/12] dev-util/ccache: Install dev-util/shadowman data file Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 04/12] dev-util/ccache: Use dev-util/shadowman for postinst/prerm Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 05/12] sys-devel/distcc: Convert to EAPI=6 Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 06/12] sys-devel/distcc: Install dev-util/shadowman data file Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 07/12] sys-devel/distcc: Use dev-util/shadowman for postinst/prerm Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 08/12] sys-devel/icecream: Convert to EAPI=6 Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 09/12] sys-devel/icecream: Install dev-util/shadowman data file Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 10/12] sys-devel/icecream: Use dev-util/shadowman for postinst/prerm Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 11/12] toolchain.eclass: Update masquerades via dev-util/shadowman postinst/rm Michał Górny
2017-08-20 10:26   ` [gentoo-dev] [PATCH v2 12/12] sys-devel/clang: Enable masquerades via dev-util/shadowman Michał Górny
2017-08-21  1:25   ` [gentoo-dev] Re: [PATCH v2 01/12] dev-util/shadowman: New package Duncan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox