Re: [ATrpms-users] Building nvidia 310 driver for Fedora 16 x86_64

George Galt <[email protected]> Wed, 5 Dec 2012 15:15:26 -0500
Newsgroups gmane.linux.redhat.rpm.atrpms.devel,gmane.linux.redhat.rpm.atrpms.general
Message-ID <CA+-thJO36caft1bDCJLFKZyZUVSZx1J7Q+p6uKK1TwybTamACA@mail.gmail.com>
Well, I've tried to follow the instructions on the Packaging Guidelines,
but it doesn't seem to have worked for me.  I'm reasonable new to RPM
packaging, so I might be missing something.

I've added
%filter_from_requires '/libnvcuvid.so()(64bit)/d'

after the lines
Requires(post): nvidia-graphics-helpers
%kmdl nvidia-graphics%{version}
%kmdl_parentdependencies

in the .spec file, but it doesn't seem to fix it.  If anyone has any
suggestions on how to proceed, I would appreciate it.

One interesting thing, during building the driver using Paulo's "bkmdl.sh"
script, there is some output that gives both a "Provides" and a "Requires"
line.  For the 304.51 driver, the -libs file is listed as "providing"
libnvcuvid.so.1, and requiring libnvcuvid.so.1.  However, for the 310.19
driver, the -libs file provides "libnvcuvid.so.1" but requires
"libnvcuvid()(64-bit).

George




On Wed, Dec 5, 2012 at 12:33 AM, Chris Schanzle <[email protected]> wrote:

> Mentioned in <http://fedoraproject.org/**wiki/Packaging:Guidelines<http://fedoraproject.org/wiki/Packaging:Guidelines>
> >:
>
> RPM attempts to auto-generate Requires (and Provides) at build time, but
> in some situations, the auto-generated Requires/Provides are not correct or
> not wanted. For more details on how to filter out auto-generated Requires
> or Provides, please see: <http://fedoraproject.org/**wiki/Packaging:**
> AutoProvidesAndRequiresFilteri**ng<http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering>
> >
>
> Perhaps tweaking the Requires or Provides filters would do the trick.  Or
> add/remove directories from scanning.
>
> Thanks for working on this!
>
>
>
> On 12/04/2012 03:19 PM, George Galt wrote:
>
>> Paulo:
>>
>> Sorry, I also meant to include a diff from the 304.51 spec file to the
>> 310.19.  Nothing jumps out at me:
>>
>>   diff nvidia-graphics304.51.spec nvidia-graphics310.19.spec
>> 2,3c2,3
>> < Version: 304.51
>> < Release: 149%{?dist}
>> ---
>>
>>> Version: 310.19
>>> Release: 151%{?dist}
>>>
>> 191c191
>> < mv %{buildroot}%{_x_libraries}/**lib*.so*
>> %{buildroot}%{_x_libraries}/%{**NVfolder}/
>> ---
>>
>>> #mv %{buildroot}%{_x_libraries}/**lib*.so*
>>> %{buildroot}%{_x_libraries}/%{**NVfolder}/
>>>
>> 193c193
>> < ln -s %{NVfolder}/libXvMCNVIDIA_**dynamic.so.1
>> %{buildroot}%{_x_libraries}/**libXvMCNVIDIA.so
>> ---
>>
>>> #ln -s %{NVfolder}/libXvMCNVIDIA_**dynamic.so.1
>>> %{buildroot}%{_x_libraries}/**libXvMCNVIDIA.so
>>>
>> 287c287
>> < %{_x_libraries}/%{NVfolder}/**libXvMCNVIDIA*.so.*
>> ---
>>
>>> #%{_x_libraries}/%{NVfolder}/**libXvMCNVIDIA*.so.*
>>>
>> 306,308c306,308
>> < %{_x_libraries}/libXvMCNVIDIA.**a
>> < %{_x_libraries}/libXvMCNVIDIA.**so
>> < %{_x_libraries}/%{NVfolder}/**libXvMCNVIDIA_dynamic.so
>> ---
>>
>>> #%{_x_libraries}/**libXvMCNVIDIA.a
>>> #%{_x_libraries}/**libXvMCNVIDIA.so
>>> #%{_x_libraries}/%{NVfolder}/**libXvMCNVIDIA_dynamic.so
>>>
>> 327c327,333
>> < * Sun Oct 21 2012 Axel Thimm Paulo Roma <[email protected] <mailto:
>> [email protected]>> - 304.51-149
>> ---
>>
>>> * Sat Dec 01 2012 Paulo Roma <[email protected] <mailto:[email protected]>>
>>> - 310.19-151
>>>
>>> - Update to 310.19.
>>>
>>> * Fri Nov  9 2012 Axel Thimm <[email protected]> - 304.64-150
>>> - Update to 304.64.
>>>
>>> * Sun Oct 21 2012 Paulo Roma Paulo Roma <[email protected] <mailto:
>>> [email protected]>> - 304.51-149
>>>
>>
>>
>>
>> On Tue, Dec 4, 2012 at 3:08 PM, George Galt <[email protected]<mailto:
>> [email protected]>**> wrote:
>>
>>     Paulo:
>>
>>     Oddly, prior iterations of the nvidia-graphics-libs didn't require
>> libnvcuvid.so, even though they installed them.  I'm currently running the
>> 304.51 driver, and rpm reports:
>>
>>     rpm -q --requires -p nvidia-graphics304.51-libs-**
>> 304.51-149.fc16.x86_64.rpm
>>     /bin/sh
>>     /bin/sh
>>     libX11.so.6()(64bit)
>>     libXext.so.6()(64bit)
>>     libXv.so.1()(64bit)
>>     libXvMC.so.1()(64bit)
>>     libc.so.6()(64bit)
>>     libc.so.6(GLIBC_2.2.5)(64bit)
>>     libdl.so.2()(64bit)
>>     libdl.so.2(GLIBC_2.2.5)(64bit)
>>     libgcc_s.so.1()(64bit)
>>     libgcc_s.so.1(GCC_3.0)(64bit)
>>     libgcc_s.so.1(GCC_3.3)(64bit)
>>     libm.so.6()(64bit)
>>     libm.so.6(GLIBC_2.2.5)(64bit)
>>     libnvidia-glcore.so.304.51()(**64bit)
>>     libnvidia-tls.so.304.51()(**64bit)
>>     libpthread.so.0()(64bit)
>>     libpthread.so.0(GLIBC_2.2.5)(**64bit)
>>     librt.so.1()(64bit)
>>     librt.so.1(GLIBC_2.2.5)(64bit)
>>     libvdpau.so.1()(64bit)
>>     libvdpau_nvidia.so.1()(64bit)
>>     libvdpau_trace.so.1()(64bit)
>>     libz.so.1()(64bit)
>>     rpmlib(CompressedFileNames) <= 3.0.4-1
>>     rpmlib(FileDigests) <= 4.6.0-1
>>     rpmlib(PayloadFilesHavePrefix) <= 4.0-1
>>     rpmlib(PayloadIsXz) <= 5.2-1
>>
>>     and the driver also installed libnvcuvid.so as:
>>     /usr/lib64/nvidia-graphics-**304.51/libnvcuvid.so.1
>>     /usr/lib64/nvidia-graphics-**304.51/libnvcuvid.so.304.51
>>
>>     As you can see, the new 310 driver, unlike the 304 driver, requires
>> libnvcuvid:
>>     rpm -q --requires -p nvidia-graphics310.19-libs-**
>> 310.19-151.fc16.x86_64.rpm
>>     /bin/sh
>>     /bin/sh
>>     libX11.so.6()(64bit)
>>     libXext.so.6()(64bit)
>>     libc.so.6()(64bit)
>>     libc.so.6(GLIBC_2.2.5)(64bit)
>>     libdl.so.2()(64bit)
>>     libdl.so.2(GLIBC_2.2.5)(64bit)
>>     libgcc_s.so.1()(64bit)
>>     libgcc_s.so.1(GCC_3.0)(64bit)
>>     libgcc_s.so.1(GCC_3.3)(64bit)
>>     libm.so.6()(64bit)
>>     libm.so.6(GLIBC_2.2.5)(64bit)
>>     libnvcuvid.so()(64bit)
>>     libnvidia-glcore.so.310.19()(**64bit)
>>     libnvidia-tls.so.310.19()(**64bit)
>>     libpthread.so.0()(64bit)
>>     libpthread.so.0(GLIBC_2.2.5)(**64bit)
>>     librt.so.1()(64bit)
>>     librt.so.1(GLIBC_2.2.5)(64bit)
>>     libvdpau.so.1()(64bit)
>>     libvdpau_nvidia.so.1()(64bit)
>>     libvdpau_trace.so.1()(64bit)
>>     libz.so.1()(64bit)
>>     rpmlib(CompressedFileNames) <= 3.0.4-1
>>     rpmlib(FileDigests) <= 4.6.0-1
>>     rpmlib(PayloadFilesHavePrefix) <= 4.0-1
>>     rpmlib(PayloadIsXz) <= 5.2-1
>>
>>
>>     But you can see that the package will install it:
>>     rpm -q --filesbypkg -p nvidia-graphics310.19-libs-**
>> 310.19-151.fc16.x86_64.rpm
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libGL.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libGL.so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libOpenCL.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libOpenCL.so.1.0
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libOpenCL.so.1.0.0
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libcuda.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libcuda.so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvcuvid.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvcuvid.so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-cfg.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-cfg.so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-compiler.so.**310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-encode.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-encode.so.**310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-glcore.so.**310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-ml.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-ml.so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-opencl.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-opencl.so.**310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libnvidia-tls.so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libvdpau.so
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libvdpau.so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libvdpau.so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libvdpau_nvidia.so
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/libvdpau_trace.so
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**310.19/tls
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/tls/libnvidia-tls.so.**310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**310.19/vdpau
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/vdpau/libvdpau_nvidia.**so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/vdpau/libvdpau_nvidia.**so.310.19
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/vdpau/libvdpau_trace.**so.1
>>     nvidia-graphics310.19-libs /usr/lib64/nvidia-graphics-**
>> 310.19/vdpau/libvdpau_trace.**so.310.19
>>
>>
>>     Do you know where the "requires" variables are set?  I am assuming
>> that it is something in the SPEC file.  We could simply take the route of
>> prior drivers and eliminate libnvcuvid.so() from the list of requirements.
>>  But it seems odd that it requires a file that it will install itself
>> without being aware that it will deliver its own "requirement".
>>
>>     In any event, it seems that installing this with --nodeps will be OK,
>> but I would just prefer to fix the correct files so that others can
>> comfortably do the install.
>>
>>     George
>>
>>
>>
>>
>>     On Sat, Dec 1, 2012 at 8:50 AM, Paulo Cavalcanti <[email protected]<mailto:
>> [email protected]>> wrote:
>>
>>
>>
>>         On Mon, Nov 19, 2012 at 2:45 PM, George Galt <
>> [email protected] <mailto:[email protected]>**> wrote:
>>
>>             On Mon, Nov 19, 2012 at 5:24 AM, Paulo Cavalcanti <
>> [email protected] <mailto:[email protected]>> wrote:
>>
>>
>>
>>
>>                 On Sat, Nov 17, 2012 at 2:13 AM, O&M Ugarcina <
>> [email protected] <mailto:[email protected]>> wrote:
>>
>>
>>
>>                         In each case, the path differs by the addition of
>> "nvidia-graphics-310.14" before the file being looked for.  Does anyone
>> have any idea how to either adjust the spec file or alter the way it looks
>> for these files?
>>
>>                         Thanks,
>>
>>                         George
>>
>>                     Hello Guys,
>>
>>
>>
>>         I have a fixed .src.rpm, here:
>>
>>         http://people.atrpms.net/~**pcavalcanti/srpms/nvidia-**
>> graphics310.19-310.19-151.**fc17.src.rpm<http://people.atrpms.net/~pcavalcanti/srpms/nvidia-graphics310.19-310.19-151.fc17.src.rpm>
>>
>>         In fact, the fix was easy, and I just had to comment a few lines
>> in the
>>         spec file.
>>
>>         However, when installing, rpm keeps complaining about
>>
>>         libnvcuvid.so()(64bit) is needed by nvidia-graphics310.19-libs-**
>> 310.19-151.fc17.x86_64
>>
>>         I just used --nodeps and everything installs and runs fine.
>>
>>         Maybe someone can take a look and figure what is going on...
>>
>>
>>
>>         --
>>         Paulo Roma Cavalcanti
>>         DCC - UFRJ
>>
>>
>>
>>
> ______________________________**_________________
> atrpms-devel mailing list
> [email protected]
> http://lists.atrpms.net/**mailman/listinfo/atrpms-devel<http://lists.atrpms.net/mailman/listinfo/atrpms-devel>
>