All of lore.kernel.org
 help / color / mirror / Atom feed
* Commit ca257adc587bb0937ea76d8b32b654fdbf4192b8 changes behavior on which recipes rely
@ 2010-07-04  1:01 Khem Raj
  2010-07-07 14:02 ` [Bitbake-dev] " Richard Purdie
  0 siblings, 1 reply; 2+ messages in thread
From: Khem Raj @ 2010-07-04  1:01 UTC (permalink / raw)
  To: bitbake-dev; +Cc: openembedded-devel

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.

Thanks
-Khem




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Bitbake-dev] Commit ca257adc587bb0937ea76d8b32b654fdbf4192b8 changes behavior on which recipes rely
  2010-07-04  1:01 Commit ca257adc587bb0937ea76d8b32b654fdbf4192b8 changes behavior on which recipes rely Khem Raj
@ 2010-07-07 14:02 ` Richard Purdie
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Purdie @ 2010-07-07 14:02 UTC (permalink / raw)
  To: Khem Raj; +Cc: bitbake-dev, openembedded-devel

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











^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-07-07 14:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-04  1:01 Commit ca257adc587bb0937ea76d8b32b654fdbf4192b8 changes behavior on which recipes rely Khem Raj
2010-07-07 14:02 ` [Bitbake-dev] " Richard Purdie

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.