[yocto] Trouble creating new package

Jack Mitchell ml at communistcode.co.uk
Tue Jan 10 05:20:05 PST 2012


On 10/01/12 11:21, Jack Mitchell wrote:
> On 10/01/12 11:16, Martin Jansa wrote:
>> On Tue, Jan 10, 2012 at 11:08:22AM +0000, Jack Mitchell wrote:
>>> Good morning everyone,
>>>
>>> I am currently having issues creating a (very!) simple package. I have
>>> looked at the latest reference manual and studied other .bb files to no
>>> avail.
>>>
>>> I am trying to build a simple web server called Hiawatha. To install
>>> (http://www.hiawatha-webserver.org/howto/compilation_and_installation)
>>> it consists of a simple:
>>>
>>> ./configure
>>>
>>> make
>>>
>>> make install
>>>
>>> Now, for the life in me I cannot replicate this behaviour in a .bb 
>>> file.
>>> This is what I have so far:
>>>
>>> DESCRIPTION = "Lightweight secure web server"
>>> HOMEPAGE = "http://www.hiawatha-webserver.org"
>>>
>>> LICENSE = "GPLv2"
>>> LIC_FILES_CHKSUM = 
>>> "file://COPYING;md5=a9b0a0eb7c54c87ec6ac05f5f603df6a"
>>>
>>> SECTION = "custom"
>>>
>>> PR = "r0"
>>>
>>> SRC_URI = 
>>> "http://www.hiawatha-webserver.org/files/hiawatha-7.8.2.tar.gz"
>>>
>>> SRC_URI[md5sum] = "8aff3f8c759871ea1d1ff22e98030332"
>>>
>>> do_configure () {
>>>
>>>     ./configure --disable-ipv6 \
>>>                --disable-ssl \
>>>                --disable-toolkit \
>>>                --disable-xslt \
>>>                --disable-largefile \
>>>
>>>     oe_runmake
>>>
>>> }
>>>
>>> do_install () {
>>>
>>>     oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} 
>>> MANDIR=${mandir} \
>>>       INCLUDEDIR=${includedir}
>>>
>>> }
>>>
>>> Could someone point me in the right direction, I feel this should be an
>>> extremely easy piece of software to build - I think I'm just not
>>> understanding the build system correctly....
>>>
>>> The error I receive when trying to build this package is:
>>>
>>> ERROR: Function 'do_install' failed (see
>>> /home/jack/yocto/poky-git/beagleInitial/tmp/work/armv5te-poky-linux-gnueabi/hiawatha-7.8.2-r0/temp/log.do_install.6289 
>>>
>>> for further information)
>>> | NOTE: make -j 9 -e MAKEFLAGS= -e install
>>> DESTDIR=/home/jack/yocto/poky-git/beagleInitial/tmp/work/armv5te-poky-linux-gnueabi/hiawatha-7.8.2-r0/image 
>>>
>>> SBINDIR=/usr/sbin MANDIR=/usr/share/man INCLUDEDIR=/usr/include
>>> | make: *** No rule to make target `install'.  Stop.
>>> | ERROR: oe_runmake failed
>> try to start with
>> inherit autotools
>>
>> Cheers,,
>>
>>> Thanks in advance,
>>> Jack.
>>>
>>> _______________________________________________
>>> yocto mailing list
>>> yocto at yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/yocto
>
> Hi Martin,
>
> Inheriting autotools makes no difference, I also don't understand why 
> autotools should be inherited if it is only a make/configure 
> combination being used?
>
> Best Regards
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

Ok, I have managed to get a bit further on this. I didn't realise that I 
had to do

bitbake -c clean hiawatha

Everytime I had changed the package to ensure that it was building with 
the new configuration. My new .bb looks like this:

DESCRIPTION = "Lightweight secure web server"
HOMEPAGE = "http://www.hiawatha-webserver.org"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=a9b0a0eb7c54c87ec6ac05f5f603df6a"
DEPENDS = "openssl libxml2 libxslt"
SECTION = "custom"

PR = "r0"

SRC_URI = "http://www.hiawatha-webserver.org/files/hiawatha-7.8.2.tar.gz"
SRC_URI[md5sum] = "8aff3f8c759871ea1d1ff22e98030332"

inherit autotools

EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include 
-DWITHOUT_XATTR' \
                      'BUILDDIR=${S}'"

EXTRA_OECONF = " --disable-ipv6 \
              --disable-ssl \
              --disable-toolkit \
              --disable-xslt \
              --disable-largefile \
              --mandir=${mandir}"

do_configure() {

   oe_runconf

}

do_compile() {

   oe_runmake

}

do_install() {

   oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} 
INCLUDEDIR=${includedir}


Now, this is building and installing however the Hiawatha binary doesn't 
get included in the build. The configuration files make it in so I know 
it's running the make install phase however I don't know how to find out 
what is going on during the build and why the binary isn't making it in 
the rootfs.



More information about the yocto mailing list