Hi! Often you have symbolic links within one package pointing to files residing in other packages, e.g. *-devel packages with lib*.so symlinks pointing to the lib*.so.1.2.3 package in the base package. Currently rpm does not automatically create dependencies for that and thus often missing dependencies do occur when the packager forgets to specify the dependency manually. To support automatic dependency generation for symbolic links, you just have to 1. add the following code to /usr/lib/rpm/find-requires In the beginning of the file: RPM_BUILD_ROOT="$1" At the end of the file: if [ -x /usr/bin/readlink ]; then for i in "${filelist[@]}"; do if [ -h "$i" ]; then a=$(readlink -f "$i") echo "${a/#"$RPM_BUILD_ROOT"}" fi done | sort -u fi If you only want to support current distributions with current coreutils you can skip the outer if command. 2. and change the line %__find_requires /usr/lib/rpm/find-requires in /usr/lib/rpm/macros to %__find_requires /usr/lib/rpm/find-requires %{buildroot} Do you think this feature is useful? Do you have comments about the implementation? If you think, this is a helpful feature for RPM, I'd be happy if you added this. For different operating systems than Linux, that don't have readlink, an alternative implemenation might be useful. Robert -- Robert Schiele Tel.: +49-621-181-2214 Dipl.-Wirtsch.informatiker mailto:rschiele@xxxxxxxxxxxxxxx
Attachment:
pgp3tqw3CvEwy.pgp
Description: PGP signature
_______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list