Hello,
I would like to ask some changes in how Apache modules are installed.
There are many maintainers and many different sources for Apache modules. Some modules are installing sample files, some are modifying httpd.conf (LoadModule line) after each install / deinstall.

The modification after each deinstall is really a mess. If I installed mod_xsendfile, enabled it in httpd.conf and later will use pkg upgrade it will modify my httpd.conf in unwanted way - the mod_xsendfile will be disabled. Same applies to many other modules.

Some modules (mod_php) is installed and enabled by default. (different behaviour for different modules? Why?)

Can this behaviour be changed (unified) for all Apache modules to not touch these lines (modules enabled by user)?

If some port install some config file and user did some changes, this file must not be deleted by deinstalling the port so why Apache modules can remove / comment out lines touched by users?

Broken Apache webserver after each pkg upgrade is really annoying.


Making all ports use the same script post-install / post-deinstall would be nice too.

For example mod_php uses

   "scripts":{
      "post-install":"/usr/local/sbin/apxs -e -a -n php5 libphp5.so",
      "pre-deinstall":"/usr/local/sbin/apxs -e -A -n php5 libphp5.so"
   },

mod_xsendfile uses

   "scripts":{
"post-install":"/usr/local/sbin/apxs -e -A -n xsendfile /usr/local/libexec/apache24/mod_xsendfile.so", "post-deinstall":"/usr/bin/sed -i '' -E '/LoadModule[[:blank:]]+xsendfile_module/d' /usr/local/etc/apache24/httpd.conf\necho \"Don't forget to remove all mod_xsendfile-related directives in your httpd.conf\""
   }

to achieve the same results (broken httpd.conf)

mod_php uses pre-deinstall
mod_xsendfile uses post-deinstall

mod_php enables mod_php on installation by apxs -e -a
mod_xsendfile adds commented line by apxs -e -A

This is just example of two modules. I looked at more modules and they are almost unique - each using different targets, different apxs options etc.

I am proposing not touching httpd.conf on deinstall at all and just printing the warning that the corresponding LoadModule line should be removed if it is no longer necessary. (by running apxs command?)

Also use "apxs -e -A -n moduleName" on install only if there is no LoadModule line for this module:

"post-install":"/usr/bin/grep -E '^#?LoadModule.*php5_module' /usr/local/etc/apache24/httpd.conf || /usr/local/sbin/apxs -e -A -n php5 libphp5.so"

Another way to achieve this can be separate file in apache24/modules.d/ installed as sample and if user wants to enable it, just rename it to moduleName.conf. Then it will not be touched by pkg upgrade / deinstall phase.

Miroslav Lachman
_______________________________________________
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to