Age | Commit message (Collapse) | Author |
|
Microsoft's TFS VCS system allows for spaces in a git repository url.
An example of a valid url is:
ssh://tfs-my-company.org:22/tfs/My Projects/FooBar
This commit adds support for such urls by implementing two changes.
Firstly, when bitbake makes a git command line call the url is
surrounded by quotes so that the url, regardless of spaces, is
treated as one argument. Secondly, additional parsing of various
filepath variables, which are based off of the url, are now
completed with any spaces in the url replaced with underscores.
Signed-off-by: Charlie Davies <charles.davies@whitetree.xyz>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
From: Anatol Belski <anbelski@linux.microsoft.com>
Using localhost for direct builds on host is fine. A case with a
misbehavior has been sighted on a Docker build. Even when the host
supports IPv6, but Docker is not configured correspondingly - some
versions of the asyncio Python module seem to misbehave and try to
use IPv6 where it's not supported in the container. This happens at
least on some Ubuntu 18.04 based containers, resolving the IP
explicitly appears to be the fix.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The link errors were found with linkcheck command:
(line 1958) broken https://docs.python.org/3/library/re.html#re - Anchor 're' not found
(line 713) broken http://docs.python.org/3/library/re.html#re - Anchor 're' not found
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
This more closely matches the original docbook style and is appropriate
given the way the manual uses this element.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The 'verbatim' text was rendered with Courier font in DocBook
(e.g. when using the <filename> tag). With DocBook we are using the
``FOO`` notation which ends up in a <pre> class in the HTML
output. Configure the theme CSS to use Courier, to preserve the look
and feel of the original docs.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
When switching back and forth between between regular and mega manual
an extra '/' keeps being added to the URL.
Reported-by: Quentin Schulz <quentin.schulz@streamunlimited.com>
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
The initial theme override covers for tip and and note only.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Review all pages, and fix up for formatting which was not covered by
pandoc, such as some links and code block sections.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
This page has a list of all the previously released Bitbake user manual.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
* Remove the pointless looking parts of breadcrumb navigtation
* Add a document type switcher to the breadcrumb navigation
* Add a version selection switch to the breadcrumb navigation
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
* Remove the 'generated by Sphinx' text on each page
* Add a 'last updated timestamp' on each page
* Remove the trailing 'dot' in TOC numbering
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
This patch fixes a handful of remaining warnings reported by Sphinx.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
For some notes with links, the links were lost during the pandoc
conversion.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Since we converted the list of variables into a Sphinx glossary, the
automatic conversion from Pandoc does not produce proper links. We fix
them up using a Python regexp.
Similarly some http links were not converted correctly, and can also
be fixed up with a regexp.
This patch was generated by running the following regexp:
line = re.sub("` <(https?://.*)>`__",
"\\1",
line)
line = re.sub("`+(\w+)`* <#var-bb-\\1>`__",
":term:`\\1`",
line)
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
It is possible to override CSS settings from the theme, by providing
custom snippets of CSS stylesheet. Support for that is added in
conf.py file.
Most of the CSS customization is inherited from the DocBook CSS style.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
To install this additional theme:
pip3 install sphinx_rtd_theme
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Sphinx has a glossary directive. From the documentation:
This directive must contain a reST definition list with terms and
definitions. The definitions will then be referencable with the 'term'
role.
So anywhere in *any* manual, we can do :term:`VAR` to refer to an item
from the glossary, and create a link.
An HTML anchor is created for each term in the glossary, and can be
accessed as:
<link>/ref-variables.html#term-<NAME>
To convert to a glossary, we needed proper indentation (e.g. added 3
spaces to each line)
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
This commit is autogenerated pandoc to generate an inital set
of reST files based on DocBook XML files.
A .rst file is generated for each .xml files in all manuals with this
command:
cd <manual>
for i in *.xml; do \
pandoc -f docbook -t rst --shift-heading-level-by=-1 \
$i -o $(basename $i .xml).rst \
done
The conversion was done with: pandoc 2.9.2.1-91 (Arch Linux).
Also created an initial top level index file for each document, and
added all 'books' to the top leve index.rst file.
The YP manuals layout is organized as:
Book
Chapter
Section
Section
Section
Sphinx uses section headers to create the document structure.
ReStructuredText defines sections headers like that:
To break longer text up into sections, you use section headers. These
are a single line of text (one or more words) with adornment: an
underline alone, or an underline and an overline together, in dashes
"-----", equals "======", tildes "~~~~~~" or any of the
non-alphanumeric characters = - ` : ' " ~ ^ _ * + # < > that you feel
comfortable with. An underline-only adornment is distinct from an
overline-and-underline adornment using the same character. The
underline/overline must be at least as long as the title text. Be
consistent, since all sections marked with the same adornment style
are deemed to be at the same level:
Let's define the following convention when converting from Docbook:
Book => overline === (Title)
Chapter => overline *** (1.)
Section => ==== (1.1)
Section => ---- (1.1.1)
Section => ~~~~ (1.1.1.1)
Section => ^^^^ (1.1.1.1.1)
During the conversion with pandoc, we used --shift-heading-level=-1 to
convert most of DocBook headings automatically. However with this
setting, the Chapter header was removed, so I added it back
manually. Without this setting all headings were off by one, which was
more difficult to manually fix.
At least with this change, we now have the same TOC with Sphinx and
DocBook.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Used sphinx-quickstart to generate top level config and
Makefile.sphinx, to allow side by side DocBook and Sphinx
co-existence.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
|
|
Blocks SIGINT in the worker processes to prevent them from running the
parent process signal handler, which causes them to deadlock under
certain circumstances.
[YOCTO #14034]
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
We're either hitting rate limiting with freedesktop.org or the
servers have intermittent network connections. Use our own mirror
of these repositories instead.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
We're seeing leaking open socket connections when errors occur and
tinfoil is in use. Improve the exception handling so the sockets
are closed even if exceptions occur, allowing more robust behaviour
when things go wrong.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
After the recent init changes, if a client disconnects before issuing a
command, the cooker can break in the reset handlers. Add some guards
in the code to prevent this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
PEP 3110 changed how exceptions work. 'e' is unbound
after the 'except' clause. See: https://www.python.org/dev/peps/pep-3110/#semantic-changes
Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The following code costs a lot of time when there are lot of layers and recipes:
for collection in collections:
collection_res[collection] = d.getVar('BBFILE_PATTERN_%s' % collection) or ''
My build has more than 100 layers and 3000 recipes, which calls d.getVar() 300K
(3000 * 100) times and makes 'bitbake-layers show-recipes' very slow, add a
keyword argument to get_file_layer() can fix the problem, it can save about 90%
time in my build (6min -> 40s).
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
This can make "$ bitbake-layers show-recipes" save about 60% time (14min ->
6min) in my build (more than 3000 recipes)
The command "bitbake-layers show-recipes" calls bb.utils.get_file_layer() with
each recipe, and get_file_layer() compare the file with each item in BBFILES
which makes it very time consuming when there are a lot of recipes and items in
BBFILES. So use BBFILES_PRIORITIZED and exit when file is matched, it doesn't
make sense to go on the loop when file is matched.
And use fnmatchcase to replace of fnmatch since the comparison should be
case-sensitive.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The original code saved BBFILES back to BBFILES without any changes which isn't
usefule, so remove that line. Now save prioritized BBFILES to
BBFILES_PRIORITIZED which can accelerate the query a lot for the one which
relies on it such as bb.utils.get_file_layer().
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Adds a contrib/ script that repeatedly runs bitbake and interrupts
parsing to try and reproduce parsing deadlocks.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Otherwise this can interfer with multiprocessing exit handling.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
If you make parsing fail (e.g. add something like:
X := "${@d.getVar('MCMACHINES').split()[1]}"
to meson.bbclass, then run "while true; do bitbake -g bash; done"
it will eventually hang. It appears the cancel_join_thread() call the
parsing failure triggers, breaks the results_queue badly enough that it
sits in read() indefintely (called from self.result_queue.get(timeout=0.25)).
The timeout only applies to lock aquisition, not the read call.
I've tried various other approaches such as using cancel_join_thread()
in other places but the only way things don't lock up is to avoid
cancel_join_thread() entirely for results_queue.
I do have a concern that this may adversely affect Ctrl+C handling
but equally, its broken now already and this appears to improve
things.
[YOCTO #14034]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
During cooker shutdown, its possible the parser isn't cleaned up. Fix
this (which may partially explain why threads were left hanging around
at exit).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Its hard to tell from the server logs whether commands complete or not
(or how long they take). Add extra info to allow more debugging of
server timeouts.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Knowing which process printed which messages and the timestamp of the
message is useful for debugging, so add this. Ensure the log parsing
isn't affected by using search() instead of match().
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Showing "leftover process" messages when a new server has started and is being
used by some UI is horrible. Compare the PID data from the lockfile to
avoid this (and the ton of confusing log data it generates).
Also, move the time.sleep() call to be after the first lock attempt, which
reduces noise in the logs significantly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
This could potentialy account for some of the missing thread cleanup
we're seeing.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
lsof/fuser error if the file doesn't exist. It can be deleted by something
else so ignore this if it happens and loop.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The cookerlog output goes to a file and its misleading to look at it and
not have it up to date with what the cooker is actually doing. Ensure
written data is flushed.
Ultimately this should be using python's logging but that is for another
day, we need simple fixes right now.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The binary string printed into the output is ugly, parse this so the
linebreaks come out in the logs and make them much more readable (I
was misssing the information initially despite looking for it).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Lets use valid python even if it the original happens to work.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Calling sys.exit() in the middle of the code is rather antisocial. We catch
this in various places but we shouldn't have to. In all these cases we have
already sent events explaining to the user what happened. This means the
correct exception is BBHandledException.
The recent startup changes have moved the point a lot of this code gets
called to inside the UI, with memres it would have always been possible
from there anyway. This change makes things much more consistent.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
With an invalid layer, the desired error output should be:
ERROR: The following layer directories do not exist:
ERROR: /this_path_does_not_exist
ERROR: Please check BBLAYERS in .../build-invalid-layer/conf/bblayers.conf
Instead we were met with a backtrace:
Traceback (most recent call last):
File "/scratch1/fray/xilinx/poky/bitbake/bin/bitbake", line 36, in <module>
cookerdata.CookerConfiguration()))
...
File "/scratch1/fray/xilinx/poky/bitbake/lib/bb/cookerdata.py", line 267, in parseBaseConfiguration
self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
File "/scratch1/fray/xilinx/poky/bitbake/lib/bb/cookerdata.py", line 358, in parseConfigurationFiles
sys.exit(1)
SystemExit: 1
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The new server startup code means exceptions can happen when we aren't
setup to show them to the user correctly, leading to ugly tracebacks.
Add in some special case handling of BBHandledException to at least
ensure that common case doesn't traceback and the user sees meaningful
output.
In the future, the logging setup can likely be improved, as can the way
runCommand handles exceptions, they all should likely become real
exceptions again on the UI side.
[YOCTO #14022]
[YOCTO #14033]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Convert the test suite that was in COW.py into something that
will actually run as part of bitbake-selftest. This is in
preparation for some cleanups I plan in COW.py.
Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|