Bug 637017 - dhcp-devel is missing bind-9.7.1 devel files
Summary: dhcp-devel is missing bind-9.7.1 devel files
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: dhcp
Version: 15
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Adam Tkac
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-09-24 01:43 UTC by Carl Roth
Modified: 2013-04-30 23:47 UTC (History)
3 users (show)

Fixed In Version: bind-9.8.1-1.fc15
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-09-14 08:59:22 UTC
Type: ---
Embargoed:


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

Description Carl Roth 2010-09-24 01:43:02 UTC
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:

Always

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 13:00:39 UTC
http://koji.fedoraproject.org/koji/taskinfo?taskID=2486665
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 13:35:14 UTC
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 22:24:39 UTC
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 22:53:21 UTC
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 22:54:13 UTC
Created attachment 449774 [details]
patch to dhcp.spec

Comment 6 Adam Tkac 2010-09-29 08:06:05 UTC
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
bind-devel-9.7.2-1.fc15.x86_64
dhcp-devel-4.2.0-7.fc15.x86_64

Comment 7 Carl Roth 2010-09-29 15:14:12 UTC
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.

See

  http://people.bridgewater.edu/~dparsley/omcmd/omcmd-0.4.8-1.src.rpm

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 15:15:00 UTC
Created attachment 450503 [details]
patches for omcmd to compile with F14

Comment 9 Carl Roth 2010-09-29 15:15:31 UTC
Created attachment 450504 [details]
patch to omcmd.spec

Comment 10 Adam Tkac 2010-09-30 09:04:40 UTC
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 15:06:10 UTC
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 08:59:22 UTC
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.