Bug 637017 - dhcp-devel is missing bind-9.7.1 devel files
dhcp-devel is missing bind-9.7.1 devel files
Product: Fedora
Classification: Fedora
Component: dhcp (Show other bugs)
All Linux
low Severity medium
: ---
: ---
Assigned To: Adam Tkac
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2010-09-23 21:43 EDT by Carl Roth
Modified: 2013-04-30 19:47 EDT (History)
3 users (show)

See Also:
Fixed In Version: bind-9.8.1-1.fc15
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2011-09-14 04:59:22 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
patch to dhcp.spec (756 bytes, patch)
2010-09-26 18:54 EDT, Carl Roth
no flags Details | Diff
patches for omcmd to compile with F14 (1.46 KB, patch)
2010-09-29 11:15 EDT, Carl Roth
no flags Details | Diff
patch to omcmd.spec (152 bytes, patch)
2010-09-29 11:15 EDT, Carl Roth
no flags Details | Diff

  None (edit)
Description Carl Roth 2010-09-23 21:43:02 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).

For example:

  - /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):

dhcp 4.2.0-1
bind 32:9.7.2-0.3.rc1.fc14

How reproducible:


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
Actual results:

Expected results:

Additional info:
Comment 1 Jiri Popelka 2010-09-24 09:00:39 EDT
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
'Conflicts: bind-devel'
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 ?
Comment 2 Adam Tkac 2010-09-24 09:35:14 EDT
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.
Comment 3 Carl Roth 2010-09-26 18:24:39 EDT
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.
Comment 4 Carl Roth 2010-09-26 18:53:21 EDT
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.
Comment 5 Carl Roth 2010-09-26 18:54:13 EDT
Created attachment 449774 [details]
patch to dhcp.spec
Comment 6 Adam Tkac 2010-09-29 04:06:05 EDT
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 
#include <omapip/result.h>

int main(void)
        return 0;
[atkac@traged ~]$ gcc -o test test.c -Wall
[atkac@traged ~]$ rpm -q bind-devel dhcp-devel
Comment 7 Carl Roth 2010-09-29 11:14:12 EDT
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.
Comment 8 Carl Roth 2010-09-29 11:15:00 EDT
Created attachment 450503 [details]
patches for omcmd to compile with F14
Comment 9 Carl Roth 2010-09-29 11:15:31 EDT
Created attachment 450504 [details]
patch to omcmd.spec
Comment 10 Adam Tkac 2010-09-30 05:04:40 EDT
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.
Comment 11 carlosd2002 2011-06-21 11:06:10 EDT
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,
from rece.c:11:
/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,
from rece.c:11:
/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.
Comment 12 Adam Tkac 2011-09-14 04:59:22 EDT
This issue is fixed in the latest bind-9.8.1-1.fc15 (Fedora 15), it won't be fixed in Fedora 14.

Note You need to log in before you can comment on or make changes to this bug.