On Sat, 2010-07-03 at 18:01 -0700, Khem Raj wrote: > Hi > > Due to this commit here > > commit ca257adc587bb0937ea76d8b32b654fdbf4192b8 > Author: Nitin A Kamble <[email protected]> > Date: Thu Jun 3 21:50:02 2010 -0700 > > bitbake decodeurl: fix the file:// url handling > > Without this patch decoding a url of this kind file://dir/filename > gives > path=/filename host=dir. > With the patch it decodes as path=/dir/filename host="" > > Probably nobody stumbled on this issue yet because nobody used > file:// urls with directory names in the path. > > (From Poky rev: c3682bf89bdf236a4b4d834069d947b6a1456791) > > Signed-off-by: Nitin A Kamble <[email protected]> > Signed-off-by: Richard Purdie <[email protected]> > > > few recipes in OE are broken now. > Previous behavior was that if it has > file://pam.d/securetty in SRC_URI > then bitbake would copy it into > $WORKDIR/pam.d/securetty and recipes used > this location to access these files. But after > this commit the directory is ignored and it gets > copied into ${WORKDIT} > > Problem is that I have found three places where it happens > two were ok because the build failed as it could not find > the file where it was looking for but third one took me > a day to debug because it copied only if directory existed > otherwise it used the old files so the build passed and image > got created but it would not let login happen > > see shadow recipes > > do_install_append() { > > > # Ensure that /etc/skel is created so any default files that we want > # copied into new users home > > # dirs can be put in there later (ideal for .xinitrc for example). > > > install -d ${D}${sysconfdir}/skel/ > > > > > > # Ensure that the image has as /var/spool/mail dir so shadow can put > # mailboxes there if the user > > # reconfigures Shadow to default (see sed below). > > > install -d ${D}${SHADOW_MAILDIR} > > > > > > if [ -e ${WORKDIR}/pam.d ]; then > > > install -d ${D}${sysconfdir}/pam.d/ > > > install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/ > > > fi > > > > ... > > > I would propose the revert the above commit as I am reluctant > to fix so many recipes I know only 3 and who know how many more > will start doing wrong things silently.
Hmm, I synced up Poky's bitbake fixes but I'd forgotten about this commit: http://git.pokylinux.org/cgit.cgi/poky/commit/?id=2160dddcc14d9378aff5d48ee72e3dc39b4ab8c7 How about using this code in base.bbclass: if type == "file": # When we switch to bitbake 1.10, simplify this mess check = bb.decodeurl(url)[1] if check: destdir = check elif path.find("/") != -1: destdir = path.rsplit("/", 1)[0] else: destdir = "." I don't like the idea of ignoring this as returning a host which is really a path and is special cased in base.bbclass is just wrong and should be fixed (with a sensible migration path). We found this by noticing that file:/// urls don't work so it is a valid fix. Is someone with an old bitbake around able to test if the above solves the problem? Cheers, Richard _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
