All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Gary Thomas <gary@mlbassoc.com>
Cc: poky@yoctoproject.org
Subject: Re: SRC checksum checking broken
Date: Tue, 17 Apr 2012 16:01:53 +0100	[thread overview]
Message-ID: <1334674913.616.98.camel@ted> (raw)
In-Reply-To: <4F8D5F61.1010002@mlbassoc.com>

On Tue, 2012-04-17 at 06:17 -0600, Gary Thomas wrote:
> On 2012-04-10 19:36, Gary Thomas wrote:
> > On 2012-04-10 18:14, Gary Thomas wrote:
> >> On 2012-04-10 17:27, Richard Purdie wrote:
> >>> On Tue, 2012-04-10 at 14:10 -0600, Gary Thomas wrote:
> >>>> I'm not sure how, but this revision broke the checking of checksums:
> >>>>
> >>>> commit 3d69d9462d550ce4e00e14768cc616bc9ad7e8a5
> >>>> Author: Richard Purdie<richard.purdie@linuxfoundation.org>
> >>>> Date: Fri Mar 23 14:52:23 2012 +0000
> >>>>
> >>>> bitbake/fetch2: Ensure mirror tarballs have .done stamps so we don't redownload and corrupt them
> >>>>
> >>>> [YOCTO #2154]
> >>>>
> >>>> (Bitbake rev: 521d6b14151d3bf934b9597557f7ae46e50a3d7a)
> >>>>
> >>>> Signed-off-by: Richard Purdie<richard.purdie@linuxfoundation.org>
> >>>>
> >>>> The attached log shows this failure - I've modified the busybox_1.19.4.bb
> >>>> recipe to have incorrect checksums. With revision 67c83a8, the failure
> >>>> is correctly identified. With revision 3d69d94, it is not.
> >>>>
> >>>> The error happens with direct downloads (using DL_DIR) and also
> >>>> with a mirror setup (using own-mirrors).
> >>>>
> >>>> I've reviewed the change and I don't see how/why this happens.
> >>>
> >>> There was a patch just merged for something that sounds very similar. I
> >>> was going to give you a link and realised something has gone wrong with
> >>> the commit:
> >>>
> >>> http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=a46aafb8b27bd86d046385a569deee6b4c9b8bb6
> >>>
> >>> as its been squashed with a subsequent commit I had to resolve a
> >>> conflict with.
> >>>
> >>> Regardless, could you see whether that change solves your problem
> >>> please?
> >>
> >> No change, sorry.
> >>
> >
> > I think the problem is this part of the change:
> > diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
> > index 7524fa9..e5c4b34 100644
> > --- a/bitbake/lib/bb/fetch2/__init__.py
> > +++ b/bitbake/lib/bb/fetch2/__init__.py
> > @@ -476,6 +476,7 @@ def try_mirrors(d, origud, mirrors, check = False):
> >
> > if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
> > ud.method.download(newuri, ud, ld)
> > + open(ud.donestamp, 'w').close()
> > if hasattr(ud.method,"build_mirror_data"):
> > ud.method.build_mirror_data(newuri, ud, ld)
> >
> > I think the call to open() that creates the .done stamp file should really
> > be a call to the update_stamp() function. This is the only place checksums
> > are being checked (as far as I can tell) and the fact that the .done file
> > has already been created is getting in the way. I'd suggest a patch, but I don't
> > understand enough of the context to figure out the parameters to call update_stamp() with
> > [parameters named u, ud & d don't help me much]
> 
> This is still broken, both in master (04d6aa1) and 1.2_M4.rc4 (4d9f4d6)
> Filed as https://bugzilla.yoctoproject.org/show_bug.cgi?id=2311

Does this help?:

bitbake/fetch2: Ensure directly mirrored files have their checksum validated

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 414cc2b..e36d3ec 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -477,7 +477,10 @@ def try_mirrors(d, origud, mirrors, check = False):
             if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
                 ud.method.download(newuri, ud, ld)
                 if os.path.exists(ud.localpath):
-                    open(ud.donestamp, 'w').close()
+                    if ud.localpath == origud.localpath:
+                        update_stamp(newuri, origud, ld)
+                    else:
+                        open(ud.donestamp, 'w').close()
                     if hasattr(ud.method,"build_mirror_data"):
                         ud.method.build_mirror_data(newuri, ud, ld)
 

Cheers,

Richard






  reply	other threads:[~2012-04-17 15:02 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-10 20:10 SRC checksum checking broken Gary Thomas
2012-04-10 23:27 ` Richard Purdie
2012-04-11  0:14   ` Gary Thomas
2012-04-11  1:36     ` Gary Thomas
2012-04-17 12:17       ` Gary Thomas
2012-04-17 15:01         ` Richard Purdie [this message]
2012-04-17 15:21           ` Gary Thomas
2012-04-17 15:44             ` Richard Purdie
2012-04-17 15:59               ` Gary Thomas
2012-04-17 16:19                 ` Richard Purdie
2012-04-17 16:59                   ` Gary Thomas
2012-04-17 21:20                     ` Richard Purdie
2012-04-17 22:14                       ` Gary Thomas
2012-05-13 12:39                         ` Richard Purdie
2012-05-13 22:24                           ` Gary Thomas
2012-05-20  8:29                             ` Richard Purdie
2012-05-21 14:30                               ` Gary Thomas

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=1334674913.616.98.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=gary@mlbassoc.com \
    --cc=poky@yoctoproject.org \
    /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.