[OE-core] [PATCH] sysvinitL split inittab into it's own recipe

Koen Kooi koen at dominion.thruhere.net
Thu Jun 9 06:44:22 UTC 2011


Op 9 jun 2011, om 06:32 heeft Saul Wold het volgende geschreven:

> On 06/04/2011 02:21 AM, Koen Kooi wrote:
>> A proper fix for
>> 
>> [YOCTO ##1131]
>> 
> 
> Koen,
> 
> Hate to ask this, but what kind of testing did you do with sysvinit_inittab recipe?  I have been chasing down a problem with it failing, thought it was a change I made, so want to check what testing you did with it.
> 
> Have you done a scratch build in poky, by any chance?

I only did builds from scratch for angstrom

>  Maybe you forgot a dependency or library?

The error below is a ordering issues, which we can get around with by adding an empty do_compile, which will be in a new patch I'll send forthwith.

regards,

Koen


> here's the failure I got:
> 
> i586-poky-linux-gcc -march=i586 --sysroot=/intel/poky2/builds/master/tmp/sysroots/qemux86 -Wl,-O1 -Wl,--as-needed  sulogin.o    -o sulogin
> | sulogin.o: In function `main':
> | /intel/poky2/builds/master/tmp/work/qemux86-poky-linux/sysvinit-inittab-2.88dsf-r5/sysvinit-2.88dsf/src/sulogin.c:595: undefined reference to `crypt'
> | collect2: ld returned 1 exit status
> | make[1]: *** [sulogin] Error 1
> | make[1]: Leaving directory `/intel/poky2/builds/master/tmp/work/qemux86-poky-linux/sysvinit-inittab-2.88dsf-r5/sysvinit-2.88dsf/src'
> | make: *** [all] Error 2
> | ERROR: oe_runmake failed
> | ERROR: Function 'do_compile' failed (see /intel/poky2/builds/master/tmp/work/qemux86-poky-linux/sysvinit-inittab-2.88dsf-r5/temp/log.do_compile.29128 for further information)
> | ERROR: Function 'do_compile' failed (see /intel/poky2/builds/master/tmp/work/qemux86-poky-linux/sysvinit-inittab-2.88dsf-r5/temp/log.do_compile.29128 for further information)
> NOTE: package sysvinit-inittab-2.88dsf-r5: task do_compile: Failed
> ERROR: Task 7 (/intel/poky/distro/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb, do_compile) failed with exit code '1'
> 
> 
> Thanks
> 
> 	Sau!
> 
> 
>> Signed-off-by:<koen at dominion.thruhere.net>
>> ---
>>  .../recipes-core/sysvinit/sysvinit-inittab/inittab |   30 +++++++++++
>>  .../sysvinit/sysvinit-inittab_2.88dsf.bb           |   55 ++++++++++++++++++++
>>  meta/recipes-core/sysvinit/sysvinit/inittab        |   30 -----------
>>  meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb     |   41 +--------------
>>  4 files changed, 86 insertions(+), 70 deletions(-)
>>  create mode 100644 meta/recipes-core/sysvinit/sysvinit-inittab/inittab
>>  create mode 100644 meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
>>  delete mode 100644 meta/recipes-core/sysvinit/sysvinit/inittab
>> 
>> diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab/inittab b/meta/recipes-core/sysvinit/sysvinit-inittab/inittab
>> new file mode 100644
>> index 0000000..6abbdf4
>> --- /dev/null
>> +++ b/meta/recipes-core/sysvinit/sysvinit-inittab/inittab
>> @@ -0,0 +1,30 @@
>> +# /etc/inittab: init(8) configuration.
>> +# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
>> +
>> +# The default runlevel.
>> +id:5:initdefault:
>> +
>> +# Boot-time system configuration/initialization script.
>> +# This is run first except when booting in emergency (-b) mode.
>> +si::sysinit:/etc/init.d/rcS
>> +
>> +# What to do in single-user mode.
>> +~~:S:wait:/sbin/sulogin
>> +
>> +# /etc/init.d executes the S and K scripts upon change
>> +# of runlevel.
>> +#
>> +# Runlevel 0 is halt.
>> +# Runlevel 1 is single-user.
>> +# Runlevels 2-5 are multi-user.
>> +# Runlevel 6 is reboot.
>> +
>> +l0:0:wait:/etc/init.d/rc 0
>> +l1:1:wait:/etc/init.d/rc 1
>> +l2:2:wait:/etc/init.d/rc 2
>> +l3:3:wait:/etc/init.d/rc 3
>> +l4:4:wait:/etc/init.d/rc 4
>> +l5:5:wait:/etc/init.d/rc 5
>> +l6:6:wait:/etc/init.d/rc 6
>> +# Normally not reached, but fallthrough in case of emergency.
>> +z6:6:respawn:/sbin/sulogin
>> diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
>> new file mode 100644
>> index 0000000..4e57b5a
>> --- /dev/null
>> +++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
>> @@ -0,0 +1,55 @@
>> +DESCRIPTION = "Inittab for sysvinit"
>> +LICENSE = "GPLv2+"
>> +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
>> +                    file://COPYRIGHT;endline=15;md5=349c872e0066155e1818b786938876a4"
>> +
>> +PR = "r5"
>> +
>> +# Need the whole source for the license checks
>> +SRC_URI = "http://download.savannah.gnu.org/releases-noredirect/sysvinit/sysvinit-${PV}.tar.bz2 \
>> +           file://inittab"
>> +
>> +SRC_URI[md5sum] = "6eda8a97b86e0a6f59dabbf25202aa6f"
>> +SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5df1519"
>> +
>> +S = "${WORKDIR}/sysvinit-${PV}"
>> +
>> +do_install() {
>> +	install -d ${D}${sysconfdir}
>> +    install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab
>> +    if [ ! -z "${SERIAL_CONSOLE}" ]; then
>> +        echo "S:2345:respawn:${base_sbindir}/getty ${SERIAL_CONSOLE}">>  ${D}${sysconfdir}/inittab
>> +    fi
>> +    if [ "${USE_VT}" = "1" ]; then
>> +        cat<<EOF>>${D}${sysconfdir}/inittab
>> +# ${base_sbindir}/getty invocations for the runlevels.
>> +#
>> +# The "id" field MUST be the same as the last
>> +# characters of the device (after "tty").
>> +#
>> +# Format:
>> +#<id>:<runlevels>:<action>:<process>
>> +#
>> +
>> +EOF
>> +
>> +        for n in ${SYSVINIT_ENABLED_GETTYS}
>> +        do
>> +            echo "$n:2345:respawn:${base_sbindir}/getty 38400 tty$n">>  ${D}${sysconfdir}/inittab
>> +        done
>> +        echo "">>  ${D}${sysconfdir}/inittab
>> +    fi
>> +}
>> +
>> +# USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
>> +# Set PACKAGE_ARCH appropriately.
>> +PACKAGE_ARCH = "${MACHINE_ARCH}"
>> +
>> +FILES_${PN} = "${sysconfdir}/inittab"
>> +CONFFILES_${PN} = "${sysconfdir}/inittab"
>> +
>> +USE_VT ?= "1"
>> +SYSVINIT_ENABLED_GETTYS ?= "1"
>> +
>> +
>> +
>> diff --git a/meta/recipes-core/sysvinit/sysvinit/inittab b/meta/recipes-core/sysvinit/sysvinit/inittab
>> deleted file mode 100644
>> index 6abbdf4..0000000
>> --- a/meta/recipes-core/sysvinit/sysvinit/inittab
>> +++ /dev/null
>> @@ -1,30 +0,0 @@
>> -# /etc/inittab: init(8) configuration.
>> -# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
>> -
>> -# The default runlevel.
>> -id:5:initdefault:
>> -
>> -# Boot-time system configuration/initialization script.
>> -# This is run first except when booting in emergency (-b) mode.
>> -si::sysinit:/etc/init.d/rcS
>> -
>> -# What to do in single-user mode.
>> -~~:S:wait:/sbin/sulogin
>> -
>> -# /etc/init.d executes the S and K scripts upon change
>> -# of runlevel.
>> -#
>> -# Runlevel 0 is halt.
>> -# Runlevel 1 is single-user.
>> -# Runlevels 2-5 are multi-user.
>> -# Runlevel 6 is reboot.
>> -
>> -l0:0:wait:/etc/init.d/rc 0
>> -l1:1:wait:/etc/init.d/rc 1
>> -l2:2:wait:/etc/init.d/rc 2
>> -l3:3:wait:/etc/init.d/rc 3
>> -l4:4:wait:/etc/init.d/rc 4
>> -l5:5:wait:/etc/init.d/rc 5
>> -l6:6:wait:/etc/init.d/rc 6
>> -# Normally not reached, but fallthrough in case of emergency.
>> -z6:6:respawn:/sbin/sulogin
>> diff --git a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
>> index e683cc7..bda8a51 100644
>> --- a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
>> +++ b/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
>> @@ -5,31 +5,15 @@ SECTION = "base"
>>  LICENSE = "GPLv2+"
>>  LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
>>                      file://COPYRIGHT;endline=15;md5=349c872e0066155e1818b786938876a4"
>> -PR = "r3"
>> -
>> -# Need to set this since it has machine specific components
>> -PACKAGE_ARCH = "${MACHINE_ARCH}"
>> -
>> -# USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
>> -# Set PACKAGE_ARCH appropriately.
>> -PACKAGE_ARCH_${PN}-inittab = "${MACHINE_ARCH}"
>> +PR = "r4"
>> 
>>  RDEPENDS_${PN} = "${PN}-inittab"
>> 
>> -PACKAGES =+ "bootlogd ${PN}-inittab"
>> -FILES_bootlogd = "/etc/init.d/bootlogd /etc/init.d/stop-bootlogd /etc/rc?.d/S*bootlogd /sbin/bootlogd"
>> -FILES_${PN}-inittab = "${sysconfdir}/inittab"
>> -CONFFILES_${PN}-inittab = "${sysconfdir}/inittab"
>> -
>> -USE_VT ?= "1"
>> -SYSVINIT_ENABLED_GETTYS ?= "1"
>> -
>>  SRC_URI = "http://download.savannah.gnu.org/releases-noredirect/sysvinit/sysvinit-${PV}.tar.bz2 \
>>  	   file://install.patch \
>>  	   file://crypt-lib.patch \
>>             file://need \
>>             file://provide \
>> -           file://inittab \
>>             file://rcS-default \
>>             file://rc \
>>             file://rcS \
>> @@ -70,29 +54,6 @@ do_install () {
>>  	install -d ${D}${sysconfdir} \
>>  		   ${D}${sysconfdir}/default \
>>  		   ${D}${sysconfdir}/init.d
>> -	install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab
>> -	if [ ! -z "${SERIAL_CONSOLE}" ]; then
>> -		echo "S:2345:respawn:${base_sbindir}/getty ${SERIAL_CONSOLE}">>  ${D}${sysconfdir}/inittab
>> -	fi
>> -	if [ "${USE_VT}" = "1" ]; then
>> -		cat<<EOF>>${D}${sysconfdir}/inittab
>> -# ${base_sbindir}/getty invocations for the runlevels.
>> -#
>> -# The "id" field MUST be the same as the last
>> -# characters of the device (after "tty").
>> -#
>> -# Format:
>> -#<id>:<runlevels>:<action>:<process>
>> -#
>> -
>> -EOF
>> -
>> -		for n in ${SYSVINIT_ENABLED_GETTYS}
>> -		do
>> -			echo "$n:2345:respawn:${base_sbindir}/getty 38400 tty$n">>  ${D}${sysconfdir}/inittab
>> -		done
>> -		echo "">>  ${D}${sysconfdir}/inittab
>> -	fi
>>  	install -m 0644    ${WORKDIR}/rcS-default	${D}${sysconfdir}/default/rcS
>>  	install -m 0755    ${WORKDIR}/rc		${D}${sysconfdir}/init.d
>>  	install -m 0755    ${WORKDIR}/rcS		${D}${sysconfdir}/init.d





More information about the Openembedded-core mailing list