Skip to contentSkip to conversation

buildhistory.bbclass: always record PKG, PKGE, PKGV and PKGR

PATCH In review [email protected] 4 participants 8 messages Sep 26, 2013 – Oct 17, 2013

lore
Share & tools
lore
#0 lore raw

cover buildhistory.bbclass: always record PKG, PKGE, PKGV and PKGR

From: Chen Qi <[email protected]>

The following changes since commit 4d8ab87d25ea6e59dc88375813ef88ee0ac813d0:

build-appliance: Update SRCREV (2013-09-24 18:09:12 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib ChenQi/buildhistory
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/buildhistory

Chen Qi (1):
buildhistory.bbclass: always record PKG, PKGE, PKGV and PKGR

 meta/classes/buildhistory.bbclass |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 buildhistory.bbclass: always record PKG, PKGE, PKGV and PKGR

From: Chen Qi <[email protected]>

The buildhistory.bbclass always records PV instead of PKGV. However, the buildhistory-diff script treats PKGV as a monitored variable instead of PV.

If a recipe's PV changes, for example, hello_1.0.bb is renamed to hello_2.0.bb, then buildhistory-diff reports nothing because PV is not monitored and PKGV is not recorded.

So the buildhistory.bbclass should always record PKGV no matter it equals to PV or not.

The same logic applies to PKG, PKGE and PKGR.

[YOCTO #5263]

---
 meta/classes/buildhistory.bbclass |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
meta/classes/buildhistory.bbclass +4 -4
index 3da03c8..cea917c 100644
@@ -277,10 +277,10 @@ def write_pkghistory(pkginfo, d):
         f.write("PR = %s\n" %  pkginfo.pr)
 
         pkgvars = {}
-        pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name else ''
-        pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe else ''
-        pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv != pkginfo.pv else ''
-        pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr != pkginfo.pr else ''
+        pkgvars['PKG'] = pkginfo.pkg
+        pkgvars['PKGE'] = pkginfo.pkge
+        pkgvars['PKGV'] = pkginfo.pkgv
+        pkgvars['PKGR'] = pkginfo.pkgr
         for pkgvar in pkgvars:
             val = pkgvars[pkgvar]
             if val:
Signature · 1 line
1.7.9.5
#2 lore raw
Quoted 35 lines · On Thursday 26 September 2013 13:23:32 [email protected] wrote:

From: Chen Qi <[email protected]>

The buildhistory.bbclass always records PV instead of PKGV. However, the buildhistory-diff script treats PKGV as a monitored variable instead of PV.

If a recipe's PV changes, for example, hello_1.0.bb is renamed to hello_2.0.bb, then buildhistory-diff reports nothing because PV is not monitored and PKGV is not recorded.

So the buildhistory.bbclass should always record PKGV no matter it equals to PV or not.

The same logic applies to PKG, PKGE and PKGR.

[YOCTO #5263]

---
 meta/classes/buildhistory.bbclass |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
(quoted diff) +0 -0

b/meta/classes/buildhistory.bbclass index 3da03c8..cea917c 100644

meta/classes/buildhistory.bbclass +0 -2
@@ -277,10 +277,10 @@ def write_pkghistory(pkginfo, d):
         f.write("PR = %s\n" %  pkginfo.pr)
 
         pkgvars = {}
-        pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name else ''
-        pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe else

'' - pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv != pkginfo.pv
else '' - pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr !=
pkginfo.pr else '' + pkgvars['PKG'] = pkginfo.pkg

meta/classes/buildhistory.bbclass def write_pkghistory(pkginfo, d): · line 286

Quoted 6 lines
meta/classes/buildhistory.bbclass +3 -0
+        pkgvars['PKGE'] = pkginfo.pkge
+        pkgvars['PKGV'] = pkginfo.pkgv
+        pkgvars['PKGR'] = pkginfo.pkgr
         for pkgvar in pkgvars:
             val = pkgvars[pkgvar]
             if val:

Please see my comment on the bug (just added):
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5263

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#3 lore raw
Quoted 30 lines · Paul Eggleton
Quoted 29 lines · On Thursday 26 September 2013 13:23:32 [email protected] wrote:

From: Chen Qi <[email protected]>

The buildhistory.bbclass always records PV instead of PKGV. However, the buildhistory-diff script treats PKGV as a monitored variable instead of PV.

If a recipe's PV changes, for example, hello_1.0.bb is renamed to hello_2.0.bb, then buildhistory-diff reports nothing because PV is not monitored and PKGV is not recorded.

So the buildhistory.bbclass should always record PKGV no matter it equals to PV or not.

The same logic applies to PKG, PKGE and PKGR.

[YOCTO #5263]

---
  meta/classes/buildhistory.bbclass |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
(quoted diff) +0 -0

b/meta/classes/buildhistory.bbclass index 3da03c8..cea917c 100644

meta/classes/buildhistory.bbclass +0 -0
@@ -277,10 +277,10 @@ def write_pkghistory(pkginfo, d):
          f.write("PR = %s\n" %  pkginfo.pr)
 
Quoted 15 lines

meta/classes/buildhistory.bbclass def write_pkghistory(pkginfo, d): · line 286

Quoted 12 lines
meta/classes/buildhistory.bbclass +0 -2
          pkgvars = {}
-        pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name else ''
-        pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe else

'' - pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv != pkginfo.pv
else '' - pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr !=
pkginfo.pr else '' + pkgvars['PKG'] = pkginfo.pkg

meta/classes/buildhistory.bbclass +3 -0
+        pkgvars['PKGE'] = pkginfo.pkge
+        pkgvars['PKGV'] = pkginfo.pkgv
+        pkgvars['PKGR'] = pkginfo.pkgr
          for pkgvar in pkgvars:
              val = pkgvars[pkgvar]
              if val:

Please see my comment on the bug (just added):
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5263

Already added to the bug, but here so people not watching the bug can see:

I believe this change is requested because otherwise there is no way to detect a package upgrade/uprev when using buildhistory. This type of upgrade can happy when comparing no-GPLv3 and GPLv3 builds -- or just simple software updates when a layer gets updated.

We want to use the buildhistory from one build to the next to look for changes that have occurred that may be unexpected.

--Mark

Quoted 3 lines

Cheers,
Paul

#4 lore raw
Quoted 56 lines · Mark Hatle
Quoted 39 lines · Paul Eggleton
Quoted 38 lines · On Thursday 26 September 2013 13:23:32 [email protected] wrote:

From: Chen Qi <[email protected]>

The buildhistory.bbclass always records PV instead of PKGV. However, the buildhistory-diff script treats PKGV as a monitored variable instead of PV.

If a recipe's PV changes, for example, hello_1.0.bb is renamed to hello_2.0.bb, then buildhistory-diff reports nothing because PV is not monitored and PKGV is not recorded.

So the buildhistory.bbclass should always record PKGV no matter it equals to PV or not.

The same logic applies to PKG, PKGE and PKGR.

[YOCTO #5263]

---
  meta/classes/buildhistory.bbclass |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
(quoted diff) +0 -0

b/meta/classes/buildhistory.bbclass index 3da03c8..cea917c 100644

meta/classes/buildhistory.bbclass +0 -1
@@ -277,10 +277,10 @@ def write_pkghistory(pkginfo, d):
          f.write("PR = %s\n" %  pkginfo.pr)
 
          pkgvars = {}
-        pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name

else ''
- pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe
else
'' - pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv != pkginfo.pv
else '' - pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr !=
pkginfo.pr else '' + pkgvars['PKG'] = pkginfo.pkg
+ pkgvars['PKGE'] = pkginfo.pkge

Quoted 8 lines

meta/classes/buildhistory.bbclass def write_pkghistory(pkginfo, d): · line 286

Quoted 5 lines
meta/classes/buildhistory.bbclass +2 -0
+        pkgvars['PKGV'] = pkginfo.pkgv
+        pkgvars['PKGR'] = pkginfo.pkgr
          for pkgvar in pkgvars:
              val = pkgvars[pkgvar]
              if val:

Please see my comment on the bug (just added):
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5263

Already added to the bug, but here so people not watching the bug can see:

I believe this change is requested because otherwise there is no way to detect a package upgrade/uprev when using buildhistory. This type of upgrade can happy when comparing no-GPLv3 and GPLv3 builds -- or just simple software updates when a layer gets updated.

Quoted 4 lines

We want to use the buildhistory from one build to the next to look for changes that have occurred that may be unexpected.

--Mark

Paul,
Any comments?
Qi replied to your comment in bugzilla.

Qi,
Perhaps you need to post an example showing how this change helps for a package upgrade and compare it to what happens when the patch is not applied.

// Randy

Quoted 11 lines
Quoted 4 lines

Cheers,
Paul

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Signature · 2 lines
# Randy MacLeod. SMTS, Linux, Wind River
Direct: 613.963.1350
#5 lore raw
Quoted 66 lines · On Tuesday 15 October 2013 15:58:17 Randy MacLeod wrote:
Quoted 60 lines · Mark Hatle
Quoted 45 lines · Paul Eggleton
Quoted 44 lines · On Thursday 26 September 2013 13:23:32 [email protected] wrote:

From: Chen Qi <[email protected]>

The buildhistory.bbclass always records PV instead of PKGV. However, the buildhistory-diff script treats PKGV as a monitored variable instead of PV.

If a recipe's PV changes, for example, hello_1.0.bb is renamed to hello_2.0.bb, then buildhistory-diff reports nothing because PV is not monitored and PKGV is not recorded.

So the buildhistory.bbclass should always record PKGV no matter it equals to PV or not.

The same logic applies to PKG, PKGE and PKGR.

[YOCTO #5263]

---

  meta/classes/buildhistory.bbclass |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
(quoted diff) +0 -0

b/meta/classes/buildhistory.bbclass index 3da03c8..cea917c 100644

meta/classes/buildhistory.bbclass +0 -1
@@ -277,10 +277,10 @@ def write_pkghistory(pkginfo, d):
          f.write("PR = %s\n" %  pkginfo.pr)
 
          pkgvars = {}
 
-        pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name

else ''
- pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe
else
'' - pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv != pkginfo.pv
else '' - pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr !=
pkginfo.pr else '' + pkgvars['PKG'] = pkginfo.pkg

meta/classes/buildhistory.bbclass +3 -0
+        pkgvars['PKGE'] = pkginfo.pkge
+        pkgvars['PKGV'] = pkginfo.pkgv
+        pkgvars['PKGR'] = pkginfo.pkgr
Quoted 6 lines
Quoted 4 lines

for pkgvar in pkgvars:
val = pkgvars[pkgvar]

if val:

Please see my comment on the bug (just added):
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5263

Already added to the bug, but here so people not watching the bug can see:

I believe this change is requested because otherwise there is no way to detect a package upgrade/uprev when using buildhistory. This type of upgrade can happy when comparing no-GPLv3 and GPLv3 builds -- or just simple software updates when a layer gets updated.

Quoted 4 lines

We want to use the buildhistory from one build to the next to look for changes that have occurred that may be unexpected.

--Mark

Quoted 8 lines

Paul,
Any comments?
Qi replied to your comment in bugzilla.

Qi,
Perhaps you need to post an example showing how this change helps for a package upgrade and compare it to what happens when the patch is not applied.

My apologies, I've been meaning to get back to this. I'll run some tests tomorrow so we can get a definitive resolution.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
author
#6 lore raw
In reply to Randy MacLeod
Quoted 66 lines · Randy MacLeod
Quoted 56 lines · Mark Hatle
Quoted 39 lines · Paul Eggleton
Quoted 38 lines · On Thursday 26 September 2013 13:23:32 [email protected] wrote:

From: Chen Qi <[email protected]>

The buildhistory.bbclass always records PV instead of PKGV. However, the buildhistory-diff script treats PKGV as a monitored variable instead of PV.

If a recipe's PV changes, for example, hello_1.0.bb is renamed to hello_2.0.bb, then buildhistory-diff reports nothing because PV is not monitored and PKGV is not recorded.

So the buildhistory.bbclass should always record PKGV no matter it equals to PV or not.

The same logic applies to PKG, PKGE and PKGR.

[YOCTO #5263]

---
  meta/classes/buildhistory.bbclass |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
(quoted diff) +0 -0

b/meta/classes/buildhistory.bbclass index 3da03c8..cea917c 100644

meta/classes/buildhistory.bbclass +0 -1
@@ -277,10 +277,10 @@ def write_pkghistory(pkginfo, d):
          f.write("PR = %s\n" %  pkginfo.pr)
 
          pkgvars = {}
-        pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name

else ''
- pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe
else
'' - pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv != pkginfo.pv
else '' - pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr !=
pkginfo.pr else '' + pkgvars['PKG'] = pkginfo.pkg
+ pkgvars['PKGE'] = pkginfo.pkge

Quoted 8 lines

meta/classes/buildhistory.bbclass def write_pkghistory(pkginfo, d): · line 286

Quoted 5 lines
meta/classes/buildhistory.bbclass +2 -0
+        pkgvars['PKGV'] = pkginfo.pkgv
+        pkgvars['PKGR'] = pkginfo.pkgr
          for pkgvar in pkgvars:
              val = pkgvars[pkgvar]
              if val:

Please see my comment on the bug (just added):
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5263

Already added to the bug, but here so people not watching the bug can see:

I believe this change is requested because otherwise there is no way to detect a package upgrade/uprev when using buildhistory. This type of upgrade can happy when comparing no-GPLv3 and GPLv3 builds -- or just simple software updates when a layer gets updated.

Quoted 4 lines

We want to use the buildhistory from one build to the next to look for changes that have occurred that may be unexpected.

--Mark

Paul,
Any comments?
Qi replied to your comment in bugzilla.

Quoted 8 lines

Qi,
Perhaps you need to post an example showing how this change helps for a package upgrade and compare it to what happens when the patch is not applied.

// Randy

Hi All,

Use the following steps to test the buildhistory.

1. bitbake chown-example
2. mv ../meta-local/recipes-core/chown-example/chown-example_1.0.bb ../meta-local/recipes-core/chown-example/chown-example_2.0.bb
3. bitbake chown-example
4. buildhistory-diff

Testing Result
-------------------
*) Without the patch
<No Output for buildhistory-diff>
*) With the patch
<Below is the output.>

chenqi@pek-qchen1-u12u4:~/poky/build$ buildhistory-diff
packages/i586-poky-linux/chown-example/chown-example-dbg: PKGV changed from 1.0 to 2.0
  * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-dev: PKGV changed from 1.0 to 2.0
  * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-doc: PKGV changed from 1.0 to 2.0
  * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-locale: PKGV changed from 1.0 to 2.0
  * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-staticdev: PKGV changed from 1.0 to 2.0
  * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example: PKGV changed from 1.0 to 2.0
  * PV changed from "1.0" to "2.0"

Best Regards,
Chen Qi

Quoted 13 lines
Quoted 11 lines
Quoted 4 lines

Cheers,
Paul

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#7 lore raw
Quoted 116 lines · On Thursday 17 October 2013 10:48:34 ChenQi wrote:
Quoted 72 lines · Randy MacLeod
Quoted 62 lines · Mark Hatle
Quoted 46 lines · Paul Eggleton
Quoted 45 lines · On Thursday 26 September 2013 13:23:32 [email protected] wrote:

From: Chen Qi <[email protected]>

The buildhistory.bbclass always records PV instead of PKGV. However, the buildhistory-diff script treats PKGV as a monitored variable instead of PV.

If a recipe's PV changes, for example, hello_1.0.bb is renamed to hello_2.0.bb, then buildhistory-diff reports nothing because PV is not monitored and PKGV is not recorded.

So the buildhistory.bbclass should always record PKGV no matter it equals to PV or not.

The same logic applies to PKG, PKGE and PKGR.

[YOCTO #5263]

---

  meta/classes/buildhistory.bbclass |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
(quoted diff) +0 -0

b/meta/classes/buildhistory.bbclass index 3da03c8..cea917c 100644

meta/classes/buildhistory.bbclass +0 -1
@@ -277,10 +277,10 @@ def write_pkghistory(pkginfo, d):
          f.write("PR = %s\n" %  pkginfo.pr)
 
          pkgvars = {}
 
-        pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name

else ''
- pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe
else
'' - pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv !=
pkginfo.pv
else '' - pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr !=
pkginfo.pr else '' + pkgvars['PKG'] = pkginfo.pkg

meta/classes/buildhistory.bbclass +3 -0
+        pkgvars['PKGE'] = pkginfo.pkge
+        pkgvars['PKGV'] = pkginfo.pkgv
+        pkgvars['PKGR'] = pkginfo.pkgr
Quoted 6 lines
Quoted 4 lines

for pkgvar in pkgvars:
val = pkgvars[pkgvar]

if val:

Please see my comment on the bug (just added):
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5263

Already added to the bug, but here so people not watching the bug can see:

I believe this change is requested because otherwise there is no way to detect a package upgrade/uprev when using buildhistory. This type of upgrade can happy when comparing no-GPLv3 and GPLv3 builds -- or just simple software updates when a layer gets updated.

Quoted 4 lines

We want to use the buildhistory from one build to the next to look for changes that have occurred that may be unexpected.

--Mark

Paul,
Any comments?
Qi replied to your comment in bugzilla.

Quoted 6 lines

Qi,
Perhaps you need to post an example showing how this change helps for a package upgrade and compare it to what happens when the patch is not applied.

// Randy

Hi All,

Use the following steps to test the buildhistory.

1. bitbake chown-example
2. mv ../meta-local/recipes-core/chown-example/chown-example_1.0.bb ../meta-local/recipes-core/chown-example/chown-example_2.0.bb
3. bitbake chown-example
4. buildhistory-diff

Testing Result
-------------------
*) Without the patch
<No Output for buildhistory-diff>
*) With the patch
<Below is the output.>

chenqi@pek-qchen1-u12u4:~/poky/build$ buildhistory-diff
packages/i586-poky-linux/chown-example/chown-example-dbg: PKGV changed
from 1.0 to 2.0
   * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-dev: PKGV changed
from 1.0 to 2.0
   * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-doc: PKGV changed
from 1.0 to 2.0
   * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-locale: PKGV
changed from 1.0 to 2.0
   * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example-staticdev: PKGV
changed from 1.0 to 2.0
   * PV changed from "1.0" to "2.0"
packages/i586-poky-linux/chown-example/chown-example: PKGV changed from
1.0 to 2.0
   * PV changed from "1.0" to "2.0"
Quoted 2 lines

Best Regards,
Chen Qi

A couple of things:

1) buildhistory-diff is intentionally not reporting version values changing, on the assumption that most of the time the user is aware when these changes occur. Based on what you have described there is a case for adding an option to report these changes however.

2) The patch as submitted not only records redundant information but also breaks the ability to see when the value changes from the "default" value to a custom value or vice versa, which is what the code was originally designed to do.

I am about to send a different patch that adds the option to show these changes and addresses #2 above.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre