[Fedora-packaging] resolving rpmlint absolute symlinks issue

David Timms dtimms at iinet.net.au
Sat Aug 16 03:46:50 UTC 2008

Paul Howarth wrote:
> David Timms wrote:
>> Tom spot Callaway wrote:
>>> On Fri, 15 Aug 2008 08:11:11 +1000
>>> David Timms <dtimms at iinet.net.au> wrote:
>>> Instead of doing:
>>> ln -s /usr/lib/python2.5/site-packages/pyvnc2swf/edit.py 
>>> /usr/bin/vnc2swf-edit
>>> You do a relative link, like this:
>>> cd /usr/lib/python2.5/site-packages/pyvnc2swf/
>>> ln -s edit.py ../../../../bin/vnc2swf-edit
>> OK, that works for my raw file system, but how is it done in a package ?
>> cd %{buildroot}%{python_sitelib}/pyvnc2swf/
>> ln -s vnc2swf.py ../../../../bin/vnc2swf
>> rpmbuilds fine, but get rpmlint from the other way:
>> rpmlint --info pyvnc2swf-0.9.3-4.fc9.noarch.rpm
>> pyvnc2swf.noarch: W: dangling-relative-symlink /usr/bin/vnc2swf 
>> vnc2swf.py
>> The relative symbolic link points nowhere.
>> Is it OK to leave with that warning ?
>> Should it be fixed like Paul shows {with symlinks} in the above bug ?
>> Or is there another easy fix that doesn't require such trickery ?
> Try this, which is I think what Spot meant:
> ln -s ../lib/python2.5/site-packages/pyvnc2swf/vnc2swf.py \
>     %{buildroot}%{_bindir}/vnc2swf
> ln -s ../lib/python2.5/site-packages/pyvnc2swf/edit.py \
>     %{buildroot}%{_bindir}/vnc2swf-edit
> The problem with this is that you can't use the %{python_sitelib} macro 
> to do it cleanly. You could take the relative link right up to the root 
> directory to avoid that pitfall:
> ln -s ../..%{python_sitelib}/pyvnc2swf/vnc2swf.py \
>     %{buildroot}%{_bindir}/vnc2swf
> ln -s ../..%{python_sitelib}/pyvnc2swf/edit.py \
>     %{buildroot}%{_bindir}/vnc2swf-edit
> However, this still requires the assumption that %{_bindir} is two 
> levels down from the root directory, which is why I prefer the approach 
> of using the "symlinks" utility - it requires no such assumptions.

Thanks again Paul, I missed the fact that I screwed up my reply to the 
wrong list, so I missed your second response until now. Meanwhile, I 
worked out the same that you mention.

I would prefer to know what the widely used solution to this lint issue 
is, since in looking at some random py* packages in cvs I didn't find 
any packages doing the same {providing a link in bindir for a .py script}.


More information about the devel mailing list