Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] package.bbclass: Let PR server update PKGV, not PV
@ 2015-01-10 13:46 Mike Looijmans
  2015-01-19  9:04 ` Mike Looijmans
  0 siblings, 1 reply; 2+ messages in thread
From: Mike Looijmans @ 2015-01-10 13:46 UTC (permalink / raw)
  To: openembedded-core; +Cc: Mike Looijmans

From: Mike Looijmans <mike.looijmans@topic.nl>

PV is the package version as we need it to be during the build. PKGV is the
final version as it ends up in the package, and defaults to PV.

The packager handled builds without PR-server by replacing the AUTOINC string
in PKGV, but when the PR-server is being used, the script replaces the contents
of PKGV with the PV if the PV contains "AUTOINC". Thus the packager overrides
any change to PKGV the recipe might have made.
This breaks classes like gitpkgv that provide a correctly numbered PKGV, the
number as calculated by that class will simply be replaced with a 0-based index
from the PR-server.

This patch makes the packager look at the PKGV version instead of the PV, and
update the PKGV only based on the PKGV contents as set by the recipe.

See also the discussion here:
http://lists.openembedded.org/pipermail/openembedded-core/2015-January/100329.html

From investigating the history of the code and changes in the past year, the
use of "pv" instead of "pkgv" appears to be just an oversight, introduced in:
commit b27b438221e16ac3df6ac66d761b77e3bd43db67 "prs: use the PRServer to replace the BB_URI_LOCALCOUNT functionality"
A later commit 865d001de168915a5796e5c760f96bdd04cebd61 "package/prserv: Merge two similar functions into one"
silently fixed this only for the case without PR-server by using pkgv there.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
---
 meta/classes/package.bbclass |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index fc501fc..93e2461 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -403,9 +403,10 @@ python package_get_auto_pr() {
     if not (host is None):
         d.setVar("PRSERV_HOST", host)
 
+    pkgv = d.getVar("PKGV", True)
+
     # PR Server not active, handle AUTOINC
     if not d.getVar('PRSERV_HOST', True):
-        pkgv = d.getVar("PKGV", True)
         if 'AUTOINC' in pkgv:
             d.setVar("PKGV", pkgv.replace("AUTOINC", "0"))
         return
@@ -428,11 +429,11 @@ python package_get_auto_pr() {
         if conn is None:
             conn = oe.prservice.prserv_make_conn(d)
         if conn is not None:
-            if "AUTOINC" in pv:
+            if "AUTOINC" in pkgv:
                 srcpv = bb.fetch2.get_srcrev(d)
                 base_ver = "AUTOINC-%s" % version[:version.find(srcpv)]
                 value = conn.getPR(base_ver, pkgarch, srcpv)
-                d.setVar("PKGV", pv.replace("AUTOINC", str(value)))
+                d.setVar("PKGV", pkgv.replace("AUTOINC", str(value)))
 
             auto_pr = conn.getPR(version, pkgarch, checksum)
     except Exception as e:
-- 
1.7.9.5



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

* Re: [PATCH] package.bbclass: Let PR server update PKGV, not PV
  2015-01-10 13:46 [PATCH] package.bbclass: Let PR server update PKGV, not PV Mike Looijmans
@ 2015-01-19  9:04 ` Mike Looijmans
  0 siblings, 0 replies; 2+ messages in thread
From: Mike Looijmans @ 2015-01-19  9:04 UTC (permalink / raw)
  To: openembedded-core

ping?

On 10-01-15 14:46, Mike Looijmans wrote:
> From: Mike Looijmans <mike.looijmans@topic.nl>
>
> PV is the package version as we need it to be during the build. PKGV is the
> final version as it ends up in the package, and defaults to PV.
>
> The packager handled builds without PR-server by replacing the AUTOINC string
> in PKGV, but when the PR-server is being used, the script replaces the contents
> of PKGV with the PV if the PV contains "AUTOINC". Thus the packager overrides
> any change to PKGV the recipe might have made.
> This breaks classes like gitpkgv that provide a correctly numbered PKGV, the
> number as calculated by that class will simply be replaced with a 0-based index
> from the PR-server.
>
> This patch makes the packager look at the PKGV version instead of the PV, and
> update the PKGV only based on the PKGV contents as set by the recipe.
>
> See also the discussion here:
> http://lists.openembedded.org/pipermail/openembedded-core/2015-January/100329.html
>
>  From investigating the history of the code and changes in the past year, the
> use of "pv" instead of "pkgv" appears to be just an oversight, introduced in:
> commit b27b438221e16ac3df6ac66d761b77e3bd43db67 "prs: use the PRServer to replace the BB_URI_LOCALCOUNT functionality"
> A later commit 865d001de168915a5796e5c760f96bdd04cebd61 "package/prserv: Merge two similar functions into one"
> silently fixed this only for the case without PR-server by using pkgv there.
>
> Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
> ---
>   meta/classes/package.bbclass |    7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index fc501fc..93e2461 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -403,9 +403,10 @@ python package_get_auto_pr() {
>       if not (host is None):
>           d.setVar("PRSERV_HOST", host)
>
> +    pkgv = d.getVar("PKGV", True)
> +
>       # PR Server not active, handle AUTOINC
>       if not d.getVar('PRSERV_HOST', True):
> -        pkgv = d.getVar("PKGV", True)
>           if 'AUTOINC' in pkgv:
>               d.setVar("PKGV", pkgv.replace("AUTOINC", "0"))
>           return
> @@ -428,11 +429,11 @@ python package_get_auto_pr() {
>           if conn is None:
>               conn = oe.prservice.prserv_make_conn(d)
>           if conn is not None:
> -            if "AUTOINC" in pv:
> +            if "AUTOINC" in pkgv:
>                   srcpv = bb.fetch2.get_srcrev(d)
>                   base_ver = "AUTOINC-%s" % version[:version.find(srcpv)]
>                   value = conn.getPR(base_ver, pkgarch, srcpv)
> -                d.setVar("PKGV", pv.replace("AUTOINC", str(value)))
> +                d.setVar("PKGV", pkgv.replace("AUTOINC", str(value)))
>
>               auto_pr = conn.getPR(version, pkgarch, checksum)
>       except Exception as e:
>



Met vriendelijke groet / kind regards,

Mike Looijmans
System Expert


TOPIC Embedded Systems
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: (+31) (0) 499 33 69 79
Telefax:  (+31) (0) 499 33 69 70
E-mail: mike.looijmans@topic.nl
Website: www.topic.nl

Please consider the environment before printing this e-mail

Topic zoekt gedreven (embedded) software specialisten!
http://topic.nl/vacatures/topic-zoekt-software-engineers/



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

end of thread, other threads:[~2015-01-19  9:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-10 13:46 [PATCH] package.bbclass: Let PR server update PKGV, not PV Mike Looijmans
2015-01-19  9:04 ` Mike Looijmans

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox