migration.xml 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089
  1. <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  2. "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
  3. [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
  4. <chapter id='migration'>
  5. <title>Migrating to a Newer Yocto Project Release</title>
  6. <para>
  7. This chapter provides information you can use to migrate work to a
  8. newer Yocto Project release. You can find the same information in the
  9. release notes for a given release.
  10. </para>
  11. <section id='moving-to-the-yocto-project-1.3-release'>
  12. <title>Moving to the Yocto Project 1.3 Release</title>
  13. <para>
  14. This section provides migration information for moving to the
  15. Yocto Project 1.3 Release from the prior release.
  16. </para>
  17. <section id='1.3-local-configuration'>
  18. <title>Local Configuration</title>
  19. <para>
  20. Differences include changes for
  21. <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
  22. and <filename>bblayers.conf</filename>.
  23. </para>
  24. <section id='migration-1.3-sstate-mirrors'>
  25. <title>SSTATE_MIRRORS</title>
  26. <para>
  27. The shared state cache (sstate-cache), as pointed to by
  28. <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>, by default
  29. now has two-character subdirectories to prevent issues arising
  30. from too many files in the same directory.
  31. Also, native sstate-cache packages will go into a subdirectory named using
  32. the distro ID string.
  33. If you copy the newly structured sstate-cache to a mirror location
  34. (either local or remote) and then point to it in
  35. <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>,
  36. you need to append "PATH" to the end of the mirror URL so that
  37. the path used by BitBake before the mirror substitution is
  38. appended to the path used to access the mirror.
  39. Here is an example:
  40. <literallayout class='monospaced'>
  41. SSTATE_MIRRORS = "file://.* http://someserver.tld/share/sstate/PATH"
  42. </literallayout>
  43. </para>
  44. </section>
  45. <section id='migration-1.3-bblayers-conf'>
  46. <title>bblayers.conf</title>
  47. <para>
  48. The <filename>meta-yocto</filename> layer consists of two parts
  49. that correspond to the Poky reference distribution and the
  50. reference hardware Board Support Packages (BSPs), respectively:
  51. <filename>meta-yocto</filename> and
  52. <filename>meta-yocto-bsp</filename>.
  53. When running BitBake or Hob for the first time after upgrading,
  54. your <filename>conf/bblayers.conf</filename> file will be
  55. updated to handle this change and you will be asked to
  56. re-run or restart for the changes to take effect.
  57. </para>
  58. </section>
  59. </section>
  60. <section id='1.3-recipes'>
  61. <title>Recipes</title>
  62. <para>
  63. Differences include changes for the following:
  64. <itemizedlist>
  65. <listitem><para>Python function whitespace</para></listitem>
  66. <listitem><para><filename>proto=</filename> in <filename>SRC_URI</filename></para></listitem>
  67. <listitem><para><filename>nativesdk</filename></para></listitem>
  68. <listitem><para>Task recipes</para></listitem>
  69. <listitem><para><filename>IMAGE_FEATURES</filename></para></listitem>
  70. <listitem><para>Removed recipes</para></listitem>
  71. </itemizedlist>
  72. </para>
  73. <section id='migration-1.3-python-function-whitespace'>
  74. <title>Python Function Whitespace</title>
  75. <para>
  76. All Python functions must now use four spaces for indentation.
  77. Previously, an inconsistent mix of spaces and tabs existed,
  78. which made extending these functions using
  79. <filename>_append</filename> or <filename>_prepend</filename>
  80. complicated given that Python treats whitespace as
  81. syntactically significant.
  82. If you are defining or extending any Python functions (e.g.
  83. <filename>populate_packages</filename>, <filename>do_unpack</filename>,
  84. <filename>do_patch</filename> and so forth) in custom recipes
  85. or classes, you need to ensure you are using consistent
  86. four-space indentation.
  87. </para>
  88. </section>
  89. <section id='migration-1.3-proto=-in-src-uri'>
  90. <title>proto= in SRC_URI</title>
  91. <para>
  92. Any use of <filename>proto=</filename> in
  93. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
  94. needs to be changed to <filename>protocol=</filename>.
  95. In particular, this applies to the following URIs:
  96. <itemizedlist>
  97. <listitem><para><filename>svn://</filename></para></listitem>
  98. <listitem><para><filename>bzr://</filename></para></listitem>
  99. <listitem><para><filename>hg://</filename></para></listitem>
  100. <listitem><para><filename>osc://</filename></para></listitem>
  101. </itemizedlist>
  102. Other URIs were already using <filename>protocol=</filename>.
  103. This change improves consistency.
  104. </para>
  105. </section>
  106. <section id='migration-1.3-nativesdk'>
  107. <title>nativesdk</title>
  108. <para>
  109. The suffix <filename>nativesdk</filename> is now implemented
  110. as a prefix, which simplifies a lot of the packaging code for
  111. <filename>nativesdk</filename> recipes.
  112. All custom <filename>nativesdk</filename> recipes and any
  113. references need to be updated to use
  114. <filename>nativesdk-*</filename> instead of
  115. <filename>*-nativesdk</filename>.
  116. </para>
  117. </section>
  118. <section id='migration-1.3-task-recipes'>
  119. <title>Task Recipes</title>
  120. <para>
  121. "Task" recipes are now known as "Package groups" and have
  122. been renamed from <filename>task-*.bb</filename> to
  123. <filename>packagegroup-*.bb</filename>.
  124. Existing references to the previous <filename>task-*</filename>
  125. names should work in most cases as there is an automatic
  126. upgrade path for most packages.
  127. However, you should update references in your own recipes and
  128. configurations as they could be removed in future releases.
  129. You should also rename any custom <filename>task-*</filename>
  130. recipes to <filename>packagegroup-*</filename>, and change
  131. them to inherit <filename>packagegroup</filename> instead of
  132. <filename>task</filename>, as well as taking the opportunity
  133. to remove anything now handled by
  134. <filename>packagegroup.bbclass</filename>, such as providing
  135. <filename>-dev</filename> and <filename>-dbg</filename>
  136. packages, setting
  137. <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>,
  138. and so forth.
  139. See the
  140. "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>"
  141. section for further details.
  142. </para>
  143. </section>
  144. <section id='migration-1.3-image-features'>
  145. <title>IMAGE_FEATURES</title>
  146. <para>
  147. Image recipes that previously included "apps-console-core"
  148. in <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
  149. should now include "splash" instead to enable the boot-up
  150. splash screen.
  151. Retaining "apps-console-core" will still include the splash
  152. screen but generates a warning.
  153. The "apps-x11-core" and "apps-x11-games"
  154. <filename>IMAGE_FEATURES</filename> features have been removed.
  155. </para>
  156. </section>
  157. <section id='migration-1.3-removed-recipes'>
  158. <title>Removed Recipes</title>
  159. <para>
  160. The following recipes have been removed.
  161. For most of them, it is unlikely that you would have any
  162. references to them in your own
  163. <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>.
  164. However, you should check your metadata against this list to be sure:
  165. <itemizedlist>
  166. <listitem><para><emphasis><filename>libx11-trim</filename></emphasis>:
  167. Replaced by <filename>libx11</filename>, which has a negligible
  168. size difference with modern Xorg.</para></listitem>
  169. <listitem><para><emphasis><filename>xserver-xorg-lite</filename></emphasis>:
  170. Use <filename>xserver-xorg</filename>, which has a negligible
  171. size difference when DRI and GLX modules are not installed.</para></listitem>
  172. <listitem><para><emphasis><filename>xserver-kdrive</filename></emphasis>:
  173. Effectively unmaintained for many years.</para></listitem>
  174. <listitem><para><emphasis><filename>mesa-xlib</filename></emphasis>:
  175. No longer serves any purpose.</para></listitem>
  176. <listitem><para><emphasis><filename>galago</filename></emphasis>:
  177. Replaced by telepathy.</para></listitem>
  178. <listitem><para><emphasis><filename>gail</filename></emphasis>:
  179. Functionality was integrated into GTK+ 2.13.</para></listitem>
  180. <listitem><para><emphasis><filename>eggdbus</filename></emphasis>:
  181. No longer needed.</para></listitem>
  182. <listitem><para><emphasis><filename>gcc-*-intermediate</filename></emphasis>:
  183. The build has been restructured to avoid the need for
  184. this step.</para></listitem>
  185. <listitem><para><emphasis><filename>libgsmd</filename></emphasis>:
  186. Unmaintained for many years.
  187. Functionality now provided by
  188. <filename>ofono</filename> instead.</para></listitem>
  189. <listitem><para><emphasis>contacts, dates, tasks, eds-tools</emphasis>:
  190. Largely unmaintained PIM application suite.
  191. It has been moved to <filename>meta-gnome</filename>
  192. in <filename>meta-openembedded</filename>.</para></listitem>
  193. </itemizedlist>
  194. In addition to the previously listed changes, the
  195. <filename>meta-demoapps</filename> directory has also been removed
  196. because the recipes in it were not being maintained and many
  197. had become obsolete or broken.
  198. Additionally, these recipes were not parsed in the default configuration.
  199. Many of these recipes are already provided in an updated and
  200. maintained form within the OpenEmbedded community layers such as
  201. <filename>meta-oe</filename> and <filename>meta-gnome</filename>.
  202. For the remainder, you can now find them in the
  203. <filename>meta-extras</filename> repository, which is in the
  204. Yocto Project
  205. <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>.
  206. </para>
  207. </section>
  208. </section>
  209. <section id='1.3-linux-kernel-naming'>
  210. <title>Linux Kernel Naming</title>
  211. <para>
  212. The naming scheme for kernel output binaries has been changed to
  213. now include
  214. <link linkend='var-PE'><filename>PE</filename></link> as part of the
  215. filename:
  216. <literallayout class='monospaced'>
  217. KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
  218. </literallayout>
  219. </para>
  220. <para>
  221. Because the <filename>PE</filename> variable is not set by default,
  222. these binary files could result with names that include two dash
  223. characters.
  224. Here is an example:
  225. <literallayout class='monospaced'>
  226. bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin
  227. </literallayout>
  228. </para>
  229. </section>
  230. </section>
  231. <section id='moving-to-the-yocto-project-1.4-release'>
  232. <title>Moving to the Yocto Project 1.4 Release</title>
  233. <para>
  234. This section provides migration information for moving to the
  235. Yocto Project 1.4 Release from the prior release.
  236. </para>
  237. <section id='migration-1.4-bitbake'>
  238. <title>BitBake</title>
  239. <para>
  240. Differences include the following:
  241. <itemizedlist>
  242. <listitem><para><emphasis>Comment Continuation:</emphasis>
  243. If a comment ends with a line continuation (\) character,
  244. then the next line must also be a comment.
  245. Any instance where this is not the case, now triggers
  246. a warning.
  247. You must either remove the continuation character, or be
  248. sure the next line is a comment.
  249. </para></listitem>
  250. <listitem><para><emphasis>Package Name Overrides:</emphasis>
  251. The runtime package specific variables
  252. <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>,
  253. <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
  254. <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>,
  255. <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>,
  256. <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>,
  257. <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>,
  258. <link linkend='var-FILES'><filename>FILES</filename></link>,
  259. <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>,
  260. and the pre, post, install, and uninstall script functions
  261. <filename>pkg_preinst</filename>,
  262. <filename>pkg_postinst</filename>,
  263. <filename>pkg_prerm</filename>, and
  264. <filename>pkg_postrm</filename> should always have a
  265. package name override.
  266. For example, use <filename>RDEPENDS_${PN}</filename> for
  267. the main package instead of <filename>RDEPENDS</filename>.
  268. BitBake uses more strict checks when it parses recipes.
  269. </para></listitem>
  270. </itemizedlist>
  271. </para>
  272. </section>
  273. <section id='migration-1.4-build-behavior'>
  274. <title>Build Behavior</title>
  275. <para>
  276. Differences include the following:
  277. <itemizedlist>
  278. <listitem><para><emphasis>Shared State Code:</emphasis>
  279. The shared state code has been optimized to avoid running
  280. unnecessary tasks.
  281. For example,
  282. <filename>bitbake -c rootfs some-image</filename> from
  283. shared state no longer populates the target sysroot
  284. since that is not necessary.
  285. Instead, the system just needs to extract the output
  286. package contents, re-create the packages, and construct
  287. the root filesystem.
  288. This change is unlikely to cause any problems unless
  289. you have missing declared dependencies.
  290. </para></listitem>
  291. <listitem><para><emphasis>Scanning Directory Names:</emphasis>
  292. When scanning for files in
  293. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
  294. the build system now uses
  295. <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link>
  296. instead of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
  297. for the directory names.
  298. In general, the values previously in
  299. <filename>OVERRIDES</filename> are now in
  300. <filename>FILESOVERRIDES</filename> as well.
  301. However, if you relied upon an additional value
  302. you previously added to <filename>OVERRIDES</filename>,
  303. you might now need to add it to
  304. <filename>FILESOVERRIDES</filename> unless you are already
  305. adding it through the
  306. <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>
  307. or <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
  308. variables, as appropriate.
  309. For more related changes, see the
  310. "<link linkend='migration-1.4-variables'>Variables</link>"
  311. section.
  312. </para></listitem>
  313. </itemizedlist>
  314. </para>
  315. </section>
  316. <section id='migration-1.4-proxies-and-fetching-source'>
  317. <title>Proxies and Fetching Source</title>
  318. <para>
  319. A new <filename>oe-git-proxy</filename> script has been added to
  320. replace previous methods of handling proxies and fetching source
  321. from Git.
  322. See the <filename>meta-yocto/conf/site.conf.sample</filename> file
  323. for information on how to use this script.
  324. </para>
  325. </section>
  326. <section id='migration-1.4-custom-interfaces-file-netbase-change'>
  327. <title>Custom Interfaces File (netbase change)</title>
  328. <para>
  329. If you have created your own custom
  330. <filename>etc/network/interfaces</filename> file by creating
  331. an append file for the <filename>netbase</filename> recipe,
  332. you now need to create an append file for the
  333. <filename>init-ifupdown</filename> recipe instead, which you can
  334. find in the
  335. <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
  336. at <filename>meta/recipes-core/init-ifupdown</filename>.
  337. For information on how to use append files, see the
  338. "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>"
  339. in the Yocto Project Development Manual.
  340. </para>
  341. </section>
  342. <section id='migration-1.4-remote-debugging'>
  343. <title>Remote Debugging</title>
  344. <para>
  345. Support for remote debugging with the Eclipse IDE is now
  346. separated into an image feature
  347. (<filename>eclipse-debug</filename>) that corresponds to the
  348. <filename>packagegroup-core-eclipse-debug</filename> package group.
  349. Previously, the debugging feature was included through the
  350. <filename>tools-debug</filename> image feature, which corresponds
  351. to the <filename>packagegroup-core-tools-debug</filename>
  352. package group.
  353. </para>
  354. </section>
  355. <section id='migration-1.4-variables'>
  356. <title>Variables</title>
  357. <para>
  358. The following variables have changed:
  359. <itemizedlist>
  360. <listitem><para><emphasis><filename>SANITY_TESTED_DISTROS</filename>:</emphasis>
  361. This variable now uses a distribution ID, which is composed
  362. of the host distributor ID followed by the release.
  363. Previously,
  364. <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
  365. was composed of the description field.
  366. For example, "Ubuntu 12.10" becomes "Ubuntu-12.10".
  367. You do not need to worry about this change if you are not
  368. specifically setting this variable, or if you are
  369. specifically setting it to "".
  370. </para></listitem>
  371. <listitem><para><emphasis><filename>SRC_URI</filename>:</emphasis>
  372. The <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>,
  373. <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>,
  374. <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>,
  375. and <filename>FILE_DIRNAME</filename> directories have been
  376. dropped from the default value of the
  377. <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
  378. variable, which is used as the search path for finding files
  379. referred to in
  380. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
  381. If you have a recipe that relied upon these directories,
  382. which would be unusual, then you will need to add the
  383. appropriate paths within the recipe or, alternatively,
  384. rearrange the files.
  385. The most common locations are still covered by
  386. <filename>${BP}</filename>, <filename>${BPN}</filename>,
  387. and "files", which all remain in the default value of
  388. <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
  389. </para></listitem>
  390. </itemizedlist>
  391. </para>
  392. </section>
  393. <section id='migration-target-package-management-with-rpm'>
  394. <title>Target Package Management with RPM</title>
  395. <para>
  396. If runtime package management is enabled and the RPM backend
  397. is selected, Smart is now installed for package download, dependency
  398. resolution, and upgrades instead of Zypper.
  399. For more information on how to use Smart, run the following command
  400. on the target:
  401. <literallayout class='monospaced'>
  402. smart --help
  403. </literallayout>
  404. </para>
  405. </section>
  406. <section id='migration-1.4-recipes-moved'>
  407. <title>Recipes Moved</title>
  408. <para>
  409. The following recipes were moved from their previous locations
  410. because they are no longer used by anything in
  411. the OpenEmbedded-Core:
  412. <itemizedlist>
  413. <listitem><para><emphasis><filename>clutter-box2d</filename>:</emphasis>
  414. Now resides in the <filename>meta-oe</filename> layer.
  415. </para></listitem>
  416. <listitem><para><emphasis><filename>evolution-data-server</filename>:</emphasis>
  417. Now resides in the <filename>meta-gnome</filename> layer.
  418. </para></listitem>
  419. <listitem><para><emphasis><filename>gthumb</filename>:</emphasis>
  420. Now resides in the <filename>meta-gnome</filename> layer.
  421. </para></listitem>
  422. <listitem><para><emphasis><filename>gtkhtml2</filename>:</emphasis>
  423. Now resides in the <filename>meta-oe</filename> layer.
  424. </para></listitem>
  425. <listitem><para><emphasis><filename>gupnp</filename>:</emphasis>
  426. Now resides in the <filename>meta-multimedia</filename> layer.
  427. </para></listitem>
  428. <listitem><para><emphasis><filename>gypsy</filename>:</emphasis>
  429. Now resides in the <filename>meta-oe</filename> layer.
  430. </para></listitem>
  431. <listitem><para><emphasis><filename>libcanberra</filename>:</emphasis>
  432. Now resides in the <filename>meta-gnome</filename> layer.
  433. </para></listitem>
  434. <listitem><para><emphasis><filename>libgdata</filename>:</emphasis>
  435. Now resides in the <filename>meta-gnome</filename> layer.
  436. </para></listitem>
  437. <listitem><para><emphasis><filename>libmusicbrainz</filename>:</emphasis>
  438. Now resides in the <filename>meta-multimedia</filename> layer.
  439. </para></listitem>
  440. <listitem><para><emphasis><filename>metacity</filename>:</emphasis>
  441. Now resides in the <filename>meta-gnome</filename> layer.
  442. </para></listitem>
  443. <listitem><para><emphasis><filename>polkit</filename>:</emphasis>
  444. Now resides in the <filename>meta-oe</filename> layer.
  445. </para></listitem>
  446. <listitem><para><emphasis><filename>zeroconf</filename>:</emphasis>
  447. Now resides in the <filename>meta-networking</filename> layer.
  448. </para></listitem>
  449. </itemizedlist>
  450. </para>
  451. </section>
  452. <section id='migration-1.4-removals-and-renames'>
  453. <title>Removals and Renames</title>
  454. <para>
  455. The following list shows what has been removed or renamed:
  456. <itemizedlist>
  457. <listitem><para><emphasis><filename>evieext</filename>:</emphasis>
  458. Removed because it has been removed from
  459. <filename>xserver</filename> since 2008.
  460. </para></listitem>
  461. <listitem><para><emphasis>Gtk+ DirectFB:</emphasis>
  462. Removed support because upstream Gtk+ no longer supports it
  463. as of version 2.18.
  464. </para></listitem>
  465. <listitem><para><emphasis><filename>libxfontcache / xfontcacheproto</filename>:</emphasis>
  466. Removed because they were removed from the Xorg server in 2008.
  467. </para></listitem>
  468. <listitem><para><emphasis><filename>libxp / libxprintapputil / libxprintutil / printproto</filename>:</emphasis>
  469. Removed because the XPrint server was removed from
  470. Xorg in 2008.
  471. </para></listitem>
  472. <listitem><para><emphasis><filename>libxtrap / xtrapproto</filename>:</emphasis>
  473. Removed because their functionality was broken upstream.
  474. </para></listitem>
  475. <listitem><para><emphasis>linux-yocto 3.0 kernel:</emphasis>
  476. Removed with linux-yocto 3.8 kernel being added.
  477. The linux-yocto 3.2 and linux-yocto 3.4 kernels remain
  478. as part of the release.
  479. </para></listitem>
  480. <listitem><para><emphasis><filename>lsbsetup</filename>:</emphasis>
  481. Removed with functionality now provided by
  482. <filename>lsbtest</filename>.
  483. </para></listitem>
  484. <listitem><para><emphasis><filename>matchbox-stroke</filename>:</emphasis>
  485. Removed because it was never more than a proof-of-concept.
  486. </para></listitem>
  487. <listitem><para><emphasis><filename>matchbox-wm-2 / matchbox-theme-sato-2</filename>:</emphasis>
  488. Removed because they are not maintained.
  489. However, <filename>matchbox-wm</filename> and
  490. <filename>matchbox-theme-sato</filename> are still
  491. provided.
  492. </para></listitem>
  493. <listitem><para><emphasis><filename>mesa-dri</filename>:</emphasis>
  494. Renamed to <filename>mesa</filename>.
  495. </para></listitem>
  496. <listitem><para><emphasis><filename>mesa-xlib</filename>:</emphasis>
  497. Removed because it was no longer useful.
  498. </para></listitem>
  499. <listitem><para><emphasis><filename>mutter</filename>:</emphasis>
  500. Removed because nothing ever uses it and the recipe is
  501. very old.
  502. </para></listitem>
  503. <listitem><para><emphasis><filename>orinoco-conf</filename>:</emphasis>
  504. Removed because it has become obsolete.
  505. </para></listitem>
  506. <listitem><para><emphasis><filename>update-modules</filename>:</emphasis>
  507. Removed because it is no longer used.
  508. The kernel module <filename>postinstall</filename> and
  509. <filename>postrm</filename> scripts can now do the same
  510. task without the use of this script.
  511. </para></listitem>
  512. <listitem><para><emphasis><filename>web</filename>:</emphasis>
  513. Removed because it is not maintained. Superseded by
  514. <filename>web-webkit</filename>.
  515. </para></listitem>
  516. <listitem><para><emphasis><filename>xf86bigfontproto</filename>:</emphasis>
  517. Removed because upstream it has been disabled by default
  518. since 2007.
  519. Nothing uses <filename>xf86bigfontproto</filename>.
  520. </para></listitem>
  521. <listitem><para><emphasis><filename>xf86rushproto</filename>:</emphasis>
  522. Removed because its dependency in
  523. <filename>xserver</filename> was spurious and it was
  524. removed in 2005.
  525. </para></listitem>
  526. <listitem><para><emphasis><filename>zypper / libzypp / sat-solver</filename>:</emphasis>
  527. Removed and been functionally replaced with Smart
  528. (<filename>python-smartpm</filename>) when RPM packaging
  529. is used and package management is enabled on the target.
  530. </para></listitem>
  531. </itemizedlist>
  532. </para>
  533. </section>
  534. </section>
  535. <section id='moving-to-the-yocto-project-1.5-release'>
  536. <title>Moving to the Yocto Project 1.5 Release</title>
  537. <para>
  538. This section provides migration information for moving to the
  539. Yocto Project 1.5 Release from the prior release.
  540. </para>
  541. <section id='migration-1.5-host-dependency-changes'>
  542. <title>Host Dependency Changes</title>
  543. <para>
  544. The OpenEmbedded build system now has some additional requirements
  545. on the host system:
  546. <itemizedlist>
  547. <listitem><para>Python 2.7.3+</para></listitem>
  548. <listitem><para>Tar 1.24+</para></listitem>
  549. <listitem><para>Git 1.7.5+</para></listitem>
  550. <listitem><para>Patched version of Make if you are using
  551. 3.82.
  552. Most distributions that provide Make 3.82 use the patched
  553. version.</para></listitem>
  554. </itemizedlist>
  555. If the Linux distribution you are using on your build host
  556. does not provide packages for these, you can install and use
  557. the Buildtools tarball, which provides an SDK-like environment
  558. containing them.
  559. </para>
  560. <para>
  561. For more information on this requirement, see the
  562. "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
  563. section.
  564. </para>
  565. </section>
  566. <section id='migration-1.5-atom-pc-bsp'>
  567. <title><filename>atom-pc</filename> Board Support Package (BSP)</title>
  568. <para>
  569. The <filename>atom-pc</filename> hardware reference BSP has been
  570. replaced by a <filename>genericx86</filename> BSP.
  571. This BSP is not necessarily guaranteed to work on all x86
  572. hardware, but it will run on a wider range of systems than the
  573. <filename>atom-pc</filename> did.
  574. <note>
  575. Additionally, a <filename>genericx86-64</filename> BSP has been
  576. added for 64-bit systems.
  577. </note>
  578. </para>
  579. </section>
  580. <section id='migration-1.5-bitbake'>
  581. <title>BitBake</title>
  582. <para>
  583. The following changes have been made that relate to BitBake:
  584. <itemizedlist>
  585. <listitem><para>
  586. BitBake now supports a <filename>_remove</filename>
  587. operator.
  588. The addition of this operator means you will have to
  589. rename any items in recipe space (functions, variables)
  590. whose names currently contain
  591. <filename>_remove_</filename> or end with
  592. <filename>_remove</filename> to avoid unexpected behavior.
  593. </para></listitem>
  594. <listitem><para>
  595. BitBake's global method pool has been removed.
  596. This method is not particularly useful and led to clashes
  597. between recipes containing functions that had the
  598. same name.</para></listitem>
  599. <listitem><para>
  600. The "none" server backend has been removed.
  601. The "process" server backend has been serving well as the
  602. default for a long time now.</para></listitem>
  603. <listitem><para>
  604. The <filename>bitbake-runtask</filename> script has been
  605. removed.</para></listitem>
  606. <listitem><para>
  607. <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>
  608. and
  609. <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>
  610. are no longer added to
  611. <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
  612. by default in <filename>bitbake.conf</filename>.
  613. These version-specific <filename>PROVIDES</filename>
  614. items were seldom used.
  615. Attempting to use them could result in two versions being
  616. built simultaneously rather than just one version due to
  617. the way BitBake resolves dependencies.</para></listitem>
  618. </itemizedlist>
  619. </para>
  620. </section>
  621. <section id='migration-1.5-qa-warnings'>
  622. <title>QA Warnings</title>
  623. <para>
  624. The following changes have been made to the package QA checks:
  625. <itemizedlist>
  626. <listitem><para>
  627. If you have customized
  628. <link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link>
  629. or <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link>
  630. values in your configuration, check that they contain all of
  631. the issues that you wish to be reported.
  632. Previous Yocto Project versions contained a bug that meant
  633. that any item not mentioned in <filename>ERROR_QA</filename>
  634. or <filename>WARN_QA</filename> would be treated as a
  635. warning.
  636. Consequently, several important items were not already in
  637. the default value of <filename>WARN_QA</filename>.
  638. All of the possible QA checks are now documented in the
  639. "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
  640. section.</para></listitem>
  641. <listitem><para>
  642. An additional QA check has been added to check if
  643. <filename>/usr/share/info/dir</filename> is being installed.
  644. Your recipe should delete this file within
  645. <filename>do_install</filename> if "make install" is
  646. installing it.</para></listitem>
  647. <listitem><para>
  648. If you are using the buildhistory class, the check for the
  649. package version going backwards is now controlled using a
  650. standard QA check.
  651. Thus, if you have customized your
  652. <filename>ERROR_QA</filename> or
  653. <filename>WARN_QA</filename> values and still wish to have
  654. this check performed, you should add
  655. "version-going-backwards" to your value for one or the
  656. other variables depending on how you wish it to be handled.
  657. See the documented QA checks in the
  658. "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
  659. section.
  660. </para></listitem>
  661. </itemizedlist>
  662. </para>
  663. </section>
  664. <section id='migration-1.5-directory-layout-changes'>
  665. <title>Directory Layout Changes</title>
  666. <para>
  667. The following directory changes exist:
  668. <itemizedlist>
  669. <listitem><para>
  670. Output SDK installer files are now named to include the
  671. image name and tuning architecture through the
  672. <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
  673. variable.</para></listitem>
  674. <listitem><para>
  675. Images and related files are now installed into a directory
  676. that is specific to the machine, instead of a parent
  677. directory containing output files for multiple machines.
  678. The
  679. <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
  680. variable continues to point to the directory containing
  681. images for the current
  682. <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
  683. and should be used anywhere there is a need to refer to
  684. this directory.
  685. The <filename>runqemu</filename> script now uses this
  686. variable to find images and kernel binaries and will use
  687. BitBake to determine the directory.
  688. Alternatively, you can set the
  689. <filename>DEPLOY_DIR_IMAGE</filename> variable in the
  690. external environment.</para></listitem>
  691. <listitem><para>
  692. When buildhistory is enabled, its output is now written
  693. under the
  694. <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
  695. rather than
  696. <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>.
  697. Doing so makes it easier to delete
  698. <filename>TMPDIR</filename> and preserve the build history.
  699. Additionally, data for produced SDKs is now split by
  700. <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>.
  701. </para></listitem>
  702. <listitem><para>
  703. The <filename>pkgdata</filename> directory produced as
  704. part of the packaging process has been collapsed into a
  705. single machine-specific directory.
  706. This directory is located under
  707. <filename>sysroots</filename> and uses a machine-specific
  708. name (i.e.
  709. <filename>tmp/sysroots/&lt;machine&gt;/pkgdata</filename>).
  710. </para></listitem>
  711. </itemizedlist>
  712. </para>
  713. </section>
  714. <section id='migration-1.5-shortened-git-srcrev-values'>
  715. <title>Shortened Git <filename>SRCREV</filename> Values</title>
  716. <para>
  717. BitBake will now shorten revisions from Git repositories from the
  718. normal 40 characters down to 10 characters within
  719. <link linkend='var-SRCPV'><filename>SRCPV</filename></link>
  720. for improved usability in path and file names.
  721. This change should be safe within contexts where these revisions
  722. are used because the chances of spatially close collisions
  723. is very low.
  724. Distant collisions are not a major issue in the way
  725. the values are used.
  726. </para>
  727. </section>
  728. <section id='migration-1.5-image-features'>
  729. <title><filename>IMAGE_FEATURES</filename></title>
  730. <para>
  731. The following changes have been made that relate to
  732. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>:
  733. <itemizedlist>
  734. <listitem><para>
  735. The value of
  736. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
  737. is now validated to ensure invalid feature items are not
  738. added.
  739. Some users mistakenly add package names to this variable
  740. instead of using
  741. <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
  742. in order to have the package added to the image, which does
  743. not work.
  744. This change is intended to catch those kinds of situations.
  745. Valid <filename>IMAGE_FEATURES</filename> are drawn from
  746. <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
  747. definitions,
  748. <link linkend='var-COMPLEMENTARY_GLOB'><filename>COMPLEMENTARY_GLOB</filename></link>
  749. and a new "validitems" varflag on
  750. <filename>IMAGE_FEATURES</filename>.
  751. The "validitems" varflag change allows additional features
  752. to be added if they are not provided using the previous
  753. two mechanisms.
  754. </para></listitem>
  755. <listitem><para>
  756. The previously deprecated "apps-console-core"
  757. <filename>IMAGE_FEATURES</filename> item is no longer
  758. supported.
  759. Add "splash" to <filename>IMAGE_FEATURES</filename> if you
  760. wish to have the splash screen enabled, since this is
  761. all that apps-console-core was doing.</para></listitem>
  762. </itemizedlist>
  763. </para>
  764. </section>
  765. <section id='migration-1.5-run'>
  766. <title><filename>run</filename></title>
  767. <para>
  768. The <filename>run</filename> directory from the Filesystem
  769. Hierarchy Standard 3.0 has been introduced.
  770. You can find some of the implications for this change
  771. <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873'>here</ulink>.
  772. The change also means that recipes that install files to
  773. <filename>/var/run</filename> must be changed.
  774. You can find a guide on how to make these changes
  775. <ulink url='http://permalink.gmane.org/gmane.comp.handhelds.openembedded/58530'>here</ulink>.
  776. </para>
  777. </section>
  778. <section id='migration-1.5-removal-of-package-manager-database-within-image-recipes'>
  779. <title>Removal of Package Manager Database Within Image Recipes</title>
  780. <para>
  781. The image <filename>core-image-minimal</filename> no longer adds
  782. <filename>remove_packaging_data_files</filename> to
  783. <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>.
  784. This addition is now handled automatically when "package-management"
  785. is not in
  786. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
  787. If you have custom image recipes that make this addition,
  788. you should remove the lines, as they are not needed and might
  789. interfere with correct operation of postinstall scripts.
  790. </para>
  791. </section>
  792. <section id='migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time'>
  793. <title>Images Now Rebuild Only on Changes Instead of Every Time</title>
  794. <para>
  795. The <filename>do_rootfs</filename> and other related image
  796. construction tasks are no longer marked as "nostamp".
  797. Consequently, they will only be re-executed when their inputs have
  798. changed.
  799. Previous versions of the OpenEmbedded build system always rebuilt
  800. the image when requested rather when necessary.
  801. </para>
  802. </section>
  803. <section id='migration-1.5-task-recipes'>
  804. <title>Task Recipes</title>
  805. <para>
  806. The previously deprecated <filename>task.bbclass</filename> has
  807. now been dropped.
  808. For recipes that previously inherited from this task, you should
  809. rename them from <filename>task-*</filename> to
  810. <filename>packagegroup-*</filename> and inherit packagegroup
  811. instead.
  812. </para>
  813. <para>
  814. For more information, see the
  815. "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>"
  816. section.
  817. </para>
  818. </section>
  819. <section id='migration-1.5-busybox'>
  820. <title>BusyBox</title>
  821. <para>
  822. By default, we now split BusyBox into two binaries:
  823. one that is suid root for those components that need it, and
  824. another for the rest of the components.
  825. Splitting BusyBox allows for optimization that eliminates the
  826. <filename>tinylogin</filename> recipe as recommended by upstream.
  827. You can disable this split by setting
  828. <link linkend='var-BUSYBOX_SPLIT_SUID'><filename>BUSYBOX_SPLIT_SUID</filename></link>
  829. to "0".
  830. </para>
  831. </section>
  832. <section id='migration-1.5-automated-image-testing'>
  833. <title>Automated Image Testing</title>
  834. <para>
  835. A new automated image testing framework has been added
  836. through the
  837. <link linkend='ref-classes-testimage'><filename>testimage*.bbclass</filename></link>
  838. class.
  839. This framework replaces the older
  840. <filename>imagetest-qemu</filename> framework.
  841. </para>
  842. <para>
  843. You can learn more about performing automated image tests in the
  844. "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
  845. section.
  846. </para>
  847. </section>
  848. <section id='migration-1.5-build-history'>
  849. <title>Build History</title>
  850. <para>
  851. Following are changes to Build History:
  852. <itemizedlist>
  853. <listitem><para>
  854. Installed package sizes:
  855. <filename>installed-package-sizes.txt</filename> for an
  856. image now records the size of the files installed by each
  857. package instead of the size of each compressed package
  858. archive file.</para></listitem>
  859. <listitem><para>
  860. The dependency graphs (<filename>depends*.dot</filename>)
  861. now use the actual package names instead of replacing
  862. dashes, dots and plus signs with underscores.
  863. </para></listitem>
  864. <listitem><para>
  865. The <filename>buildhistory-diff</filename> and
  866. <filename>buildhistory-collect-srcrevs</filename>
  867. utilities have improved command-line handling.
  868. Use the <filename>&dash;&dash;help</filename> option for
  869. each utility for more information on the new syntax.
  870. </para></listitem>
  871. </itemizedlist>
  872. For more information on Build History, see the
  873. "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
  874. section.
  875. </para>
  876. </section>
  877. <section id='migration-1.5-udev'>
  878. <title><filename>udev</filename></title>
  879. <para>
  880. Following are changes to <filename>udev</filename>:
  881. <itemizedlist>
  882. <listitem><para>
  883. <filename>udev</filename> no longer brings in
  884. <filename>udev-extraconf</filename> automatically
  885. through
  886. <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
  887. since this was originally intended to be optional.
  888. If you need the extra rules, then add
  889. <filename>udev-extraconf</filename> to your image.
  890. </para></listitem>
  891. <listitem><para>
  892. <filename>udev</filename> no longer brings in
  893. <filename>pciutils-ids</filename> or
  894. <filename>usbutils-ids</filename> through
  895. <filename>RRECOMMENDS</filename>.
  896. These are not needed by <filename>udev</filename> itself
  897. and removing them saves around 350KB.
  898. </para></listitem>
  899. </itemizedlist>
  900. </para>
  901. </section>
  902. <section id='removed-renamed-recipes'>
  903. <title>Removed and Renamed Recipes</title>
  904. <itemizedlist>
  905. <listitem><para>
  906. The <filename>linux-yocto</filename> 3.2 kernel has been
  907. removed.</para></listitem>
  908. <listitem><para>
  909. <filename>libtool-nativesdk</filename> has been renamed to
  910. <filename>nativesdk-libtool</filename>.</para></listitem>
  911. <listitem><para>
  912. <filename>tinylogin</filename> has been removed.
  913. It has been replaced by a suid portion of Busybox.
  914. See the
  915. "<link linkend='migration-1.5-busybox'>BusyBox</link>" section
  916. for more information.</para></listitem>
  917. <listitem><para>
  918. <filename>external-python-tarball</filename> has been renamed
  919. to <filename>buildtools-tarball</filename>.
  920. </para></listitem>
  921. <listitem><para>
  922. <filename>web-webkit</filename> has been removed.
  923. It has been functionally replaced by
  924. <filename>midori</filename>.</para></listitem>
  925. <listitem><para>
  926. <filename>imake</filename> has been removed.
  927. It is no longer needed by any other recipe.
  928. </para></listitem>
  929. <listitem><para>
  930. <filename>transfig-native</filename> has been removed.
  931. It is no longer needed by any other recipe.
  932. </para></listitem>
  933. <listitem><para>
  934. <filename>anjuta-remote-run</filename> has been removed.
  935. Anjuta IDE integration has not been officially supported for
  936. several releases.</para></listitem>
  937. </itemizedlist>
  938. </section>
  939. <section id='migration-1.5-other-changes'>
  940. <title>Other Changes</title>
  941. <para>
  942. Following is a list of short entries describing other changes:
  943. <itemizedlist>
  944. <listitem><para>
  945. <filename>run-postinsts</filename>: Make this generic.
  946. </para></listitem>
  947. <listitem><para>
  948. <filename>base-files</filename>: Remove the unnecessary
  949. <filename>media/xxx</filename> directories.
  950. </para></listitem>
  951. <listitem><para>
  952. <filename>alsa-state</filename>: Provide an empty
  953. <filename>asound.conf</filename> by default.
  954. </para></listitem>
  955. <listitem><para>
  956. <filename>classes/image</filename>: Ensure
  957. <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
  958. supports pre-renamed package names.</para></listitem>
  959. <listitem><para>
  960. <filename>classes/rootfs_rpm</filename>: Implement
  961. <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
  962. for RPM.</para></listitem>
  963. <listitem><para>
  964. <filename>systemd</filename>: Remove
  965. <filename>systemd_unitdir</filename> if
  966. <filename>systemd</filename> is not in
  967. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
  968. </para></listitem>
  969. <listitem><para>
  970. <filename>systemd</filename>: Remove
  971. <filename>init.d</filename> dir if
  972. <filename>systemd</filename> unit file is present and
  973. <filename>sysvinit</filename> is not a distro feature.
  974. </para></listitem>
  975. <listitem><para>
  976. <filename>libpam</filename>: Deny all services for the
  977. <filename>OTHER</filename> entries.
  978. </para></listitem>
  979. <listitem><para>
  980. <filename>image.bbclass</filename>: Move
  981. <filename>runtime_mapping_rename</filename> to avoid
  982. conflict with <filename>multilib</filename>.
  983. See
  984. <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=4993'><filename>YOCTO #4993</filename></ulink>
  985. in Bugzilla for more information.
  986. </para></listitem>
  987. <listitem><para>
  988. <filename>linux-dtb</filename>: Use kernel build system
  989. to generate the <filename>dtb</filename> files.
  990. </para></listitem>
  991. <listitem><para>
  992. <filename>kern-tools</filename>: Switch from guilt to
  993. new <filename>kgit-s2q</filename> tool.
  994. </para></listitem>
  995. </itemizedlist>
  996. </para>
  997. </section>
  998. </section>
  999. </chapter>
  1000. <!--
  1001. vim: expandtab tw=80 ts=4
  1002. -->