Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 573434 - www-servers/apache-2.4 - no MPM itk
Summary: www-servers/apache-2.4 - no MPM itk
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Lars Wendler (Polynomial-C) (RETIRED)
URL:
Whiteboard:
Keywords:
: 577338 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-01-31 08:21 UTC by Semen Panevin
Modified: 2016-03-13 20:54 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Semen Panevin 2016-01-31 08:21:40 UTC
After upgrading portage tree I've got a news item about coming upgrade of apache from 2.2 to 2.4

I've checked if my installation is compatible with 2.4 and found that there is no MPM itk in 2.4 but I use it a lot. I spent a lot of time googling and didn't find any references about removing MPM itk from apache 2.4.

My current apache configuration:

[ebuild   R    ] www-servers/apache-2.2.31:2::gentoo  USE="ssl -debug -doc -ldap (-libressl) (-selinux) -static -suexec -threads" APACHE2_MODULES="actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dumpio env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation proxy rewrite setenvif speling status substitute unique_id userdir usertrack version vhost_alias -ident -imagemap -log_forensic -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -proxy_scgi -reqtimeout" APACHE2_MPMS="itk -event -peruser -prefork -worker" 0 KiB

Configuration offered for 2.4:

[ebuild     U  ] www-servers/apache-2.4.18:2::gentoo [2.2.31:2::gentoo] USE="ssl -debug -doc -ldap -libressl% (-selinux) -static -suexec -threads" APACHE2_MODULES="actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir dumpio env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation proxy rewrite setenvif speling status substitute unique_id userdir usertrack version vhost_alias -access_compat% -authn_core% -authz_core% -authz_dbd% -cache_disk% -http2% -ident -imagemap -lbmethod_bybusyness% -lbmethod_byrequests% -lbmethod_bytraffic% -lbmethod_heartbeat% -log_forensic -macro% -proxy_ajp -proxy_balancer -proxy_connect -proxy_fcgi% -proxy_ftp -proxy_http -proxy_scgi -proxy_wstunnel% -ratelimit% -remoteip% -reqtimeout -slotmem_shm% -socache_shmcb% -unixd% (-authn_default%*) (-authz_default%*) (-disk_cache%*) (-mem_cache%*)" APACHE2_MPMS="-event -peruser -prefork -worker (-itk%*)" 24 KiB

Where is itk? Please return it back.
Comment 1 Semen Panevin 2016-01-31 16:47:27 UTC
It would be appreciated if it was fixed before marking apache-2.4 as stable since it breaks upgrade flow
Comment 2 Daniel Kenzelmann 2016-02-03 10:42:27 UTC
I think this is now separated out:
www-apache/mpm_itk
https://packages.gentoo.org/packages/www-apache/mpm_itk
Comment 3 Semen Panevin 2016-02-03 10:54:35 UTC
Why other MPMs are still in MPM list? Why itk is so special?

Also it still breaks upgrade process. And there were no warnings about moving it to somewhere else in a news item about apache upgrade. So I still consider it as a bug.
Comment 4 Daniel Kenzelmann 2016-02-03 13:48:25 UTC
I think it got removed because it is not part of the apache package but is a separate codebase (so you don't want to update the apache ebuild every time mpm_itk is updated and vice versa)

While I don't think that this should be the most to worry when upgrading to 2.4 (there are other things that break upgrade flow more, like the access control keywords in the apache config for example)
i would agree that it might be a good idea to have an itk flag within the APACHE2_MPMS which then should depend on www-apache/mpm_itk

As an additional benefit this might allow the mpm_itk package to depend on
>=www-servers/apache-2.4.7[apache2_mpms_itk]
which would basically fix the workaround in bug 511658

(I don't know if that apache2_mpms_itk dependency is possible to do..)
Comment 5 Semen Panevin 2016-02-03 17:24:09 UTC
why itk is so special? it was a part of apache in 2.2 and I see no reasons to do it in the other way in 2.4 (assuming that I am an end user, not a developer or smth else). If there is support of multiple MPMs in 2.4 and itk was moved out because of this reason, why other MPMs were not moved out?

And one more time, it's kind of breaking change and there was no news item or any other message about this change. Shame on gentoo team.
Comment 6 Semen Panevin 2016-02-03 21:06:39 UTC
>(there are other things that break upgrade flow more, like the access control keywords in the apache config for example)

These changes are predictable and described in documentation, like "MaxRequestsPerChild has been renamed to MaxConnectionsPerChild" which affects itk either...
Comment 7 Michael Orlitzky gentoo-dev 2016-02-06 22:09:26 UTC
Hello, I'm the maintainer of www-apache/mpm_itk. I can explain. To do the UID/GID switching, mpm-itk needs some hooks into Apache's request processing. Back in apache-2.2, those hooks simply didn't exist, so the only way you could build mpm-itk was to patch the Apache source code. That was unsupported by Apache, but it explains why mpm-itk used to be part of the www-servers/apache package -- the whole thing was one big patch. 

In apache-2.4, the necessary hooks were added upstream. This is an improvement, and the way it always should have been. Now that the hooks are present, there is a supported way for mpm-itk (and anyone else) to hook into the request processing. This allows mpm-itk to be built separately from Apache, with no patching involved. It also makes mpm-itk more official than ever, since you don't have to explain that you're running a patched Apache if you get into trouble!

Upstream mpm-itk now distributes a totally separate package that builds on its own, and all I've done is package that for Gentoo. For what it's worth, the upgrade is painless as far as mpm-itk is concerned. If I recall correctly all you have to do is set the UID/GID ranges in 00_mpm_itk.conf.
Comment 8 Semen Panevin 2016-02-09 09:07:31 UTC
I still don't understand why itk can't be a part of apache2_mpms like other MPMs. Even if it does not patch anything, it can install mpm_itk as a dependency.
Comment 9 Semen Panevin 2016-02-09 09:16:12 UTC
First of all, mpm_itk is not installed on my system (it's not surprising - it requires apache-2.4). It means that if I upgrade apache just with other packages (emerge -uDN world) and I don't know anything about moving it into separate package (remember - no any news item about it) - I get broken server.

Second, I didn't see anything about any required changes for 00_mpm_itk.conf in apache upgrade documentation.
Comment 10 Michael Orlitzky gentoo-dev 2016-02-10 16:19:53 UTC
I was just trying to point out that apache-2.2 with itk as one of apache's USE flags was an accurate reflection of the upstream packaging, and that now the situation with apache-2.4 is still an accurate reflection of the upstream packages (even though it changed).

Now that they're separate, tying them together artificially through APACHE2_MPMS can cause headaches that we otherwise wouldn't have. Anyone who packages a separate MPM would have to coordinate with the Apache maintainers, and stabilization would need to happen at the same time. Procedural hangups like that really do waste time if they can be avoided.

There are major upgrades like this once every... ten years? Or so. If you run a lot of sites, this upgrade is going to take days or weeks and your configuration will need to be tested before going live. Given the infrequency with which these major changes happen, I don't think it's worth hanging on to the idea that APACHE2_MPMS has every (third-party) MPM listed there, especially since it makes routine package maintenance harder.
Comment 11 Michael Orlitzky gentoo-dev 2016-02-26 15:16:20 UTC
Another thing I had forgotten about: now that upstream builds against apache (rather than patching it), www-servers/apache is a build-time dependency of www-apache/mpm_itk. If we tried to make apache pull in mpm_itk via APACHE2_MPMs, that would create a circular dependency.

I'm happy to write an "Upgrading the ITK MPM" entry if we have a good place to put it.
Comment 12 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2016-03-03 13:20:50 UTC
I don't see a bug here. Maybe we should add a note to the portage-news about apache-2.4 upgrade.
Comment 13 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2016-03-13 20:54:01 UTC
*** Bug 577338 has been marked as a duplicate of this bug. ***