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@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to