on %{makeinstall} call %{var} should be changed to %{_localstatedir} as used on %build for runtimedir, logfiledir and proxycachedir also runtimedir (IMHO) should be : runtimedir=$RPM_BUILD_ROOT%{_localstatedir}/run ^^^ instead of runtimedir=$RPM_BUILD_ROOT%{_var}/httpd ^^^^^ on %file the cache and logfile should be (as used on %configure) %attr(-,apache,apache) %dir %{localstatedir}/cache/httpd %dir %{_localstatedir}/log/httpd
Please note that RPM 3.0.5 has by default: %_prefix /usr %_localstatedir %{_prefix}/var
not really, this is actually and RPMism but macros are parsed (and overriden) as explained on the macrofiles tag on /usr/lib/rpm/rpmrc (from 3.0.5-9.6x) macrofiles: /usr/lib/rpm/macros:/usr/lib/rpm/%{_target}/macros:/etc/rpm/macros... %{_target} can be i386-redhat-linux or any other "supported" target and there the _localstatedir gets overriden as : %_localstatedir /var actually the RFE was suggested as part of an incomplete standarization of the SPEC that forgot this "convertion" ;)
This will be fixed in apache-1.3.14-7 and later. (Also removing a redundant --libexecdir=.) Thanks!