SRCPV description


Rifenbark, Scott M <scott.m.rifenbark@...>
 

Hi,

I need a description of the SRCPV variable for the YP reference glossary. I have been told that it is generated and not assigned and that it is used to define PV values that include the source revisions from an RCS. By default it is set to the following in the conf/bitbake.conf file:

SRCPV = "${@bb.fetch2.get_srcrev(d)}"

Can anyone provide more information on this variable?

Thanks,
Scott



Scott Rifenbark
Intel Corporation
Yocto Project Documentation
503.712.2702
503.341.0418 (cell)


Jerrod Peach <peachj@...>
 

On Mon, Jan 14, 2013 at 9:52 AM, Rifenbark, Scott M <scott.m.rifenbark@...> wrote:
Hi,

I need a description of the SRCPV variable for the YP reference glossary.  I have been told that it is generated and not assigned and that it is used to define PV values that include the source revisions from an RCS.  By default it is set to the following in the conf/bitbake.conf file:

SRCPV = "${@bb.fetch2.get_srcrev(d)}"

Can anyone provide more information on this variable?

Thanks,
Scott



Scott Rifenbark
Intel Corporation
Yocto Project Documentation
503.712.2702
503.341.0418 (cell)

_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto

Scott,

Off the top of my head, I know SRCPV is a combination of the VCS type and revision used in the actual build. Most interestingly, SRCPV will always contain the real revision used in the build, even if ${AUTOREV} is specified as the SRCREV for a given package. Note that if a package does not include SRCPV somewhere within its recipe, I believe setting SRCREV to ${AUTOREV} will have no effect, as ${AUTOREV} by itself simply resolves to the string "AUTOINC", which does not permute the hash of the recipe.

Note that I'm not really a Yocto expert nor am I sitting with the code in front of me right now, so someone can jump in if I missed something or got a detail incorrect.  I don't remember the exact format of the string, but I want to say its a combination of the VCS name, a Yocto-internal VCS identification number (just like 1 or 2, not some huge int), and the revision (be it a hash it git or an integer in SVN or whatever else is used by a supported VCS).

Kind regards,

Jerrod


Robert P. J. Day
 

it might be worth tweaking the comment in fetch2/__init__.py, which
currently reads:

def get_srcrev(d):
"""
Return the version string for the current package
(usually to be used as PV)


no, it's primarily used not *as* PV but in the *construction* of PV,
as in:

meta/conf/bitbake.conf:SRCPV = "${@bb.fetch2.get_srcrev(d)}"
...
meta/recipes-bsp/x-load/x-load_git.bb:PV = "1.5.0+git${SRCPV}"

so, pedantically, that routine is used as SRCPV, which is
subsequently used in the final construction of PV. QED.

rday

--

========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca

Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================


Martin Jansa
 

On Mon, Jan 14, 2013 at 10:10:58AM -0500, Jerrod Peach wrote:
On Mon, Jan 14, 2013 at 9:52 AM, Rifenbark, Scott M <
scott.m.rifenbark@...> wrote:

Hi,

I need a description of the SRCPV variable for the YP reference glossary.
I have been told that it is generated and not assigned and that it is used
to define PV values that include the source revisions from an RCS. By
default it is set to the following in the conf/bitbake.conf file:

SRCPV = "${@bb.fetch2.get_srcrev(d)}"

Can anyone provide more information on this variable?

Thanks,
Scott



Scott Rifenbark
Intel Corporation
Yocto Project Documentation
503.712.2702
503.341.0418 (cell)

_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
Scott,

Off the top of my head, I know SRCPV is a combination of the VCS type and
revision used in the actual build. Most interestingly, SRCPV will always
contain the real revision used in the build, even if ${AUTOREV} is
specified as the SRCREV for a given package. Note that if a package does
not include SRCPV somewhere within its recipe, I believe setting SRCREV to
${AUTOREV} will have no effect, as ${AUTOREV} by itself simply resolves to
the string "AUTOINC", which does not permute the hash of the recipe.

Note that I'm not really a Yocto expert nor am I sitting with the code in
front of me right now, so someone can jump in if I missed something or got
a detail incorrect. I don't remember the exact format of the string, but I
want to say its a combination of the VCS name, a Yocto-internal VCS
identification number (just like 1 or 2, not some huge int), and the
revision (be it a hash it git or an integer in SVN or whatever else is used
by a supported VCS).
There isn't VCS type in SRCPV (that's why there is always prefix like
1.0+git${SRCPV}, 1.0+svn${SRCPV}). Some recipes even in oe-core are
using wrong prefix like -git or ~git:
meta/recipes-connectivity/ofono/ofono_git.bb:PV = "0.12-git${SRCPV}"
meta/recipes-extended/libzypp/libzypp_git.bb:PV = "0.0-git${SRCPV}"
meta/recipes-extended/sat-solver/sat-solver_git.bb:PV = "0.0-git${SRCPV}"
meta/recipes-extended/zypper/zypper_git.bb:PV = "1.5.3-git${SRCPV}"
meta/recipes-graphics/mesa/mesa-git.inc:PV = "9.1~git${SRCPV}"

And +git/+gitr, +svn/+svnr prefixes are inconsistently used.

AUTOINC is used instead of LOCALCOUNT only after
http://git.openembedded.org/bitbake/commit/?id=61cf01c5c236b4218f40cfae7c059c2b86765dbd

And AUTOREV should expand to latest revision in SRCREV even without
SRCPV in recipe (SRCPV is already used in bitbake.conf
meta/conf/bitbake.conf:SRCPV = "${@bb.fetch2.get_srcrev(d)}").

Cheers,

--
Martin 'JaMa' Jansa jabber: Martin.Jansa@...


Rifenbark, Scott M <scott.m.rifenbark@...>
 

Thanks for the explanations for this variable all.

Scott

-----Original Message-----
From: Martin Jansa [mailto:martin.jansa@...]
Sent: Monday, January 14, 2013 8:19 AM
To: Jerrod Peach
Cc: Rifenbark, Scott M; Yocto discussion list
Subject: Re: [yocto] SRCPV description

On Mon, Jan 14, 2013 at 10:10:58AM -0500, Jerrod Peach wrote:
On Mon, Jan 14, 2013 at 9:52 AM, Rifenbark, Scott M <
scott.m.rifenbark@...> wrote:

Hi,

I need a description of the SRCPV variable for the YP reference
glossary.
I have been told that it is generated and not assigned and that it
is used to define PV values that include the source revisions from
an RCS. By default it is set to the following in the
conf/bitbake.conf file:

SRCPV = "${@bb.fetch2.get_srcrev(d)}"

Can anyone provide more information on this variable?

Thanks,
Scott



Scott Rifenbark
Intel Corporation
Yocto Project Documentation
503.712.2702
503.341.0418 (cell)

_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
Scott,

Off the top of my head, I know SRCPV is a combination of the VCS type
and revision used in the actual build. Most interestingly, SRCPV will
always contain the real revision used in the build, even if ${AUTOREV}
is specified as the SRCREV for a given package. Note that if a package
does not include SRCPV somewhere within its recipe, I believe setting
SRCREV to ${AUTOREV} will have no effect, as ${AUTOREV} by itself
simply resolves to the string "AUTOINC", which does not permute the
hash of the recipe.

Note that I'm not really a Yocto expert nor am I sitting with the code
in front of me right now, so someone can jump in if I missed something
or got a detail incorrect. I don't remember the exact format of the
string, but I want to say its a combination of the VCS name, a
Yocto-internal VCS identification number (just like 1 or 2, not some
huge int), and the revision (be it a hash it git or an integer in SVN
or whatever else is used by a supported VCS).
There isn't VCS type in SRCPV (that's why there is always prefix like
1.0+git${SRCPV}, 1.0+svn${SRCPV}). Some recipes even in oe-core are
using wrong prefix like -git or ~git:
meta/recipes-connectivity/ofono/ofono_git.bb:PV = "0.12-git${SRCPV}"
meta/recipes-extended/libzypp/libzypp_git.bb:PV = "0.0-git${SRCPV}"
meta/recipes-extended/sat-solver/sat-solver_git.bb:PV = "0.0-
git${SRCPV}"
meta/recipes-extended/zypper/zypper_git.bb:PV = "1.5.3-git${SRCPV}"
meta/recipes-graphics/mesa/mesa-git.inc:PV = "9.1~git${SRCPV}"

And +git/+gitr, +svn/+svnr prefixes are inconsistently used.

AUTOINC is used instead of LOCALCOUNT only after
http://git.openembedded.org/bitbake/commit/?id=61cf01c5c236b4218f40cfae7
c059c2b86765dbd

And AUTOREV should expand to latest revision in SRCREV even without
SRCPV in recipe (SRCPV is already used in bitbake.conf
meta/conf/bitbake.conf:SRCPV = "${@bb.fetch2.get_srcrev(d)}").

Cheers,

--
Martin 'JaMa' Jansa jabber: Martin.Jansa@...