summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Opdenacker <michael.opdenacker@bootlin.com>2023-09-20 06:29:14 +0200
committerSteve Sakoman <steve@sakoman.com>2023-09-23 05:26:16 -1000
commit870c6a73a732a474f307d7829b1947a5887e4d1d (patch)
tree45779ad35ce7892ae74486686925618b711023ac
parent131beeedb6f7b4e8dd2f4d929c222b19bc3ce3fa (diff)
downloadpoky-870c6a73a732a474f307d7829b1947a5887e4d1d.tar.gz
ref-manual: qa-checks: align with master
(From yocto-docs rev: 56bbfab163a6b42aaa32d9350f30b2414a60fc75) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--documentation/ref-manual/qa-checks.rst87
1 files changed, 64 insertions, 23 deletions
diff --git a/documentation/ref-manual/qa-checks.rst b/documentation/ref-manual/qa-checks.rst
index 8c475d0f72..4a02e7206a 100644
--- a/documentation/ref-manual/qa-checks.rst
+++ b/documentation/ref-manual/qa-checks.rst
@@ -162,7 +162,7 @@ Errors and Warnings
162 normally expected to be empty (such as ``/tmp``). These files may 162 normally expected to be empty (such as ``/tmp``). These files may
163 be more appropriately installed to a different location, or 163 be more appropriately installed to a different location, or
164 perhaps alternatively not installed at all, usually by updating the 164 perhaps alternatively not installed at all, usually by updating the
165 ``do_install`` task/function. 165 :ref:`ref-tasks-install` task/function.
166 166
167.. _qa-check-arch: 167.. _qa-check-arch:
168 168
@@ -536,7 +536,7 @@ Errors and Warnings
536 in (e.g. ``FILES:${``\ :term:`PN`\ ``}`` for the main 536 in (e.g. ``FILES:${``\ :term:`PN`\ ``}`` for the main
537 package). 537 package).
538 538
539 - Delete the files at the end of the ``do_install`` task if the 539 - Delete the files at the end of the :ref:`ref-tasks-install` task if the
540 files are not needed in any package. 540 files are not needed in any package.
541 541
542   542  
@@ -579,10 +579,10 @@ Errors and Warnings
579- ``package contains mime types but does not inherit mime: <packagename> path '<file>' [mime]`` 579- ``package contains mime types but does not inherit mime: <packagename> path '<file>' [mime]``
580 580
581 The specified package contains mime type files (``.xml`` files in 581 The specified package contains mime type files (``.xml`` files in
582 ``${datadir}/mime/packages``) and yet does not inherit the mime 582 ``${datadir}/mime/packages``) and yet does not inherit the
583 class which will ensure that these get properly installed. Either 583 :ref:`ref-classes-mime` class which will ensure that these get
584 add ``inherit mime`` to the recipe or remove the files at the 584 properly installed. Either add ``inherit mime`` to the recipe or remove the
585 ``do_install`` step if they are not needed. 585 files at the :ref:`ref-tasks-install` step if they are not needed.
586 586
587 587
588.. _qa-check-mime-xdg: 588.. _qa-check-mime-xdg:
@@ -590,10 +590,10 @@ Errors and Warnings
590- ``package contains desktop file with key 'MimeType' but does not inhert mime-xdg: <packagename> path '<file>' [mime-xdg]`` 590- ``package contains desktop file with key 'MimeType' but does not inhert mime-xdg: <packagename> path '<file>' [mime-xdg]``
591 591
592 The specified package contains a .desktop file with a 'MimeType' key 592 The specified package contains a .desktop file with a 'MimeType' key
593 present, but does not inherit the mime-xdg class that is required in 593 present, but does not inherit the :ref:`ref-classes-mime-xdg`
594 order for that to be activated. Either add ``inherit mime`` to the 594 class that is required in order for that to be activated. Either add
595 recipe or remove the files at the ``do_install`` step if they are not 595 ``inherit mime`` to the recipe or remove the files at the
596 needed. 596 :ref:`ref-tasks-install` step if they are not needed.
597 597
598 598
599.. _qa-check-src-uri-bad: 599.. _qa-check-src-uri-bad:
@@ -602,7 +602,7 @@ Errors and Warnings
602 602
603 GitHub provides "archive" tarballs, however these can be re-generated 603 GitHub provides "archive" tarballs, however these can be re-generated
604 on the fly and thus the file's signature will not necessarily match that 604 on the fly and thus the file's signature will not necessarily match that
605 in the SRC_URI checksums in future leading to build failures. It is 605 in the :term:`SRC_URI` checksums in future leading to build failures. It is
606 recommended that you use an official release tarball or switch to 606 recommended that you use an official release tarball or switch to
607 pulling the corresponding revision in the actual git repository instead. 607 pulling the corresponding revision in the actual git repository instead.
608 608
@@ -613,18 +613,20 @@ Errors and Warnings
613 so using ${:term:`BPN`} rather than ${:term:`PN`} as the latter will change 613 so using ${:term:`BPN`} rather than ${:term:`PN`} as the latter will change
614 for different variants of the same recipe e.g. when :term:`BBCLASSEXTEND` 614 for different variants of the same recipe e.g. when :term:`BBCLASSEXTEND`
615 or multilib are being used. This check will fail if a reference to ``${PN}`` 615 or multilib are being used. This check will fail if a reference to ``${PN}``
616 is found within the :term:`SRC_URI` value - change it to ``${BPN}`` instead. 616 is found within the :term:`SRC_URI` value --- change it to ``${BPN}`` instead.
617 617
618 618
619.. _qa-check-unhandled-features-check: 619.. _qa-check-unhandled-features-check:
620 620
621- ``<recipename>: recipe doesn't inherit features_check [unhandled-features-check]`` 621- ``<recipename>: recipe doesn't inherit features_check [unhandled-features-check]``
622 622
623 This check ensures that if one of the variables that the :ref:`features_check <ref-classes-features_check>` 623 This check ensures that if one of the variables that the
624 class supports (e.g. :term:`REQUIRED_DISTRO_FEATURES`) is used, then the recipe 624 :ref:`ref-classes-features_check` class supports (e.g.
625 inherits ``features_check`` in order for the requirement to actually work. If 625 :term:`REQUIRED_DISTRO_FEATURES`) is used, then the recipe
626 you are seeing this message, either add ``inherit features_check`` to your recipe 626 inherits :ref:`ref-classes-features_check` in order for
627 or remove the reference to the variable if it is not needed. 627 the requirement to actually work. If you are seeing this message, either
628 add ``inherit features_check`` to your recipe or remove the reference to
629 the variable if it is not needed.
628 630
629 631
630.. _qa-check-missing-update-alternatives: 632.. _qa-check-missing-update-alternatives:
@@ -632,7 +634,7 @@ Errors and Warnings
632- ``<recipename>: recipe defines ALTERNATIVE:<packagename> but doesn't inherit update-alternatives. This might fail during do_rootfs later! [missing-update-alternatives]`` 634- ``<recipename>: recipe defines ALTERNATIVE:<packagename> but doesn't inherit update-alternatives. This might fail during do_rootfs later! [missing-update-alternatives]``
633 635
634 This check ensures that if a recipe sets the :term:`ALTERNATIVE` variable that the 636 This check ensures that if a recipe sets the :term:`ALTERNATIVE` variable that the
635 recipe also inherits :ref:`update-alternatives <ref-classes-update-alternatives>` such 637 recipe also inherits :ref:`ref-classes-update-alternatives` such
636 that the alternative will be correctly set up. If you are seeing this message, either 638 that the alternative will be correctly set up. If you are seeing this message, either
637 add ``inherit update-alternatives`` to your recipe or remove the reference to the variable 639 add ``inherit update-alternatives`` to your recipe or remove the reference to the variable
638 if it is not needed. 640 if it is not needed.
@@ -653,7 +655,7 @@ Errors and Warnings
653- ``<packagename> contains perllocal.pod (<files>), should not be installed [perllocalpod]`` 655- ``<packagename> contains perllocal.pod (<files>), should not be installed [perllocalpod]``
654 656
655 ``perllocal.pod`` is an index file of locally installed modules and so shouldn't be 657 ``perllocal.pod`` is an index file of locally installed modules and so shouldn't be
656 installed by any distribution packages. The :ref:`cpan <ref-classes-cpan>` class 658 installed by any distribution packages. The :ref:`ref-classes-cpan` class
657 already sets ``NO_PERLLOCAL`` to stop this file being generated by most Perl recipes, 659 already sets ``NO_PERLLOCAL`` to stop this file being generated by most Perl recipes,
658 but if a recipe is using ``MakeMaker`` directly then they might not be doing this 660 but if a recipe is using ``MakeMaker`` directly then they might not be doing this
659 correctly. This check ensures that perllocal.pod is not in any package in order to 661 correctly. This check ensures that perllocal.pod is not in any package in order to
@@ -667,8 +669,8 @@ Errors and Warnings
667 669
668 If ``usrmerge`` is in :term:`DISTRO_FEATURES`, this check will ensure that no package 670 If ``usrmerge`` is in :term:`DISTRO_FEATURES`, this check will ensure that no package
669 installs files to root (``/bin``, ``/sbin``, ``/lib``, ``/lib64``) directories. If you are seeing this 671 installs files to root (``/bin``, ``/sbin``, ``/lib``, ``/lib64``) directories. If you are seeing this
670 message, it indicates that the ``do_install`` step (or perhaps the build process that 672 message, it indicates that the :ref:`ref-tasks-install` step (or perhaps the build process that
671 ``do_install`` is calling into, e.g. ``make install`` is using hardcoded paths instead 673 :ref:`ref-tasks-install` is calling into, e.g. ``make install`` is using hardcoded paths instead
672 of the variables set up for this (``bindir``, ``sbindir``, etc.), and should be 674 of the variables set up for this (``bindir``, ``sbindir``, etc.), and should be
673 changed so that it does. 675 changed so that it does.
674 676
@@ -677,7 +679,7 @@ Errors and Warnings
677 679
678- ``Fuzz detected: <patch output> [patch-fuzz]`` 680- ``Fuzz detected: <patch output> [patch-fuzz]``
679 681
680 This check looks for evidence of "fuzz" when applying patches within the ``do_patch`` 682 This check looks for evidence of "fuzz" when applying patches within the :ref:`ref-tasks-patch`
681 task. Patch fuzz is a situation when the ``patch`` tool ignores some of the context 683 task. Patch fuzz is a situation when the ``patch`` tool ignores some of the context
682 lines in order to apply the patch. Consider this example: 684 lines in order to apply the patch. Consider this example:
683 685
@@ -727,7 +729,7 @@ Errors and Warnings
727 devtool modify <recipe> 729 devtool modify <recipe>
728 730
729 This will apply all of the patches, and create new commits out of them in 731 This will apply all of the patches, and create new commits out of them in
730 the workspace - with the patch context updated. 732 the workspace --- with the patch context updated.
731 733
732 Then, replace the patches in the recipe layer:: 734 Then, replace the patches in the recipe layer::
733 735
@@ -748,6 +750,45 @@ Errors and Warnings
748 other things in the patches, those can be discarded. 750 other things in the patches, those can be discarded.
749 751
750 752
753.. _qa-check-patch-status:
754
755- ``Missing Upstream-Status in patch <patchfile> Please add according to <url> [patch-status-core/patch-status-noncore]``
756
757 The ``Upstream-Status`` value is missing in the specified patch file's header.
758 This value is intended to track whether or not the patch has been sent
759 upstream, whether or not it has been merged, etc.
760
761 There are two options for this same check - ``patch-status-core`` (for
762 recipes in OE-Core) and ``patch-status-noncore`` (for recipes in any other
763 layer).
764
765 For more information, see the
766 ":ref:`contributor-guide/recipe-style-guide:patch upstream status`"
767 section in the Yocto Project and OpenEmbedded Contributor Guide.
768
769- ``Malformed Upstream-Status in patch <patchfile> Please correct according to <url> [patch-status-core/patch-status-noncore]``
770
771 The ``Upstream-Status`` value in the specified patch file's header is invalid -
772 it must be a specific format. See the "Missing Upstream-Status" entry above
773 for more information.
774
775
776.. _qa-check-buildpaths:
777
778- ``File <filename> in package <packagename> contains reference to TMPDIR [buildpaths]``
779
780 This check ensures that build system paths (including :term:`TMPDIR`) do not
781 appear in output files, which not only leaks build system configuration into
782 the target, but also hinders binary reproducibility as the output will change
783 if the build system configuration changes.
784
785 Typically these paths will enter the output through some mechanism in the
786 configuration or compilation of the software being built by the recipe. To
787 resolve this issue you will need to determine how the detected path is
788 entering the output. Sometimes it may require adjusting scripts or code to
789 use a relative path rather than an absolute one, or to pick up the path from
790 runtime configuration or environment variables.
791
751 792
752Configuring and Disabling QA Checks 793Configuring and Disabling QA Checks
753=================================== 794===================================