Red Hat Bugzilla – Bug 637017
dhcp-devel is missing bind-9.7.1 devel files
Last modified: 2013-04-30 19:47:27 EDT
Description of problem:
F14 includes dhcp-4.2.0, which has a build dependency on bind-9.7.1.
The version of bind included in F14 is 9.7.2, which is not source compatible with dhcp-4.2.0.
The dhcp sources therefore include a bind-9.7.1 snapshot in order to build dhcpd. Unfortunately, the bind-9.7.1 files are not included in dhcp-devel, rendering that package useless for building other dhcp-based applications (like omcmd).
- /usr/include/omapip/result.h includes isc/lang.h
- isc/lang.h is provided by bind-devel-9.7.1
- isc/lang.h is not provided by bind-devel-9.7.2
Would it be feasible to include the bind-9.7.1 headers and archives as part of dhcp-devel, even if they are stashed in separate directory, e.g. '/usr/lib/dhcp-4.2.0/bind-9.7.1/'...
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. yum-install dhcp-devel, bind-devel
2. create a C file that includes <omapip/result.h>
3. try to compile it
I made a scratch-build of a new release where headers and libraries from bind-9.7.1 are shipped with dhcp-devel.
I added explicit
line into spec.file so you have to first remove bind-devel.
I don't have any better solution on mind at the moment.
Try it and let me know what do you think.
I'm also adding bind maintainer to CC.
Adame, do you have any other idea how to solve this problem ?
After quick inspection both bind-devel-9.7.2-0.3.rc1.fc14 and bind-devel-9.7.2-1.fc14 contains /usr/include/isc/lang.h. It seems your installation is broken, can you please reinstall bind-devel package?
Note about "Conflicts: bind-devel". "Conflicts" directive is forbidden by Packaging guidelines and should not be used in Fedora packages.
As an initial first step, I set up my F14 build environment with dhcp-devel as per Comment #1. It seems to work fine when building against dhcp libraries (omcmd in my case).
As per Comment #2, yes my build environment was (temporarily) broken. I had a few broken symlinks in /usr/include as I was borrowing files from bind-debuginfo.
I'll take a look at that dhcp-devel to see if there's a way to configure it to live alongside bind-devel-9.7.2.
OK here is a small patch to dhcp.spec that pushes the bind compatibility files to a subdirectory. This requires sources built against dhcp-devel to use a cooked-up CPPFLAGS and LDFLAGS, which I am OK with. I'm open to other suggestions.
Created attachment 449774 [details]
patch to dhcp.spec
May I ask you why you need the patch? I tried to compile sample program and everything is fine (with dhcp-devel and bind-devel installed).
[atkac@traged ~]$ cat test.c
[atkac@traged ~]$ gcc -o test test.c -Wall
[atkac@traged ~]$ rpm -q bind-devel dhcp-devel
I think you're right, the bind-9.7.2 headers mostly work with source compiles against dhcp. The libraries on the other hand are not compatible.
for an example; this compiles find with bind-devel-9.7.2 but fails at link time due to symbol mismatches.
I'll attach diffs for F14 that should work with this SRPM. You should be able to see the difference there with bind-devel-9.7.1 and bind-devel-9.7.2.
Created attachment 450503 [details]
patches for omcmd to compile with F14
Created attachment 450504 [details]
patch to omcmd.spec
After more inspection omcmd is not compilable due four different issues which should be fixed:
1. omcmd includes wrong headers (and is probably linked against wrong libraries)
2. bind-devel is missing /usr/include/dns/tsec.h header
3. dhcp-devel package contains static (.a) omapi libraries which is forbidden, dhcp-devel should contain shared libraries only. You are probably receiving linking errors because of this. BIND source is little tricky and when compiled with different configure flags (and dhcp's bundled bind source is compiled with different flags than distribution bind) same symbols can have different names in output library
4. dhcp source contains BIND source which is forbidden, dhcp should be modified and should use libraries shipped in bind-libs package instead of recompile bind source
I will create propose patches.
Hi, i m new at devel things...
I m coding a program and when i include dhcpctl.h and isc/result.h have this compile errors:
In file included from /usr/include/dhcpctl.h:38,
/usr/local/include/omapip/omapip.h:40:22: error: dns/tsec.h: No such file or directory
In file included from /usr/include/dhcpctl.h:38,
/usr/local/include/omapip/omapip.h:158: error: expected specifier-qualifier-list before 'dns_tsec_t'
rece.c: In function 'main':
rece.c:455: warning: return type of 'main' is not 'int'
I think that are related to this problem. how can i workaround this?
Any idea? thanks in advance and sorry if not the appropriated place.
This issue is fixed in the latest bind-9.8.1-1.fc15 (Fedora 15), it won't be fixed in Fedora 14.