The requirement on mhash for mhash-devel is unnecessary.
Hence the Requires: mhash for mhash-devel can be removed.
Created attachment 111697 [details]
SPEC file with "mhash-devel Requires: mhash" removed.
Why? mhash-devel contains a symlink to a DSO file which is only
included in the main mhash package. Further, -devel package and main
package ought to be always in sync.
Nope. I can perfectly well build php with mhash support with only
mhash-devel installed. Only on the production machine (web server) I
will need to have mhash itself installed.
If every -devel package would need the main package to be installed
most build systems would grow rather fat, don't you think?
The shared object itself is not necessary to build binaries that
depend on it. Only the header file and the static library (.a and .la)
need to be available in the -devel package. The .so file can be safely
put in the main package without breaking anything.
Why do you exclude .la?
# libmhash.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.5.10 (1.1220.2.130 2004/09/19
# Please DO NOT delete this file!
# It is necessary for linking the library.
You can only build php like that, because the static archive for mhash
is included as well and you link statically. If it were not included,
your build would fail.
The .so link is not used at run-time, so it would be wrong to put it
into the main package. It's only used during build-time linking.
Including it within the main package would prevent multiple APIs/ABIs
of a library to be installable at once.
Take a look at other -devel packages. Find the rare exceptions where a
-devel package does not require its main package.
I exclude libtool archives, because we don't need them. Other issues
with .la files are not relevant for mhash.