Re: [Fedora-packaging] resolving rpmlint absolute symlinks issue

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

 



David Timms wrote:
Tom spot Callaway wrote:
On Fri, 15 Aug 2008 08:11:11 +1000
David Timms <dtimms@xxxxxxxxxxxx> wrote:

I am getting the following with a package I'm working on:

$ rpmlint --info RPMS/noarch/pyvnc2swf-0.9.3-3.fc9.noarch.rpm
pyvnc2swf.noarch: W: symlink-should-be-relative /usr/bin/vnc2swf
/usr/lib/python2.5/site-packages/pyvnc2swf/vnc2swf.py
Absolute symlinks are problematic eg. when working with chroot environments.

pyvnc2swf.noarch: W: symlink-should-be-relative /usr/bin/vnc2swf-edit
Absolute symlinks are problematic eg. when working with chroot environments.

You resolve these like this:

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.

Paul.

--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux