[oe] Install base-file failed due to lack of usbd

Guo Hongruan camelguo at gmail.com
Wed Dec 30 08:10:08 UTC 2009


Hi,
    After applying the following patch, the failure did disappear.

By the way, I think the package's recipes (with the exception of the  
recipes in tasks/meta/images directories) should be distro-independent. We  
should not add the DISTRO into OVERRIDE.

Thanks a lot!

diff --git a/recipes/base-files/base-files_3.0.14.bb  
b/recipes/base-files/base-files_3.0.14.bb
index 483aef7..61bb71e 100644
--- a/recipes/base-files/base-files_3.0.14.bb
+++ b/recipes/base-files/base-files_3.0.14.bb
@@ -46,12 +46,7 @@ dirs755 = "/bin /boot /dev ${sysconfdir}  
${sysconfdir}/default \
            /media/union /media/realroot /media/hdd \
            /media/mmc1"

-dirs755_micro = "/dev /proc /sys ${sysconfdir}"
-dirs2775_micro = ""
-dirs1777_micro = "/tmp"
-
  media = "card cf net ram"
-media_micro = ""

  volatiles = "cache run log lock tmp"
  conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
@@ -93,40 +88,38 @@ do_install () {
                 echo ${hostname} > ${D}${sysconfdir}/hostname
         fi

-        if [ "${DISTRO}" != "micro" -a "${DISTRO}" != "micro-uclibc" ];  
then
-                install -m 644 ${WORKDIR}/issue*  ${D}${sysconfdir}
-
-                if [ -n "${DISTRO_NAME}" ]; then
-                       echo -n "${DISTRO_NAME} " >>  
${D}${sysconfdir}/issue
-                       echo -n "${DISTRO_NAME} " >>  
${D}${sysconfdir}/issue.net
-                       if [ -n "${DISTRO_VERSION}" ]; then
-                               echo -n "${DISTRO_VERSION} " >>  
${D}${sysconfdir}/issue
-                               echo -n "${DISTRO_VERSION} " >>  
${D}${sysconfdir}/issue.net
-                       fi
-                       echo "\n \l" >> ${D}${sysconfdir}/issue
-                       echo >> ${D}${sysconfdir}/issue
-                       echo "%h"    >> ${D}${sysconfdir}/issue.net
-                       echo >> ${D}${sysconfdir}/issue.net
-               else
-                       install -m 0644 ${WORKDIR}/issue  
${D}${sysconfdir}/issue
-                        install -m 0644 ${WORKDIR}/issue.net  
${D}${sysconfdir}/issue.net
-                fi
+       install -m 644 ${WORKDIR}/issue*  ${D}${sysconfdir}
+
+       if [ -n "${DISTRO_NAME}" ]; then
+               echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
+               echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
+               if [ -n "${DISTRO_VERSION}" ]; then
+                       echo -n "${DISTRO_VERSION} " >>  
${D}${sysconfdir}/issue
+                       echo -n "${DISTRO_VERSION} " >>  
${D}${sysconfdir}/issue.net
+               fi
+               echo "\n \l" >> ${D}${sysconfdir}/issue
+               echo >> ${D}${sysconfdir}/issue
+               echo "%h"    >> ${D}${sysconfdir}/issue.net
+               echo >> ${D}${sysconfdir}/issue.net
+       else
+               install -m 0644 ${WORKDIR}/issue ${D}${sysconfdir}/issue
+               install -m 0644 ${WORKDIR}/issue.net  
${D}${sysconfdir}/issue.net
+       fi
+
+       install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
+       install -m 0644 ${WORKDIR}/filesystems  
${D}${sysconfdir}/filesystems
+       install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
+       install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
+       install -m 0755 ${WORKDIR}/share/dot.profile  
${D}${sysconfdir}/skel/.profile
+       install -m 0755 ${WORKDIR}/share/dot.bashrc  
${D}${sysconfdir}/skel/.bashrc
+       install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
+       install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
+       for license in BSD GPL-2 LGPL-2 LGPL-2.1 Artistic GPL-3 LGPL-3  
GFDL-1.2; do
+               install -m 0644 ${WORKDIR}/licenses/$license  
${D}${datadir}/common-licenses/
+       done

-                install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
-               install -m 0644 ${WORKDIR}/filesystems  
${D}${sysconfdir}/filesystems
-               install -m 0644 ${WORKDIR}/usbd  
${D}${sysconfdir}/default/usbd
-               install -m 0644 ${WORKDIR}/profile  
${D}${sysconfdir}/profile
-               install -m 0755 ${WORKDIR}/share/dot.profile  
${D}${sysconfdir}/skel/.profile
-               install -m 0755 ${WORKDIR}/share/dot.bashrc  
${D}${sysconfdir}/skel/.bashrc
-               install -m 0644 ${WORKDIR}/inputrc  
${D}${sysconfdir}/inputrc
-               install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
-               for license in BSD GPL-2 LGPL-2 LGPL-2.1 Artistic GPL-3  
LGPL-3 GFDL-1.2; do
-                       install -m 0644 ${WORKDIR}/licenses/$license  
${D}${datadir}/common-licenses/
-               done
-
-               ln -sf /proc/mounts ${D}${sysconfdir}/mtab
-               install -m 0644 ${WORKDIR}/host.conf  
${D}${sysconfdir}/host.conf
-        fi
+       ln -sf /proc/mounts ${D}${sysconfdir}/mtab
+       install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf

         install -m 0644 ${WORKDIR}/nsswitch.conf  
${D}${sysconfdir}/nsswitch.conf
  }
@@ -168,7 +161,6 @@ PACKAGE_ARCH_rt3000 = "rt3000"
  PACKAGE_ARCH = "${MACHINE_ARCH}"

  CONFFILES_${PN} = "${sysconfdir}/fstab ${sysconfdir}/hostname"
-CONFFILES_${PN}_micro = ""
  CONFFILES_${PN}_nylon = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab  
${sysconfdir}/hostname"
  CONFFILES_${PN}_slugos = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab  
${sysconfdir}/hostname"



在 Tue, 29 Dec 2009 03:59:29 +0800,Phil Blundell <philb at gnu.org> 写道:

> On Mon, 2009-12-28 at 11:40 +0800, Guo Hongruan wrote:
>> Hi guys,
>>     the installation of base-file failed due to lack of usbd. I found  
>> this
>> bug when
>> 1. MACHINE=qemumips and DISTRO=micro (using eglibc)
>> 2. MACHINE=qemuarm and DISTRO=micro (using eglibc)
>>
>> install: cannot create regular file
>> `/media/work-disk/workdir/oe-qemumips-micro-eglibc/work/qemumips-oe-linux/base-files-3.0.14-r89/image/etc/default/usbd':
>> No such file or directory
>
> This is a bit weird, because the only install command that mentions usbd
> is wrapped in an 'if [ ${DISTRO} != micro ] ...' conditional.  It also
> worked fine for me last time I tried, and I test with qemuarm and micro
> fairly often.  Do you have any local changes to your tree?
>
> p.
>
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel


-- 
Guo Hongruan, Embedded Linux Consultant
Skype: camelguo
Twitter: camelguo
http://www.gulessoft.com




More information about the Openembedded-devel mailing list