[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