All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.