rpms/mod_fcgid/devel README.Fedora, NONE, 1.1 README.SELinux, NONE, 1.1 configuration.htm, NONE, 1.1 doc.htm, NONE, 1.1 fastcgi.fc, NONE, 1.1 fastcgi.te, NONE, 1.1 fcgid.conf, NONE, 1.1 mod_fcgid.1.09-docurls.patch, NONE, 1.1 mod_fcgid.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Paul Howarth (pghmcfc) fedora-extras-commits at redhat.com
Wed Sep 6 13:08:59 UTC 2006


Author: pghmcfc

Update of /cvs/extras/rpms/mod_fcgid/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv25283/devel

Modified Files:
	.cvsignore sources 
Added Files:
	README.Fedora README.SELinux configuration.htm doc.htm 
	fastcgi.fc fastcgi.te fcgid.conf mod_fcgid.1.09-docurls.patch 
	mod_fcgid.spec 
Log Message:
auto-import mod_fcgid-1.10-6 on branch devel from mod_fcgid-1.10-6.src.rpm


--- NEW FILE README.Fedora ---
Using mod_fcgid in Fedora
=========================

This mod_fcgid package includes a configuration file
/etc/httpd/conf.d/fcgid.conf that ensures that the module is loaded and
added as the handler for .fcg, .fcgi, and .fpl applications (provided
mod_fastcgi in not already loaded, in which case you will need to decide which
module should handle which types of application).

So far the module package has only been tested in conjunction with the "moin"
wiki application. Further feedback regarding other applications is welcome.

Setting up moin with mod_fcgid
==============================

Setting up moin with mod_fcgid is very similar to setting it up as a regular
CGI application.

 * Create a directory for your wiki instance:

    DESTDIR=/var/www/mywiki
    mkdir -p $DESTDIR/cgi-bin

 * Copy in the wiki template data and the application itself:

    cp -a /usr/share/moin/{data,underlay} $DESTDIR
    cp -a /usr/share/moin/server/moin.fcg $DESTDIR/cgi-bin
    cp -a /usr/share/moin/config/wikiconfig.py $DESTDIR/cgi-bin

 * Fix the directory ownership

    chown -R apache:apache $DESTDIR/{data,underlay}

 * Edit $DESTDIR/cgi-bin/wikiconfig.py to suit your needs

 * Create a httpd configuration file for the wiki, e.g.
   /etc/httpd/conf.d/mywiki.conf

    # Wiki application data common to all wiki instances
    Alias /wiki/ "/usr/share/moin/htdocs/"
    <Directory "/usr/share/moin/htdocs/">
      Options Indexes FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
    </Directory>

    # Wiki instance with mod_fcgid
    <IfModule mod_fcgid.c>
      ScriptAlias /mywiki "/var/www/mywiki/cgi-bin/moin.fcg"
      <Directory "/var/www/mywiki/cgi-bin/">
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride None
        Order allow,deny
        Allow from all
      </Directory>
    </IfModule>

 * If you are using SELinux with Fedora Core 5 or later, install the
   mod_fcgid-selinux package and see the README.SELinux file in that package
   for details of the file contexts to use

 * Restart the web server to load the new configuration:

   service httpd restart

That should do it!

mod_fcgid with SELinux
======================

Versions of this package built for Fedora Core 5 or later include an SELinux
policy module to support FastCGI applications. Again, this has only been tested
with moin, so feedback from other applications is welcome. The intention is for
this module to be included in the SELinux reference policy eventually.

The module source (fastcgi.{fc,te}) is included for reference as documentation
in the package.

The module introduces a new set of SELinux types for FastCGI applications,
comparable with the types described in "man httpd_selinux" for regular CGI
scripts (or "system scripts" as they are known in SELinux):

 * httpd_fastcgi_content_t (equivalent to httpd_sys_content_t)
 - Set files with httpd_fastcgi_content_t for content that is available
   from all FastCGI scripts and the daemon.

 * httpd_fastcgi_script_exec_t (equivalent to httpd_sys_script_exec_t)
 - Set FastCGI scripts with httpd_fastcgi_script_exec_t to allow them to run
   with access to all fastcgi types.

 * httpd_fastcgi_script_ro_t (equivalent to httpd_sys_script_ro_t)
 - Set files with httpd_fastcgi_script_ro_t if you want
   httpd_fastcgi_script_exec_t scripts to read the data, and disallow other
   non-fastcgi scripts from access.

 * httpd_fastcgi_script_rw_t (equivalent to httpd_sys_script_rw_t)
 - Set files with httpd_fastcgi_script_rw_t if you want
   httpd_fastcgi_script_exec_t scripts to read/write the data, and disallow
   other non-fastcgi scripts from access.

 * httpd_fastcgi_script_ra_t (equivalent to httpd_sys_script_ra_t)
 - Set files with httpd_fastcgi_script_ra_t if you want
   httpd_fastcgi_script_exec_t scripts to read/append to the file, and
   disallow other non-fastcgi scripts from access.

So for the moin wiki layout described above, the contexts would be set as
follows:

    cd /var/www/mywiki
    chcon -t httpd_fastcgi_content_t .
    chcon -R -t httpd_fastcgi_script_exec_t cgi-bin
    chcon -R -t httpd_fastcgi_script_rw_t data underlay

It is necessary to turn on the httpd_enable_cgi boolean to run either regular
or FastCGI scripts:

    setsebool -P httpd_enable_cgi 1

If the httpd_unified boolean is set, "sys" and "fastcgi" scripts can access
each other's data. This means that you only need to set the actual FastCGI
scripts themselves to httpd_fastcgi_script_exec_t and can leave the file
contexts for everything else set to the "sys" types if you prefer. This is
useful if you have a mixture of CGI and FastCGI applications accessing the
same data.

If you have any questions or issues regarding FastCGI and SELinux, please don't
hesitate to bring them up on fedora-selinux-list.



--- NEW FILE README.SELinux ---
CONFIGURING SELINUX FOR CONTAGGED
=================================

The contagged RPM package for Fedora Core 5 and later includes a policy module
that ensures that all files required by the application get the correct
SELinux file contexts.

However, there are a few SELinux booleans you need to set in order to use
contagged:

# setsebool -P httpd_builtin_scripting 1
# setsebool -P httpd_enable_cgi 1
# setsebool -P httpd_unified 1

It is necessary to set these booleans because contagged is a PHP application.
It is not necessary to set the httpd_can_network_connect boolean because the
web server is allowed to connect to LDAP servers by default.

If you are using an older distribution that does not support SELinux policy
modules, you will need to set the file contexts manually:

# chcon -R -t httpd_cache_t /var/cache/contagged

You will need to repeat this step if the filesystem is relabelled.

Once the configuration is set up as required, restart httpd:

# service httpd restart

ABOUT THE PACKAGE
=================

One of the reasons for building this package was to provide an example of how
to include a custom SELinux policy module with an RPM package. It's unfortunate
that the kludge of having to use restorecon in the post-install script is
required but updates to rpm will be necessary before that can be avoided - see:
http://www.redhat.com/archives/fedora-selinux-list/2006-May/msg00098.html

An alternative approach (instead of using a loadable policy module) that some
people have taken, particularly where the only required policy customisation is
for file contexts, is to use semanage to add additional fcontext objects to the
running policy. A significant disadvantage of this approach is that it's harder
to manage future changes to policy, since all later versions of a package must
be able to "undo" the policy fixes (e.g. remove fcontext objects) set up by all
earlier versions of the package if there are changes to policy in later
versions. Using policy modules makes this very easy, since semodule handles the
upgrades very neatly (modules have version numbers).



--- NEW FILE configuration.htm ---
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>The mod_fcgid Home Page</title>
</head>

<body>

<p><b><a name="regular fastcgi"></a>This is a for regular fastcgi. </b><p>LoadModule fcgid_module           
modules/mod_fcgid.so<p>
<Location /fcgid><br>         
    SetHandler fcgid-script<br>         
    Options ExecCGI<br>         
    allow from all<br>         
</Location><p>
 
<hr>
<p><b><a name="suEXEC"></a>This is for suEXEC. Please get more information about suEXEC <a href="http://httpd.apache.org/docs-2.0/suexec.html">here</a>. </b><p>LoadModule fcgid_module            
modules/mod_fcgid.so<p>
<Location /fcgid><br>         
    SetHandler fcgid-script<br>         
    Options ExecCGI<br>         
    allow from all<br>         
</Location><p>
<VirtualHost 192.168.1.89><br>         
    ServerAdmin <a href="mailto:webmaster at host.foo.com">webmaster at host.foo.com<br>        
</a>    DocumentRoot /usr/local/apache2/htdocs/<br>         
    ServerName host.foo.com<br>         
    SuexecUserGroup pqf pqf<br>         
</VirtualHost><p>
¡¡
<hr>
<p><b><a name="PHP"></a>This is for fastcgi-mode PHP (UNIX)</b><p>LoadModule fcgid_module modules/mod_fcgid.so<p>  
<Directory /usr/local/apache2/htdocs/php><br>         
    SetHandler fcgid-script<br>         
    FCGIWrapper /usr/local/bin/php .php<br>         
    Options ExecCGI<br>         
    allow from all<br>         
</Directory><p><b>This works too:</b><p>LoadModule fcgid_module         
modules/mod_fcgid.so <p>
AddHandler fcgid-script .php<br>        
<Directory /usr/local/apache2/htdocs/php><br>         
    FCGIWrapper /usr/local/bin/php .php<br>         
    Options ExecCGI<br>         
    allow from all<br>         
</Directory><p><b># Please make sure:<br>    
# php is configured with --enable-fastcgi option<br>    
# check error_log(with debug level), if  
any thing goes wrong</b> 
<hr>
<p><b><a name="suPHP"></a>This is for suPHP  ( UNIX )</b>      
<p>LoadModule fcgid_module modules/mod_fcgid.so<br>    
<br>
<VirtualHost *:80><br>    
    ServerName test2.example.com<br>    
    DocumentRoot /usr/local/apache2/htdocs/test2.example.com/<br>    
    SuexecUserGroup pqf pqf<br>    
</VirtualHost><br>
<br>
<Directory /usr/local/apache2/htdocs/test2.example.com/><br>    
    AddHandler fcgid-script .php<br>    
    Options ExecCGI<br>    
    allow from all<br>    
    FCGIWrapper /usr/local/apache2/htdocs/test2.example.com/php .php<br>    
</Directory></p>
<p>   
<b>   
# Please make sure:<br>    
# php is configured with --enable-fastcgi option<br>    
# copy php execution to /usr/local/apache2/htdocs/test2.example.com/ directory<br>    
# make sure all files in /usr/local/apache2/htdocs/test2.example.com/ with right 
owner and group<br> 
# check error_log(with debug level) and suexec_log, if  
any thing goes wrong</b>    
<br>

<hr>
<p><br>
<b><a name="PHP-Windows"></a>This is for fastcgi-mode PHP ( Windows )</b><p>LoadModule fcgid_module modules/mod_fcgid.so<p>  
<Directory "C:/Apache2/htdocs/php/"><br>  
    SetHandler fcgid-script<br>  
    Options execCGI<br>  
    AllowOverride None<br>  
    Order allow,deny<br>  
    Allow from all<br>  
    FCGIWrapper "c:/php/php.exe" .php<br>  
</Directory><p><b>This works too:</b><p>LoadModule fcgid_module modules/mod_fcgid.so <p>
AddHandler fcgid-script .php<br>
<Directory "C:/Apache2/htdocs/php/"><br> 
    FCGIWrapper "c:/php/php.exe" .php<br> 
    Options ExecCGI<br> 
    allow from all<br> 
</Directory><br>

<hr>
<p>¡¡</p>
<p>¡¡</p>
<p>¡¡</p>
<p>¡¡</p>
<p>¡¡</p>
<p>¡¡</p>
<p>¡¡</p>
<p>¡¡</p>
<p>¡¡</p>

</body>

</html>


--- NEW FILE doc.htm ---
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>The mod_fcgid Home Page</title>

<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">

</head>

<body bgcolor="#ffffff">

<table border="0" cellpadding="5" cellspacing="0" width="893">

<tr> 

<td align="center" valign="top" width="200"> 

 

<table cellpadding="5" cellspacing="0"> 

<tr>

<td nowrap bgcolor="#f8eda6" align="left">

<a href="index.htm">Home</a> <br>
<a href="index.cn.htm">Chinese Info</a> <br>
<a href="download.htm">Download (source)</a> <br>
<a href="doc.htm">Documentations</a> <br>


<a href="feedback.htm">Feedback</a>


</td> </tr> </table> </td>

<td valign="top" width="669">

<ul>
  <li>

<p><b><font size="4">Here are some examples of configuration</font></b></p>
  </li>
</ul>

<p><a href="configuration.htm#regular fastcgi">Configuration for Regular fastcgi
(non-PHP, non-Ruby, non-Python) </a><p><a href="configuration.htm#suEXEC">Configuration
for suEXEC fastcgi</a><p><a href="configuration.htm#PHP">Configuration for PHP
(UNIX)</a><p><a href="configuration.htm#suPHP">Configuration for suPHP (UNIX)</a><p><a href="configuration.htm#PHP-Windows">Configuration
for PHP (Windows)</a><p> 
<hr>
<ul>
  <li><h2><b><font size="4">There are
some other configurations you can set</font></b></h2>
  </li>
</ul>
<p><b>IdleTimeout n (300
seconds)</b><p>An idle fastcgi application will be terminated after IdleTimeout
seconds. <p><b>IdleScanInterval n (120 seconds)</b><p>The scan interval for idle
fastcgi applications. <p><b>BusyTimeout n (300 seconds)</b><p>a fastcgi
application will be terminated if handing a single request longer than busy
timeout.<p><b>BusyScanInterval n (120 seconds)</b><p>The scan interval for busy
timeout fastcgi applications.<p><b>ErrorScanInterval n (3 seconds)</b><p>The
scan interval for exit pending fastcgi applications. fastcgi applications will
be terminated within this scanning.<p><b>ZombieScanInterval n (3 seconds)</b><p>The
scan interval for zombie process. <p><b>ProcessLifeTime n (3600 seconds)</b><p>A
fastcgi application will be terminated if lifetime expired, even no error is
detected.<p><b>SocketPath path (logs/fcgidsock)</b><p>The directory to put the
UNIX domain socket. (UNIX only)<p><b>SpawnScoreUpLimit n (10)</b><p>The
spawn-speed control score up water limit. Score increases while a process is spawned or terminated, and decreases
as time progresses; while the score is higher than <b>SpawnScoreUpLimit</b>, the spawning will be
held for a while. The higher this number is, the higher speed of the spawning
can be.<p><b>SpawnScore n (1)</b><p>The weight of spawning.  This weight
will be plused to the spawn-control score on every spawn. The higher this number
is, the lower speed of spawning can be.<p><b>TerminationScore n (2)</b><p>The
weight of termination. This weight will be plused to the score while fastcgi
process terminates. The higher this number is, the lower speed of spawning can
be.<p><b>MaxProcessCount n (1000)</b><p>The max count of total fastcgi process
count.<p><b>DefaultMaxClassProcessCount n (100)</b><p>The maximum number of
fastcgi application instances allowed to run for any one fastcgi application. <p><b>DefaultMinClassProcessCount n
(3)</b><p>The minimum number of
fastcgi application instances for any one fastcgi application. <p><b>DefaultInitEnv 
env_name env_value</b><p>The default environment variables before a fastcgi
application is spawned. You can set this configuration more
than once.<p><b>IPCConnectTimeout n (3 seconds)</b><p>The connect timeout to a
fastcgi application. <p><b>IPCCommTimeout n (20 seconds)</b><p>The communication
timeout to a fastcgi application. Please increase this value if your CGI have a
slow initialization or slow respond.<p><b>OutputBufferSize n (64k bytes)</b><p>CGI
output cache buffer size.<p><b>PHP_Fix_Pathinfo_Enable</b><b> n(n=0/1, default 0)</b><p>If
you are using PHP and set cgi.fix_pathinfo=1 in php.ini, set
PHP_Fix_Pathinfo_Enable 1.

</td>

</tr>

</table>

</body></html>


--- NEW FILE fastcgi.fc ---
/var/run/mod_fcgid(/.*)?		 gen_context(system_u:object_r:httpd_fastcgi_sock_t,s0)


--- NEW FILE fastcgi.te ---
policy_module(fastcgi, 0.1.6)

type httpd_fastcgi_sock_t;
files_type(httpd_fastcgi_sock_t)

require {
	type devpts_t;
	type httpd_t;
	type httpd_config_t;
	type httpd_log_t;
	type httpd_sys_script_exec_t;
	type httpd_sys_content_t;
};

# ==========================================================
# Create and use httpd_fastcgi_script_t for mod_fcgid apps
# ==========================================================

apache_content_template(fastcgi)
kernel_read_kernel_sysctls(httpd_fastcgi_script_t)

# Allow FastCGI applications to do DNS lookups
sysnet_dns_name_resolve(httpd_fastcgi_script_t)

# Allow FastCGI applications to live alongside regular CGI apps
allow httpd_fastcgi_script_t httpd_sys_script_exec_t:dir { search_dir_perms };
allow httpd_fastcgi_script_t httpd_sys_content_t:dir { search_dir_perms };

# Allow FastCGI applications to read the routing table
allow httpd_fastcgi_script_t self:netlink_route_socket { r_netlink_socket_perms };

# Allow httpd to create and use sockets for communicating with mod_fcgid
allow httpd_t httpd_fastcgi_sock_t:dir { rw_dir_perms setattr };
allow httpd_t httpd_fastcgi_sock_t:sock_file { create_file_perms };

# Allow httpd to read httpd_fastcgi_content_t
# (shouldn't this be in the content template?)
allow httpd_t httpd_fastcgi_content_t:dir r_dir_perms;
allow httpd_t httpd_fastcgi_content_t:file r_file_perms;
allow httpd_t httpd_fastcgi_content_t:lnk_file { getattr read };

# Allow FastCGI applications to listen for FastCGI requests on their
# sockets and respond to them
allow httpd_fastcgi_script_t httpd_t:unix_stream_socket { rw_stream_socket_perms };

# FastCGI application doing something to the httpd error log
dontaudit httpd_fastcgi_script_t httpd_log_t:file ioctl;

# Not sure what this is doing (happens when fastcgi scripts start)
dontaudit httpd_t devpts_t:chr_file ioctl;

# ======================================================
# Equivalent policy cribbed from httpd_sys_script_t
# ======================================================

dontaudit httpd_fastcgi_script_t httpd_config_t:dir search;

files_search_var_lib(httpd_fastcgi_script_t)
files_search_spool(httpd_fastcgi_script_t)

ifdef(`distro_redhat',`
	allow httpd_fastcgi_script_t httpd_log_t:file { getattr append };
')

ifdef(`targeted_policy',`
	tunable_policy(`httpd_enable_homedirs',`
		userdom_search_generic_user_home_dirs(httpd_fastcgi_script_t)
	')
')

optional_policy(`
	mysql_stream_connect(httpd_fastcgi_script_t)
	mysql_rw_db_sockets(httpd_fastcgi_script_t)
')



--- NEW FILE fcgid.conf ---
# This is the Apache server configuration file for providing FastCGI support
# through mod_fcgid
#
# Documentation is available at http://fastcgi.coremail.cn/doc.htm

LoadModule fcgid_module modules/mod_fcgid.so

# Use FastCGI to process .fcg .fcgi & .fpl scripts
# Don't do this if mod_fastcgi is present, as it will try to do the same thing
<IfModule !mod_fastcgi.c>
    AddHandler fcgid-script fcg fcgi fpl
</IfModule>

# Sane place to put sockets
SocketPath run/mod_fcgid

mod_fcgid.1.09-docurls.patch:

--- NEW FILE mod_fcgid.1.09-docurls.patch ---
--- mod_fcgid.1.09/directives.htm	2006-06-18 09:27:53.000000000 +0100
+++ mod_fcgid.1.09/directives.htm	2006-06-18 09:29:02.000000000 +0100
@@ -27,13 +27,13 @@
 
 <td nowrap bgcolor="#f8eda6" align="left">
 
-<a href="index.htm">Home</a> <br>
-<a href="index.cn.htm">Chinese Info</a> <br>
-<a href="download.htm">Download (source)</a> <br>
-<a href="doc.htm">Documentations</a> <br>
+<a href="http://fastcgi.coremail.cn/index.htm">Home</a> <br>
+<a href="http://fastcgi.coremail.cn/index.cn.htm">Chinese Info</a> <br>
+<a href="http://fastcgi.coremail.cn/download.htm">Download (source)</a> <br>
+<a href="http://fastcgi.coremail.cn/doc.htm">Documentations</a> <br>
 
 
-<a href="feedback.htm">Feedback</a>
+<a href="http://fastcgi.coremail.cn/feedback.htm">Feedback</a>
 
 
 </td> </tr> </table> </td>


--- NEW FILE mod_fcgid.spec ---
# FC5 and later include SELinux policy module packages
%if 0%{?fedora} < 5
%define selinux_module 0
%define selinux_variants %{nil}
%define selinux_buildreqs %{nil}
%else
%define selinux_module 1
%define selinux_variants mls strict targeted
%define selinux_buildreqs checkpolicy, selinux-policy-devel, hardlink
%endif

Name:           mod_fcgid
Version:        1.10
Release:        6%{?dist}
Summary:        Apache2 module for high-performance server-side scripting 
Group:          System Environment/Daemons
License:        GPL
URL:            http://fastcgi.coremail.cn/
Source0:        http://fastcgi.coremail.cn/mod_fcgid.%{version}.tar.gz
Source1:        fcgid.conf
Source2:        fastcgi.te
Source3:        fastcgi.fc
Source4:        README.Fedora
Source5:        http://fastcgi.coremail.cn/doc.htm
Source6:        http://fastcgi.coremail.cn/configuration.htm
Source7:        README.SELinux
Patch0:         mod_fcgid.1.09-docurls.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:  httpd-devel >= 2.0
Requires:       httpd-mmn = %([ -a %{_includedir}/httpd/.mmn ] && %{__cat} %{_includedir}/httpd/.mmn || echo missing)

%description
mod_fcgid is a binary-compatible alternative to the Apache module mod_fastcgi.
mod_fcgid has a new process management strategy, which concentrates on reducing
the number of fastcgi servers, and kicking out corrupt fastcgi servers as soon
as possible.

%if %{selinux_module}
%define selinux_policyver %(sed -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp)
%package selinux
Summary:        SELinux policy module supporting FastCGI applications with mod_fcgid
Group:          System Environment/Base
BuildRequires:  %{selinux_buildreqs}
# selinux-policy is required for directory ownership of %{_datadir}/selinux/*
# Modules built against one version of a policy may not work with older policy
# versions, as noted on fedora-selinux-list:
# http://www.redhat.com/archives/fedora-selinux-list/2006-May/msg00102.html
# Hence the versioned dependency. The versioning will hopefully be replaced by
# an ABI version requirement or something similar in the future
%if "%{selinux_policyver}" != ""
Requires:       selinux-policy >= %{selinux_policyver}
%endif
Requires:       %{name} = %{version}-%{release}
Requires(post):   /usr/sbin/semodule, /sbin/restorecon
Requires(postun): /usr/sbin/semodule, /sbin/restorecon

%description selinux
SELinux policy module supporting FastCGI applications with mod_fcgid.
%endif

%prep
%setup -q -n mod_fcgid.%{version}
%{__cp} -p %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE6} %{SOURCE7} .
%{__cp} -p %{SOURCE5} directives.htm
%patch0 -p1
%{__sed} -i -e 's/\r$//' directives.htm configuration.htm

%build
topdir=$(/usr/bin/dirname $(/usr/sbin/apxs -q exp_installbuilddir))
%{__make} top_dir=${topdir}
%if %{selinux_module}
for selinuxvariant in %{selinux_variants}
do
    %{__make} NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile
    %{__mv} fastcgi.pp fastcgi.pp.${selinuxvariant}
    %{__make} NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile clean
done
%endif

%install
%{__rm} -rf %{buildroot}
topdir=$(/usr/bin/dirname $(/usr/sbin/apxs -q exp_installbuilddir))
%{__make} \
        top_dir=${topdir} \
        DESTDIR=%{buildroot} \
        MKINSTALLDIRS="%{__mkdir_p}" \
        install
%{__install} -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/httpd/conf.d/fcgid.conf
%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/mod_fcgid

# Install SELinux policy modules
%if %{selinux_module}
for selinuxvariant in %{selinux_variants}
do
    %{__install} -d %{buildroot}%{_datadir}/selinux/${selinuxvariant}
    %{__install} -p -m 644 fastcgi.pp.${selinuxvariant} \
           %{buildroot}%{_datadir}/selinux/${selinuxvariant}/fastcgi.pp
done
# Hardlink identical policy module packages together
/usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux
%endif

%clean
%{__rm} -rf %{buildroot}

%if %{selinux_module}
%post selinux
# Install SELinux policy modules
for selinuxvariant in %{selinux_variants}
do
  /usr/sbin/semodule -s ${selinuxvariant} -i \
    %{_datadir}/selinux/${selinuxvariant}/fastcgi.pp &> /dev/null || :
done
# Fix up non-standard directory context
/sbin/restorecon %{_localstatedir}/run/mod_fcgid || :

%postun selinux
# Clean up after package removal
if [ $1 -eq 0 ]; then
  # Remove SELinux policy modules
  for selinuxvariant in %{selinux_variants}
  do
    /usr/sbin/semodule -s ${selinuxvariant} -r fastcgi &> /dev/null || :
  done
  # Clean up any remaining file contexts (shouldn't be any really)
  [ -d %{_localstatedir}/run/mod_fcgid ] && \
    /sbin/restorecon -R %{_localstatedir}/run/mod_fcgid &> /dev/null || :
fi
%endif

%files
%defattr(-,root,root,0755)
%doc ChangeLog AUTHOR COPYING configuration.htm directives.htm
%doc README.Fedora
%{_libdir}/httpd/modules/mod_fcgid.so
%config(noreplace) %{_sysconfdir}/httpd/conf.d/fcgid.conf
%dir %attr(0755,apache,apache) %{_localstatedir}/run/mod_fcgid

%if %{selinux_module}
%files selinux
%defattr(-,root,root,0755)
%doc fastcgi.fc fastcgi.te README.SELinux
%{_datadir}/selinux/*/fastcgi.pp
%endif

%changelog
* Tue Aug 29 2006 Paul Howarth <paul at city-fan.org> 1.10-6
- Buildreqs for FC5 now identical to buildreqs for FC6 onwards

* Fri Jul 28 2006 Paul Howarth <paul at city-fan.org> 1.10-5
- Split off SELinux module into separate subpackage to avoid dependency on
  the selinux-policy package for the main package

* Fri Jul 28 2006 Paul Howarth <paul at city-fan.org> 1.10-4
- SELinux policy packages moved from %%{_datadir}/selinux/packages/POLICYNAME
  to %%{_datadir}/selinux/POLICYNAME
- hardlink identical policy module packages together to avoid duplicate files

* Thu Jul 20 2006 Paul Howarth <paul at city-fan.org> 1.10-3
- Adjust buildreqs for FC6 onwards
- Figure out where top_dir is dynamically since the /etc/httpd/build
  symlink is gone in FC6

* Wed Jul  5 2006 Paul Howarth <paul at city-fan.org> 1.10-2
- SELinux policy update: allow FastCGI apps to do DNS lookups

* Tue Jul  4 2006 Paul Howarth <paul at city-fan.org> 1.10-1
- Update to 1.10
- Expand tabs to shut rpmlint up

* Tue Jul  4 2006 Paul Howarth <paul at city-fan.org> 1.09-10
- SELinux policy update:
  * allow httpd to read httpd_fastcgi_content_t without having the
    httpd_builtin_scripting boolean set
  * allow httpd_fastcgi_script_t to read /etc/resolv.conf without
    having the httpd_can_network_connect boolean set

* Sun Jun 18 2006 Paul Howarth <paul at city-fan.org> 1.09-9
- Discard output of semodule in %%postun
- Include some documentation from upstream

* Fri Jun  9 2006 Paul Howarth <paul at city-fan.org> 1.09-8
- Change default context type for socket directory from var_run_t to
  httpd_fastcgi_sock_t for better separation

* Thu Jun  8 2006 Paul Howarth <paul at city-fan.org> 1.09-7
- Add SELinux policy module and README.Fedora
- Conflict with selinux-policy versions older than what we're built on

* Mon May 15 2006 Paul Howarth <paul at city-fan.org> 1.09-6
- Instead of conflicting with mod_fastcgi, don't add the handler for .fcg etc.
  if mod_fastcgi is present

* Fri May 12 2006 Paul Howarth <paul at city-fan.org> 1.09-5
- Use correct handler name in fcgid.conf
- Conflict with mod_fastcgi
- Create directory %%{_localstatedir}/run/mod_fcgid for sockets

* Thu May 11 2006 Paul Howarth <paul at city-fan.org> 1.09-4
- Cosmetic tweaks (personal preferences)
- Don't include INSTALL.TXT, nothing of use to end users

* Wed May 10 2006 Thomas Antony <thomas at antony.eu> 1.09-3
- Initial release


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/mod_fcgid/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	6 Sep 2006 13:07:43 -0000	1.1
+++ .cvsignore	6 Sep 2006 13:08:59 -0000	1.2
@@ -0,0 +1 @@
+mod_fcgid.1.10.tar.gz


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/mod_fcgid/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	6 Sep 2006 13:07:43 -0000	1.1
+++ sources	6 Sep 2006 13:08:59 -0000	1.2
@@ -0,0 +1 @@
+6c36b18548ca64864ed3dd4cb759062f  mod_fcgid.1.10.tar.gz




More information about the fedora-extras-commits mailing list