Blob Blame History Raw
%define webroot /var/www/lighttpd

# LUA support requires >= 5.1 but EPEL4 provides only 5.0, so disable
%{?el4: %define _without_lua 1}

Summary: Lightning fast webserver with light system requirements
Name: lighttpd
Version: 1.4.20
Release: 6%{?dist}
License: BSD
Group: System Environment/Daemons
URL: http://www.lighttpd.net/
Source0: http://www.lighttpd.net/download/lighttpd-%{version}.tar.bz2
Source1: lighttpd.logrotate
Source2: php.d-lighttpd.ini
Source10: index.html
Source11: http://www.lighttpd.net/favicon.ico
Source12: http://www.lighttpd.net/light_button.png
Source13: http://www.lighttpd.net/light_logo.png
Source14: lighttpd-empty.png
Source100: lighttpd-mod_geoip.c
Source101: lighttpd-mod_geoip.txt
Patch0: lighttpd-1.4.20-defaultconf.patch
Patch1: lighttpd-1.4.18-mod_geoip.patch
Patch2: lighttpd-1.4.20-initinfo.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
# For the target poweredby.png image (skip requirement + provide image on RHEL)
%if 0%{!?rhel:1}
Requires: system-logos >= 7.92.1
%endif
Requires(pre): /usr/sbin/useradd
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/service, /sbin/chkconfig
Requires(postun): /sbin/service
Provides: webserver
BuildRequires: openssl-devel, pcre-devel, bzip2-devel, zlib-devel
BuildRequires: /usr/bin/awk
%{!?_without_ldap:BuildRequires: openldap-devel}
%{?_with_gamin:BuildRequires: gamin-devel}
%{!?_without_gdbm:BuildRequires: gdbm-devel}
%{!?_without_lua:BuildRequires: lua-devel}
# On Fedora <= 6 (and RHEL?), we still need this because of the "broken" lua
%if %{!?fedora:0}%{?fedora} <= 6
BuildRequires: readline-devel
%endif
%if 0%{?rhel} <= 6
BuildRequires: readline-devel
%endif

%description
Secure, fast, compliant and very flexible web-server which has been optimized
for high-performance environments. It has a very low memory footprint compared
to other webservers and takes care of cpu-load. Its advanced feature-set
(FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) make
it the perfect webserver-software for every server that is suffering load
problems.

Available rpmbuild rebuild options :
--with : gamin webdavprops webdavlocks memcache
--without : ldap gdbm lua (cml)


%package fastcgi
Summary: FastCGI module and spawning helper for lighttpd and PHP configuration
Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release}
# Not really a requirement, but it used to be included (until 1.4.20-5)
Requires: spawn-fcgi

%description fastcgi
This package contains the spawn-fcgi helper for lighttpd's automatic spawning
of local FastCGI programs. Included is also a PHP .ini file to change a few
defaults needed for correct FastCGI behavior.


%package mod_geoip
Summary: GeoIP module for lighttpd to use for location lookups
Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release}
BuildRequires: GeoIP-devel

%description mod_geoip
GeoIP module for lighttpd to use for location lookups.


%package mod_mysql_vhost
Summary: Virtual host module for lighttpd that uses a MySQL database
Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release}
BuildRequires: mysql-devel

%description mod_mysql_vhost
Virtual host module for lighttpd that uses a MySQL database.


%package -n spawn-fcgi
Summary: Simple program for spawning FastCGI processes
Group: System Environment/Daemons

%description -n spawn-fcgi
This package contains the spawn-fcgi program used for spawning FastCGI
processes, which can be local or remote.


%prep
%setup -q
%patch0 -p1 -b .defaultconf
%patch1 -p1 -b .mod_geoip
%patch2 -p1 -b .initinfo
%{__install} -p -m 0644 %{SOURCE100} src/mod_geoip.c
%{__install} -p -m 0644 %{SOURCE101} mod_geoip.txt


%build
%configure \
    --libdir="%{_libdir}/lighttpd" \
    --with-mysql \
    %{!?_without_ldap:--with-ldap} \
    --with-openssl \
    %{?_with_gamin:--with-fam} \
    %{?_with_webdavprops:--with-webdav-props} \
    %{?_with_webdavlocks:--with-webdav-locks} \
    %{!?_without_gdbm:--with-gdbm} \
    %{?_with_memcache:--with-memcache} \
    %{?!_without_lua:--with-lua}
%{__make} %{?_smp_mflags}


%install
%{__rm} -rf %{buildroot}
%{__make} install DESTDIR=%{buildroot}

# Install included init script and sysconfig entry
%{__install} -D -p -m 0755 doc/rc.lighttpd.redhat \
    %{buildroot}%{_sysconfdir}/rc.d/init.d/lighttpd
%{__install} -D -p -m 0644 doc/sysconfig.lighttpd \
    %{buildroot}%{_sysconfdir}/sysconfig/lighttpd

# Install (*patched above*) sample config file
%{__install} -D -p -m 0640 doc/lighttpd.conf \
    %{buildroot}%{_sysconfdir}/lighttpd/lighttpd.conf
%{__mkdir_p} %{buildroot}%{_sysconfdir}/lighttpd/conf.d

# Install our own logrotate entry
%{__install} -D -p -m 0644 %{SOURCE1} \
    %{buildroot}%{_sysconfdir}/logrotate.d/lighttpd

# Install our own php.d ini file
%{__install} -D -p -m 0644 %{SOURCE2} \
    %{buildroot}%{_sysconfdir}/php.d/lighttpd.ini

# Install our own default web page and images
%{__mkdir_p} %{buildroot}%{webroot}
%{__install} -p -m 0644 %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \
    %{buildroot}%{webroot}/

# Symlink for the powered-by-$DISTRO image (install empty image on RHEL)
%if 0%{!?rhel:1}
%{__ln_s} %{_datadir}/pixmaps/poweredby.png \
%else
%{__install} -p -m 0644 %{SOURCE14} \
%endif
    %{buildroot}%{webroot}/poweredby.png

# Install empty log directory to include
%{__mkdir_p} %{buildroot}%{_var}/log/lighttpd

# Install empty run directory to include (for the example fastcgi socket)
%{__mkdir_p} %{buildroot}%{_var}/run/lighttpd


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


%pre
/usr/sbin/useradd -s /sbin/nologin -M -r -d %{webroot} \
    -c "lighttpd web server" lighttpd &>/dev/null || :

%post
/sbin/chkconfig --add lighttpd

%preun
if [ $1 -eq 0 ]; then
    /sbin/service lighttpd stop &>/dev/null || :
    /sbin/chkconfig --del lighttpd
fi

%postun
if [ $1 -ge 1 ]; then
    /sbin/service lighttpd condrestart &>/dev/null || :
fi


%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING README
%doc doc/*.txt doc/lighttpd.conf doc/lighttpd.user
%dir %{_sysconfdir}/lighttpd/
%dir %{_sysconfdir}/lighttpd/conf.d/
%config(noreplace) %{_sysconfdir}/lighttpd/lighttpd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/lighttpd
%config(noreplace) %{_sysconfdir}/sysconfig/lighttpd
%{_sysconfdir}/rc.d/init.d/lighttpd
%{_sbindir}/lighttpd
%{_sbindir}/lighttpd-angel
%{_libdir}/lighttpd/
%exclude %{_libdir}/lighttpd/*.la
%exclude %{_libdir}/lighttpd/mod_fastcgi.so
%exclude %{_libdir}/lighttpd/mod_geoip.so
%exclude %{_libdir}/lighttpd/mod_mysql_vhost.so
%{_mandir}/man1/lighttpd.1*
%attr(0750, lighttpd, lighttpd) %{_var}/log/lighttpd/
%attr(0750, lighttpd, lighttpd) %{_var}/run/lighttpd/
%dir %{webroot}/
%{webroot}/*.ico
%{webroot}/*.png
# This is not really configuration, but prevent loss of local changes
%config %{webroot}/index.html

%files fastcgi
%defattr(-,root,root,-)
%doc doc/fastcgi*.txt
%config(noreplace) %{_sysconfdir}/php.d/lighttpd.ini
%dir %{_libdir}/lighttpd/
%{_libdir}/lighttpd/mod_fastcgi.so

%files mod_geoip
%defattr(-,root,root,-)
%doc mod_geoip.txt
%dir %{_libdir}/lighttpd/
%{_libdir}/lighttpd/mod_geoip.so

%files mod_mysql_vhost
%defattr(-,root,root,-)
%doc doc/mysqlvhost.txt
%dir %{_libdir}/lighttpd/
%{_libdir}/lighttpd/mod_mysql_vhost.so

%files -n spawn-fcgi
%{_bindir}/spawn-fcgi
%{_mandir}/man1/spawn-fcgi.1*

%changelog
* Wed Dec 24 2008 Matthias Saou <http://freshrpms.net/> 1.4.20-6
- Partially revert last change by creating a "spawn-fastcgi" symlink, so that
  nothing breaks currently (especially for EL).
- Install empty poweredby image on RHEL since the symlink's target is missing.
- Split spawn-fcgi off in its own sub-package, have fastcgi package require it
  to provide backwards compatibility.

* Mon Dec 22 2008 Matthias Saou <http://freshrpms.net/> 1.4.20-3
- Rename spawn-fastcgi to lighttpd-spawn-fastcgi to avoid clash with other
  packages providing it for their own needs (#472749). It's not used as-is
  by lighttpd, so it shouldn't be a problem... at worst, some custom scripts
  will need to be updated.

* Mon Dec 22 2008 Matthias Saou <http://freshrpms.net/> 1.4.20-2
- Include conf.d/*.conf configuration snippets (#444953).
- Mark the default index.html in order to not loose changes upon upgrade if it
  was edited or replaced with a different file (#438564).
- Include patch to add the INIT INFO block to the init script (#246973).

* Mon Oct 13 2008 Matthias Saou <http://freshrpms.net/> 1.4.20-1
- Update to 1.4.20 final.

* Mon Sep 22 2008 Matthias Saou <http://freshrpms.net/> 1.4.20-0.1.r2303
- Update to 1.4.20 r2303 pre-release.

* Mon Sep 22 2008 Matthias Saou <http://freshrpms.net/> 1.4.19-5
- Include memory leak patch (changeset #2305 from ticket #1774).

* Thu Apr 24 2008 Matthias Saou <http://freshrpms.net/> 1.4.19-4
- Merge in second changest from upstream fix for upstream bug #285.

* Thu Mar 27 2008 Matthias Saou <http://freshrpms.net/> 1.4.19-3
- Include sslshutdown patch, upstream fix to upstream bug #285 (#439066).

* Sat Mar 22 2008 Matthias Saou <http://freshrpms.net/> 1.4.19-2
- Provide "webserver" (#437884).

* Wed Mar 12 2008 Matthias Saou <http://freshrpms.net/> 1.4.19-1
- Update to 1.4.19, which includes all previous security fixes + bugfixes.

* Tue Mar  4 2008 Matthias Saou <http://freshrpms.net/> 1.4.18-6
- Include patch for CVE-2008-0983 (crash when low on file descriptors).
- Include patch for CVE-2008-1111 (cgi source disclosure).

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org>
- Autorebuild for GCC 4.3

* Wed Dec 05 2007 Release Engineering <rel-eng at fedoraproject dot org>
 - Rebuild for deps

* Wed Oct 31 2007 Matthias Saou <http://freshrpms.net/> 1.4.18-3
- Update mod_geoip source to fix segfault upon stopping lighttpd.

* Mon Oct 22 2007 Matthias Saou <http://freshrpms.net/> 1.4.18-2
- Include mod_geoip additional source, make it an optional sub-package.
- Reorder sub-packages alphabetically in spec file.
- Make sub-packages require exact release, just in case.
- Change default webroot back from /srv to /var.

* Mon Sep 10 2007 Matthias Saou <http://freshrpms.net/> 1.4.18-1
- Update to 1.4.18.
- Include newly installed lighttpd-angel ("angel" process meant to always run
  as root and restart lighttpd when it crashes, spawn processes on SIGHUP), but
  it's in testing stage and must be run with -D for now.

* Wed Sep  5 2007 Matthias Saou <http://freshrpms.net/> 1.4.17-1
- Update to 1.4.17.
- Update defaultconf patch to match new example configuration.
- Include patch to fix log file rotation with max-workers set (trac #902).
- Add /var/run/lighttpd/ directory where to put fastcgi sockets.

* Thu Aug 23 2007 Matthias Saou <http://freshrpms.net/> 1.4.16-3
- Add /usr/bin/awk build requirement, used to get LIGHTTPD_VERSION_ID.

* Wed Aug 22 2007 Matthias Saou <http://freshrpms.net/> 1.4.16-2
- Rebuild to fix wrong execmem requirement on ppc32.

* Thu Jul 26 2007 Matthias Saou <http://freshrpms.net/> 1.4.16-1
- Update to 1.4.16 security fix release.

* Mon Apr 16 2007 Matthias Saou <http://freshrpms.net/> 1.4.15-1
- Update to 1.4.15.
- Remove now included previous patch.
- Switch to using the bz2 source.
- Add optional --with-webdav-locks support.

* Fri Feb 16 2007 Matthias Saou <http://freshrpms.net/> 1.4.13-6
- Include patch to fix 99% cpu bug when client connection is dropped.

* Fri Feb  2 2007 Matthias Saou <http://freshrpms.net/> 1.4.13-5
- Update defaultconf patch to change php binary to /usr/bin/php-cgi (#219723).
- Noticed %%{?_smp_mflags} was missing, so add it as it works fine.

* Mon Jan 29 2007 Matthias Saou <http://freshrpms.net/> 1.4.13-4
- Remove readline-devel build req, added by lua but since fixed (#213895).

* Mon Nov  6 2006 Matthias Saou <http://freshrpms.net/> 1.4.13-3
- Switch to using killall for log rotation to fix it when using workers.

* Mon Oct 16 2006 Matthias Saou <http://freshrpms.net/> 1.4.13-2
- Remove gcc-c++ build req, it's part of the defaults.
- Add readline-devel build req, needed on RHEL4.

* Wed Oct 11 2006 Matthias Saou <http://freshrpms.net/> 1.4.13-1
- Update to 1.4.13, which contains the previous fix.

* Tue Oct  3 2006 Matthias Saou <http://freshrpms.net/> 1.4.12-3
- Include fix for segfaults (lighttpd bug #876, changeset 1352).

* Mon Sep 25 2006 Matthias Saou <http://freshrpms.net/> 1.4.12-1
- Update to 1.4.12 final.

* Fri Sep 22 2006 Matthias Saou <http://freshrpms.net/> 1.4.12-0.1.r1332
- Update to latest 1.4.12 pre-release, fixes SSL issues and other bugs.
- Update powered_by_fedora.png to the new logo.

* Mon Aug 28 2006 Matthias Saou <http://freshrpms.net/> 1.4.11-2
- FC6 rebuild.

* Thu Mar  9 2006 Matthias Saou <http://freshrpms.net/> 1.4.11-1
- Update to 1.4.11.

* Mon Mar  6 2006 Matthias Saou <http://freshrpms.net/> 1.4.10-2
- FC5 rebuild.

* Wed Feb  8 2006 Matthias Saou <http://freshrpms.net/> 1.4.10-1
- Update to 1.4.10.
- Remove now included fix.

* Wed Jan 25 2006 Matthias Saou <http://freshrpms.net/> 1.4.9-2
- Add mod_fastcgi-fix patch to fix crash on backend overload.

* Mon Jan 16 2006 Matthias Saou <http://freshrpms.net/> 1.4.9-1
- Update to 1.4.9.

* Wed Nov 23 2005 Matthias Saou <http://freshrpms.net/> 1.4.8-1
- Update to 1.4.8.

* Fri Nov  4 2005 Matthias Saou <http://freshrpms.net/> 1.4.7-1
- Update to 1.4.7.

* Wed Oct 12 2005 Matthias Saou <http://freshrpms.net/> 1.4.6-1
- Update to 1.4.6.

* Mon Oct  3 2005 Matthias Saou <http://freshrpms.net/> 1.4.5-1
- Update to 1.4.5.
- Disable gamin/fam support for now, it does not work.

* Tue Sep 27 2005 Matthias Saou <http://freshrpms.net/> 1.4.4-3
- Update to current SVN to check if it fixes the remaining load problems.

* Wed Sep 21 2005 Matthias Saou <http://freshrpms.net/> 1.4.4-2
- Patch to SVN 722 revision : Fixes a crash in mod_mysql_vhost and a problem
  with keepalive and certain browsers.

* Mon Sep 19 2005 Matthias Saou <http://freshrpms.net/> 1.4.4-1
- Update to 1.4.4 final.
- Enable ldap auth, gdbm and gamin/fam support by default.

* Thu Sep 15 2005 Matthias Saou <http://freshrpms.net/> 1.4.4-0
- Update to 1.4.4 pre-release (fixes another fastcgi memleak).
- Enable lua (cml module) by default.
- Add --with-webdav-props conditional option.

* Tue Sep 13 2005 Matthias Saou <http://freshrpms.net/> 1.4.3-2
- Include lighttpd-1.4.3-stat_cache.patch to fix memleak.

* Fri Sep  2 2005 Matthias Saou <http://freshrpms.net/> 1.4.3-1.1
- Rearrange the included index.html to include the new logo, button and
  favicon from lighttpd.net.

* Fri Sep  2 2005 Matthias Saou <http://freshrpms.net/> 1.4.3-1
- Update to 1.4.3.
- No longer override libdir at make install stage, use DESTDIR instead, as
  the resulting binary would now have referenced to %%{buildroot} :-(

* Tue Aug 30 2005 Matthias Saou <http://freshrpms.net/> 1.4.2-1
- Update to 1.4.2.

* Mon Aug 22 2005 Matthias Saou <http://freshrpms.net/> 1.4.1-1
- Update to 1.4.1.

* Sun Aug 21 2005 Matthias Saou <http://freshrpms.net/> 1.4.0-1
- Update to 1.4.0.
- Add conditional of gamin, gdbm, memcache and lua options.

* Mon Aug  1 2005 Matthias Saou <http://freshrpms.net/> 1.3.16-2
- Update to 1.3.16, rebuild.

* Mon Jul 18 2005 Matthias Saou <http://freshrpms.net/> 1.3.15-1
- Update to 1.3.15.

* Mon Jun 20 2005 Matthias Saou <http://freshrpms.net/> 1.3.14-1
- Update to 1.3.14.

* Sun May 22 2005 Jeremy Katz <katzj@redhat.com> - 1.3.13-5
- rebuild on all arches

* Mon Apr  4 2005 Matthias Saou <http://freshrpms.net/> 1.3.13-4
- Change signal sent from the logrotate script from USR1 to HUP, as that's the
  correct one.

* Fri Apr  1 2005 Michael Schwendt <mschwendt[AT]users.sf.net> 1.3.13-2
- Include /etc/lighttpd directory.

* Sun Mar  6 2005 Matthias Saou <http://freshrpms.net/> 1.3.13-1
- Update to 1.3.13.

* Wed Mar  2 2005 Matthias Saou <http://freshrpms.net/> 1.3.12-1
- Update to 1.3.12.
- Remove obsolete empty_cgi_handler patch.

* Tue Mar  1 2005 Matthias Saou <http://freshrpms.net/> 1.3.11-2
- Add missing defattr to sub-packages (#150018).

* Mon Feb 21 2005 Matthias Saou <http://freshrpms.net/> 1.3.11-0
- Update to 1.3.11.
- Remove cleanconf and init.d patches (merged upstream).
- Add empty_cgi_handler patch.

* Fri Feb 18 2005 Matthias Saou <http://freshrpms.net/> 1.3.10-0
- Split off -fastcgi sub-package.
- Include php.d entry to set sane FastCGI defaults.

* Wed Feb 16 2005 Matthias Saou <http://freshrpms.net/> 1.3.10-0
- Spec file cleanup for freshrpms.net/Extras.
- Compile OpenSSL support unconditionally.
- Put modules in a subdirectory of libdir.
- Don't include all of libdir's content to avoid debuginfo content.
- Add optional LDAP support.
- Add patch to change the default configuration.
- Add dedicated lighttpd user/group creation.
- Add logrotate entry.
- Include a nice little default page for the default setup.
- Split off mod_mysql_vhost sub-package, get dep only there.
- Use webroot in /srv by default.
- Exclude .la files, I doubt anyone will need them.

* Thu Sep 30 2004 <jan@kneschke.de> 1.3.1
- upgraded to 1.3.1

* Tue Jun 29 2004 <jan@kneschke.de> 1.2.3
- rpmlint'ed the package
- added URL
- added (noreplace) to start-script
- change group to Networking/Daemon (like apache)

* Sun Feb 23 2003 <jan@kneschke.de>
- initial version