From patchwork Wed Mar 6 20:05:49 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Reuben Dowle X-Patchwork-Id: 225614 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id 317B32C0343 for ; Thu, 7 Mar 2013 07:05:11 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 77B1730635; Wed, 6 Mar 2013 20:05:09 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jkY1Wj8jxWqo; Wed, 6 Mar 2013 20:05:03 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 8ED1A2FBEB; Wed, 6 Mar 2013 20:05:03 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id B6B128F783 for ; Wed, 6 Mar 2013 20:05:10 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 2BA618C7E6 for ; Wed, 6 Mar 2013 20:05:03 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6xosVsX+1oDi for ; Wed, 6 Mar 2013 20:04:57 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from smtp.4rf.com (smtp.4rf.com [125.236.56.214]) by whitealder.osuosl.org (Postfix) with ESMTPS id F32EA8C402 for ; Wed, 6 Mar 2013 20:04:56 +0000 (UTC) Received: from 4RF-NZ-ORION.local.4rf.com (192.168.0.124) by 4RF-NZ-ALNITAK.local.4rf.com (192.168.0.123) with Microsoft SMTP Server (TLS) id 14.1.438.0; Thu, 7 Mar 2013 09:08:23 +1300 Received: from 4RF-NZ-ORION.local.4rf.com ([fe80::a9c8:d719:63ae:cd9]) by 4rf-nz-orion.local.4rf.com ([fe80::a9c8:d719:63ae:cd9%12]) with mapi id 14.01.0438.000; Thu, 7 Mar 2013 09:05:50 +1300 From: Reuben Dowle To: John Stile , Thomas Petazzoni Thread-Topic: [Buildroot] adding dhcpcd Thread-Index: AQHOGpzQxA7J5JdkAEGXs9zlEY7Kl5iYOH+AgADdybA= Date: Wed, 6 Mar 2013 20:05:49 +0000 Message-ID: <069B5A25F9844945B625ADE7258AC94C061FF823@4rf-nz-orion.local.4rf.com> References: <1362163072.19802.25.camel@genx.eng.msli.com> <5130F7CA.6090203@zacarias.com.ar> <1362500477.20183.74.camel@genx> <20130305194707.474ded42@skate> <1362592916.20183.152.camel@genx> <20130306195844.2f8c14b6@skate> <1362599417.20183.159.camel@genx> In-Reply-To: <1362599417.20183.159.camel@genx> Accept-Language: en-NZ, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [2002:7dec:38db:8000:0:5efe:192.168.0.31] MIME-Version: 1.0 Cc: buildroot Subject: Re: [Buildroot] adding dhcpcd X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net In your patch, you should probably replace the place-holder "...some environment variables..." with setting some actual environment variables. -----Original Message----- From: buildroot-bounces@busybox.net [mailto:buildroot-bounces@busybox.net] On Behalf Of John Stile Sent: Thursday, 7 March 2013 8:50 a.m. To: Thomas Petazzoni Cc: buildroot Subject: Re: [Buildroot] adding dhcpcd Dear Thomas, On Wed, 2013-03-06 at 19:58 +0100, Thomas Petazzoni wrote: > Dear John Stile, > > On Wed, 06 Mar 2013 10:01:56 -0800, John Stile wrote: > > > If I'm going to rebuild a good package I might as well use the latest > > version of dhcpcd, so I'll start with 5.6.7. > > Good idea. > > > I am not sure if > > http://roy.marples.name/downloads/dhcpcd/dhcpcd-5.6.7.tar.bz2 > > uses cmake or automake. The tarball contains a Makefile, and their > > configure script has the comment, "Try and be like autotools configure, > > but without autotools", so I assume it is just using gnu make. > > Your analysis is correct. It has an hand-crafted configure script that > writes values into a config.mk, which presumably, gets read by the > Makefile. So it's neither autotools nor CMake, so you have to use the > "generic-package" infrastructure. > > > It does > > contain a Makefile... but I don't see how to use it from: > > http://buildroot.org/downloads/manual/manual.html#generic-package-tutorial > > > > So I tried to make a pacakge using > > $(eval $(generic-package)) > > Good. > > Your file below has been line-wrapped by your e-mail client. Not a big > issue just to discuss, but if you want to submit a patch, you'll have > to fix your e-mail client, or better, use 'git send-email'. > > > When I run make in buildroot, the package is not downloaded, or built. > > Below is my package file so far. > > Please send a complete patch. The main reason is usually that your > BR2_PACKAGE_ option is misnamed, or that the package is not > located in the proper directory. > > When creating a package named "foo", it is very important that: > > * The option in Config.in is BR2_PACKAGE_FOO. > > * The package is located in package/foo/. > > > ############################################################# > > # > > # dhcpcd > > # > > ############################################################# > > > > DHCPCD_VERSION = 5.6.7 > > DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.bz2 > > DHCPCD_SITE = http://roy.marples.name/downloads/dhcpcd > > DHCPCD_LICENSE = GPLv3+ > > DHCPCD_LICENSE_FILES = COPYING > > The license is not GPLv3+, it's BSD-2c, and there is no COPYING file. > > > DHCPCD_INSTALL_STAGING = YES > > No, it's just installing an application, so setting > DHCPD_INSTALL_STAGING to YES is not necessary. > > > DHCPCD_CONFIG_SCRIPTS = configure > > No, the configure script is not a -config script. > > > DHCPCD_DEPENDENCIES = > > Not needed, it is empty by default. > > > DHCPCD_SITE_METHOD = wget > > Not needed, it is guessed automatically from the URL (which starts by > http://). > > Before the BUILD_CMDS, you should have a: > > define DHCPD_CONFIGURE_CMDS > (cd $(@D); > ...some environment variables... > ./configure > ...some options...) > endef > > This will call the configure script. > > > define DHCPCD_BUILD_CMDS > > $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all > > endef > > If you run the configure script, then the CC and LD are defined in > config.mk, so there should be no need to pass them in the environment > anymore. > > > define DHCPCD_INSTALL_STAGING_CMDS > > $(INSTALL) -D -m 0644 $(@D)/dhcpcd.conf > > $(STAGING_DIR)/etc/dhcpcd.conf > > $(INSTALL) -D -m 0755 $(@D)/dhcpcd $(STAGING_DIR)/usr/bin/dhcpcd > > endef > > Not needed as we should not be installing dhcpcd in the staging area. > > > define DHCPCD_INSTALL_TARGET_CMDS > > $(INSTALL) -D -m 0755 $(@D)/dhcpcd $(TARGET_DIR)/usr/bin > > This should be: > > $(INSTALL) -D -m 0755 $(@D)/dhcpcd $(TARGET_DIR)/usr/bin/dhcpcd > > > $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/dhcpcd.conf > > Are you you want to create the /etc/dhcpcd.conf file? It would have > thought you wanted to copy the default dhcpcd.conf configuration file, > no? If so: > > $(INSTALL) -D -m 0644 $(@D)/dhcpcd.conf $(TARGET_DIR)/etc/dhcpcd.conf > > > endef > > > > define DHCPCD_PERMISSIONS > > /usr/bin/dhcpcd f 4755 0 0 - - - - - > > endef > > I'm not sure, does dhcpcd needs to be installed setuid-root? > > Anyway, despite those comments, you are definitely on the right track > to create a proper package! > Thanks, > > Thomas I think I have addressed the problem with the make file, but it still silently does not build. I am attaching a complete patch. ------------------ Begin dhcpcd.patch ------------------ Adding package dhcpcd to buildroot signed-off-by: John Stile --- a/buildroot-2011.11/package/Config.in 2013-03-06 11:40:52.000000000 -0800 +++ b/buildroot-2011.11/package/Config.in 2013-02-28 14:59:32.000000000 -0800 @@ -409,6 +409,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/dhcp/Config.in" endif source "package/dhcpdump/Config.in" +source "package/dhcpcd/Config.in" source "package/dnsmasq/Config.in" source "package/dropbear/Config.in" source "package/ebtables/Config.in" --- a/buildroot-2011.11/package/dhcpcd/Config.in 2013-03-06 11:44:03.000000000 -0800 +++ b/buildroot-2011.11/package/dhcpcd/Config.in 2013-03-06 07:55:53.000000000 -0800 @@ -0,0 +1,5 @@ +config BR2_PACKAGE_DHCPCD + bool "dhcpcd" + depends on BR2_INET_IPV6 + help + an RFC2131 compliant DHCP client --- a/buildroot-2011.11/package/dhcpcd/dhcpcd.mk 2013-03-06 11:44:03.000000000 -0800 +++ b/buildroot-2011.11/package/dhcpcd/dhcpcd.mk 2013-03-06 11:38:17.000000000 -0800 @@ -0,0 +1,43 @@ +############################################################# +# +# dhcpcd +# +############################################################# + +DHCPCD_VERSION = 5.6.7 +DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.bz2 +DHCPCD_SITE = http://roy.marples.name/downloads/dhcpcd/ +DHCPCD_LICENSE = BSD-2c +DHCPCD_INSTALL_STAGING = NO + +CONFIG_ARGS = $(BR2_GCC_TARGET_ARCH) + +ifeq ($(BR2_USE_MMU),n) + CONFIG_ARGS =: --disable-fork +endif + +define DHCPD_CONFIGURE_CMDS + (cd $(@D); + ...some environment variables... + ./configure \ + $(CONFIG_ARGS) ) +endef + +define DHCPCD_BUILD_CMDS + $(MAKE) -C $(@D) all +endef + +define DHCPCD_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/dhcpcd $(TARGET_DIR)/usr/bin/dhcpcd + $(INSTALL) -D -m 0644 $(@D)/dhcpcd.conf $(TARGET_DIR)/etc/dhcpcd.conf +endef + +define DHCPCD_DEVICES + #/dev/foo c 666 0 0 42 0 - - - +endef + +define DHCPCD_PERMISSIONS + /usr/bin/dhcpcd f 4755 0 0 - - - - - +endef + +$(eval $(generic-package))