No modules for Apache 2.4 in comparison with Apache 2.2

Hi

Now for FreeBSD the default version of Apache is 2.4, but almost all of the modules in the ports only for the version of Apache 2.2:
Code:
# cd /usr/ports
# make search name=mod_ | grep ap22
Port:    ap22-mod_antiloris-0.4_1
Port:    ap22-mod_asn-1.5
Port:    ap22-mod_auth_cas-1.0.9.1
Port:    ap22-mod_auth_cookie_mysql2-1.0_1
Port:    ap22-mod_auth_external-2.2.11_1
Port:    ap22-mod_auth_form-2.05_3
Port:    ap22-mod_auth_imap-2.2.0_2
Port:    ap22-mod_auth_kerb-5.4_4
Port:    ap22-mod_auth_mysql-1.10_2
Port:    ap22-mod_auth_mysql_another-3.0.0_4
Port:    ap22-mod_auth_openid-0.7
Port:    ap22-mod_auth_pam-1.1.1_4
Port:    ap22-mod_auth_pgsql-2.0.3_2
Port:    ap22-mod_auth_pubtkt-0.8
Port:    ap22-mod_auth_tkt-2.1.0_1
Port:    ap22-mod_auth_xradius-0.4.6_1
Port:    ap22-mod_authn_otp-1.1.5
Port:    ap22-mod_authn_sasl-1.2_1
Port:    ap22-mod_authnz_external-3.1.2_2
Port:    ap22-mod_authz_unixgroup-1.0.1_2
Port:    ap22-mod_backtrace-1.0_1
Port:    ap22-mod_bw-0.8_1
Port:    ap22-mod_cband-0.9.7.5_3
Port:    ap22-mod_cfg_ldap-1.2_3
Port:    ap22-mod_chroot-0.5_1
Port:    ap22-mod_clamav-0.23_4
Port:    ap22-mod_cplusplus-1.5.4_2
Port:    ap22-mod_cvs-0.5.91_2
Port:    ap22-mod_dnssd-0.6_8
Port:    ap22-mod_domaintree-1.6_1
Port:    ap22-mod_encoding-20021209_3
Port:    ap22-mod_evasive-1.10.1_1
Port:    ap22-mod_extract_forwarded-2.0.2_4
Port:    ap22-mod_fastcgi-2.4.7
Port:    ap22-mod_fcgid-2.3.6_1
Port:    ap22-mod_fileiri-1.15_1
Port:    ap22-mod_flickr-1.0_2
Port:    ap22-mod_geoip2-1.2.8
Port:    ap22-mod_gnutls-0.5.10_2
Port:    ap22-mod_gzip2-2.1.0_1
Port:    ap22-mod_h264_streaming-2.2.7_1
Port:    ap22-mod_hosts_access-1.1.0_1
Port:    ap22-mod_jail-0.5.2
Port:    ap22-mod_jk-1.2.37,1
Port:    ap22-mod_layout-5.1_5
Port:    ap22-mod_limitipconn-0.23_3
Port:    ap22-mod_line_edit-1.0.0_1
Port:    ap22-mod_lisp2-1.3.1_2
Port:    ap22-mod_log_config-st-1.0_2
Port:    ap22-mod_log_dbd-0.2_3
Port:    ap22-mod_log_firstbyte-1.01_1
Port:    ap22-mod_log_mysql-1.0_3
Port:    ap22-mod_log_sql-1.101_4
Port:    ap22-mod_log_sql-dtc-1.101_5
Port:    ap22-mod_macro-1.1.11
Port:    ap22-mod_memcache-0.1.0_4
Port:    ap22-mod_memcache_block-20120821
Port:    ap22-mod_mono-2.10_1
Port:    ap22-mod_musicindex-1.3.7
Port:    ap22-mod_myvhost-0.21
Port:    ap22-mod_ntlm2-0.1_4
Port:    ap22-mod_perl2-2.0.8,3
Port:    ap22-mod_proctitle-0.4.1
Port:    ap22-mod_proxy_html-3.1.2_1
Port:    ap22-mod_proxy_xml-0.1_1
Port:    ap22-mod_python-3.3.1_3
Port:    ap22-mod_remoteip-2.3.5.a
Port:    ap22-mod_reproxy-0.02.20110826
Port:    ap22-mod_rpaf2-0.6_2
Port:    ap22-mod_ruby-1.3.0_3
Port:    ap22-mod_scgi-1.12_2
Port:    ap22-mod_security-2.7.3
Port:    ap22-mod_setenvifplus-0.22
Port:    ap22-mod_smooth_streaming-1.0.8_1
Port:    ap22-mod_tidy-0.5.5_1
Port:    ap22-mod_tsa-1.0_3
Port:    ap22-mod_uid-1.1.0
Port:    ap22-mod_umask-0.1.0
Port:    ap22-mod_vhost_ldap-1.0_3
Port:    ap22-mod_vhs-1.1.0
Port:    ap22-mod_webkit-1.1.1
Port:    ap22-mod_whatkilledus-2.0
Port:    ap22-mod_wsgi-2.8_2
Port:    ap22-mod_wsgi-3.4
Port:    ap22-mod_xml2enc-1.0.3
Port:    ap22-mod_xmlns-0.97_1
Port:    ap22-mod_xsendfile-0.12_2
and
Code:
# cd /usr/ports
# make search name=mod_ | grep ap24
Port:    ap24-mod_macro-1.2.1

Who can solve the problem with having modules for Apache 2.4?
 
Those are not port names, they're package names. And by the looks of it they've all been built for Apache 2.2. Also note that not all third party modules are for Apache 2.4. Some can be used on both 2.2 and 2.4 but a lot are intended to be used on 2.2.
 
For example mod_bw:
Code:
# make search name=mod_bw
Port:    ap22-mod_bw-0.8_1
Path:    /usr/ports/www/mod_bw
Info:    Bandwidth and Connection control per Virtual Host or Directory
Maint:    apache@FreeBSD.org
B-deps:    apache22-2.2.24 apr-1.4.6.1.4.1_3 db42-4.2.52_5 expat-2.0.1_2 gdbm-1.9.1 libiconv-1.14_1 pcre-8.32 perl-5.14.2_3
R-deps:    apache22-2.2.24 apr-1.4.6.1.4.1_3 db42-4.2.52_5 expat-2.0.1_2 gdbm-1.9.1 libiconv-1.14_1 pcre-8.32 perl-5.14.2_3
WWW:    http://www.ivn.cl/apache/

# cd /usr/ports/www/mod_bw
# make
===>  ap22-mod_bw-0.8_1 is marked as broken: : Error from bsd.apache.mk. apache24 is installed (or APACHE_PORT is defined) and port requires apache.
*** [all] Error code 1

Stop in /basejail/usr/ports/www/mod_bw.

or mod_cband:
Code:
# make search name=mod_cband
Port:    ap22-mod_cband-0.9.7.5_3
Path:    /usr/ports/www/mod_cband
Info:    A per-virtualhost bandwidth limiter module for Apache 2
Maint:    apache@FreeBSD.org
B-deps:    apache22-2.2.24 apr-1.4.6.1.4.1_3 db42-4.2.52_5 expat-2.0.1_2 gdbm-1.9.1 libiconv-1.14_1 pcre-8.32 perl-5.14.2_3
R-deps:    apache22-2.2.24 apr-1.4.6.1.4.1_3 db42-4.2.52_5 expat-2.0.1_2 gdbm-1.9.1 libiconv-1.14_1 pcre-8.32 perl-5.14.2_3
WWW:

# cd /usr/ports/www/mod_cband
# make
===>  ap22-mod_cband-0.9.7.5_3 is marked as broken: : Error from bsd.apache.mk. apache24 is installed (or APACHE_PORT is defined) and port requires apache.
*** [all] Error code 1

Stop in /basejail/usr/ports/www/mod_cband.

I changed the first post to better describe the issue.
 
As I said, not all third party modules are supported on Apache 2.4. This is not a FreeBSD issue but an issue with whomever created those modules.
 
Ahem... As an Apache module developer. I take exception to that statement. It was not the decision of the module maintainers to make the Apache port, default to version 2.4. It was the apache@ committers. To the best of my knowledge, none of the module maintainers were notified, nor asked if the Apache port should default to version 2.4. At least I wasn't notified. I'm also subscribed to the apache@ list.

So. Just for clarity. The module developers are separate from the Apache committers. The module maintainers had no say in the decision to make Apache version 2.4 the default version of Apache for FreeBSD.

Aside from maintaining a couple of Apache modules, I can find no compelling reason to switch from version 2.2, to version 2.4. Can you? It is trivial to make version 2.2 the default version for your box. make.conf(5) provides for declaring DEFAULT_VERSIONS. Simply add, or append
Code:
DEFAULT_VERSIONS+=apache=2.2
as necessary. :)

--Chris
 
Ahem... As an Apache module developer. I take exception to that statement. It was not the decision of the module maintainers to make the Apache port, default to version 2.4. It was the apache@ committers. To the best of my knowledge, none of the module maintainers were notified, nor asked if the Apache port should default to version 2.4. At least I wasn't notified. I'm also subscribed to the apache@ list.
I'm sure this doesn't help our cause but what I meant was that certain modules are specifically for Apache 2.2. They either have no use on 2.4 (because it already has similar functionality) or they haven't been updated yet to work on 2.4.

Aside from maintaining a couple of Apache modules, I can find no compelling reason to switch from version 2.2, to version 2.4. Can you?
Apparently 2.4 is a little faster but I haven't tested this myself yet. Most people that run 2.2 probably don't need the increased speed but if you run a major site it could improve performance.

It is trivial to make version 2.2 the default version for your box. make.conf(5) provides for declaring DEFAULT_VERSIONS. Simply add, or append
Code:
DEFAULT_VERSIONS+=apache=2.2
as necessary. :)
Yes, I've done so for one of the companies I work for. We haven't tested our sites (mostly Ruby on Rails) yet and 2.2 does what it's supposed to do. So there's no real incentive to migrate. Besides that, if the length of support for 1.3 is anything to go by, I'm pretty sure 2.2 will still be supported for quite some time.
 
Greetings, SirDice.
Thanks for the clarification. :)
I quite agree. I also think you're right, that the 2.2 branch/revision will be around for quite some time. :)

All the best.

--Chris
 
Back
Top