Description of problem: The RMSPEC for mapserver (https://src.fedoraproject.org/rpms/mapserver/blob/epel9/f/mapserver.spec) has an install requirement on the "httpd" package that it does not need. It also has a matching build requirement requirement of "httpd-devel" it does not need. This cause it to fail to install if the machine is using "Easy Apache" package. The mapserv binary in this package is a standalone cgi binary it does not need "httpd" to run or "httpd-devel" to build as configured in the package. The package as built by the RPMSPEC taken from the build log (https://kojipkgs.fedoraproject.org//packages/mapserver/8.0.0/3.el9/data/logs/x86_64/build.log) of hpackage build https://koji.fedoraproject.org/koji/buildinfo?buildID=2082450 show that mapserver was build with the option "Apache Module (Experimental): disabled" This is an experimental non default build option and is the only part of Mapserver that require the Apache "httpd" package (https://github.com/MapServer/MapServer/blob/branch-8-0/apache/CMakeLists.txt) Thus as the RPMSPEC does not build mapserver with any option that requires "httpd" they should be removed from the RPMSPEC Version-Release number of selected component (if applicable): How reproducible: Setup an Enterprise Redhat based machine like AlmaLinux 9 Install Easy Apache 4 (and cPanel) Make sure the necessary EPEL repos are enabled dnf install mapserver Actual results: Error: Problem: problem with installed package ea-apache24-2.4.59-1.1.1.cpanel.x86_64 - package ea-apache24-2.4.59-1.1.1.cpanel.x86_64 from @System conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream - package ea-apache24-2.4.58-1.1.5.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream - package ea-apache24-2.4.58-1.1.6.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream - package ea-apache24-2.4.58-3.3.5.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream - package ea-apache24-2.4.58-3.3.6.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream - package ea-apache24-2.4.59-1.1.1.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream - package httpd-2.4.57-5.el9.x86_64 from appstream requires httpd-core = 2.4.57-5.el9, but none of the providers can be installed - package mapserver-8.0.0-3.el9.x86_64 from epel requires httpd, but none of the providers can be installed - conflicting requests (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages) Expected results: The package to install Additional info: Removing the lines from the RPMSPEC:- Requires: httpd BuildRequires: httpd-devel Results in successful build and package. The package then installs on a system without the "httpd" package Running the "mapserv" binary produced the normal html output.
This is not a mapserver package bug, but the result of httpd not being installable due to other conflicts.
This is most definitely a Bug is the mapserver package. Mapserver default build has no dependencies on httpd, therefore why does it need httpd to be installed to install the mapserver package? The reason why I was installing mapserver without a httpd package has no relevance other than it highlighted the redundant dependency on httpd.
If you ldd the binary ldd mapserv linux-vdso.so.1 (0x00007ffcc94ee000) libmapserver.so.2 => /lib64/libmapserver.so.2 (0x00007fe84989e000) libfcgi.so.0 => /lib64/libfcgi.so.0 (0x00007fe849890000) libc.so.6 => /lib64/libc.so.6 (0x00007fe849687000) libpng16.so.16 => /lib64/libpng16.so.16 (0x00007fe849650000) libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007fe8495cf000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fe84950b000) libproj.so.22 => /lib64/libproj.so.22 (0x00007fe849163000) libprotobuf-c.so.1 => /lib64/libprotobuf-c.so.1 (0x00007fe849158000) libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007fe84913a000) libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fe84906b000) libcairo.so.2 => /lib64/libcairo.so.2 (0x00007fe848f51000) libmariadb.so.3 => /lib64/libmariadb.so.3 (0x00007fe848efb000) libgeos_c.so.1 => /lib64/libgeos_c.so.1 (0x00007fe848eb6000) libpq.so.5 => /lib64/libpq.so.5 (0x00007fe848e63000) libgdal.so.30 => /lib64/libgdal.so.30 (0x00007fe84756e000) libcurl.so.4 => /lib64/libcurl.so.4 (0x00007fe8474f0000) libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fe847367000) libxslt.so.1 => /lib64/libxslt.so.1 (0x00007fe847322000) libexslt.so.0 => /lib64/libexslt.so.0 (0x00007fe847309000) libgif.so.7 => /lib64/libgif.so.7 (0x00007fe8472fd000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fe8470d6000) libm.so.6 => /lib64/libm.so.6 (0x00007fe846ffb000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fe846fe0000) /lib64/ld-linux-x86-64.so.2 (0x00007fe849c6c000) libz.so.1 => /lib64/libz.so.1 (0x00007fe846fc6000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fe846fb1000) libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007fe846fa3000) libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007fe846e6b000) libtiff.so.5 => /lib64/libtiff.so.5 (0x00007fe846de2000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fe846ca7000) libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fe846c86000) libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007fe846bd8000) libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fe846b89000) libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007fe846b84000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fe846b59000) libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007fe846b49000) libXrender.so.1 => /lib64/libXrender.so.1 (0x00007fe846b3c000) libX11.so.6 => /lib64/libX11.so.6 (0x00007fe8469f2000) libXext.so.6 => /lib64/libXext.so.6 (0x00007fe8469dd000) libssl.so.3 => /lib64/libssl.so.3 (0x00007fe846937000) libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007fe846505000) libgeos.so.3.10.1 => /lib64/libgeos.so.3.10.1 (0x00007fe8462b6000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fe84625f000) libldap.so.2 => /lib64/libldap.so.2 (0x00007fe8461f6000) libarmadillo.so.12 => /lib64/libarmadillo.so.12 (0x00007fe8461e2000) libpoppler.so.106 => /lib64/libpoppler.so.106 (0x00007fe845e59000) libjson-c.so.5 => /lib64/libjson-c.so.5 (0x00007fe845e46000) libfreexl.so.1 => /lib64/libfreexl.so.1 (0x00007fe845e3a000) libwebp.so.7 => /lib64/libwebp.so.7 (0x00007fe845dcd000) libodbc.so.2 => /lib64/libodbc.so.2 (0x00007fe845d59000) libodbcinst.so.2 => /lib64/libodbcinst.so.2 (0x00007fe845d44000) libkmlbase.so.1 => /lib64/libkmlbase.so.1 (0x00007fe845d21000) libkmldom.so.1 => /lib64/libkmldom.so.1 (0x00007fe845c84000) libkmlengine.so.1 => /lib64/libkmlengine.so.1 (0x00007fe845c51000) libkmlxsd.so.1 => /lib64/libkmlxsd.so.1 (0x00007fe845c3e000) libkmlregionator.so.1 => /lib64/libkmlregionator.so.1 (0x00007fe845c2f000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fe845bfe000) libxerces-c-3.2.so => /lib64/libxerces-c-3.2.so (0x00007fe845878000) libopenjp2.so.7 => /lib64/libopenjp2.so.7 (0x00007fe84581e000) libjasper.so.4 => /lib64/libjasper.so.4 (0x00007fe8457cc000) libnetcdf.so.19 => /lib64/libnetcdf.so.19 (0x00007fe84564c000) libhdf5.so.200 => /lib64/libhdf5.so.200 (0x00007fe845251000) libmfhdf.so.0 => /lib64/libmfhdf.so.0 (0x00007fe845226000) libdf.so.0 => /lib64/libdf.so.0 (0x00007fe84517c000) libogdi.so.4 => /lib64/libogdi.so.4 (0x00007fe84515d000) libgeotiff.so.5 => /lib64/libgeotiff.so.5 (0x00007fe845127000) libgta.so.1 => /lib64/libgta.so.1 (0x00007fe84511b000) libcfitsio.so.9 => /lib64/libcfitsio.so.9 (0x00007fe844e01000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fe844dd5000) libspatialite.so.7 => /lib64/libspatialite.so.7 (0x00007fe8445e5000) libdapclient.so.6 => /lib64/libdapclient.so.6 (0x00007fe8445a3000) libdapserver.so.7 => /lib64/libdapserver.so.7 (0x00007fe844591000) libdap.so.27 => /lib64/libdap.so.27 (0x00007fe8443ef000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fe844351000) libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007fe844327000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fe84424c000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fe844233000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fe84422c000) libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007fe844207000) libzstd.so.1 => /lib64/libzstd.so.1 (0x00007fe844130000) libjbig.so.2.1 => /lib64/libjbig.so.2.1 (0x00007fe844122000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fe8440aa000) libXau.so.6 => /lib64/libXau.so.6 (0x00007fe8440a4000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fe844091000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fe84408a000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fe844076000) liblber.so.2 => /lib64/liblber.so.2 (0x00007fe844064000) libevent-2.1.so.7 => /lib64/libevent-2.1.so.7 (0x00007fe84400b000) libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fe843feb000) libopenblaso.so.0 => /lib64/libopenblaso.so.0 (0x00007fe8416a5000) liblapack.so.3 => /lib64/liblapack.so.3 (0x00007fe840f82000) libarpack.so.2 => /lib64/libarpack.so.2 (0x00007fe840f36000) libsuperlu.so.6 => /lib64/libsuperlu.so.6 (0x00007fe840ec0000) liblcms2.so.2 => /lib64/liblcms2.so.2 (0x00007fe840e5c000) libsmime3.so => /lib64/libsmime3.so (0x00007fe840e2f000) libnss3.so => /lib64/libnss3.so (0x00007fe840cf4000) libplc4.so => /lib64/libplc4.so (0x00007fe840ced000) libnspr4.so => /lib64/libnspr4.so (0x00007fe840caa000) libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fe840c9f000) liburiparser.so.1 => /lib64/liburiparser.so.1 (0x00007fe840c86000) libkmlconvenience.so.1 => /lib64/libkmlconvenience.so.1 (0x00007fe840c63000) libhdf5_hl.so.200 => /lib64/libhdf5_hl.so.200 (0x00007fe840c3f000) libtirpc.so.3 => /lib64/libtirpc.so.3 (0x00007fe840c0f000) libsz.so.2 => /lib64/libsz.so.2 (0x00007fe840c05000) libminizip.so.3.0 => /lib64/libminizip.so.3.0 (0x00007fe840bdd000) librttopo.so.1 => /lib64/librttopo.so.1 (0x00007fe840b60000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fe840b56000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe840b29000) libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007fe840aef000) libgfortran.so.5 => /lib64/libgfortran.so.5 (0x00007fe840833000) libgomp.so.1 => /lib64/libgomp.so.1 (0x00007fe8407ea000) libblas.so.3 => /lib64/libblas.so.3 (0x00007fe84075b000) libflexiblas.so.3 => /lib64/libflexiblas.so.3 (0x00007fe8403a9000) libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007fe84035f000) libmetis.so.0 => /lib64/libmetis.so.0 (0x00007fe8402f5000) libnssutil3.so => /lib64/libnssutil3.so (0x00007fe8402bf000) libplds4.so => /lib64/libplds4.so (0x00007fe8402b8000) libpcre2-posix.so.3 => /lib64/libpcre2-posix.so.3 (0x00007fe8402b3000) The httpd package does not provide any of these libraries. The mapserv binary has a commandline interface, e.g. sh-5.1# ./mapserv -h Usage: mapserv [--help] [-v] [-nh] [QUERY_STRING=value] [PATH_INFO=value] [-conf filename] Options : -h, --help Display this help message. -v Display version and exit. -nh Suppress HTTP headers in CGI mode. -conf filename Filename of the MapServer configuration file. QUERY_STRING=value Set the QUERY_STRING in GET request mode. PATH_INFO=value Set the PATH_INFO for an API request. Yes it is common to have an Http server execute the standalone mapserv binary inside it's cgi environment, just it not a requirement to actually do this.