I just set myself a debugging environment for ebuilds. _run() { local flags="-pipe -ggdb3" CFLAGS=${flags} CXXFLAGS=${flags} USE="${USE} debug" \ FEATURES="${FEATURES} nostrip keepwork" ${@} } debugebuild() { _run ebuild ${@} } debugemerge() { _run emerge ${@} } Now using ebuild clean does not work because of the FEATURES="keepwork". I think it would be better to make it work so that ebuild clean from the command line overrides FEATURES="keepwork" or at least give a warning. Reproducible: Always Steps to Reproduce: 1. FEATURES="keepwork" ebuild <pkg> clean Actual Results: nothing pena ntfsprogs # emerge info Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r0, 2.6.12-gentoo-r6 i686) ================================================================= System uname: 2.6.12-gentoo-r6 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz Gentoo Base System version 1.12.0_pre2 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] dev-lang/python: 2.4.1-r1 sys-apps/sandbox: 1.2.11 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O3 -march=pentium4 -pipe -mfpmath=sse -ffast-math -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/init.d /etc/splash /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium4 -pipe -mfpmath=sse -ffast-math -fomit-frame-pointer" DISTDIR="/usr/src/distfiles" FEATURES="autoconfig ccache cvs distlocks fixpackages noauto sandbox sfperms strict" GENTOO_MIRRORS=" http://trumpetti.atm.tut.fi/gentoo http://lame.lut.fi/linux/gentoo " LANG="en_US.utf8" LC_ALL="en_US.utf-8" PKGDIR="/home/pkg/" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/betelgeuse /usr/local/overlays/gentoo-java-experimental /usr/local/overlays/gentopia" SYNC="rsync://aria/portage" USE="x86 X aac acl acpi alsa apm audiofile avi bash-completion berkdb bitmap-fonts browserplugin bzip2 bzlib cdb cddb cdparanoia cdr crypt cups curl dbus divx4linux dts dvd dvdr dvdread emboss esd fam flac foomaticdb freetype gcj gif gstreamer gtk2 hal imagemagick java jpeg kde kdeenablefinal kdexdeltas libg++ libwww logitech-mouse lzo mad makecheck mikmod mjpeg mmx mmx2 mp3 mpeg ncurses network nptl nptlonly nvidia offensive ogg oggvorbis opengl pam pdflib png python qt quicktime readline real rtc ruby samba slp spell sse sse2 ssl subversion svg symlink tcpd theora tiff truetype truetype-fonts type1-fonts unicode usb userlocales vorbis win32codecs xine xml xml2 xv xvid zlib video_cards_nvidia userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LDFLAGS, LINGUAS, MAKEOPTS
Disable the feature via your functions. keepwork is for debugging, imo not something you leave on constantly, you enable as needed for debugging. Yes, can cut down on build time, but the issue here is for debugging. Either way, rewrite's build op enforces a clean call regardless of features, so solved whenever/if that hits stable.
or just tag a features removal within ebuild, which is unclean (but would work) due to global features.
Reopening for consideration.
Not really sure what's needed here, patch would probably explain it best.