On 02/20/2018 05:33 PM, Till Hofmann wrote: > Hi all, > > I have a question regarding the the RPM dependency generator scripts. > I'm working on packaging the ROS stack [1,2] and I'm currently dealing > with the dependency generation. My goal is to wrap all Provides and > Requires for sonames because ROS does not use proper sonames (and > therefore they shouldn't be in the ld cache), but I still want to use > the information for ROS packages. This means I want to replace: > > Provides: librosconsole.so()(64bit) > => > Provides: ros(librosconsole.so()(64bit)) > [or possibly ros-kinetic(librosconsole.so()(64bit))] > > and similarly for Requires. > > I have a working solution [3] that wraps all ROS Provides and Requires > and generates other Provides and Requirest just as elfdeps does, but it > uses an (imho ugly) hack: As I don't want to have the normal Provides > generated by elfdeps, I have: > > %__ros_path ^/usr/lib.*/ros/.*$ > %__elf_exclude_path %__ros_path > > > in /usr/lib/rpm/fileattrs/ros.attr. I see two problems: If > %__elf_exclude_path is set by something else, it is overridden, because > I couldn't figure out how to append to the exclude path. Second, > %__elf_exclude_path should not be set at all in ros.attr, the doc [4] says: > "NAME needs to be replaced by the name choosen for the file attribute > and needs to be the same as the file name of the macro file itself" > > It still works, but shouldn't according to the documentation. > > So my question: Is there any other way to exclude the ROS dir to be > checked by elfdeps? I cannot just use %__requires_exclude_from because I > want my dependency generator to run on the directory. Bump. This is the current content of the ros.attr file, if it helps: %__ros_provides %{_rpmconfigdir}/ros.prov %{?__filter_GLIBC_PRIVATE:--filter-private} %__ros_requires %{_rpmconfigdir}/ros.req %{?__filter_GLIBC_PRIVATE:--filter-private} %__ros_path ^/usr/lib.*/ros/.*$ %__ros_magic ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$ %__ros_flags exeonly,magic_and_path %__elf_exclude_path %__ros_path Is the last line acceptable? If not, how else can I exclude the ROS directory (%__ros_path) from being scanned by the ELF dependency generator? Thanks, Till > > Thanks for any hints. > > Kind regards, > Till > > [1] https://pagure.io/ros > [2] https://copr.fedorainfracloud.org/coprs/thofmann/ros/ > [3] https://pagure.io/ros-rpm-macros > [4] http://rpm.org/user_doc/dependency_generators.html > _______________________________________________ > devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx > _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx