mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
bitbake: Provide LAYERDIR_RE for layer.conf
This variable is a regex-escaped version of LAYERDIR, for safer use in BBFILE_PATTERN, so as to avoid issues with regex special characters in the layer path. [YOCTO #8402] (Bitbake rev: 72900522778b6ff08b135bf8bb97dff3f1a20bd9) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
90bc9b4f33
commit
32ee30a46d
@@ -399,7 +399,7 @@ ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inh
|
|||||||
<link linkend='var-BBFILES'>BBFILES</link> += "${LAYERDIR}/*.bb"
|
<link linkend='var-BBFILES'>BBFILES</link> += "${LAYERDIR}/*.bb"
|
||||||
|
|
||||||
<link linkend='var-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</link> += "mylayer"
|
<link linkend='var-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</link> += "mylayer"
|
||||||
<link linkend='var-BBFILE_PATTERN'>BBFILE_PATTERN_mylayer</link> := "^${LAYERDIR}/"
|
<link linkend='var-BBFILE_PATTERN'>BBFILE_PATTERN_mylayer</link> := "^${LAYERDIR_RE}/"
|
||||||
</literallayout>
|
</literallayout>
|
||||||
For information on these variables, click the links
|
For information on these variables, click the links
|
||||||
to go to the definitions in the glossary.</para>
|
to go to the definitions in the glossary.</para>
|
||||||
|
|||||||
@@ -1636,6 +1636,17 @@
|
|||||||
</glossdef>
|
</glossdef>
|
||||||
</glossentry>
|
</glossentry>
|
||||||
|
|
||||||
|
<glossentry id='var-LAYERDIR_RE'><glossterm>LAYERDIR_RE</glossterm>
|
||||||
|
<glossdef>
|
||||||
|
<para>When used inside the <filename>layer.conf</filename> configuration
|
||||||
|
file, this variable provides the path of the current layer,
|
||||||
|
escaped for use in a regular expression
|
||||||
|
(<link linkend='var-BBFILE_PATTERN'><filename>BBFILE_PATTERN</filename></link>).
|
||||||
|
This variable is not available outside of <filename>layer.conf</filename>
|
||||||
|
and references are expanded immediately when parsing of the file completes.</para>
|
||||||
|
</glossdef>
|
||||||
|
</glossentry>
|
||||||
|
|
||||||
<glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
|
<glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
|
||||||
<glossdef>
|
<glossdef>
|
||||||
<para>Optionally specifies the version of a layer as a single number.
|
<para>Optionally specifies the version of a layer as a single number.
|
||||||
|
|||||||
@@ -22,9 +22,11 @@
|
|||||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
import os, sys
|
|
||||||
from functools import wraps
|
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from functools import wraps
|
||||||
import bb
|
import bb
|
||||||
from bb import data
|
from bb import data
|
||||||
import bb.parse
|
import bb.parse
|
||||||
@@ -296,9 +298,12 @@ class CookerDataBuilder(object):
|
|||||||
if layer.endswith('/'):
|
if layer.endswith('/'):
|
||||||
layer = layer.rstrip('/')
|
layer = layer.rstrip('/')
|
||||||
data.setVar('LAYERDIR', layer)
|
data.setVar('LAYERDIR', layer)
|
||||||
|
data.setVar('LAYERDIR_RE', re.escape(layer))
|
||||||
data = parse_config_file(os.path.join(layer, "conf", "layer.conf"), data)
|
data = parse_config_file(os.path.join(layer, "conf", "layer.conf"), data)
|
||||||
data.expandVarref('LAYERDIR')
|
data.expandVarref('LAYERDIR')
|
||||||
|
data.expandVarref('LAYERDIR_RE')
|
||||||
|
|
||||||
|
data.delVar('LAYERDIR_RE')
|
||||||
data.delVar('LAYERDIR')
|
data.delVar('LAYERDIR')
|
||||||
|
|
||||||
if not data.getVar("BBPATH", True):
|
if not data.getVar("BBPATH", True):
|
||||||
|
|||||||
Reference in New Issue
Block a user