%define debug_package %{nil} # init script # need sysconfig # install my tortixd.conf # install my ssl.conf %define contentdir /var/asl/www %define suexec_caller tortix %define mmn 20120211 Summary: Apache HTTP Server Name: tortixd Version: 2.4.2 Release: 0.4 URL: http://www.atomicorp.com Vendor: Atomicorp, Inc. Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 Source1: tortixd.init Source2: tortixd.sysconfig Source3: tortixd.conf Source4: ssl.conf License: Apache License, Version 2.0 Group: System Environment/Daemons BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: autoconf, perl, pkgconfig, findutils BuildRequires: zlib-devel, libselinux-devel # ART 0.3 BuildRequires: asl-apr-devel >= 1.4.0, asl-apr-util-devel >= 1.4.0 BuildRequires: pcre-devel >= 5.0 Requires: initscripts >= 8.36, /etc/mime.types Obsoletes: tortixd-suexec Requires(pre): /usr/sbin/useradd Requires(post): chkconfig Provides: webserver Provides: mod_dav = %{version}-%{release}, tortixd-suexec = %{version}-%{release} Provides: tortixd-mmn = %{mmn} Provides: mod_sed %description Apache is a powerful, full-featured, efficient, and freely-available Web server. Apache is also the most popular Web server on the Internet. %package devel Group: Development/Libraries Summary: Development tools for the Apache HTTP server. Obsoletes: secureweb-devel, apache-devel # ART 0.3 Requires: asl-apr-devel, asl-apr-util-devel Requires: pkgconfig, libtool %description devel The httpd-devel package contains the APXS binary and other files that you need to build Dynamic Shared Objects (DSOs) for the Apache HTTP Server. If you are installing the Apache HTTP server and you want to be able to compile or develop additional modules for Apache, you need to install this package. %package tools Group: System Environment/Daemons Summary: Tools for use with the Apache HTTP Server %description tools The httpd-tools package contains tools which can be used with the Apache HTTP Server. %package -n tortixd-mod_authnz_ldap Group: System Environment/Daemons Summary: LDAP modules for the Apache HTTP server BuildRequires: openldap-devel Requires: tortixd = %{version}-%{release}, tortixd-mmn = %{mmn} %description -n tortixd-mod_authnz_ldap The mod_authnz_ldap module for the Apache HTTP server provides authentication and authorization against an LDAP server, while mod_ldap provides an LDAP cache. %package -n tortixd-mod_lua Group: System Environment/Daemons Summary: Lua language module for the Apache HTTP server BuildRequires: lua-devel Requires: tortixd = %{version}-%{release}, tortixd-mmn = %{mmn} %description -n tortixd-mod_lua The mod_lua module for the Apache HTTP server allows the server to be extended with scripts written in the Lua programming language. %package -n tortixd-mod_proxy_html Group: System Environment/Daemons Summary: Proxy HTML filter modules for the Apache HTTP server BuildRequires: libxml2-devel Requires: tortixd = %{version}-%{release}, tortixd-mmn = %{mmn} %description -n tortixd-mod_proxy_html The mod_proxy_html module for the Apache HTTP server provides a filter to rewrite HTML links within web content when used within a reverse proxy environment. The mod_xml2enc module provides enhanced charset/internationalisation support for mod_proxy_html. %package -n tortixd-mod_ssl Epoch: 1 Group: System Environment/Daemons Summary: SSL/TLS module for the Apache HTTP server BuildRequires: openssl-devel Requires(post): openssl, /bin/cat Requires(pre): tortixd Requires: tortixd = %{version}-%{release}, tortixd-mmn = %{mmn} %description -n tortixd-mod_ssl The mod_ssl module provides strong cryptography for the Apache Web server via the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols. %prep # %setup -q -n httpd-%{version} # Safety check: prevent build if defined MMN does not equal upstream MMN. vmmn=`echo MODULE_MAGIC_NUMBER_MAJOR | cpp -include include/ap_mmn.h | sed -n ' /^2/p'` if test "x${vmmn}" != "x%{mmn}"; then : Error: Upstream MMN is now ${vmmn}, packaged MMN is %{mmn}. : Update the mmn macro and rebuild. exit 1 fi %build %define _aslhome /var/asl %define _sysconfdir /var/asl/etc/ %define _prefix /var/asl/usr/ %define _bindir /var/asl/usr/bin/ %define _sbindir /var/asl/usr/sbin/ %define _includedir /var/asl/usr/include/ %define _mandir /var/asl/usr/share/man/ %define _libdir /var/asl/usr/lib/ %ifarch x86_64 %define _libdir /var/asl/usr/lib64/ %endif # forcibly prevent use of bundled apr, apr-util, pcre #rm -rf srclib/{apr,apr-util,pcre} rm -rf srclib/{pcre} # ART 0.3 # regenerate configure scripts autoheader && autoconf || exit 1 # ART 0.3 %{__perl} -pi -e "s:\@exp_installbuilddir\@:%{_libdir}/httpd/build:g" \ support/apxs.in # ART 0.3 export CFLAGS=$RPM_OPT_FLAGS export LDFLAGS="-Wl,-z,relro,-z,now" # ART 0.3 # Hard-code path to links to avoid unnecessary builddep export LYNX_PATH=/usr/bin/links # ART 0.3 # --with-apr=/usr --with-apr-util=/usr \ %configure \ --prefix=%{_sysconfdir}/httpd \ --with-program-name=tortixd \ --enable-layout=RPM \ --libdir=%{_libdir} \ --with-apr=/var/asl/usr --with-apr-util=/var/asl/usr \ --sysconfdir=%{_sysconfdir}/httpd/conf \ --includedir=%{_includedir}/httpd \ --libexecdir=%{_libdir}/httpd/modules \ --datadir=/var/asl/www \ --with-installbuilddir=%{_libdir}/httpd/build \ --enable-mpms-shared=all \ --enable-suexec --with-suexec \ --with-suexec-caller=%{suexec_caller} \ --with-suexec-docroot=%{contentdir} \ --with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \ --with-suexec-bin=%{_sbindir}/suexec \ --with-suexec-uidmin=500 --with-suexec-gidmin=100 \ --enable-pie \ --with-pcre \ --enable-mods-shared=all \ --enable-ssl --with-ssl --disable-distcache \ --enable-proxy \ --enable-cache \ --enable-disk-cache \ --enable-ldap --enable-authnz-ldap \ --enable-cgid --enable-cgi \ --enable-authn-anon --enable-authn-alias \ --disable-imagemap \ --disable-session make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install # for holding mod_dav lock database mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/dav # create a prototype session cache mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_ssl touch $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_ssl/scache.{dir,pag,sem} # Make the MMN accessible to module packages echo %{mmn} > $RPM_BUILD_ROOT%{_includedir}/httpd/.mmn # Set up /var directories mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/httpd mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/httpd/cache-root # # symlinks for /etc/httpd ln -s ../../../../%{_localstatedir}/log/httpd $RPM_BUILD_ROOT/var/asl/etc/httpd/logs ln -s ../../../../%{_localstatedir}/run $RPM_BUILD_ROOT/var/asl/etc/httpd/run ln -s ../../../../%{_libdir}/httpd/modules $RPM_BUILD_ROOT/var/asl/etc/httpd/modules # mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d # install SYSV init stuff mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d install -m755 %{SOURCE1} \ $RPM_BUILD_ROOT/etc/rc.d/init.d/tortixd install -m755 ./build/rpm/htcacheclean.init \ $RPM_BUILD_ROOT/etc/rc.d/init.d/tortixd-cacheclean # install sysconfig mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/ install -m0644 %{SOURCE2} \ $RPM_BUILD_ROOT/etc/sysconfig/tortixd # instal the tortixd.conf mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf install -m0644 %{SOURCE3} \ $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf/tortixd.conf # install the ssl.conf install -m0644 %{SOURCE4} \ $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/ssl.conf # install log rotation stuff #mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d #install -m644 ./build/rpm/httpd.logrotate \ # $RPM_BUILD_ROOT/etc/logrotate.d/httpd # Remove unpackaged files rm -rf $RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.exp \ $RPM_BUILD_ROOT%{contentdir}/cgi-bin/* # Make suexec a+rw so it can be stripped. %%files lists real permissions chmod 755 $RPM_BUILD_ROOT%{_sbindir}/suexec # rm -rf $RPM_BUILD_ROOT/var/asl/www # %trigger -- asl-httpd /sbin/service asl-httpd stop >/dev/null 2>&1 || : /sbin/chkconfig --del asl-httpd %pre if ! grep -q asl-web /etc/passwd ; then /usr/sbin/useradd -r -M -d /var/asl/www asl-web -s /sbin/nologin fi if ! grep -q tortix /etc/passwd ; then /usr/sbin/useradd -r -M -d /var/asl tortix -s /sbin/nologin fi %post # Register the httpd service /sbin/chkconfig --add tortixd /sbin/chkconfig tortixd on /sbin/service tortixd restart >/dev/null 2>&1 || #/sbin/chkconfig --add htcacheclean %preun if [ $1 = 0 ]; then /sbin/service tortixd stop > /dev/null 2>&1 /sbin/service tortixd-cacheclean stop > /dev/null 2>&1 /sbin/chkconfig --del tortixd /sbin/chkconfig --del tortixd-cacheclean fi %post -n tortixd-mod_ssl umask 077 if [ ! -f %{_sysconfdir}/httpd/conf/server.key ] ; then %{_bindir}/openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 1024 > %{_sysconfdir}/httpd/conf/server.key 2> /dev/null fi FQDN=`hostname` if [ "x${FQDN}" = "x" ]; then FQDN=localhost.localdomain fi if [ ! -f %{_sysconfdir}/httpd/conf/server.crt ] ; then cat << EOF | %{_bindir}/openssl req -new -key %{_sysconfdir}/httpd/conf/server.key -x509 -days 365 -out %{_sysconfdir}/httpd/conf/server.crt 2>/dev/null -- SomeState SomeCity SomeOrganization SomeOrganizationalUnit ${FQDN} root@${FQDN} EOF fi %check # Check the built modules are all PIC if readelf -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.so | grep TEXTREL; then : modules contain non-relocatable code exit 1 fi %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc ABOUT_APACHE README CHANGES LICENSE NOTICE %dir %{_sysconfdir}/httpd %{_sysconfdir}/httpd/modules %{_sysconfdir}/httpd/logs %{_sysconfdir}/httpd/run %dir %{_sysconfdir}/httpd/conf %dir %{_sysconfdir}/httpd/conf.d %config(noreplace) %{_sysconfdir}/httpd/conf/tortixd.conf %config(noreplace) /etc/sysconfig/tortixd %config(noreplace) %{_sysconfdir}/httpd/conf/magic %config(noreplace) %{_sysconfdir}/httpd/conf/mime.types %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-autoindex.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-dav.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-default.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-info.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-languages.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-manual.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-mpm.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-multilang-errordoc.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-userdir.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-vhosts.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/proxy-html.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-autoindex.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-dav.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-default.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-info.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-languages.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-mpm.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-multilang-errordoc.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-userdir.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-vhosts.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/proxy-html.conf %config(noreplace) %{_sysconfdir}/httpd/conf/original/httpd.conf /var/asl/etc/httpd/conf/original/extra/httpd-manual.conf #%config %{_sysconfdir}/logrotate.d/httpd # ART %config /etc/rc.d/init.d/tortixd %config /etc/rc.d/init.d/tortixd-cacheclean %{_sbindir}/fcgistarter %{_sbindir}/htcacheclean %{_sbindir}/tortixd %{_sbindir}/apachectl %attr(4510,root,%{suexec_caller}) %{_sbindir}/suexec %dir %{_libdir}/httpd %dir %{_libdir}/httpd/modules %{_libdir}/httpd/modules/mod_access_compat.so %{_libdir}/httpd/modules/mod_actions.so %{_libdir}/httpd/modules/mod_alias.so %{_libdir}/httpd/modules/mod_allowmethods.so %{_libdir}/httpd/modules/mod_asis.so %{_libdir}/httpd/modules/mod_auth_basic.so %{_libdir}/httpd/modules/mod_auth_digest.so %{_libdir}/httpd/modules/mod_auth_form.so %{_libdir}/httpd/modules/mod_authn_anon.so %{_libdir}/httpd/modules/mod_authn_core.so %{_libdir}/httpd/modules/mod_authn_dbd.so %{_libdir}/httpd/modules/mod_authn_dbm.so %{_libdir}/httpd/modules/mod_authn_file.so %{_libdir}/httpd/modules/mod_authn_socache.so %{_libdir}/httpd/modules/mod_authz_core.so %{_libdir}/httpd/modules/mod_authz_dbd.so %{_libdir}/httpd/modules/mod_authz_dbm.so %{_libdir}/httpd/modules/mod_authz_groupfile.so %{_libdir}/httpd/modules/mod_authz_host.so %{_libdir}/httpd/modules/mod_authz_owner.so %{_libdir}/httpd/modules/mod_authz_user.so %{_libdir}/httpd/modules/mod_autoindex.so %{_libdir}/httpd/modules/mod_buffer.so %{_libdir}/httpd/modules/mod_cache_disk.so %{_libdir}/httpd/modules/mod_cache.so %{_libdir}/httpd/modules/mod_cgi.so %{_libdir}/httpd/modules/mod_cgid.so %{_libdir}/httpd/modules/mod_charset_lite.so %{_libdir}/httpd/modules/mod_data.so %{_libdir}/httpd/modules/mod_dav_fs.so %{_libdir}/httpd/modules/mod_dav_lock.so %{_libdir}/httpd/modules/mod_dav.so %{_libdir}/httpd/modules/mod_dbd.so %{_libdir}/httpd/modules/mod_deflate.so %{_libdir}/httpd/modules/mod_dialup.so %{_libdir}/httpd/modules/mod_dir.so %{_libdir}/httpd/modules/mod_dumpio.so %{_libdir}/httpd/modules/mod_echo.so %{_libdir}/httpd/modules/mod_env.so %{_libdir}/httpd/modules/mod_expires.so %{_libdir}/httpd/modules/mod_ext_filter.so %{_libdir}/httpd/modules/mod_file_cache.so %{_libdir}/httpd/modules/mod_filter.so %{_libdir}/httpd/modules/mod_headers.so %{_libdir}/httpd/modules/mod_heartbeat.so %{_libdir}/httpd/modules/mod_heartmonitor.so %{_libdir}/httpd/modules/mod_include.so %{_libdir}/httpd/modules/mod_info.so %{_libdir}/httpd/modules/mod_lbmethod_bybusyness.so %{_libdir}/httpd/modules/mod_lbmethod_byrequests.so %{_libdir}/httpd/modules/mod_lbmethod_bytraffic.so %{_libdir}/httpd/modules/mod_lbmethod_heartbeat.so %{_libdir}/httpd/modules/mod_log_config.so %{_libdir}/httpd/modules/mod_log_debug.so %{_libdir}/httpd/modules/mod_log_forensic.so %{_libdir}/httpd/modules/mod_logio.so %{_libdir}/httpd/modules/mod_mime_magic.so %{_libdir}/httpd/modules/mod_mime.so %{_libdir}/httpd/modules/mod_mpm_event.so %{_libdir}/httpd/modules/mod_mpm_prefork.so %{_libdir}/httpd/modules/mod_mpm_worker.so %{_libdir}/httpd/modules/mod_negotiation.so %{_libdir}/httpd/modules/mod_proxy_ajp.so %{_libdir}/httpd/modules/mod_proxy_balancer.so %{_libdir}/httpd/modules/mod_proxy_connect.so %{_libdir}/httpd/modules/mod_proxy_express.so %{_libdir}/httpd/modules/mod_proxy_fcgi.so %{_libdir}/httpd/modules/mod_proxy_fdpass.so %{_libdir}/httpd/modules/mod_proxy_ftp.so %{_libdir}/httpd/modules/mod_proxy_http.so %{_libdir}/httpd/modules/mod_proxy_scgi.so %{_libdir}/httpd/modules/mod_proxy.so %{_libdir}/httpd/modules/mod_ratelimit.so %{_libdir}/httpd/modules/mod_reflector.so %{_libdir}/httpd/modules/mod_remoteip.so %{_libdir}/httpd/modules/mod_reqtimeout.so %{_libdir}/httpd/modules/mod_request.so %{_libdir}/httpd/modules/mod_rewrite.so %{_libdir}/httpd/modules/mod_sed.so # tmp #%{_libdir}/httpd/modules/mod_session_crypto.so %{_libdir}/httpd/modules/mod_setenvif.so %{_libdir}/httpd/modules/mod_slotmem_plain.so %{_libdir}/httpd/modules/mod_slotmem_shm.so %{_libdir}/httpd/modules/mod_socache_dbm.so %{_libdir}/httpd/modules/mod_socache_memcache.so %{_libdir}/httpd/modules/mod_socache_shmcb.so %{_libdir}/httpd/modules/mod_speling.so %{_libdir}/httpd/modules/mod_status.so %{_libdir}/httpd/modules/mod_substitute.so %{_libdir}/httpd/modules/mod_suexec.so %{_libdir}/httpd/modules/mod_unique_id.so %{_libdir}/httpd/modules/mod_unixd.so %{_libdir}/httpd/modules/mod_userdir.so %{_libdir}/httpd/modules/mod_usertrack.so %{_libdir}/httpd/modules/mod_version.so %{_libdir}/httpd/modules/mod_vhost_alias.so %{_libdir}/httpd/modules/mod_watchdog.so %attr(0700,root,root) %dir %{_localstatedir}/log/httpd %attr(0700,apache,apache) %dir %{_localstatedir}/lib/dav %attr(0700,apache,apache) %dir %{_localstatedir}/cache/httpd/cache-root %{_mandir}/man1/* %{_mandir}/man8/suexec* %{_mandir}/man8/apachectl.8* %{_mandir}/man8/httpd.8* %{_mandir}/man8/htcacheclean.8* %{_mandir}/man8/fcgistarter.8* %files tools %defattr(-,root,root) %{_bindir}/ab %{_bindir}/htdbm %{_bindir}/htdigest %{_bindir}/htpasswd %{_bindir}/logresolve %{_bindir}/httxt2dbm %{_sbindir}/rotatelogs %{_mandir}/man1/htdbm.1* %{_mandir}/man1/htdigest.1* %{_mandir}/man1/htpasswd.1* %{_mandir}/man1/httxt2dbm.1* %{_mandir}/man1/ab.1* %{_mandir}/man1/logresolve.1* %{_mandir}/man8/rotatelogs.8* %doc LICENSE NOTICE %files -n tortixd-mod_authnz_ldap %defattr(-,root,root) %{_libdir}/httpd/modules/mod_ldap.so %{_libdir}/httpd/modules/mod_authnz_ldap.so %files -n tortixd-mod_lua %defattr(-,root,root) %{_libdir}/httpd/modules/mod_lua.so %files -n tortixd-mod_proxy_html %defattr(-,root,root) %{_libdir}/httpd/modules/mod_proxy_html.so %{_libdir}/httpd/modules/mod_xml2enc.so %files -n tortixd-mod_ssl %defattr(-,root,root) %{_libdir}/httpd/modules/mod_ssl.so %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-ssl.conf %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-ssl.conf %{_sysconfdir}/httpd/conf.d/ssl.conf %attr(0700,apache,root) %dir %{_localstatedir}/cache/mod_ssl %attr(0600,apache,root) %ghost %{_localstatedir}/cache/mod_ssl/scache.dir %attr(0600,apache,root) %ghost %{_localstatedir}/cache/mod_ssl/scache.pag %attr(0600,apache,root) %ghost %{_localstatedir}/cache/mod_ssl/scache.sem %files devel %defattr(-,root,root) %{_includedir}/httpd %{_bindir}/apxs %{_sbindir}/checkgid %{_bindir}/dbmmanage %{_sbindir}/envvars* %{_mandir}/man1/dbmmanage.1* %{_mandir}/man1/apxs.1* %dir %{_libdir}/httpd/build %{_libdir}/httpd/build/*.mk %{_libdir}/httpd/build/instdso.sh %{_libdir}/httpd/build/config.nice %{_libdir}/httpd/build/mkdir.sh %changelog * Tue Jun 12 2012 Scott R. Shinn - 2.4.2-1 - Update to 2.4.2 * Mon Feb 21 2012 Scott R. Shinn - 2.4.1-1 - Intital build for httpd 2.4.1