migration.xml 160 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339
  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='general-migration-considerations'>
  12. <title>General Migration Considerations</title>
  13. <para>
  14. Some considerations are not tied to a specific Yocto Project
  15. release.
  16. This section presents information you should consider when
  17. migrating to any new Yocto Project release.
  18. <itemizedlist>
  19. <listitem><para><emphasis>Dealing with Customized Recipes</emphasis>:
  20. Issues could arise if you take older recipes that contain
  21. customizations and simply copy them forward expecting them
  22. to work after you migrate to new Yocto Project metadata.
  23. For example, suppose you have a recipe in your layer that is
  24. a customized version of a core recipe copied from the earlier
  25. release, rather than through the use of an append file.
  26. When you migrate to a newer version of Yocto Project, the
  27. metadata (e.g. perhaps an include file used by the recipe)
  28. could have changed in a way that would break the build.
  29. Say, for example, a function is removed from an include file
  30. and the customized recipe tries to call that function.
  31. </para>
  32. <para>You could "forward-port" all your customizations in your
  33. recipe so that everything works for the new release.
  34. However, this is not the optimal solution as you would have
  35. to repeat this process with each new release if changes
  36. occur that give rise to problems.</para>
  37. <para>The better solution (where practical) is to use append
  38. files (<filename>*.bbappend</filename>) to capture any
  39. customizations you want to make to a recipe.
  40. Doing so, isolates your changes from the main recipe making
  41. them much more manageable.
  42. However, sometimes it is not practical to use an append
  43. file.
  44. A good example of this is when introducing a newer or older
  45. version of a recipe in another layer.</para>
  46. </listitem>
  47. <listitem><para><emphasis>Updating Append Files</emphasis>:
  48. Since append files generally only contain your customizations,
  49. they often do not need to be adjusted for new releases.
  50. However, if the <filename>.bbappend</filename> file is
  51. specific to a particular version of the recipe (i.e. its
  52. name does not use the % wildcard) and the version of the
  53. recipe to which it is appending has changed, then you will
  54. at a minimum need to rename the append file to match the
  55. name of the recipe file.
  56. A mismatch between an append file and its corresponding
  57. recipe file (<filename>.bb</filename>) will
  58. trigger an error during parsing.</para>
  59. <para>Depending on the type of customization the append file
  60. applies, other incompatibilities might occur when you
  61. upgrade.
  62. For example, if your append file applies a patch and the
  63. recipe to which it is appending is updated to a newer
  64. version, the patch might no longer apply.
  65. If this is the case and assuming the patch is still needed,
  66. you must modify the patch file so that it does apply.
  67. </para></listitem>
  68. </itemizedlist>
  69. </para>
  70. </section>
  71. <section id='moving-to-the-yocto-project-1.3-release'>
  72. <title>Moving to the Yocto Project 1.3 Release</title>
  73. <para>
  74. This section provides migration information for moving to the
  75. Yocto Project 1.3 Release from the prior release.
  76. </para>
  77. <section id='1.3-local-configuration'>
  78. <title>Local Configuration</title>
  79. <para>
  80. Differences include changes for
  81. <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
  82. and <filename>bblayers.conf</filename>.
  83. </para>
  84. <section id='migration-1.3-sstate-mirrors'>
  85. <title>SSTATE_MIRRORS</title>
  86. <para>
  87. The shared state cache (sstate-cache), as pointed to by
  88. <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
  89. by default now has two-character subdirectories to prevent
  90. issues arising from too many files in the same directory.
  91. Also, native sstate-cache packages, which are built to run
  92. on the host system, will go into a subdirectory named using
  93. the distro ID string.
  94. If you copy the newly structured sstate-cache to a mirror
  95. location (either local or remote) and then point to it in
  96. <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>,
  97. you need to append "PATH" to the end of the mirror URL so that
  98. the path used by BitBake before the mirror substitution is
  99. appended to the path used to access the mirror.
  100. Here is an example:
  101. <literallayout class='monospaced'>
  102. SSTATE_MIRRORS = "file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH"
  103. </literallayout>
  104. </para>
  105. </section>
  106. <section id='migration-1.3-bblayers-conf'>
  107. <title>bblayers.conf</title>
  108. <para>
  109. The <filename>meta-yocto</filename> layer consists of two parts
  110. that correspond to the Poky reference distribution and the
  111. reference hardware Board Support Packages (BSPs), respectively:
  112. <filename>meta-yocto</filename> and
  113. <filename>meta-yocto-bsp</filename>.
  114. When running BitBake for the first time after upgrading,
  115. your <filename>conf/bblayers.conf</filename> file will be
  116. updated to handle this change and you will be asked to
  117. re-run or restart for the changes to take effect.
  118. </para>
  119. </section>
  120. </section>
  121. <section id='1.3-recipes'>
  122. <title>Recipes</title>
  123. <para>
  124. Differences include changes for the following:
  125. <itemizedlist>
  126. <listitem><para>Python function whitespace</para></listitem>
  127. <listitem><para><filename>proto=</filename> in <filename>SRC_URI</filename></para></listitem>
  128. <listitem><para><filename>nativesdk</filename></para></listitem>
  129. <listitem><para>Task recipes</para></listitem>
  130. <listitem><para><filename>IMAGE_FEATURES</filename></para></listitem>
  131. <listitem><para>Removed recipes</para></listitem>
  132. </itemizedlist>
  133. </para>
  134. <section id='migration-1.3-python-function-whitespace'>
  135. <title>Python Function Whitespace</title>
  136. <para>
  137. All Python functions must now use four spaces for indentation.
  138. Previously, an inconsistent mix of spaces and tabs existed,
  139. which made extending these functions using
  140. <filename>_append</filename> or <filename>_prepend</filename>
  141. complicated given that Python treats whitespace as
  142. syntactically significant.
  143. If you are defining or extending any Python functions (e.g.
  144. <filename>populate_packages</filename>, <filename>do_unpack</filename>,
  145. <filename>do_patch</filename> and so forth) in custom recipes
  146. or classes, you need to ensure you are using consistent
  147. four-space indentation.
  148. </para>
  149. </section>
  150. <section id='migration-1.3-proto=-in-src-uri'>
  151. <title>proto= in SRC_URI</title>
  152. <para>
  153. Any use of <filename>proto=</filename> in
  154. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
  155. needs to be changed to <filename>protocol=</filename>.
  156. In particular, this applies to the following URIs:
  157. <itemizedlist>
  158. <listitem><para><filename>svn://</filename></para></listitem>
  159. <listitem><para><filename>bzr://</filename></para></listitem>
  160. <listitem><para><filename>hg://</filename></para></listitem>
  161. <listitem><para><filename>osc://</filename></para></listitem>
  162. </itemizedlist>
  163. Other URIs were already using <filename>protocol=</filename>.
  164. This change improves consistency.
  165. </para>
  166. </section>
  167. <section id='migration-1.3-nativesdk'>
  168. <title>nativesdk</title>
  169. <para>
  170. The suffix <filename>nativesdk</filename> is now implemented
  171. as a prefix, which simplifies a lot of the packaging code for
  172. <filename>nativesdk</filename> recipes.
  173. All custom <filename>nativesdk</filename> recipes, which are
  174. relocatable packages that are native to
  175. <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
  176. and any references need to be updated to use
  177. <filename>nativesdk-*</filename> instead of
  178. <filename>*-nativesdk</filename>.
  179. </para>
  180. </section>
  181. <section id='migration-1.3-task-recipes'>
  182. <title>Task Recipes</title>
  183. <para>
  184. "Task" recipes are now known as "Package groups" and have
  185. been renamed from <filename>task-*.bb</filename> to
  186. <filename>packagegroup-*.bb</filename>.
  187. Existing references to the previous <filename>task-*</filename>
  188. names should work in most cases as there is an automatic
  189. upgrade path for most packages.
  190. However, you should update references in your own recipes and
  191. configurations as they could be removed in future releases.
  192. You should also rename any custom <filename>task-*</filename>
  193. recipes to <filename>packagegroup-*</filename>, and change
  194. them to inherit <filename>packagegroup</filename> instead of
  195. <filename>task</filename>, as well as taking the opportunity
  196. to remove anything now handled by
  197. <filename>packagegroup.bbclass</filename>, such as providing
  198. <filename>-dev</filename> and <filename>-dbg</filename>
  199. packages, setting
  200. <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>,
  201. and so forth.
  202. See the
  203. "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>"
  204. section for further details.
  205. </para>
  206. </section>
  207. <section id='migration-1.3-image-features'>
  208. <title>IMAGE_FEATURES</title>
  209. <para>
  210. Image recipes that previously included "apps-console-core"
  211. in <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
  212. should now include "splash" instead to enable the boot-up
  213. splash screen.
  214. Retaining "apps-console-core" will still include the splash
  215. screen but generates a warning.
  216. The "apps-x11-core" and "apps-x11-games"
  217. <filename>IMAGE_FEATURES</filename> features have been removed.
  218. </para>
  219. </section>
  220. <section id='migration-1.3-removed-recipes'>
  221. <title>Removed Recipes</title>
  222. <para>
  223. The following recipes have been removed.
  224. For most of them, it is unlikely that you would have any
  225. references to them in your own
  226. <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>.
  227. However, you should check your metadata against this list to be sure:
  228. <itemizedlist>
  229. <listitem><para><emphasis><filename>libx11-trim</filename></emphasis>:
  230. Replaced by <filename>libx11</filename>, which has a negligible
  231. size difference with modern Xorg.</para></listitem>
  232. <listitem><para><emphasis><filename>xserver-xorg-lite</filename></emphasis>:
  233. Use <filename>xserver-xorg</filename>, which has a negligible
  234. size difference when DRI and GLX modules are not installed.</para></listitem>
  235. <listitem><para><emphasis><filename>xserver-kdrive</filename></emphasis>:
  236. Effectively unmaintained for many years.</para></listitem>
  237. <listitem><para><emphasis><filename>mesa-xlib</filename></emphasis>:
  238. No longer serves any purpose.</para></listitem>
  239. <listitem><para><emphasis><filename>galago</filename></emphasis>:
  240. Replaced by telepathy.</para></listitem>
  241. <listitem><para><emphasis><filename>gail</filename></emphasis>:
  242. Functionality was integrated into GTK+ 2.13.</para></listitem>
  243. <listitem><para><emphasis><filename>eggdbus</filename></emphasis>:
  244. No longer needed.</para></listitem>
  245. <listitem><para><emphasis><filename>gcc-*-intermediate</filename></emphasis>:
  246. The build has been restructured to avoid the need for
  247. this step.</para></listitem>
  248. <listitem><para><emphasis><filename>libgsmd</filename></emphasis>:
  249. Unmaintained for many years.
  250. Functionality now provided by
  251. <filename>ofono</filename> instead.</para></listitem>
  252. <listitem><para><emphasis>contacts, dates, tasks, eds-tools</emphasis>:
  253. Largely unmaintained PIM application suite.
  254. It has been moved to <filename>meta-gnome</filename>
  255. in <filename>meta-openembedded</filename>.</para></listitem>
  256. </itemizedlist>
  257. In addition to the previously listed changes, the
  258. <filename>meta-demoapps</filename> directory has also been removed
  259. because the recipes in it were not being maintained and many
  260. had become obsolete or broken.
  261. Additionally, these recipes were not parsed in the default configuration.
  262. Many of these recipes are already provided in an updated and
  263. maintained form within the OpenEmbedded community layers such as
  264. <filename>meta-oe</filename> and <filename>meta-gnome</filename>.
  265. For the remainder, you can now find them in the
  266. <filename>meta-extras</filename> repository, which is in the
  267. Yocto Project
  268. <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>.
  269. </para>
  270. </section>
  271. </section>
  272. <section id='1.3-linux-kernel-naming'>
  273. <title>Linux Kernel Naming</title>
  274. <para>
  275. The naming scheme for kernel output binaries has been changed to
  276. now include
  277. <link linkend='var-PE'><filename>PE</filename></link> as part of the
  278. filename:
  279. <literallayout class='monospaced'>
  280. KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
  281. </literallayout>
  282. </para>
  283. <para>
  284. Because the <filename>PE</filename> variable is not set by default,
  285. these binary files could result with names that include two dash
  286. characters.
  287. Here is an example:
  288. <literallayout class='monospaced'>
  289. bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin
  290. </literallayout>
  291. </para>
  292. </section>
  293. </section>
  294. <section id='moving-to-the-yocto-project-1.4-release'>
  295. <title>Moving to the Yocto Project 1.4 Release</title>
  296. <para>
  297. This section provides migration information for moving to the
  298. Yocto Project 1.4 Release from the prior release.
  299. </para>
  300. <section id='migration-1.4-bitbake'>
  301. <title>BitBake</title>
  302. <para>
  303. Differences include the following:
  304. <itemizedlist>
  305. <listitem><para><emphasis>Comment Continuation:</emphasis>
  306. If a comment ends with a line continuation (\) character,
  307. then the next line must also be a comment.
  308. Any instance where this is not the case, now triggers
  309. a warning.
  310. You must either remove the continuation character, or be
  311. sure the next line is a comment.
  312. </para></listitem>
  313. <listitem><para><emphasis>Package Name Overrides:</emphasis>
  314. The runtime package specific variables
  315. <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>,
  316. <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
  317. <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>,
  318. <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>,
  319. <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>,
  320. <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>,
  321. <link linkend='var-FILES'><filename>FILES</filename></link>,
  322. <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>,
  323. and the pre, post, install, and uninstall script functions
  324. <filename>pkg_preinst</filename>,
  325. <filename>pkg_postinst</filename>,
  326. <filename>pkg_prerm</filename>, and
  327. <filename>pkg_postrm</filename> should always have a
  328. package name override.
  329. For example, use <filename>RDEPENDS_${PN}</filename> for
  330. the main package instead of <filename>RDEPENDS</filename>.
  331. BitBake uses more strict checks when it parses recipes.
  332. </para></listitem>
  333. </itemizedlist>
  334. </para>
  335. </section>
  336. <section id='migration-1.4-build-behavior'>
  337. <title>Build Behavior</title>
  338. <para>
  339. Differences include the following:
  340. <itemizedlist>
  341. <listitem><para><emphasis>Shared State Code:</emphasis>
  342. The shared state code has been optimized to avoid running
  343. unnecessary tasks.
  344. For example, the following no longer populates the target
  345. sysroot since that is not necessary:
  346. <literallayout class='monospaced'>
  347. $ bitbake -c rootfs <replaceable>some-image</replaceable>
  348. </literallayout>
  349. Instead, the system just needs to extract the output
  350. package contents, re-create the packages, and construct
  351. the root filesystem.
  352. This change is unlikely to cause any problems unless
  353. you have missing declared dependencies.
  354. </para></listitem>
  355. <listitem><para><emphasis>Scanning Directory Names:</emphasis>
  356. When scanning for files in
  357. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
  358. the build system now uses
  359. <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link>
  360. instead of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
  361. for the directory names.
  362. In general, the values previously in
  363. <filename>OVERRIDES</filename> are now in
  364. <filename>FILESOVERRIDES</filename> as well.
  365. However, if you relied upon an additional value
  366. you previously added to <filename>OVERRIDES</filename>,
  367. you might now need to add it to
  368. <filename>FILESOVERRIDES</filename> unless you are already
  369. adding it through the
  370. <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>
  371. or <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
  372. variables, as appropriate.
  373. For more related changes, see the
  374. "<link linkend='migration-1.4-variables'>Variables</link>"
  375. section.
  376. </para></listitem>
  377. </itemizedlist>
  378. </para>
  379. </section>
  380. <section id='migration-1.4-proxies-and-fetching-source'>
  381. <title>Proxies and Fetching Source</title>
  382. <para>
  383. A new <filename>oe-git-proxy</filename> script has been added to
  384. replace previous methods of handling proxies and fetching source
  385. from Git.
  386. See the <filename>meta-yocto/conf/site.conf.sample</filename> file
  387. for information on how to use this script.
  388. </para>
  389. </section>
  390. <section id='migration-1.4-custom-interfaces-file-netbase-change'>
  391. <title>Custom Interfaces File (netbase change)</title>
  392. <para>
  393. If you have created your own custom
  394. <filename>etc/network/interfaces</filename> file by creating
  395. an append file for the <filename>netbase</filename> recipe,
  396. you now need to create an append file for the
  397. <filename>init-ifupdown</filename> recipe instead, which you can
  398. find in the
  399. <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
  400. at <filename>meta/recipes-core/init-ifupdown</filename>.
  401. For information on how to use append files, see the
  402. "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>"
  403. in the Yocto Project Development Manual.
  404. </para>
  405. </section>
  406. <section id='migration-1.4-remote-debugging'>
  407. <title>Remote Debugging</title>
  408. <para>
  409. Support for remote debugging with the Eclipse IDE is now
  410. separated into an image feature
  411. (<filename>eclipse-debug</filename>) that corresponds to the
  412. <filename>packagegroup-core-eclipse-debug</filename> package group.
  413. Previously, the debugging feature was included through the
  414. <filename>tools-debug</filename> image feature, which corresponds
  415. to the <filename>packagegroup-core-tools-debug</filename>
  416. package group.
  417. </para>
  418. </section>
  419. <section id='migration-1.4-variables'>
  420. <title>Variables</title>
  421. <para>
  422. The following variables have changed:
  423. <itemizedlist>
  424. <listitem><para><emphasis><filename>SANITY_TESTED_DISTROS</filename>:</emphasis>
  425. This variable now uses a distribution ID, which is composed
  426. of the host distributor ID followed by the release.
  427. Previously,
  428. <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
  429. was composed of the description field.
  430. For example, "Ubuntu 12.10" becomes "Ubuntu-12.10".
  431. You do not need to worry about this change if you are not
  432. specifically setting this variable, or if you are
  433. specifically setting it to "".
  434. </para></listitem>
  435. <listitem><para><emphasis><filename>SRC_URI</filename>:</emphasis>
  436. The <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>,
  437. <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>,
  438. <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>,
  439. and <filename>FILE_DIRNAME</filename> directories have been
  440. dropped from the default value of the
  441. <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
  442. variable, which is used as the search path for finding files
  443. referred to in
  444. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
  445. If you have a recipe that relied upon these directories,
  446. which would be unusual, then you will need to add the
  447. appropriate paths within the recipe or, alternatively,
  448. rearrange the files.
  449. The most common locations are still covered by
  450. <filename>${BP}</filename>, <filename>${BPN}</filename>,
  451. and "files", which all remain in the default value of
  452. <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
  453. </para></listitem>
  454. </itemizedlist>
  455. </para>
  456. </section>
  457. <section id='migration-target-package-management-with-rpm'>
  458. <title>Target Package Management with RPM</title>
  459. <para>
  460. If runtime package management is enabled and the RPM backend
  461. is selected, Smart is now installed for package download, dependency
  462. resolution, and upgrades instead of Zypper.
  463. For more information on how to use Smart, run the following command
  464. on the target:
  465. <literallayout class='monospaced'>
  466. smart --help
  467. </literallayout>
  468. </para>
  469. </section>
  470. <section id='migration-1.4-recipes-moved'>
  471. <title>Recipes Moved</title>
  472. <para>
  473. The following recipes were moved from their previous locations
  474. because they are no longer used by anything in
  475. the OpenEmbedded-Core:
  476. <itemizedlist>
  477. <listitem><para><emphasis><filename>clutter-box2d</filename>:</emphasis>
  478. Now resides in the <filename>meta-oe</filename> layer.
  479. </para></listitem>
  480. <listitem><para><emphasis><filename>evolution-data-server</filename>:</emphasis>
  481. Now resides in the <filename>meta-gnome</filename> layer.
  482. </para></listitem>
  483. <listitem><para><emphasis><filename>gthumb</filename>:</emphasis>
  484. Now resides in the <filename>meta-gnome</filename> layer.
  485. </para></listitem>
  486. <listitem><para><emphasis><filename>gtkhtml2</filename>:</emphasis>
  487. Now resides in the <filename>meta-oe</filename> layer.
  488. </para></listitem>
  489. <listitem><para><emphasis><filename>gupnp</filename>:</emphasis>
  490. Now resides in the <filename>meta-multimedia</filename> layer.
  491. </para></listitem>
  492. <listitem><para><emphasis><filename>gypsy</filename>:</emphasis>
  493. Now resides in the <filename>meta-oe</filename> layer.
  494. </para></listitem>
  495. <listitem><para><emphasis><filename>libcanberra</filename>:</emphasis>
  496. Now resides in the <filename>meta-gnome</filename> layer.
  497. </para></listitem>
  498. <listitem><para><emphasis><filename>libgdata</filename>:</emphasis>
  499. Now resides in the <filename>meta-gnome</filename> layer.
  500. </para></listitem>
  501. <listitem><para><emphasis><filename>libmusicbrainz</filename>:</emphasis>
  502. Now resides in the <filename>meta-multimedia</filename> layer.
  503. </para></listitem>
  504. <listitem><para><emphasis><filename>metacity</filename>:</emphasis>
  505. Now resides in the <filename>meta-gnome</filename> layer.
  506. </para></listitem>
  507. <listitem><para><emphasis><filename>polkit</filename>:</emphasis>
  508. Now resides in the <filename>meta-oe</filename> layer.
  509. </para></listitem>
  510. <listitem><para><emphasis><filename>zeroconf</filename>:</emphasis>
  511. Now resides in the <filename>meta-networking</filename> layer.
  512. </para></listitem>
  513. </itemizedlist>
  514. </para>
  515. </section>
  516. <section id='migration-1.4-removals-and-renames'>
  517. <title>Removals and Renames</title>
  518. <para>
  519. The following list shows what has been removed or renamed:
  520. <itemizedlist>
  521. <listitem><para><emphasis><filename>evieext</filename>:</emphasis>
  522. Removed because it has been removed from
  523. <filename>xserver</filename> since 2008.
  524. </para></listitem>
  525. <listitem><para><emphasis>Gtk+ DirectFB:</emphasis>
  526. Removed support because upstream Gtk+ no longer supports it
  527. as of version 2.18.
  528. </para></listitem>
  529. <listitem><para><emphasis><filename>libxfontcache / xfontcacheproto</filename>:</emphasis>
  530. Removed because they were removed from the Xorg server in 2008.
  531. </para></listitem>
  532. <listitem><para><emphasis><filename>libxp / libxprintapputil / libxprintutil / printproto</filename>:</emphasis>
  533. Removed because the XPrint server was removed from
  534. Xorg in 2008.
  535. </para></listitem>
  536. <listitem><para><emphasis><filename>libxtrap / xtrapproto</filename>:</emphasis>
  537. Removed because their functionality was broken upstream.
  538. </para></listitem>
  539. <listitem><para><emphasis>linux-yocto 3.0 kernel:</emphasis>
  540. Removed with linux-yocto 3.8 kernel being added.
  541. The linux-yocto 3.2 and linux-yocto 3.4 kernels remain
  542. as part of the release.
  543. </para></listitem>
  544. <listitem><para><emphasis><filename>lsbsetup</filename>:</emphasis>
  545. Removed with functionality now provided by
  546. <filename>lsbtest</filename>.
  547. </para></listitem>
  548. <listitem><para><emphasis><filename>matchbox-stroke</filename>:</emphasis>
  549. Removed because it was never more than a proof-of-concept.
  550. </para></listitem>
  551. <listitem><para><emphasis><filename>matchbox-wm-2 / matchbox-theme-sato-2</filename>:</emphasis>
  552. Removed because they are not maintained.
  553. However, <filename>matchbox-wm</filename> and
  554. <filename>matchbox-theme-sato</filename> are still
  555. provided.
  556. </para></listitem>
  557. <listitem><para><emphasis><filename>mesa-dri</filename>:</emphasis>
  558. Renamed to <filename>mesa</filename>.
  559. </para></listitem>
  560. <listitem><para><emphasis><filename>mesa-xlib</filename>:</emphasis>
  561. Removed because it was no longer useful.
  562. </para></listitem>
  563. <listitem><para><emphasis><filename>mutter</filename>:</emphasis>
  564. Removed because nothing ever uses it and the recipe is
  565. very old.
  566. </para></listitem>
  567. <listitem><para><emphasis><filename>orinoco-conf</filename>:</emphasis>
  568. Removed because it has become obsolete.
  569. </para></listitem>
  570. <listitem><para><emphasis><filename>update-modules</filename>:</emphasis>
  571. Removed because it is no longer used.
  572. The kernel module <filename>postinstall</filename> and
  573. <filename>postrm</filename> scripts can now do the same
  574. task without the use of this script.
  575. </para></listitem>
  576. <listitem><para><emphasis><filename>web</filename>:</emphasis>
  577. Removed because it is not maintained. Superseded by
  578. <filename>web-webkit</filename>.
  579. </para></listitem>
  580. <listitem><para><emphasis><filename>xf86bigfontproto</filename>:</emphasis>
  581. Removed because upstream it has been disabled by default
  582. since 2007.
  583. Nothing uses <filename>xf86bigfontproto</filename>.
  584. </para></listitem>
  585. <listitem><para><emphasis><filename>xf86rushproto</filename>:</emphasis>
  586. Removed because its dependency in
  587. <filename>xserver</filename> was spurious and it was
  588. removed in 2005.
  589. </para></listitem>
  590. <listitem><para><emphasis><filename>zypper / libzypp / sat-solver</filename>:</emphasis>
  591. Removed and been functionally replaced with Smart
  592. (<filename>python-smartpm</filename>) when RPM packaging
  593. is used and package management is enabled on the target.
  594. </para></listitem>
  595. </itemizedlist>
  596. </para>
  597. </section>
  598. </section>
  599. <section id='moving-to-the-yocto-project-1.5-release'>
  600. <title>Moving to the Yocto Project 1.5 Release</title>
  601. <para>
  602. This section provides migration information for moving to the
  603. Yocto Project 1.5 Release from the prior release.
  604. </para>
  605. <section id='migration-1.5-host-dependency-changes'>
  606. <title>Host Dependency Changes</title>
  607. <para>
  608. The OpenEmbedded build system now has some additional requirements
  609. on the host system:
  610. <itemizedlist>
  611. <listitem><para>Python 2.7.3+</para></listitem>
  612. <listitem><para>Tar 1.24+</para></listitem>
  613. <listitem><para>Git 1.7.8+</para></listitem>
  614. <listitem><para>Patched version of Make if you are using
  615. 3.82.
  616. Most distributions that provide Make 3.82 use the patched
  617. version.</para></listitem>
  618. </itemizedlist>
  619. If the Linux distribution you are using on your build host
  620. does not provide packages for these, you can install and use
  621. the Buildtools tarball, which provides an SDK-like environment
  622. containing them.
  623. </para>
  624. <para>
  625. For more information on this requirement, see the
  626. "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
  627. section.
  628. </para>
  629. </section>
  630. <section id='migration-1.5-atom-pc-bsp'>
  631. <title><filename>atom-pc</filename> Board Support Package (BSP)</title>
  632. <para>
  633. The <filename>atom-pc</filename> hardware reference BSP has been
  634. replaced by a <filename>genericx86</filename> BSP.
  635. This BSP is not necessarily guaranteed to work on all x86
  636. hardware, but it will run on a wider range of systems than the
  637. <filename>atom-pc</filename> did.
  638. <note>
  639. Additionally, a <filename>genericx86-64</filename> BSP has
  640. been added for 64-bit Atom systems.
  641. </note>
  642. </para>
  643. </section>
  644. <section id='migration-1.5-bitbake'>
  645. <title>BitBake</title>
  646. <para>
  647. The following changes have been made that relate to BitBake:
  648. <itemizedlist>
  649. <listitem><para>
  650. BitBake now supports a <filename>_remove</filename>
  651. operator.
  652. The addition of this operator means you will have to
  653. rename any items in recipe space (functions, variables)
  654. whose names currently contain
  655. <filename>_remove_</filename> or end with
  656. <filename>_remove</filename> to avoid unexpected behavior.
  657. </para></listitem>
  658. <listitem><para>
  659. BitBake's global method pool has been removed.
  660. This method is not particularly useful and led to clashes
  661. between recipes containing functions that had the
  662. same name.</para></listitem>
  663. <listitem><para>
  664. The "none" server backend has been removed.
  665. The "process" server backend has been serving well as the
  666. default for a long time now.</para></listitem>
  667. <listitem><para>
  668. The <filename>bitbake-runtask</filename> script has been
  669. removed.</para></listitem>
  670. <listitem><para>
  671. <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>
  672. and
  673. <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>
  674. are no longer added to
  675. <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
  676. by default in <filename>bitbake.conf</filename>.
  677. These version-specific <filename>PROVIDES</filename>
  678. items were seldom used.
  679. Attempting to use them could result in two versions being
  680. built simultaneously rather than just one version due to
  681. the way BitBake resolves dependencies.</para></listitem>
  682. </itemizedlist>
  683. </para>
  684. </section>
  685. <section id='migration-1.5-qa-warnings'>
  686. <title>QA Warnings</title>
  687. <para>
  688. The following changes have been made to the package QA checks:
  689. <itemizedlist>
  690. <listitem><para>
  691. If you have customized
  692. <link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link>
  693. or <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link>
  694. values in your configuration, check that they contain all of
  695. the issues that you wish to be reported.
  696. Previous Yocto Project versions contained a bug that meant
  697. that any item not mentioned in <filename>ERROR_QA</filename>
  698. or <filename>WARN_QA</filename> would be treated as a
  699. warning.
  700. Consequently, several important items were not already in
  701. the default value of <filename>WARN_QA</filename>.
  702. All of the possible QA checks are now documented in the
  703. "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
  704. section.</para></listitem>
  705. <listitem><para>
  706. An additional QA check has been added to check if
  707. <filename>/usr/share/info/dir</filename> is being installed.
  708. Your recipe should delete this file within
  709. <link linkend='ref-tasks-install'><filename>do_install</filename></link>
  710. if "make install" is installing it.
  711. </para></listitem>
  712. <listitem><para>
  713. If you are using the buildhistory class, the check for the
  714. package version going backwards is now controlled using a
  715. standard QA check.
  716. Thus, if you have customized your
  717. <filename>ERROR_QA</filename> or
  718. <filename>WARN_QA</filename> values and still wish to have
  719. this check performed, you should add
  720. "version-going-backwards" to your value for one or the
  721. other variables depending on how you wish it to be handled.
  722. See the documented QA checks in the
  723. "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
  724. section.
  725. </para></listitem>
  726. </itemizedlist>
  727. </para>
  728. </section>
  729. <section id='migration-1.5-directory-layout-changes'>
  730. <title>Directory Layout Changes</title>
  731. <para>
  732. The following directory changes exist:
  733. <itemizedlist>
  734. <listitem><para>
  735. Output SDK installer files are now named to include the
  736. image name and tuning architecture through the
  737. <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
  738. variable.</para></listitem>
  739. <listitem><para>
  740. Images and related files are now installed into a directory
  741. that is specific to the machine, instead of a parent
  742. directory containing output files for multiple machines.
  743. The
  744. <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
  745. variable continues to point to the directory containing
  746. images for the current
  747. <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
  748. and should be used anywhere there is a need to refer to
  749. this directory.
  750. The <filename>runqemu</filename> script now uses this
  751. variable to find images and kernel binaries and will use
  752. BitBake to determine the directory.
  753. Alternatively, you can set the
  754. <filename>DEPLOY_DIR_IMAGE</filename> variable in the
  755. external environment.</para></listitem>
  756. <listitem><para>
  757. When buildhistory is enabled, its output is now written
  758. under the
  759. <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
  760. rather than
  761. <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>.
  762. Doing so makes it easier to delete
  763. <filename>TMPDIR</filename> and preserve the build history.
  764. Additionally, data for produced SDKs is now split by
  765. <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>.
  766. </para></listitem>
  767. <listitem><para>
  768. The <filename>pkgdata</filename> directory produced as
  769. part of the packaging process has been collapsed into a
  770. single machine-specific directory.
  771. This directory is located under
  772. <filename>sysroots</filename> and uses a machine-specific
  773. name (i.e.
  774. <filename>tmp/sysroots/<replaceable>machine</replaceable>/pkgdata</filename>).
  775. </para></listitem>
  776. </itemizedlist>
  777. </para>
  778. </section>
  779. <section id='migration-1.5-shortened-git-srcrev-values'>
  780. <title>Shortened Git <filename>SRCREV</filename> Values</title>
  781. <para>
  782. BitBake will now shorten revisions from Git repositories from the
  783. normal 40 characters down to 10 characters within
  784. <link linkend='var-SRCPV'><filename>SRCPV</filename></link>
  785. for improved usability in path and file names.
  786. This change should be safe within contexts where these revisions
  787. are used because the chances of spatially close collisions
  788. is very low.
  789. Distant collisions are not a major issue in the way
  790. the values are used.
  791. </para>
  792. </section>
  793. <section id='migration-1.5-image-features'>
  794. <title><filename>IMAGE_FEATURES</filename></title>
  795. <para>
  796. The following changes have been made that relate to
  797. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>:
  798. <itemizedlist>
  799. <listitem><para>
  800. The value of
  801. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
  802. is now validated to ensure invalid feature items are not
  803. added.
  804. Some users mistakenly add package names to this variable
  805. instead of using
  806. <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
  807. in order to have the package added to the image, which does
  808. not work.
  809. This change is intended to catch those kinds of situations.
  810. Valid <filename>IMAGE_FEATURES</filename> are drawn from
  811. <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
  812. definitions,
  813. <link linkend='var-COMPLEMENTARY_GLOB'><filename>COMPLEMENTARY_GLOB</filename></link>
  814. and a new "validitems" varflag on
  815. <filename>IMAGE_FEATURES</filename>.
  816. The "validitems" varflag change allows additional features
  817. to be added if they are not provided using the previous
  818. two mechanisms.
  819. </para></listitem>
  820. <listitem><para>
  821. The previously deprecated "apps-console-core"
  822. <filename>IMAGE_FEATURES</filename> item is no longer
  823. supported.
  824. Add "splash" to <filename>IMAGE_FEATURES</filename> if you
  825. wish to have the splash screen enabled, since this is
  826. all that apps-console-core was doing.</para></listitem>
  827. </itemizedlist>
  828. </para>
  829. </section>
  830. <section id='migration-1.5-run'>
  831. <title><filename>/run</filename></title>
  832. <para>
  833. The <filename>/run</filename> directory from the Filesystem
  834. Hierarchy Standard 3.0 has been introduced.
  835. You can find some of the implications for this change
  836. <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873'>here</ulink>.
  837. The change also means that recipes that install files to
  838. <filename>/var/run</filename> must be changed.
  839. You can find a guide on how to make these changes
  840. <ulink url='http://permalink.gmane.org/gmane.comp.handhelds.openembedded/58530'>here</ulink>.
  841. </para>
  842. </section>
  843. <section id='migration-1.5-removal-of-package-manager-database-within-image-recipes'>
  844. <title>Removal of Package Manager Database Within Image Recipes</title>
  845. <para>
  846. The image <filename>core-image-minimal</filename> no longer adds
  847. <filename>remove_packaging_data_files</filename> to
  848. <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>.
  849. This addition is now handled automatically when "package-management"
  850. is not in
  851. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
  852. If you have custom image recipes that make this addition,
  853. you should remove the lines, as they are not needed and might
  854. interfere with correct operation of postinstall scripts.
  855. </para>
  856. </section>
  857. <section id='migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time'>
  858. <title>Images Now Rebuild Only on Changes Instead of Every Time</title>
  859. <para>
  860. The
  861. <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
  862. and other related image
  863. construction tasks are no longer marked as "nostamp".
  864. Consequently, they will only be re-executed when their inputs have
  865. changed.
  866. Previous versions of the OpenEmbedded build system always rebuilt
  867. the image when requested rather when necessary.
  868. </para>
  869. </section>
  870. <section id='migration-1.5-task-recipes'>
  871. <title>Task Recipes</title>
  872. <para>
  873. The previously deprecated <filename>task.bbclass</filename> has
  874. now been dropped.
  875. For recipes that previously inherited from this class, you should
  876. rename them from <filename>task-*</filename> to
  877. <filename>packagegroup-*</filename> and inherit packagegroup
  878. instead.
  879. </para>
  880. <para>
  881. For more information, see the
  882. "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>"
  883. section.
  884. </para>
  885. </section>
  886. <section id='migration-1.5-busybox'>
  887. <title>BusyBox</title>
  888. <para>
  889. By default, we now split BusyBox into two binaries:
  890. one that is suid root for those components that need it, and
  891. another for the rest of the components.
  892. Splitting BusyBox allows for optimization that eliminates the
  893. <filename>tinylogin</filename> recipe as recommended by upstream.
  894. You can disable this split by setting
  895. <link linkend='var-BUSYBOX_SPLIT_SUID'><filename>BUSYBOX_SPLIT_SUID</filename></link>
  896. to "0".
  897. </para>
  898. </section>
  899. <section id='migration-1.5-automated-image-testing'>
  900. <title>Automated Image Testing</title>
  901. <para>
  902. A new automated image testing framework has been added
  903. through the
  904. <link linkend='ref-classes-testimage*'><filename>testimage.bbclass</filename></link>
  905. class.
  906. This framework replaces the older
  907. <filename>imagetest-qemu</filename> framework.
  908. </para>
  909. <para>
  910. You can learn more about performing automated image tests in the
  911. "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
  912. section.
  913. </para>
  914. </section>
  915. <section id='migration-1.5-build-history'>
  916. <title>Build History</title>
  917. <para>
  918. Following are changes to Build History:
  919. <itemizedlist>
  920. <listitem><para>
  921. Installed package sizes:
  922. <filename>installed-package-sizes.txt</filename> for an
  923. image now records the size of the files installed by each
  924. package instead of the size of each compressed package
  925. archive file.</para></listitem>
  926. <listitem><para>
  927. The dependency graphs (<filename>depends*.dot</filename>)
  928. now use the actual package names instead of replacing
  929. dashes, dots and plus signs with underscores.
  930. </para></listitem>
  931. <listitem><para>
  932. The <filename>buildhistory-diff</filename> and
  933. <filename>buildhistory-collect-srcrevs</filename>
  934. utilities have improved command-line handling.
  935. Use the <filename>--help</filename> option for
  936. each utility for more information on the new syntax.
  937. </para></listitem>
  938. </itemizedlist>
  939. For more information on Build History, see the
  940. "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
  941. section.
  942. </para>
  943. </section>
  944. <section id='migration-1.5-udev'>
  945. <title><filename>udev</filename></title>
  946. <para>
  947. Following are changes to <filename>udev</filename>:
  948. <itemizedlist>
  949. <listitem><para>
  950. <filename>udev</filename> no longer brings in
  951. <filename>udev-extraconf</filename> automatically
  952. through
  953. <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
  954. since this was originally intended to be optional.
  955. If you need the extra rules, then add
  956. <filename>udev-extraconf</filename> to your image.
  957. </para></listitem>
  958. <listitem><para>
  959. <filename>udev</filename> no longer brings in
  960. <filename>pciutils-ids</filename> or
  961. <filename>usbutils-ids</filename> through
  962. <filename>RRECOMMENDS</filename>.
  963. These are not needed by <filename>udev</filename> itself
  964. and removing them saves around 350KB.
  965. </para></listitem>
  966. </itemizedlist>
  967. </para>
  968. </section>
  969. <section id='migration-1.5-removed-renamed-recipes'>
  970. <title>Removed and Renamed Recipes</title>
  971. <itemizedlist>
  972. <listitem><para>
  973. The <filename>linux-yocto</filename> 3.2 kernel has been
  974. removed.</para></listitem>
  975. <listitem><para>
  976. <filename>libtool-nativesdk</filename> has been renamed to
  977. <filename>nativesdk-libtool</filename>.</para></listitem>
  978. <listitem><para>
  979. <filename>tinylogin</filename> has been removed.
  980. It has been replaced by a suid portion of Busybox.
  981. See the
  982. "<link linkend='migration-1.5-busybox'>BusyBox</link>" section
  983. for more information.</para></listitem>
  984. <listitem><para>
  985. <filename>external-python-tarball</filename> has been renamed
  986. to <filename>buildtools-tarball</filename>.
  987. </para></listitem>
  988. <listitem><para>
  989. <filename>web-webkit</filename> has been removed.
  990. It has been functionally replaced by
  991. <filename>midori</filename>.</para></listitem>
  992. <listitem><para>
  993. <filename>imake</filename> has been removed.
  994. It is no longer needed by any other recipe.
  995. </para></listitem>
  996. <listitem><para>
  997. <filename>transfig-native</filename> has been removed.
  998. It is no longer needed by any other recipe.
  999. </para></listitem>
  1000. <listitem><para>
  1001. <filename>anjuta-remote-run</filename> has been removed.
  1002. Anjuta IDE integration has not been officially supported for
  1003. several releases.</para></listitem>
  1004. </itemizedlist>
  1005. </section>
  1006. <section id='migration-1.5-other-changes'>
  1007. <title>Other Changes</title>
  1008. <para>
  1009. Following is a list of short entries describing other changes:
  1010. <itemizedlist>
  1011. <listitem><para>
  1012. <filename>run-postinsts</filename>: Make this generic.
  1013. </para></listitem>
  1014. <listitem><para>
  1015. <filename>base-files</filename>: Remove the unnecessary
  1016. <filename>media/</filename><replaceable>xxx</replaceable> directories.
  1017. </para></listitem>
  1018. <listitem><para>
  1019. <filename>alsa-state</filename>: Provide an empty
  1020. <filename>asound.conf</filename> by default.
  1021. </para></listitem>
  1022. <listitem><para>
  1023. <filename>classes/image</filename>: Ensure
  1024. <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
  1025. supports pre-renamed package names.</para></listitem>
  1026. <listitem><para>
  1027. <filename>classes/rootfs_rpm</filename>: Implement
  1028. <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
  1029. for RPM.</para></listitem>
  1030. <listitem><para>
  1031. <filename>systemd</filename>: Remove
  1032. <filename>systemd_unitdir</filename> if
  1033. <filename>systemd</filename> is not in
  1034. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
  1035. </para></listitem>
  1036. <listitem><para>
  1037. <filename>systemd</filename>: Remove
  1038. <filename>init.d</filename> dir if
  1039. <filename>systemd</filename> unit file is present and
  1040. <filename>sysvinit</filename> is not a distro feature.
  1041. </para></listitem>
  1042. <listitem><para>
  1043. <filename>libpam</filename>: Deny all services for the
  1044. <filename>OTHER</filename> entries.
  1045. </para></listitem>
  1046. <listitem><para>
  1047. <filename>image.bbclass</filename>: Move
  1048. <filename>runtime_mapping_rename</filename> to avoid
  1049. conflict with <filename>multilib</filename>.
  1050. See
  1051. <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=4993'><filename>YOCTO #4993</filename></ulink>
  1052. in Bugzilla for more information.
  1053. </para></listitem>
  1054. <listitem><para>
  1055. <filename>linux-dtb</filename>: Use kernel build system
  1056. to generate the <filename>dtb</filename> files.
  1057. </para></listitem>
  1058. <listitem><para>
  1059. <filename>kern-tools</filename>: Switch from guilt to
  1060. new <filename>kgit-s2q</filename> tool.
  1061. </para></listitem>
  1062. </itemizedlist>
  1063. </para>
  1064. </section>
  1065. </section>
  1066. <section id='moving-to-the-yocto-project-1.6-release'>
  1067. <title>Moving to the Yocto Project 1.6 Release</title>
  1068. <para>
  1069. This section provides migration information for moving to the
  1070. Yocto Project 1.6 Release from the prior release.
  1071. </para>
  1072. <section id='migration-1.6-archiver-class'>
  1073. <title><filename>archiver</filename> Class</title>
  1074. <para>
  1075. The
  1076. <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
  1077. class has been rewritten and its configuration has been simplified.
  1078. For more details on the source archiver, see the
  1079. "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle'>Maintaining Open Source License Compliance During Your Product's Lifecycle</ulink>"
  1080. section in the Yocto Project Development Manual.
  1081. </para>
  1082. </section>
  1083. <section id='migration-1.6-packaging-changes'>
  1084. <title>Packaging Changes</title>
  1085. <para>
  1086. The following packaging changes have been made:
  1087. <itemizedlist>
  1088. <listitem><para>
  1089. The <filename>binutils</filename> recipe no longer produces
  1090. a <filename>binutils-symlinks</filename> package.
  1091. <filename>update-alternatives</filename> is now used to
  1092. handle the preferred <filename>binutils</filename>
  1093. variant on the target instead.
  1094. </para></listitem>
  1095. <listitem><para>
  1096. The tc (traffic control) utilities have been split out of
  1097. the main <filename>iproute2</filename> package and put
  1098. into the <filename>iproute2-tc</filename> package.
  1099. </para></listitem>
  1100. <listitem><para>
  1101. The <filename>gtk-engines</filename> schemas have been
  1102. moved to a dedicated
  1103. <filename>gtk-engines-schemas</filename> package.
  1104. </para></listitem>
  1105. <listitem><para>
  1106. The <filename>armv7a</filename> with thumb package
  1107. architecture suffix has changed.
  1108. The suffix for these packages with the thumb
  1109. optimization enabled is "t2" as it should be.
  1110. Use of this suffix was not the case in the 1.5 release.
  1111. Architecture names will change within package feeds as a
  1112. result.
  1113. </para></listitem>
  1114. </itemizedlist>
  1115. </para>
  1116. </section>
  1117. <section id='migration-1.6-bitbake'>
  1118. <title>BitBake</title>
  1119. <para>
  1120. The following changes have been made to
  1121. <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>.
  1122. </para>
  1123. <section id='migration-1.6-matching-branch-requirement-for-git-fetching'>
  1124. <title>Matching Branch Requirement for Git Fetching</title>
  1125. <para>
  1126. When fetching source from a Git repository using
  1127. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
  1128. BitBake will now validate the
  1129. <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
  1130. value against the branch.
  1131. You can specify the branch using the following form:
  1132. <literallayout class='monospaced'>
  1133. SRC_URI = "git://server.name/repository;branch=<replaceable>branchname</replaceable>"
  1134. </literallayout>
  1135. If you do not specify a branch, BitBake looks
  1136. in the default "master" branch.
  1137. </para>
  1138. <para>
  1139. Alternatively, if you need to bypass this check (e.g.
  1140. if you are fetching a revision corresponding to a tag that
  1141. is not on any branch), you can add ";nobranch=1" to
  1142. the end of the URL within <filename>SRC_URI</filename>.
  1143. </para>
  1144. </section>
  1145. <section id='migration-1.6-bitbake-deps'>
  1146. <title>Python Definition substitutions</title>
  1147. <para>
  1148. BitBake had some previously deprecated Python definitions
  1149. within its <filename>bb</filename> module removed.
  1150. You should use their sub-module counterparts instead:
  1151. <itemizedlist>
  1152. <listitem><para><filename>bb.MalformedUrl</filename>:
  1153. Use <filename>bb.fetch.MalformedUrl</filename>.
  1154. </para></listitem>
  1155. <listitem><para><filename>bb.encodeurl</filename>:
  1156. Use <filename>bb.fetch.encodeurl</filename>.
  1157. </para></listitem>
  1158. <listitem><para><filename>bb.decodeurl</filename>:
  1159. Use <filename>bb.fetch.decodeurl</filename>
  1160. </para></listitem>
  1161. <listitem><para><filename>bb.mkdirhier</filename>:
  1162. Use <filename>bb.utils.mkdirhier</filename>.
  1163. </para></listitem>
  1164. <listitem><para><filename>bb.movefile</filename>:
  1165. Use <filename>bb.utils.movefile</filename>.
  1166. </para></listitem>
  1167. <listitem><para><filename>bb.copyfile</filename>:
  1168. Use <filename>bb.utils.copyfile</filename>.
  1169. </para></listitem>
  1170. <listitem><para><filename>bb.which</filename>:
  1171. Use <filename>bb.utils.which</filename>.
  1172. </para></listitem>
  1173. <listitem><para><filename>bb.vercmp_string</filename>:
  1174. Use <filename>bb.utils.vercmp_string</filename>.
  1175. </para></listitem>
  1176. <listitem><para><filename>bb.vercmp</filename>:
  1177. Use <filename>bb.utils.vercmp</filename>.
  1178. </para></listitem>
  1179. </itemizedlist>
  1180. </para>
  1181. </section>
  1182. <section id='migration-1.6-bitbake-fetcher'>
  1183. <title>SVK Fetcher</title>
  1184. <para>
  1185. The SVK fetcher has been removed from BitBake.
  1186. </para>
  1187. </section>
  1188. <section id='migration-1.6-bitbake-console-output'>
  1189. <title>Console Output Error Redirection</title>
  1190. <para>
  1191. The BitBake console UI will now output errors to
  1192. <filename>stderr</filename> instead of
  1193. <filename>stdout</filename>.
  1194. Consequently, if you are piping or redirecting the output of
  1195. <filename>bitbake</filename> to somewhere else, and you wish
  1196. to retain the errors, you will need to add
  1197. <filename>2>&amp;1</filename> (or something similar) to the
  1198. end of your <filename>bitbake</filename> command line.
  1199. </para>
  1200. </section>
  1201. <section id='migration-1.6-task-taskname-overrides'>
  1202. <title><filename>task-</filename><replaceable>taskname</replaceable> Overrides</title>
  1203. <para>
  1204. <filename>task-</filename><replaceable>taskname</replaceable> overrides have been
  1205. adjusted so that tasks whose names contain underscores have the
  1206. underscores replaced by hyphens for the override so that they
  1207. now function properly.
  1208. For example, the task override for
  1209. <link linkend='ref-tasks-populate_sdk'><filename>do_populate_sdk</filename></link>
  1210. is <filename>task-populate-sdk</filename>.
  1211. </para>
  1212. </section>
  1213. </section>
  1214. <section id='migration-1.6-variable-changes'>
  1215. <title>Changes to Variables</title>
  1216. <para>
  1217. The following variables have changed.
  1218. For information on the OpenEmbedded build system variables, see the
  1219. "<link linkend='ref-variables-glos'>Variables Glossary</link>" Chapter.
  1220. </para>
  1221. <section id='migration-1.6-variable-changes-TMPDIR'>
  1222. <title><filename>TMPDIR</filename></title>
  1223. <para>
  1224. <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
  1225. can no longer be on an NFS mount.
  1226. NFS does not offer full POSIX locking and inode consistency
  1227. and can cause unexpected issues if used to store
  1228. <filename>TMPDIR</filename>.
  1229. </para>
  1230. <para>
  1231. The check for this occurs on startup.
  1232. If <filename>TMPDIR</filename> is detected on an NFS mount,
  1233. an error occurs.
  1234. </para>
  1235. </section>
  1236. <section id='migration-1.6-variable-changes-PRINC'>
  1237. <title><filename>PRINC</filename></title>
  1238. <para>
  1239. The <filename>PRINC</filename>
  1240. variable has been deprecated and triggers a warning if
  1241. detected during a build.
  1242. For
  1243. <link linkend='var-PR'><filename>PR</filename></link>
  1244. increments on changes, use the PR service instead.
  1245. You can find out more about this service in the
  1246. "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
  1247. section in the Yocto Project Development Manual.
  1248. </para>
  1249. </section>
  1250. <section id='migration-1.6-variable-changes-IMAGE_TYPES'>
  1251. <title><filename>IMAGE_TYPES</filename></title>
  1252. <para>
  1253. The "sum.jffs2" option for
  1254. <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>
  1255. has been replaced by the "jffs2.sum" option, which fits the
  1256. processing order.
  1257. </para>
  1258. </section>
  1259. <section id='migration-1.6-variable-changes-COPY_LIC_MANIFEST'>
  1260. <title><filename>COPY_LIC_MANIFEST</filename></title>
  1261. <para>
  1262. The
  1263. <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
  1264. variable must
  1265. now be set to "1" rather than any value in order to enable
  1266. it.
  1267. </para>
  1268. </section>
  1269. <section id='migration-1.6-variable-changes-COPY_LIC_DIRS'>
  1270. <title><filename>COPY_LIC_DIRS</filename></title>
  1271. <para>
  1272. The
  1273. <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
  1274. variable must
  1275. now be set to "1" rather than any value in order to enable
  1276. it.
  1277. </para>
  1278. </section>
  1279. <section id='migration-1.6-variable-changes-PACKAGE_GROUP'>
  1280. <title><filename>PACKAGE_GROUP</filename></title>
  1281. <para>
  1282. The
  1283. <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
  1284. variable has been renamed to
  1285. <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>
  1286. to more accurately reflect its purpose.
  1287. You can still use <filename>PACKAGE_GROUP</filename> but
  1288. the OpenEmbedded build system produces a warning message when
  1289. it encounters the variable.
  1290. </para>
  1291. </section>
  1292. <section id='migration-1.6-variable-changes-variable-entry-behavior'>
  1293. <title>Preprocess and Post Process Command Variable Behavior</title>
  1294. <para>
  1295. The following variables now expect a semicolon separated
  1296. list of functions to call and not arbitrary shell commands:
  1297. <literallayout class='monospaced'>
  1298. <link linkend='var-ROOTFS_PREPROCESS_COMMAND'>ROOTFS_PREPROCESS_COMMAND</link>
  1299. <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'>ROOTFS_POSTPROCESS_COMMAND</link>
  1300. <link linkend='var-SDK_POSTPROCESS_COMMAND'>SDK_POSTPROCESS_COMMAND</link>
  1301. <link linkend='var-POPULATE_SDK_POST_TARGET_COMMAND'>POPULATE_SDK_POST_TARGET_COMMAND</link>
  1302. <link linkend='var-POPULATE_SDK_POST_HOST_COMMAND'>POPULATE_SDK_POST_HOST_COMMAND</link>
  1303. <link linkend='var-IMAGE_POSTPROCESS_COMMAND'>IMAGE_POSTPROCESS_COMMAND</link>
  1304. <link linkend='var-IMAGE_PREPROCESS_COMMAND'>IMAGE_PREPROCESS_COMMAND</link>
  1305. <link linkend='var-ROOTFS_POSTUNINSTALL_COMMAND'>ROOTFS_POSTUNINSTALL_COMMAND</link>
  1306. <link linkend='var-ROOTFS_POSTINSTALL_COMMAND'>ROOTFS_POSTINSTALL_COMMAND</link>
  1307. </literallayout>
  1308. For migration purposes, you can simply wrap shell commands in
  1309. a shell function and then call the function.
  1310. Here is an example:
  1311. <literallayout class='monospaced'>
  1312. my_postprocess_function() {
  1313. echo "hello" > ${IMAGE_ROOTFS}/hello.txt
  1314. }
  1315. ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "
  1316. </literallayout>
  1317. </para>
  1318. </section>
  1319. </section>
  1320. <section id='migration-1.6-package-test-ptest'>
  1321. <title>Package Test (ptest)</title>
  1322. <para>
  1323. Package Tests (ptest) are built but not installed by default.
  1324. For information on using Package Tests, see the
  1325. "<ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Setting up and running package test (ptest)</ulink>"
  1326. section in the Yocto Project Development Manual.
  1327. For information on the <filename>ptest</filename> class, see the
  1328. "<link linkend='ref-classes-ptest'><filename>ptest.bbclass</filename></link>"
  1329. section.
  1330. </para>
  1331. </section>
  1332. <section id='migration-1.6-build-changes'>
  1333. <title>Build Changes</title>
  1334. <para>
  1335. Separate build and source directories have been enabled
  1336. by default for selected recipes where it is known to work
  1337. (a whitelist) and for all recipes that inherit the
  1338. <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
  1339. class.
  1340. In future releases the
  1341. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  1342. class will enable a separate build directory by default as
  1343. well.
  1344. Recipes building Autotools-based
  1345. software that fails to build with a separate build directory
  1346. should be changed to inherit from the
  1347. <link linkend='ref-classes-autotools'><filename>autotools-brokensep</filename></link>
  1348. class instead of the <filename>autotools</filename> or
  1349. <filename>autotools_stage</filename>classes.
  1350. </para>
  1351. </section>
  1352. <section id='migration-1.6-building-qemu-native'>
  1353. <title><filename>qemu-native</filename></title>
  1354. <para>
  1355. <filename>qemu-native</filename> now builds without
  1356. SDL-based graphical output support by default.
  1357. The following additional lines are needed in your
  1358. <filename>local.conf</filename> to enable it:
  1359. <literallayout class='monospaced'>
  1360. PACKAGECONFIG_pn-qemu-native = "sdl"
  1361. ASSUME_PROVIDED += "libsdl-native"
  1362. </literallayout>
  1363. <note>
  1364. The default <filename>local.conf</filename>
  1365. contains these statements.
  1366. Consequently, if you are building a headless system and using
  1367. a default <filename>local.conf</filename> file, you will need
  1368. comment these two lines out.
  1369. </note>
  1370. </para>
  1371. </section>
  1372. <section id='migration-1.6-core-image-basic'>
  1373. <title><filename>core-image-basic</filename></title>
  1374. <para>
  1375. <filename>core-image-basic</filename> has been renamed to
  1376. <filename>core-image-full-cmdline</filename>.
  1377. </para>
  1378. <para>
  1379. In addition to <filename>core-image-basic</filename> being renamed,
  1380. <filename>packagegroup-core-basic</filename> has been renamed to
  1381. <filename>packagegroup-core-full-cmdline</filename> to match.
  1382. </para>
  1383. </section>
  1384. <section id='migration-1.6-licensing'>
  1385. <title>Licensing</title>
  1386. <para>
  1387. The top-level <filename>LICENSE</filename> file has been changed
  1388. to better describe the license of the various components of
  1389. OE-Core.
  1390. However, the licensing itself remains unchanged.
  1391. </para>
  1392. <para>
  1393. Normally, this change would not cause any side-effects.
  1394. However, some recipes point to this file within
  1395. <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
  1396. (as <filename>${COREBASE}/LICENSE</filename>) and thus the
  1397. accompanying checksum must be changed from
  1398. 3f40d7994397109285ec7b81fdeb3b58 to
  1399. 4d92cd373abda3937c2bc47fbc49d690.
  1400. A better alternative is to have
  1401. <filename>LIC_FILES_CHKSUM</filename> point to a file
  1402. describing the license that is distributed with the source
  1403. that the recipe is building, if possible, rather than pointing
  1404. to <filename>${COREBASE}/LICENSE</filename>.
  1405. </para>
  1406. </section>
  1407. <section id='migration-1.6-cflags-options'>
  1408. <title><filename>CFLAGS</filename> Options</title>
  1409. <para>
  1410. The "-fpermissive" option has been removed from the default
  1411. <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
  1412. value.
  1413. You need to take action on individual recipes that fail when
  1414. building with this option.
  1415. You need to either patch the recipes to fix the issues reported by
  1416. the compiler, or you need to add "-fpermissive" to
  1417. <filename>CFLAGS</filename> in the recipes.
  1418. </para>
  1419. </section>
  1420. <section id='migration-1.6-custom-images'>
  1421. <title>Custom Image Output Types</title>
  1422. <para>
  1423. Custom image output types, as selected using
  1424. <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
  1425. must declare their dependencies on other image types (if any) using
  1426. a new
  1427. <link linkend='var-IMAGE_TYPEDEP'><filename>IMAGE_TYPEDEP</filename></link>
  1428. variable.
  1429. </para>
  1430. </section>
  1431. <section id='migration-1.6-do-package-write-task'>
  1432. <title>Tasks</title>
  1433. <para>
  1434. The <filename>do_package_write</filename> task has been removed.
  1435. The task is no longer needed.
  1436. </para>
  1437. </section>
  1438. <section id='migration-1.6-update-alternatives-provider'>
  1439. <title><filename>update-alternative</filename> Provider</title>
  1440. <para>
  1441. The default <filename>update-alternatives</filename> provider has
  1442. been changed from <filename>opkg</filename> to
  1443. <filename>opkg-utils</filename>.
  1444. This change resolves some troublesome circular dependencies.
  1445. The runtime package has also been renamed from
  1446. <filename>update-alternatives-cworth</filename>
  1447. to <filename>update-alternatives-opkg</filename>.
  1448. </para>
  1449. </section>
  1450. <section id='migration-1.6-virtclass-overrides'>
  1451. <title><filename>virtclass</filename> Overrides</title>
  1452. <para>
  1453. The <filename>virtclass</filename> overrides are now deprecated.
  1454. Use the equivalent class overrides instead (e.g.
  1455. <filename>virtclass-native</filename> becomes
  1456. <filename>class-native</filename>.)
  1457. </para>
  1458. </section>
  1459. <section id='migration-1.6-removed-renamed-recipes'>
  1460. <title>Removed and Renamed Recipes</title>
  1461. <para>
  1462. The following recipes have been removed:
  1463. <itemizedlist>
  1464. <listitem><para><filename>packagegroup-toolset-native</filename> -
  1465. This recipe is largely unused.
  1466. </para></listitem>
  1467. <listitem><para><filename>linux-yocto-3.8</filename> -
  1468. Support for the Linux yocto 3.8 kernel has been dropped.
  1469. Support for the 3.10 and 3.14 kernels have been added
  1470. with the <filename>linux-yocto-3.10</filename> and
  1471. <filename>linux-yocto-3.14</filename> recipes.
  1472. </para></listitem>
  1473. <listitem><para><filename>ocf-linux</filename> -
  1474. This recipe has been functionally replaced using
  1475. <filename>cryptodev-linux</filename>.
  1476. </para></listitem>
  1477. <listitem><para><filename>genext2fs</filename> -
  1478. <filename>genext2fs</filename> is no longer used by the
  1479. build system and is unmaintained upstream.
  1480. </para></listitem>
  1481. <listitem><para><filename>js</filename> -
  1482. This provided an ancient version of Mozilla's javascript
  1483. engine that is no longer needed.
  1484. </para></listitem>
  1485. <listitem><para><filename>zaurusd</filename> -
  1486. The recipe has been moved to the
  1487. <filename>meta-handheld</filename> layer.
  1488. </para></listitem>
  1489. <listitem><para><filename>eglibc 2.17</filename> -
  1490. Replaced by the <filename>eglibc 2.19</filename>
  1491. recipe.
  1492. </para></listitem>
  1493. <listitem><para><filename>gcc 4.7.2</filename> -
  1494. Replaced by the now stable
  1495. <filename>gcc 4.8.2</filename>.
  1496. </para></listitem>
  1497. <listitem><para><filename>external-sourcery-toolchain</filename> -
  1498. this recipe is now maintained in the
  1499. <filename>meta-sourcery</filename> layer.
  1500. </para></listitem>
  1501. <listitem><para><filename>linux-libc-headers-yocto 3.4+git</filename> -
  1502. Now using version 3.10 of the
  1503. <filename>linux-libc-headers</filename> by default.
  1504. </para></listitem>
  1505. <listitem><para><filename>meta-toolchain-gmae</filename> -
  1506. This recipe is obsolete.
  1507. </para></listitem>
  1508. <listitem><para><filename>packagegroup-core-sdk-gmae</filename> -
  1509. This recipe is obsolete.
  1510. </para></listitem>
  1511. <listitem><para><filename>packagegroup-core-standalone-gmae-sdk-target</filename> -
  1512. This recipe is obsolete.
  1513. </para></listitem>
  1514. </itemizedlist>
  1515. </para>
  1516. </section>
  1517. <section id='migration-1.6-removed-classes'>
  1518. <title>Removed Classes</title>
  1519. <para>
  1520. The following classes have become obsolete and have been removed:
  1521. <itemizedlist>
  1522. <listitem><para><filename>module_strip</filename>
  1523. </para></listitem>
  1524. <listitem><para><filename>pkg_metainfo</filename>
  1525. </para></listitem>
  1526. <listitem><para><filename>pkg_distribute</filename>
  1527. </para></listitem>
  1528. <listitem><para><filename>image-empty</filename>
  1529. </para></listitem>
  1530. </itemizedlist>
  1531. </para>
  1532. </section>
  1533. <section id='migration-1.6-reference-bsps'>
  1534. <title>Reference Board Support Packages (BSPs)</title>
  1535. <para>
  1536. The following reference BSPs changes occurred:
  1537. <itemizedlist>
  1538. <listitem><para>The BeagleBoard
  1539. (<filename>beagleboard</filename>) ARM reference hardware
  1540. has been replaced by the BeagleBone
  1541. (<filename>beaglebone</filename>) hardware.
  1542. </para></listitem>
  1543. <listitem><para>The RouterStation Pro
  1544. (<filename>routerstationpro</filename>) MIPS reference
  1545. hardware has been replaced by the EdgeRouter Lite
  1546. (<filename>edgerouter</filename>) hardware.
  1547. </para></listitem>
  1548. </itemizedlist>
  1549. The previous reference BSPs for the
  1550. <filename>beagleboard</filename> and
  1551. <filename>routerstationpro</filename> machines are still available
  1552. in a new <filename>meta-yocto-bsp-old</filename> layer in the
  1553. <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink>
  1554. at
  1555. <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto-bsp-old/'>http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto-bsp-old/</ulink>.
  1556. </para>
  1557. </section>
  1558. </section>
  1559. <section id='moving-to-the-yocto-project-1.7-release'>
  1560. <title>Moving to the Yocto Project 1.7 Release</title>
  1561. <para>
  1562. This section provides migration information for moving to the
  1563. Yocto Project 1.7 Release from the prior release.
  1564. </para>
  1565. <section id='migration-1.7-changes-to-setting-qemu-packageconfig-options'>
  1566. <title>Changes to Setting QEMU <filename>PACKAGECONFIG</filename> Options in <filename>local.conf</filename></title>
  1567. <para>
  1568. The QEMU recipe now uses a number of
  1569. <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
  1570. options to enable various optional features.
  1571. The method used to set defaults for these options means that
  1572. existing
  1573. <filename>local.conf</filename> files will need to be be
  1574. modified to append to <filename>PACKAGECONFIG</filename> for
  1575. <filename>qemu-native</filename> and
  1576. <filename>nativesdk-qemu</filename> instead of setting it.
  1577. In other words, to enable graphical output for QEMU, you should
  1578. now have these lines in <filename>local.conf</filename>:
  1579. <literallayout class='monospaced'>
  1580. PACKAGECONFIG_append_pn-qemu-native = " sdl"
  1581. PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
  1582. </literallayout>
  1583. </para>
  1584. </section>
  1585. <section id='migration-1.7-minimum-git-version'>
  1586. <title>Minimum Git version</title>
  1587. <para>
  1588. The minimum
  1589. <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> version required
  1590. on the build host is now 1.7.8 because the
  1591. <filename>--list</filename> option is now required by
  1592. BitBake's Git fetcher.
  1593. As always, if your host distribution does not provide a version of
  1594. Git that meets this requirement, you can use the
  1595. <filename>buildtools-tarball</filename> that does.
  1596. See the
  1597. "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
  1598. section for more information.
  1599. </para>
  1600. </section>
  1601. <section id='migration-1.7-autotools-class-changes'>
  1602. <title>Autotools Class Changes</title>
  1603. <para>
  1604. The following
  1605. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  1606. class changes occurred:
  1607. <itemizedlist>
  1608. <listitem><para><emphasis>
  1609. A separate build directory is now used by default:</emphasis>
  1610. The <filename>autotools</filename> class has been changed
  1611. to use a directory for building
  1612. (<link linkend='var-B'><filename>B</filename></link>),
  1613. which is separate from the source directory
  1614. (<link linkend='var-S'><filename>S</filename></link>).
  1615. This is commonly referred to as
  1616. <filename>B != S</filename>, or an out-of-tree build.</para>
  1617. <para>If the software being built is already capable of
  1618. building in a directory separate from the source, you
  1619. do not need to do anything.
  1620. However, if the software is not capable of being built
  1621. in this manner, you will
  1622. need to either patch the software so that it can build
  1623. separately, or you will need to change the recipe to
  1624. inherit the
  1625. <link linkend='ref-classes-autotools'><filename>autotools-brokensep</filename></link>
  1626. class instead of the <filename>autotools</filename> or
  1627. <filename>autotools_stage</filename> classes.
  1628. </para></listitem>
  1629. <listitem><para><emphasis>
  1630. The <filename>--foreign</filename> option is
  1631. no longer passed to <filename>automake</filename> when
  1632. running <filename>autoconf</filename>:</emphasis>
  1633. This option tells <filename>automake</filename> that a
  1634. particular software package does not follow the GNU
  1635. standards and therefore should not be expected
  1636. to distribute certain files such as
  1637. <filename>ChangeLog</filename>,
  1638. <filename>AUTHORS</filename>, and so forth.
  1639. Because the majority of upstream software packages already
  1640. tell <filename>automake</filename> to enable foreign mode
  1641. themselves, the option is mostly superfluous.
  1642. However, some recipes will need patches for this change.
  1643. You can easily make the change by patching
  1644. <filename>configure.ac</filename> so that it passes
  1645. "foreign" to <filename>AM_INIT_AUTOMAKE()</filename>.
  1646. See
  1647. <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2'>this commit</ulink>
  1648. for an example showing how to make the patch.
  1649. </para></listitem>
  1650. </itemizedlist>
  1651. </para>
  1652. </section>
  1653. <section id='migration-1.7-binary-configuration-scripts-disabled'>
  1654. <title>Binary Configuration Scripts Disabled</title>
  1655. <para>
  1656. Some of the core recipes that package binary configuration scripts
  1657. now disable the scripts due to the
  1658. scripts previously requiring error-prone path substitution.
  1659. Software that links against these libraries using these scripts
  1660. should use the much more robust <filename>pkg-config</filename>
  1661. instead.
  1662. The list of recipes changed in this version (and their
  1663. configuration scripts) is as follows:
  1664. <literallayout class='monospaced'>
  1665. directfb (directfb-config)
  1666. freetype (freetype-config)
  1667. gpgme (gpgme-config)
  1668. libassuan (libassuan-config)
  1669. libcroco (croco-6.0-config)
  1670. libgcrypt (libgcrypt-config)
  1671. libgpg-error (gpg-error-config)
  1672. libksba (ksba-config)
  1673. libpcap (pcap-config)
  1674. libpcre (pcre-config)
  1675. libpng (libpng-config, libpng16-config)
  1676. libsdl (sdl-config)
  1677. libusb-compat (libusb-config)
  1678. libxml2 (xml2-config)
  1679. libxslt (xslt-config)
  1680. ncurses (ncurses-config)
  1681. neon (neon-config)
  1682. npth (npth-config)
  1683. pth (pth-config)
  1684. taglib (taglib-config)
  1685. </literallayout>
  1686. Additionally, support for <filename>pkg-config</filename> has been
  1687. added to some recipes in the previous list in the rare cases
  1688. where the upstream software package does not already provide
  1689. it.
  1690. </para>
  1691. </section>
  1692. <section id='migration-1.7-glibc-replaces-eglibc'>
  1693. <title><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></title>
  1694. <para>
  1695. Because <filename>eglibc</filename> and
  1696. <filename>glibc</filename> were already fairly close, this
  1697. replacement should not require any significant changes to other
  1698. software that links to <filename>eglibc</filename>.
  1699. However, there were a number of minor changes in
  1700. <filename>glibc 2.20</filename> upstream that could require
  1701. patching some software (e.g. the removal of the
  1702. <filename>_BSD_SOURCE</filename> feature test macro).
  1703. </para>
  1704. <para>
  1705. <filename>glibc 2.20</filename> requires version 2.6.32 or greater
  1706. of the Linux kernel.
  1707. Thus, older kernels will no longer be usable in conjunction with it.
  1708. </para>
  1709. <para>
  1710. For full details on the changes in <filename>glibc 2.20</filename>,
  1711. see the upstream release notes
  1712. <ulink url='https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html'>here</ulink>.
  1713. </para>
  1714. </section>
  1715. <section id='migration-1.7-kernel-module-autoloading'>
  1716. <title>Kernel Module Autoloading</title>
  1717. <para>
  1718. The
  1719. <link linkend='var-module_autoload'><filename>module_autoload_*</filename></link>
  1720. variable is now deprecated and a new
  1721. <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
  1722. variable should be used instead.
  1723. Also,
  1724. <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
  1725. must now be used in conjunction with a new
  1726. <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
  1727. variable.
  1728. The new variables no longer require you to specify the module name
  1729. as part of the variable name.
  1730. This change not only simplifies usage but also allows the values
  1731. of these variables to be appropriately incorporated into task
  1732. signatures and thus trigger the appropriate tasks to re-execute
  1733. when changed.
  1734. You should replace any references to
  1735. <filename>module_autoload_*</filename> with
  1736. <filename>KERNEL_MODULE_AUTOLOAD</filename>, and add any modules
  1737. for which <filename>module_conf_*</filename> is specified to
  1738. <filename>KERNEL_MODULE_PROBECONF</filename>.
  1739. </para>
  1740. <para>
  1741. For more information, see the
  1742. <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
  1743. and
  1744. <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
  1745. variables.
  1746. </para>
  1747. </section>
  1748. <section id='migration-1.7-qa-check-changes'>
  1749. <title>QA Check Changes</title>
  1750. <para>
  1751. The following changes have occurred to the QA check process:
  1752. <itemizedlist>
  1753. <listitem><para>
  1754. Additional QA checks <filename>file-rdeps</filename>
  1755. and <filename>build-deps</filename> have been added in
  1756. order to verify that file dependencies are satisfied
  1757. (e.g. package contains a script requiring
  1758. <filename>/bin/bash</filename>) and build-time dependencies
  1759. are declared, respectively.
  1760. For more information, please see the
  1761. "<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>"
  1762. chapter.
  1763. </para></listitem>
  1764. <listitem><para>
  1765. Package QA checks are now performed during a new
  1766. <link linkend='ref-tasks-package_qa'><filename>do_package_qa</filename></link>
  1767. task rather than being part of the
  1768. <link linkend='ref-tasks-package'><filename>do_package</filename></link>
  1769. task.
  1770. This allows more parallel execution.
  1771. This change is unlikely to be an issue except for highly
  1772. customized recipes that disable packaging tasks themselves
  1773. by marking them as <filename>noexec</filename>.
  1774. For those packages, you will need to disable the
  1775. <filename>do_package_qa</filename> task as well.
  1776. </para></listitem>
  1777. <listitem><para>
  1778. Files being overwritten during the
  1779. <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
  1780. task now trigger an error instead of a warning.
  1781. Recipes should not be overwriting files written to the
  1782. sysroot by other recipes.
  1783. If you have these types of recipes, you need to alter them
  1784. so that they do not overwrite these files.</para>
  1785. <para>You might now receive this error after changes in
  1786. configuration or metadata resulting in orphaned files
  1787. being left in the sysroot.
  1788. If you do receive this error, the way to resolve the issue
  1789. is to delete your
  1790. <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
  1791. or to move it out of the way and then re-start the build.
  1792. Anything that has been fully built up to that point and
  1793. does not need rebuilding will be restored from the shared
  1794. state cache and the rest of the build will be able to
  1795. proceed as normal.
  1796. </para></listitem>
  1797. </itemizedlist>
  1798. </para>
  1799. </section>
  1800. <section id='migration-1.7-removed-recipes'>
  1801. <title>Removed Recipes</title>
  1802. <para>
  1803. The following recipes have been removed:
  1804. <itemizedlist>
  1805. <listitem><para>
  1806. <filename>x-load</filename>:
  1807. This recipe has been superseded by
  1808. U-boot SPL for all Cortex-based TI SoCs.
  1809. For legacy boards, the <filename>meta-ti</filename>
  1810. layer, which contains a maintained recipe, should be used
  1811. instead.
  1812. </para></listitem>
  1813. <listitem><para>
  1814. <filename>ubootchart</filename>:
  1815. This recipe is obsolete.
  1816. A <filename>bootchart2</filename> recipe has been added
  1817. to functionally replace it.
  1818. </para></listitem>
  1819. <listitem><para>
  1820. <filename>linux-yocto 3.4</filename>:
  1821. Support for the linux-yocto 3.4 kernel has been dropped.
  1822. Support for the 3.10 and 3.14 kernels remains, while
  1823. support for version 3.17 has been added.
  1824. </para></listitem>
  1825. <listitem><para>
  1826. <filename>eglibc</filename> has been removed in favor of
  1827. <filename>glibc</filename>.
  1828. See the
  1829. "<link linkend='migration-1.7-glibc-replaces-eglibc'><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></link>"
  1830. section for more information.
  1831. </para></listitem>
  1832. </itemizedlist>
  1833. </para>
  1834. </section>
  1835. <section id='migration-1.7-miscellaneous-changes'>
  1836. <title>Miscellaneous Changes</title>
  1837. <para>
  1838. The following miscellaneous change occurred:
  1839. <itemizedlist>
  1840. <listitem><para>
  1841. The build history feature now writes
  1842. <filename>build-id.txt</filename> instead of
  1843. <filename>build-id</filename>.
  1844. Additionally, <filename>build-id.txt</filename>
  1845. now contains the full build header as printed by
  1846. BitBake upon starting the build.
  1847. You should manually remove old "build-id" files from your
  1848. existing build history repositories to avoid confusion.
  1849. For information on the build history feature, see the
  1850. "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
  1851. section.
  1852. </para></listitem>
  1853. </itemizedlist>
  1854. </para>
  1855. </section>
  1856. </section>
  1857. <section id='moving-to-the-yocto-project-1.8-release'>
  1858. <title>Moving to the Yocto Project 1.8 Release</title>
  1859. <para>
  1860. This section provides migration information for moving to the
  1861. Yocto Project 1.8 Release from the prior release.
  1862. </para>
  1863. <section id='migration-1.8-removed-recipes'>
  1864. <title>Removed Recipes</title>
  1865. <para>
  1866. The following recipes have been removed:
  1867. <itemizedlist>
  1868. <listitem><para><filename>owl-video</filename>:
  1869. Functionality replaced by <filename>gst-player</filename>.
  1870. </para></listitem>
  1871. <listitem><para><filename>gaku</filename>:
  1872. Functionality replaced by <filename>gst-player</filename>.
  1873. </para></listitem>
  1874. <listitem><para><filename>gnome-desktop</filename>:
  1875. This recipe is now available in
  1876. <filename>meta-gnome</filename> and is no longer needed.
  1877. </para></listitem>
  1878. <listitem><para><filename>gsettings-desktop-schemas</filename>:
  1879. This recipe is now available in
  1880. <filename>meta-gnome</filename> and is no longer needed.
  1881. </para></listitem>
  1882. <listitem><para><filename>python-argparse</filename>:
  1883. The <filename>argparse</filename> module is already
  1884. provided in the default Python distribution in a
  1885. package named <filename>python-argparse</filename>.
  1886. Consequently, the separate
  1887. <filename>python-argparse</filename> recipe is no
  1888. longer needed.
  1889. </para></listitem>
  1890. <listitem><para><filename>telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control</filename>:
  1891. All these recipes have moved to
  1892. <filename>meta-oe</filename> and are consequently no
  1893. longer needed by any recipes in OpenEmbedded-Core.
  1894. </para></listitem>
  1895. <listitem><para><filename>linux-yocto_3.10</filename> and <filename>linux-yocto_3.17</filename>:
  1896. Support for the linux-yocto 3.10 and 3.17 kernels has been
  1897. dropped.
  1898. Support for the 3.14 kernel remains, while support for
  1899. 3.19 kernel has been added.
  1900. </para></listitem>
  1901. <listitem><para><filename>poky-feed-config-opkg</filename>:
  1902. This recipe has become obsolete and is no longer needed.
  1903. Use <filename>distro-feed-config</filename> from
  1904. <filename>meta-oe</filename> instead.
  1905. </para></listitem>
  1906. <listitem><para><filename>libav 0.8.x</filename>:
  1907. <filename>libav 9.x</filename> is now used.
  1908. </para></listitem>
  1909. <listitem><para><filename>sed-native</filename>:
  1910. No longer needed.
  1911. A working version of <filename>sed</filename> is expected
  1912. to be provided by the host distribution.
  1913. </para></listitem>
  1914. </itemizedlist>
  1915. </para>
  1916. </section>
  1917. <section id='migration-1.8-bluez'>
  1918. <title>BlueZ 4.x / 5.x Selection</title>
  1919. <para>
  1920. Proper built-in support for selecting BlueZ 5.x in preference
  1921. to the default of 4.x now exists.
  1922. To use BlueZ 5.x, simply add "bluez5" to your
  1923. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
  1924. value.
  1925. If you had previously added append files
  1926. (<filename>*.bbappend</filename>) to make this selection, you can
  1927. now remove them.
  1928. </para>
  1929. <para>
  1930. Additionally, a
  1931. <link linkend='ref-classes-bluetooth'><filename>bluetooth</filename></link>
  1932. class has been added to make selection of the appropriate bluetooth
  1933. support within a recipe a little easier.
  1934. If you wish to make use of this class in a recipe, add something
  1935. such as the following:
  1936. <literallayout class='monospaced'>
  1937. inherit bluetooth
  1938. PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}
  1939. PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
  1940. PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
  1941. </literallayout>
  1942. </para>
  1943. </section>
  1944. <section id='migration-1.8-kernel-build-changes'>
  1945. <title>Kernel Build Changes</title>
  1946. <para>
  1947. The kernel build process was changed to place the source
  1948. in a common shared work area and to place build artifacts
  1949. separately in the source code tree.
  1950. In theory, migration paths have been provided for most common
  1951. usages in kernel recipes but this might not work in all cases.
  1952. In particular, users need to ensure that
  1953. <filename>${S}</filename> (source files) and
  1954. <filename>${B}</filename> (build artifacts) are used
  1955. correctly in functions such as
  1956. <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
  1957. and
  1958. <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
  1959. For kernel recipes that do not inherit from
  1960. <filename>kernel-yocto</filename> or include
  1961. <filename>linux-yocto.inc</filename>, you might wish to
  1962. refer to the <filename>linux.inc</filename> file in the
  1963. <filename>meta-oe</filename> layer for the kinds of changes you
  1964. need to make.
  1965. For reference, here is the
  1966. <ulink url='http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee'>commit</ulink>
  1967. where the <filename>linux.inc</filename> file in
  1968. <filename>meta-oe</filename> was updated.
  1969. </para>
  1970. <para>
  1971. Recipes that rely on the kernel source code and do not inherit
  1972. the module classes might need to add explicit dependencies on
  1973. the <filename>do_shared_workdir</filename> kernel task, for example:
  1974. <literallayout class='monospaced'>
  1975. do_configure[depends] += "virtual/kernel:do_shared_workdir"
  1976. </literallayout>
  1977. </para>
  1978. </section>
  1979. <section id='migration-1.8-ssl'>
  1980. <title>SSL 3.0 is Now Disabled in OpenSSL</title>
  1981. <para>
  1982. SSL 3.0 is now disabled when building OpenSSL.
  1983. Disabling SSL 3.0 avoids any lingering instances of the POODLE
  1984. vulnerability.
  1985. If you feel you must re-enable SSL 3.0, then you can add an
  1986. append file (<filename>*.bbappend</filename>) for the
  1987. <filename>openssl</filename> recipe to remove "-no-ssl3"
  1988. from
  1989. <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>.
  1990. </para>
  1991. </section>
  1992. <section id='migration-1.8-default-sysroot-poisoning'>
  1993. <title>Default Sysroot Poisoning</title>
  1994. <para>
  1995. <filename>gcc's</filename> default sysroot and include directories
  1996. are now "poisoned".
  1997. In other words, the sysroot and include directories are being
  1998. redirected to a non-existent location in order to catch when
  1999. host directories are being used due to the correct options not
  2000. being passed.
  2001. This poisoning applies both to the cross-compiler used within the
  2002. build and to the cross-compiler produced in the SDK.
  2003. </para>
  2004. <para>
  2005. If this change causes something in the build to fail, it almost
  2006. certainly means the various compiler flags and commands are not
  2007. being passed correctly to the underlying piece of software.
  2008. In such cases, you need to take corrective steps.
  2009. </para>
  2010. </section>
  2011. <section id='migration-1.8-rebuild-improvements'>
  2012. <title>Rebuild Improvements</title>
  2013. <para>
  2014. Changes have been made to the
  2015. <link linkend='ref-classes-base'><filename>base</filename></link>,
  2016. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>,
  2017. and
  2018. <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
  2019. classes to clean out generated files when the
  2020. <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
  2021. task needs to be re-executed.
  2022. </para>
  2023. <para>
  2024. One of the improvements is to attempt to run "make clean" during
  2025. the <filename>do_configure</filename> task if a
  2026. <filename>Makefile</filename> exists.
  2027. Some software packages do not provide a working clean target
  2028. within their make files.
  2029. If you have such recipes, you need to set
  2030. <link linkend='var-CLEANBROKEN'><filename>CLEANBROKEN</filename></link>
  2031. to "1" within the recipe, for example:
  2032. <literallayout class='monospaced'>
  2033. CLEANBROKEN = "1"
  2034. </literallayout>
  2035. </para>
  2036. </section>
  2037. <section id='migration-1.8-qa-check-and-validation-changes'>
  2038. <title>QA Check and Validation Changes</title>
  2039. <para>
  2040. The following QA Check and Validation Changes have occurred:
  2041. <itemizedlist>
  2042. <listitem><para>
  2043. Usage of <filename>PRINC</filename>
  2044. previously triggered a warning.
  2045. It now triggers an error.
  2046. You should remove any remaining usage of
  2047. <filename>PRINC</filename> in any recipe or append file.
  2048. </para></listitem>
  2049. <listitem><para>
  2050. An additional QA check has been added to detect usage of
  2051. <filename>${D}</filename> in
  2052. <link linkend='var-FILES'><filename>FILES</filename></link>
  2053. values where
  2054. <link linkend='var-D'><filename>D</filename></link> values
  2055. should not be used at all.
  2056. The same check ensures that <filename>$D</filename> is used
  2057. in
  2058. <filename>pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm</filename>
  2059. functions instead of <filename>${D}</filename>.
  2060. </para></listitem>
  2061. <listitem><para>
  2062. <link linkend='var-S'><filename>S</filename></link> now
  2063. needs to be set to a valid value within a recipe.
  2064. If <filename>S</filename> is not set in the recipe, the
  2065. directory is not automatically created.
  2066. If <filename>S</filename> does not point to a directory
  2067. that exists at the time the
  2068. <link linkend='ref-tasks-unpack'><filename>do_unpack</filename></link>
  2069. task finishes, a warning will be shown.
  2070. </para></listitem>
  2071. <listitem><para>
  2072. <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
  2073. is now validated for correct formatting of multiple
  2074. licenses.
  2075. If the format is invalid (e.g. multiple licenses are
  2076. specified with no operators to specify how the multiple
  2077. licenses interact), then a warning will be shown.
  2078. </para></listitem>
  2079. </itemizedlist>
  2080. </para>
  2081. </section>
  2082. <section id='migration-1.8-miscellaneous-changes'>
  2083. <title>Miscellaneous Changes</title>
  2084. <para>
  2085. The following miscellaneous changes have occurred:
  2086. <itemizedlist>
  2087. <listitem><para>
  2088. The <filename>send-error-report</filename> script now
  2089. expects a "-s" option to be specified before the server
  2090. address.
  2091. This assumes a server address is being specified.
  2092. </para></listitem>
  2093. <listitem><para>
  2094. The <filename>oe-pkgdata-util</filename> script now
  2095. expects a "-p" option to be specified before the
  2096. <filename>pkgdata</filename> directory, which is now
  2097. optional.
  2098. If the <filename>pkgdata</filename> directory is not
  2099. specified, the script will run BitBake to query
  2100. <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
  2101. from the build environment.
  2102. </para></listitem>
  2103. </itemizedlist>
  2104. </para>
  2105. </section>
  2106. </section>
  2107. <section id='moving-to-the-yocto-project-2.0-release'>
  2108. <title>Moving to the Yocto Project 2.0 Release</title>
  2109. <para>
  2110. This section provides migration information for moving to the
  2111. Yocto Project 2.0 Release from the prior release.
  2112. </para>
  2113. <section id='migration-2.0-gcc-5'>
  2114. <title>GCC 5</title>
  2115. <para>
  2116. The default compiler is now GCC 5.2.
  2117. This change has required fixes for compilation errors in a number
  2118. of other recipes.
  2119. </para>
  2120. <para>
  2121. One important example is a fix for when the Linux kernel freezes at
  2122. boot time on ARM when built with GCC 5.
  2123. If you are using your own kernel recipe or source tree and
  2124. building for ARM, you will likely need to apply this
  2125. <ulink url='https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2'>patch</ulink>.
  2126. The standard <filename>linux-yocto</filename> kernel source tree
  2127. already has a workaround for the same issue.
  2128. </para>
  2129. <para>
  2130. For further details, see
  2131. <ulink url='https://gcc.gnu.org/gcc-5/changes.html'></ulink> and
  2132. the porting guide at
  2133. <ulink url='https://gcc.gnu.org/gcc-5/porting_to.html'></ulink>.
  2134. </para>
  2135. <para>
  2136. Alternatively, you can switch back to GCC 4.9 or 4.8 by
  2137. setting <filename>GCCVERSION</filename> in your configuration,
  2138. as follows:
  2139. <literallayout class='monospaced'>
  2140. GCCVERSION = "4.9%"
  2141. </literallayout>
  2142. </para>
  2143. </section>
  2144. <section id='migration-2.0-Gstreamer-0.10-removed'>
  2145. <title>Gstreamer 0.10 Removed</title>
  2146. <para>
  2147. Gstreamer 0.10 has been removed in favor of Gstreamer 1.x.
  2148. As part of the change, recipes for Gstreamer 0.10 and related
  2149. software are now located
  2150. in <filename>meta-multimedia</filename>.
  2151. This change results in Qt4 having Phonon and Gstreamer
  2152. support in QtWebkit disabled by default.
  2153. </para>
  2154. </section>
  2155. <section id='migration-2.0-removed-recipes'>
  2156. <title>Removed Recipes</title>
  2157. <para>
  2158. The following recipes have been moved or removed:
  2159. <itemizedlist>
  2160. <listitem><para>
  2161. <filename>bluez4</filename>: The recipe is obsolete and
  2162. has been moved due to <filename>bluez5</filename>
  2163. becoming fully integrated.
  2164. The <filename>bluez4</filename> recipe now resides in
  2165. <filename>meta-oe</filename>.
  2166. </para></listitem>
  2167. <listitem><para>
  2168. <filename>gamin</filename>: The recipe is obsolete and
  2169. has been removed.
  2170. </para></listitem>
  2171. <listitem><para>
  2172. <filename>gnome-icon-theme</filename>: The recipe's
  2173. functionally has been replaced by
  2174. <filename>adwaita-icon-theme</filename>.
  2175. </para></listitem>
  2176. <listitem><para>
  2177. Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have
  2178. been removed in favor of the recipes for Gstreamer 1.x.
  2179. </para></listitem>
  2180. <listitem><para>
  2181. <filename>insserv</filename>: The recipe is obsolete and
  2182. has been removed.
  2183. </para></listitem>
  2184. <listitem><para>
  2185. <filename>libunique</filename>: The recipe is no longer
  2186. used and has been moved to <filename>meta-oe</filename>.
  2187. </para></listitem>
  2188. <listitem><para>
  2189. <filename>midori</filename>: The recipe's functionally
  2190. has been replaced by <filename>epiphany</filename>.
  2191. </para></listitem>
  2192. <listitem><para>
  2193. <filename>python-gst</filename>: The recipe is obsolete
  2194. and has been removed since it only contains bindings for
  2195. Gstreamer 0.10.
  2196. </para></listitem>
  2197. <listitem><para>
  2198. <filename>qt-mobility</filename>: The recipe is obsolete and
  2199. has been removed since it requires
  2200. <filename>Gstreamer 0.10</filename>, which has been
  2201. replaced.
  2202. </para></listitem>
  2203. <listitem><para>
  2204. <filename>subversion</filename>: All 1.6.x versions of this
  2205. recipe have been removed.
  2206. </para></listitem>
  2207. <listitem><para>
  2208. <filename>webkit-gtk</filename>: The older 1.8.3 version
  2209. of this recipe has been removed in favor of
  2210. <filename>webkitgtk</filename>.
  2211. </para></listitem>
  2212. </itemizedlist>
  2213. </para>
  2214. </section>
  2215. <section id='migration-2.0-bitbake-datastore-improvements'>
  2216. <title>BitBake datastore improvements</title>
  2217. <para>
  2218. The method by which BitBake's datastore handles overrides has
  2219. changed.
  2220. Overrides are now applied dynamically and
  2221. <filename>bb.data.update_data()</filename> is now a no-op.
  2222. Thus, <filename>bb.data.update_data()</filename> is no longer
  2223. required in order to apply the correct overrides.
  2224. In practice, this change is unlikely to require any changes to
  2225. Metadata.
  2226. However, these minor changes in behavior exist:
  2227. <itemizedlist>
  2228. <listitem><para>
  2229. All potential overrides are now visible in the variable
  2230. history as seen when you run the following:
  2231. <literallayout class='monospaced'>
  2232. $ bitbake -e
  2233. </literallayout>
  2234. </para></listitem>
  2235. <listitem><para>
  2236. <filename>d.delVar('</filename><replaceable>VARNAME</replaceable><filename>')</filename> and
  2237. <filename>d.setVar('</filename><replaceable>VARNAME</replaceable><filename>', None)</filename>
  2238. result in the variable and all of its overrides being
  2239. cleared out.
  2240. Before the change, only the non-overridden values
  2241. were cleared.
  2242. </para></listitem>
  2243. </itemizedlist>
  2244. </para>
  2245. </section>
  2246. <section id='migration-2.0-shell-message-function-changes'>
  2247. <title>Shell Message Function Changes</title>
  2248. <para>
  2249. The shell versions of the BitBake message functions (i.e.
  2250. <filename>bbdebug</filename>, <filename>bbnote</filename>,
  2251. <filename>bbwarn</filename>, <filename>bbplain</filename>,
  2252. <filename>bberror</filename>, and <filename>bbfatal</filename>)
  2253. are now connected through to their BitBake equivalents
  2254. <filename>bb.debug()</filename>, <filename>bb.note()</filename>,
  2255. <filename>bb.warn()</filename>, <filename>bb.plain()</filename>,
  2256. <filename>bb.error()</filename>, and
  2257. <filename>bb.fatal()</filename>, respectively.
  2258. Thus, those message functions that you would expect to be printed
  2259. by the BitBake UI are now actually printed.
  2260. In practice, this change means two things:
  2261. <itemizedlist>
  2262. <listitem><para>
  2263. If you now see messages on the console that you did not
  2264. previously see as a result of this change, you might
  2265. need to clean up the calls to
  2266. <filename>bbwarn</filename>, <filename>bberror</filename>,
  2267. and so forth.
  2268. Or, you might want to simply remove the calls.
  2269. </para></listitem>
  2270. <listitem><para>
  2271. The <filename>bbfatal</filename> message function now
  2272. suppresses the full error log in the UI, which means any
  2273. calls to <filename>bbfatal</filename> where you still
  2274. wish to see the full error log should be replaced by
  2275. <filename>die</filename> or
  2276. <filename>bbfatal_log</filename>.
  2277. </para></listitem>
  2278. </itemizedlist>
  2279. </para>
  2280. </section>
  2281. <section id='migration-2.0-extra-development-debug-package-cleanup'>
  2282. <title>Extra Development/Debug Package Cleanup</title>
  2283. <para>
  2284. The following recipes have had extra
  2285. <filename>dev/dbg</filename> packages removed:
  2286. <itemizedlist>
  2287. <listitem><para>
  2288. <filename>acl</filename>
  2289. </para></listitem>
  2290. <listitem><para>
  2291. <filename>apmd</filename>
  2292. </para></listitem>
  2293. <listitem><para>
  2294. <filename>aspell</filename>
  2295. </para></listitem>
  2296. <listitem><para>
  2297. <filename>attr</filename>
  2298. </para></listitem>
  2299. <listitem><para>
  2300. <filename>augeas</filename>
  2301. </para></listitem>
  2302. <listitem><para>
  2303. <filename>bzip2</filename>
  2304. </para></listitem>
  2305. <listitem><para>
  2306. <filename>cogl</filename>
  2307. </para></listitem>
  2308. <listitem><para>
  2309. <filename>curl</filename>
  2310. </para></listitem>
  2311. <listitem><para>
  2312. <filename>elfutils</filename>
  2313. </para></listitem>
  2314. <listitem><para>
  2315. <filename>gcc-target</filename>
  2316. </para></listitem>
  2317. <listitem><para>
  2318. <filename>libgcc</filename>
  2319. </para></listitem>
  2320. <listitem><para>
  2321. <filename>libtool</filename>
  2322. </para></listitem>
  2323. <listitem><para>
  2324. <filename>libxmu</filename>
  2325. </para></listitem>
  2326. <listitem><para>
  2327. <filename>opkg</filename>
  2328. </para></listitem>
  2329. <listitem><para>
  2330. <filename>pciutils</filename>
  2331. </para></listitem>
  2332. <listitem><para>
  2333. <filename>rpm</filename>
  2334. </para></listitem>
  2335. <listitem><para>
  2336. <filename>sysfsutils</filename>
  2337. </para></listitem>
  2338. <listitem><para>
  2339. <filename>tiff</filename>
  2340. </para></listitem>
  2341. <listitem><para>
  2342. <filename>xz</filename>
  2343. </para></listitem>
  2344. </itemizedlist>
  2345. All of the above recipes now conform to the standard packaging
  2346. scheme where a single <filename>-dev</filename>,
  2347. <filename>-dbg</filename>, and <filename>-staticdev</filename>
  2348. package exists per recipe.
  2349. </para>
  2350. </section>
  2351. <section id='migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core'>
  2352. <title>Recipe Maintenance Tracking Data Moved to OE-Core</title>
  2353. <para>
  2354. Maintenance tracking data for recipes that was previously part
  2355. of <filename>meta-yocto</filename> has been moved to OE-Core.
  2356. The change includes <filename>package_regex.inc</filename> and
  2357. <filename>distro_alias.inc</filename>, which are typically enabled
  2358. when using the
  2359. <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
  2360. class.
  2361. Additionally, the contents of
  2362. <filename>upstream_tracking.inc</filename> has now been split out
  2363. to the relevant recipes.
  2364. </para>
  2365. </section>
  2366. <section id='migration-2.0-automatic-stale-sysroot-file-cleanup'>
  2367. <title>Automatic Stale Sysroot File Cleanup</title>
  2368. <para>
  2369. Stale files from recipes that no longer exist in the current
  2370. configuration are now automatically removed from
  2371. sysroot as well as removed from
  2372. any other place managed by shared state.
  2373. This automatic cleanup means that the build system now properly
  2374. handles situations such as renaming the build system side of
  2375. recipes, removal of layers from
  2376. <filename>bblayers.conf</filename>, and
  2377. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
  2378. changes.
  2379. </para>
  2380. <para>
  2381. Additionally, work directories for old versions of recipes are
  2382. now pruned.
  2383. If you wish to disable pruning old work directories, you can set
  2384. the following variable in your configuration:
  2385. <literallayout class='monospaced'>
  2386. SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
  2387. </literallayout>
  2388. </para>
  2389. </section>
  2390. <section id='migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source'>
  2391. <title><filename>linux-yocto</filename> Kernel Metadata Repository Now Split from Source</title>
  2392. <para>
  2393. The <filename>linux-yocto</filename> tree has up to now been a
  2394. combined set of kernel changes and configuration (meta) data
  2395. carried in a single tree.
  2396. While this format is effective at keeping kernel configuration and
  2397. source modifications synchronized, it is not always obvious to
  2398. developers how to manipulate the Metadata as compared to the
  2399. source.
  2400. </para>
  2401. <para>
  2402. Metadata processing has now been removed from the
  2403. <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
  2404. class and the external Metadata repository
  2405. <filename>yocto-kernel-cache</filename>, which has always been used
  2406. to seed the <filename>linux-yocto</filename> "meta" branch.
  2407. This separate <filename>linux-yocto</filename> cache repository
  2408. is now the primary location for this data.
  2409. Due to this change, <filename>linux-yocto</filename> is no longer
  2410. able to process combined trees.
  2411. Thus, if you need to have your own combined kernel repository,
  2412. you must do the split there as well and update your recipes
  2413. accordingly.
  2414. See the <filename>meta/recipes-kernel/linux/linux-yocto_4.1.bb</filename>
  2415. recipe for an example.
  2416. </para>
  2417. </section>
  2418. <section id='migration-2.0-additional-qa-checks'>
  2419. <title>Additional QA checks</title>
  2420. <para>
  2421. The following QA checks have been added:
  2422. <itemizedlist>
  2423. <listitem><para>
  2424. Added a "host-user-contaminated" check for ownership
  2425. issues for packaged files outside of
  2426. <filename>/home</filename>.
  2427. The check looks for files that are incorrectly owned by the
  2428. user that ran BitBake instead of owned by a valid user in
  2429. the target system.
  2430. </para></listitem>
  2431. <listitem><para>
  2432. Added an "invalid-chars" check for invalid (non-UTF8)
  2433. characters in recipe metadata variable values
  2434. (i.e.
  2435. <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>,
  2436. <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>,
  2437. <link linkend='var-LICENSE'><filename>LICENSE</filename></link>,
  2438. and
  2439. <link linkend='var-SECTION'><filename>SECTION</filename></link>).
  2440. Some package managers do not support these characters.
  2441. </para></listitem>
  2442. <listitem><para>
  2443. Added an "invalid-packageconfig" check for any options
  2444. specified in
  2445. <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
  2446. that do not match any <filename>PACKAGECONFIG</filename>
  2447. option defined for the recipe.
  2448. </para></listitem>
  2449. </itemizedlist>
  2450. </para>
  2451. </section>
  2452. <section id='migration-2.0-miscellaneous'>
  2453. <title>Miscellaneous Changes</title>
  2454. <para>
  2455. These additional changes exist:
  2456. <itemizedlist>
  2457. <listitem><para>
  2458. <filename>gtk-update-icon-cache</filename> has been
  2459. renamed to <filename>gtk-icon-utils</filename>.
  2460. </para></listitem>
  2461. <listitem><para>
  2462. The <filename>tools-profile</filename>
  2463. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
  2464. item as well as its corresponding packagegroup and
  2465. <filename>packagegroup-core-tools-profile</filename> no
  2466. longer bring in <filename>oprofile</filename>.
  2467. Bringing in <filename>oprofile</filename> was originally
  2468. added to aid compilation on resource-constrained
  2469. targets.
  2470. However, this aid has not been widely used and is not
  2471. likely to be used going forward due to the more powerful
  2472. target platforms and the existence of better
  2473. cross-compilation tools.
  2474. </para></listitem>
  2475. <listitem><para>
  2476. The
  2477. <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
  2478. variable's default value now specifies
  2479. <filename>ext4</filename> instead of
  2480. <filename>ext3</filename>.
  2481. </para></listitem>
  2482. <listitem><para>
  2483. All support for the <filename>PRINC</filename>
  2484. variable has been removed.
  2485. </para></listitem>
  2486. <listitem><para>
  2487. The <filename>packagegroup-core-full-cmdline</filename>
  2488. packagegroup no longer brings in
  2489. <filename>lighttpd</filename> due to the fact that
  2490. bringing in <filename>lighttpd</filename> is not really in
  2491. line with the packagegroup's purpose, which is to add full
  2492. versions of command-line tools that by default are
  2493. provided by <filename>busybox</filename>.
  2494. </para></listitem>
  2495. </itemizedlist>
  2496. </para>
  2497. </section>
  2498. </section>
  2499. <section id='moving-to-the-yocto-project-2.1-release'>
  2500. <title>Moving to the Yocto Project 2.1 Release</title>
  2501. <para>
  2502. This section provides migration information for moving to the
  2503. Yocto Project 2.1 Release from the prior release.
  2504. </para>
  2505. <section id='migration-2.1-variable-expansion-in-python-functions'>
  2506. <title>Variable Expansion in Python Functions</title>
  2507. <para>
  2508. Variable expressions, such as
  2509. <filename>${</filename><replaceable>VARNAME</replaceable><filename>}</filename>
  2510. no longer expand automatically within Python functions.
  2511. Suppressing expansion was done to allow Python functions to
  2512. construct shell scripts or other code for situations in which you
  2513. do not want such expressions expanded.
  2514. For any existing code that relies on these expansions, you need to
  2515. change the expansions to expand the value of individual
  2516. variables through <filename>d.getVar()</filename>.
  2517. To alternatively expand more complex expressions,
  2518. use <filename>d.expand()</filename>.
  2519. </para>
  2520. </section>
  2521. <section id='migration-2.1-overrides-must-now-be-lower-case'>
  2522. <title>Overrides Must Now be Lower-Case</title>
  2523. <para>
  2524. The convention for overrides has always been for them to be
  2525. lower-case characters.
  2526. This practice is now a requirement as BitBake's datastore now
  2527. assumes lower-case characters in order to give a slight performance
  2528. boost during parsing.
  2529. In practical terms, this requirement means that anything that ends
  2530. up in
  2531. <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
  2532. must now appear in lower-case characters (e.g. values for
  2533. <filename>MACHINE</filename>, <filename>TARGET_ARCH</filename>,
  2534. <filename>DISTRO</filename>, and also recipe names if
  2535. <filename>_pn-</filename><replaceable>recipename</replaceable>
  2536. overrides are to be effective).
  2537. </para>
  2538. </section>
  2539. <section id='migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory'>
  2540. <title>Expand Parameter to <filename>getVar()</filename> and
  2541. <filename>getVarFlag()</filename> is Now Mandatory</title>
  2542. <para>
  2543. The expand parameter to <filename>getVar()</filename> and
  2544. <filename>getVarFlag()</filename> previously defaulted to
  2545. False if not specified.
  2546. Now, however, no default exists so one must be specified.
  2547. You must change any <filename>getVar()</filename> calls that
  2548. do not specify the final expand parameter to calls that do specify
  2549. the parameter.
  2550. You can run the following <filename>sed</filename> command at the
  2551. base of a layer to make this change:
  2552. <literallayout class='monospaced'>
  2553. sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *`
  2554. sed -e 's:\(\.getVarFlag([^,()]*, [^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *`
  2555. </literallayout>
  2556. <note>
  2557. The reason for this change is that it prepares the way for
  2558. changing the default to True in a future Yocto Project release.
  2559. This future change is a much more sensible default than False.
  2560. However, the change needs to be made gradually as a sudden
  2561. change of the default would potentially cause side-effects
  2562. that would be difficult to detect.
  2563. </note>
  2564. </para>
  2565. </section>
  2566. <section id='migration-2.1-makefile-environment-changes'>
  2567. <title>Makefile Environment Changes</title>
  2568. <para>
  2569. <link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link>
  2570. now defaults to "" instead of "-e MAKEFLAGS=".
  2571. Setting <filename>EXTRA_OEMAKE</filename> to "-e MAKEFLAGS=" by
  2572. default was a historical accident that has required many classes
  2573. (e.g. <filename>autotools</filename>, <filename>module</filename>)
  2574. and recipes to override this default in order to work with
  2575. sensible build systems.
  2576. When upgrading to the release, you must edit any recipe that
  2577. relies upon this old default by either setting
  2578. <filename>EXTRA_OEMAKE</filename> back to "-e MAKEFLAGS=" or by
  2579. explicitly setting any required variable value overrides using
  2580. <filename>EXTRA_OEMAKE</filename>, which is typically only needed
  2581. when a Makefile sets a default value for a variable that is
  2582. inappropriate for cross-compilation using the "=" operator rather
  2583. than the "?=" operator.
  2584. </para>
  2585. </section>
  2586. <section id='migration-2.1-libexecdir-reverted-to-prefix-libexec'>
  2587. <title><filename>libexecdir</filename> Reverted to <filename>${prefix}/libexec</filename></title>
  2588. <para>
  2589. The use of <filename>${libdir}/${BPN}</filename> as
  2590. <filename>libexecdir</filename> is different as compared to all
  2591. other mainstream distributions, which either uses
  2592. <filename>${prefix}/libexec</filename> or
  2593. <filename>${libdir}</filename>.
  2594. The use is also contrary to the GNU Coding Standards
  2595. (i.e. <ulink url='https://www.gnu.org/prep/standards/html_node/Directory-Variables.html'></ulink>)
  2596. that suggest <filename>${prefix}/libexec</filename> and also
  2597. notes that any package-specific nesting should be done by the
  2598. package itself.
  2599. Finally, having <filename>libexecdir</filename> change between
  2600. recipes makes it very difficult for different recipes to invoke
  2601. binaries that have been installed into
  2602. <filename>libexecdir</filename>.
  2603. The Filesystem Hierarchy Standard
  2604. (i.e. <ulink url='http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html'></ulink>)
  2605. now recognizes the use of <filename>${prefix}/libexec/</filename>,
  2606. giving distributions the choice between
  2607. <filename>${prefix}/lib</filename> or
  2608. <filename>${prefix}/libexec</filename> without breaking FHS.
  2609. </para>
  2610. </section>
  2611. <section id='migration-2.1-ac-cv-sizeof-off-t-no-longer-cached-in-site-files'>
  2612. <title><filename>ac_cv_sizeof_off_t</filename> is No Longer Cached in Site Files</title>
  2613. <para>
  2614. For recipes inheriting the
  2615. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  2616. class, <filename>ac_cv_sizeof_off_t</filename> is no longer cached
  2617. in the site files for <filename>autoconf</filename>.
  2618. The reason for this change is because the
  2619. <filename>ac_cv_sizeof_off_t</filename> value is not necessarily
  2620. static per architecture as was previously assumed.
  2621. Rather, the value changes based on whether large file support is
  2622. enabled.
  2623. For most software that uses <filename>autoconf</filename>, this
  2624. change should not be a problem.
  2625. However, if you have a recipe that bypasses the standard
  2626. <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
  2627. task from the <filename>autotools</filename> class and the software
  2628. the recipe is building uses a very old version of
  2629. <filename>autoconf</filename>, the recipe might be incapable of
  2630. determining the correct size of <filename>off_t</filename> during
  2631. <filename>do_configure</filename>.
  2632. </para>
  2633. <para>
  2634. The best course of action is to patch the software as necessary
  2635. to allow the default implementation from the
  2636. <filename>autotools</filename> class to work such that
  2637. <filename>autoreconf</filename> succeeds and produces a working
  2638. configure script, and to remove the
  2639. overridden <filename>do_configure</filename> task such that the
  2640. default implementation does get used.
  2641. </para>
  2642. </section>
  2643. <section id='migration-2.1-image-generation-split-out-from-filesystem-generation'>
  2644. <title>Image Generation is Now Split Out from Filesystem Generation</title>
  2645. <para>
  2646. Previously, for image recipes the
  2647. <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
  2648. task assembled the filesystem and then from that filesystem
  2649. generated images.
  2650. With this Yocto Project release, image generation is split into
  2651. separate
  2652. <link linkend='ref-tasks-image'><filename>do_image_*</filename></link>
  2653. tasks for clarity both in operation and in the code.
  2654. </para>
  2655. <para>
  2656. For most cases, this change does not present any problems.
  2657. However, if you have made customizations that directly modify the
  2658. <filename>do_rootfs</filename> task or that mention
  2659. <filename>do_rootfs</filename>, you might need to update those
  2660. changes.
  2661. In particular, if you had added any tasks after
  2662. <filename>do_rootfs</filename>, you should make edits so that
  2663. those tasks are after the
  2664. <link linkend='ref-tasks-image-complete'><filename>do_image_complete</filename></link>
  2665. task rather than after <filename>do_rootfs</filename>
  2666. so that the your added tasks
  2667. run at the correct time.
  2668. </para>
  2669. <para>
  2670. A minor part of this restructuring is that the post-processing
  2671. definitions and functions have been moved from the
  2672. <link linkend='ref-classes-image'><filename>image</filename></link>
  2673. class to the
  2674. <link linkend='ref-classes-rootfs*'><filename>rootfs-postcommands</filename></link>
  2675. class.
  2676. Functionally, however, they remain unchanged.
  2677. </para>
  2678. </section>
  2679. <section id='migration-2.1-removed-recipes'>
  2680. <title>Removed Recipes</title>
  2681. <para>
  2682. The following recipes have been removed in the 2.1 release:
  2683. <itemizedlist>
  2684. <listitem><para><filename>gcc</filename> version 4.8:
  2685. Versions 4.9 and 5.3 remain.
  2686. </para></listitem>
  2687. <listitem><para><filename>qt4</filename>:
  2688. All support for Qt 4.x has been moved out to a separate
  2689. <filename>meta-qt4</filename> layer because Qt 4 is no
  2690. longer supported upstream.
  2691. </para></listitem>
  2692. <listitem><para><filename>x11vnc</filename>:
  2693. Moved to the <filename>meta-oe</filename> layer.
  2694. </para></listitem>
  2695. <listitem><para><filename>linux-yocto-3.14</filename>:
  2696. No longer supported.
  2697. </para></listitem>
  2698. <listitem><para><filename>linux-yocto-3.19</filename>:
  2699. No longer supported.
  2700. </para></listitem>
  2701. <listitem><para><filename>libjpeg</filename>:
  2702. Replaced by the <filename>libjpeg-turbo</filename> recipe.
  2703. </para></listitem>
  2704. <listitem><para><filename>pth</filename>:
  2705. Became obsolete.
  2706. </para></listitem>
  2707. <listitem><para><filename>liboil</filename>:
  2708. Recipe is no longer needed and has been moved to the
  2709. <filename>meta-multimedia</filename> layer.
  2710. </para></listitem>
  2711. <listitem><para><filename>gtk-theme-torturer</filename>:
  2712. Recipe is no longer needed and has been moved to the
  2713. <filename>meta-gnome</filename> layer.
  2714. </para></listitem>
  2715. <listitem><para><filename>gnome-mime-data</filename>:
  2716. Recipe is no longer needed and has been moved to the
  2717. <filename>meta-gnome</filename> layer.
  2718. </para></listitem>
  2719. <listitem><para><filename>udev</filename>:
  2720. Replaced by the <filename>eudev</filename> recipe for
  2721. compatibility when using <filename>sysvinit</filename>
  2722. with newer kernels.
  2723. </para></listitem>
  2724. <listitem><para><filename>python-pygtk</filename>:
  2725. Recipe became obsolete.
  2726. </para></listitem>
  2727. <listitem><para><filename>adt-installer</filename>:
  2728. Recipe became obsolete.
  2729. See the
  2730. "<link linkend='migration-2.1-adt-removed'>ADT Removed</link>"
  2731. section for more information.
  2732. </para></listitem>
  2733. </itemizedlist>
  2734. </para>
  2735. </section>
  2736. <section id='migration-2.1-class-changes'>
  2737. <title>Class Changes</title>
  2738. <para>
  2739. The following classes have changed:
  2740. <itemizedlist>
  2741. <listitem><para><filename>autotools_stage</filename>:
  2742. Removed because the
  2743. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  2744. class now provides its functionality.
  2745. Recipes that inherited from
  2746. <filename>autotools_stage</filename> should now inherit
  2747. from <filename>autotools</filename> instead.
  2748. </para></listitem>
  2749. <listitem><para><filename>boot-directdisk</filename>:
  2750. Merged into the
  2751. <link linkend='ref-classes-image-vm'><filename>image-vm</filename></link>
  2752. class.
  2753. The <filename>boot-directdisk</filename> class was rarely
  2754. directly used.
  2755. Consequently, this change should not cause any issues.
  2756. </para></listitem>
  2757. <listitem><para><filename>bootimg</filename>:
  2758. Merged into the
  2759. <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
  2760. class.
  2761. The <filename>bootimg</filename> class was rarely
  2762. directly used.
  2763. Consequently, this change should not cause any issues.
  2764. </para></listitem>
  2765. <listitem><para><filename>packageinfo</filename>:
  2766. Removed due to its limited use by the Hob UI, which has
  2767. itself been removed.
  2768. </para></listitem>
  2769. </itemizedlist>
  2770. </para>
  2771. </section>
  2772. <section id='migration-2.1-build-system-ui-changes'>
  2773. <title>Build System User Interface Changes</title>
  2774. <para>
  2775. The following changes have been made to the build system user
  2776. interface:
  2777. <itemizedlist>
  2778. <listitem><para><emphasis>Hob GTK+-based UI</emphasis>:
  2779. Removed because it is unmaintained and based on the
  2780. outdated GTK+ 2 library.
  2781. The Toaster web-based UI is much more capable and is
  2782. actively maintained.
  2783. See the
  2784. "<ulink url='&YOCTO_DOCS_TOAST_URL;#using-the-toaster-web-interface'>Using the Toaster Web Interface</ulink>"
  2785. section in the Yocto Project Toaster User Manual for more
  2786. information on this interface.
  2787. </para></listitem>
  2788. <listitem><para><emphasis>"puccho" BitBake UI</emphasis>:
  2789. Removed because is unmaintained and no longer useful.
  2790. </para></listitem>
  2791. </itemizedlist>
  2792. </para>
  2793. </section>
  2794. <section id='migration-2.1-adt-removed'>
  2795. <title>ADT Removed</title>
  2796. <para>
  2797. The Application Development Toolkit (ADT) has been removed
  2798. because its functionality almost completely overlapped with the
  2799. <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-using-the-standard-sdk'>standard SDK</ulink>
  2800. and the
  2801. <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>.
  2802. For information on these SDKs and how to build and use them, see the
  2803. <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
  2804. <note>
  2805. The Yocto Project Eclipse IDE Plug-in is still supported and
  2806. is not affected by this change.
  2807. </note>
  2808. </para>
  2809. </section>
  2810. <section id='migration-2.1-poky-reference-distribution-changes'>
  2811. <title>Poky Reference Distribution Changes</title>
  2812. <para>
  2813. The following changes have been made for the Poky distribution:
  2814. <itemizedlist>
  2815. <listitem><para>
  2816. The <filename>meta-yocto</filename> layer has been renamed
  2817. to <filename>meta-poky</filename> to better match its
  2818. purpose, which is to provide the Poky reference
  2819. distribution.
  2820. The <filename>meta-yocto-bsp</filename> layer retains its
  2821. original name since it provides reference machines for
  2822. the Yocto Project and it is otherwise unrelated to Poky.
  2823. References to <filename>meta-yocto</filename> in your
  2824. <filename>conf/bblayers.conf</filename> should
  2825. automatically be updated, so you should not need to change
  2826. anything unless you are relying on this naming elsewhere.
  2827. </para></listitem>
  2828. <listitem><para>
  2829. The
  2830. <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
  2831. class is now enabled by default in Poky.
  2832. This class attempts to isolate the build system from the
  2833. host distribution's C library and makes re-use of native
  2834. shared state artifacts across different host distributions
  2835. practical.
  2836. With this class enabled, a tarball containing a pre-built
  2837. C library is downloaded at the start of the build.</para>
  2838. <para>The <filename>uninative</filename> class is enabled
  2839. through the
  2840. <filename>meta/conf/distro/include/yocto-uninative.inc</filename>
  2841. file, which for those not using the Poky distribution, can
  2842. include to easily enable the same functionality.</para>
  2843. <para>Alternatively, if you wish to build your own
  2844. <filename>uninative</filename> tarball, you can do so by
  2845. building the <filename>uninative-tarball</filename> recipe,
  2846. making it available to your build machines
  2847. (e.g. over HTTP/HTTPS) and setting a similar configuration
  2848. as the one set by <filename>yocto-uninative.inc</filename>.
  2849. </para></listitem>
  2850. <listitem><para>
  2851. Static library generation, for most cases, is now disabled
  2852. by default in the Poky distribution.
  2853. Disabling this generation saves some build time as well
  2854. as the size used for build output artifacts.</para>
  2855. <para>Disabling this library generation is accomplished
  2856. through a
  2857. <filename>meta/conf/distro/include/no-static-libs.inc</filename>,
  2858. which for those not using the Poky distribution can
  2859. easily include to enable the same functionality.</para>
  2860. <para>Any recipe that needs to opt-out of having the
  2861. "--disable-static" option specified on the configure
  2862. command line either because it is not a supported option
  2863. for the configure script or because static libraries are
  2864. needed should set the following variable:
  2865. <literallayout class='monospaced'>
  2866. DISABLE_STATIC = ""
  2867. </literallayout>
  2868. </para></listitem>
  2869. <listitem><para>
  2870. The separate <filename>poky-tiny</filename> distribution
  2871. now uses the musl C library instead of a heavily pared
  2872. down <filename>glibc</filename>.
  2873. Using musl results in a smaller
  2874. distribution and facilitates much greater maintainability
  2875. because musl is designed to have a small footprint.</para>
  2876. <para>If you have used <filename>poky-tiny</filename> and
  2877. have customized the <filename>glibc</filename>
  2878. configuration you will need to redo those customizations
  2879. with musl when upgrading to the new release.
  2880. </para></listitem>
  2881. </itemizedlist>
  2882. </para>
  2883. </section>
  2884. <section id='migration-2.1-packaging-changes'>
  2885. <title>Packaging Changes</title>
  2886. <para>
  2887. The following changes have been made to packaging:
  2888. <itemizedlist>
  2889. <listitem><para>
  2890. The <filename>runuser</filename> and
  2891. <filename>mountpoint</filename> binaries, which were
  2892. previously in the main <filename>util-linux</filename>
  2893. package, have been split out into the
  2894. <filename>util-linux-runuser</filename> and
  2895. <filename>util-linux-mountpoint</filename> packages,
  2896. respectively.
  2897. </para></listitem>
  2898. <listitem><para>
  2899. The <filename>python-elementtree</filename> package has
  2900. been merged into the <filename>python-xml</filename>
  2901. package.
  2902. </para></listitem>
  2903. </itemizedlist>
  2904. </para>
  2905. </section>
  2906. <section id='migration-2.1-tuning-file-changes'>
  2907. <title>Tuning File Changes</title>
  2908. <para>
  2909. The following changes have been made to the tuning files:
  2910. <itemizedlist>
  2911. <listitem><para>
  2912. The "no-thumb-interwork" tuning feature has been dropped
  2913. from the ARM tune include files.
  2914. Because interworking is required for ARM EABI, attempting
  2915. to disable it through a tuning feature no longer makes
  2916. sense.
  2917. <note>
  2918. Support for ARM OABI was deprecated in gcc 4.7.
  2919. </note>
  2920. </para></listitem>
  2921. <listitem><para>
  2922. The <filename>tune-cortexm*.inc</filename> and
  2923. <filename>tune-cortexr4.inc</filename> files have been
  2924. removed because they are poorly tested.
  2925. Until the OpenEmbedded build system officially gains
  2926. support for CPUs without an MMU, these tuning files would
  2927. probably be better maintained in a separate layer
  2928. if needed.
  2929. </para></listitem>
  2930. </itemizedlist>
  2931. </para>
  2932. </section>
  2933. <section id='migration-2.1-supporting-gobject-introspection'>
  2934. <title>Supporting GObject Introspection</title>
  2935. <para>
  2936. This release supports generation of GLib Introspective
  2937. Repository (GIR) files through GObject introspection, which is
  2938. the standard mechanism for accessing GObject-based software from
  2939. runtime environments.
  2940. You can enable, disable, and test the generation of this data.
  2941. See the
  2942. "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-gobject-introspection-support'>Enabling GObject Introspection Support</ulink>"
  2943. section for more information.
  2944. </para>
  2945. </section>
  2946. <section id='migration-2.1-miscellaneous-changes'>
  2947. <title>Miscellaneous Changes</title>
  2948. <para>
  2949. These additional changes exist:
  2950. <itemizedlist>
  2951. <listitem><para>
  2952. The minimum Git version has been increased to 1.8.3.1.
  2953. If your host distribution does not provide a sufficiently
  2954. recent version, you can install the buildtools, which
  2955. will provide it.
  2956. See the
  2957. "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
  2958. section for more information on the buildtools tarball.
  2959. </para></listitem>
  2960. <listitem><para>
  2961. The buggy and incomplete support for the RPM version 4
  2962. package manager has been removed.
  2963. The well-tested and maintained support for RPM version 5
  2964. remains.
  2965. </para></listitem>
  2966. <listitem><para>
  2967. Previously, the following list of packages were removed
  2968. if package-management was not in
  2969. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>,
  2970. regardless of any dependencies:
  2971. <literallayout class='monospaced'>
  2972. update-rc.d
  2973. base-passwd
  2974. shadow
  2975. update-alternatives
  2976. run-postinsts
  2977. </literallayout>
  2978. With the Yocto Project 2.1 release, these packages are only
  2979. removed if "read-only-rootfs" is in
  2980. <filename>IMAGE_FEATURES</filename>, since they might
  2981. still be needed for a read-write image even in the absence
  2982. of a package manager (e.g. if users need to be added,
  2983. modified, or removed at runtime).
  2984. </para></listitem>
  2985. <listitem><para>
  2986. The
  2987. <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'><filename>devtool modify</filename></ulink>
  2988. command now defaults to extracting the source since that
  2989. is most commonly expected.
  2990. The "-x" or "--extract" options are now no-ops.
  2991. If you wish to provide your own existing source tree, you
  2992. will now need to specify either the "-n" or
  2993. "--no-extract" options when running
  2994. <filename>devtool modify</filename>.
  2995. </para></listitem>
  2996. <listitem><para>
  2997. If the formfactor for a machine is either not supplied
  2998. or does not specify whether a keyboard is attached, then
  2999. the default is to assume a keyboard is attached rather
  3000. than assume no keyboard.
  3001. This change primarily affects the Sato UI.
  3002. </para></listitem>
  3003. <listitem><para>
  3004. The <filename>.debug</filename> directory packaging is
  3005. now automatic.
  3006. If your recipe builds software that installs binaries into
  3007. directories other than the standard ones, you no longer
  3008. need to take care of setting
  3009. <filename>FILES_${PN}-dbg</filename> to pick up the
  3010. resulting <filename>.debug</filename> directories as these
  3011. directories are automatically found and added.
  3012. </para></listitem>
  3013. <listitem><para>
  3014. Inaccurate disk and CPU percentage data has been dropped
  3015. from <filename>buildstats</filename> output.
  3016. This data has been replaced with
  3017. <filename>getrusage()</filename> data and corrected IO
  3018. statistics.
  3019. You will probably need to update any custom code that reads
  3020. the <filename>buildstats</filename> data.
  3021. </para></listitem>
  3022. <listitem><para>
  3023. The
  3024. <filename>meta/conf/distro/include/package_regex.inc</filename>
  3025. is now deprecated.
  3026. The contents of this file have been moved to individual
  3027. recipes.
  3028. <note><title>Tip</title>
  3029. Because this file will likely be removed in a future
  3030. Yocto Project release, it is suggested that you remove
  3031. any references to the file that might be in your
  3032. configuration.
  3033. </note>
  3034. </para></listitem>
  3035. <listitem><para>
  3036. The <filename>v86d/uvesafb</filename> has been removed from
  3037. the <filename>genericx86</filename> and
  3038. <filename>genericx86-64</filename> reference machines,
  3039. which are provided by the
  3040. <filename>meta-yocto-bsp</filename> layer.
  3041. Most modern x86 boards do not rely on this file and it only
  3042. adds kernel error messages during startup.
  3043. If you do still need to support
  3044. <filename>uvesafb</filename>, you can
  3045. simply add <filename>v86d</filename> to your image.
  3046. </para></listitem>
  3047. <listitem><para>
  3048. Build sysroot paths are now removed from debug symbol
  3049. files.
  3050. Removing these paths means that remote GDB using an
  3051. unstripped build system sysroot will no longer work
  3052. (although this was never documented to work).
  3053. The supported method to accomplish something similar is
  3054. to set <filename>IMAGE_GEN_DEBUGFS</filename> to "1",
  3055. which will generate a companion debug image
  3056. containing unstripped binaries and associated debug
  3057. sources alongside the image.
  3058. </para></listitem>
  3059. </itemizedlist>
  3060. </para>
  3061. </section>
  3062. </section>
  3063. </chapter>
  3064. <!--
  3065. vim: expandtab tw=80 ts=4
  3066. -->