[yocto] Trouble creating new package

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


On 10/01/12 13:50, Gary Thomas wrote:
> On 2012-01-10 06:39, Jack Mitchell wrote:
>> On 10/01/12 13:38, James Abernathy wrote:
>>>
>>> On Tue, Jan 10, 2012 at 8:20 AM, Jack Mitchell 
>>> <ml at communistcode.co.uk <mailto:ml at communistcode.co.uk>> wrote:
>>>
>>>     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 
>>> <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 <mailto: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 <mailto: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 
>>> <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.
>>>
>>> Maybe you need an IMAGE_INSTALL += "hiawatha" in you local.conf????
>>
>> I already have this in my custom image .bb file. As noted above it 
>> seems to install everything apart from the binary so all the config 
>> files go in, just not the especially
>> important bit!
>
> Did you look at the log file created during the install step?
> It will be in a file named something like this:
>   tmp/work/arm*/hiawatha*/temp/log.do_install
> assuming that your target architecture is ARM
>
> If you don't see any problems or can't figure out what's going wrong,
> try putting some print statements in the install step and check the
> log file.
>
>
Ah hah, thank you Gary, I found a wealth of information in that folder. 
The do_install log didn't exist but after a quick browse, I found that 
the binaries are actually present on the system, but pre-fixed with 
arm-poky-linux-gnueabi-'binary-name'. e.g.

arm-poky-linux-gnueabi-cgi-wrapper  arm-poky-linux-gnueabi-newroot   
arm-poky-linux-gnueabi-wigwam
arm-poky-linux-gnueabi-hiawatha     arm-poky-linux-gnueabi-php-fcgi

What could be happening here?




More information about the yocto mailing list