diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2018-01-23 11:19:45 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-02-14 15:25:29 +0000 |
commit | 355103f8cf2295fb2de91ce25a084e286bdeadeb (patch) | |
tree | 2eee93532089467bd15aa79084851d631fa3586a /documentation/dev-manual | |
parent | c6f881446153676de4ecbd467e6834eed4199b5e (diff) | |
download | poky-355103f8cf2295fb2de91ce25a084e286bdeadeb.tar.gz |
dev-manual, ref-manual: Moved build history info to dev-manual
Fixes [YOCTO #12370]
The section in the ref-manual on build history has been moved to
the dev-manual. It is more of a "how-to" piece of information than
a reference.
(From yocto-docs rev: 9634bd8dc51e2972e6a5f3a3d3b4256c8ca8749c)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 564 | ||||
-rw-r--r-- | documentation/dev-manual/figures/buildhistory-web.png | bin | 0 -> 49966 bytes | |||
-rw-r--r-- | documentation/dev-manual/figures/buildhistory.png | bin | 0 -> 44900 bytes |
3 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> = "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 | ||
diff --git a/documentation/dev-manual/figures/buildhistory-web.png b/documentation/dev-manual/figures/buildhistory-web.png new file mode 100644 index 0000000000..f6db86c977 --- /dev/null +++ b/documentation/dev-manual/figures/buildhistory-web.png | |||
Binary files differ | |||
diff --git a/documentation/dev-manual/figures/buildhistory.png b/documentation/dev-manual/figures/buildhistory.png new file mode 100644 index 0000000000..bd5f8a4908 --- /dev/null +++ b/documentation/dev-manual/figures/buildhistory.png | |||
Binary files differ | |||