Openembedded Devel Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <rpurdie@rpsys.net>
To: Khem Raj <raj.khem@gmail.com>
Cc: bitbake-dev@lists.berlios.de, openembedded-devel@lists.openembedded.org
Subject: Re: [Bitbake-dev] Commit ca257adc587bb0937ea76d8b32b654fdbf4192b8 changes behavior on which recipes rely
Date: Wed, 07 Jul 2010 15:02:10 +0100	[thread overview]
Message-ID: <1278511330.30247.3690.camel@rex> (raw)
In-Reply-To: <20100704010150.GA21048@gmail.com>

On Sat, 2010-07-03 at 18:01 -0700, Khem Raj wrote:
> Hi
> 
> Due to this commit here
> 
> commit ca257adc587bb0937ea76d8b32b654fdbf4192b8
> Author: Nitin A Kamble <nitin.a.kamble@intel.com>
> 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 <nitin.a.kamble@intel.com>
>     Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
> 
> 
> 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











      reply	other threads:[~2010-07-07 14:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-04  1:01 Commit ca257adc587bb0937ea76d8b32b654fdbf4192b8 changes behavior on which recipes rely Khem Raj
2010-07-07 14:02 ` Richard Purdie [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1278511330.30247.3690.camel@rex \
    --to=rpurdie@rpsys.net \
    --cc=bitbake-dev@lists.berlios.de \
    --cc=openembedded-devel@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox