apache-2.0.59-r2.ebuild allows $USERDIR to be overridden thusly: USERDIR="${USERDIR:-public_html}" apache-2.2.4-r1.ebuild drops that. I tried adding it back in and it no longer works. Something else has changed. This was a problem long long ago and should not have resurfaced. Reproducible: Always Steps to Reproduce: 1. set USERDIR=/var/xyz/* or anything other than public_html 2. emerge =net-www/apache-2.2.4-r1 Actual Results: Look in the emerge output for "--with-suexec-userdir=public_html" Expected Results: It should be "--with-suexec-userdir=/var/xyz/*"
Well, this has now moved to the modules.d entries (see the note about configuration directives being split into modules.d files in postinst). If you want to change your USERDIR, then adjust /etc/apache2/modules.d/00_mod_userdir.conf accordingly. No need to hack the ebuild for that sort of thing.
The config file is necessary but NOT sufficient. Apache suexec has always required USERDIR to be compiled into the suexec executable as part of its security paradigm. Please read about Apache suexec here: http://httpd.apache.org/docs/2.2/suexec.html In particular, note the "--with-suexec-userdir=DIR" configuration item. It MUST be supplied at compile time, and it MUST match the config file. This has been the case since the 1.3 days and probably earlier. It did NOT change from 2.0 to 2.2.
Let me add something to this. This does not require editing ebuilds to the extent of adding the literal value of USERDIR directly to each ebuild. USERDIR only needs to be defined in /etc/make.conf, just as it was for the 2.0 ebuilds. The ebuilds only need to recognize that USERDIR has been set externally and to use that value instead of the default public_html.
You have SUEXEC_USERDIR for that as of now.