diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2013-12-05 13:35:21 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-12-11 14:19:11 +0000 |
commit | 4ba824759e43d5e1665080e1c4e0202350a33149 (patch) | |
tree | bf0e9faefbc814850a1b019c9ffdb23eb92fab47 /documentation | |
parent | 9d5ab21c42c9b00d44c35e6a3af3241f2f1e2470 (diff) | |
download | poky-4ba824759e43d5e1665080e1c4e0202350a33149.tar.gz |
ref-manual: Edits to icecc class and re-order of "I" classes.
(From yocto-docs rev: 48640c823cf06ab818efd8f9d15c43353d31f87c)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r-- | documentation/ref-manual/ref-classes.xml | 820 |
1 files changed, 420 insertions, 400 deletions
diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml index da47d51fd6..f36c80d6f3 100644 --- a/documentation/ref-manual/ref-classes.xml +++ b/documentation/ref-manual/ref-classes.xml | |||
@@ -824,9 +824,8 @@ | |||
824 | <title><filename>icecc.bbclass</filename></title> | 824 | <title><filename>icecc.bbclass</filename></title> |
825 | 825 | ||
826 | <para> | 826 | <para> |
827 | The Icecream distributed compile support (<filename>icecc</filename>) | 827 | The <filename>icecc</filename> class stages directories with symlinks |
828 | class stages directories with symlinks from | 828 | from <filename>gcc</filename> and <filename>g++</filename> to |
829 | <filename>gcc</filename> and <filename>g++</filename> to | ||
830 | <filename>icecc</filename>, for both native and cross compilers. | 829 | <filename>icecc</filename>, for both native and cross compilers. |
831 | Depending on each configure or compile, the OpenEmbedded build system | 830 | Depending on each configure or compile, the OpenEmbedded build system |
832 | adds the directories at the head of the <filename>PATH</filename> list | 831 | adds the directories at the head of the <filename>PATH</filename> list |
@@ -892,26 +891,69 @@ | |||
892 | </para> | 891 | </para> |
893 | </section> | 892 | </section> |
894 | 893 | ||
895 | <section id='ref-classes-image-live'> | 894 | <section id='ref-classes-image'> |
896 | <title><filename>image-live.bbclass</filename></title> | 895 | <title>Creating Images - <filename>image.bbclass</filename> and <filename>rootfs*.bbclass</filename></title> |
897 | 896 | ||
898 | <para> | 897 | <para> |
899 | The live image (<filename>image-live</filename>) class | 898 | These classes add support for creating images in several formats. |
900 | supports building "live" images. | 899 | First, the root filesystem is created from packages using |
901 | Normally, you do not use this class directly. | 900 | one of the <filename>rootfs_*.bbclass</filename> |
902 | Instead, you add "live" to | 901 | files (depending on the package format used) and then the image is created. |
903 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>. | 902 | <itemizedlist> |
903 | <listitem><para>The | ||
904 | <filename><link linkend='var-IMAGE_FSTYPES'>IMAGE_FSTYPES</link></filename> | ||
905 | variable controls the types of images to generate. | ||
906 | </para></listitem> | ||
907 | <listitem><para>The | ||
908 | <filename><link linkend='var-IMAGE_INSTALL'>IMAGE_INSTALL</link></filename> | ||
909 | variable controls the list of packages to install into the | ||
910 | image.</para></listitem> | ||
911 | </itemizedlist> | ||
904 | </para> | 912 | </para> |
905 | </section> | 913 | </section> |
906 | 914 | ||
907 | <section id='ref-classes-image-vmdk'> | 915 | <section id='ref-classes-image_types'> |
908 | <title><filename>image-vmdk.bbclass</filename></title> | 916 | <title><filename>image_types.bbclass</filename></title> |
909 | 917 | ||
910 | <para> | 918 | <para> |
911 | The Virtual Machine Disk image (<filename>image-vmdk</filename>) class | 919 | The image types (<filename>image_types</filename>) class defines all of |
912 | supports building VMware VMDK images. | 920 | the standard image output types that you can enable through the |
921 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link> | ||
922 | variable. | ||
923 | You can use this class as a reference on how to add support for custom | ||
924 | image output types. | ||
925 | </para> | ||
926 | |||
927 | <para> | ||
928 | By default, this class is enabled through the | ||
929 | <link linkend='var-IMAGE_CLASSES'><filename>IMAGE_CLASSES</filename></link> | ||
930 | variable in | ||
931 | <link linkend='ref-classes-image'><filename>image.bbclass</filename></link>. | ||
932 | If you define your own image types using a custom BitBake class and | ||
933 | then use <filename>IMAGE_CLASSES</filename> to enable it, the custom | ||
934 | class must either inherit <filename>image_types</filename> or | ||
935 | <filename>image_types</filename> must also appear in | ||
936 | <filename>IMAGE_CLASSES</filename>. | ||
937 | </para> | ||
938 | </section> | ||
939 | |||
940 | <section id='ref-classes-image_types_uboot'> | ||
941 | <title><filename>image_types_uboot.bbclass</filename></title> | ||
942 | |||
943 | <para> | ||
944 | The U-Boot image types (<filename>image_types_uboot</filename>) class | ||
945 | defines additional image types specifically for the U-Boot bootloader. | ||
946 | </para> | ||
947 | </section> | ||
948 | |||
949 | <section id='ref-classes-image-live'> | ||
950 | <title><filename>image-live.bbclass</filename></title> | ||
951 | |||
952 | <para> | ||
953 | The live image (<filename>image-live</filename>) class | ||
954 | supports building "live" images. | ||
913 | Normally, you do not use this class directly. | 955 | Normally, you do not use this class directly. |
914 | Instead, you add "vmdk" to | 956 | Instead, you add "live" to |
915 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>. | 957 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>. |
916 | </para> | 958 | </para> |
917 | </section> | 959 | </section> |
@@ -979,37 +1021,378 @@ | |||
979 | </para> | 1021 | </para> |
980 | </section> | 1022 | </section> |
981 | 1023 | ||
982 | <section id='ref-classes-image_types'> | 1024 | <section id='ref-classes-image-vmdk'> |
983 | <title><filename>image_types.bbclass</filename></title> | 1025 | <title><filename>image-vmdk.bbclass</filename></title> |
984 | 1026 | ||
985 | <para> | 1027 | <para> |
986 | The image types (<filename>image_types</filename>) class defines all of | 1028 | The Virtual Machine Disk image (<filename>image-vmdk</filename>) class |
987 | the standard image output types that you can enable through the | 1029 | supports building VMware VMDK images. |
988 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link> | 1030 | Normally, you do not use this class directly. |
989 | variable. | 1031 | Instead, you add "vmdk" to |
990 | You can use this class as a reference on how to add support for custom | 1032 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>. |
991 | image output types. | ||
992 | </para> | 1033 | </para> |
1034 | </section> | ||
1035 | |||
1036 | <section id='ref-classes-insane'> | ||
1037 | <title><filename>insane.bbclass</filename></title> | ||
993 | 1038 | ||
994 | <para> | 1039 | <para> |
995 | By default, this class is enabled through the | 1040 | This class adds a step to the package generation process so that |
996 | <link linkend='var-IMAGE_CLASSES'><filename>IMAGE_CLASSES</filename></link> | 1041 | output quality assurance checks are generated by the OpenEmbedded |
997 | variable in | 1042 | build system. |
998 | <link linkend='ref-classes-image'><filename>image.bbclass</filename></link>. | 1043 | A range of checks are performed that check the build's output |
999 | If you define your own image types using a custom BitBake class and | 1044 | for common problems that show up during runtime. |
1000 | then use <filename>IMAGE_CLASSES</filename> to enable it, the custom | 1045 | Distribution policy usually dictates whether to include this class. |
1001 | class must either inherit <filename>image_types</filename> or | ||
1002 | <filename>image_types</filename> must also appear in | ||
1003 | <filename>IMAGE_CLASSES</filename>. | ||
1004 | </para> | 1046 | </para> |
1005 | </section> | ||
1006 | 1047 | ||
1007 | <section id='ref-classes-image_types_uboot'> | 1048 | <para> |
1008 | <title><filename>image_types_uboot.bbclass</filename></title> | 1049 | You can configure the sanity checks so that specific test failures |
1050 | either raise a warning or an error message. | ||
1051 | Typically, failures for new tests generate a warning. | ||
1052 | Subsequent failures for the same test would then generate an error | ||
1053 | message once the metadata is in a known and good condition. | ||
1054 | </para> | ||
1009 | 1055 | ||
1010 | <para> | 1056 | <para> |
1011 | The U-Boot image types (<filename>image_types_uboot</filename>) class | 1057 | Use the |
1012 | defines additional image types specifically for the U-Boot bootloader. | 1058 | <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link> and |
1059 | <link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link> | ||
1060 | variables to control the behavior of | ||
1061 | these checks at the global level (i.e. in your custom distro | ||
1062 | configuration). | ||
1063 | However, to skip one or more checks in recipes, you should use | ||
1064 | <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>. | ||
1065 | For example, to skip the check for symbolic link | ||
1066 | <filename>.so</filename> files in the main package of a recipe, | ||
1067 | add the following to the recipe. | ||
1068 | You need to realize that the package name override, in this example | ||
1069 | <filename>${PN}</filename>, must be used: | ||
1070 | <literallayout class='monospaced'> | ||
1071 | INSANE_SKIP_${PN} += "dev-so" | ||
1072 | </literallayout> | ||
1073 | Please keep in mind that the QA checks exist in order to detect real | ||
1074 | or potential problems in the packaged output. | ||
1075 | So exercise caution when disabling these checks. | ||
1076 | </para> | ||
1077 | |||
1078 | <para> | ||
1079 | The following list shows the tests you can list with the | ||
1080 | <filename>WARN_QA</filename> and <filename>ERROR_QA</filename> | ||
1081 | variables: | ||
1082 | <itemizedlist> | ||
1083 | <listitem><para><emphasis><filename>ldflags:</filename></emphasis> | ||
1084 | Ensures that the binaries were linked with the | ||
1085 | <filename>LDFLAGS</filename> options provided by the build system. | ||
1086 | If this test fails, check that the <filename>LDFLAGS</filename> variable | ||
1087 | is being passed to the linker command.</para></listitem> | ||
1088 | <listitem><para><emphasis><filename>useless-rpaths:</filename></emphasis> | ||
1089 | Checks for dynamic library load paths (rpaths) in the binaries that | ||
1090 | by default on a standard system are searched by the linker (e.g. | ||
1091 | <filename>/lib</filename> and <filename>/usr/lib</filename>). | ||
1092 | While these paths will not cause any breakage, they do waste space and | ||
1093 | are unnecessary.</para></listitem> | ||
1094 | <listitem><para><emphasis><filename>rpaths:</filename></emphasis> | ||
1095 | Checks for rpaths in the binaries that contain build system paths such | ||
1096 | as <filename>TMPDIR</filename>. | ||
1097 | If this test fails, bad <filename>-rpath</filename> options are being | ||
1098 | passed to the linker commands and your binaries have potential security | ||
1099 | issues.</para></listitem> | ||
1100 | <listitem><para><emphasis><filename>dev-so:</filename></emphasis> | ||
1101 | Checks that the <filename>.so</filename> symbolic links are in the | ||
1102 | <filename>-dev</filename> package and not in any of the other packages. | ||
1103 | In general, these symlinks are only useful for development purposes. | ||
1104 | Thus, the <filename>-dev</filename> package is the correct location for | ||
1105 | them. | ||
1106 | Some very rare cases do exist for dynamically loaded modules where | ||
1107 | these symlinks are needed instead in the main package. | ||
1108 | </para></listitem> | ||
1109 | <listitem><para><emphasis><filename>debug-files:</filename></emphasis> | ||
1110 | Checks for <filename>.debug</filename> directories in anything but the | ||
1111 | <filename>-dbg</filename> package. | ||
1112 | The debug files should all be in the <filename>-dbg</filename> package. | ||
1113 | Thus, anything packaged elsewhere is incorrect packaging.</para></listitem> | ||
1114 | <listitem><para><emphasis><filename>arch:</filename></emphasis> | ||
1115 | Checks the Executable and Linkable Format (ELF) type, bit size, and endianness | ||
1116 | of any binaries to ensure they match the target architecture. | ||
1117 | This test fails if any binaries don't match the type since there would be an | ||
1118 | incompatibility. | ||
1119 | Sometimes software, like bootloaders, might need to bypass this check. | ||
1120 | </para></listitem> | ||
1121 | <listitem><para><emphasis><filename>debug-deps:</filename></emphasis> | ||
1122 | Checks that <filename>-dbg</filename> packages only depend on other | ||
1123 | <filename>-dbg</filename> packages and not on any other types of packages, | ||
1124 | which would cause a packaging bug.</para></listitem> | ||
1125 | <listitem><para><emphasis><filename>dev-deps:</filename></emphasis> | ||
1126 | Checks that <filename>-dev</filename> packages only depend on other | ||
1127 | <filename>-dev</filename> packages and not on any other types of packages, | ||
1128 | which would be a packaging bug.</para></listitem> | ||
1129 | <listitem><para><emphasis><filename>pkgconfig:</filename></emphasis> | ||
1130 | Checks <filename>.pc</filename> files for any | ||
1131 | <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>/<link linkend='var-WORKDIR'><filename>WORKDIR</filename></link> | ||
1132 | paths. | ||
1133 | Any <filename>.pc</filename> file containing these paths is incorrect | ||
1134 | since <filename>pkg-config</filename> itself adds the correct sysroot prefix | ||
1135 | when the files are accessed.</para></listitem> | ||
1136 | <listitem><para><emphasis><filename>textrel:</filename></emphasis> | ||
1137 | Checks for ELF binaries that contain relocations in their | ||
1138 | <filename>.text</filename> sections, which can result in a | ||
1139 | performance impact at runtime.</para></listitem> | ||
1140 | <listitem><para><emphasis><filename>pkgvarcheck:</filename></emphasis> | ||
1141 | Checks through the variables | ||
1142 | <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, | ||
1143 | <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, | ||
1144 | <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, | ||
1145 | <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>, | ||
1146 | <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, | ||
1147 | <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, | ||
1148 | <link linkend='var-FILES'><filename>FILES</filename></link>, | ||
1149 | <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>, | ||
1150 | <filename>pkg_preinst</filename>, | ||
1151 | <filename>pkg_postinst</filename>, | ||
1152 | <filename>pkg_prerm</filename> | ||
1153 | and <filename>pkg_postrm</filename>, and reports if there are | ||
1154 | variable sets that are not package-specific. | ||
1155 | Using these variables without a package suffix is bad practice, | ||
1156 | and might unnecessarily complicate dependencies of other packages | ||
1157 | within the same recipe or have other unintended consequences. | ||
1158 | </para></listitem> | ||
1159 | <listitem><para><emphasis><filename>xorg-driver-abi:</filename></emphasis> | ||
1160 | Checks that all packages containing Xorg drivers have ABI | ||
1161 | dependencies. | ||
1162 | The <filename>xserver-xorg</filename> recipe provides driver | ||
1163 | ABI names. | ||
1164 | All drivers should depend on the ABI versions that they have | ||
1165 | been built against. | ||
1166 | Driver recipes that include | ||
1167 | <filename>xorg-driver-input.inc</filename> | ||
1168 | or <filename>xorg-driver-video.inc</filename> will | ||
1169 | automatically get these versions. | ||
1170 | Consequently, you should only need to explicitly add | ||
1171 | dependencies to binary driver recipes. | ||
1172 | </para></listitem> | ||
1173 | <listitem><para><emphasis><filename>libexec:</filename></emphasis> | ||
1174 | Checks if a package contains files in | ||
1175 | <filename>/usr/libexec</filename>. | ||
1176 | This check is not performed if the | ||
1177 | <filename>libexecdir</filename> variable has been set | ||
1178 | explicitly to <filename>/usr/libexec</filename>. | ||
1179 | </para></listitem> | ||
1180 | <listitem><para><emphasis><filename>staticdev:</filename></emphasis> | ||
1181 | Checks for static library files (<filename>*.a</filename>) in | ||
1182 | non-<filename>staticdev</filename> packages. | ||
1183 | </para></listitem> | ||
1184 | <listitem><para><emphasis><filename>la:</filename></emphasis> | ||
1185 | Checks <filename>.la</filename> files for any <filename>TMPDIR</filename> | ||
1186 | paths. | ||
1187 | Any <filename>.la</filename> file containing these paths is incorrect since | ||
1188 | <filename>libtool</filename> adds the correct sysroot prefix when using the | ||
1189 | files automatically itself.</para></listitem> | ||
1190 | <listitem><para><emphasis><filename>desktop:</filename></emphasis> | ||
1191 | Runs the <filename>desktop-file-validate</filename> program | ||
1192 | against any <filename>.desktop</filename> files to validate | ||
1193 | their contents against the specification for | ||
1194 | <filename>.desktop</filename> files.</para></listitem> | ||
1195 | <listitem><para><emphasis><filename>already-stripped:</filename></emphasis> | ||
1196 | Checks that produced binaries have not already been | ||
1197 | stripped prior to the build system extracting debug symbols. | ||
1198 | It is common for upstream software projects to default to | ||
1199 | stripping debug symbols for output binaries. | ||
1200 | In order for debugging to work on the target using | ||
1201 | <filename>-dbg</filename> packages, this stripping must be | ||
1202 | disabled. | ||
1203 | </para></listitem> | ||
1204 | <listitem><para><emphasis><filename>split-strip:</filename></emphasis> | ||
1205 | Reports that splitting or stripping debug symbols from binaries | ||
1206 | has failed. | ||
1207 | </para></listitem> | ||
1208 | <listitem><para><emphasis><filename>arch:</filename></emphasis> | ||
1209 | Checks to ensure the architecture, bit size, and endianness | ||
1210 | of all output binaries matches that of the target. | ||
1211 | This test can detect when the wrong compiler or compiler options | ||
1212 | have been used. | ||
1213 | </para></listitem> | ||
1214 | <listitem><para><emphasis><filename>installed-vs-shipped:</filename></emphasis> | ||
1215 | Reports when files have been installed within | ||
1216 | <filename>do_install</filename> but have not been included in | ||
1217 | any package by way of the | ||
1218 | <link linkend='var-FILES'><filename>FILES</filename></link> | ||
1219 | variable. | ||
1220 | Files that do not appear in any package cannot be present in | ||
1221 | an image later on in the build process. | ||
1222 | Ideally, all installed files should be packaged or not | ||
1223 | installed at all. | ||
1224 | These files can be deleted at the end of | ||
1225 | <filename>do_install</filename> if the files are not | ||
1226 | needed in any package. | ||
1227 | </para></listitem> | ||
1228 | <listitem><para><emphasis><filename>dep-cmp:</filename></emphasis> | ||
1229 | Checks for invalid version comparison statements in runtime | ||
1230 | dependency relationships between packages (i.e. in | ||
1231 | <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, | ||
1232 | <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, | ||
1233 | <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, | ||
1234 | <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, | ||
1235 | <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, | ||
1236 | and | ||
1237 | <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link> | ||
1238 | variable values). | ||
1239 | Any invalid comparisons might trigger failures or undesirable | ||
1240 | behavior when passed to the package manager. | ||
1241 | </para></listitem> | ||
1242 | <listitem><para><emphasis><filename>files-invalid:</filename></emphasis> | ||
1243 | Checks for | ||
1244 | <link linkend='var-FILES'><filename>FILES</filename></link> | ||
1245 | variable values that contain "//", which is invalid. | ||
1246 | </para></listitem> | ||
1247 | <listitem><para><emphasis><filename>incompatible-license:</filename></emphasis> | ||
1248 | Report when packages are excluded from being created due to | ||
1249 | being marked with a license that is in | ||
1250 | <link linkend='var-INCOMPATIBLE_LICENSE'><filename>INCOMPATIBLE_LICENSE</filename></link>. | ||
1251 | </para></listitem> | ||
1252 | <listitem><para><emphasis><filename>compile-host-path:</filename></emphasis> | ||
1253 | Checks the <filename>do_compile</filename> log for indications | ||
1254 | that paths to locations on the build host were used. | ||
1255 | Using such paths might result in host contamination of the | ||
1256 | build output. | ||
1257 | </para></listitem> | ||
1258 | <listitem><para><emphasis><filename>install-host-path:</filename></emphasis> | ||
1259 | Checks the <filename>do_install</filename> log for indications | ||
1260 | that paths to locations on the build host were used. | ||
1261 | Using such paths might result in host contamination of the | ||
1262 | build output. | ||
1263 | </para></listitem> | ||
1264 | <listitem><para><emphasis><filename>libdir:</filename></emphasis> | ||
1265 | Checks for libraries being installed into incorrect | ||
1266 | (possibly hardcoded) installation paths. | ||
1267 | For example, this test will catch recipes that install | ||
1268 | <filename>/lib/bar.so</filename> when | ||
1269 | <filename>${base_libdir}</filename> is "lib32". | ||
1270 | Another example is when recipes install | ||
1271 | <filename>/usr/lib64/foo.so</filename> when | ||
1272 | <filename>${libdir}</filename> is "/usr/lib". | ||
1273 | </para></listitem> | ||
1274 | <listitem><para><emphasis><filename>packages-list:</filename></emphasis> | ||
1275 | Checks for the same package being listed multiple times through | ||
1276 | the <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link> | ||
1277 | variable value. | ||
1278 | Installing the package in this manner can cause errors during | ||
1279 | packaging. | ||
1280 | </para></listitem> | ||
1281 | <listitem><para><emphasis><filename>perm-config:</filename></emphasis> | ||
1282 | Reports lines in <filename>fs-perms.txt</filename> that have | ||
1283 | an invalid format. | ||
1284 | </para></listitem> | ||
1285 | <listitem><para><emphasis><filename>perm-line:</filename></emphasis> | ||
1286 | Reports lines in <filename>fs-perms.txt</filename> that have | ||
1287 | an invalid format. | ||
1288 | </para></listitem> | ||
1289 | <listitem><para><emphasis><filename>perm-link:</filename></emphasis> | ||
1290 | Reports lines in <filename>fs-perms.txt</filename> that | ||
1291 | specify 'link' where the specified target already exists. | ||
1292 | </para></listitem> | ||
1293 | <listitem><para><emphasis><filename>pkgname:</filename></emphasis> | ||
1294 | Checks that all packages in | ||
1295 | <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link> | ||
1296 | have names that do not contain invalid characters (i.e. | ||
1297 | characters other than 0-9, a-z, ., +, and -). | ||
1298 | </para></listitem> | ||
1299 | <listitem><para><emphasis><filename>pn-overrides:</filename></emphasis> | ||
1300 | Checks that a recipe does not have a name | ||
1301 | (<link linkend='var-PN'><filename>PN</filename></link>) value | ||
1302 | that appears in | ||
1303 | <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>. | ||
1304 | If a recipe is named such that its <filename>PN</filename> | ||
1305 | value matches something already in | ||
1306 | <filename>OVERRIDES</filename> (e.g. <filename>PN</filename> | ||
1307 | happens to be the same as | ||
1308 | <link linkend='var-MACHINE'><filename>MACHINE</filename></link> | ||
1309 | or | ||
1310 | <link linkend='var-DISTRO'><filename>DISTRO</filename></link>), | ||
1311 | it can have unexpected consequences. | ||
1312 | For example, assignments such as | ||
1313 | <filename>FILES_${PN} = "xyz"</filename> effectively turn into | ||
1314 | <filename>FILES = "xyz"</filename>. | ||
1315 | </para></listitem> | ||
1316 | <listitem><para><emphasis><filename>unsafe-references-in-binaries:</filename></emphasis> | ||
1317 | Reports when a binary installed in | ||
1318 | <filename>${base_libdir}</filename>, | ||
1319 | <filename>${base_bindir}</filename>, or | ||
1320 | <filename>${base_sbindir}</filename>, depends on another | ||
1321 | binary installed under <filename>${exec_prefix}</filename>. | ||
1322 | This dependency is a concern if you want the system to remain | ||
1323 | basically operable if <filename>/usr</filename> is mounted | ||
1324 | separately and is not mounted. | ||
1325 | <note> | ||
1326 | Defaults for binaries installed in | ||
1327 | <filename>${base_libdir}</filename>, | ||
1328 | <filename>${base_bindir}</filename>, and | ||
1329 | <filename>${base_sbindir}</filename> are | ||
1330 | <filename>/lib</filename>, <filename>/bin</filename>, and | ||
1331 | <filename>/sbin</filename>, respectively. | ||
1332 | The default for a binary installed | ||
1333 | under <filename>${exec_prefix}</filename> is | ||
1334 | <filename>/usr</filename>. | ||
1335 | </note> | ||
1336 | </para></listitem> | ||
1337 | <listitem><para><emphasis><filename>unsafe-references-in-scripts:</filename></emphasis> | ||
1338 | Reports when a script file installed in | ||
1339 | <filename>${base_libdir}</filename>, | ||
1340 | <filename>${base_bindir}</filename>, or | ||
1341 | <filename>${base_sbindir}</filename>, depends on files | ||
1342 | installed under <filename>${exec_prefix}</filename>. | ||
1343 | This dependency is a concern if you want the system to remain | ||
1344 | basically operable if <filename>/usr</filename> is mounted | ||
1345 | separately and is not mounted. | ||
1346 | <note> | ||
1347 | Defaults for binaries installed in | ||
1348 | <filename>${base_libdir}</filename>, | ||
1349 | <filename>${base_bindir}</filename>, and | ||
1350 | <filename>${base_sbindir}</filename> are | ||
1351 | <filename>/lib</filename>, <filename>/bin</filename>, and | ||
1352 | <filename>/sbin</filename>, respectively. | ||
1353 | The default for a binary installed | ||
1354 | under <filename>${exec_prefix}</filename> is | ||
1355 | <filename>/usr</filename>. | ||
1356 | </note> | ||
1357 | </para></listitem> | ||
1358 | <listitem><para><emphasis><filename>var-undefined:</filename></emphasis> | ||
1359 | Reports when variables fundamental to packaging (i.e. | ||
1360 | <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>, | ||
1361 | <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>, | ||
1362 | <link linkend='var-D'><filename>D</filename></link>, | ||
1363 | <link linkend='var-PN'><filename>PN</filename></link>, and | ||
1364 | <link linkend='var-PKGD'><filename>PKGD</filename></link>) are | ||
1365 | undefined during <filename>do_package</filename>. | ||
1366 | </para></listitem> | ||
1367 | <listitem><para><emphasis><filename>pkgv-undefined:</filename></emphasis> | ||
1368 | Checks to see if the <filename>PKGV</filename> variable | ||
1369 | is undefined during <filename>do_package</filename>. | ||
1370 | </para></listitem> | ||
1371 | <listitem><para><emphasis><filename>buildpaths:</filename></emphasis> | ||
1372 | Checks for paths to locations on the build host inside the | ||
1373 | output files. | ||
1374 | Currently, this test triggers too many false positives and | ||
1375 | thus is not normally enabled. | ||
1376 | </para></listitem> | ||
1377 | <listitem><para><emphasis><filename>perms:</filename></emphasis> | ||
1378 | Currently, this check is unused but reserved. | ||
1379 | </para></listitem> | ||
1380 | <listitem><para><emphasis><filename>version-going-backwards:</filename></emphasis> | ||
1381 | If Build History is enabled, reports when a package | ||
1382 | being written out has a lower version than the previously | ||
1383 | written package under the same name. | ||
1384 | If you are placing output packages into a feed and | ||
1385 | upgrading packages on a target system using that feed, the | ||
1386 | version of a package going backwards can result in the target | ||
1387 | system not correctly upgrading to the "new" version of the | ||
1388 | package. | ||
1389 | <note> | ||
1390 | If you are not using runtime package management on your | ||
1391 | target system, then you do not need to worry about | ||
1392 | this situation. | ||
1393 | </note> | ||
1394 | </para></listitem> | ||
1395 | </itemizedlist> | ||
1013 | </para> | 1396 | </para> |
1014 | </section> | 1397 | </section> |
1015 | 1398 | ||
@@ -2112,369 +2495,6 @@ | |||
2112 | </para> | 2495 | </para> |
2113 | </section> | 2496 | </section> |
2114 | 2497 | ||
2115 | <section id='ref-classes-insane'> | ||
2116 | <title><filename>insane.bbclass</filename></title> | ||
2117 | |||
2118 | <para> | ||
2119 | This class adds a step to the package generation process so that | ||
2120 | output quality assurance checks are generated by the OpenEmbedded | ||
2121 | build system. | ||
2122 | A range of checks are performed that check the build's output | ||
2123 | for common problems that show up during runtime. | ||
2124 | Distribution policy usually dictates whether to include this class. | ||
2125 | </para> | ||
2126 | |||
2127 | <para> | ||
2128 | You can configure the sanity checks so that specific test failures | ||
2129 | either raise a warning or an error message. | ||
2130 | Typically, failures for new tests generate a warning. | ||
2131 | Subsequent failures for the same test would then generate an error | ||
2132 | message once the metadata is in a known and good condition. | ||
2133 | </para> | ||
2134 | |||
2135 | <para> | ||
2136 | Use the | ||
2137 | <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link> and | ||
2138 | <link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link> | ||
2139 | variables to control the behavior of | ||
2140 | these checks at the global level (i.e. in your custom distro | ||
2141 | configuration). | ||
2142 | However, to skip one or more checks in recipes, you should use | ||
2143 | <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>. | ||
2144 | For example, to skip the check for symbolic link | ||
2145 | <filename>.so</filename> files in the main package of a recipe, | ||
2146 | add the following to the recipe. | ||
2147 | You need to realize that the package name override, in this example | ||
2148 | <filename>${PN}</filename>, must be used: | ||
2149 | <literallayout class='monospaced'> | ||
2150 | INSANE_SKIP_${PN} += "dev-so" | ||
2151 | </literallayout> | ||
2152 | Please keep in mind that the QA checks exist in order to detect real | ||
2153 | or potential problems in the packaged output. | ||
2154 | So exercise caution when disabling these checks. | ||
2155 | </para> | ||
2156 | |||
2157 | <para> | ||
2158 | The following list shows the tests you can list with the | ||
2159 | <filename>WARN_QA</filename> and <filename>ERROR_QA</filename> | ||
2160 | variables: | ||
2161 | <itemizedlist> | ||
2162 | <listitem><para><emphasis><filename>ldflags:</filename></emphasis> | ||
2163 | Ensures that the binaries were linked with the | ||
2164 | <filename>LDFLAGS</filename> options provided by the build system. | ||
2165 | If this test fails, check that the <filename>LDFLAGS</filename> variable | ||
2166 | is being passed to the linker command.</para></listitem> | ||
2167 | <listitem><para><emphasis><filename>useless-rpaths:</filename></emphasis> | ||
2168 | Checks for dynamic library load paths (rpaths) in the binaries that | ||
2169 | by default on a standard system are searched by the linker (e.g. | ||
2170 | <filename>/lib</filename> and <filename>/usr/lib</filename>). | ||
2171 | While these paths will not cause any breakage, they do waste space and | ||
2172 | are unnecessary.</para></listitem> | ||
2173 | <listitem><para><emphasis><filename>rpaths:</filename></emphasis> | ||
2174 | Checks for rpaths in the binaries that contain build system paths such | ||
2175 | as <filename>TMPDIR</filename>. | ||
2176 | If this test fails, bad <filename>-rpath</filename> options are being | ||
2177 | passed to the linker commands and your binaries have potential security | ||
2178 | issues.</para></listitem> | ||
2179 | <listitem><para><emphasis><filename>dev-so:</filename></emphasis> | ||
2180 | Checks that the <filename>.so</filename> symbolic links are in the | ||
2181 | <filename>-dev</filename> package and not in any of the other packages. | ||
2182 | In general, these symlinks are only useful for development purposes. | ||
2183 | Thus, the <filename>-dev</filename> package is the correct location for | ||
2184 | them. | ||
2185 | Some very rare cases do exist for dynamically loaded modules where | ||
2186 | these symlinks are needed instead in the main package. | ||
2187 | </para></listitem> | ||
2188 | <listitem><para><emphasis><filename>debug-files:</filename></emphasis> | ||
2189 | Checks for <filename>.debug</filename> directories in anything but the | ||
2190 | <filename>-dbg</filename> package. | ||
2191 | The debug files should all be in the <filename>-dbg</filename> package. | ||
2192 | Thus, anything packaged elsewhere is incorrect packaging.</para></listitem> | ||
2193 | <listitem><para><emphasis><filename>arch:</filename></emphasis> | ||
2194 | Checks the Executable and Linkable Format (ELF) type, bit size, and endianness | ||
2195 | of any binaries to ensure they match the target architecture. | ||
2196 | This test fails if any binaries don't match the type since there would be an | ||
2197 | incompatibility. | ||
2198 | Sometimes software, like bootloaders, might need to bypass this check. | ||
2199 | </para></listitem> | ||
2200 | <listitem><para><emphasis><filename>debug-deps:</filename></emphasis> | ||
2201 | Checks that <filename>-dbg</filename> packages only depend on other | ||
2202 | <filename>-dbg</filename> packages and not on any other types of packages, | ||
2203 | which would cause a packaging bug.</para></listitem> | ||
2204 | <listitem><para><emphasis><filename>dev-deps:</filename></emphasis> | ||
2205 | Checks that <filename>-dev</filename> packages only depend on other | ||
2206 | <filename>-dev</filename> packages and not on any other types of packages, | ||
2207 | which would be a packaging bug.</para></listitem> | ||
2208 | <listitem><para><emphasis><filename>pkgconfig:</filename></emphasis> | ||
2209 | Checks <filename>.pc</filename> files for any | ||
2210 | <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>/<link linkend='var-WORKDIR'><filename>WORKDIR</filename></link> | ||
2211 | paths. | ||
2212 | Any <filename>.pc</filename> file containing these paths is incorrect | ||
2213 | since <filename>pkg-config</filename> itself adds the correct sysroot prefix | ||
2214 | when the files are accessed.</para></listitem> | ||
2215 | <listitem><para><emphasis><filename>textrel:</filename></emphasis> | ||
2216 | Checks for ELF binaries that contain relocations in their | ||
2217 | <filename>.text</filename> sections, which can result in a | ||
2218 | performance impact at runtime.</para></listitem> | ||
2219 | <listitem><para><emphasis><filename>pkgvarcheck:</filename></emphasis> | ||
2220 | Checks through the variables | ||
2221 | <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, | ||
2222 | <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, | ||
2223 | <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, | ||
2224 | <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>, | ||
2225 | <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, | ||
2226 | <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, | ||
2227 | <link linkend='var-FILES'><filename>FILES</filename></link>, | ||
2228 | <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>, | ||
2229 | <filename>pkg_preinst</filename>, | ||
2230 | <filename>pkg_postinst</filename>, | ||
2231 | <filename>pkg_prerm</filename> | ||
2232 | and <filename>pkg_postrm</filename>, and reports if there are | ||
2233 | variable sets that are not package-specific. | ||
2234 | Using these variables without a package suffix is bad practice, | ||
2235 | and might unnecessarily complicate dependencies of other packages | ||
2236 | within the same recipe or have other unintended consequences. | ||
2237 | </para></listitem> | ||
2238 | <listitem><para><emphasis><filename>xorg-driver-abi:</filename></emphasis> | ||
2239 | Checks that all packages containing Xorg drivers have ABI | ||
2240 | dependencies. | ||
2241 | The <filename>xserver-xorg</filename> recipe provides driver | ||
2242 | ABI names. | ||
2243 | All drivers should depend on the ABI versions that they have | ||
2244 | been built against. | ||
2245 | Driver recipes that include | ||
2246 | <filename>xorg-driver-input.inc</filename> | ||
2247 | or <filename>xorg-driver-video.inc</filename> will | ||
2248 | automatically get these versions. | ||
2249 | Consequently, you should only need to explicitly add | ||
2250 | dependencies to binary driver recipes. | ||
2251 | </para></listitem> | ||
2252 | <listitem><para><emphasis><filename>libexec:</filename></emphasis> | ||
2253 | Checks if a package contains files in | ||
2254 | <filename>/usr/libexec</filename>. | ||
2255 | This check is not performed if the | ||
2256 | <filename>libexecdir</filename> variable has been set | ||
2257 | explicitly to <filename>/usr/libexec</filename>. | ||
2258 | </para></listitem> | ||
2259 | <listitem><para><emphasis><filename>staticdev:</filename></emphasis> | ||
2260 | Checks for static library files (<filename>*.a</filename>) in | ||
2261 | non-<filename>staticdev</filename> packages. | ||
2262 | </para></listitem> | ||
2263 | <listitem><para><emphasis><filename>la:</filename></emphasis> | ||
2264 | Checks <filename>.la</filename> files for any <filename>TMPDIR</filename> | ||
2265 | paths. | ||
2266 | Any <filename>.la</filename> file containing these paths is incorrect since | ||
2267 | <filename>libtool</filename> adds the correct sysroot prefix when using the | ||
2268 | files automatically itself.</para></listitem> | ||
2269 | <listitem><para><emphasis><filename>desktop:</filename></emphasis> | ||
2270 | Runs the <filename>desktop-file-validate</filename> program | ||
2271 | against any <filename>.desktop</filename> files to validate | ||
2272 | their contents against the specification for | ||
2273 | <filename>.desktop</filename> files.</para></listitem> | ||
2274 | <listitem><para><emphasis><filename>already-stripped:</filename></emphasis> | ||
2275 | Checks that produced binaries have not already been | ||
2276 | stripped prior to the build system extracting debug symbols. | ||
2277 | It is common for upstream software projects to default to | ||
2278 | stripping debug symbols for output binaries. | ||
2279 | In order for debugging to work on the target using | ||
2280 | <filename>-dbg</filename> packages, this stripping must be | ||
2281 | disabled. | ||
2282 | </para></listitem> | ||
2283 | <listitem><para><emphasis><filename>split-strip:</filename></emphasis> | ||
2284 | Reports that splitting or stripping debug symbols from binaries | ||
2285 | has failed. | ||
2286 | </para></listitem> | ||
2287 | <listitem><para><emphasis><filename>arch:</filename></emphasis> | ||
2288 | Checks to ensure the architecture, bit size, and endianness | ||
2289 | of all output binaries matches that of the target. | ||
2290 | This test can detect when the wrong compiler or compiler options | ||
2291 | have been used. | ||
2292 | </para></listitem> | ||
2293 | <listitem><para><emphasis><filename>installed-vs-shipped:</filename></emphasis> | ||
2294 | Reports when files have been installed within | ||
2295 | <filename>do_install</filename> but have not been included in | ||
2296 | any package by way of the | ||
2297 | <link linkend='var-FILES'><filename>FILES</filename></link> | ||
2298 | variable. | ||
2299 | Files that do not appear in any package cannot be present in | ||
2300 | an image later on in the build process. | ||
2301 | Ideally, all installed files should be packaged or not | ||
2302 | installed at all. | ||
2303 | These files can be deleted at the end of | ||
2304 | <filename>do_install</filename> if the files are not | ||
2305 | needed in any package. | ||
2306 | </para></listitem> | ||
2307 | <listitem><para><emphasis><filename>dep-cmp:</filename></emphasis> | ||
2308 | Checks for invalid version comparison statements in runtime | ||
2309 | dependency relationships between packages (i.e. in | ||
2310 | <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, | ||
2311 | <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, | ||
2312 | <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, | ||
2313 | <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, | ||
2314 | <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, | ||
2315 | and | ||
2316 | <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link> | ||
2317 | variable values). | ||
2318 | Any invalid comparisons might trigger failures or undesirable | ||
2319 | behavior when passed to the package manager. | ||
2320 | </para></listitem> | ||
2321 | <listitem><para><emphasis><filename>files-invalid:</filename></emphasis> | ||
2322 | Checks for | ||
2323 | <link linkend='var-FILES'><filename>FILES</filename></link> | ||
2324 | variable values that contain "//", which is invalid. | ||
2325 | </para></listitem> | ||
2326 | <listitem><para><emphasis><filename>incompatible-license:</filename></emphasis> | ||
2327 | Report when packages are excluded from being created due to | ||
2328 | being marked with a license that is in | ||
2329 | <link linkend='var-INCOMPATIBLE_LICENSE'><filename>INCOMPATIBLE_LICENSE</filename></link>. | ||
2330 | </para></listitem> | ||
2331 | <listitem><para><emphasis><filename>compile-host-path:</filename></emphasis> | ||
2332 | Checks the <filename>do_compile</filename> log for indications | ||
2333 | that paths to locations on the build host were used. | ||
2334 | Using such paths might result in host contamination of the | ||
2335 | build output. | ||
2336 | </para></listitem> | ||
2337 | <listitem><para><emphasis><filename>install-host-path:</filename></emphasis> | ||
2338 | Checks the <filename>do_install</filename> log for indications | ||
2339 | that paths to locations on the build host were used. | ||
2340 | Using such paths might result in host contamination of the | ||
2341 | build output. | ||
2342 | </para></listitem> | ||
2343 | <listitem><para><emphasis><filename>libdir:</filename></emphasis> | ||
2344 | Checks for libraries being installed into incorrect | ||
2345 | (possibly hardcoded) installation paths. | ||
2346 | For example, this test will catch recipes that install | ||
2347 | <filename>/lib/bar.so</filename> when | ||
2348 | <filename>${base_libdir}</filename> is "lib32". | ||
2349 | Another example is when recipes install | ||
2350 | <filename>/usr/lib64/foo.so</filename> when | ||
2351 | <filename>${libdir}</filename> is "/usr/lib". | ||
2352 | </para></listitem> | ||
2353 | <listitem><para><emphasis><filename>packages-list:</filename></emphasis> | ||
2354 | Checks for the same package being listed multiple times through | ||
2355 | the <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link> | ||
2356 | variable value. | ||
2357 | Installing the package in this manner can cause errors during | ||
2358 | packaging. | ||
2359 | </para></listitem> | ||
2360 | <listitem><para><emphasis><filename>perm-config:</filename></emphasis> | ||
2361 | Reports lines in <filename>fs-perms.txt</filename> that have | ||
2362 | an invalid format. | ||
2363 | </para></listitem> | ||
2364 | <listitem><para><emphasis><filename>perm-line:</filename></emphasis> | ||
2365 | Reports lines in <filename>fs-perms.txt</filename> that have | ||
2366 | an invalid format. | ||
2367 | </para></listitem> | ||
2368 | <listitem><para><emphasis><filename>perm-link:</filename></emphasis> | ||
2369 | Reports lines in <filename>fs-perms.txt</filename> that | ||
2370 | specify 'link' where the specified target already exists. | ||
2371 | </para></listitem> | ||
2372 | <listitem><para><emphasis><filename>pkgname:</filename></emphasis> | ||
2373 | Checks that all packages in | ||
2374 | <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link> | ||
2375 | have names that do not contain invalid characters (i.e. | ||
2376 | characters other than 0-9, a-z, ., +, and -). | ||
2377 | </para></listitem> | ||
2378 | <listitem><para><emphasis><filename>pn-overrides:</filename></emphasis> | ||
2379 | Checks that a recipe does not have a name | ||
2380 | (<link linkend='var-PN'><filename>PN</filename></link>) value | ||
2381 | that appears in | ||
2382 | <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>. | ||
2383 | If a recipe is named such that its <filename>PN</filename> | ||
2384 | value matches something already in | ||
2385 | <filename>OVERRIDES</filename> (e.g. <filename>PN</filename> | ||
2386 | happens to be the same as | ||
2387 | <link linkend='var-MACHINE'><filename>MACHINE</filename></link> | ||
2388 | or | ||
2389 | <link linkend='var-DISTRO'><filename>DISTRO</filename></link>), | ||
2390 | it can have unexpected consequences. | ||
2391 | For example, assignments such as | ||
2392 | <filename>FILES_${PN} = "xyz"</filename> effectively turn into | ||
2393 | <filename>FILES = "xyz"</filename>. | ||
2394 | </para></listitem> | ||
2395 | <listitem><para><emphasis><filename>unsafe-references-in-binaries:</filename></emphasis> | ||
2396 | Reports when a binary installed in | ||
2397 | <filename>${base_libdir}</filename>, | ||
2398 | <filename>${base_bindir}</filename>, or | ||
2399 | <filename>${base_sbindir}</filename>, depends on another | ||
2400 | binary installed under <filename>${exec_prefix}</filename>. | ||
2401 | This dependency is a concern if you want the system to remain | ||
2402 | basically operable if <filename>/usr</filename> is mounted | ||
2403 | separately and is not mounted. | ||
2404 | <note> | ||
2405 | Defaults for binaries installed in | ||
2406 | <filename>${base_libdir}</filename>, | ||
2407 | <filename>${base_bindir}</filename>, and | ||
2408 | <filename>${base_sbindir}</filename> are | ||
2409 | <filename>/lib</filename>, <filename>/bin</filename>, and | ||
2410 | <filename>/sbin</filename>, respectively. | ||
2411 | The default for a binary installed | ||
2412 | under <filename>${exec_prefix}</filename> is | ||
2413 | <filename>/usr</filename>. | ||
2414 | </note> | ||
2415 | </para></listitem> | ||
2416 | <listitem><para><emphasis><filename>unsafe-references-in-scripts:</filename></emphasis> | ||
2417 | Reports when a script file installed in | ||
2418 | <filename>${base_libdir}</filename>, | ||
2419 | <filename>${base_bindir}</filename>, or | ||
2420 | <filename>${base_sbindir}</filename>, depends on files | ||
2421 | installed under <filename>${exec_prefix}</filename>. | ||
2422 | This dependency is a concern if you want the system to remain | ||
2423 | basically operable if <filename>/usr</filename> is mounted | ||
2424 | separately and is not mounted. | ||
2425 | <note> | ||
2426 | Defaults for binaries installed in | ||
2427 | <filename>${base_libdir}</filename>, | ||
2428 | <filename>${base_bindir}</filename>, and | ||
2429 | <filename>${base_sbindir}</filename> are | ||
2430 | <filename>/lib</filename>, <filename>/bin</filename>, and | ||
2431 | <filename>/sbin</filename>, respectively. | ||
2432 | The default for a binary installed | ||
2433 | under <filename>${exec_prefix}</filename> is | ||
2434 | <filename>/usr</filename>. | ||
2435 | </note> | ||
2436 | </para></listitem> | ||
2437 | <listitem><para><emphasis><filename>var-undefined:</filename></emphasis> | ||
2438 | Reports when variables fundamental to packaging (i.e. | ||
2439 | <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>, | ||
2440 | <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>, | ||
2441 | <link linkend='var-D'><filename>D</filename></link>, | ||
2442 | <link linkend='var-PN'><filename>PN</filename></link>, and | ||
2443 | <link linkend='var-PKGD'><filename>PKGD</filename></link>) are | ||
2444 | undefined during <filename>do_package</filename>. | ||
2445 | </para></listitem> | ||
2446 | <listitem><para><emphasis><filename>pkgv-undefined:</filename></emphasis> | ||
2447 | Checks to see if the <filename>PKGV</filename> variable | ||
2448 | is undefined during <filename>do_package</filename>. | ||
2449 | </para></listitem> | ||
2450 | <listitem><para><emphasis><filename>buildpaths:</filename></emphasis> | ||
2451 | Checks for paths to locations on the build host inside the | ||
2452 | output files. | ||
2453 | Currently, this test triggers too many false positives and | ||
2454 | thus is not normally enabled. | ||
2455 | </para></listitem> | ||
2456 | <listitem><para><emphasis><filename>perms:</filename></emphasis> | ||
2457 | Currently, this check is unused but reserved. | ||
2458 | </para></listitem> | ||
2459 | <listitem><para><emphasis><filename>version-going-backwards:</filename></emphasis> | ||
2460 | If Build History is enabled, reports when a package | ||
2461 | being written out has a lower version than the previously | ||
2462 | written package under the same name. | ||
2463 | If you are placing output packages into a feed and | ||
2464 | upgrading packages on a target system using that feed, the | ||
2465 | version of a package going backwards can result in the target | ||
2466 | system not correctly upgrading to the "new" version of the | ||
2467 | package. | ||
2468 | <note> | ||
2469 | If you are not using runtime package management on your | ||
2470 | target system, then you do not need to worry about | ||
2471 | this situation. | ||
2472 | </note> | ||
2473 | </para></listitem> | ||
2474 | </itemizedlist> | ||
2475 | </para> | ||
2476 | </section> | ||
2477 | |||
2478 | <section id='ref-classes-rm-work'> | 2498 | <section id='ref-classes-rm-work'> |
2479 | <title>Removing Work Files During the Build - <filename>rm_work.bbclass</filename></title> | 2499 | <title>Removing Work Files During the Build - <filename>rm_work.bbclass</filename></title> |
2480 | 2500 | ||