summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-common-tasks.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/dev-manual/dev-manual-common-tasks.xml')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml564
1 files changed, 562 insertions, 2 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 13a84b9c22..0c2101fde9 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -7432,8 +7432,8 @@ Some notes from Cal:
7432 BUILDHISTORY_COMMIT = "1" 7432 BUILDHISTORY_COMMIT = "1"
7433 </literallayout> 7433 </literallayout>
7434 For information on build history, see the 7434 For information on build history, see the
7435 "<ulink url='&YOCTO_DOCS_REF_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>" 7435 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
7436 section in the Yocto Project Reference Manual. 7436 section.
7437 </para> 7437 </para>
7438 7438
7439 <note> 7439 <note>
@@ -9089,6 +9089,566 @@ Some notes from Cal:
9089 </section> 9089 </section>
9090 </section> 9090 </section>
9091 9091
9092
9093
9094
9095 <section id='maintaining-build-output-quality'>
9096 <title>Maintaining Build Output Quality</title>
9097
9098 <para>
9099 Many factors can influence the quality of a build.
9100 For example, if you upgrade a recipe to use a new version of an
9101 upstream software package or you experiment with some new
9102 configuration options, subtle changes can occur that you might
9103 not detect until later.
9104 Consider the case where your recipe is using a newer version of
9105 an upstream package.
9106 In this case, a new version of a piece of software might
9107 introduce an optional dependency on another library, which is
9108 auto-detected.
9109 If that library has already been built when the software is
9110 building, the software will link to the built library and that
9111 library will be pulled into your image along with the new
9112 software even if you did not want the library.
9113 </para>
9114
9115 <para>
9116 The
9117 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-buildhistory'><filename>buildhistory</filename></ulink>
9118 class exists to help you maintain the quality of your build
9119 output.
9120 You can use the class to highlight unexpected and possibly
9121 unwanted changes in the build output.
9122 When you enable build history, it records information about the
9123 contents of each package and image and then commits that
9124 information to a local Git repository where you can examine
9125 the information.
9126 </para>
9127
9128 <para>
9129 The remainder of this section describes the following:
9130 <itemizedlist>
9131 <listitem><para>
9132 How you can enable and disable build history
9133 </para></listitem>
9134 <listitem><para>
9135 How to understand what the build history contains
9136 </para></listitem>
9137 <listitem><para>
9138 How to limit the information used for build history
9139 </para></listitem>
9140 <listitem><para>
9141 How to examine the build history from both a
9142 command-line and web interface
9143 </para></listitem>
9144 </itemizedlist>
9145 </para>
9146
9147 <section id='enabling-and-disabling-build-history'>
9148 <title>Enabling and Disabling Build History</title>
9149
9150 <para>
9151 Build history is disabled by default.
9152 To enable it, add the following <filename>INHERIT</filename>
9153 statement and set the
9154 <ulink url='&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></ulink>
9155 variable to "1" at the end of your
9156 <filename>conf/local.conf</filename> file found in the
9157 <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>:
9158 <literallayout class='monospaced'>
9159 INHERIT += "buildhistory"
9160 BUILDHISTORY_COMMIT = "1"
9161 </literallayout>
9162 Enabling build history as previously described causes the
9163 OpenEmbedded build system to collect build output information
9164 and commit it as a single commit to a local
9165 <ulink url='&YOCTO_DOCS_OVERVIEW_URL;#git'>Git</ulink>
9166 repository.
9167 <note>
9168 Enabling build history increases your build times slightly,
9169 particularly for images, and increases the amount of disk
9170 space used during the build.
9171 </note>
9172 </para>
9173
9174 <para>
9175 You can disable build history by removing the previous
9176 statements from your <filename>conf/local.conf</filename>
9177 file.
9178 </para>
9179 </section>
9180
9181 <section id='understanding-what-the-build-history-contains'>
9182 <title>Understanding What the Build History Contains</title>
9183
9184 <para>
9185 Build history information is kept in
9186 <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-TOPDIR'><filename>TOPDIR</filename></ulink><filename>}/buildhistory</filename>
9187 in the Build Directory as defined by the
9188 <ulink url='&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_DIR'><filename>BUILDHISTORY_DIR</filename></ulink>
9189 variable.
9190 The following is an example abbreviated listing:
9191 <imagedata fileref="figures/buildhistory.png" align="center" width="6in" depth="4in" />
9192 </para>
9193
9194 <para>
9195 At the top level, a <filename>metadata-revs</filename>
9196 file exists that lists the revisions of the repositories for
9197 the enabled layers when the build was produced.
9198 The rest of the data splits into separate
9199 <filename>packages</filename>, <filename>images</filename>
9200 and <filename>sdk</filename> directories, the contents of
9201 which are described as follows.
9202 </para>
9203
9204 <section id='build-history-package-information'>
9205 <title>Build History Package Information</title>
9206
9207 <para>
9208 The history for each package contains a text file that has
9209 name-value pairs with information about the package.
9210 For example,
9211 <filename>buildhistory/packages/i586-poky-linux/busybox/busybox/latest</filename>
9212 contains the following:
9213 <literallayout class='monospaced'>
9214 PV = 1.22.1
9215 PR = r32
9216 RPROVIDES =
9217 RDEPENDS = glibc (>= 2.20) update-alternatives-opkg
9218 RRECOMMENDS = busybox-syslog busybox-udhcpc update-rc.d
9219 PKGSIZE = 540168
9220 FILES = /usr/bin/* /usr/sbin/* /usr/lib/busybox/* /usr/lib/lib*.so.* \
9221 /etc /com /var /bin/* /sbin/* /lib/*.so.* /lib/udev/rules.d \
9222 /usr/lib/udev/rules.d /usr/share/busybox /usr/lib/busybox/* \
9223 /usr/share/pixmaps /usr/share/applications /usr/share/idl \
9224 /usr/share/omf /usr/share/sounds /usr/lib/bonobo/servers
9225 FILELIST = /bin/busybox /bin/busybox.nosuid /bin/busybox.suid /bin/sh \
9226 /etc/busybox.links.nosuid /etc/busybox.links.suid
9227 </literallayout>
9228 Most of these name-value pairs correspond to variables
9229 used to produce the package.
9230 The exceptions are <filename>FILELIST</filename>, which
9231 is the actual list of files in the package, and
9232 <filename>PKGSIZE</filename>, which is the total size of
9233 files in the package in bytes.
9234 </para>
9235
9236 <para>
9237 A file also exists that corresponds to the recipe from
9238 which the package came (e.g.
9239 <filename>buildhistory/packages/i586-poky-linux/busybox/latest</filename>):
9240 <literallayout class='monospaced'>
9241 PV = 1.22.1
9242 PR = r32
9243 DEPENDS = initscripts kern-tools-native update-rc.d-native \
9244 virtual/i586-poky-linux-compilerlibs virtual/i586-poky-linux-gcc \
9245 virtual/libc virtual/update-alternatives
9246 PACKAGES = busybox-ptest busybox-httpd busybox-udhcpd busybox-udhcpc \
9247 busybox-syslog busybox-mdev busybox-hwclock busybox-dbg \
9248 busybox-staticdev busybox-dev busybox-doc busybox-locale busybox
9249 </literallayout>
9250 </para>
9251
9252 <para>
9253 Finally, for those recipes fetched from a version control
9254 system (e.g., Git), a file exists that lists source
9255 revisions that are specified in the recipe and lists
9256 the actual revisions used during the build.
9257 Listed and actual revisions might differ when
9258 <ulink url='&YOCTO_DOCS_REF_URL;#var-SRCREV'><filename>SRCREV</filename></ulink>
9259 is set to
9260 ${<ulink url='&YOCTO_DOCS_REF_URL;#var-AUTOREV'><filename>AUTOREV</filename></ulink>}.
9261 Here is an example assuming
9262 <filename>buildhistory/packages/qemux86-poky-linux/linux-yocto/latest_srcrev</filename>):
9263 <literallayout class='monospaced'>
9264 # SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
9265 SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
9266 # SRCREV_meta = "a227f20eff056e511d504b2e490f3774ab260d6f"
9267 SRCREV_meta = "a227f20eff056e511d504b2e490f3774ab260d6f"
9268 </literallayout>
9269 You can use the
9270 <filename>buildhistory-collect-srcrevs</filename>
9271 command with the <filename>-a</filename> option to
9272 collect the stored <filename>SRCREV</filename> values
9273 from build history and report them in a format suitable for
9274 use in global configuration (e.g.,
9275 <filename>local.conf</filename> or a distro include file)
9276 to override floating <filename>AUTOREV</filename> values
9277 to a fixed set of revisions.
9278 Here is some example output from this command:
9279 <literallayout class='monospaced'>
9280 $ buildhistory-collect-srcrevs -a
9281 # i586-poky-linux
9282 SRCREV_pn-glibc = "b8079dd0d360648e4e8de48656c5c38972621072"
9283 SRCREV_pn-glibc-initial = "b8079dd0d360648e4e8de48656c5c38972621072"
9284 SRCREV_pn-opkg-utils = "53274f087565fd45d8452c5367997ba6a682a37a"
9285 SRCREV_pn-kmod = "fd56638aed3fe147015bfa10ed4a5f7491303cb4"
9286 # x86_64-linux
9287 SRCREV_pn-gtk-doc-stub-native = "1dea266593edb766d6d898c79451ef193eb17cfa"
9288 SRCREV_pn-dtc-native = "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf"
9289 SRCREV_pn-update-rc.d-native = "eca680ddf28d024954895f59a241a622dd575c11"
9290 SRCREV_glibc_pn-cross-localedef-native = "b8079dd0d360648e4e8de48656c5c38972621072"
9291 SRCREV_localedef_pn-cross-localedef-native = "c833367348d39dad7ba018990bfdaffaec8e9ed3"
9292 SRCREV_pn-prelink-native = "faa069deec99bf61418d0bab831c83d7c1b797ca"
9293 SRCREV_pn-opkg-utils-native = "53274f087565fd45d8452c5367997ba6a682a37a"
9294 SRCREV_pn-kern-tools-native = "23345b8846fe4bd167efdf1bd8a1224b2ba9a5ff"
9295 SRCREV_pn-kmod-native = "fd56638aed3fe147015bfa10ed4a5f7491303cb4"
9296 # qemux86-poky-linux
9297 SRCREV_machine_pn-linux-yocto = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
9298 SRCREV_meta_pn-linux-yocto = "a227f20eff056e511d504b2e490f3774ab260d6f"
9299 # all-poky-linux
9300 SRCREV_pn-update-rc.d = "eca680ddf28d024954895f59a241a622dd575c11"
9301 </literallayout>
9302 <note>
9303 Here are some notes on using the
9304 <filename>buildhistory-collect-srcrevs</filename>
9305 command:
9306 <itemizedlist>
9307 <listitem><para>
9308 By default, only values where the
9309 <filename>SRCREV</filename> was not hardcoded
9310 (usually when <filename>AUTOREV</filename>
9311 is used) are reported.
9312 Use the <filename>-a</filename> option to
9313 see all <filename>SRCREV</filename> values.
9314 </para></listitem>
9315 <listitem><para>
9316 The output statements might not have any effect
9317 if overrides are applied elsewhere in the
9318 build system configuration.
9319 Use the <filename>-f</filename> option to add
9320 the <filename>forcevariable</filename> override
9321 to each output line if you need to work around
9322 this restriction.
9323 </para></listitem>
9324 <listitem><para>
9325 The script does apply special handling when
9326 building for multiple machines.
9327 However, the script does place a comment before
9328 each set of values that specifies which
9329 triplet to which they belong as previously
9330 shown (e.g.,
9331 <filename>i586-poky-linux</filename>).
9332 </para></listitem>
9333 </itemizedlist>
9334 </note>
9335 </para>
9336 </section>
9337
9338 <section id='build-history-image-information'>
9339 <title>Build History Image Information</title>
9340
9341 <para>
9342 The files produced for each image are as follows:
9343 <itemizedlist>
9344 <listitem><para>
9345 <filename>image-files:</filename>
9346 A directory containing selected files from the root
9347 filesystem.
9348 The files are defined by
9349 <ulink url='&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_IMAGE_FILES'><filename>BUILDHISTORY_IMAGE_FILES</filename></ulink>.
9350 </para></listitem>
9351 <listitem><para>
9352 <filename>build-id.txt:</filename>
9353 Human-readable information about the build
9354 configuration and metadata source revisions.
9355 This file contains the full build header as printed
9356 by BitBake.
9357 </para></listitem>
9358 <listitem><para>
9359 <filename>*.dot:</filename>
9360 Dependency graphs for the image that are
9361 compatible with <filename>graphviz</filename>.
9362 </para></listitem>
9363 <listitem><para>
9364 <filename>files-in-image.txt:</filename>
9365 A list of files in the image with permissions,
9366 owner, group, size, and symlink information.
9367 </para></listitem>
9368 <listitem><para>
9369 <filename>image-info.txt:</filename>
9370 A text file containing name-value pairs with
9371 information about the image.
9372 See the following listing example for more
9373 information.
9374 </para></listitem>
9375 <listitem><para>
9376 <filename>installed-package-names.txt:</filename>
9377 A list of installed packages by name only.
9378 </para></listitem>
9379 <listitem><para>
9380 <filename>installed-package-sizes.txt:</filename>
9381 A list of installed packages ordered by size.
9382 </para></listitem>
9383 <listitem><para>
9384 <filename>installed-packages.txt:</filename>
9385 A list of installed packages with full package
9386 filenames.
9387 </para></listitem>
9388 </itemizedlist>
9389 <note>
9390 Installed package information is able to be gathered
9391 and produced even if package management is disabled
9392 for the final image.
9393 </note>
9394 </para>
9395
9396 <para>
9397 Here is an example of <filename>image-info.txt</filename>:
9398 <literallayout class='monospaced'>
9399 DISTRO = poky
9400 DISTRO_VERSION = 1.7
9401 USER_CLASSES = buildstats image-mklibs image-prelink
9402 IMAGE_CLASSES = image_types
9403 IMAGE_FEATURES = debug-tweaks
9404 IMAGE_LINGUAS =
9405 IMAGE_INSTALL = packagegroup-core-boot run-postinsts
9406 BAD_RECOMMENDATIONS =
9407 NO_RECOMMENDATIONS =
9408 PACKAGE_EXCLUDE =
9409 ROOTFS_POSTPROCESS_COMMAND = write_package_manifest; license_create_manifest; \
9410 write_image_manifest ; buildhistory_list_installed_image ; \
9411 buildhistory_get_image_installed ; ssh_allow_empty_password; \
9412 postinst_enable_logging; rootfs_update_timestamp ; ssh_disable_dns_lookup ;
9413 IMAGE_POSTPROCESS_COMMAND = buildhistory_get_imageinfo ;
9414 IMAGESIZE = 6900
9415 </literallayout>
9416 Other than <filename>IMAGESIZE</filename>, which is the
9417 total size of the files in the image in Kbytes, the
9418 name-value pairs are variables that may have influenced the
9419 content of the image.
9420 This information is often useful when you are trying to
9421 determine why a change in the package or file
9422 listings has occurred.
9423 </para>
9424 </section>
9425
9426 <section id='using-build-history-to-gather-image-information-only'>
9427 <title>Using Build History to Gather Image Information Only</title>
9428
9429 <para>
9430 As you can see, build history produces image information,
9431 including dependency graphs, so you can see why something
9432 was pulled into the image.
9433 If you are just interested in this information and not
9434 interested in collecting specific package or SDK
9435 information, you can enable writing only image information
9436 without any history by adding the following to your
9437 <filename>conf/local.conf</filename> file found in the
9438 <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>:
9439 <literallayout class='monospaced'>
9440 INHERIT += "buildhistory"
9441 BUILDHISTORY_COMMIT = "0"
9442 BUILDHISTORY_FEATURES = "image"
9443 </literallayout>
9444 Here, you set the
9445 <ulink url='&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_FEATURES'><filename>BUILDHISTORY_FEATURES</filename></ulink>
9446 variable to use the image feature only.
9447 </para>
9448 </section>
9449
9450 <section id='build-history-sdk-information'>
9451 <title>Build History SDK Information</title>
9452
9453 <para>
9454 Build history collects similar information on the contents
9455 of SDKs
9456 (e.g. <filename>bitbake -c populate_sdk imagename</filename>)
9457 as compared to information it collects for images.
9458 Furthermore, this information differs depending on whether
9459 an extensible or standard SDK is being produced.
9460 </para>
9461
9462 <para>
9463 The following list shows the files produced for SDKs:
9464 <itemizedlist>
9465 <listitem><para>
9466 <filename>files-in-sdk.txt:</filename>
9467 A list of files in the SDK with permissions,
9468 owner, group, size, and symlink information.
9469 This list includes both the host and target parts
9470 of the SDK.
9471 </para></listitem>
9472 <listitem><para>
9473 <filename>sdk-info.txt:</filename>
9474 A text file containing name-value pairs with
9475 information about the SDK.
9476 See the following listing example for more
9477 information.
9478 </para></listitem>
9479 <listitem><para>
9480 <filename>sstate-task-sizes.txt:</filename>
9481 A text file containing name-value pairs with
9482 information about task group sizes
9483 (e.g. <filename>do_populate_sysroot</filename>
9484 tasks have a total size).
9485 The <filename>sstate-task-sizes.txt</filename> file
9486 exists only when an extensible SDK is created.
9487 </para></listitem>
9488 <listitem><para>
9489 <filename>sstate-package-sizes.txt:</filename>
9490 A text file containing name-value pairs with
9491 information for the shared-state packages and
9492 sizes in the SDK.
9493 The <filename>sstate-package-sizes.txt</filename>
9494 file exists only when an extensible SDK is created.
9495 </para></listitem>
9496 <listitem><para>
9497 <filename>sdk-files:</filename>
9498 A folder that contains copies of the files
9499 mentioned in
9500 <filename>BUILDHISTORY_SDK_FILES</filename> if the
9501 files are present in the output.
9502 Additionally, the default value of
9503 <filename>BUILDHISTORY_SDK_FILES</filename> is
9504 specific to the extensible SDK although you can
9505 set it differently if you would like to pull in
9506 specific files from the standard SDK.</para>
9507
9508 <para>The default files are
9509 <filename>conf/local.conf</filename>,
9510 <filename>conf/bblayers.conf</filename>,
9511 <filename>conf/auto.conf</filename>,
9512 <filename>conf/locked-sigs.inc</filename>, and
9513 <filename>conf/devtool.conf</filename>.
9514 Thus, for an extensible SDK, these files get
9515 copied into the <filename>sdk-files</filename>
9516 directory.
9517 </para></listitem>
9518 <listitem><para>
9519 The following information appears under
9520 each of the <filename>host</filename>
9521 and <filename>target</filename> directories
9522 for the portions of the SDK that run on the host
9523 and on the target, respectively:
9524 <note>
9525 The following files for the most part are empty
9526 when producing an extensible SDK because this
9527 type of SDK is not constructed from packages
9528 as is the standard SDK.
9529 </note>
9530 <itemizedlist>
9531 <listitem><para>
9532 <filename>depends.dot:</filename>
9533 Dependency graph for the SDK that is
9534 compatible with
9535 <filename>graphviz</filename>.
9536 </para></listitem>
9537 <listitem><para>
9538 <filename>installed-package-names.txt:</filename>
9539 A list of installed packages by name only.
9540 </para></listitem>
9541 <listitem><para>
9542 <filename>installed-package-sizes.txt:</filename>
9543 A list of installed packages ordered by size.
9544 </para></listitem>
9545 <listitem><para>
9546 <filename>installed-packages.txt:</filename>
9547 A list of installed packages with full
9548 package filenames.
9549 </para></listitem>
9550 </itemizedlist>
9551 </para></listitem>
9552 </itemizedlist>
9553 </para>
9554
9555 <para>
9556 Here is an example of <filename>sdk-info.txt</filename>:
9557 <literallayout class='monospaced'>
9558 DISTRO = poky
9559 DISTRO_VERSION = 1.3+snapshot-20130327
9560 SDK_NAME = poky-glibc-i686-arm
9561 SDK_VERSION = 1.3+snapshot
9562 SDKMACHINE =
9563 SDKIMAGE_FEATURES = dev-pkgs dbg-pkgs
9564 BAD_RECOMMENDATIONS =
9565 SDKSIZE = 352712
9566 </literallayout>
9567 Other than <filename>SDKSIZE</filename>, which is the
9568 total size of the files in the SDK in Kbytes, the
9569 name-value pairs are variables that might have influenced
9570 the content of the SDK.
9571 This information is often useful when you are trying to
9572 determine why a change in the package or file listings
9573 has occurred.
9574 </para>
9575 </section>
9576
9577 <section id='examining-build-history-information'>
9578 <title>Examining Build History Information</title>
9579
9580 <para>
9581 You can examine build history output from the command
9582 line or from a web interface.
9583 </para>
9584
9585 <para>
9586 To see any changes that have occurred (assuming you have
9587 <ulink url='&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></ulink><filename>&nbsp;= "1"</filename>),
9588 you can simply use any Git command that allows you to
9589 view the history of a repository.
9590 Here is one method:
9591 <literallayout class='monospaced'>
9592 $ git log -p
9593 </literallayout>
9594 You need to realize, however, that this method does show
9595 changes that are not significant (e.g. a package's size
9596 changing by a few bytes).
9597 </para>
9598
9599 <para>
9600 A command-line tool called
9601 <filename>buildhistory-diff</filename> does exist, though,
9602 that queries the Git repository and prints just the
9603 differences that might be significant in human-readable
9604 form.
9605 Here is an example:
9606 <literallayout class='monospaced'>
9607 $ ~/poky/poky/scripts/buildhistory-diff . HEAD^
9608 Changes to images/qemux86_64/glibc/core-image-minimal (files-in-image.txt):
9609 /etc/anotherpkg.conf was added
9610 /sbin/anotherpkg was added
9611 * (installed-package-names.txt):
9612 * anotherpkg was added
9613 Changes to images/qemux86_64/glibc/core-image-minimal (installed-package-names.txt):
9614 anotherpkg was added
9615 packages/qemux86_64-poky-linux/v86d: PACKAGES: added "v86d-extras"
9616 * PR changed from "r0" to "r1"
9617 * PV changed from "0.1.10" to "0.1.12"
9618 packages/qemux86_64-poky-linux/v86d/v86d: PKGSIZE changed from 110579 to 144381 (+30%)
9619 * PR changed from "r0" to "r1"
9620 * PV changed from "0.1.10" to "0.1.12"
9621 </literallayout>
9622 <note>
9623 The <filename>buildhistory-diff</filename> tool
9624 requires the <filename>GitPython</filename> package.
9625 Be sure to install it using Pip3 as follows:
9626 <literallayout class='monospaced'>
9627 $ pip3 install GitPython --user
9628 </literallayout>
9629 Alternatively, you can install
9630 <filename>python3-git</filename> using the appropriate
9631 distribution package manager (e.g.
9632 <filename>apt-get</filename>, <filename>dnf</filename>,
9633 or <filename>zipper</filename>).
9634 </note>
9635 </para>
9636
9637 <para>
9638 To see changes to the build history using a web interface,
9639 follow the instruction in the <filename>README</filename>
9640 file here.
9641 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/buildhistory-web/'></ulink>.
9642 </para>
9643
9644 <para>
9645 Here is a sample screenshot of the interface:
9646 <imagedata fileref="figures/buildhistory-web.png" align="center" scalefit="1" width="130%" contentdepth="130%" />
9647 </para>
9648 </section>
9649 </section>
9650 </section>
9651
9092 <section id="performing-automated-runtime-testing"> 9652 <section id="performing-automated-runtime-testing">
9093 <title>Performing Automated Runtime Testing</title> 9653 <title>Performing Automated Runtime Testing</title>
9094 9654