Hi list,
I'm using AutoProvidesAndRequiresFiltering [1] to filter out *.so libs in %{python_sitearch}. Unfortunately, rpm can't detect the correct requires anymore with that macro, so I didn't use this anymore, and let the 'wrong' provides and requires propagate for now untill a new solution is found.
It would be best to adjust that macro somehow, so rpm can still detect the requires, but the wrong *.so files are not listed in Requires or Provides.
Is and how is that possible?
Greetings, Thomas
[1] https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Ar... [bug report for python-visual] https://bugzilla.redhat.com/show_bug.cgi?id=657851
On 11/30/2010 02:14 PM, Thomas Spura wrote:
Hi list,
I'm using AutoProvidesAndRequiresFiltering [1] to filter out *.so libs in %{python_sitearch}. Unfortunately, rpm can't detect the correct requires anymore with that macro, so I didn't use this anymore, and let the 'wrong' provides and requires propagate for now untill a new solution is found.
RPM is filtering out the requires because you are telling it [1] to do so:
6 %{?filter_setup: 7 %filter_provides_in %{python_sitearch}/.*.so* 8 %filter_requires_in %{python_sitearch}/.*.so* 9 %filter_setup 10 }
Just remove the %filter_requires_in line and you should get what you were expecting.
[1] http://pkgs.fedoraproject.org/gitweb/?p=python-visual.git;a=blob;f=python-vi...
On Tue, 30 Nov 2010 14:27:32 +0200 Kalev Lember wrote:
On 11/30/2010 02:14 PM, Thomas Spura wrote:
Hi list,
I'm using AutoProvidesAndRequiresFiltering [1] to filter out *.so libs in %{python_sitearch}. Unfortunately, rpm can't detect the correct requires anymore with that macro, so I didn't use this anymore, and let the 'wrong' provides and requires propagate for now untill a new solution is found.
RPM is filtering out the requires because you are telling it [1] to do so:
6 %{?filter_setup: 7 %filter_provides_in %{python_sitearch}/.*.so* 8 %filter_requires_in %{python_sitearch}/.*.so* 9 %filter_setup 10 }
Just remove the %filter_requires_in line and you should get what you were expecting.
[1] http://pkgs.fedoraproject.org/gitweb/?p=python-visual.git;a=blob;f=python-vi...
I do %filter_requires_in because of: rpm -i x86_64/python-visual-5.40-1.fc13.x86_64.rpm error: Failed dependencies: cvisualmodule.so.3()(64bit) is needed by python-visual-5.40-1.fc13.x86_64
With %filter_provides_in I strip the cvisualmodule.so out, but this is still required, when leaving requires_in out. So I'm forced to do either both, or nothing...
What excactly should %filter_requires_in do? I expect it to filter the *.so files, which are coming from %{python_sitearch}/.*.so*, but not the requires that those *.so files have to other system libs.
Currently %filter_requires_in leaves out the cvisualmodule.so AND the system libs, but I need the system libs as requires...
Thanks, Thomas
On 11/30/2010 02:56 PM, Thomas Spura wrote:
I do %filter_requires_in because of: rpm -i x86_64/python-visual-5.40-1.fc13.x86_64.rpm error: Failed dependencies: cvisualmodule.so.3()(64bit) is needed by python-visual-5.40-1.fc13.x86_64
With %filter_provides_in I strip the cvisualmodule.so out, but this is still required, when leaving requires_in out. So I'm forced to do either both, or nothing...
What excactly should %filter_requires_in do? I expect it to filter the *.so files, which are coming from %{python_sitearch}/.*.so*, but not the requires that those *.so files have to other system libs.
%filter_requires_in prevents the matching files from being scanned for requires.
The way dynamic linking works is that every elf binary has DT_NEEDED entries for libraries it needs at runtime. RPM scripts extract that info from binaries and store it in the RPM metadata. Now, %filter_requires_in prevents the matching .so files from being scanned by rpm dependency extracting scripts, so anything these .so files might need will be lost.
Currently %filter_requires_in leaves out the cvisualmodule.so AND the system libs, but I need the system libs as requires...
Try this: %filter_from_requires /cvisualmodule.so/d
Hope it helps, Kalev
On Tue, 30 Nov 2010 15:34:45 +0200 Kalev Lember wrote:
On 11/30/2010 02:56 PM, Thomas Spura wrote:
I do %filter_requires_in because of: rpm -i x86_64/python-visual-5.40-1.fc13.x86_64.rpm error: Failed dependencies: cvisualmodule.so.3()(64bit) is needed by python-visual-5.40-1.fc13.x86_64
With %filter_provides_in I strip the cvisualmodule.so out, but this is still required, when leaving requires_in out. So I'm forced to do either both, or nothing...
What excactly should %filter_requires_in do? I expect it to filter the *.so files, which are coming from %{python_sitearch}/.*.so*, but not the requires that those *.so files have to other system libs.
%filter_requires_in prevents the matching files from being scanned for requires.
The way dynamic linking works is that every elf binary has DT_NEEDED entries for libraries it needs at runtime. RPM scripts extract that info from binaries and store it in the RPM metadata. Now, %filter_requires_in prevents the matching .so files from being scanned by rpm dependency extracting scripts, so anything these .so files might need will be lost.
Currently %filter_requires_in leaves out the cvisualmodule.so AND the system libs, but I need the system libs as requires...
Try this: %filter_from_requires /cvisualmodule.so/d
This helps, thanks...
But I saw my method of filtering in other packages (don't know where anymore). So that packages need changes too :(
Thanks Kalev, Thomas
On Tue, Nov 30, 2010 at 03:34:45PM +0200, Kalev Lember wrote:
On 11/30/2010 02:56 PM, Thomas Spura wrote:
I do %filter_requires_in because of: rpm -i x86_64/python-visual-5.40-1.fc13.x86_64.rpm error: Failed dependencies: cvisualmodule.so.3()(64bit) is needed by python-visual-5.40-1.fc13.x86_64
With %filter_provides_in I strip the cvisualmodule.so out, but this is still required, when leaving requires_in out. So I'm forced to do either both, or nothing...
What excactly should %filter_requires_in do? I expect it to filter the *.so files, which are coming from %{python_sitearch}/.*.so*, but not the requires that those *.so files have to other system libs.
%filter_requires_in prevents the matching files from being scanned for requires.
The way dynamic linking works is that every elf binary has DT_NEEDED entries for libraries it needs at runtime. RPM scripts extract that info from binaries and store it in the RPM metadata. Now, %filter_requires_in prevents the matching .so files from being scanned by rpm dependency extracting scripts, so anything these .so files might need will be lost.
Currently %filter_requires_in leaves out the cvisualmodule.so AND the system libs, but I need the system libs as requires...
Try this: %filter_from_requires /cvisualmodule.so/d
<nod>, that's a better recommendation for the guidelines to be making for its examples. I'll put that into a new draft in a moment.
-Toshio
packaging@lists.fedoraproject.org