Bug 207317 - www/apache22 missing some modules [2016Q1 branch]
Summary: www/apache22 missing some modules [2016Q1 branch]
Status: Closed Not A Bug
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-apache (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-18 22:30 UTC by florian.heigl
Modified: 2016-05-01 17:51 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (apache)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description florian.heigl 2016-02-18 22:30:15 UTC
After upgrading one test system I noticed a failure in apache22.

# service apache22 start               
Performing sanity check on apache22 configuration:
httpd: Syntax error on line 72 of /usr/local/etc/apache22/httpd.conf: Cannot load /usr/local/libexec/apache22/mod_proxy.so into server: Cannot open "/usr/local/libexec/apache22/mod_proxy.so"
Starting apache22.


At first I thought this was modules having become part of apache core, but no.
I tried removing the LoadModule lines and it'll throw an error for ProxyPass directive, so the functionality really isn't there.

This is the modules I still see:
ls -m /usr/local/libexec/apache22
httpd.exp, mod_actions.so*, mod_alias.so*, mod_asis.so*, mod_auth_basic.so*, mod_auth_digest.so*, mod_authn_alias.so*,
mod_authn_anon.so*, mod_authn_dbm.so*, mod_authn_default.so*, mod_authn_file.so*, mod_authz_dbm.so*, mod_authz_default.so*,
mod_authz_groupfile.so*, mod_authz_host.so*, mod_authz_owner.so*, mod_authz_user.so*, mod_autoindex.so*, mod_cache.so*,
mod_cern_meta.so*, mod_cgi.so*, mod_charset_lite.so*, mod_dav.so*, mod_dav_fs.so*, mod_deflate.so*, mod_dir.so*,
mod_disk_cache.so*, mod_dumpio.so*, mod_env.so*, mod_expires.so*, mod_file_cache.so*, mod_filter.so*, mod_headers.so*,
mod_imagemap.so*, mod_include.so*, mod_info.so*, mod_log_config.so*, mod_logio.so*, mod_mime.so*, mod_mime_magic.so*,
mod_negotiation.so*, mod_reqtimeout.so*, mod_rewrite.so*, mod_setenvif.so*, mod_speling.so*, mod_ssl.so*, mod_status.so*,
mod_unique_id.so*, mod_userdir.so*, mod_usertrack.so*, mod_version.so*, mod_vhost_alias.so*

So it seems to be very related to the proxy module only.
I tried installing mod_proxy_html but that is just an addon and will not make a difference.

I guess this is related to following change:
  AFFECTS: users of www/apache22, www/apache22-event-mpm, www/apache22-itk-mpm, www/apache22-peruser-mpm, www/apache22-worker-mpm
  AUTHOR: ohauer@FreeBSD.org

  The port use now the options NG framework, this means WITH_xxx
  directives are no longer valid.

  Additional:
  - APR only specific options like THREADS, MYSQL, PGSQL, SQLITE,
    BDB and IPV6 where removed.
  - PKGNAME has changed from apache-2... to apache22-2...
  - PROXY is now a MULTI directive which means at last one additional
    PROXY_(AJP|BALANCER|CONNECT|FTP|HTTP|SCGI) module is required.

I've selected all of those, yet a pkg rquery shows the following:

PROXY off off (null)
PROXY_AJP off off (null)
PROXY_BALANCER off off (null)
PROXY_CONNECT off off (null)
PROXY_FTP off off (null)
PROXY_HTTP off off (null)
PROXY_SCGI off off (null)

(same for the pkgs.freebsd.org package installed locally)

I can say that both the pkgs.freebsd.org package and the one from my own poudriere have this issue, and i re-ran a build after saving back the port options.


Please could someone check into this? It *might* be poudriere related but I'm not sure of that.


1) is the option enabled in your build
2) is there a makefile hickup that makes it not take effect
Comment 1 florian.heigl 2016-02-18 22:46:29 UTC
Hoping this isn't a pure poudriere thing.

You'll know once you inquired if it's intentionally not a part of the pkgs.freebsd.org package:
If you agree that mod_proxy is normally a part of what should be enabled, and it looks enabled in make config / poudriere options you'll know something is fishy.

I've looked at my poudriere logs and it says:

====> mod_proxy: you have to choose at least one of them
     PROXY_AJP=off: mod_proxy_ajp
     PROXY_BALANCER=off: mod_proxy_balancer
     PROXY_CONNECT=off: mod_proxy_connect
     PROXY_FTP=off: mod_proxy_ftp
     PROXY_HTTP=off: mod_proxy_http
     PROXY_SCGI=off: mod_proxy_scgi
===> Use 'make config' to modify these settings

(as if it were disabled and none selected, while it's very much enabled if i look at the options file & what I see in the config dialog)
Comment 2 florian.heigl 2016-02-18 23:14:18 UTC
I'm investigating some more.
Currently I'm hoping that this was (locally) caused by missing symlinks in my poudriere host and in the FreeBSD binary case it's just been disabled intentionally


Although I don't know why one would disable mod_proxy intentionally ;)
Comment 3 Olli Hauer freebsd_committer freebsd_triage 2016-02-19 04:36:56 UTC
Hi Florian,

make sure you have enabled PROXY and one of the PROXY_$PROTO module!

$ make showconfig | grep PROXY
  PROXY=on: mod_proxy  <== required 
  PROXY_AJP=on: mod_proxy_ajp
  ...
  PROXY_HTTP=on: mod_proxy_http
  ...

httpd-2.2.x has a different build system the httpd-2.4.x, and requires to enable PROXY with at last one PROXY_$module.
Comment 4 florian.heigl 2016-05-01 17:34:34 UTC
Can be closed but please consider to think about the default options.
Not including mod_proxy and mod_proxy_http by default is not providing any real-world benefit and requires to go away from upstream packages for a very common use case.
Comment 5 Olli Hauer freebsd_committer freebsd_triage 2016-05-01 17:51:28 UTC
Hi Florian,

the default options where set a decade ago because any build module is also an activated module in apache22.

In case you can make the switch to apache24 the missing module issue is no longer present since not every module that was build is automatically enabled.
This allows us to ship apache24 with 108 modules where only 22 are enable by default.