Bug 1511

Summary: Support versioned scm snapshots for mirroring
Product: [Build System, Metadata & Runtime] BitBake Reporter: Koen Kooi <koen>
Component: bitbakeAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: Medium CC: cbrake, jessica.zhang, kergoth, lpapp, Martin.Jansa, poky.bs.watcher, poky.watcher, sgw, song.liu
Version: unspecified   
Target Milestone: 1.6   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description Koen Kooi 2011-09-22 05:13:03 UTC
OE classic could generate both versioned and unversioned scm snapshots, OE core (or rather bitbake/fetch2) can only do unversioned and versioned per SRC_URI.

Versioned tarballs serves 2 purposes:

1) an easy way to check GPL compliance, an 'ls | grep' is enough
2) deterministic mirroring

A quick hack to have a global switch for it can be found at:

http://patches.openembedded.org/patch/11971/

From a mirror consumption perspective a workflow could be:

1) see if rev exists
2) try pulling
3) try versioned tarball
4) extract tarball into tmpdir, fetch objects into DL_DIR/git2 repo

That would stop things from being blown away. It does allow the  
versioned snapshots to differ, but they will always have the rev they  
were versioned with.

The order for mirror searches could be:

1. Specific Revision X tarball
2. generic mirror tarball
3. git clone

For more info see the thread at http://thread.gmane.org/gmane.comp.handhelds.openembedded.core/7888
Comment 1 Laszlo Papp 2013-08-29 16:58:20 UTC
Any progress on this?
Comment 2 Richard Purdie 2014-03-27 10:56:20 UTC
The git fetcher now supports a "rebaseable" flag for git repos in SRC_URI. If that is set, a tarball is generated per git revision. I believe this issue is therefore now resolved and has been for a while, not sure why the bug status never got fixed.