On Fri, Apr 29, 2011 at 12:28:03PM +0100, Ciaran McCreesh wrote: > On Fri, 29 Apr 2011 07:21:23 -0400 > Rich Freeman <[email protected]> wrote: > > Perhaps a future/in-progress EAPI could define a mechanism where an > > ebuild can indicate that a particular update or set of circumstances > > is a system-critical change, and that the package manager should > > consequently alert the user and ensure that they have confirmed the > > action. > > pkg_pretend can do that...
indeed. it works quite well too. please have a look at the attached patch. it forces the user to acknowledge and verify that he has read the printed message by prepending a variable to the emerge command. I know it is a bit nasty, but it accomplishes our goal by making sure the users read the message. -- Alex Alexander | wired + Gentoo Linux Developer ++ www.linuxized.com
Index: openrc-0.8.2-r1.ebuild
===================================================================
RCS file: /var/cvsroot/gentoo-x86/sys-apps/openrc/openrc-0.8.2-r1.ebuild,v
retrieving revision 1.1
diff -u -B -r1.1 openrc-0.8.2-r1.ebuild
--- openrc-0.8.2-r1.ebuild 28 Apr 2011 19:50:51 -0000 1.1
+++ openrc-0.8.2-r1.ebuild 29 Apr 2011 17:10:34 -0000
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/openrc/openrc-0.8.2-r1.ebuild,v
1.1 2011/04/28 19:50:51 williamh Exp $
-EAPI="1"
+EAPI="4"
inherit eutils flag-o-matic multilib toolchain-funcs
@@ -34,6 +34,22 @@
DEPEND="${RDEPEND}
virtual/os-headers"
+pkg_pretend() {
+ if [[ -z ${REPLACING_VERSIONS} ]] && [[ ${WARNING_OPENRC} != 1 ]]; then
+ eerror
+ eerror "You're upgrading your system to openrc. After emerge is"
+ eerror "complete, you MUST follow the guide located here:"
+ ewarn " http://www.gentoo.org/doc/en/openrc-migration.xml"
+ eerror "FAILING TO DO SO WILL PROBABLY RESULT IN AN
*NON-BOOTABLE* SYSTEM."
+ eerror
+ eerror "To verify you read and understood this message, please
prepend"
+ ewarn " WARNING_OPENRC=1"
+ eerror "to your emerge command."
+ eerror
+ die "We need user verification to proceed."
+ fi
+}
+
make_args() {
unset LIBDIR #266688
pgp5IDz0nHbW8.pgp
Description: PGP signature
