From 54a220e04370835543695c069739b51dd931d473 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sun, 18 Dec 2011 23:38:11 +0000 Subject: [PATCH] Bug #390691: Be careful about cp call to coreutils with --no-preserve option that might not be available until later in an upgrade. --- eclass/ChangeLog | 6 +++++- eclass/python.eclass | 10 ++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/eclass/ChangeLog b/eclass/ChangeLog index 0ced77e8ce26..84b5542bea67 100644 --- a/eclass/ChangeLog +++ b/eclass/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for eclass directory # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.49 2011/12/18 21:33:50 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.50 2011/12/18 23:38:11 robbat2 Exp $ + + 18 Dec 2011; Robin H. Johnson python.eclass: + Bug #390691: Be careful about cp call to coreutils with --no-preserve option + that might not be available until later in an upgrade. 18 Dec 2011; Diego E. Pettenò ruby-ng.eclass: Reorder setting of REQUIRED_USE to stay near IUSE setting; also use diff --git a/eclass/python.eclass b/eclass/python.eclass index 51b76075ade3..0c0707aaac9e 100644 --- a/eclass/python.eclass +++ b/eclass/python.eclass @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.141 2011/11/30 08:55:18 djc Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.142 2011/12/18 23:38:11 robbat2 Exp $ # @ECLASS: python.eclass # @MAINTAINER: @@ -1592,8 +1592,14 @@ for file in sorted(files_set): popd > /dev/null || die "popd failed" - if ROOT="/" has_version sys-apps/coreutils; then + # This is per bug #390691, without the duplication refactor, and with + # the 3-way structure per comment #6. This enable users with old + # coreutils to upgrade a lot easier (you need to upgrade python+portage + # before coreutils can be upgraded). + if ROOT="/" has_version >=sys-apps/coreutils-6.9.90; then cp -fr --preserve=all --no-preserve=context "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed" + elif ROOT="/" has_version sys-apps/coreutils; then + cp -fr --preserve=all "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed" else cp -fpr "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed" fi -- 2.26.2