automatic dependency generation for symbolic links

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux