Hide Forgot
+++ This bug was initially created as a clone of Bug #675196 +++ Description of problem: The package nss-util-devel is missing at least one include file: /usr/include/nss3/seccomon.h:51:21: fatal error: prtypes.h: No such file or directory Version-Release number of selected component (if applicable): #rpm -q --whatprovides /usr/include/nss3/seccomon.h nss-util-devel-3.12.9-1.fc14.x86_64 --- Additional comment from emaldona on 2011-02-04 11:51:19 EST --- prtypes.h is part is provided by nspr-devel # rpm -ql nspr-devel | grep prtypes.h /usr/include/nspr4/prtypes.h which is required by nss-util-devel #rpm -q --whatrequires nspr-devel xulrunner-devel-1.9.2.13-5.fc14.x86_64 nss-util-devel-3.12.9-1.fc14.x86_64 nss-softokn-devel-3.12.9-1.fc14.x86_64 nss-devel-3.12.9-1.fc14.x86_64 --- Additional comment from stefanb.com on 2011-02-04 11:59:15 EST --- Let me be more specific: In file included from /usr/include/nss3/blapit.h:46:0, from /usr/include/nss3/blapi.h:45, from test.c:52: /usr/include/nss3/seccomon.h:51:21: fatal error: prtypes.h: No such file or directory seccommon.h shows this here: [...] #ifndef _SECCOMMON_H_ #define _SECCOMMON_H_ #include "utilrename.h" #include "prtypes.h" [...] I believe it expects prtypes.h to be found in nss3, no? --- Additional comment from emaldona on 2011-02-04 12:24:14 EST --- No, it actually expects the file to be found in nspr4, as in /usr/include/nspr4/prtypes.h --- Additional comment from stefanb.com on 2011-02-04 12:28:52 EST --- In a next step I added -I/usr/include/nspr4 to gcc for inclusion of the needed path leads to: /usr/include/nss3/blapi.h:47:21: fatal error: alghmac.h: No such file or directory I cannot 'find | grep alghmac' in /usr/include... Once the #include of this file is commented, I can compile. It would be great if the development packages could be fixed. --- Additional comment from emaldona on 2011-02-04 13:00:07 EST --- /usr/include/nss3/blapi.h is a private header of the freebl library in nss-soften-devel and nss-util and its nss-util-devel do not depend on anything in the rest of nss or nss-softokn. They are the lower level common utilities required both nss and nss-softoken. nss depends on nss-softokn and nss-util The freebl headers are as a rule private to the crypto module, with very few limited exceptional cases. --- Additional comment from stefanb.com on 2011-02-04 13:19:05 EST --- Assuming I wanted to link against -lfreebl and use the function RNG_RNGInit(). Where am I going to get its prototype from other than including nss3/blapi.h ? --- Additional comment from emaldona on 2011-02-04 13:40:16 EST --- nss-softoken-freebl-devel (subpackage of nss-softokn) provides you that header. #rpm -ql nss-softokn-freebl-devel /usr/include/nss3/blapi.h /usr/lib64/libfreebl.a --- Additional comment from stefanb.com on 2011-02-04 13:52:03 EST --- I know that. See above in comment 4 the error that I am getting when including blapi.h. alghmac.h is missing. --- Additional comment from emaldona on 2011-02-04 14:19:07 EST --- I see alghmac.h listed as one of freebl's private exports in mozilla/security/nss/lib/freebl/maninifest.mn ... PRIVATE_EXPORTS = \ alghmac.h \ ... It does show up in mozilla/dist/nss/private. It does not appear listed in the nss-softokn.spec (or nss.spec) so it doesn't copied to /usr/include/nss3 along with other private headers. This may be fixable. Could you do me a favor? Manually copy alghmac.h into /usr/include/nss3 and try to compile your project. Before I add it to the list let me see what else it pulls in. I would hate to trigger a chain reaction of headers being brought in. --- Additional comment from emaldona on 2011-02-04 16:10:05 EST --- alghmac.h doesn't include anything else and that's promising Let me know if these scratch builds of nss-softokn and nss http://koji.fedoraproject.org/koji/taskinfo?taskID=2762816 http://koji.fedoraproject.org/koji/taskinfo?taskID=2762830 work for you. --- Additional comment from stefanb.com on 2011-02-04 16:38:01 EST --- Installing nss-softokn-freebl-3.12.9-2.fc14.x86_64.rpm nss-softokn-freebl-devel-3.12.9-2.fc14.x86_64.rpm from these builds did the trick for me. --- Additional comment from updates on 2011-02-04 17:28:53 EST --- nss-softokn-3.12.9-2.fc14 has been submitted as an update for Fedora 14. https://admin.fedoraproject.org/updates/nss-softokn-3.12.9-2.fc14 --- Additional comment from stefanb.com on 2011-02-04 19:09:03 EST --- Unless done anyway, please submit nss-softokn-freebl-3.12.9-2.fc14.x86_64.rpm nss-softokn-freebl-devel-3.12.9-2.fc14.x86_64.rpm rather than (only) nss-softokn-3.12.9-2.fc14 as an update. --- Additional comment from emaldona on 2011-02-04 19:22:21 EST --- nss-softokn-freebl and nss-softokn-freebl-devel can't be submitted by themselves. They are mere sub-packages of the nss-softokn package so it's the latter that gets submitted. --- Additional comment from updates on 2011-02-05 17:21:40 EST --- nss-softokn-3.12.9-2.fc14 has been pushed to the Fedora 14 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update nss-softokn'. You can provide feedback for this update here: https://admin.fedoraproject.org/updates/nss-softokn-3.12.9-2.fc14 --- Additional comment from updates on 2011-02-06 15:20:33 EST --- nss-softokn-3.12.9-2.fc14 has been pushed to the Fedora 14 stable repository. If problems still persist, please make note of it in this bug report.
This doesn't not involve any code changes, it's is strictly a packaging bug. It's solved by adding the needed header to the list of files to include in the spec file.
Created attachment 477871 [details] add missing header to the proper places the spec file
stefanb suggested adding to nss-softoken-devel a dependency on nss-softokn-devel I think it would be something like Requires: nss-softokn-devel%{?_isa} = %{version}-%{release} or maybe BuildRequires: nss-softokn-devel%{?_isa} = %{version}-%{release}
I think you mean : stefanb suggested adding to nss-softokn-freebl-devel a dependency on nss-softokn-devel. I think that is incorrect, unless we mistakenly have headers in softokn that are included by freebl. The real dependency is the other way around (nss-softokn and nss-sofokn-devel depend on nss-softokn-freebl and nss-softokn-freebl-devel respectively). bob
Comment on attachment 477871 [details] add missing header to the proper places the spec file r+
What you say in 5 what stefanb means is correct. Let me show: #> rpm -q --whatprovides /usr/include/nss3/blapi.h nss-softokn-freebl-devel-3.12.9-2.fc14.x86_64 In blapi.h the following is found [...] #ifndef _BLAPI_H_ #define _BLAPI_H_ #include "blapit.h" #include "hasht.h" #include "alghmac.h" [...] Let me check what provides blapit.h ... -> rpm -q --whatprovides /usr/include/nss3/blapit.h nss-softokn-devel-3.12.9-2.fc14.x86_64 I conclude freebl-devel has a dependency on nss-softokn-devel, yet I can do: root@d941e-5 patches]# yum remove nss-softokn-devel Loaded plugins: fastestmirror, presto, refresh-packagekit Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package nss-softokn-devel.x86_64 0:3.12.9-2.fc14 set to be erased --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================== Package Arch Version Repository Size ==================================================================================================== Removing: nss-softokn-devel x86_64 3.12.9-2.fc14 @updates 52 k Transaction Summary ==================================================================================================== Remove 1 Package(s) Installed size: 52 k I would expect nss-softokn-devel also to uninstall nss-softokn-freebl-devel.
> -> rpm -q --whatprovides /usr/include/nss3/blapit.h > nss-softokn-devel-3.12.9-2.fc14.x86_64 Sigh, that should have been in nss-softokn-freebl-devel, not nss-softoken-devel bob
Created attachment 478325 [details] V2: blapit.h is now in the nss-softokn-freebl-devel file list.
Caveat: By making nss-softokn-freebl-devel the owner of blaphit.h, could we be introducing an implied dependency of nss-softokn-devel on nss-softokn-freebl? I find such a dependency undesirable since when it was a goal not do so and keep nss-softokn-freebl-devel a strictly optional. I'll test this in fedora first. Stefan, you are welcome to join me. I'll point you to a fedora scratch build.
Created attachment 478944 [details] V3 - proposed changes revised (change logs not included) Expanded freel-devel description, added another requires, and concatenated associated patch for nss spec to take due nss-pkcs11-devel's dependency as Bob pointed out.
Comment on attachment 478944 [details] V3 - proposed changes revised (change logs not included) Expanded description for freebl-devel, added a requires, and concatenated nss spec change to account for pkcs11-devel dependency as Bob pointed out.
Comment on attachment 478944 [details] V3 - proposed changes revised (change logs not included) Combined hanges for nss-softokn and nss spec files. Exanded freebl-devel description, added devel dependency on freebl-devel due to blapit.h's "adoption" by freebl-devel, and added needed pkcs11-devel requires as Bob has pointed out.
Comment on attachment 478944 [details] V3 - proposed changes revised (change logs not included) r+ thanks for sussing this out.
Correction: in nss.spec for %package pkcs11-devel, the line Requires: nss-softokn-pkcs11-devel = %{version}-%{release} should have been Requires: nss-softokn-freel-devel = %{version}-%{release} as this one now provides the blapit.h header that nss-pks11-devel needs.
Bad fingers: s/freel/freebl/
Comment on attachment 478944 [details] V3 - proposed changes revised (change logs not included) Since nss and nss-softokn keep their own versions, the requires for pk11-devel must be >+Requires: nss-softokn-freebl-devel = %{nss_softokn_version}
I am using nss-config --cflags now to determine the additional cflags necessary for freebl includes (/usr/include/nss3). The nss-config tool comes with nss-devel. The issue is that the dependencies don't reach that far that when I require nss-softokn-freebl-devel that automatically nss-devel becomes a dependency.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2011-0692.html