# - drop mod_case_filter* or find summary and description for them
# - build modules only once (not with each mpm)
# - FYI: http://wiki.apache.org/httpd/InternalDummyConnection
+
+
+# 2.4 TODO
+#
+# mod_authn/z_default changed into mod_authn/z_core - trigger existing configs?
+
+
# Conditional build:
%bcond_without ssl # build without SSL support
%bcond_without ldap # build without LDAP support
%bcond_without peruser # peruser MPM
-%bcond_without event # event MPM
%bcond_with itk # ITK MPM
%bcond_with distcache # distcache support
%bcond_with bucketeer # debug one
Patch2: %{name}-suexec.patch
Patch3: %{name}-branding.patch
Patch4: %{name}-apr.patch
-# what about this? it isn't applied...
-Patch6: httpd-2.0.40-xfsz.patch
-Patch7: %{name}-syslibs.patch
-Patch8: httpd-2.0.45-encode.patch
-Patch9: %{name}-paths.patch
-Patch10: httpd-2.0.46-dav401dest.patch
-Patch12: httpd-2.0.46-sslmutex.patch
-Patch14: httpd-2.0.48-corelimit.patch
-Patch15: httpd-2.0.48-debuglog.patch
-Patch18: %{name}-v6only-ENOPROTOOPT.patch
-Patch19: %{name}-conffile-path.patch
-Patch23: %{name}-suexec_fcgi.patch
-Patch24: %{name}-bug-48094.patch
-# http://scripts.mit.edu/trac/browser/trunk/server/common/patches/httpd-2.2.x-mod_ssl-sessioncaching.patch?rev=1348
-Patch25: httpd-2.2.x-mod_ssl-sessioncaching.patch
-Patch26: apache-mod_vhost_alias_docroot.patch
+Patch5: %{name}-syslibs.patch
+Patch6: httpd-2.0.45-encode.patch
+Patch7: %{name}-paths.patch
+Patch8: httpd-2.0.46-dav401dest.patch
+Patch9: httpd-2.0.48-corelimit.patch
+Patch10: httpd-2.0.48-debuglog.patch
+Patch11: %{name}-v6only-ENOPROTOOPT.patch
+Patch12: %{name}-conffile-path.patch
+Patch13: %{name}-suexec_fcgi.patch
+Patch14: apache-mod_vhost_alias_docroot.patch
# http://mpm-itk.sesse.net/
-Patch28: apache-mpm-itk.patch
-Patch29: libtool-tag.patch
+Patch15: apache-mpm-itk.patch
+Patch16: libtool-tag.patch
URL: http://httpd.apache.org/
BuildRequires: apr-devel >= %{apr_ver}
BuildRequires: apr-util-devel >= 1:1.3.10-2
Requires: apr >= %{apr_ver}
Requires: psmisc >= 20.1
Requires: rc-scripts >= 0.4.1.23
+Requires: %{name}-mod_unixd = %{version}-%{release}
Provides: apache(modules-api) = %{_apache_modules_api}
Provides: group(http)
Provides: user(http)
jednak zbyt obszernie przetestowany, więc jest oznaczony jako
eksperymentalny.
-%package mod_authn_alias
-Summary: Apache module that provides the ability to create extended authentication
-Summary(pl.UTF-8): Moduł Apache'a umożliwiający tworzenie rozszerzonego uwierzytelniania
-Group: Networking/Daemons/HTTP
-URL: http://httpd.apache.org/docs/2.2/mod/mod_authn_alias.html
-Requires: %{name}-base = %{version}-%{release}
-Provides: apache(mod_authn_alias) = %{version}-%{release}
-
-%description mod_authn_alias
-This module allows extended authentication providers to be created
-within the configuration file and assigned an alias name.
-
-%description mod_authn_alias -l pl.UTF-8
-Ten moduł umożliwia tworzenie rozszerzonych sposobów uwierzytelniania
-w pliku konfiguracyjnym i nadawanie im aliasów.
-
%package mod_authn_anon
Summary: Apache module that allows "anonymous" user access to authenticated areas
Summary(pl.UTF-8): Moduł Apache'a umożliwiający dostęp anonimowych użytkowników do stref uwierzytelnianych
mod_auth_digest i mod_auth_basic uwierzytelnianie użytkowników poprzez
wyszukiwanie w tabelach haseł DBM.
-%package mod_authn_default
+%package mod_authn_core
Summary: Apache module that rejects any credentials supplied by the user
Summary(pl.UTF-8): Moduł Apache'a odrzucający wszystkie dane podane przez użytkownika
Group: Networking/Daemons/HTTP
-URL: http://httpd.apache.org/docs/2.2/mod/mod_authn_default.html
+URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_core.html
Requires: %{name}-base = %{version}-%{release}
-Provides: apache(mod_authn_default) = %{version}-%{release}
+Provides: apache(mod_authn_core) = %{version}-%{release}
+Obsoletes: apache-mod_authn_default < 2.4
-%description mod_authn_default
+%description mod_authn_core
This module is designed to be the fallback module, if you don't have
configured an authentication module like mod_auth_basic. It simply
rejects any credentials supplied by the user.
-%description mod_authn_default -l pl.UTF-8
+%description mod_authn_core -l pl.UTF-8
Ten moduł został pomyślany jako domyślny moduł uwierzytelniający,
jeśli nie skonfigurowano modułu uwierzytelniającego takiego jak
mod_auth_basic. Moduł ten po prostu odrzuca wszelkie dane przekazane
WWW dla uwierzytelnionych użytkowników na podstawie ich przynależności
do grupy zapisywanej w pliku DBM.
-%package mod_authz_default
+%package mod_authz_core
Summary: Apache module that rejects any authorization request
Summary(pl.UTF-8): Moduł Apache'a odrzucający wszystkie żądania autoryzacji
Group: Networking/Daemons/HTTP
-URL: http://httpd.apache.org/docs/2.2/mod/mod_authz_default.html
+URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html
Requires: %{name}-base = %{version}-%{release}
-Provides: apache(mod_authz_default) = %{version}-%{release}
+Provides: apache(mod_authz_core) = %{version}-%{release}
+Obsoletes: apache-mod_authz_default < 2.4
-%description mod_authz_default
+%description mod_authz_core
This module is designed to be the fallback module, if you don't have
configured an authorization module like mod_authz_user or
mod_authz_groupfile. It simply rejects any authorization request.
-%description mod_authz_default -l pl.UTF-8
+%description mod_authz_core -l pl.UTF-8
Ten moduł został pomyślany jako domyślny moduł autoryzujący jeśli nie
skonfigurowano modułu autoryzującego takiego jak mod_authz_user czy
mod_authz_groupfile. Moduł ten po prostu odrzuca wszelkie żądania
Moduł umożliwia na dynamiczne konfigurowanie masowej ilości serwerów
wirtualnych.
+%package mod_access_compat
+Summary: Group authorizations based on host (name or IP address)
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_access_compat) = %{version}-%{release}
+
+%description mod_access_compat
+The directives provided by mod_access_compat are used in <Directory>,
+<Files>, and <Location> sections as well as .htaccess files to control
+access to particular parts of the server. Access can be controlled
+based on the client hostname, IP address, or other characteristics of
+the client request, as captured in environment variables. The Allow
+and Deny directives are used to specify which clients are or are not
+allowed access to the server, while the Order directive sets the
+default access state, and configures how the Allow and Deny directives
+interact with each other.
+
+%package mod_allowmethods
+Summary: Easily restrict what HTTP methods can be used on the server
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_allowmethods.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_allowmethods) = %{version}-%{release}
+
+%description mod_allowmethods
+This module makes it easy to restrict what HTTP methods can used on an
+server.
+
+%package mod_auth_form
+Summary: Form authentication
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_auth_form.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_session = %{version}-%{release}
+Provides: apache(mod_auth_form) = %{version}-%{release}
+
+%description mod_auth_form
+This module allows the use of an HTML login form to restrict access by
+looking up users in the given providers. HTML forms require
+significantly more configuration than the alternatives,
+however an HTML login form can provide a much friendlier experience
+for end users.
+
+%package mod_authn_socache
+Summary: Manages a cache of authentication credentials to relieve the load on backends
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_socache.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_authn_socache) = %{version}-%{release}
+
+%description mod_authn_socache
+Maintains a cache of authentication credentials, so that a new backend
+lookup is not required for every authenticated request.
+
+%package mod_authz_dbd
+Summary: Group Authorization and Login using SQL
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_dbd.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_authz_dbd) = %{version}-%{release}
+
+%description mod_authz_dbd
+This module provides authorization capabilities so that authenticated
+users can be allowed or denied access to portions of the web site by
+group membership.
+
+%package mod_buffer
+Summary: Support for request buffering
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_buffer.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_buffer) = %{version}-%{release}
+
+%description mod_buffer
+This module provides the ability to buffer the input and output filter
+stacks.
+
+%package mod_cache_disk
+Summary: Disk based storage module for the HTTP caching filter
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_cache_disk.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_cache = %{version}-%{release}
+Provides: apache(mod_cache_disk) = %{version}-%{release}
+
+%description mod_cache_disk
+Implements a disk based storage manager for mod_cache.
+
+%package mod_data
+Summary: Convert response body into an RFC2397 data URL
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_data.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_data) = %{version}-%{release}
+
+%description mod_data
+This module provides the ability to convert a response into an RFC2397
+data URL.
+
+%package mod_dialup
+Summary: Send static content at a bandwidth rate limit, defined by the various old modem standards
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_dialup.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_dialup) = %{version}-%{release}
+
+%description mod_dialup
+It is a module that sends static content at a bandwidth rate limit,
+defined by the various old modem standards.
+
+%package mod_heartbeat
+Summary: Sends messages with server status to frontend proxy
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_heartbeat.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_status = %{version}-%{release}
+Requires: %{name}-mod_watchdog = %{version}-%{release}
+Provides: apache(mod_heartbeat) = %{version}-%{release}
+
+%description mod_heartbeat
+mod_heartbeat sends multicast messages to a mod_heartmonitor listener
+that advertises the servers current connection count. Usually,
+mod_heartmonitor will be running on a proxy server with
+mod_lbmethod_heartbeat loaded, which allows ProxyPass to use the
+"heartbeat" lbmethod inside of ProxyPass.
+
+mod_heartbeat itself is loaded on the origin server(s) that serve
+requests through the proxy server(s).
+
+%package mod_heartmonitor
+Summary: Centralized monitor for mod_heartbeat origin servers
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_heartmonitor.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_status = %{version}-%{release}
+Requires: %{name}-mod_watchdog = %{version}-%{release}
+Provides: apache(mod_heartmonitor) = %{version}-%{release}
+
+%description mod_heartmonitor
+mod_heartmonitor listens for server status messages generated by
+mod_heartbeat enabled origin servers and makes their status available
+to mod_lbmethod_heartbeat. This allows ProxyPass to use the
+"heartbeat" lbmethod inside of ProxyPass.
+
+This module uses the services of mod_slotmem_shm when available
+instead of flat-file storage. No configuration is required to use
+mod_slotmem_shm.
+
+%package mod_lbmethod
+Summary: Provides bybusiness, byrequests, bytraffic and heartbeat load balancing schedulers
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_bybusiness.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_byrequests.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_bytraffic.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_heartbeat.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_proxy = %{version}-%{release}
+Provides: apache(mod_lbmethod) = %{version}-%{release}
+Provides: apache(mod_lbmethod_bybusiness) = %{version}-%{release}
+Provides: apache(mod_lbmethod_byrequests) = %{version}-%{release}
+Provides: apache(mod_lbmethod_bytraffic) = %{version}-%{release}
+Provides: apache(mod_lbmethod_heartbeat) = %{version}-%{release}
+
+%description mod_lbmethod
+Provides bybusiness, byrequests, bytraffic and heartbeat load
+balancing schedulers.
+
+%package mod_log_debug
+Summary: Additional configurable debug logging
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_log_debug.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_log_debug) = %{version}-%{release}
+
+%description mod_log_debug
+Additional configurable debug logging.
+
+%package mod_ratelimit
+Summary: Bandwidth Rate Limiting for Clients
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_ratelimit.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_ratelimit) = %{version}-%{release}
+
+%description mod_ratelimit
+Provides a filter named RATE_LIMIT to limit client bandwidth.
+The connection speed to be simulated is specified, in KiB/s,
+using the environment variable rate-limit.
+
+%package mod_reflector
+Summary: Reflect a request body as a response via the output filter stack
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_reflector.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_reflector) = %{version}-%{release}
+
+%description mod_reflector
+This module allows request bodies to be reflected back to the client,
+in the process passing the request through the output filter stack.
+A suitably configured chain of filters can be used to transform the
+request into a response. This module can be used to turn an output
+filter into an HTTP service.
+
+%package mod_remoteip
+Summary: Replaces the original client IP address for the connection
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_remoteip.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_remoteip) = %{version}-%{release}
+
+%description mod_remoteip
+Replaces the original client IP address for the connection with the
+useragent IP address list presented by a proxies or a load balancer
+via the request headers.
+
+%package mod_request
+Summary: Filters to handle and make available HTTP request bodies
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_request.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_request) = %{version}-%{release}
+
+%description mod_request
+Filters to handle and make available HTTP request bodies.
+
+%package mod_sed
+Summary: Filter Input (request) and Output (response) content using sed syntax
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_sed.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_sed) = %{version}-%{release}
+
+%description mod_sed
+Filter Input (request) and Output (response) content using sed syntax.
+
+%package mod_session
+Summary: Session support
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_session.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_session) = %{version}-%{release}
+Provides: apache(mod_session_cookie) = %{version}-%{release}
+Provides: apache(mod_session_dbd) = %{version}-%{release}
+
+%description mod_session
+Session support.
+
+%package mod_slotmem
+Summary: Slot-based shared memory provider
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_slotmem_plain.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_slotmem_shm.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_slotmem) = %{version}-%{release}
+Provides: apache(mod_slotmem_plain) = %{version}-%{release}
+Provides: apache(mod_slotmem_shm) = %{version}-%{release}
+
+%description mod_slotmem
+Slot-based shared memory provider.
+
+%package mod_socache
+Summary: Shared object cache provider
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_dbm.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_memcache.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_shmcb.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_socache) = %{version}-%{release}
+Provides: apache(mod_socache_dbm) = %{version}-%{release}
+Provides: apache(mod_socache_memcache) = %{version}-%{release}
+Provides: apache(mod_socache_shmcb) = %{version}-%{release}
+
+%description mod_socache
+Shared object cache provider.
+
+%package mod_unixd
+Summary: Basic (required) security for Unix-family platforms
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_unixd.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_unixd) = %{version}-%{release}
+
+%description mod_unixd
+Basic (required) security for Unix-family platforms.
+
+%package mod_watchdog
+Summary: Provides infrastructure for other modules to periodically run tasks
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_watchdog.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_watchdog) = %{version}-%{release}
+
+%description mod_watchdog
+Provides infrastructure for other modules to periodically run tasks.
+
+%package mod_xml2enc
+Summary: Enhanced charset/internationalisation support for libxml2-based filter modules
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_xml2enc.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_xml2enc) = %{version}-%{release}
+
+%description mod_xml2enc
+Enhanced charset/internationalisation support for libxml2-based filter
+modules.
+
%package -n htpasswd-%{name}
Summary: Apache 2 htpasswd utility: manage user files for basic authentication
Summary(pl.UTF-8): Narzędzie htpasswd z Apache'a 2 do zarządzania plikami uwierzytelnienia basic
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
-#%%patch12 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
%patch14 -p1
-%patch15 -p1
-%patch18 -p1
-%patch19 -p1
-%patch23 -p1
-%patch24 -p1
-# seems already applied
-#%%patch25 -p1
-%patch26 -p1
-%{?with_itk:%patch28 -p1}
-%patch29 -p1
-
-# using system apr, apr-util and pcre
-#%%{__rm} -r srclib/{apr,apr-util,pcre}
+%{?with_itk:%patch15 -p1}
+%patch16 -p1
# sanity check
MODULES_API=`awk '/#define MODULE_MAGIC_NUMBER_MAJOR/ {print $3}' include/ap_mmn.h`
cd ../..
CPPFLAGS="-DMAX_SERVER_LIMIT=200000 -DBIG_SECURITY_HOLE=1"
-for mpm in prefork worker %{?with_event:event} %{?with_itk:itk}; do
-install -d "buildmpm-${mpm}"; cd "buildmpm-${mpm}"
-../%configure \
+%configure \
--enable-layout=TLD \
--disable-v4-mapped \
- $( [ "${mpm}" = "prefork" -o "${mpm}" = "worker" -o "${mpm}" = "event" ] && echo "--enable-exception-hook" ) \
+ --enable-exception-hook \
--enable-modules=all \
--enable-mods-shared=all \
--enable-auth-anon \
--enable-speling \
--enable-rewrite \
--enable-so \
- --with-program-name=httpd.${mpm} \
- --with-mpm=${mpm} \
-%ifarch %{ix86}
-%ifnarch i386 i486
- $( [ "${mpm}" = "leader" ] && echo "--enable-nonportable-atomics=yes" ) \
-%endif
-%endif
+ --with-program-name=httpd \
+ --with-mpm=prefork \
+ --enable-mpms-shared=all \
+ --enable-nonportable-atomics=yes \
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-caller=http \
--with-suexec-docroot=%{_datadir} \
--with-pcre
%{__make}
-./httpd.${mpm} -l | grep -v "${mpm}" > modules-inside
-cd ..
-
-done
-
-for mpm in worker %{?with_event:event} %{?with_itk:itk}; do
- if ! cmp -s buildmpm-prefork/modules-inside buildmpm-${mpm}/modules-inside; then
- echo "List of compiled modules is different between prefork-MPM and ${mpm}-MPM!"
- echo "Build failed."
- exit 1
- fi
-done
%install
rm -rf $RPM_BUILD_ROOT
$RPM_BUILD_ROOT/usr/lib/tmpfiles.d
# prefork is default one
-%{__make} -C buildmpm-prefork install \
+%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-# install other mpm-s
-for mpm in worker %{?with_event:event} %{?with_itk:itk}; do
- install buildmpm-${mpm}/httpd.${mpm} $RPM_BUILD_ROOT%{_sbindir}/httpd.${mpm}
-done
-
-ln -s httpd.prefork $RPM_BUILD_ROOT%{_sbindir}/httpd
ln -s %{_libexecdir} $RPM_BUILD_ROOT%{_sysconfdir}/modules
ln -s %{_localstatedir}/run/httpd $RPM_BUILD_ROOT%{_sysconfdir}/run
ln -s %{_var}/log/httpd $RPM_BUILD_ROOT%{_sysconfdir}/logs
-ln -s conf.d $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
+rm $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/httpd
cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/httpd
install %{SOURCE30} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
-echo "LoadModule alias_module modules/mod_alias.so" > $CFG/00_mod_alias.conf
+echo "LoadModule alias_module modules/mod_alias.so" > $CFG/00_mod_alias.conf
echo "LoadModule authn_file_module modules/mod_authn_file.so" > $CFG/00_mod_authn_file.conf
echo "LoadModule authn_dbm_module modules/mod_authn_dbm.so" > $CFG/00_mod_authn_dbm.conf
echo "LoadModule authn_anon_module modules/mod_authn_anon.so" > $CFG/00_mod_authn_anon.conf
echo "LoadModule authn_dbd_module modules/mod_authn_dbd.so" > $CFG/00_mod_authn_dbd.conf
-echo "LoadModule authn_default_module modules/mod_authn_default.so" > $CFG/00_mod_authn_default.conf
-echo "LoadModule authn_alias_module modules/mod_authn_alias.so" > $CFG/00_mod_authn_alias.conf
+echo "LoadModule authn_core_module modules/mod_authn_core.so" > $CFG/00_mod_authn_core.conf
echo "LoadModule authz_groupfile_module modules/mod_authz_groupfile.so" > $CFG/00_mod_authz_groupfile.conf
echo "LoadModule authz_user_module modules/mod_authz_user.so" > $CFG/00_mod_authz_user.conf
echo "LoadModule authz_dbm_module modules/mod_authz_dbm.so" > $CFG/00_mod_authz_dbm.conf
echo "LoadModule authz_owner_module modules/mod_authz_owner.so" > $CFG/00_mod_authz_owner.conf
echo "LoadModule authnz_ldap_module modules/mod_authnz_ldap.so" > $CFG/00_mod_authnz_ldap.conf
-echo "LoadModule authz_default_module modules/mod_authz_default.so" > $CFG/00_mod_authz_default.conf
+echo "LoadModule authz_core_module modules/mod_authz_core.so" > $CFG/00_mod_authz_core.conf
echo "LoadModule auth_basic_module modules/mod_auth_basic.so" > $CFG/00_mod_auth_basic.conf
echo "LoadModule dbd_module modules/mod_dbd.so" > $CFG/00_mod_dbd.conf
%if %{with bucketeer}
echo "LoadModule unique_id_module modules/mod_unique_id.so" > $CFG/00_mod_unique_id.conf
echo "LoadModule substitute_module modules/mod_substitute.so" > $CFG/00_mod_substitute.conf
echo "LoadModule reqtimeout_module modules/mod_reqtimeout.so" >> $CFG/00_mod_reqtimeout.conf
+echo "LoadModule access_compat_module modules/mod_access_compat.so" > $CFG/00_mod_access_compat.conf
+echo "LoadModule allowmethods_module modules/mod_allowmethods.so" > $CFG/00_mod_allowmethods.conf
+echo "LoadModule auth_form_module modules/mod_auth_form.so" > $CFG/00_mod_auth_form.conf
+echo "LoadModule authn_socache_module modules/mod_authn_socache.so" > $CFG/00_mod_authn_socache.conf
+echo "LoadModule authz_dbd_module modules/mod_authz_dbd.so" > $CFG/00_mod_authz_dbd.conf
+echo "LoadModule buffer_module modules/mod_buffer.so" > $CFG/00_mod_buffer.conf
+echo "LoadModule cache_disk_module modules/mod_cache_disk.so" > $CFG/00_mod_cache_disk.conf
+echo "LoadModule data_module modules/mod_data.so" > $CFG/00_mod_data.conf
+echo "LoadModule dialup_module modules/mod_dialup.so" > $CFG/00_mod_dialup.conf
+echo "LoadModule heartbeat_module modules/mod_heartbeat.so" > $CFG/00_mod_heartbeat.conf
+echo "LoadModule heartmonitor_module modules/mod_heartmonitor.so" > $CFG/00_mod_heartmonitor.conf
+echo "#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so" > $CFG/00_mod_lbmethod.conf
+echo "#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so" >> $CFG/00_mod_lbmethod.conf
+echo "#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so" >> $CFG/00_mod_lbmethod.conf
+echo "#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so" >> $CFG/00_mod_lbmethod.conf
+echo "LoadModule log_debug_module modules/mod_log_debug.so" > $CFG/00_mod_log_debug.conf
+echo "LoadModule ratelimit_module modules/mod_ratelimit.so" > $CFG/00_mod_ratelimit.conf
+echo "LoadModule reflector_module modules/mod_reflector.so" > $CFG/00_mod_reflector.conf
+echo "LoadModule remoteip_module modules/mod_remoteip.so" > $CFG/00_mod_remoteip.conf
+echo "LoadModule request_module modules/mod_request.so" > $CFG/00_mod_request.conf
+echo "LoadModule sed_module modules/mod_sed.so" > $CFG/00_mod_sed.conf
+echo "LoadModule session_module modules/mod_session.so" > $CFG/00_mod_session.conf
+echo "#LoadModule session_cookie_module modules/mod_sessioni_cookie.so" >> $CFG/00_mod_session.conf
+echo "#LoadModule session_dbd_module modules/mod_session_dbd.so" >> $CFG/00_mod_session.conf
+echo "LoadModule slotmem_plain_module modules/mod_slotmem_plain.so" > $CFG/00_mod_slotmem.conf
+echo "#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so" >> $CFG/00_mod_slotmem.conf
+echo "#LoadModule socache_dbm_module modules/mod_socache_dbm.so" > $CFG/00_mod_socache.conf
+echo "#LoadModule socache_memcache_module modules/mod_socache_memcache.so" >> $CFG/00_mod_socache.conf
+echo "#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so" >> $CFG/00_mod_socache.conf
+echo "LoadModule unixd_module modules/mod_unixd.so" > $CFG/00_mod_unixd.conf
+echo "LoadModule watchdog_module modules/mod_watchdog.so" > $CFG/00_mod_watchdog.conf
+echo "LoadModule xml2enc_module modules/mod_xml2enc.so" > $CFG/00_mod_xml2enc.conf
# anything in style dir not ending with .css is trash
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/manual/style/{lang,latex,xsl}
' >> "$cur/manual.files"
cd $cur
-# htpasswd goes to %{_bindir}
-mv $RPM_BUILD_ROOT%{_sbindir}/htpasswd $RPM_BUILD_ROOT%{_bindir}
-ln -sf %{_bindir}/htpasswd $RPM_BUILD_ROOT%{_sbindir}
-
# cgi_test: create config file with ScriptAlias
cat << 'EOF' > $CFG/09_cgi_test.conf
ScriptAlias /cgi-bin/printenv %{_cgibindir}/printenv
%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/build/config.nice
%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.exp
%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/mime.types
-%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.prefork.conf
%{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/{extra,original}
%clean
install -d /etc/httpd
ln -s conf.d /etc/httpd/httpd.conf
fi
+if [ -f /etc/sysconfig/httpd ]; then
+ MPM=$(grep HTTPD_MPM /etc/sysconfig/httpd |sed 's,HTTPD_MPM=,,;s,",,g')
+ if [ -n $MPM ]; then
+ echo "LoadModule mpm_${MPM}_module modules/mod_mpm_${MPM}.so" > /etc/httpd/conf.d/10_mpm.conf.rpmnew
+ cat /etc/httpd/conf.d/10_mpm.conf >> /etc/httpd/conf.d/10_mpm.conf.rpmnew
+ mv /etc/httpd/conf.d/10_mpm.conf.rpmnew /etc/httpd/conf.d/10_mpm.conf
+ fi
+fi
+
exit 0
%post base
EOF
+%triggerpostun base -- %{name} < 2.4.0
+%banner %{name}-2.4.1 << EOF
+WARNING!!!
+Since apache-2.4 mod_authn_alias has been obsoleted.
+If you use access control (Deny,Allow) install mod_access_compat by doing:
+poldek -ivh %{name}-mod_access_compat
+
+In apache-2.4 mod_authn_default and mod_authz_default have been obsoleted by
+mod_authn_core and authz_core. If you used these modules install the new ones by invoking:
+poldek -ivh %{name}-mod_authn_core
+and/or
+poldek -ivh %{name}-mod_authz_core
+
+For more information on how to upgrade from Apache 2.2 visit:
+http://httpd.apache.org/docs/2.4/upgrading.html
+EOF
+
+
%triggerpostun mod_ssl -- %{name}-mod_ssl < 1:2.2.0-3.1
cp -f /etc/httpd/conf.d/40_mod_ssl.conf{,.rpmsave}
sed -i -e '
%module_postun
%module_scripts mod_actions
-%module_scripts mod_alias
%module_scripts mod_asis
%module_scripts mod_auth_basic
%module_scripts mod_auth_dbm
%module_scripts mod_auth_digest
-%module_scripts mod_authn_alias
%module_scripts mod_authn_anon
%module_scripts mod_authn_dbd
%module_scripts mod_authn_dbm
-%module_scripts mod_authn_default
+%module_scripts mod_authn_core
%module_scripts mod_authn_file
%module_scripts mod_authnz_ldap
%module_scripts mod_authz_dbm
-%module_scripts mod_authz_default
+%module_scripts mod_authz_core
%module_scripts mod_authz_groupfile
%module_scripts mod_authz_host
%module_scripts mod_authz_owner
%module_scripts mod_version
%module_scripts mod_vhost_alias
%module_scripts suexec
+%module_scripts mod_access_compat
+%module_scripts mod_allowmethods
+%module_scripts mod_auth_form
+%module_scripts mod_authn_socache
+%module_scripts mod_authz_dbd
+%module_scripts mod_buffer
+%module_scripts mod_cache_disk
+%module_scripts mod_data
+%module_scripts mod_dialup
+%module_scripts mod_heartbeat
+%module_scripts mod_heartmonitor
+%module_scripts mod_lbmethod
+%module_scripts mod_log_debug
+%module_scripts mod_ratelimit
+%module_scripts mod_reflector
+%module_scripts mod_remoteip
+%module_scripts mod_request
+%module_scripts mod_sed
+%module_scripts mod_session
+%module_scripts mod_slotmem
+%module_scripts mod_socache
+%module_scripts mod_unixd
+%module_scripts mod_watchdog
+%module_scripts mod_xml2enc
%post cgi_test
if [ "$1" = "1" ]; then
%{_sysconfdir}/modules
%{_sysconfdir}/run
%{_sysconfdir}/logs
-%ghost %{_sysconfdir}/httpd.conf
%attr(750,root,root) %dir %{_sysconfdir}/conf.d
%attr(750,root,root) %dir %{_sysconfdir}/vhosts.d
%attr(750,root,root) %dir %{_sysconfdir}/webapps.d
%attr(640,root,root) %{_sysconfdir}/magic
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/httpd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/*
+# MPM modules
+%attr(755,root,root) %{_libexecdir}/mod_mpm_event.so
+%attr(755,root,root) %{_libexecdir}/mod_mpm_prefork.so
+%attr(755,root,root) %{_libexecdir}/mod_mpm_worker.so
%dir %{_libexecdir}
%attr(755,root,root) %{_sbindir}/checkgid
%attr(755,root,root) %{_sbindir}/httpd
-%attr(755,root,root) %{_sbindir}/httpd.*
%dir %attr(770,root,http) /var/run/httpd
%dir %attr(770,root,http) /var/cache/httpd
%files suexec
%defattr(644,root,root,755)
+%attr(4755,root,root) %{_sbindir}/fcgistarter
%attr(4755,root,root) %{_sbindir}/suexec
%attr(755,root,root) %{_sbindir}/suexec.fcgi
%attr(755,root,root) %{_libexecdir}/mod_suexec.so
%files tools
%defattr(644,root,root,755)
-%attr(755,root,root) %{_sbindir}/ab
+%attr(755,root,root) %{_bindir}/ab
%attr(755,root,root) %{_sbindir}/apachectl
-%attr(755,root,root) %{_sbindir}/htdigest
-%attr(755,root,root) %{_sbindir}/logresolve
+%attr(755,root,root) %{_bindir}/htdigest
+%attr(755,root,root) %{_bindir}/logresolve
%attr(755,root,root) %{_sbindir}/rotatelogs
%{_mandir}/man1/ab.1*
%{_mandir}/man8/apachectl.8*
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_sbindir}/apxs
+%attr(755,root,root) %{_bindir}/apxs
%attr(755,root,root) %{_sbindir}/envvars*
%dir %{_libexecdir}
%dir %{_libexecdir}/build
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_auth_digest.conf
%attr(755,root,root) %{_libexecdir}/mod_auth_digest.so
-%files mod_authn_alias
-%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authn_alias.conf
-%attr(755,root,root) %{_libexecdir}/mod_authn_alias.so
-
%files mod_authn_anon
%defattr(644,root,root,755)
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authn_anon.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authn_dbm.conf
%attr(755,root,root) %{_libexecdir}/mod_authn_dbm.so
-%files mod_authn_default
+%files mod_authn_core
%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authn_default.conf
-%attr(755,root,root) %{_libexecdir}/mod_authn_default.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authn_core.conf
+%attr(755,root,root) %{_libexecdir}/mod_authn_core.so
%files mod_authn_file
%defattr(644,root,root,755)
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authz_dbm.conf
%attr(755,root,root) %{_libexecdir}/mod_authz_dbm.so
-%files mod_authz_default
+%files mod_authz_core
%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authz_default.conf
-%attr(755,root,root) %{_libexecdir}/mod_authz_default.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authz_core.conf
+%attr(755,root,root) %{_libexecdir}/mod_authz_core.so
%files mod_authz_groupfile
%defattr(644,root,root,755)
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_cache.conf
%attr(755,root,root) %{_sbindir}/htcacheclean
%attr(755,root,root) %{_libexecdir}/mod_cache.so
-%attr(755,root,root) %{_libexecdir}/mod_disk_cache.so
-%attr(755,root,root) %{_libexecdir}/mod_mem_cache.so
+#%attr(755,root,root) %{_libexecdir}/mod_cache_disk.so
+#%attr(755,root,root) %{_libexecdir}/mod_mem_cache.so
%{_mandir}/man8/htcacheclean.8*
%files mod_case_filter
%files mod_rewrite
%defattr(644,root,root,755)
-%attr(755,root,root) %{_sbindir}/httxt2dbm
+%attr(755,root,root) %{_bindir}/httxt2dbm
%attr(755,root,root) %{_libexecdir}/mod_rewrite.so
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_rewrite.conf
%{_mandir}/man1/httxt2dbm.1*
%attr(755,root,root) %{_libexecdir}/mod_vhost_alias.so
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_vhost_alias.conf
+%files mod_access_compat
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_access_compat.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_access_compat.conf
+
+%files mod_allowmethods
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_allowmethods.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_allowmethods.conf
+
+%files mod_auth_form
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_auth_form.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_auth_form.conf
+
+%files mod_authn_socache
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_authn_socache.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authn_socache.conf
+
+%files mod_authz_dbd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_authz_dbd.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_authz_dbd.conf
+
+%files mod_buffer
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_buffer.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_buffer.conf
+
+%files mod_cache_disk
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_cache_disk.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_cache_disk.conf
+
+%files mod_data
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_data.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_data.conf
+
+%files mod_dialup
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_dialup.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_dialup.conf
+
+%files mod_heartbeat
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_heartbeat.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_heartbeat.conf
+
+%files mod_heartmonitor
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_heartmonitor.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_heartmonitor.conf
+
+%files mod_lbmethod
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_lbmethod_bybusyness.so
+%attr(755,root,root) %{_libexecdir}/mod_lbmethod_byrequests.so
+%attr(755,root,root) %{_libexecdir}/mod_lbmethod_bytraffic.so
+%attr(755,root,root) %{_libexecdir}/mod_lbmethod_heartbeat.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_lbmethod.conf
+
+%files mod_log_debug
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_log_debug.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_log_debug.conf
+
+%files mod_ratelimit
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_ratelimit.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_ratelimit.conf
+
+%files mod_reflector
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_reflector.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_reflector.conf
+
+%files mod_remoteip
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_remoteip.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_remoteip.conf
+
+%files mod_request
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_request.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_request.conf
+
+%files mod_sed
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_sed.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_sed.conf
+
+%files mod_session
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_session.so
+%attr(755,root,root) %{_libexecdir}/mod_session_cookie.so
+%attr(755,root,root) %{_libexecdir}/mod_session_dbd.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_session.conf
+
+%files mod_slotmem
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_slotmem_plain.so
+%attr(755,root,root) %{_libexecdir}/mod_slotmem_shm.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_slotmem.conf
+
+%files mod_socache
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_socache_dbm.so
+%attr(755,root,root) %{_libexecdir}/mod_socache_shmcb.so
+%attr(755,root,root) %{_libexecdir}/mod_socache_memcache.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache.conf
+
+%files mod_unixd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_unixd.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_unixd.conf
+
+%files mod_watchdog
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_watchdog.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_watchdog.conf
+
+%files mod_xml2enc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_xml2enc.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_xml2enc.conf
+
%files -n htpasswd-%{name}
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/htpasswd
-%attr(755,root,root) %{_sbindir}/htpasswd
%{_mandir}/man1/htpasswd.1*
%files dbmtools
%defattr(644,root,root,755)
-%attr(755,root,root) %{_sbindir}/dbmmanage
-%attr(755,root,root) %{_sbindir}/htdbm
+%attr(755,root,root) %{_bindir}/dbmmanage
+%attr(755,root,root) %{_bindir}/htdbm
%{_mandir}/man1/dbmmanage.1*
%{_mandir}/man1/htdbm.1*