A couple more comments on the spec... - Which supported distro/releases don't have %make_build ? Thus, is this really needed : """ # In some cases older distros do not have this macro defined %{!?make_build: %global make_build %{__make} %{?_smp_mflags} } """ - Would it be possible to have one sub-package for httpd and another for nginx ? - I believe the with_php_mysqlnd and with_php_mysql can be replaced by a simple "Requires: php-mysqli" which is a virtual provides for the proper package depending on the distro/release. - Isn't "%global _hardened_build 1" the default anyway ? - Source: should be a full URL. I realize that 1.30.1 was not released nor even tagged, I assume that's the reason, but this needs to be fixed. You might also want to use the more common Source0 rather than Source. - Multiple (Build)Requires: on one line are not very legible. - The added Requires: are most probably already auto-detected at build time. Only add the ones that are not autodetected, if any. - Unless I'm missing something """ %dir %{_libexecdir}/zoneminder %{_libexecdir}/zoneminder/cgi-bin %dir %{_datadir}/zoneminder %{_datadir}/zoneminder/db %{_datadir}/zoneminder/www """ can be written as """ %{_libexecdir}/zoneminder/ %{_datadir}/zoneminder/ """ The directories and files below will be owned too. Also notice the ending /, this is often used to make it more obvious this is a directory. - Same for """ %dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder %dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/events %dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/images %dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/sock %dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/swap %dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/temp """ - Use macros in the paths for %dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/log/zoneminder %dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/spool/zoneminder-upload %dir %attr(755,%{zmuid_final},%{zmgid_final}) %ghost /var/run/zoneminder - No need to use %attr(644,root,root) or %attr(755,root,root), this is the default (unless the install script don't do the right thing). Short on time now, maybe more comments later...