[yocto] Trouble creating new package
Jack Mitchell
ml at communistcode.co.uk
Tue Jan 10 07:09:23 PST 2012
On 10/01/12 13:56, Jack Mitchell wrote:
> 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?
>
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
Right i've gotten further. I added --program-prefix= to the OE_EXTRACONF
and that ditched the elf prefix. My last hurdle now is that I get errors
that /var/log/hiawatha/system.log cannot be created, now this is due to
the /var/log/hiawatha folder not being present. I have tried making it
during install in the .bb file but it gets deleted when I run qemu, do I
need some sort of system logging utility?
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 \
file://hiawatha-init"
SRC_URI[md5sum] = "8aff3f8c759871ea1d1ff22e98030332"
inherit autotools update-rc.d
INITSCRIPT_NAME = "hiawatha"
INITSCRIPT_PARAMS = "defaults 70"
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} \
--program-prefix="
do_configure() {
oe_runconf
}
do_compile() {
oe_runmake
}
do_install() {
oe_runmake install DESTDIR=${D} SBINDIR=${sbindir}
INCLUDEDIR=${includedir}
#create directories
install -d ${D}${sysconfdir}/init.d ${D}var/log/hiawatha
# Copy over init script
install -m 0755 ${WORKDIR}/hiawatha-init
${D}${sysconfdir}/init.d/hiawatha
}
More information about the yocto
mailing list