From Fedora Project Wiki
Line 52: Line 52:
=== Package "Requires: php" ===
=== Package "Requires: php" ===


"php" as dependency is not needed, because of TODO (waiting for rcollect clarification).
"php" as dependency is not needed, because too ambiguous (in fact this package is mod_php for apache).
 
Instead, must requires the used SAPI (mod_php, php-fpm or php-cgi)


== Benefit to Fedora ==
== Benefit to Fedora ==

Revision as of 07:29, 4 April 2013


Features/WebserverDependency

Summary

Provide a way how to install and use web applications (for example phpMyAdmin or Mailman) with any web server in Fedora.

Owner

  • Email: jkaluza@redhat.com

Current status

  • Targeted release: [[Releases/<number> | Fedora <number> ]]
  • Last updated: (DATE)
  • Percentage of completion: 0%


Detailed Description

Currently, packages like phpMyAdmin or Mailman requires httpd installed. This is wrong, because they can work properly even with Lighttpd or nginx. Following list contains the reasons why the particular package needs httpd and how to fix it:

Package includes files owned by apache user/group

This is needed when files have to be readable by webserver and therefore they have to have proper owner or group. Each webserver in Fedora has its own user/group under which it's running. This should be changed and one group shared by all servers should be introduced.

Web application package maintainer then must use shared group instead of "apache" group.

Package includes httpd configuration files

To move web server related configuration into new subpackage, new packaging layout should be introduced (mailman is used as an example here):

  • mailman-core - Contains all mailman files except web server related configurations. This subpackage must not require any web server.
  • mailman-httpd (mailman-xxx) - Contains web server related configuration files and must require particular web server.
  • mailman - To keep the backward compatibility and upgrade from older versions, main package must require -core and -httpd subpackages.

Maintainer does not have to create config files (and subpackages) for all webservers, but it must be possible to install -core subpackage without any dependency on particular web server, so the administrator can configure the web server himself.

Package requires web server specific modules

If the package requires web server specific modules like mod_wsgi or mod_php, then those dependencies must be moved into web server specific subpackage like described above.

Package "Requires: php"

"php" as dependency is not needed, because too ambiguous (in fact this package is mod_php for apache).

Instead, must requires the used SAPI (mod_php, php-fpm or php-cgi)

Benefit to Fedora

  • Ability to install various web applications without pulling httpd as a dependency if it's not needed.
  • Maintainers are able to add support for more web servers in their packages.
  • Unification of web application packaging.

Scope

  1. Discuss this feature with web servers maintainers in Fedora and get consensus on shared group name, add this group to Fedora and use it in web servers.
  2. Change configuration of lighttpd and nginx to be able to load config files from particular directory.
  3. Fix affected packages as described in Details.

Affected packages

List of affected packages in rawhide in October 2012.

  • JSCookMenu
  • MochiKit
  • RackTables
  • ReviewBoard
  • WebCalendar
  • aeolus-conductor
  • apcupsd
  • askbot
  • bcfg2
  • beacon
  • bodhi
  • bugzilla
  • cacti
  • cgit
  • checkdns
  • ckeditor
  • cobbler
  • collectd
  • cvsweb
  • darkserver
  • dojo
  • dokuwiki
  • dspam
  • eclipse-phpeclipse
  • editarea
  • eucalyptus
  • freeipa
  • gallery2
  • gallery3
  • glpi
  • gnome-user-share
  • gridsite
  • ipcalculator
  • ipplan
  • koji
  • limph
  • mailgraph
  • mailman
  • man2html
  • mediawiki
  • mediawiki119
  • mimetex
  • mojomojo
  • moksha
  • nagios
  • netdisco
  • nocpulse-common
  • openlayers
  • ovirt-engine
  • pen
  • perl-HTML-Mason
  • php-laconica
  • php-voms-admin
  • phpMyAdmin
  • phpPgAdmin
  • phpesp
  • phpldapadmin
  • phplogcon
  • phpwapmail
  • postgresql-pgpoolAdmin
  • poweradmin
  • pwauth
  • python-django-dajax
  • queuegraph
  • roundcubemail
  • sahana
  • ser
  • smokeping
  • spacewalk-backend
  • squirrelmail
  • sticky-notes
  • sysusage
  • unicornscan
  • viewmtn
  • w3c-markup-validator
  • webacula
  • webalizer
  • websvn
  • wordpress
  • yawn
  • yourls
  • zarafa
  • zikula
  • zoneminder

How To Test

  • Installation of fixed package X should work as before to keep the backward compatibility, but it should install X, X-core and X-httpd packages.
  • Installation of X-core must not install "httpd" or another web server.

User Experience

  • Admins are able to install web application without httpd dependency.
  • Maintainers are able to add support for more webservers in their packages.

Dependencies

Only those described in Scope.

Contingency Plan

Documentation

Release Notes

Comments and Discussion