EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_config mysql_pkg_prerm pkg_postrm Is there a reason for using mysql_pkg_prerm there?
we should just strip EXPORT_FUNCTIONS from all eclasses, it isnt needed anymore
mysql_pkg_prerm using eselect to remove linkage relative to it's own slot is a workaround needed now, after the move of the creation of /var/lib/eselect/mysql/mysql-${SLOT}.filelist into "mysql_src_install" prior it was in a post install thing (thus not removed by any cleanup). The first solution adopted permit to have a mysql ideally functioning the same way using slotted or not (at least for the first install). The latter need removal of symlinks created because ".filelist" file is removed too. The first solution was the preferred (at least by me) but create nasty bugs in package removal (also previous version) due to some hidden (at least to me) portage behaviour. About removal of EXPORT_FUNCTIONS, or it's cutting I'm (slowly) researching for more infos.
> mysql_pkg_prerm using eselect to remove linkage relative to it's own slot is a > workaround needed now, after the move of the creation of > /var/lib/eselect/mysql/mysql-${SLOT}.filelist into "mysql_src_install" prior it > was in a post install thing (thus not removed by any cleanup). the question isnt "what does mysql_pkg_prerm do", the question was "why is it in the EXPORT_FUNCTIONS list" i think you're confused as to what EXPORT_FUNCTIONS actually does (or used to do seeing as how it isnt needed anymore) ... you had to declare which functions overrode default portage functions so that portage would know what function to call to perform the src_unpack/src_compile/src_install/etc... step thus there is no reason for mysql_pkg_prerm to ever be in the EXPORT_FUNCTIONS list
clarifying since spanky didn't state it straight out, EXPORT_FUNCTIONS takes args of functions to override with the eclass func; eg, ECLASS="blah" EXPORT_FUNCTIONS pkg_prerm results in pkg_prerm() { blah_pkg_prerm "$@"; } Iow, the args to specify is the func to _override_, not what you're overriding it with. EXPORT_FUNCTIONS forces the override to be ${ECLASS}_${PHASE_TO_OVERRIDE} Thus... EXPORT_FUNCTIONS mysql_pkg_prerm # results in pkg_prerm() { mysql_mysql_pkg_prerm "$@"; } , which is likely not your intention. :)
it seems to be a typo ... it should read 'EXPORT_FUNCTIONS pkg_prerm', not 'EXPORT_FUNCTIONS mysql_pkg_prerm'
/me blind, fixed thanks