Patchwork dhcp: Update to 4.2.3-P2

login
register
mail settings
Submitter Andrei Gherzan
Date Feb. 8, 2012, 4:06 p.m.
Message ID <1328717200-13689-1-git-send-email-andrei@gherzan.ro>
Download mbox | patch
Permalink /patch/21017/
State New
Headers show

Comments

Andrei Gherzan - Feb. 8, 2012, 4:06 p.m.
1. Update to 4.2.3-P2
2. From 4.2.0 final release, -lcrypto check was removed and we compile static libraries
from bind that are linked to libcrypto. This is why i added a patch in order to add
-lcrypto to LIBS.

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
---
 .../dhcp/dhcp-4.2.0/dhcp-3.0.3-dhclient-dbus.patch |   86 ----------------
 .../dhcp/dhcp-4.2.0/fix-client-path.patch          |   23 -----
 .../dhcp/dhcp-4.2.0/fix-external-bind.patch        |  103 --------------------
 .../dhcp/dhcp-4.2.0/fixincludes.patch              |   12 ---
 .../dhcp/dhcp-4.2.0/noattrmode.patch               |   21 ----
 meta/recipes-connectivity/dhcp/dhcp-4.2.0/site.h   |   21 ----
 .../dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch   |   86 ++++++++++++++++
 .../dhcp/dhcp-4.2.3-P2/fix-client-path.patch       |   23 +++++
 .../dhcp/dhcp-4.2.3-P2/fix-external-bind.patch     |  103 ++++++++++++++++++++
 .../dhcp/dhcp-4.2.3-P2/fixincludes.patch           |   12 +++
 .../dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch     |   25 +++++
 .../dhcp/dhcp-4.2.3-P2/noattrmode.patch            |   21 ++++
 .../recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h |   21 ++++
 meta/recipes-connectivity/dhcp/dhcp.inc            |    9 +--
 meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb       |   12 ---
 meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb    |   12 +++
 16 files changed, 305 insertions(+), 285 deletions(-)
 delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/dhcp-3.0.3-dhclient-dbus.patch
 delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-client-path.patch
 delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-external-bind.patch
 delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/fixincludes.patch
 delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/noattrmode.patch
 delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/site.h
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h
 delete mode 100644 meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb
 create mode 100644 meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb
Phil Blundell - Feb. 8, 2012, 4:10 p.m.
On Wed, 2012-02-08 at 18:06 +0200, Andrei Gherzan wrote:
> 1. Update to 4.2.3-P2
> 2. From 4.2.0 final release, -lcrypto check was removed and we compile static libraries
> from bind that are linked to libcrypto. This is why i added a patch in order to add
> -lcrypto to LIBS.
> 
> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>

[...]

> @@ -66,7 +61,7 @@ FILES_dhcp-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp
>  
>  FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
>  
> -FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
> +FILES_dhcp-client = "${sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
>  RDEPENDS_dhcp-client = "bash"
>  
>  FILES_dhcp-omshell = "${bindir}/omshell"

This isn't just a straightforward update, you seem to be moving dhclient
from ${base_sbindir} to ${sbindir}.  If that's a good thing (which
doesn't seem totally obvious to me) then it ought at least to be
mentioned in the commit message.

p.
Otavio Salvador - Feb. 8, 2012, 4:30 p.m.
On Wed, Feb 8, 2012 at 14:10, Phil Blundell <philb@gnu.org> wrote:

> This isn't just a straightforward update, you seem to be moving dhclient
> from ${base_sbindir} to ${sbindir}.  If that's a good thing (which
> doesn't seem totally obvious to me) then it ought at least to be
> mentioned in the commit message.
>

He is doing that because it links against libcrypt that is at ${libdir}.
But it clearly needs to be in another commit or, at least, explicit in the
changlog.
Mark Hatle - Feb. 8, 2012, 4:31 p.m.
On 2/8/12 11:10 AM, Phil Blundell wrote:
> On Wed, 2012-02-08 at 18:06 +0200, Andrei Gherzan wrote:
>> 1. Update to 4.2.3-P2
>> 2. From 4.2.0 final release, -lcrypto check was removed and we compile static libraries
>> from bind that are linked to libcrypto. This is why i added a patch in order to add
>> -lcrypto to LIBS.
>>
>> Signed-off-by: Andrei Gherzan<andrei@gherzan.ro>
>
> [...]
>
>> @@ -66,7 +61,7 @@ FILES_dhcp-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp
>>
>>   FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
>>
>> -FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
>> +FILES_dhcp-client = "${sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
>>   RDEPENDS_dhcp-client = "bash"
>>
>>   FILES_dhcp-omshell = "${bindir}/omshell"
>
> This isn't just a straightforward update, you seem to be moving dhclient
> from ${base_sbindir} to ${sbindir}.  If that's a good thing (which
> doesn't seem totally obvious to me) then it ought at least to be
> mentioned in the commit message.

I believe that dhcp-client was in the base_sbindir specifically to enable early 
boot/network setup before /usr is potentially available.  I think this is still 
desired.

--Mark

> p.
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Andrei Gherzan - Feb. 8, 2012, 4:36 p.m.
On 02/08/2012 06:31 PM, Mark Hatle wrote:
> On 2/8/12 11:10 AM, Phil Blundell wrote:
>> On Wed, 2012-02-08 at 18:06 +0200, Andrei Gherzan wrote:
>>> 1. Update to 4.2.3-P2
>>> 2. From 4.2.0 final release, -lcrypto check was removed and we 
>>> compile static libraries
>>> from bind that are linked to libcrypto. This is why i added a patch 
>>> in order to add
>>> -lcrypto to LIBS.
>>>
>>> Signed-off-by: Andrei Gherzan<andrei@gherzan.ro>
>>
>> [...]
>>
>>> @@ -66,7 +61,7 @@ FILES_dhcp-server-config = 
>>> "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp
>>>
>>>   FILES_dhcp-relay = "${sbindir}/dhcrelay 
>>> ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
>>>
>>> -FILES_dhcp-client = "${base_sbindir}/dhclient 
>>> ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
>>> +FILES_dhcp-client = "${sbindir}/dhclient 
>>> ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
>>>   RDEPENDS_dhcp-client = "bash"
>>>
>>>   FILES_dhcp-omshell = "${bindir}/omshell"
>>
>> This isn't just a straightforward update, you seem to be moving dhclient
>> from ${base_sbindir} to ${sbindir}.  If that's a good thing (which
>> doesn't seem totally obvious to me) then it ought at least to be
>> mentioned in the commit message.
>
> I believe that dhcp-client was in the base_sbindir specifically to 
> enable early boot/network setup before /usr is potentially available.  
> I think this is still desired. 

In this case we will have to move -lcrypto as it is in ${libdir}. 
Change-log will be edited after this will be cleared (sorry).
But still we need to conclude on a solution about this.

@g
Phil Blundell - Feb. 8, 2012, 5 p.m.
On Wed, 2012-02-08 at 14:30 -0200, Otavio Salvador wrote:
> On Wed, Feb 8, 2012 at 14:10, Phil Blundell <philb@gnu.org> wrote:
>         This isn't just a straightforward update, you seem to be
>         moving dhclient
>         from ${base_sbindir} to ${sbindir}.  If that's a good thing
>         (which
>         doesn't seem totally obvious to me) then it ought at least to
>         be
>         mentioned in the commit message.
>         
> 
> He is doing that because it links against libcrypt that is at
> ${libdir}. But it clearly needs to be in another commit or, at least,
> explicit in the changlog.

Yeah, I guessed it was probably something like that.  But this seems
like a bad solution since anybody who has /usr separate probably does
want dhclient during bootup.  In particular, if you have /usr on NFS
then you might be hosed if dhclient is in /usr/bin.

It seems like the right way to fix this is one of:

a) move libcrypto to ${base_libdir}, or
b) stop dhclient from linking against libcrypto, or
c) make it link against the static rather than shared library

Do we know why dhclient has grown this dependency on libcrypto in the
first place?  Or, as an alternative data point, is there a particular
reason why this upgrade is required (i.e. could we just stick with the
old version)?

But, the main point I was trying to make was that the checkin message
did not adequately describe what the patch was doing.  I think the
quality of patches that are being applied to oe-core is, for the most
part, pretty good nowadays but there still do seem to be quite a few
with poor/inaccurate checkin messages and this is an area where it seems
like it should be possible to do better with relatively little effort.  

For example, looking at the git log for the last week, there are at
least 3 commits which don't have the recipe name at the start of the
subject line.  Although this sounds like a trivial thing it is actually
quite annoying if you're trying to scan the git logs to see what changes
have been applied to a recipe or set of recipes.  Similarly, if the
commit message can't be relied upon to accurately describe what has been
changed, you end up having to read all the diffs for every change which
is quite a tedious business.

p.
Andrei Gherzan - Feb. 8, 2012, 6:40 p.m.
On 02/08/2012 07:00 PM, Phil Blundell wrote:
> On Wed, 2012-02-08 at 14:30 -0200, Otavio Salvador wrote:
>> On Wed, Feb 8, 2012 at 14:10, Phil Blundell<philb@gnu.org>  wrote:
>>          This isn't just a straightforward update, you seem to be
>>          moving dhclient
>>          from ${base_sbindir} to ${sbindir}.  If that's a good thing
>>          (which
>>          doesn't seem totally obvious to me) then it ought at least to
>>          be
>>          mentioned in the commit message.
>>
>>
>> He is doing that because it links against libcrypt that is at
>> ${libdir}. But it clearly needs to be in another commit or, at least,
>> explicit in the changlog.
> Yeah, I guessed it was probably something like that.  But this seems
> like a bad solution since anybody who has /usr separate probably does
> want dhclient during bootup.  In particular, if you have /usr on NFS
> then you might be hosed if dhclient is in /usr/bin.
>
> It seems like the right way to fix this is one of:
>
> a) move libcrypto to ${base_libdir}, or
> b) stop dhclient from linking against libcrypto, or
> c) make it link against the static rather than shared library
>
> Do we know why dhclient has grown this dependency on libcrypto in the
> first place?  Or, as an alternative data point, is there a particular
> reason why this upgrade is required (i.e. could we just stick with the
> old version)?
>
There is no "grown dependency on libcrypto" in this version. It used to 
be in last version we had as well but as this is a warning, i guess it 
was ignored as other QA warning are present in a core-image-minimal 
build for example.
Here is the log from a build where it used to be dhcp 4.2.0 (last 
version in yocto):

    dhcp-4.2.0: dhcp: {build
    path}/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/dhcp-4.2.0-r5/packages-split/dhcp-client/sbin/dhclient
    links to something under exec_prefix
    dhcp-4.2.0: ldd reports: <----->libcrypto.so.1.0.0 => {build
    path}/tmp/sysroots/vexpressa9/usr/lib/libcrypto.so.1.0.0 (0xdead1000)


So this is not a new thing. In 4.2.3 this library check and linkage is 
removed - from 4.2.1 rel notes:

    - ./configure on longer searches for -lcrypto to explicitly link against.
       This fixes a bug where 'dhclient' would have shared library dependencies
       on '/usr/lib'.  [ISC-Bugs #21967]


While integrating the new version of dhcp, the compile stage used to fail:

    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/sysroots/imx53qsb/usr/lib//libdns.a(openssldh_link.o):
    In function `openssldh_fromdns':
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:344:
    undefined reference to `DH_new'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:387:
    undefined reference to `BN_bin2bn'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:435:
    undefined reference to `DH_free'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:425:
    undefined reference to `BN_bin2bn'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:430:
    undefined reference to `DH_free'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:409:
    undefined reference to `BN_bin2bn'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:410:
    undefined reference to `BN_cmp'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:411:
    undefined reference to `BN_free'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:438:
    undefined reference to `BN_bin2bn'
    |
    /home/agherzan/work/wrs/yocto-adige/2012-02-08-12-18-imx53/tmp-eglibc-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/bind-9.8.1-r2/bind-9.8.1/lib/export/dns/../../../lib/dns/openssldh_link.c:441:
    undefined reference to `BN_num_bits'


so i had to add this -lcrypto check back in configure.

At that point i didn't realize that this change could create problems 
with lcrypto.

omapip needs libdns.a and libisc.a from bind, which needs lcypto. Client 
needs omapip. So this is the way things are linked around. This is why 
in the end omapip needs lcrypto.
For example libdna.a contains openssl_link.o - openssl_link.c. In 
dst__openssl_init function we have references to:
CRYPTO_num_locks
OPENSSL_config

All these from lcrypto.


To sum it up:
1. lcrypto / dhclient is not a new problem
2. -lcryto was present in LIBS in the last yocto version of dhcp
3. Your "commit message" observations are correct. I will be a little 
more careful about this.
4. My opinion on this would be to

@g
Otavio Salvador - Feb. 8, 2012, 6:46 p.m.
On Wed, Feb 8, 2012 at 16:40, Andrei Gherzan <andrei@gherzan.ro> wrote:

> ...
>

In my opinion we ought to merge your patch without handling crypto issue
right now while we set in one way of fixing it.

It seems to me that the fix is to move libcrypto to base_libdir and don't
touch dhcp for this.
Andrei Gherzan - Feb. 8, 2012, 7 p.m.
On 02/08/2012 08:46 PM, Otavio Salvador wrote:
> On Wed, Feb 8, 2012 at 16:40, Andrei Gherzan <andrei@gherzan.ro 
> <mailto:andrei@gherzan.ro>> wrote:
>
>     ...
>
>
> In my opinion we ought to merge your patch without handling crypto 
> issue right now while we set in one way of fixing it.
>
> It seems to me that the fix is to move libcrypto to base_libdir and 
> don't touch dhcp for this.
>
>
I don't know why my conclusion line from the last email was erased but 
this was my solution as well. I mean a quick and functional one.

@g
Andrei Gherzan - Feb. 8, 2012, 10:20 p.m.
On 02/08/2012 08:46 PM, Otavio Salvador wrote:
> On Wed, Feb 8, 2012 at 16:40, Andrei Gherzan <andrei@gherzan.ro 
> <mailto:andrei@gherzan.ro>> wrote:
>
>     ...
>
>
> In my opinion we ought to merge your patch without handling crypto 
> issue right now while we set in one way of fixing it.
>
> It seems to me that the fix is to move libcrypto to base_libdir and 
> don't touch dhcp for this.
>
Should we move the whole openssl package to prefix=/ ? Or just the 
libcrypto library?

@g
Khem Raj - Feb. 8, 2012, 10:28 p.m.
On Wed, Feb 8, 2012 at 2:20 PM, Andrei Gherzan <andrei@gherzan.ro> wrote:
>
> Should we move the whole openssl package to prefix=/ ? Or just the libcrypto
> library?

if libcrypto is emitted as a separate package then it would be easier
that you just relocate
it but if its bundled in a package that contains more stuff then you
might have to bean it out
and also make sure that all the dependencies that libcrypto requires
at runtime are also then
moved into /lib
Saul Wold - Feb. 24, 2012, 6:27 p.m.
On 02/08/2012 08:06 AM, Andrei Gherzan wrote:
> 1. Update to 4.2.3-P2
> 2. From 4.2.0 final release, -lcrypto check was removed and we compile static libraries
> from bind that are linked to libcrypto. This is why i added a patch in order to add
> -lcrypto to LIBS.
>
> Signed-off-by: Andrei Gherzan<andrei@gherzan.ro>
> ---
>   .../dhcp/dhcp-4.2.0/dhcp-3.0.3-dhclient-dbus.patch |   86 ----------------
>   .../dhcp/dhcp-4.2.0/fix-client-path.patch          |   23 -----
>   .../dhcp/dhcp-4.2.0/fix-external-bind.patch        |  103 --------------------
>   .../dhcp/dhcp-4.2.0/fixincludes.patch              |   12 ---
>   .../dhcp/dhcp-4.2.0/noattrmode.patch               |   21 ----
>   meta/recipes-connectivity/dhcp/dhcp-4.2.0/site.h   |   21 ----
>   .../dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch   |   86 ++++++++++++++++
>   .../dhcp/dhcp-4.2.3-P2/fix-client-path.patch       |   23 +++++
>   .../dhcp/dhcp-4.2.3-P2/fix-external-bind.patch     |  103 ++++++++++++++++++++
>   .../dhcp/dhcp-4.2.3-P2/fixincludes.patch           |   12 +++
>   .../dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch     |   25 +++++
>   .../dhcp/dhcp-4.2.3-P2/noattrmode.patch            |   21 ++++
>   .../recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h |   21 ++++
>   meta/recipes-connectivity/dhcp/dhcp.inc            |    9 +--
>   meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb       |   12 ---
>   meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb    |   12 +++
>   16 files changed, 305 insertions(+), 285 deletions(-)
>   delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/dhcp-3.0.3-dhclient-dbus.patch
>   delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-client-path.patch
>   delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-external-bind.patch
>   delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/fixincludes.patch
>   delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/noattrmode.patch
>   delete mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.0/site.h
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h
>   delete mode 100644 meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb
>   create mode 100644 meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb
>

Merged into OE-core


Thanks
	Sau!

Patch

diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/dhcp-3.0.3-dhclient-dbus.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.0/dhcp-3.0.3-dhclient-dbus.patch
deleted file mode 100644
index b4a666d..0000000
--- a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/dhcp-3.0.3-dhclient-dbus.patch
+++ /dev/null
@@ -1,86 +0,0 @@ 
-Upstream-Status: Inappropriate [distribution]
-
---- client/scripts/bsdos
-+++ client/scripts/bsdos
-@@ -47,6 +47,11 @@
-     . /etc/dhcp/dhclient-exit-hooks
-   fi
- # probably should do something with exit status of the local script
-+  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+    dbus-send --system --dest=com.redhat.dhcp \
-+      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+  fi
-   exit $exit_status
- }
- 
---- client/scripts/freebsd
-+++ client/scripts/freebsd
-@@ -57,6 +57,11 @@
-     . /etc/dhcp/dhclient-exit-hooks
-   fi
- # probably should do something with exit status of the local script
-+  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+    dbus-send --system --dest=com.redhat.dhcp \
-+      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+  fi
-   exit $exit_status
- }
- 
---- client/scripts/linux
-+++ client/scripts/linux
-@@ -69,6 +69,11 @@
-     . /etc/dhcp/dhclient-exit-hooks
-   fi
- # probably should do something with exit status of the local script
-+  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+    dbus-send --system --dest=com.redhat.dhcp \
-+      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+  fi
-   exit $exit_status
- }
- 
---- client/scripts/netbsd
-+++ client/scripts/netbsd
-@@ -47,6 +47,11 @@
-     . /etc/dhcp/dhclient-exit-hooks
-   fi
- # probably should do something with exit status of the local script
-+  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+    dbus-send --system --dest=com.redhat.dhcp \
-+      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+  fi
-   exit $exit_status
- }
- 
---- client/scripts/openbsd
-+++ client/scripts/openbsd
-@@ -47,6 +47,11 @@
-     . /etc/dhcp/dhclient-exit-hooks
-   fi
- # probably should do something with exit status of the local script
-+  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+    dbus-send --system --dest=com.redhat.dhcp \
-+      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+  fi
-   exit $exit_status
- }
- 
---- client/scripts/solaris
-+++ client/scripts/solaris
-@@ -47,6 +47,11 @@
-     . /etc/dhcp/dhclient-exit-hooks
-   fi
- # probably should do something with exit status of the local script
-+  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+    dbus-send --system --dest=com.redhat.dhcp \
-+      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+  fi
-   exit $exit_status
- }
- 
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-client-path.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-client-path.patch
deleted file mode 100644
index 97ed0d9..0000000
--- a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-client-path.patch
+++ /dev/null
@@ -1,23 +0,0 @@ 
-CLIENT_PATH is the only environment when executing dhclient-script,
-without this patch, dhclient-script won't run properly because it
-invokes ifconfig and route
-
-Upstream-Status: Inappropriate [configuration]
-
-7/28/2010 - qhe
-
-diff -ru dhcp-4.1.1-P1.orig//client/Makefile.am dhcp-4.1.1-P1/client/Makefile.am
---- dhcp-4.1.1-P1.orig//client/Makefile.am	2010-07-29 13:20:05.000000000 +0800
-+++ dhcp-4.1.1-P1/client/Makefile.am	2010-07-29 13:28:14.000000000 +0800
-@@ -10,9 +10,9 @@
- EXTRA_DIST = $(man_MANS)
- 
- dhclient.o: dhclient.c
--	$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
-+	$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \
- 		   -DLOCALSTATEDIR='"$(localstatedir)"' -c dhclient.c
- 
- dhc6.o: dhc6.c
--	$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
-+	$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \
- 		   -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-external-bind.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-external-bind.patch
deleted file mode 100644
index 4f11655..0000000
--- a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fix-external-bind.patch
+++ /dev/null
@@ -1,103 +0,0 @@ 
-Upstream-Status: Pending
-
-11/30/2010
---with-libbind=PATH is available but not used by Makefile,
-this patch is to allow building with external bind
-
-Signed-off-by: Qing He <qing.he@intel.com>
-
-diff --git a/Makefile.am b/Makefile.am
-index 928d926..cd17af8 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -21,7 +21,7 @@ EXTRA_DIST = RELNOTES LICENSE \
- 	     util/bindvar.sh \
- 	     bind/Makefile bind/bind.tar.gz bind/version.tmp 
- 
--SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server
-+SUBDIRS = includes tests common dst omapip client dhcpctl relay server
- 
- nobase_include_HEADERS = dhcpctl/dhcpctl.h
- 
-diff --git a/client/Makefile.am b/client/Makefile.am
-index 77ed055..5a77f2d 100644
---- a/client/Makefile.am
-+++ b/client/Makefile.am
-@@ -5,7 +5,7 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \
- 		   scripts/netbsd scripts/nextstep scripts/openbsd \
- 		   scripts/solaris scripts/openwrt
- dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
--		 ../bind/lib/libdns.a ../bind/lib/libisc.a
-+		 $(libbind)/libdns.a $(libbind)/libisc.a
- man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
- EXTRA_DIST = $(man_MANS)
- 
-diff --git a/configure.ac b/configure.ac
-index ff832aa..60d342c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -500,6 +500,7 @@ no)
- 	libbind="$use_libbind"
- 	;;
- esac
-+AC_SUBST([libbind])
- 
- # OpenLDAP support.
- AC_ARG_WITH(ldap,
-diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am
-index 61049be..85aefa3 100644
---- a/dhcpctl/Makefile.am
-+++ b/dhcpctl/Makefile.am
-@@ -6,10 +6,10 @@ EXTRA_DIST = $(man_MANS)
- 
- omshell_SOURCES = omshell.c
- omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
--	        ../bind/lib/libdns.a ../bind/lib/libisc.a
-+	        $(libbind)/libdns.a $(libbind)/libisc.a
- 
- libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c
- 
- cltest_SOURCES = cltest.c
- cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
--	       ../bind/lib/libdns.a ../bind/lib/libisc.a
-\ No newline at end of file
-+	       $(libbind)/libdns.a $(libbind)/libisc.a
-diff --git a/omapip/Makefile.am b/omapip/Makefile.am
-index 595950a..17f2233 100644
---- a/omapip/Makefile.am
-+++ b/omapip/Makefile.am
-@@ -10,5 +10,5 @@ man_MANS = omapi.3
- EXTRA_DIST = $(man_MANS)
- 
- svtest_SOURCES = test.c
--svtest_LDADD = libomapi.a ../bind/lib/libdns.a ../bind/lib/libisc.a
-+svtest_LDADD = libomapi.a $(libbind)/libdns.a $(libbind)/libisc.a
- 
-diff --git a/relay/Makefile.am b/relay/Makefile.am
-index d8757ca..a7885da 100644
---- a/relay/Makefile.am
-+++ b/relay/Makefile.am
-@@ -3,7 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"'
- sbin_PROGRAMS = dhcrelay
- dhcrelay_SOURCES = dhcrelay.c
- dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
--		 ../bind/lib/libdns.a ../bind/lib/libisc.a
-+		 $(libbind)/libdns.a $(libbind)/libisc.a
- man_MANS = dhcrelay.8
- EXTRA_DIST = $(man_MANS)
- 
-diff --git a/server/Makefile.am b/server/Makefile.am
-index cdfaf47..d2c254b 100644
---- a/server/Makefile.am
-+++ b/server/Makefile.am
-@@ -8,8 +8,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
- 
- dhcpd_CFLAGS = $(LDAP_CFLAGS)
- dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
--	      ../dhcpctl/libdhcpctl.a ../bind/lib/libdns.a \
--	      ../bind/lib/libisc.a
-+	      ../dhcpctl/libdhcpctl.a $(libbind)/libdns.a \
-+	      $(libbind)/libisc.a
- 
- man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
- EXTRA_DIST = $(man_MANS)
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fixincludes.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fixincludes.patch
deleted file mode 100644
index e33c9dd..0000000
--- a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/fixincludes.patch
+++ /dev/null
@@ -1,12 +0,0 @@ 
-Upstream-Status: Pending
-
---- dhcp-3.0.2/common/tr.c~compile	2005-10-13 14:23:37.000000000 +0200
-+++ dhcp-3.0.2/common/tr.c	2005-10-13 14:23:45.000000000 +0200
-@@ -39,6 +39,7 @@
- #include "includes/netinet/udp.h"
- #include "includes/netinet/if_ether.h"
- #include "netinet/if_tr.h"
-+#include <asm/types.h>
- #include <sys/time.h>
- 
- /*
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/noattrmode.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.0/noattrmode.patch
deleted file mode 100644
index 5c635e8..0000000
--- a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/noattrmode.patch
+++ /dev/null
@@ -1,21 +0,0 @@ 
-Upstream-Status: Backport
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
---- dhcp-3.0.1/includes/dhcpd.h~compile
-+++ dhcp-3.0.1/includes/dhcpd.h
-@@ -306,9 +306,9 @@
- #	define EPHEMERAL_FLAGS		(MS_NULL_TERMINATION | \
- 					 UNICAST_BROADCAST_HACK)
- 
--	binding_state_t __attribute__ ((mode (__byte__))) binding_state;
--	binding_state_t __attribute__ ((mode (__byte__))) next_binding_state;
--	binding_state_t __attribute__ ((mode (__byte__))) desired_binding_state;
-+	binding_state_t binding_state;
-+	binding_state_t next_binding_state;
-+	binding_state_t desired_binding_state;
- 	
- 	struct lease_state *state;
- 
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/site.h b/meta/recipes-connectivity/dhcp/dhcp-4.2.0/site.h
deleted file mode 100644
index 2289554..0000000
--- a/meta/recipes-connectivity/dhcp/dhcp-4.2.0/site.h
+++ /dev/null
@@ -1,21 +0,0 @@ 
-/*
- * define config file location in ${S}/includes/site.h
- * still need to take care of installation path (${sysconfdir}/dhcpd.conf)
- *
- * 7/22/2010 - qhe
- */
-
-/* Define this if you want DNS update functionality to be available. */
-
-#define NSUPDATE
-
-/* Define this if you aren't debugging and you want to save memory
-   (potentially a _lot_ of memory) by allocating leases in chunks rather
-   than one at a time. */
-
-#define COMPACT_LEASES
-
-
-/* local */
-#define _PATH_DHCPD_CONF     "/etc/dhcp/dhcpd.conf"
-#define _PATH_DHCLIENT_CONF  "/etc/dhcp/dhclient.conf"
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch
new file mode 100644
index 0000000..b4a666d
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch
@@ -0,0 +1,86 @@ 
+Upstream-Status: Inappropriate [distribution]
+
+--- client/scripts/bsdos
++++ client/scripts/bsdos
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/freebsd
++++ client/scripts/freebsd
+@@ -57,6 +57,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/linux
++++ client/scripts/linux
+@@ -69,6 +69,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/netbsd
++++ client/scripts/netbsd
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/openbsd
++++ client/scripts/openbsd
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/solaris
++++ client/scripts/solaris
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch
new file mode 100644
index 0000000..97ed0d9
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch
@@ -0,0 +1,23 @@ 
+CLIENT_PATH is the only environment when executing dhclient-script,
+without this patch, dhclient-script won't run properly because it
+invokes ifconfig and route
+
+Upstream-Status: Inappropriate [configuration]
+
+7/28/2010 - qhe
+
+diff -ru dhcp-4.1.1-P1.orig//client/Makefile.am dhcp-4.1.1-P1/client/Makefile.am
+--- dhcp-4.1.1-P1.orig//client/Makefile.am	2010-07-29 13:20:05.000000000 +0800
++++ dhcp-4.1.1-P1/client/Makefile.am	2010-07-29 13:28:14.000000000 +0800
+@@ -10,9 +10,9 @@
+ EXTRA_DIST = $(man_MANS)
+ 
+ dhclient.o: dhclient.c
+-	$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
++	$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \
+ 		   -DLOCALSTATEDIR='"$(localstatedir)"' -c dhclient.c
+ 
+ dhc6.o: dhc6.c
+-	$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
++	$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \
+ 		   -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch
new file mode 100644
index 0000000..4f11655
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch
@@ -0,0 +1,103 @@ 
+Upstream-Status: Pending
+
+11/30/2010
+--with-libbind=PATH is available but not used by Makefile,
+this patch is to allow building with external bind
+
+Signed-off-by: Qing He <qing.he@intel.com>
+
+diff --git a/Makefile.am b/Makefile.am
+index 928d926..cd17af8 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -21,7 +21,7 @@ EXTRA_DIST = RELNOTES LICENSE \
+ 	     util/bindvar.sh \
+ 	     bind/Makefile bind/bind.tar.gz bind/version.tmp 
+ 
+-SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server
++SUBDIRS = includes tests common dst omapip client dhcpctl relay server
+ 
+ nobase_include_HEADERS = dhcpctl/dhcpctl.h
+ 
+diff --git a/client/Makefile.am b/client/Makefile.am
+index 77ed055..5a77f2d 100644
+--- a/client/Makefile.am
++++ b/client/Makefile.am
+@@ -5,7 +5,7 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \
+ 		   scripts/netbsd scripts/nextstep scripts/openbsd \
+ 		   scripts/solaris scripts/openwrt
+ dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
+-		 ../bind/lib/libdns.a ../bind/lib/libisc.a
++		 $(libbind)/libdns.a $(libbind)/libisc.a
+ man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
+ EXTRA_DIST = $(man_MANS)
+ 
+diff --git a/configure.ac b/configure.ac
+index ff832aa..60d342c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -500,6 +500,7 @@ no)
+ 	libbind="$use_libbind"
+ 	;;
+ esac
++AC_SUBST([libbind])
+ 
+ # OpenLDAP support.
+ AC_ARG_WITH(ldap,
+diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am
+index 61049be..85aefa3 100644
+--- a/dhcpctl/Makefile.am
++++ b/dhcpctl/Makefile.am
+@@ -6,10 +6,10 @@ EXTRA_DIST = $(man_MANS)
+ 
+ omshell_SOURCES = omshell.c
+ omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
+-	        ../bind/lib/libdns.a ../bind/lib/libisc.a
++	        $(libbind)/libdns.a $(libbind)/libisc.a
+ 
+ libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c
+ 
+ cltest_SOURCES = cltest.c
+ cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
+-	       ../bind/lib/libdns.a ../bind/lib/libisc.a
+\ No newline at end of file
++	       $(libbind)/libdns.a $(libbind)/libisc.a
+diff --git a/omapip/Makefile.am b/omapip/Makefile.am
+index 595950a..17f2233 100644
+--- a/omapip/Makefile.am
++++ b/omapip/Makefile.am
+@@ -10,5 +10,5 @@ man_MANS = omapi.3
+ EXTRA_DIST = $(man_MANS)
+ 
+ svtest_SOURCES = test.c
+-svtest_LDADD = libomapi.a ../bind/lib/libdns.a ../bind/lib/libisc.a
++svtest_LDADD = libomapi.a $(libbind)/libdns.a $(libbind)/libisc.a
+ 
+diff --git a/relay/Makefile.am b/relay/Makefile.am
+index d8757ca..a7885da 100644
+--- a/relay/Makefile.am
++++ b/relay/Makefile.am
+@@ -3,7 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"'
+ sbin_PROGRAMS = dhcrelay
+ dhcrelay_SOURCES = dhcrelay.c
+ dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
+-		 ../bind/lib/libdns.a ../bind/lib/libisc.a
++		 $(libbind)/libdns.a $(libbind)/libisc.a
+ man_MANS = dhcrelay.8
+ EXTRA_DIST = $(man_MANS)
+ 
+diff --git a/server/Makefile.am b/server/Makefile.am
+index cdfaf47..d2c254b 100644
+--- a/server/Makefile.am
++++ b/server/Makefile.am
+@@ -8,8 +8,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
+ 
+ dhcpd_CFLAGS = $(LDAP_CFLAGS)
+ dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
+-	      ../dhcpctl/libdhcpctl.a ../bind/lib/libdns.a \
+-	      ../bind/lib/libisc.a
++	      ../dhcpctl/libdhcpctl.a $(libbind)/libdns.a \
++	      $(libbind)/libisc.a
+ 
+ man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
+ EXTRA_DIST = $(man_MANS)
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch
new file mode 100644
index 0000000..e33c9dd
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch
@@ -0,0 +1,12 @@ 
+Upstream-Status: Pending
+
+--- dhcp-3.0.2/common/tr.c~compile	2005-10-13 14:23:37.000000000 +0200
++++ dhcp-3.0.2/common/tr.c	2005-10-13 14:23:45.000000000 +0200
+@@ -39,6 +39,7 @@
+ #include "includes/netinet/udp.h"
+ #include "includes/netinet/if_ether.h"
+ #include "netinet/if_tr.h"
++#include <asm/types.h>
+ #include <sys/time.h>
+ 
+ /*
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch
new file mode 100644
index 0000000..57e10b0
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch
@@ -0,0 +1,25 @@ 
+Author: Andrei Gherzan <andrei@gherzan.ro>
+Date:   Thu Feb 2 23:59:11 2012 +0200
+
+From 4.2.0 final release, -lcrypto check was removed and we compile static libraries
+from bind that are linked to libcrypto. This is why i added a patch in order to add
+-lcrypto to LIBS.
+
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+Upstream-Status: Pending
+
+Index: dhcp-4.2.3-P2-r0/dhcp-4.2.3-P2/configure.ac
+===================================================================
+--- dhcp-4.2.3-P2.orig/configure.ac	2012-02-02 18:04:20.843023196 +0200
++++ dhcp-4.2.3-P2/configure.ac	2012-02-02 17:58:16.000000000 +0200
+@@ -456,6 +456,10 @@
+ # Look for optional headers.
+ AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
+ 
++# find an MD5 library
++AC_SEARCH_LIBS(MD5_Init, [crypto])
++AC_SEARCH_LIBS(MD5Init, [crypto])
++
+ # Solaris needs some libraries for functions
+ AC_SEARCH_LIBS(socket, [socket])
+ AC_SEARCH_LIBS(inet_ntoa, [nsl])
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch
new file mode 100644
index 0000000..5c635e8
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch
@@ -0,0 +1,21 @@ 
+Upstream-Status: Backport
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- dhcp-3.0.1/includes/dhcpd.h~compile
++++ dhcp-3.0.1/includes/dhcpd.h
+@@ -306,9 +306,9 @@
+ #	define EPHEMERAL_FLAGS		(MS_NULL_TERMINATION | \
+ 					 UNICAST_BROADCAST_HACK)
+ 
+-	binding_state_t __attribute__ ((mode (__byte__))) binding_state;
+-	binding_state_t __attribute__ ((mode (__byte__))) next_binding_state;
+-	binding_state_t __attribute__ ((mode (__byte__))) desired_binding_state;
++	binding_state_t binding_state;
++	binding_state_t next_binding_state;
++	binding_state_t desired_binding_state;
+ 	
+ 	struct lease_state *state;
+ 
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h
new file mode 100644
index 0000000..2289554
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h
@@ -0,0 +1,21 @@ 
+/*
+ * define config file location in ${S}/includes/site.h
+ * still need to take care of installation path (${sysconfdir}/dhcpd.conf)
+ *
+ * 7/22/2010 - qhe
+ */
+
+/* Define this if you want DNS update functionality to be available. */
+
+#define NSUPDATE
+
+/* Define this if you aren't debugging and you want to save memory
+   (potentially a _lot_ of memory) by allocating leases in chunks rather
+   than one at a time. */
+
+#define COMPACT_LEASES
+
+
+/* local */
+#define _PATH_DHCPD_CONF     "/etc/dhcp/dhcpd.conf"
+#define _PATH_DHCLIENT_CONF  "/etc/dhcp/dhclient.conf"
diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc
index f66dfba..ac6326c 100644
--- a/meta/recipes-connectivity/dhcp/dhcp.inc
+++ b/meta/recipes-connectivity/dhcp/dhcp.inc
@@ -12,7 +12,7 @@  LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=bb6fd41f5895b67088ebea61ad365
 
 DEPENDS = "bind"
 
-SRC_URI = "ftp://ftp.isc.org/isc/dhcp/dhcp-${PV}.tar.gz \
+SRC_URI = "ftp://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
            file://site.h \
 	   file://init-relay file://default-relay \
 	   file://init-server file://default-server \
@@ -47,12 +47,7 @@  do_install_append () {
 	install -m 0644 ${WORKDIR}/dhcpd.conf ${D}${sysconfdir}/dhcp/dhcpd.conf
 
 	install -d ${D}${base_sbindir}/
-	if [ "${sbindir}" != "${base_sbindir}" ]; then
-		mv ${D}${sbindir}/dhclient ${D}${base_sbindir}/
-	fi
 	install -m 0755 ${S}/client/scripts/linux ${D}${base_sbindir}/dhclient-script
-
-	install -d ${D}${localstatedir}/lib/dhcp/
 }
 
 PACKAGES += "dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell"
@@ -66,7 +61,7 @@  FILES_dhcp-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp
 
 FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
 
-FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
+FILES_dhcp-client = "${sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
 RDEPENDS_dhcp-client = "bash"
 
 FILES_dhcp-omshell = "${bindir}/omshell"
diff --git a/meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb b/meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb
deleted file mode 100644
index 3b1c0e2..0000000
--- a/meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@ 
-require dhcp.inc
-
-PR = "r7"
-
-SRC_URI += "file://fixincludes.patch \
-            file://dhcp-3.0.3-dhclient-dbus.patch;striplevel=0 \
-            file://fix-client-path.patch \
-            file://fix-external-bind.patch \
-           "
-
-SRC_URI[md5sum] = "83abd7c4f9c24d8dd024ca5a71380c0a"
-SRC_URI[sha256sum] = "6260d43423e4c406ba63cd7199502a395e952b13c80a955026c4b82a4e9d4943"
diff --git a/meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb b/meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb
new file mode 100644
index 0000000..24b50ba
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb
@@ -0,0 +1,12 @@ 
+require dhcp.inc
+
+PR = "r0"
+
+SRC_URI += "file://fixincludes.patch \
+            file://dhcp-3.0.3-dhclient-dbus.patch;striplevel=0 \
+            file://fix-external-bind.patch \
+            file://link-with-lcrypto.patch \
+           "
+
+SRC_URI[md5sum] = "14f57fd580d01633d0fad4809007a801"
+SRC_URI[sha256sum] = "5cf7ae2cad9c4ca0103748b2476ec8ea78484e408f8fe597e4e0a4afb051b469"