migration.xml 279 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704
  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. <link linkend='metadata'>Metadata</link>.
  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_OM_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. <link linkend='source-directory'>Source Directory</link>
  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. section in the Yocto Project Development Tasks 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. <link linkend='build-directory'>Build Directory</link>
  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 <filename>IMAGE_FEATURES</filename> is now
  801. validated to ensure invalid feature items are not added.
  802. Some users mistakenly add package names to this variable
  803. instead of using
  804. <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
  805. in order to have the package added to the image, which does
  806. not work.
  807. This change is intended to catch those kinds of situations.
  808. Valid <filename>IMAGE_FEATURES</filename> are drawn from
  809. <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
  810. definitions,
  811. <link linkend='var-COMPLEMENTARY_GLOB'><filename>COMPLEMENTARY_GLOB</filename></link>
  812. and a new "validitems" varflag on
  813. <filename>IMAGE_FEATURES</filename>.
  814. The "validitems" varflag change allows additional features
  815. to be added if they are not provided using the previous
  816. two mechanisms.
  817. </para></listitem>
  818. <listitem><para>
  819. The previously deprecated "apps-console-core"
  820. <filename>IMAGE_FEATURES</filename> item is no longer
  821. supported.
  822. Add "splash" to <filename>IMAGE_FEATURES</filename> if you
  823. wish to have the splash screen enabled, since this is
  824. all that apps-console-core was doing.</para></listitem>
  825. </itemizedlist>
  826. </para>
  827. </section>
  828. <section id='migration-1.5-run'>
  829. <title><filename>/run</filename></title>
  830. <para>
  831. The <filename>/run</filename> directory from the Filesystem
  832. Hierarchy Standard 3.0 has been introduced.
  833. You can find some of the implications for this change
  834. <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873'>here</ulink>.
  835. The change also means that recipes that install files to
  836. <filename>/var/run</filename> must be changed.
  837. You can find a guide on how to make these changes
  838. <ulink url='http://permalink.gmane.org/gmane.comp.handhelds.openembedded/58530'>here</ulink>.
  839. </para>
  840. </section>
  841. <section id='migration-1.5-removal-of-package-manager-database-within-image-recipes'>
  842. <title>Removal of Package Manager Database Within Image Recipes</title>
  843. <para>
  844. The image <filename>core-image-minimal</filename> no longer adds
  845. <filename>remove_packaging_data_files</filename> to
  846. <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>.
  847. This addition is now handled automatically when "package-management"
  848. is not in
  849. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
  850. If you have custom image recipes that make this addition,
  851. you should remove the lines, as they are not needed and might
  852. interfere with correct operation of postinstall scripts.
  853. </para>
  854. </section>
  855. <section id='migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time'>
  856. <title>Images Now Rebuild Only on Changes Instead of Every Time</title>
  857. <para>
  858. The
  859. <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
  860. and other related image
  861. construction tasks are no longer marked as "nostamp".
  862. Consequently, they will only be re-executed when their inputs have
  863. changed.
  864. Previous versions of the OpenEmbedded build system always rebuilt
  865. the image when requested rather when necessary.
  866. </para>
  867. </section>
  868. <section id='migration-1.5-task-recipes'>
  869. <title>Task Recipes</title>
  870. <para>
  871. The previously deprecated <filename>task.bbclass</filename> has
  872. now been dropped.
  873. For recipes that previously inherited from this class, you should
  874. rename them from <filename>task-*</filename> to
  875. <filename>packagegroup-*</filename> and inherit packagegroup
  876. instead.
  877. </para>
  878. <para>
  879. For more information, see the
  880. "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>"
  881. section.
  882. </para>
  883. </section>
  884. <section id='migration-1.5-busybox'>
  885. <title>BusyBox</title>
  886. <para>
  887. By default, we now split BusyBox into two binaries:
  888. one that is suid root for those components that need it, and
  889. another for the rest of the components.
  890. Splitting BusyBox allows for optimization that eliminates the
  891. <filename>tinylogin</filename> recipe as recommended by upstream.
  892. You can disable this split by setting
  893. <link linkend='var-BUSYBOX_SPLIT_SUID'><filename>BUSYBOX_SPLIT_SUID</filename></link>
  894. to "0".
  895. </para>
  896. </section>
  897. <section id='migration-1.5-automated-image-testing'>
  898. <title>Automated Image Testing</title>
  899. <para>
  900. A new automated image testing framework has been added
  901. through the
  902. <link linkend='ref-classes-testimage*'><filename>testimage.bbclass</filename></link>
  903. class.
  904. This framework replaces the older
  905. <filename>imagetest-qemu</filename> framework.
  906. </para>
  907. <para>
  908. You can learn more about performing automated image tests in the
  909. "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
  910. section in the Yocto Project Development Tasks Manual.
  911. </para>
  912. </section>
  913. <section id='migration-1.5-build-history'>
  914. <title>Build History</title>
  915. <para>
  916. Following are changes to Build History:
  917. <itemizedlist>
  918. <listitem><para>
  919. Installed package sizes:
  920. <filename>installed-package-sizes.txt</filename> for an
  921. image now records the size of the files installed by each
  922. package instead of the size of each compressed package
  923. archive file.</para></listitem>
  924. <listitem><para>
  925. The dependency graphs (<filename>depends*.dot</filename>)
  926. now use the actual package names instead of replacing
  927. dashes, dots and plus signs with underscores.
  928. </para></listitem>
  929. <listitem><para>
  930. The <filename>buildhistory-diff</filename> and
  931. <filename>buildhistory-collect-srcrevs</filename>
  932. utilities have improved command-line handling.
  933. Use the <filename>--help</filename> option for
  934. each utility for more information on the new syntax.
  935. </para></listitem>
  936. </itemizedlist>
  937. For more information on Build History, see the
  938. "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
  939. section in the Yocto Project Development Tasks Manual.
  940. </para>
  941. </section>
  942. <section id='migration-1.5-udev'>
  943. <title><filename>udev</filename></title>
  944. <para>
  945. Following are changes to <filename>udev</filename>:
  946. <itemizedlist>
  947. <listitem><para>
  948. <filename>udev</filename> no longer brings in
  949. <filename>udev-extraconf</filename> automatically
  950. through
  951. <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
  952. since this was originally intended to be optional.
  953. If you need the extra rules, then add
  954. <filename>udev-extraconf</filename> to your image.
  955. </para></listitem>
  956. <listitem><para>
  957. <filename>udev</filename> no longer brings in
  958. <filename>pciutils-ids</filename> or
  959. <filename>usbutils-ids</filename> through
  960. <filename>RRECOMMENDS</filename>.
  961. These are not needed by <filename>udev</filename> itself
  962. and removing them saves around 350KB.
  963. </para></listitem>
  964. </itemizedlist>
  965. </para>
  966. </section>
  967. <section id='migration-1.5-removed-renamed-recipes'>
  968. <title>Removed and Renamed Recipes</title>
  969. <itemizedlist>
  970. <listitem><para>
  971. The <filename>linux-yocto</filename> 3.2 kernel has been
  972. removed.</para></listitem>
  973. <listitem><para>
  974. <filename>libtool-nativesdk</filename> has been renamed to
  975. <filename>nativesdk-libtool</filename>.</para></listitem>
  976. <listitem><para>
  977. <filename>tinylogin</filename> has been removed.
  978. It has been replaced by a suid portion of Busybox.
  979. See the
  980. "<link linkend='migration-1.5-busybox'>BusyBox</link>" section
  981. for more information.</para></listitem>
  982. <listitem><para>
  983. <filename>external-python-tarball</filename> has been renamed
  984. to <filename>buildtools-tarball</filename>.
  985. </para></listitem>
  986. <listitem><para>
  987. <filename>web-webkit</filename> has been removed.
  988. It has been functionally replaced by
  989. <filename>midori</filename>.</para></listitem>
  990. <listitem><para>
  991. <filename>imake</filename> has been removed.
  992. It is no longer needed by any other recipe.
  993. </para></listitem>
  994. <listitem><para>
  995. <filename>transfig-native</filename> has been removed.
  996. It is no longer needed by any other recipe.
  997. </para></listitem>
  998. <listitem><para>
  999. <filename>anjuta-remote-run</filename> has been removed.
  1000. Anjuta IDE integration has not been officially supported for
  1001. several releases.</para></listitem>
  1002. </itemizedlist>
  1003. </section>
  1004. <section id='migration-1.5-other-changes'>
  1005. <title>Other Changes</title>
  1006. <para>
  1007. Following is a list of short entries describing other changes:
  1008. <itemizedlist>
  1009. <listitem><para>
  1010. <filename>run-postinsts</filename>: Make this generic.
  1011. </para></listitem>
  1012. <listitem><para>
  1013. <filename>base-files</filename>: Remove the unnecessary
  1014. <filename>media/</filename><replaceable>xxx</replaceable> directories.
  1015. </para></listitem>
  1016. <listitem><para>
  1017. <filename>alsa-state</filename>: Provide an empty
  1018. <filename>asound.conf</filename> by default.
  1019. </para></listitem>
  1020. <listitem><para>
  1021. <filename>classes/image</filename>: Ensure
  1022. <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
  1023. supports pre-renamed package names.</para></listitem>
  1024. <listitem><para>
  1025. <filename>classes/rootfs_rpm</filename>: Implement
  1026. <filename>BAD_RECOMMENDATIONS</filename> for RPM.
  1027. </para></listitem>
  1028. <listitem><para>
  1029. <filename>systemd</filename>: Remove
  1030. <filename>systemd_unitdir</filename> if
  1031. <filename>systemd</filename> is not in
  1032. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
  1033. </para></listitem>
  1034. <listitem><para>
  1035. <filename>systemd</filename>: Remove
  1036. <filename>init.d</filename> dir if
  1037. <filename>systemd</filename> unit file is present and
  1038. <filename>sysvinit</filename> is not a distro feature.
  1039. </para></listitem>
  1040. <listitem><para>
  1041. <filename>libpam</filename>: Deny all services for the
  1042. <filename>OTHER</filename> entries.
  1043. </para></listitem>
  1044. <listitem><para>
  1045. <filename>image.bbclass</filename>: Move
  1046. <filename>runtime_mapping_rename</filename> to avoid
  1047. conflict with <filename>multilib</filename>.
  1048. See
  1049. <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=4993'><filename>YOCTO #4993</filename></ulink>
  1050. in Bugzilla for more information.
  1051. </para></listitem>
  1052. <listitem><para>
  1053. <filename>linux-dtb</filename>: Use kernel build system
  1054. to generate the <filename>dtb</filename> files.
  1055. </para></listitem>
  1056. <listitem><para>
  1057. <filename>kern-tools</filename>: Switch from guilt to
  1058. new <filename>kgit-s2q</filename> tool.
  1059. </para></listitem>
  1060. </itemizedlist>
  1061. </para>
  1062. </section>
  1063. </section>
  1064. <section id='moving-to-the-yocto-project-1.6-release'>
  1065. <title>Moving to the Yocto Project 1.6 Release</title>
  1066. <para>
  1067. This section provides migration information for moving to the
  1068. Yocto Project 1.6 Release from the prior release.
  1069. </para>
  1070. <section id='migration-1.6-archiver-class'>
  1071. <title><filename>archiver</filename> Class</title>
  1072. <para>
  1073. The
  1074. <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
  1075. class has been rewritten and its configuration has been simplified.
  1076. For more details on the source archiver, see the
  1077. "<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>"
  1078. section in the Yocto Project Development Tasks Manual.
  1079. </para>
  1080. </section>
  1081. <section id='migration-1.6-packaging-changes'>
  1082. <title>Packaging Changes</title>
  1083. <para>
  1084. The following packaging changes have been made:
  1085. <itemizedlist>
  1086. <listitem><para>
  1087. The <filename>binutils</filename> recipe no longer produces
  1088. a <filename>binutils-symlinks</filename> package.
  1089. <filename>update-alternatives</filename> is now used to
  1090. handle the preferred <filename>binutils</filename>
  1091. variant on the target instead.
  1092. </para></listitem>
  1093. <listitem><para>
  1094. The tc (traffic control) utilities have been split out of
  1095. the main <filename>iproute2</filename> package and put
  1096. into the <filename>iproute2-tc</filename> package.
  1097. </para></listitem>
  1098. <listitem><para>
  1099. The <filename>gtk-engines</filename> schemas have been
  1100. moved to a dedicated
  1101. <filename>gtk-engines-schemas</filename> package.
  1102. </para></listitem>
  1103. <listitem><para>
  1104. The <filename>armv7a</filename> with thumb package
  1105. architecture suffix has changed.
  1106. The suffix for these packages with the thumb
  1107. optimization enabled is "t2" as it should be.
  1108. Use of this suffix was not the case in the 1.5 release.
  1109. Architecture names will change within package feeds as a
  1110. result.
  1111. </para></listitem>
  1112. </itemizedlist>
  1113. </para>
  1114. </section>
  1115. <section id='migration-1.6-bitbake'>
  1116. <title>BitBake</title>
  1117. <para>
  1118. The following changes have been made to
  1119. <link linkend='bitbake-term'>BitBake</link>.
  1120. </para>
  1121. <section id='migration-1.6-matching-branch-requirement-for-git-fetching'>
  1122. <title>Matching Branch Requirement for Git Fetching</title>
  1123. <para>
  1124. When fetching source from a Git repository using
  1125. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
  1126. BitBake will now validate the
  1127. <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
  1128. value against the branch.
  1129. You can specify the branch using the following form:
  1130. <literallayout class='monospaced'>
  1131. SRC_URI = "git://server.name/repository;branch=<replaceable>branchname</replaceable>"
  1132. </literallayout>
  1133. If you do not specify a branch, BitBake looks
  1134. in the default "master" branch.
  1135. </para>
  1136. <para>
  1137. Alternatively, if you need to bypass this check (e.g.
  1138. if you are fetching a revision corresponding to a tag that
  1139. is not on any branch), you can add ";nobranch=1" to
  1140. the end of the URL within <filename>SRC_URI</filename>.
  1141. </para>
  1142. </section>
  1143. <section id='migration-1.6-bitbake-deps'>
  1144. <title>Python Definition substitutions</title>
  1145. <para>
  1146. BitBake had some previously deprecated Python definitions
  1147. within its <filename>bb</filename> module removed.
  1148. You should use their sub-module counterparts instead:
  1149. <itemizedlist>
  1150. <listitem><para><filename>bb.MalformedUrl</filename>:
  1151. Use <filename>bb.fetch.MalformedUrl</filename>.
  1152. </para></listitem>
  1153. <listitem><para><filename>bb.encodeurl</filename>:
  1154. Use <filename>bb.fetch.encodeurl</filename>.
  1155. </para></listitem>
  1156. <listitem><para><filename>bb.decodeurl</filename>:
  1157. Use <filename>bb.fetch.decodeurl</filename>
  1158. </para></listitem>
  1159. <listitem><para><filename>bb.mkdirhier</filename>:
  1160. Use <filename>bb.utils.mkdirhier</filename>.
  1161. </para></listitem>
  1162. <listitem><para><filename>bb.movefile</filename>:
  1163. Use <filename>bb.utils.movefile</filename>.
  1164. </para></listitem>
  1165. <listitem><para><filename>bb.copyfile</filename>:
  1166. Use <filename>bb.utils.copyfile</filename>.
  1167. </para></listitem>
  1168. <listitem><para><filename>bb.which</filename>:
  1169. Use <filename>bb.utils.which</filename>.
  1170. </para></listitem>
  1171. <listitem><para><filename>bb.vercmp_string</filename>:
  1172. Use <filename>bb.utils.vercmp_string</filename>.
  1173. </para></listitem>
  1174. <listitem><para><filename>bb.vercmp</filename>:
  1175. Use <filename>bb.utils.vercmp</filename>.
  1176. </para></listitem>
  1177. </itemizedlist>
  1178. </para>
  1179. </section>
  1180. <section id='migration-1.6-bitbake-fetcher'>
  1181. <title>SVK Fetcher</title>
  1182. <para>
  1183. The SVK fetcher has been removed from BitBake.
  1184. </para>
  1185. </section>
  1186. <section id='migration-1.6-bitbake-console-output'>
  1187. <title>Console Output Error Redirection</title>
  1188. <para>
  1189. The BitBake console UI will now output errors to
  1190. <filename>stderr</filename> instead of
  1191. <filename>stdout</filename>.
  1192. Consequently, if you are piping or redirecting the output of
  1193. <filename>bitbake</filename> to somewhere else, and you wish
  1194. to retain the errors, you will need to add
  1195. <filename>2>&amp;1</filename> (or something similar) to the
  1196. end of your <filename>bitbake</filename> command line.
  1197. </para>
  1198. </section>
  1199. <section id='migration-1.6-task-taskname-overrides'>
  1200. <title><filename>task-</filename><replaceable>taskname</replaceable> Overrides</title>
  1201. <para>
  1202. <filename>task-</filename><replaceable>taskname</replaceable> overrides have been
  1203. adjusted so that tasks whose names contain underscores have the
  1204. underscores replaced by hyphens for the override so that they
  1205. now function properly.
  1206. For example, the task override for
  1207. <link linkend='ref-tasks-populate_sdk'><filename>do_populate_sdk</filename></link>
  1208. is <filename>task-populate-sdk</filename>.
  1209. </para>
  1210. </section>
  1211. </section>
  1212. <section id='migration-1.6-variable-changes'>
  1213. <title>Changes to Variables</title>
  1214. <para>
  1215. The following variables have changed.
  1216. For information on the OpenEmbedded build system variables, see the
  1217. "<link linkend='ref-variables-glos'>Variables Glossary</link>" Chapter.
  1218. </para>
  1219. <section id='migration-1.6-variable-changes-TMPDIR'>
  1220. <title><filename>TMPDIR</filename></title>
  1221. <para>
  1222. <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
  1223. can no longer be on an NFS mount.
  1224. NFS does not offer full POSIX locking and inode consistency
  1225. and can cause unexpected issues if used to store
  1226. <filename>TMPDIR</filename>.
  1227. </para>
  1228. <para>
  1229. The check for this occurs on startup.
  1230. If <filename>TMPDIR</filename> is detected on an NFS mount,
  1231. an error occurs.
  1232. </para>
  1233. </section>
  1234. <section id='migration-1.6-variable-changes-PRINC'>
  1235. <title><filename>PRINC</filename></title>
  1236. <para>
  1237. The <filename>PRINC</filename>
  1238. variable has been deprecated and triggers a warning if
  1239. detected during a build.
  1240. For
  1241. <link linkend='var-PR'><filename>PR</filename></link>
  1242. increments on changes, use the PR service instead.
  1243. You can find out more about this service in the
  1244. "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
  1245. section in the Yocto Project Development Tasks Manual.
  1246. </para>
  1247. </section>
  1248. <section id='migration-1.6-variable-changes-IMAGE_TYPES'>
  1249. <title><filename>IMAGE_TYPES</filename></title>
  1250. <para>
  1251. The "sum.jffs2" option for
  1252. <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>
  1253. has been replaced by the "jffs2.sum" option, which fits the
  1254. processing order.
  1255. </para>
  1256. </section>
  1257. <section id='migration-1.6-variable-changes-COPY_LIC_MANIFEST'>
  1258. <title><filename>COPY_LIC_MANIFEST</filename></title>
  1259. <para>
  1260. The
  1261. <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
  1262. variable must
  1263. now be set to "1" rather than any value in order to enable
  1264. it.
  1265. </para>
  1266. </section>
  1267. <section id='migration-1.6-variable-changes-COPY_LIC_DIRS'>
  1268. <title><filename>COPY_LIC_DIRS</filename></title>
  1269. <para>
  1270. The
  1271. <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
  1272. variable must
  1273. now be set to "1" rather than any value in order to enable
  1274. it.
  1275. </para>
  1276. </section>
  1277. <section id='migration-1.6-variable-changes-PACKAGE_GROUP'>
  1278. <title><filename>PACKAGE_GROUP</filename></title>
  1279. <para>
  1280. The
  1281. <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
  1282. variable has been renamed to
  1283. <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>
  1284. to more accurately reflect its purpose.
  1285. You can still use <filename>PACKAGE_GROUP</filename> but
  1286. the OpenEmbedded build system produces a warning message when
  1287. it encounters the variable.
  1288. </para>
  1289. </section>
  1290. <section id='migration-1.6-variable-changes-variable-entry-behavior'>
  1291. <title>Preprocess and Post Process Command Variable Behavior</title>
  1292. <para>
  1293. The following variables now expect a semicolon separated
  1294. list of functions to call and not arbitrary shell commands:
  1295. <literallayout class='monospaced'>
  1296. <link linkend='var-ROOTFS_PREPROCESS_COMMAND'>ROOTFS_PREPROCESS_COMMAND</link>
  1297. <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'>ROOTFS_POSTPROCESS_COMMAND</link>
  1298. <link linkend='var-SDK_POSTPROCESS_COMMAND'>SDK_POSTPROCESS_COMMAND</link>
  1299. <link linkend='var-POPULATE_SDK_POST_TARGET_COMMAND'>POPULATE_SDK_POST_TARGET_COMMAND</link>
  1300. <link linkend='var-POPULATE_SDK_POST_HOST_COMMAND'>POPULATE_SDK_POST_HOST_COMMAND</link>
  1301. <link linkend='var-IMAGE_POSTPROCESS_COMMAND'>IMAGE_POSTPROCESS_COMMAND</link>
  1302. <link linkend='var-IMAGE_PREPROCESS_COMMAND'>IMAGE_PREPROCESS_COMMAND</link>
  1303. <link linkend='var-ROOTFS_POSTUNINSTALL_COMMAND'>ROOTFS_POSTUNINSTALL_COMMAND</link>
  1304. <link linkend='var-ROOTFS_POSTINSTALL_COMMAND'>ROOTFS_POSTINSTALL_COMMAND</link>
  1305. </literallayout>
  1306. For migration purposes, you can simply wrap shell commands in
  1307. a shell function and then call the function.
  1308. Here is an example:
  1309. <literallayout class='monospaced'>
  1310. my_postprocess_function() {
  1311. echo "hello" > ${IMAGE_ROOTFS}/hello.txt
  1312. }
  1313. ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "
  1314. </literallayout>
  1315. </para>
  1316. </section>
  1317. </section>
  1318. <section id='migration-1.6-package-test-ptest'>
  1319. <title>Package Test (ptest)</title>
  1320. <para>
  1321. Package Tests (ptest) are built but not installed by default.
  1322. For information on using Package Tests, see the
  1323. "<ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Testing Packages with ptest</ulink>"
  1324. section in the Yocto Project Development Tasks Manual.
  1325. For information on the <filename>ptest</filename> class, see the
  1326. "<link linkend='ref-classes-ptest'><filename>ptest.bbclass</filename></link>"
  1327. section.
  1328. </para>
  1329. </section>
  1330. <section id='migration-1.6-build-changes'>
  1331. <title>Build Changes</title>
  1332. <para>
  1333. Separate build and source directories have been enabled
  1334. by default for selected recipes where it is known to work
  1335. (a whitelist) and for all recipes that inherit the
  1336. <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
  1337. class.
  1338. In future releases the
  1339. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  1340. class will enable a separate build directory by default as
  1341. well.
  1342. Recipes building Autotools-based
  1343. software that fails to build with a separate build directory
  1344. should be changed to inherit from the
  1345. <link linkend='ref-classes-autotools'><filename>autotools-brokensep</filename></link>
  1346. class instead of the <filename>autotools</filename> or
  1347. <filename>autotools_stage</filename>classes.
  1348. </para>
  1349. </section>
  1350. <section id='migration-1.6-building-qemu-native'>
  1351. <title><filename>qemu-native</filename></title>
  1352. <para>
  1353. <filename>qemu-native</filename> now builds without
  1354. SDL-based graphical output support by default.
  1355. The following additional lines are needed in your
  1356. <filename>local.conf</filename> to enable it:
  1357. <literallayout class='monospaced'>
  1358. PACKAGECONFIG_pn-qemu-native = "sdl"
  1359. ASSUME_PROVIDED += "libsdl-native"
  1360. </literallayout>
  1361. <note>
  1362. The default <filename>local.conf</filename>
  1363. contains these statements.
  1364. Consequently, if you are building a headless system and using
  1365. a default <filename>local.conf</filename> file, you will need
  1366. comment these two lines out.
  1367. </note>
  1368. </para>
  1369. </section>
  1370. <section id='migration-1.6-core-image-basic'>
  1371. <title><filename>core-image-basic</filename></title>
  1372. <para>
  1373. <filename>core-image-basic</filename> has been renamed to
  1374. <filename>core-image-full-cmdline</filename>.
  1375. </para>
  1376. <para>
  1377. In addition to <filename>core-image-basic</filename> being renamed,
  1378. <filename>packagegroup-core-basic</filename> has been renamed to
  1379. <filename>packagegroup-core-full-cmdline</filename> to match.
  1380. </para>
  1381. </section>
  1382. <section id='migration-1.6-licensing'>
  1383. <title>Licensing</title>
  1384. <para>
  1385. The top-level <filename>LICENSE</filename> file has been changed
  1386. to better describe the license of the various components of
  1387. <link linkend='oe-core'>OE-Core</link>.
  1388. However, the licensing itself remains unchanged.
  1389. </para>
  1390. <para>
  1391. Normally, this change would not cause any side-effects.
  1392. However, some recipes point to this file within
  1393. <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
  1394. (as <filename>${COREBASE}/LICENSE</filename>) and thus the
  1395. accompanying checksum must be changed from
  1396. 3f40d7994397109285ec7b81fdeb3b58 to
  1397. 4d92cd373abda3937c2bc47fbc49d690.
  1398. A better alternative is to have
  1399. <filename>LIC_FILES_CHKSUM</filename> point to a file
  1400. describing the license that is distributed with the source
  1401. that the recipe is building, if possible, rather than pointing
  1402. to <filename>${COREBASE}/LICENSE</filename>.
  1403. </para>
  1404. </section>
  1405. <section id='migration-1.6-cflags-options'>
  1406. <title><filename>CFLAGS</filename> Options</title>
  1407. <para>
  1408. The "-fpermissive" option has been removed from the default
  1409. <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
  1410. value.
  1411. You need to take action on individual recipes that fail when
  1412. building with this option.
  1413. You need to either patch the recipes to fix the issues reported by
  1414. the compiler, or you need to add "-fpermissive" to
  1415. <filename>CFLAGS</filename> in the recipes.
  1416. </para>
  1417. </section>
  1418. <section id='migration-1.6-custom-images'>
  1419. <title>Custom Image Output Types</title>
  1420. <para>
  1421. Custom image output types, as selected using
  1422. <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
  1423. must declare their dependencies on other image types (if any) using
  1424. a new
  1425. <link linkend='var-IMAGE_TYPEDEP'><filename>IMAGE_TYPEDEP</filename></link>
  1426. variable.
  1427. </para>
  1428. </section>
  1429. <section id='migration-1.6-do-package-write-task'>
  1430. <title>Tasks</title>
  1431. <para>
  1432. The <filename>do_package_write</filename> task has been removed.
  1433. The task is no longer needed.
  1434. </para>
  1435. </section>
  1436. <section id='migration-1.6-update-alternatives-provider'>
  1437. <title><filename>update-alternative</filename> Provider</title>
  1438. <para>
  1439. The default <filename>update-alternatives</filename> provider has
  1440. been changed from <filename>opkg</filename> to
  1441. <filename>opkg-utils</filename>.
  1442. This change resolves some troublesome circular dependencies.
  1443. The runtime package has also been renamed from
  1444. <filename>update-alternatives-cworth</filename>
  1445. to <filename>update-alternatives-opkg</filename>.
  1446. </para>
  1447. </section>
  1448. <section id='migration-1.6-virtclass-overrides'>
  1449. <title><filename>virtclass</filename> Overrides</title>
  1450. <para>
  1451. The <filename>virtclass</filename> overrides are now deprecated.
  1452. Use the equivalent class overrides instead (e.g.
  1453. <filename>virtclass-native</filename> becomes
  1454. <filename>class-native</filename>.)
  1455. </para>
  1456. </section>
  1457. <section id='migration-1.6-removed-renamed-recipes'>
  1458. <title>Removed and Renamed Recipes</title>
  1459. <para>
  1460. The following recipes have been removed:
  1461. <itemizedlist>
  1462. <listitem><para><filename>packagegroup-toolset-native</filename> -
  1463. This recipe is largely unused.
  1464. </para></listitem>
  1465. <listitem><para><filename>linux-yocto-3.8</filename> -
  1466. Support for the Linux yocto 3.8 kernel has been dropped.
  1467. Support for the 3.10 and 3.14 kernels have been added
  1468. with the <filename>linux-yocto-3.10</filename> and
  1469. <filename>linux-yocto-3.14</filename> recipes.
  1470. </para></listitem>
  1471. <listitem><para><filename>ocf-linux</filename> -
  1472. This recipe has been functionally replaced using
  1473. <filename>cryptodev-linux</filename>.
  1474. </para></listitem>
  1475. <listitem><para><filename>genext2fs</filename> -
  1476. <filename>genext2fs</filename> is no longer used by the
  1477. build system and is unmaintained upstream.
  1478. </para></listitem>
  1479. <listitem><para><filename>js</filename> -
  1480. This provided an ancient version of Mozilla's javascript
  1481. engine that is no longer needed.
  1482. </para></listitem>
  1483. <listitem><para><filename>zaurusd</filename> -
  1484. The recipe has been moved to the
  1485. <filename>meta-handheld</filename> layer.
  1486. </para></listitem>
  1487. <listitem><para><filename>eglibc 2.17</filename> -
  1488. Replaced by the <filename>eglibc 2.19</filename>
  1489. recipe.
  1490. </para></listitem>
  1491. <listitem><para><filename>gcc 4.7.2</filename> -
  1492. Replaced by the now stable
  1493. <filename>gcc 4.8.2</filename>.
  1494. </para></listitem>
  1495. <listitem><para><filename>external-sourcery-toolchain</filename> -
  1496. this recipe is now maintained in the
  1497. <filename>meta-sourcery</filename> layer.
  1498. </para></listitem>
  1499. <listitem><para><filename>linux-libc-headers-yocto 3.4+git</filename> -
  1500. Now using version 3.10 of the
  1501. <filename>linux-libc-headers</filename> by default.
  1502. </para></listitem>
  1503. <listitem><para><filename>meta-toolchain-gmae</filename> -
  1504. This recipe is obsolete.
  1505. </para></listitem>
  1506. <listitem><para><filename>packagegroup-core-sdk-gmae</filename> -
  1507. This recipe is obsolete.
  1508. </para></listitem>
  1509. <listitem><para><filename>packagegroup-core-standalone-gmae-sdk-target</filename> -
  1510. This recipe is obsolete.
  1511. </para></listitem>
  1512. </itemizedlist>
  1513. </para>
  1514. </section>
  1515. <section id='migration-1.6-removed-classes'>
  1516. <title>Removed Classes</title>
  1517. <para>
  1518. The following classes have become obsolete and have been removed:
  1519. <itemizedlist>
  1520. <listitem><para><filename>module_strip</filename>
  1521. </para></listitem>
  1522. <listitem><para><filename>pkg_metainfo</filename>
  1523. </para></listitem>
  1524. <listitem><para><filename>pkg_distribute</filename>
  1525. </para></listitem>
  1526. <listitem><para><filename>image-empty</filename>
  1527. </para></listitem>
  1528. </itemizedlist>
  1529. </para>
  1530. </section>
  1531. <section id='migration-1.6-reference-bsps'>
  1532. <title>Reference Board Support Packages (BSPs)</title>
  1533. <para>
  1534. The following reference BSPs changes occurred:
  1535. <itemizedlist>
  1536. <listitem><para>The BeagleBoard
  1537. (<filename>beagleboard</filename>) ARM reference hardware
  1538. has been replaced by the BeagleBone
  1539. (<filename>beaglebone</filename>) hardware.
  1540. </para></listitem>
  1541. <listitem><para>The RouterStation Pro
  1542. (<filename>routerstationpro</filename>) MIPS reference
  1543. hardware has been replaced by the EdgeRouter Lite
  1544. (<filename>edgerouter</filename>) hardware.
  1545. </para></listitem>
  1546. </itemizedlist>
  1547. The previous reference BSPs for the
  1548. <filename>beagleboard</filename> and
  1549. <filename>routerstationpro</filename> machines are still available
  1550. in a new <filename>meta-yocto-bsp-old</filename> layer in the
  1551. <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink>
  1552. at
  1553. <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>.
  1554. </para>
  1555. </section>
  1556. </section>
  1557. <section id='moving-to-the-yocto-project-1.7-release'>
  1558. <title>Moving to the Yocto Project 1.7 Release</title>
  1559. <para>
  1560. This section provides migration information for moving to the
  1561. Yocto Project 1.7 Release from the prior release.
  1562. </para>
  1563. <section id='migration-1.7-changes-to-setting-qemu-packageconfig-options'>
  1564. <title>Changes to Setting QEMU <filename>PACKAGECONFIG</filename> Options in <filename>local.conf</filename></title>
  1565. <para>
  1566. The QEMU recipe now uses a number of
  1567. <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
  1568. options to enable various optional features.
  1569. The method used to set defaults for these options means that
  1570. existing
  1571. <filename>local.conf</filename> files will need to be be
  1572. modified to append to <filename>PACKAGECONFIG</filename> for
  1573. <filename>qemu-native</filename> and
  1574. <filename>nativesdk-qemu</filename> instead of setting it.
  1575. In other words, to enable graphical output for QEMU, you should
  1576. now have these lines in <filename>local.conf</filename>:
  1577. <literallayout class='monospaced'>
  1578. PACKAGECONFIG_append_pn-qemu-native = " sdl"
  1579. PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
  1580. </literallayout>
  1581. </para>
  1582. </section>
  1583. <section id='migration-1.7-minimum-git-version'>
  1584. <title>Minimum Git version</title>
  1585. <para>
  1586. The minimum
  1587. <ulink url='&YOCTO_DOCS_OM_URL;#git'>Git</ulink> version
  1588. required on the build host is now 1.7.8 because the
  1589. <filename>--list</filename> option is now required by
  1590. BitBake's Git fetcher.
  1591. As always, if your host distribution does not provide a version of
  1592. Git that meets this requirement, you can use the
  1593. <filename>buildtools-tarball</filename> that does.
  1594. See the
  1595. "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
  1596. section for more information.
  1597. </para>
  1598. </section>
  1599. <section id='migration-1.7-autotools-class-changes'>
  1600. <title>Autotools Class Changes</title>
  1601. <para>
  1602. The following
  1603. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  1604. class changes occurred:
  1605. <itemizedlist>
  1606. <listitem><para><emphasis>
  1607. A separate build directory is now used by default:</emphasis>
  1608. The <filename>autotools</filename> class has been changed
  1609. to use a directory for building
  1610. (<link linkend='var-B'><filename>B</filename></link>),
  1611. which is separate from the source directory
  1612. (<link linkend='var-S'><filename>S</filename></link>).
  1613. This is commonly referred to as
  1614. <filename>B != S</filename>, or an out-of-tree build.</para>
  1615. <para>If the software being built is already capable of
  1616. building in a directory separate from the source, you
  1617. do not need to do anything.
  1618. However, if the software is not capable of being built
  1619. in this manner, you will
  1620. need to either patch the software so that it can build
  1621. separately, or you will need to change the recipe to
  1622. inherit the
  1623. <link linkend='ref-classes-autotools'><filename>autotools-brokensep</filename></link>
  1624. class instead of the <filename>autotools</filename> or
  1625. <filename>autotools_stage</filename> classes.
  1626. </para></listitem>
  1627. <listitem><para><emphasis>
  1628. The <filename>--foreign</filename> option is
  1629. no longer passed to <filename>automake</filename> when
  1630. running <filename>autoconf</filename>:</emphasis>
  1631. This option tells <filename>automake</filename> that a
  1632. particular software package does not follow the GNU
  1633. standards and therefore should not be expected
  1634. to distribute certain files such as
  1635. <filename>ChangeLog</filename>,
  1636. <filename>AUTHORS</filename>, and so forth.
  1637. Because the majority of upstream software packages already
  1638. tell <filename>automake</filename> to enable foreign mode
  1639. themselves, the option is mostly superfluous.
  1640. However, some recipes will need patches for this change.
  1641. You can easily make the change by patching
  1642. <filename>configure.ac</filename> so that it passes
  1643. "foreign" to <filename>AM_INIT_AUTOMAKE()</filename>.
  1644. See
  1645. <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2'>this commit</ulink>
  1646. for an example showing how to make the patch.
  1647. </para></listitem>
  1648. </itemizedlist>
  1649. </para>
  1650. </section>
  1651. <section id='migration-1.7-binary-configuration-scripts-disabled'>
  1652. <title>Binary Configuration Scripts Disabled</title>
  1653. <para>
  1654. Some of the core recipes that package binary configuration scripts
  1655. now disable the scripts due to the
  1656. scripts previously requiring error-prone path substitution.
  1657. Software that links against these libraries using these scripts
  1658. should use the much more robust <filename>pkg-config</filename>
  1659. instead.
  1660. The list of recipes changed in this version (and their
  1661. configuration scripts) is as follows:
  1662. <literallayout class='monospaced'>
  1663. directfb (directfb-config)
  1664. freetype (freetype-config)
  1665. gpgme (gpgme-config)
  1666. libassuan (libassuan-config)
  1667. libcroco (croco-6.0-config)
  1668. libgcrypt (libgcrypt-config)
  1669. libgpg-error (gpg-error-config)
  1670. libksba (ksba-config)
  1671. libpcap (pcap-config)
  1672. libpcre (pcre-config)
  1673. libpng (libpng-config, libpng16-config)
  1674. libsdl (sdl-config)
  1675. libusb-compat (libusb-config)
  1676. libxml2 (xml2-config)
  1677. libxslt (xslt-config)
  1678. ncurses (ncurses-config)
  1679. neon (neon-config)
  1680. npth (npth-config)
  1681. pth (pth-config)
  1682. taglib (taglib-config)
  1683. </literallayout>
  1684. Additionally, support for <filename>pkg-config</filename> has been
  1685. added to some recipes in the previous list in the rare cases
  1686. where the upstream software package does not already provide
  1687. it.
  1688. </para>
  1689. </section>
  1690. <section id='migration-1.7-glibc-replaces-eglibc'>
  1691. <title><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></title>
  1692. <para>
  1693. Because <filename>eglibc</filename> and
  1694. <filename>glibc</filename> were already fairly close, this
  1695. replacement should not require any significant changes to other
  1696. software that links to <filename>eglibc</filename>.
  1697. However, there were a number of minor changes in
  1698. <filename>glibc 2.20</filename> upstream that could require
  1699. patching some software (e.g. the removal of the
  1700. <filename>_BSD_SOURCE</filename> feature test macro).
  1701. </para>
  1702. <para>
  1703. <filename>glibc 2.20</filename> requires version 2.6.32 or greater
  1704. of the Linux kernel.
  1705. Thus, older kernels will no longer be usable in conjunction with it.
  1706. </para>
  1707. <para>
  1708. For full details on the changes in <filename>glibc 2.20</filename>,
  1709. see the upstream release notes
  1710. <ulink url='https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html'>here</ulink>.
  1711. </para>
  1712. </section>
  1713. <section id='migration-1.7-kernel-module-autoloading'>
  1714. <title>Kernel Module Autoloading</title>
  1715. <para>
  1716. The
  1717. <link linkend='var-module_autoload'><filename>module_autoload_*</filename></link>
  1718. variable is now deprecated and a new
  1719. <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
  1720. variable should be used instead.
  1721. Also,
  1722. <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
  1723. must now be used in conjunction with a new
  1724. <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
  1725. variable.
  1726. The new variables no longer require you to specify the module name
  1727. as part of the variable name.
  1728. This change not only simplifies usage but also allows the values
  1729. of these variables to be appropriately incorporated into task
  1730. signatures and thus trigger the appropriate tasks to re-execute
  1731. when changed.
  1732. You should replace any references to
  1733. <filename>module_autoload_*</filename> with
  1734. <filename>KERNEL_MODULE_AUTOLOAD</filename>, and add any modules
  1735. for which <filename>module_conf_*</filename> is specified to
  1736. <filename>KERNEL_MODULE_PROBECONF</filename>.
  1737. </para>
  1738. </section>
  1739. <section id='migration-1.7-qa-check-changes'>
  1740. <title>QA Check Changes</title>
  1741. <para>
  1742. The following changes have occurred to the QA check process:
  1743. <itemizedlist>
  1744. <listitem><para>
  1745. Additional QA checks <filename>file-rdeps</filename>
  1746. and <filename>build-deps</filename> have been added in
  1747. order to verify that file dependencies are satisfied
  1748. (e.g. package contains a script requiring
  1749. <filename>/bin/bash</filename>) and build-time dependencies
  1750. are declared, respectively.
  1751. For more information, please see the
  1752. "<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>"
  1753. chapter.
  1754. </para></listitem>
  1755. <listitem><para>
  1756. Package QA checks are now performed during a new
  1757. <link linkend='ref-tasks-package_qa'><filename>do_package_qa</filename></link>
  1758. task rather than being part of the
  1759. <link linkend='ref-tasks-package'><filename>do_package</filename></link>
  1760. task.
  1761. This allows more parallel execution.
  1762. This change is unlikely to be an issue except for highly
  1763. customized recipes that disable packaging tasks themselves
  1764. by marking them as <filename>noexec</filename>.
  1765. For those packages, you will need to disable the
  1766. <filename>do_package_qa</filename> task as well.
  1767. </para></listitem>
  1768. <listitem><para>
  1769. Files being overwritten during the
  1770. <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
  1771. task now trigger an error instead of a warning.
  1772. Recipes should not be overwriting files written to the
  1773. sysroot by other recipes.
  1774. If you have these types of recipes, you need to alter them
  1775. so that they do not overwrite these files.</para>
  1776. <para>You might now receive this error after changes in
  1777. configuration or metadata resulting in orphaned files
  1778. being left in the sysroot.
  1779. If you do receive this error, the way to resolve the issue
  1780. is to delete your
  1781. <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
  1782. or to move it out of the way and then re-start the build.
  1783. Anything that has been fully built up to that point and
  1784. does not need rebuilding will be restored from the shared
  1785. state cache and the rest of the build will be able to
  1786. proceed as normal.
  1787. </para></listitem>
  1788. </itemizedlist>
  1789. </para>
  1790. </section>
  1791. <section id='migration-1.7-removed-recipes'>
  1792. <title>Removed Recipes</title>
  1793. <para>
  1794. The following recipes have been removed:
  1795. <itemizedlist>
  1796. <listitem><para>
  1797. <filename>x-load</filename>:
  1798. This recipe has been superseded by
  1799. U-boot SPL for all Cortex-based TI SoCs.
  1800. For legacy boards, the <filename>meta-ti</filename>
  1801. layer, which contains a maintained recipe, should be used
  1802. instead.
  1803. </para></listitem>
  1804. <listitem><para>
  1805. <filename>ubootchart</filename>:
  1806. This recipe is obsolete.
  1807. A <filename>bootchart2</filename> recipe has been added
  1808. to functionally replace it.
  1809. </para></listitem>
  1810. <listitem><para>
  1811. <filename>linux-yocto 3.4</filename>:
  1812. Support for the linux-yocto 3.4 kernel has been dropped.
  1813. Support for the 3.10 and 3.14 kernels remains, while
  1814. support for version 3.17 has been added.
  1815. </para></listitem>
  1816. <listitem><para>
  1817. <filename>eglibc</filename> has been removed in favor of
  1818. <filename>glibc</filename>.
  1819. See the
  1820. "<link linkend='migration-1.7-glibc-replaces-eglibc'><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></link>"
  1821. section for more information.
  1822. </para></listitem>
  1823. </itemizedlist>
  1824. </para>
  1825. </section>
  1826. <section id='migration-1.7-miscellaneous-changes'>
  1827. <title>Miscellaneous Changes</title>
  1828. <para>
  1829. The following miscellaneous change occurred:
  1830. <itemizedlist>
  1831. <listitem><para>
  1832. The build history feature now writes
  1833. <filename>build-id.txt</filename> instead of
  1834. <filename>build-id</filename>.
  1835. Additionally, <filename>build-id.txt</filename>
  1836. now contains the full build header as printed by
  1837. BitBake upon starting the build.
  1838. You should manually remove old "build-id" files from your
  1839. existing build history repositories to avoid confusion.
  1840. For information on the build history feature, see the
  1841. "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
  1842. section in the Yocto Project Development Tasks Manual.
  1843. </para></listitem>
  1844. </itemizedlist>
  1845. </para>
  1846. </section>
  1847. </section>
  1848. <section id='moving-to-the-yocto-project-1.8-release'>
  1849. <title>Moving to the Yocto Project 1.8 Release</title>
  1850. <para>
  1851. This section provides migration information for moving to the
  1852. Yocto Project 1.8 Release from the prior release.
  1853. </para>
  1854. <section id='migration-1.8-removed-recipes'>
  1855. <title>Removed Recipes</title>
  1856. <para>
  1857. The following recipes have been removed:
  1858. <itemizedlist>
  1859. <listitem><para><filename>owl-video</filename>:
  1860. Functionality replaced by <filename>gst-player</filename>.
  1861. </para></listitem>
  1862. <listitem><para><filename>gaku</filename>:
  1863. Functionality replaced by <filename>gst-player</filename>.
  1864. </para></listitem>
  1865. <listitem><para><filename>gnome-desktop</filename>:
  1866. This recipe is now available in
  1867. <filename>meta-gnome</filename> and is no longer needed.
  1868. </para></listitem>
  1869. <listitem><para><filename>gsettings-desktop-schemas</filename>:
  1870. This recipe is now available in
  1871. <filename>meta-gnome</filename> and is no longer needed.
  1872. </para></listitem>
  1873. <listitem><para><filename>python-argparse</filename>:
  1874. The <filename>argparse</filename> module is already
  1875. provided in the default Python distribution in a
  1876. package named <filename>python-argparse</filename>.
  1877. Consequently, the separate
  1878. <filename>python-argparse</filename> recipe is no
  1879. longer needed.
  1880. </para></listitem>
  1881. <listitem><para><filename>telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control</filename>:
  1882. All these recipes have moved to
  1883. <filename>meta-oe</filename> and are consequently no
  1884. longer needed by any recipes in OpenEmbedded-Core.
  1885. </para></listitem>
  1886. <listitem><para><filename>linux-yocto_3.10</filename> and <filename>linux-yocto_3.17</filename>:
  1887. Support for the linux-yocto 3.10 and 3.17 kernels has been
  1888. dropped.
  1889. Support for the 3.14 kernel remains, while support for
  1890. 3.19 kernel has been added.
  1891. </para></listitem>
  1892. <listitem><para><filename>poky-feed-config-opkg</filename>:
  1893. This recipe has become obsolete and is no longer needed.
  1894. Use <filename>distro-feed-config</filename> from
  1895. <filename>meta-oe</filename> instead.
  1896. </para></listitem>
  1897. <listitem><para><filename>libav 0.8.x</filename>:
  1898. <filename>libav 9.x</filename> is now used.
  1899. </para></listitem>
  1900. <listitem><para><filename>sed-native</filename>:
  1901. No longer needed.
  1902. A working version of <filename>sed</filename> is expected
  1903. to be provided by the host distribution.
  1904. </para></listitem>
  1905. </itemizedlist>
  1906. </para>
  1907. </section>
  1908. <section id='migration-1.8-bluez'>
  1909. <title>BlueZ 4.x / 5.x Selection</title>
  1910. <para>
  1911. Proper built-in support for selecting BlueZ 5.x in preference
  1912. to the default of 4.x now exists.
  1913. To use BlueZ 5.x, simply add "bluez5" to your
  1914. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
  1915. value.
  1916. If you had previously added append files
  1917. (<filename>*.bbappend</filename>) to make this selection, you can
  1918. now remove them.
  1919. </para>
  1920. <para>
  1921. Additionally, a
  1922. <link linkend='ref-classes-bluetooth'><filename>bluetooth</filename></link>
  1923. class has been added to make selection of the appropriate bluetooth
  1924. support within a recipe a little easier.
  1925. If you wish to make use of this class in a recipe, add something
  1926. such as the following:
  1927. <literallayout class='monospaced'>
  1928. inherit bluetooth
  1929. PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}
  1930. PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
  1931. PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
  1932. </literallayout>
  1933. </para>
  1934. </section>
  1935. <section id='migration-1.8-kernel-build-changes'>
  1936. <title>Kernel Build Changes</title>
  1937. <para>
  1938. The kernel build process was changed to place the source
  1939. in a common shared work area and to place build artifacts
  1940. separately in the source code tree.
  1941. In theory, migration paths have been provided for most common
  1942. usages in kernel recipes but this might not work in all cases.
  1943. In particular, users need to ensure that
  1944. <filename>${S}</filename> (source files) and
  1945. <filename>${B}</filename> (build artifacts) are used
  1946. correctly in functions such as
  1947. <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
  1948. and
  1949. <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
  1950. For kernel recipes that do not inherit from
  1951. <filename>kernel-yocto</filename> or include
  1952. <filename>linux-yocto.inc</filename>, you might wish to
  1953. refer to the <filename>linux.inc</filename> file in the
  1954. <filename>meta-oe</filename> layer for the kinds of changes you
  1955. need to make.
  1956. For reference, here is the
  1957. <ulink url='http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee'>commit</ulink>
  1958. where the <filename>linux.inc</filename> file in
  1959. <filename>meta-oe</filename> was updated.
  1960. </para>
  1961. <para>
  1962. Recipes that rely on the kernel source code and do not inherit
  1963. the module classes might need to add explicit dependencies on
  1964. the <filename>do_shared_workdir</filename> kernel task, for example:
  1965. <literallayout class='monospaced'>
  1966. do_configure[depends] += "virtual/kernel:do_shared_workdir"
  1967. </literallayout>
  1968. </para>
  1969. </section>
  1970. <section id='migration-1.8-ssl'>
  1971. <title>SSL 3.0 is Now Disabled in OpenSSL</title>
  1972. <para>
  1973. SSL 3.0 is now disabled when building OpenSSL.
  1974. Disabling SSL 3.0 avoids any lingering instances of the POODLE
  1975. vulnerability.
  1976. If you feel you must re-enable SSL 3.0, then you can add an
  1977. append file (<filename>*.bbappend</filename>) for the
  1978. <filename>openssl</filename> recipe to remove "-no-ssl3"
  1979. from
  1980. <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>.
  1981. </para>
  1982. </section>
  1983. <section id='migration-1.8-default-sysroot-poisoning'>
  1984. <title>Default Sysroot Poisoning</title>
  1985. <para>
  1986. <filename>gcc's</filename> default sysroot and include directories
  1987. are now "poisoned".
  1988. In other words, the sysroot and include directories are being
  1989. redirected to a non-existent location in order to catch when
  1990. host directories are being used due to the correct options not
  1991. being passed.
  1992. This poisoning applies both to the cross-compiler used within the
  1993. build and to the cross-compiler produced in the SDK.
  1994. </para>
  1995. <para>
  1996. If this change causes something in the build to fail, it almost
  1997. certainly means the various compiler flags and commands are not
  1998. being passed correctly to the underlying piece of software.
  1999. In such cases, you need to take corrective steps.
  2000. </para>
  2001. </section>
  2002. <section id='migration-1.8-rebuild-improvements'>
  2003. <title>Rebuild Improvements</title>
  2004. <para>
  2005. Changes have been made to the
  2006. <link linkend='ref-classes-base'><filename>base</filename></link>,
  2007. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>,
  2008. and
  2009. <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
  2010. classes to clean out generated files when the
  2011. <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
  2012. task needs to be re-executed.
  2013. </para>
  2014. <para>
  2015. One of the improvements is to attempt to run "make clean" during
  2016. the <filename>do_configure</filename> task if a
  2017. <filename>Makefile</filename> exists.
  2018. Some software packages do not provide a working clean target
  2019. within their make files.
  2020. If you have such recipes, you need to set
  2021. <link linkend='var-CLEANBROKEN'><filename>CLEANBROKEN</filename></link>
  2022. to "1" within the recipe, for example:
  2023. <literallayout class='monospaced'>
  2024. CLEANBROKEN = "1"
  2025. </literallayout>
  2026. </para>
  2027. </section>
  2028. <section id='migration-1.8-qa-check-and-validation-changes'>
  2029. <title>QA Check and Validation Changes</title>
  2030. <para>
  2031. The following QA Check and Validation Changes have occurred:
  2032. <itemizedlist>
  2033. <listitem><para>
  2034. Usage of <filename>PRINC</filename>
  2035. previously triggered a warning.
  2036. It now triggers an error.
  2037. You should remove any remaining usage of
  2038. <filename>PRINC</filename> in any recipe or append file.
  2039. </para></listitem>
  2040. <listitem><para>
  2041. An additional QA check has been added to detect usage of
  2042. <filename>${D}</filename> in
  2043. <link linkend='var-FILES'><filename>FILES</filename></link>
  2044. values where
  2045. <link linkend='var-D'><filename>D</filename></link> values
  2046. should not be used at all.
  2047. The same check ensures that <filename>$D</filename> is used
  2048. in
  2049. <filename>pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm</filename>
  2050. functions instead of <filename>${D}</filename>.
  2051. </para></listitem>
  2052. <listitem><para>
  2053. <link linkend='var-S'><filename>S</filename></link> now
  2054. needs to be set to a valid value within a recipe.
  2055. If <filename>S</filename> is not set in the recipe, the
  2056. directory is not automatically created.
  2057. If <filename>S</filename> does not point to a directory
  2058. that exists at the time the
  2059. <link linkend='ref-tasks-unpack'><filename>do_unpack</filename></link>
  2060. task finishes, a warning will be shown.
  2061. </para></listitem>
  2062. <listitem><para>
  2063. <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
  2064. is now validated for correct formatting of multiple
  2065. licenses.
  2066. If the format is invalid (e.g. multiple licenses are
  2067. specified with no operators to specify how the multiple
  2068. licenses interact), then a warning will be shown.
  2069. </para></listitem>
  2070. </itemizedlist>
  2071. </para>
  2072. </section>
  2073. <section id='migration-1.8-miscellaneous-changes'>
  2074. <title>Miscellaneous Changes</title>
  2075. <para>
  2076. The following miscellaneous changes have occurred:
  2077. <itemizedlist>
  2078. <listitem><para>
  2079. The <filename>send-error-report</filename> script now
  2080. expects a "-s" option to be specified before the server
  2081. address.
  2082. This assumes a server address is being specified.
  2083. </para></listitem>
  2084. <listitem><para>
  2085. The <filename>oe-pkgdata-util</filename> script now
  2086. expects a "-p" option to be specified before the
  2087. <filename>pkgdata</filename> directory, which is now
  2088. optional.
  2089. If the <filename>pkgdata</filename> directory is not
  2090. specified, the script will run BitBake to query
  2091. <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
  2092. from the build environment.
  2093. </para></listitem>
  2094. </itemizedlist>
  2095. </para>
  2096. </section>
  2097. </section>
  2098. <section id='moving-to-the-yocto-project-2.0-release'>
  2099. <title>Moving to the Yocto Project 2.0 Release</title>
  2100. <para>
  2101. This section provides migration information for moving to the
  2102. Yocto Project 2.0 Release from the prior release.
  2103. </para>
  2104. <section id='migration-2.0-gcc-5'>
  2105. <title>GCC 5</title>
  2106. <para>
  2107. The default compiler is now GCC 5.2.
  2108. This change has required fixes for compilation errors in a number
  2109. of other recipes.
  2110. </para>
  2111. <para>
  2112. One important example is a fix for when the Linux kernel freezes at
  2113. boot time on ARM when built with GCC 5.
  2114. If you are using your own kernel recipe or source tree and
  2115. building for ARM, you will likely need to apply this
  2116. <ulink url='https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2'>patch</ulink>.
  2117. The standard <filename>linux-yocto</filename> kernel source tree
  2118. already has a workaround for the same issue.
  2119. </para>
  2120. <para>
  2121. For further details, see
  2122. <ulink url='https://gcc.gnu.org/gcc-5/changes.html'></ulink> and
  2123. the porting guide at
  2124. <ulink url='https://gcc.gnu.org/gcc-5/porting_to.html'></ulink>.
  2125. </para>
  2126. <para>
  2127. Alternatively, you can switch back to GCC 4.9 or 4.8 by
  2128. setting <filename>GCCVERSION</filename> in your configuration,
  2129. as follows:
  2130. <literallayout class='monospaced'>
  2131. GCCVERSION = "4.9%"
  2132. </literallayout>
  2133. </para>
  2134. </section>
  2135. <section id='migration-2.0-Gstreamer-0.10-removed'>
  2136. <title>Gstreamer 0.10 Removed</title>
  2137. <para>
  2138. Gstreamer 0.10 has been removed in favor of Gstreamer 1.x.
  2139. As part of the change, recipes for Gstreamer 0.10 and related
  2140. software are now located
  2141. in <filename>meta-multimedia</filename>.
  2142. This change results in Qt4 having Phonon and Gstreamer
  2143. support in QtWebkit disabled by default.
  2144. </para>
  2145. </section>
  2146. <section id='migration-2.0-removed-recipes'>
  2147. <title>Removed Recipes</title>
  2148. <para>
  2149. The following recipes have been moved or removed:
  2150. <itemizedlist>
  2151. <listitem><para>
  2152. <filename>bluez4</filename>: The recipe is obsolete and
  2153. has been moved due to <filename>bluez5</filename>
  2154. becoming fully integrated.
  2155. The <filename>bluez4</filename> recipe now resides in
  2156. <filename>meta-oe</filename>.
  2157. </para></listitem>
  2158. <listitem><para>
  2159. <filename>gamin</filename>: The recipe is obsolete and
  2160. has been removed.
  2161. </para></listitem>
  2162. <listitem><para>
  2163. <filename>gnome-icon-theme</filename>: The recipe's
  2164. functionally has been replaced by
  2165. <filename>adwaita-icon-theme</filename>.
  2166. </para></listitem>
  2167. <listitem><para>
  2168. Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have
  2169. been removed in favor of the recipes for Gstreamer 1.x.
  2170. </para></listitem>
  2171. <listitem><para>
  2172. <filename>insserv</filename>: The recipe is obsolete and
  2173. has been removed.
  2174. </para></listitem>
  2175. <listitem><para>
  2176. <filename>libunique</filename>: The recipe is no longer
  2177. used and has been moved to <filename>meta-oe</filename>.
  2178. </para></listitem>
  2179. <listitem><para>
  2180. <filename>midori</filename>: The recipe's functionally
  2181. has been replaced by <filename>epiphany</filename>.
  2182. </para></listitem>
  2183. <listitem><para>
  2184. <filename>python-gst</filename>: The recipe is obsolete
  2185. and has been removed since it only contains bindings for
  2186. Gstreamer 0.10.
  2187. </para></listitem>
  2188. <listitem><para>
  2189. <filename>qt-mobility</filename>: The recipe is obsolete and
  2190. has been removed since it requires
  2191. <filename>Gstreamer 0.10</filename>, which has been
  2192. replaced.
  2193. </para></listitem>
  2194. <listitem><para>
  2195. <filename>subversion</filename>: All 1.6.x versions of this
  2196. recipe have been removed.
  2197. </para></listitem>
  2198. <listitem><para>
  2199. <filename>webkit-gtk</filename>: The older 1.8.3 version
  2200. of this recipe has been removed in favor of
  2201. <filename>webkitgtk</filename>.
  2202. </para></listitem>
  2203. </itemizedlist>
  2204. </para>
  2205. </section>
  2206. <section id='migration-2.0-bitbake-datastore-improvements'>
  2207. <title>BitBake datastore improvements</title>
  2208. <para>
  2209. The method by which BitBake's datastore handles overrides has
  2210. changed.
  2211. Overrides are now applied dynamically and
  2212. <filename>bb.data.update_data()</filename> is now a no-op.
  2213. Thus, <filename>bb.data.update_data()</filename> is no longer
  2214. required in order to apply the correct overrides.
  2215. In practice, this change is unlikely to require any changes to
  2216. Metadata.
  2217. However, these minor changes in behavior exist:
  2218. <itemizedlist>
  2219. <listitem><para>
  2220. All potential overrides are now visible in the variable
  2221. history as seen when you run the following:
  2222. <literallayout class='monospaced'>
  2223. $ bitbake -e
  2224. </literallayout>
  2225. </para></listitem>
  2226. <listitem><para>
  2227. <filename>d.delVar('</filename><replaceable>VARNAME</replaceable><filename>')</filename> and
  2228. <filename>d.setVar('</filename><replaceable>VARNAME</replaceable><filename>', None)</filename>
  2229. result in the variable and all of its overrides being
  2230. cleared out.
  2231. Before the change, only the non-overridden values
  2232. were cleared.
  2233. </para></listitem>
  2234. </itemizedlist>
  2235. </para>
  2236. </section>
  2237. <section id='migration-2.0-shell-message-function-changes'>
  2238. <title>Shell Message Function Changes</title>
  2239. <para>
  2240. The shell versions of the BitBake message functions (i.e.
  2241. <filename>bbdebug</filename>, <filename>bbnote</filename>,
  2242. <filename>bbwarn</filename>, <filename>bbplain</filename>,
  2243. <filename>bberror</filename>, and <filename>bbfatal</filename>)
  2244. are now connected through to their BitBake equivalents
  2245. <filename>bb.debug()</filename>, <filename>bb.note()</filename>,
  2246. <filename>bb.warn()</filename>, <filename>bb.plain()</filename>,
  2247. <filename>bb.error()</filename>, and
  2248. <filename>bb.fatal()</filename>, respectively.
  2249. Thus, those message functions that you would expect to be printed
  2250. by the BitBake UI are now actually printed.
  2251. In practice, this change means two things:
  2252. <itemizedlist>
  2253. <listitem><para>
  2254. If you now see messages on the console that you did not
  2255. previously see as a result of this change, you might
  2256. need to clean up the calls to
  2257. <filename>bbwarn</filename>, <filename>bberror</filename>,
  2258. and so forth.
  2259. Or, you might want to simply remove the calls.
  2260. </para></listitem>
  2261. <listitem><para>
  2262. The <filename>bbfatal</filename> message function now
  2263. suppresses the full error log in the UI, which means any
  2264. calls to <filename>bbfatal</filename> where you still
  2265. wish to see the full error log should be replaced by
  2266. <filename>die</filename> or
  2267. <filename>bbfatal_log</filename>.
  2268. </para></listitem>
  2269. </itemizedlist>
  2270. </para>
  2271. </section>
  2272. <section id='migration-2.0-extra-development-debug-package-cleanup'>
  2273. <title>Extra Development/Debug Package Cleanup</title>
  2274. <para>
  2275. The following recipes have had extra
  2276. <filename>dev/dbg</filename> packages removed:
  2277. <itemizedlist>
  2278. <listitem><para>
  2279. <filename>acl</filename>
  2280. </para></listitem>
  2281. <listitem><para>
  2282. <filename>apmd</filename>
  2283. </para></listitem>
  2284. <listitem><para>
  2285. <filename>aspell</filename>
  2286. </para></listitem>
  2287. <listitem><para>
  2288. <filename>attr</filename>
  2289. </para></listitem>
  2290. <listitem><para>
  2291. <filename>augeas</filename>
  2292. </para></listitem>
  2293. <listitem><para>
  2294. <filename>bzip2</filename>
  2295. </para></listitem>
  2296. <listitem><para>
  2297. <filename>cogl</filename>
  2298. </para></listitem>
  2299. <listitem><para>
  2300. <filename>curl</filename>
  2301. </para></listitem>
  2302. <listitem><para>
  2303. <filename>elfutils</filename>
  2304. </para></listitem>
  2305. <listitem><para>
  2306. <filename>gcc-target</filename>
  2307. </para></listitem>
  2308. <listitem><para>
  2309. <filename>libgcc</filename>
  2310. </para></listitem>
  2311. <listitem><para>
  2312. <filename>libtool</filename>
  2313. </para></listitem>
  2314. <listitem><para>
  2315. <filename>libxmu</filename>
  2316. </para></listitem>
  2317. <listitem><para>
  2318. <filename>opkg</filename>
  2319. </para></listitem>
  2320. <listitem><para>
  2321. <filename>pciutils</filename>
  2322. </para></listitem>
  2323. <listitem><para>
  2324. <filename>rpm</filename>
  2325. </para></listitem>
  2326. <listitem><para>
  2327. <filename>sysfsutils</filename>
  2328. </para></listitem>
  2329. <listitem><para>
  2330. <filename>tiff</filename>
  2331. </para></listitem>
  2332. <listitem><para>
  2333. <filename>xz</filename>
  2334. </para></listitem>
  2335. </itemizedlist>
  2336. All of the above recipes now conform to the standard packaging
  2337. scheme where a single <filename>-dev</filename>,
  2338. <filename>-dbg</filename>, and <filename>-staticdev</filename>
  2339. package exists per recipe.
  2340. </para>
  2341. </section>
  2342. <section id='migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core'>
  2343. <title>Recipe Maintenance Tracking Data Moved to OE-Core</title>
  2344. <para>
  2345. Maintenance tracking data for recipes that was previously part
  2346. of <filename>meta-yocto</filename> has been moved to
  2347. <link linkend='oe-core'>OE-Core</link>.
  2348. The change includes <filename>package_regex.inc</filename> and
  2349. <filename>distro_alias.inc</filename>, which are typically enabled
  2350. when using the
  2351. <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
  2352. class.
  2353. Additionally, the contents of
  2354. <filename>upstream_tracking.inc</filename> has now been split out
  2355. to the relevant recipes.
  2356. </para>
  2357. </section>
  2358. <section id='migration-2.0-automatic-stale-sysroot-file-cleanup'>
  2359. <title>Automatic Stale Sysroot File Cleanup</title>
  2360. <para>
  2361. Stale files from recipes that no longer exist in the current
  2362. configuration are now automatically removed from
  2363. sysroot as well as removed from
  2364. any other place managed by shared state.
  2365. This automatic cleanup means that the build system now properly
  2366. handles situations such as renaming the build system side of
  2367. recipes, removal of layers from
  2368. <filename>bblayers.conf</filename>, and
  2369. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
  2370. changes.
  2371. </para>
  2372. <para>
  2373. Additionally, work directories for old versions of recipes are
  2374. now pruned.
  2375. If you wish to disable pruning old work directories, you can set
  2376. the following variable in your configuration:
  2377. <literallayout class='monospaced'>
  2378. SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
  2379. </literallayout>
  2380. </para>
  2381. </section>
  2382. <section id='migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source'>
  2383. <title><filename>linux-yocto</filename> Kernel Metadata Repository Now Split from Source</title>
  2384. <para>
  2385. The <filename>linux-yocto</filename> tree has up to now been a
  2386. combined set of kernel changes and configuration (meta) data
  2387. carried in a single tree.
  2388. While this format is effective at keeping kernel configuration and
  2389. source modifications synchronized, it is not always obvious to
  2390. developers how to manipulate the Metadata as compared to the
  2391. source.
  2392. </para>
  2393. <para>
  2394. Metadata processing has now been removed from the
  2395. <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
  2396. class and the external Metadata repository
  2397. <filename>yocto-kernel-cache</filename>, which has always been used
  2398. to seed the <filename>linux-yocto</filename> "meta" branch.
  2399. This separate <filename>linux-yocto</filename> cache repository
  2400. is now the primary location for this data.
  2401. Due to this change, <filename>linux-yocto</filename> is no longer
  2402. able to process combined trees.
  2403. Thus, if you need to have your own combined kernel repository,
  2404. you must do the split there as well and update your recipes
  2405. accordingly.
  2406. See the <filename>meta/recipes-kernel/linux/linux-yocto_4.1.bb</filename>
  2407. recipe for an example.
  2408. </para>
  2409. </section>
  2410. <section id='migration-2.0-additional-qa-checks'>
  2411. <title>Additional QA checks</title>
  2412. <para>
  2413. The following QA checks have been added:
  2414. <itemizedlist>
  2415. <listitem><para>
  2416. Added a "host-user-contaminated" check for ownership
  2417. issues for packaged files outside of
  2418. <filename>/home</filename>.
  2419. The check looks for files that are incorrectly owned by the
  2420. user that ran BitBake instead of owned by a valid user in
  2421. the target system.
  2422. </para></listitem>
  2423. <listitem><para>
  2424. Added an "invalid-chars" check for invalid (non-UTF8)
  2425. characters in recipe metadata variable values
  2426. (i.e.
  2427. <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>,
  2428. <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>,
  2429. <link linkend='var-LICENSE'><filename>LICENSE</filename></link>,
  2430. and
  2431. <link linkend='var-SECTION'><filename>SECTION</filename></link>).
  2432. Some package managers do not support these characters.
  2433. </para></listitem>
  2434. <listitem><para>
  2435. Added an "invalid-packageconfig" check for any options
  2436. specified in
  2437. <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
  2438. that do not match any <filename>PACKAGECONFIG</filename>
  2439. option defined for the recipe.
  2440. </para></listitem>
  2441. </itemizedlist>
  2442. </para>
  2443. </section>
  2444. <section id='migration-2.0-miscellaneous'>
  2445. <title>Miscellaneous Changes</title>
  2446. <para>
  2447. These additional changes exist:
  2448. <itemizedlist>
  2449. <listitem><para>
  2450. <filename>gtk-update-icon-cache</filename> has been
  2451. renamed to <filename>gtk-icon-utils</filename>.
  2452. </para></listitem>
  2453. <listitem><para>
  2454. The <filename>tools-profile</filename>
  2455. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
  2456. item as well as its corresponding packagegroup and
  2457. <filename>packagegroup-core-tools-profile</filename> no
  2458. longer bring in <filename>oprofile</filename>.
  2459. Bringing in <filename>oprofile</filename> was originally
  2460. added to aid compilation on resource-constrained
  2461. targets.
  2462. However, this aid has not been widely used and is not
  2463. likely to be used going forward due to the more powerful
  2464. target platforms and the existence of better
  2465. cross-compilation tools.
  2466. </para></listitem>
  2467. <listitem><para>
  2468. The
  2469. <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
  2470. variable's default value now specifies
  2471. <filename>ext4</filename> instead of
  2472. <filename>ext3</filename>.
  2473. </para></listitem>
  2474. <listitem><para>
  2475. All support for the <filename>PRINC</filename>
  2476. variable has been removed.
  2477. </para></listitem>
  2478. <listitem><para>
  2479. The <filename>packagegroup-core-full-cmdline</filename>
  2480. packagegroup no longer brings in
  2481. <filename>lighttpd</filename> due to the fact that
  2482. bringing in <filename>lighttpd</filename> is not really in
  2483. line with the packagegroup's purpose, which is to add full
  2484. versions of command-line tools that by default are
  2485. provided by <filename>busybox</filename>.
  2486. </para></listitem>
  2487. </itemizedlist>
  2488. </para>
  2489. </section>
  2490. </section>
  2491. <section id='moving-to-the-yocto-project-2.1-release'>
  2492. <title>Moving to the Yocto Project 2.1 Release</title>
  2493. <para>
  2494. This section provides migration information for moving to the
  2495. Yocto Project 2.1 Release from the prior release.
  2496. </para>
  2497. <section id='migration-2.1-variable-expansion-in-python-functions'>
  2498. <title>Variable Expansion in Python Functions</title>
  2499. <para>
  2500. Variable expressions, such as
  2501. <filename>${</filename><replaceable>VARNAME</replaceable><filename>}</filename>
  2502. no longer expand automatically within Python functions.
  2503. Suppressing expansion was done to allow Python functions to
  2504. construct shell scripts or other code for situations in which you
  2505. do not want such expressions expanded.
  2506. For any existing code that relies on these expansions, you need to
  2507. change the expansions to expand the value of individual
  2508. variables through <filename>d.getVar()</filename>.
  2509. To alternatively expand more complex expressions,
  2510. use <filename>d.expand()</filename>.
  2511. </para>
  2512. </section>
  2513. <section id='migration-2.1-overrides-must-now-be-lower-case'>
  2514. <title>Overrides Must Now be Lower-Case</title>
  2515. <para>
  2516. The convention for overrides has always been for them to be
  2517. lower-case characters.
  2518. This practice is now a requirement as BitBake's datastore now
  2519. assumes lower-case characters in order to give a slight performance
  2520. boost during parsing.
  2521. In practical terms, this requirement means that anything that ends
  2522. up in
  2523. <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
  2524. must now appear in lower-case characters (e.g. values for
  2525. <filename>MACHINE</filename>, <filename>TARGET_ARCH</filename>,
  2526. <filename>DISTRO</filename>, and also recipe names if
  2527. <filename>_pn-</filename><replaceable>recipename</replaceable>
  2528. overrides are to be effective).
  2529. </para>
  2530. </section>
  2531. <section id='migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory'>
  2532. <title>Expand Parameter to <filename>getVar()</filename> and
  2533. <filename>getVarFlag()</filename> is Now Mandatory</title>
  2534. <para>
  2535. The expand parameter to <filename>getVar()</filename> and
  2536. <filename>getVarFlag()</filename> previously defaulted to
  2537. False if not specified.
  2538. Now, however, no default exists so one must be specified.
  2539. You must change any <filename>getVar()</filename> calls that
  2540. do not specify the final expand parameter to calls that do specify
  2541. the parameter.
  2542. You can run the following <filename>sed</filename> command at the
  2543. base of a layer to make this change:
  2544. <literallayout class='monospaced'>
  2545. sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *`
  2546. sed -e 's:\(\.getVarFlag([^,()]*, [^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *`
  2547. </literallayout>
  2548. <note>
  2549. The reason for this change is that it prepares the way for
  2550. changing the default to True in a future Yocto Project release.
  2551. This future change is a much more sensible default than False.
  2552. However, the change needs to be made gradually as a sudden
  2553. change of the default would potentially cause side-effects
  2554. that would be difficult to detect.
  2555. </note>
  2556. </para>
  2557. </section>
  2558. <section id='migration-2.1-makefile-environment-changes'>
  2559. <title>Makefile Environment Changes</title>
  2560. <para>
  2561. <link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link>
  2562. now defaults to "" instead of "-e MAKEFLAGS=".
  2563. Setting <filename>EXTRA_OEMAKE</filename> to "-e MAKEFLAGS=" by
  2564. default was a historical accident that has required many classes
  2565. (e.g. <filename>autotools</filename>, <filename>module</filename>)
  2566. and recipes to override this default in order to work with
  2567. sensible build systems.
  2568. When upgrading to the release, you must edit any recipe that
  2569. relies upon this old default by either setting
  2570. <filename>EXTRA_OEMAKE</filename> back to "-e MAKEFLAGS=" or by
  2571. explicitly setting any required variable value overrides using
  2572. <filename>EXTRA_OEMAKE</filename>, which is typically only needed
  2573. when a Makefile sets a default value for a variable that is
  2574. inappropriate for cross-compilation using the "=" operator rather
  2575. than the "?=" operator.
  2576. </para>
  2577. </section>
  2578. <section id='migration-2.1-libexecdir-reverted-to-prefix-libexec'>
  2579. <title><filename>libexecdir</filename> Reverted to <filename>${prefix}/libexec</filename></title>
  2580. <para>
  2581. The use of <filename>${libdir}/${BPN}</filename> as
  2582. <filename>libexecdir</filename> is different as compared to all
  2583. other mainstream distributions, which either uses
  2584. <filename>${prefix}/libexec</filename> or
  2585. <filename>${libdir}</filename>.
  2586. The use is also contrary to the GNU Coding Standards
  2587. (i.e. <ulink url='https://www.gnu.org/prep/standards/html_node/Directory-Variables.html'></ulink>)
  2588. that suggest <filename>${prefix}/libexec</filename> and also
  2589. notes that any package-specific nesting should be done by the
  2590. package itself.
  2591. Finally, having <filename>libexecdir</filename> change between
  2592. recipes makes it very difficult for different recipes to invoke
  2593. binaries that have been installed into
  2594. <filename>libexecdir</filename>.
  2595. The Filesystem Hierarchy Standard
  2596. (i.e. <ulink url='http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html'></ulink>)
  2597. now recognizes the use of <filename>${prefix}/libexec/</filename>,
  2598. giving distributions the choice between
  2599. <filename>${prefix}/lib</filename> or
  2600. <filename>${prefix}/libexec</filename> without breaking FHS.
  2601. </para>
  2602. </section>
  2603. <section id='migration-2.1-ac-cv-sizeof-off-t-no-longer-cached-in-site-files'>
  2604. <title><filename>ac_cv_sizeof_off_t</filename> is No Longer Cached in Site Files</title>
  2605. <para>
  2606. For recipes inheriting the
  2607. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  2608. class, <filename>ac_cv_sizeof_off_t</filename> is no longer cached
  2609. in the site files for <filename>autoconf</filename>.
  2610. The reason for this change is because the
  2611. <filename>ac_cv_sizeof_off_t</filename> value is not necessarily
  2612. static per architecture as was previously assumed.
  2613. Rather, the value changes based on whether large file support is
  2614. enabled.
  2615. For most software that uses <filename>autoconf</filename>, this
  2616. change should not be a problem.
  2617. However, if you have a recipe that bypasses the standard
  2618. <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
  2619. task from the <filename>autotools</filename> class and the software
  2620. the recipe is building uses a very old version of
  2621. <filename>autoconf</filename>, the recipe might be incapable of
  2622. determining the correct size of <filename>off_t</filename> during
  2623. <filename>do_configure</filename>.
  2624. </para>
  2625. <para>
  2626. The best course of action is to patch the software as necessary
  2627. to allow the default implementation from the
  2628. <filename>autotools</filename> class to work such that
  2629. <filename>autoreconf</filename> succeeds and produces a working
  2630. configure script, and to remove the
  2631. overridden <filename>do_configure</filename> task such that the
  2632. default implementation does get used.
  2633. </para>
  2634. </section>
  2635. <section id='migration-2.1-image-generation-split-out-from-filesystem-generation'>
  2636. <title>Image Generation is Now Split Out from Filesystem Generation</title>
  2637. <para>
  2638. Previously, for image recipes the
  2639. <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
  2640. task assembled the filesystem and then from that filesystem
  2641. generated images.
  2642. With this Yocto Project release, image generation is split into
  2643. separate
  2644. <link linkend='ref-tasks-image'><filename>do_image_*</filename></link>
  2645. tasks for clarity both in operation and in the code.
  2646. </para>
  2647. <para>
  2648. For most cases, this change does not present any problems.
  2649. However, if you have made customizations that directly modify the
  2650. <filename>do_rootfs</filename> task or that mention
  2651. <filename>do_rootfs</filename>, you might need to update those
  2652. changes.
  2653. In particular, if you had added any tasks after
  2654. <filename>do_rootfs</filename>, you should make edits so that
  2655. those tasks are after the
  2656. <link linkend='ref-tasks-image-complete'><filename>do_image_complete</filename></link>
  2657. task rather than after <filename>do_rootfs</filename>
  2658. so that the your added tasks
  2659. run at the correct time.
  2660. </para>
  2661. <para>
  2662. A minor part of this restructuring is that the post-processing
  2663. definitions and functions have been moved from the
  2664. <link linkend='ref-classes-image'><filename>image</filename></link>
  2665. class to the
  2666. <link linkend='ref-classes-rootfs*'><filename>rootfs-postcommands</filename></link>
  2667. class.
  2668. Functionally, however, they remain unchanged.
  2669. </para>
  2670. </section>
  2671. <section id='migration-2.1-removed-recipes'>
  2672. <title>Removed Recipes</title>
  2673. <para>
  2674. The following recipes have been removed in the 2.1 release:
  2675. <itemizedlist>
  2676. <listitem><para><filename>gcc</filename> version 4.8:
  2677. Versions 4.9 and 5.3 remain.
  2678. </para></listitem>
  2679. <listitem><para><filename>qt4</filename>:
  2680. All support for Qt 4.x has been moved out to a separate
  2681. <filename>meta-qt4</filename> layer because Qt 4 is no
  2682. longer supported upstream.
  2683. </para></listitem>
  2684. <listitem><para><filename>x11vnc</filename>:
  2685. Moved to the <filename>meta-oe</filename> layer.
  2686. </para></listitem>
  2687. <listitem><para><filename>linux-yocto-3.14</filename>:
  2688. No longer supported.
  2689. </para></listitem>
  2690. <listitem><para><filename>linux-yocto-3.19</filename>:
  2691. No longer supported.
  2692. </para></listitem>
  2693. <listitem><para><filename>libjpeg</filename>:
  2694. Replaced by the <filename>libjpeg-turbo</filename> recipe.
  2695. </para></listitem>
  2696. <listitem><para><filename>pth</filename>:
  2697. Became obsolete.
  2698. </para></listitem>
  2699. <listitem><para><filename>liboil</filename>:
  2700. Recipe is no longer needed and has been moved to the
  2701. <filename>meta-multimedia</filename> layer.
  2702. </para></listitem>
  2703. <listitem><para><filename>gtk-theme-torturer</filename>:
  2704. Recipe is no longer needed and has been moved to the
  2705. <filename>meta-gnome</filename> layer.
  2706. </para></listitem>
  2707. <listitem><para><filename>gnome-mime-data</filename>:
  2708. Recipe is no longer needed and has been moved to the
  2709. <filename>meta-gnome</filename> layer.
  2710. </para></listitem>
  2711. <listitem><para><filename>udev</filename>:
  2712. Replaced by the <filename>eudev</filename> recipe for
  2713. compatibility when using <filename>sysvinit</filename>
  2714. with newer kernels.
  2715. </para></listitem>
  2716. <listitem><para><filename>python-pygtk</filename>:
  2717. Recipe became obsolete.
  2718. </para></listitem>
  2719. <listitem><para><filename>adt-installer</filename>:
  2720. Recipe became obsolete.
  2721. See the
  2722. "<link linkend='migration-2.1-adt-removed'>ADT Removed</link>"
  2723. section for more information.
  2724. </para></listitem>
  2725. </itemizedlist>
  2726. </para>
  2727. </section>
  2728. <section id='migration-2.1-class-changes'>
  2729. <title>Class Changes</title>
  2730. <para>
  2731. The following classes have changed:
  2732. <itemizedlist>
  2733. <listitem><para><filename>autotools_stage</filename>:
  2734. Removed because the
  2735. <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
  2736. class now provides its functionality.
  2737. Recipes that inherited from
  2738. <filename>autotools_stage</filename> should now inherit
  2739. from <filename>autotools</filename> instead.
  2740. </para></listitem>
  2741. <listitem><para><filename>boot-directdisk</filename>:
  2742. Merged into the <filename>image-vm</filename>
  2743. class.
  2744. The <filename>boot-directdisk</filename> class was rarely
  2745. directly used.
  2746. Consequently, this change should not cause any issues.
  2747. </para></listitem>
  2748. <listitem><para><filename>bootimg</filename>:
  2749. Merged into the
  2750. <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
  2751. class.
  2752. The <filename>bootimg</filename> class was rarely
  2753. directly used.
  2754. Consequently, this change should not cause any issues.
  2755. </para></listitem>
  2756. <listitem><para><filename>packageinfo</filename>:
  2757. Removed due to its limited use by the Hob UI, which has
  2758. itself been removed.
  2759. </para></listitem>
  2760. </itemizedlist>
  2761. </para>
  2762. </section>
  2763. <section id='migration-2.1-build-system-ui-changes'>
  2764. <title>Build System User Interface Changes</title>
  2765. <para>
  2766. The following changes have been made to the build system user
  2767. interface:
  2768. <itemizedlist>
  2769. <listitem><para><emphasis>Hob GTK+-based UI</emphasis>:
  2770. Removed because it is unmaintained and based on the
  2771. outdated GTK+ 2 library.
  2772. The Toaster web-based UI is much more capable and is
  2773. actively maintained.
  2774. See the
  2775. "<ulink url='&YOCTO_DOCS_TOAST_URL;#using-the-toaster-web-interface'>Using the Toaster Web Interface</ulink>"
  2776. section in the Toaster User Manual for more
  2777. information on this interface.
  2778. </para></listitem>
  2779. <listitem><para><emphasis>"puccho" BitBake UI</emphasis>:
  2780. Removed because is unmaintained and no longer useful.
  2781. </para></listitem>
  2782. </itemizedlist>
  2783. </para>
  2784. </section>
  2785. <section id='migration-2.1-adt-removed'>
  2786. <title>ADT Removed</title>
  2787. <para>
  2788. The Application Development Toolkit (ADT) has been removed
  2789. because its functionality almost completely overlapped with the
  2790. <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-using-the-standard-sdk'>standard SDK</ulink>
  2791. and the
  2792. <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>.
  2793. For information on these SDKs and how to build and use them, see the
  2794. <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
  2795. manual.
  2796. <note>
  2797. The Yocto Project Eclipse IDE Plug-in is still supported and
  2798. is not affected by this change.
  2799. </note>
  2800. </para>
  2801. </section>
  2802. <section id='migration-2.1-poky-reference-distribution-changes'>
  2803. <title>Poky Reference Distribution Changes</title>
  2804. <para>
  2805. The following changes have been made for the Poky distribution:
  2806. <itemizedlist>
  2807. <listitem><para>
  2808. The <filename>meta-yocto</filename> layer has been renamed
  2809. to <filename>meta-poky</filename> to better match its
  2810. purpose, which is to provide the Poky reference
  2811. distribution.
  2812. The <filename>meta-yocto-bsp</filename> layer retains its
  2813. original name since it provides reference machines for
  2814. the Yocto Project and it is otherwise unrelated to Poky.
  2815. References to <filename>meta-yocto</filename> in your
  2816. <filename>conf/bblayers.conf</filename> should
  2817. automatically be updated, so you should not need to change
  2818. anything unless you are relying on this naming elsewhere.
  2819. </para></listitem>
  2820. <listitem><para>
  2821. The
  2822. <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
  2823. class is now enabled by default in Poky.
  2824. This class attempts to isolate the build system from the
  2825. host distribution's C library and makes re-use of native
  2826. shared state artifacts across different host distributions
  2827. practical.
  2828. With this class enabled, a tarball containing a pre-built
  2829. C library is downloaded at the start of the build.</para>
  2830. <para>The <filename>uninative</filename> class is enabled
  2831. through the
  2832. <filename>meta/conf/distro/include/yocto-uninative.inc</filename>
  2833. file, which for those not using the Poky distribution, can
  2834. include to easily enable the same functionality.</para>
  2835. <para>Alternatively, if you wish to build your own
  2836. <filename>uninative</filename> tarball, you can do so by
  2837. building the <filename>uninative-tarball</filename> recipe,
  2838. making it available to your build machines
  2839. (e.g. over HTTP/HTTPS) and setting a similar configuration
  2840. as the one set by <filename>yocto-uninative.inc</filename>.
  2841. </para></listitem>
  2842. <listitem><para>
  2843. Static library generation, for most cases, is now disabled
  2844. by default in the Poky distribution.
  2845. Disabling this generation saves some build time as well
  2846. as the size used for build output artifacts.</para>
  2847. <para>Disabling this library generation is accomplished
  2848. through a
  2849. <filename>meta/conf/distro/include/no-static-libs.inc</filename>,
  2850. which for those not using the Poky distribution can
  2851. easily include to enable the same functionality.</para>
  2852. <para>Any recipe that needs to opt-out of having the
  2853. "--disable-static" option specified on the configure
  2854. command line either because it is not a supported option
  2855. for the configure script or because static libraries are
  2856. needed should set the following variable:
  2857. <literallayout class='monospaced'>
  2858. DISABLE_STATIC = ""
  2859. </literallayout>
  2860. </para></listitem>
  2861. <listitem><para>
  2862. The separate <filename>poky-tiny</filename> distribution
  2863. now uses the musl C library instead of a heavily pared
  2864. down <filename>glibc</filename>.
  2865. Using musl results in a smaller
  2866. distribution and facilitates much greater maintainability
  2867. because musl is designed to have a small footprint.</para>
  2868. <para>If you have used <filename>poky-tiny</filename> and
  2869. have customized the <filename>glibc</filename>
  2870. configuration you will need to redo those customizations
  2871. with musl when upgrading to the new release.
  2872. </para></listitem>
  2873. </itemizedlist>
  2874. </para>
  2875. </section>
  2876. <section id='migration-2.1-packaging-changes'>
  2877. <title>Packaging Changes</title>
  2878. <para>
  2879. The following changes have been made to packaging:
  2880. <itemizedlist>
  2881. <listitem><para>
  2882. The <filename>runuser</filename> and
  2883. <filename>mountpoint</filename> binaries, which were
  2884. previously in the main <filename>util-linux</filename>
  2885. package, have been split out into the
  2886. <filename>util-linux-runuser</filename> and
  2887. <filename>util-linux-mountpoint</filename> packages,
  2888. respectively.
  2889. </para></listitem>
  2890. <listitem><para>
  2891. The <filename>python-elementtree</filename> package has
  2892. been merged into the <filename>python-xml</filename>
  2893. package.
  2894. </para></listitem>
  2895. </itemizedlist>
  2896. </para>
  2897. </section>
  2898. <section id='migration-2.1-tuning-file-changes'>
  2899. <title>Tuning File Changes</title>
  2900. <para>
  2901. The following changes have been made to the tuning files:
  2902. <itemizedlist>
  2903. <listitem><para>
  2904. The "no-thumb-interwork" tuning feature has been dropped
  2905. from the ARM tune include files.
  2906. Because interworking is required for ARM EABI, attempting
  2907. to disable it through a tuning feature no longer makes
  2908. sense.
  2909. <note>
  2910. Support for ARM OABI was deprecated in gcc 4.7.
  2911. </note>
  2912. </para></listitem>
  2913. <listitem><para>
  2914. The <filename>tune-cortexm*.inc</filename> and
  2915. <filename>tune-cortexr4.inc</filename> files have been
  2916. removed because they are poorly tested.
  2917. Until the OpenEmbedded build system officially gains
  2918. support for CPUs without an MMU, these tuning files would
  2919. probably be better maintained in a separate layer
  2920. if needed.
  2921. </para></listitem>
  2922. </itemizedlist>
  2923. </para>
  2924. </section>
  2925. <section id='migration-2.1-supporting-gobject-introspection'>
  2926. <title>Supporting GObject Introspection</title>
  2927. <para>
  2928. This release supports generation of GLib Introspective
  2929. Repository (GIR) files through GObject introspection, which is
  2930. the standard mechanism for accessing GObject-based software from
  2931. runtime environments.
  2932. You can enable, disable, and test the generation of this data.
  2933. See the
  2934. "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-gobject-introspection-support'>Enabling GObject Introspection Support</ulink>"
  2935. section in the Yocto Project Development Tasks Manual
  2936. for more information.
  2937. </para>
  2938. </section>
  2939. <section id='migration-2.1-miscellaneous-changes'>
  2940. <title>Miscellaneous Changes</title>
  2941. <para>
  2942. These additional changes exist:
  2943. <itemizedlist>
  2944. <listitem><para>
  2945. The minimum Git version has been increased to 1.8.3.1.
  2946. If your host distribution does not provide a sufficiently
  2947. recent version, you can install the buildtools, which
  2948. will provide it.
  2949. See the
  2950. "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
  2951. section for more information on the buildtools tarball.
  2952. </para></listitem>
  2953. <listitem><para>
  2954. The buggy and incomplete support for the RPM version 4
  2955. package manager has been removed.
  2956. The well-tested and maintained support for RPM version 5
  2957. remains.
  2958. </para></listitem>
  2959. <listitem><para>
  2960. Previously, the following list of packages were removed
  2961. if package-management was not in
  2962. <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>,
  2963. regardless of any dependencies:
  2964. <literallayout class='monospaced'>
  2965. update-rc.d
  2966. base-passwd
  2967. shadow
  2968. update-alternatives
  2969. run-postinsts
  2970. </literallayout>
  2971. With the Yocto Project 2.1 release, these packages are only
  2972. removed if "read-only-rootfs" is in
  2973. <filename>IMAGE_FEATURES</filename>, since they might
  2974. still be needed for a read-write image even in the absence
  2975. of a package manager (e.g. if users need to be added,
  2976. modified, or removed at runtime).
  2977. </para></listitem>
  2978. <listitem><para>
  2979. The
  2980. <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'><filename>devtool modify</filename></ulink>
  2981. command now defaults to extracting the source since that
  2982. is most commonly expected.
  2983. The "-x" or "--extract" options are now no-ops.
  2984. If you wish to provide your own existing source tree, you
  2985. will now need to specify either the "-n" or
  2986. "--no-extract" options when running
  2987. <filename>devtool modify</filename>.
  2988. </para></listitem>
  2989. <listitem><para>
  2990. If the formfactor for a machine is either not supplied
  2991. or does not specify whether a keyboard is attached, then
  2992. the default is to assume a keyboard is attached rather
  2993. than assume no keyboard.
  2994. This change primarily affects the Sato UI.
  2995. </para></listitem>
  2996. <listitem><para>
  2997. The <filename>.debug</filename> directory packaging is
  2998. now automatic.
  2999. If your recipe builds software that installs binaries into
  3000. directories other than the standard ones, you no longer
  3001. need to take care of setting
  3002. <filename>FILES_${PN}-dbg</filename> to pick up the
  3003. resulting <filename>.debug</filename> directories as these
  3004. directories are automatically found and added.
  3005. </para></listitem>
  3006. <listitem><para>
  3007. Inaccurate disk and CPU percentage data has been dropped
  3008. from <filename>buildstats</filename> output.
  3009. This data has been replaced with
  3010. <filename>getrusage()</filename> data and corrected IO
  3011. statistics.
  3012. You will probably need to update any custom code that reads
  3013. the <filename>buildstats</filename> data.
  3014. </para></listitem>
  3015. <listitem><para>
  3016. The
  3017. <filename>meta/conf/distro/include/package_regex.inc</filename>
  3018. is now deprecated.
  3019. The contents of this file have been moved to individual
  3020. recipes.
  3021. <note><title>Tip</title>
  3022. Because this file will likely be removed in a future
  3023. Yocto Project release, it is suggested that you remove
  3024. any references to the file that might be in your
  3025. configuration.
  3026. </note>
  3027. </para></listitem>
  3028. <listitem><para>
  3029. The <filename>v86d/uvesafb</filename> has been removed from
  3030. the <filename>genericx86</filename> and
  3031. <filename>genericx86-64</filename> reference machines,
  3032. which are provided by the
  3033. <filename>meta-yocto-bsp</filename> layer.
  3034. Most modern x86 boards do not rely on this file and it only
  3035. adds kernel error messages during startup.
  3036. If you do still need to support
  3037. <filename>uvesafb</filename>, you can
  3038. simply add <filename>v86d</filename> to your image.
  3039. </para></listitem>
  3040. <listitem><para>
  3041. Build sysroot paths are now removed from debug symbol
  3042. files.
  3043. Removing these paths means that remote GDB using an
  3044. unstripped build system sysroot will no longer work
  3045. (although this was never documented to work).
  3046. The supported method to accomplish something similar is
  3047. to set <filename>IMAGE_GEN_DEBUGFS</filename> to "1",
  3048. which will generate a companion debug image
  3049. containing unstripped binaries and associated debug
  3050. sources alongside the image.
  3051. </para></listitem>
  3052. </itemizedlist>
  3053. </para>
  3054. </section>
  3055. </section>
  3056. <section id='moving-to-the-yocto-project-2.2-release'>
  3057. <title>Moving to the Yocto Project 2.2 Release</title>
  3058. <para>
  3059. This section provides migration information for moving to the
  3060. Yocto Project 2.2 Release from the prior release.
  3061. </para>
  3062. <section id='migration-2.2-minimum-kernel-version'>
  3063. <title>Minimum Kernel Version</title>
  3064. <para>
  3065. The minimum kernel version for the target system and for SDK
  3066. is now 3.2.0, due to the upgrade
  3067. to <filename>glibc 2.24</filename>.
  3068. Specifically, for AArch64-based targets the version is
  3069. 3.14.
  3070. For Nios II-based targets, the minimum kernel version is 3.19.
  3071. <note>
  3072. For x86 and x86_64, you can reset
  3073. <link linkend='var-OLDEST_KERNEL'><filename>OLDEST_KERNEL</filename></link>
  3074. to anything down to 2.6.32 if desired.
  3075. </note>
  3076. </para>
  3077. </section>
  3078. <section id='migration-2.2-staging-directories-in-sysroot-simplified'>
  3079. <title>Staging Directories in Sysroot Has Been Simplified</title>
  3080. <para>
  3081. The way directories are staged in sysroot has been simplified and
  3082. introduces the new
  3083. <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>,
  3084. <link linkend='var-SYSROOT_DIRS_NATIVE'><filename>SYSROOT_DIRS_NATIVE</filename></link>,
  3085. and
  3086. <link linkend='var-SYSROOT_DIRS_BLACKLIST'><filename>SYSROOT_DIRS_BLACKLIST</filename></link>.
  3087. See the
  3088. <ulink url='http://lists.openembedded.org/pipermail/openembedded-core/2016-May/121365.html'>v2 patch series on the OE-Core Mailing List</ulink>
  3089. for additional information.
  3090. </para>
  3091. </section>
  3092. <section id='migration-2.2-removal-of-old-images-from-tmp-deploy-now-enabled'>
  3093. <title>Removal of Old Images and Other Files in <filename>tmp/deploy</filename> Now Enabled</title>
  3094. <para>
  3095. Removal of old images and other files in
  3096. <filename>tmp/deploy/</filename> is now enabled by default due
  3097. to a new staging method used for those files.
  3098. As a result of this change, the
  3099. <filename>RM_OLD_IMAGE</filename> variable is now redundant.
  3100. </para>
  3101. </section>
  3102. <section id='migration-2.2-python-changes'>
  3103. <title>Python Changes</title>
  3104. <para>
  3105. The following changes for Python occurred:
  3106. </para>
  3107. <section id='migration-2.2-bitbake-now-requires-python-3.4'>
  3108. <title>BitBake Now Requires Python 3.4+</title>
  3109. <para>
  3110. BitBake requires Python 3.4 or greater.
  3111. </para>
  3112. </section>
  3113. <section id='migration-2.2-utf-8-locale-required-on-build-host'>
  3114. <title>UTF-8 Locale Required on Build Host</title>
  3115. <para>
  3116. A UTF-8 locale is required on the build host due to Python 3.
  3117. Since C.UTF-8 is not a standard, the default is en_US.UTF-8.
  3118. </para>
  3119. </section>
  3120. <section id='migration-2.2-metadata-now-must-use-python-3-syntax'>
  3121. <title>Metadata Must Now Use Python 3 Syntax</title>
  3122. <para>
  3123. The metadata is now required to use Python 3 syntax.
  3124. For help preparing metadata, see any of the many Python 3 porting
  3125. guides available.
  3126. Alternatively, you can reference the conversion commits for Bitbake
  3127. and you can use
  3128. <link linkend='oe-core'>OE-Core</link> as a guide for changes.
  3129. Following are particular areas of interest:
  3130. <literallayout class='monospaced'>
  3131. * subprocess command-line pipes needing locale decoding
  3132. * the syntax for octal values changed
  3133. * the <filename>iter*()</filename> functions changed name
  3134. * iterators now return views, not lists
  3135. * changed names for Python modules
  3136. </literallayout>
  3137. </para>
  3138. </section>
  3139. <section id='migration-2.2-target-python-recipes-switched-to-python-3'>
  3140. <title>Target Python Recipes Switched to Python 3</title>
  3141. <para>
  3142. Most target Python recipes have now been switched to Python 3.
  3143. Unfortunately, systems using RPM as a package manager and
  3144. providing online package-manager support through SMART still
  3145. require Python 2.
  3146. <note>
  3147. Python 2 and recipes that use it can still be built for the
  3148. target as with previous versions.
  3149. </note>
  3150. </para>
  3151. </section>
  3152. <section id='migration-2.2-buildtools-tarball-includes-python-3'>
  3153. <title><filename>buildtools-tarball</filename> Includes Python 3</title>
  3154. <para>
  3155. <filename>buildtools-tarball</filename> now includes Python 3.
  3156. </para>
  3157. </section>
  3158. </section>
  3159. <section id='migration-2.2-uclibc-replaced-by-musl'>
  3160. <title>uClibc Replaced by musl</title>
  3161. <para>
  3162. uClibc has been removed in favor of musl.
  3163. Musl has matured, is better maintained, and is compatible with a
  3164. wider range of applications as compared to uClibc.
  3165. </para>
  3166. </section>
  3167. <section id='migration-2.2-B-no-longer-default-working-directory-for-tasks'>
  3168. <title><filename>${B}</filename> No Longer Default Working Directory for Tasks</title>
  3169. <para>
  3170. <filename>${</filename><link linkend='var-B'><filename>B</filename></link><filename>}</filename>
  3171. is no longer the default working directory for tasks.
  3172. Consequently, any custom tasks you define now need to either
  3173. have the
  3174. <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>dirs</filename></ulink><filename>]</filename> flag set, or the task needs to change into the
  3175. appropriate working directory manually (e.g using
  3176. <filename>cd</filename> for a shell task).
  3177. <note>
  3178. The preferred method is to use the
  3179. <filename>[dirs]</filename> flag.
  3180. </note>
  3181. </para>
  3182. </section>
  3183. <section id='migration-2.2-runqemu-ported-to-python'>
  3184. <title><filename>runqemu</filename> Ported to Python</title>
  3185. <para>
  3186. <filename>runqemu</filename> has been ported to Python and has
  3187. changed behavior in some cases.
  3188. Previous usage patterns continue to be supported.
  3189. </para>
  3190. <para>
  3191. The new <filename>runqemu</filename> is a Python script.
  3192. Machine knowledge is no longer hardcoded into
  3193. <filename>runqemu</filename>.
  3194. You can choose to use the <filename>qemuboot</filename>
  3195. configuration file to define the BSP's own arguments and to make
  3196. it bootable with <filename>runqemu</filename>.
  3197. If you use a configuration file, use the following form:
  3198. <literallayout class='monospaced'>
  3199. <replaceable>image-name</replaceable>-<replaceable>machine</replaceable>.qemuboot.conf
  3200. </literallayout>
  3201. The configuration file enables fine-grained tuning of options
  3202. passed to QEMU without the <filename>runqemu</filename> script
  3203. hard-coding any knowledge about different machines.
  3204. Using a configuration file is particularly convenient when trying
  3205. to use QEMU with machines other than the
  3206. <filename>qemu*</filename> machines in
  3207. <link linkend='oe-core'>OE-Core</link>.
  3208. The <filename>qemuboot.conf</filename> file is generated by the
  3209. <filename>qemuboot</filename>
  3210. class when the root filesystem is being build (i.e.
  3211. build rootfs).
  3212. QEMU boot arguments can be set in BSP's configuration file and
  3213. the <filename>qemuboot</filename> class will save them to
  3214. <filename>qemuboot.conf</filename>.
  3215. </para>
  3216. <para>
  3217. If you want to use <filename>runqemu</filename> without a
  3218. configuration file, use the following command form:
  3219. <literallayout class='monospaced'>
  3220. $ runqemu <replaceable>machine</replaceable> <replaceable>rootfs</replaceable> <replaceable>kernel</replaceable> [<replaceable>options</replaceable>]
  3221. </literallayout>
  3222. Supported <replaceable>machines</replaceable> are as follows:
  3223. <literallayout class='monospaced'>
  3224. qemuarm
  3225. qemuarm64
  3226. qemux86
  3227. qemux86-64
  3228. qemuppc
  3229. qemumips
  3230. qemumips64
  3231. qemumipsel
  3232. qemumips64el
  3233. </literallayout>
  3234. Consider the following example, which uses the
  3235. <filename>qemux86-64</filename> machine,
  3236. provides a root filesystem, provides an image, and uses
  3237. the <filename>nographic</filename> option:
  3238. <literallayout class='monospaced'>
  3239. $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tmp/deploy/images/qemux86-64/bzImage nographic
  3240. </literallayout>
  3241. </para>
  3242. <para>
  3243. Following is a list of variables that can be set in configuration
  3244. files such as <filename>bsp.conf</filename> to enable the BSP
  3245. to be booted by <filename>runqemu</filename>:
  3246. <note>
  3247. "QB" means "QEMU Boot".
  3248. </note>
  3249. <literallayout class='monospaced'>
  3250. QB_SYSTEM_NAME: QEMU name (e.g. "qemu-system-i386")
  3251. QB_OPT_APPEND: Options to append to QEMU (e.g. "-show-cursor")
  3252. QB_DEFAULT_KERNEL: Default kernel to boot (e.g. "bzImage")
  3253. QB_DEFAULT_FSTYPE: Default FSTYPE to boot (e.g. "ext4")
  3254. QB_MEM: Memory (e.g. "-m 512")
  3255. QB_MACHINE: QEMU machine (e.g. "-machine virt")
  3256. QB_CPU: QEMU cpu (e.g. "-cpu qemu32")
  3257. QB_CPU_KVM: Similar to QB_CPU except used for kvm support (e.g. "-cpu kvm64")
  3258. QB_KERNEL_CMDLINE_APPEND: Options to append to the kernel's -append
  3259. option (e.g. "console=ttyS0 console=tty")
  3260. QB_DTB: QEMU dtb name
  3261. QB_AUDIO_DRV: QEMU audio driver (e.g. "alsa", set it when support audio)
  3262. QB_AUDIO_OPT: QEMU audio option (e.g. "-soundhw ac97,es1370"), which is used
  3263. when QB_AUDIO_DRV is set.
  3264. QB_KERNEL_ROOT: Kernel's root (e.g. /dev/vda)
  3265. QB_TAP_OPT: Network option for 'tap' mode (e.g.
  3266. "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0").
  3267. runqemu will replace "@TAP@" with the one that is used, such as tap0, tap1 ...
  3268. QB_SLIRP_OPT: Network option for SLIRP mode (e.g. "-netdev user,id=net0 -device virtio-net-device,netdev=net0")
  3269. QB_ROOTFS_OPT: Used as rootfs (e.g.
  3270. "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0").
  3271. runqemu will replace "@ROOTFS@" with the one which is used, such as
  3272. core-image-minimal-qemuarm64.ext4.
  3273. QB_SERIAL_OPT: Serial port (e.g. "-serial mon:stdio")
  3274. QB_TCPSERIAL_OPT: tcp serial port option (e.g.
  3275. " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
  3276. runqemu will replace "@PORT@" with the port number which is used.
  3277. </literallayout>
  3278. </para>
  3279. <para>
  3280. To use <filename>runqemu</filename>, set
  3281. <link linkend='var-IMAGE_CLASSES'><filename>IMAGE_CLASSES</filename></link>
  3282. as follows and run <filename>runqemu</filename>:
  3283. <note>
  3284. For command-line syntax, use
  3285. <filename>runqemu help</filename>.
  3286. </note>
  3287. <literallayout class='monospaced'>
  3288. IMAGE_CLASSES += "qemuboot"
  3289. </literallayout>
  3290. </para>
  3291. </section>
  3292. <section id='migration-2.2-default-linker-hash-style-changed'>
  3293. <title>Default Linker Hash Style Changed</title>
  3294. <para>
  3295. The default linker hash style for <filename>gcc-cross</filename>
  3296. is now "sysv" in order to catch recipes that are building software
  3297. without using the OpenEmbedded
  3298. <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>.
  3299. This change could result in seeing some "No GNU_HASH in the elf
  3300. binary" QA issues when building such recipes.
  3301. You need to fix these recipes so that they use the expected
  3302. <filename>LDFLAGS</filename>.
  3303. Depending on how the software is built, the build system used by
  3304. the software (e.g. a Makefile) might need to be patched.
  3305. However, sometimes making this fix is as simple as adding the
  3306. following to the recipe:
  3307. <literallayout class='monospaced'>
  3308. TARGET_CC_ARCH += "${LDFLAGS}"
  3309. </literallayout>
  3310. </para>
  3311. </section>
  3312. <section id='migration-2.2-kernel-image-base-name-no-longer-uses-kernel-imagetype'>
  3313. <title><filename>KERNEL_IMAGE_BASE_NAME</filename> no Longer Uses <filename>KERNEL_IMAGETYPE</filename></title>
  3314. <para>
  3315. The
  3316. <link linkend='var-KERNEL_IMAGE_BASE_NAME'><filename>KERNEL_IMAGE_BASE_NAME</filename></link>
  3317. variable no longer uses the
  3318. <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
  3319. variable to create the image's base name.
  3320. Because the OpenEmbedded build system can now build multiple kernel
  3321. image types, this part of the kernel image base name as been
  3322. removed leaving only the following:
  3323. <literallayout class='monospaced'>
  3324. KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}
  3325. </literallayout>
  3326. If you have recipes or classes that use
  3327. <filename>KERNEL_IMAGE_BASE_NAME</filename> directly, you might
  3328. need to update the references to ensure they continue to work.
  3329. </para>
  3330. </section>
  3331. <section id='migration-2.2-bitbake-changes'>
  3332. <title>BitBake Changes</title>
  3333. <para>
  3334. The following changes took place for BitBake:
  3335. <itemizedlist>
  3336. <listitem><para>
  3337. The "goggle" UI and standalone image-writer tool have
  3338. been removed as they both require GTK+ 2.0 and
  3339. were not being maintained.
  3340. </para></listitem>
  3341. <listitem><para>
  3342. The Perforce fetcher now supports
  3343. <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
  3344. for specifying the source revision to use, be it
  3345. <filename>${</filename><link linkend='var-AUTOREV'><filename>AUTOREV</filename></link><filename>}</filename>,
  3346. changelist number, p4date, or label, in preference to
  3347. separate
  3348. <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
  3349. parameters to specify these.
  3350. This change is more in-line with how the other fetchers
  3351. work for source control systems.
  3352. Recipes that fetch from Perforce will need to be updated
  3353. to use <filename>SRCREV</filename> in place of specifying
  3354. the source revision within
  3355. <filename>SRC_URI</filename>.
  3356. </para></listitem>
  3357. <listitem><para>
  3358. Some of BitBake's internal code structures for accessing
  3359. the recipe cache needed to be changed to support the new
  3360. multi-configuration functionality.
  3361. These changes will affect external tools that use BitBake's
  3362. tinfoil module.
  3363. For information on these changes, see the changes made to
  3364. the scripts supplied with OpenEmbedded-Core:
  3365. <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=189371f8393971d00bca0fceffd67cc07784f6ee'>1</ulink>
  3366. and
  3367. <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=4a5aa7ea4d07c2c90a1654b174873abb018acc67'>2</ulink>.
  3368. </para></listitem>
  3369. <listitem><para>
  3370. The task management code has been rewritten to avoid using
  3371. ID indirection in order to improve performance.
  3372. This change is unlikely to cause any problems for most
  3373. users.
  3374. However, the setscene verification function as pointed to
  3375. by <filename>BB_SETSCENE_VERIFY_FUNCTION</filename>
  3376. needed to change signature.
  3377. Consequently, a new variable named
  3378. <filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
  3379. has been added allowing multiple versions of BitBake
  3380. to work with suitably written metadata, which includes
  3381. OpenEmbedded-Core and Poky.
  3382. Anyone with custom BitBake task scheduler code might also
  3383. need to update the code to handle the new structure.
  3384. </para></listitem>
  3385. </itemizedlist>
  3386. </para>
  3387. </section>
  3388. <section id='migration-2.2-swabber-has-been-removed'>
  3389. <title>Swabber has Been Removed</title>
  3390. <para>
  3391. Swabber, a tool that was intended to detect host contamination in
  3392. the build process, has been removed, as it has been unmaintained
  3393. and unused for some time and was never particularly effective.
  3394. The OpenEmbedded build system has since incorporated a number of
  3395. mechanisms including enhanced QA checks that mean that there is
  3396. less of a need for such a tool.
  3397. </para>
  3398. </section>
  3399. <section id='migration-2.2-removed-recipes'>
  3400. <title>Removed Recipes</title>
  3401. <para>
  3402. The following recipes have been removed:
  3403. <itemizedlist>
  3404. <listitem><para>
  3405. <filename>augeas</filename>:
  3406. No longer needed and has been moved to
  3407. <filename>meta-oe</filename>.
  3408. </para></listitem>
  3409. <listitem><para>
  3410. <filename>directfb</filename>:
  3411. Unmaintained and has been moved to
  3412. <filename>meta-oe</filename>.
  3413. </para></listitem>
  3414. <listitem><para>
  3415. <filename>gcc</filename>:
  3416. Removed 4.9 version.
  3417. Versions 5.4 and 6.2 are still present.
  3418. </para></listitem>
  3419. <listitem><para>
  3420. <filename>gnome-doc-utils</filename>:
  3421. No longer needed.
  3422. </para></listitem>
  3423. <listitem><para>
  3424. <filename>gtk-doc-stub</filename>:
  3425. Replaced by <filename>gtk-doc</filename>.
  3426. </para></listitem>
  3427. <listitem><para>
  3428. <filename>gtk-engines</filename>:
  3429. No longer needed and has been moved to
  3430. <filename>meta-gnome</filename>.
  3431. </para></listitem>
  3432. <listitem><para>
  3433. <filename>gtk-sato-engine</filename>:
  3434. Became obsolete.
  3435. </para></listitem>
  3436. <listitem><para>
  3437. <filename>libglade</filename>:
  3438. No longer needed and has been moved to
  3439. <filename>meta-oe</filename>.
  3440. </para></listitem>
  3441. <listitem><para>
  3442. <filename>libmad</filename>:
  3443. Unmaintained and functionally replaced by
  3444. <filename>libmpg123</filename>.
  3445. <filename>libmad</filename> has been moved to
  3446. <filename>meta-oe</filename>.
  3447. </para></listitem>
  3448. <listitem><para>
  3449. <filename>libowl</filename>:
  3450. Became obsolete.
  3451. </para></listitem>
  3452. <listitem><para>
  3453. <filename>libxsettings-client</filename>:
  3454. No longer needed.
  3455. </para></listitem>
  3456. <listitem><para>
  3457. <filename>oh-puzzles</filename>:
  3458. Functionally replaced by
  3459. <filename>puzzles</filename>.
  3460. </para></listitem>
  3461. <listitem><para>
  3462. <filename>oprofileui</filename>:
  3463. Became obsolete.
  3464. OProfile has been largely supplanted by perf.
  3465. </para></listitem>
  3466. <listitem><para>
  3467. <filename>packagegroup-core-directfb.bb</filename>:
  3468. Removed.
  3469. </para></listitem>
  3470. <listitem><para>
  3471. <filename>core-image-directfb.bb</filename>:
  3472. Removed.
  3473. </para></listitem>
  3474. <listitem><para>
  3475. <filename>pointercal</filename>:
  3476. No longer needed and has been moved to
  3477. <filename>meta-oe</filename>.
  3478. </para></listitem>
  3479. <listitem><para>
  3480. <filename>python-imaging</filename>:
  3481. No longer needed and moved to
  3482. <filename>meta-python</filename>
  3483. </para></listitem>
  3484. <listitem><para>
  3485. <filename>python-pyrex</filename>:
  3486. No longer needed and moved to
  3487. <filename>meta-python</filename>.
  3488. </para></listitem>
  3489. <listitem><para>
  3490. <filename>sato-icon-theme</filename>:
  3491. Became obsolete.
  3492. </para></listitem>
  3493. <listitem><para>
  3494. <filename>swabber-native</filename>:
  3495. Swabber has been removed.
  3496. See the
  3497. <link linkend='migration-2.2-swabber-has-been-removed'>entry on Swabber</link>.
  3498. </para></listitem>
  3499. <listitem><para>
  3500. <filename>tslib</filename>:
  3501. No longer needed and has been moved to
  3502. <filename>meta-oe</filename>.
  3503. </para></listitem>
  3504. <listitem><para>
  3505. <filename>uclibc</filename>:
  3506. Removed in favor of musl.
  3507. </para></listitem>
  3508. <listitem><para>
  3509. <filename>xtscal</filename>:
  3510. No longer needed and moved to
  3511. <filename>meta-oe</filename>
  3512. </para></listitem>
  3513. </itemizedlist>
  3514. </para>
  3515. </section>
  3516. <section id='migration-2.2-removed-classes'>
  3517. <title>Removed Classes</title>
  3518. <para>
  3519. The following classes have been removed:
  3520. <itemizedlist>
  3521. <listitem><para>
  3522. <filename>distutils-native-base</filename>:
  3523. No longer needed.
  3524. </para></listitem>
  3525. <listitem><para>
  3526. <filename>distutils3-native-base</filename>:
  3527. No longer needed.
  3528. </para></listitem>
  3529. <listitem><para>
  3530. <filename>sdl</filename>:
  3531. Only set
  3532. <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
  3533. and
  3534. <link linkend='var-SECTION'><filename>SECTION</filename></link>,
  3535. which are better set within the recipe instead.
  3536. </para></listitem>
  3537. <listitem><para>
  3538. <filename>sip</filename>:
  3539. Mostly unused.
  3540. </para></listitem>
  3541. <listitem><para>
  3542. <filename>swabber</filename>:
  3543. See the
  3544. <link linkend='migration-2.2-swabber-has-been-removed'>entry on Swabber</link>.
  3545. </para></listitem>
  3546. </itemizedlist>
  3547. </para>
  3548. </section>
  3549. <section id='migration-2.2-minor-packaging-changes'>
  3550. <title>Minor Packaging Changes</title>
  3551. <para>
  3552. The following minor packaging changes have occurred:
  3553. <itemizedlist>
  3554. <listitem><para>
  3555. <filename>grub</filename>:
  3556. Split <filename>grub-editenv</filename> into its own
  3557. package.
  3558. </para></listitem>
  3559. <listitem><para>
  3560. <filename>systemd</filename>:
  3561. Split container and vm related units into a new package,
  3562. systemd-container.
  3563. </para></listitem>
  3564. <listitem><para>
  3565. <filename>util-linux</filename>:
  3566. Moved <filename>prlimit</filename> to a separate
  3567. <filename>util-linux-prlimit</filename> package.
  3568. </para></listitem>
  3569. </itemizedlist>
  3570. </para>
  3571. </section>
  3572. <section id='migration-2.2-miscellaneous-changes'>
  3573. <title>Miscellaneous Changes</title>
  3574. <para>
  3575. The following miscellaneous changes have occurred:
  3576. <itemizedlist>
  3577. <listitem><para>
  3578. <filename>package_regex.inc</filename>:
  3579. Removed because the definitions
  3580. <filename>package_regex.inc</filename> previously contained
  3581. have been moved to their respective recipes.
  3582. </para></listitem>
  3583. <listitem><para>
  3584. Both <filename>devtool add</filename> and
  3585. <filename>recipetool create</filename> now use a fixed
  3586. <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
  3587. by default when fetching from a Git repository.
  3588. You can override this in either case to use
  3589. <filename>${</filename><link linkend='var-AUTOREV'><filename>AUTOREV</filename></link><filename>}</filename>
  3590. instead by using the <filename>-a</filename> or
  3591. <filename>&dash;&dash;autorev</filename> command-line
  3592. option
  3593. </para></listitem>
  3594. <listitem><para>
  3595. <filename>distcc</filename>:
  3596. GTK+ UI is now disabled by default.
  3597. </para></listitem>
  3598. <listitem><para>
  3599. <filename>packagegroup-core-tools-testapps</filename>:
  3600. Removed Piglit.
  3601. </para></listitem>
  3602. <listitem><para>
  3603. <filename>image.bbclass</filename>:
  3604. Renamed COMPRESS(ION) to CONVERSION.
  3605. This change means that
  3606. <filename>COMPRESSIONTYPES</filename>,
  3607. <filename>COMPRESS_DEPENDS</filename> and
  3608. <filename>COMPRESS_CMD</filename> are deprecated in favor
  3609. of <filename>CONVERSIONTYPES</filename>,
  3610. <filename>CONVERSION_DEPENDS</filename> and
  3611. <filename>CONVERSION_CMD</filename>.
  3612. The <filename>COMPRESS*</filename> variable names will
  3613. still work in the 2.2 release but metadata that does not
  3614. need to be backwards-compatible should be changed to
  3615. use the new names as the <filename>COMPRESS*</filename>
  3616. ones will be removed in a future release.
  3617. </para></listitem>
  3618. <listitem><para>
  3619. <filename>gtk-doc</filename>:
  3620. A full version of <filename>gtk-doc</filename> is now
  3621. made available.
  3622. However, some old software might not be capable of using
  3623. the current version of <filename>gtk-doc</filename>
  3624. to build documentation.
  3625. You need to change recipes that build such software so that
  3626. they explicitly disable building documentation with
  3627. <filename>gtk-doc</filename>.
  3628. </para></listitem>
  3629. </itemizedlist>
  3630. </para>
  3631. </section>
  3632. </section>
  3633. <section id='moving-to-the-yocto-project-2.3-release'>
  3634. <title>Moving to the Yocto Project 2.3 Release</title>
  3635. <para>
  3636. This section provides migration information for moving to the
  3637. Yocto Project 2.3 Release from the prior release.
  3638. </para>
  3639. <section id='migration-2.3-recipe-specific-sysroots'>
  3640. <title>Recipe-specific Sysroots</title>
  3641. <para>
  3642. The OpenEmbedded build system now uses one sysroot per
  3643. recipe to resolve long-standing issues with configuration
  3644. script auto-detection of undeclared dependencies.
  3645. Consequently, you might find that some of your previously
  3646. written custom recipes are missing declared dependencies,
  3647. particularly those dependencies that are incidentally built
  3648. earlier in a typical build process and thus are already likely
  3649. to be present in the shared sysroot in previous releases.
  3650. </para>
  3651. <para>
  3652. Consider the following:
  3653. <itemizedlist>
  3654. <listitem><para>
  3655. <emphasis>Declare Build-Time Dependencies:</emphasis>
  3656. Because of this new feature, you must explicitly
  3657. declare all build-time dependencies for your recipe.
  3658. If you do not declare these dependencies, they are not
  3659. populated into the sysroot for the recipe.
  3660. </para></listitem>
  3661. <listitem><para>
  3662. <emphasis>Specify Pre-Installation and Post-Installation
  3663. Native Tool Dependencies:</emphasis>
  3664. You must specifically specify any special native tool
  3665. dependencies of <filename>pkg_preinst</filename> and
  3666. <filename>pkg_postinst</filename> scripts by using the
  3667. <link linkend='var-PACKAGE_WRITE_DEPS'><filename>PACKAGE_WRITE_DEPS</filename></link>
  3668. variable.
  3669. Specifying these dependencies ensures that these tools
  3670. are available if these scripts need to be run on the
  3671. build host during the
  3672. <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
  3673. task.</para>
  3674. <para>As an example, see the <filename>dbus</filename>
  3675. recipe.
  3676. You will see that this recipe has a
  3677. <filename>pkg_postinst</filename> that calls
  3678. <filename>systemctl</filename> if "systemd" is in
  3679. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
  3680. In the example,
  3681. <filename>systemd-systemctl-native</filename> is added to
  3682. <filename>PACKAGE_WRITE_DEPS</filename>, which is also
  3683. conditional on "systemd" being in
  3684. <filename>DISTRO_FEATURES</filename>.
  3685. </para></listitem>
  3686. <listitem><para>
  3687. <emphasis>Examine Recipes that Use
  3688. <filename>SSTATEPOSTINSTFUNCS</filename>:</emphasis>
  3689. You need to examine any recipe that uses
  3690. <filename>SSTATEPOSTINSTFUNCS</filename> and determine
  3691. steps to take.</para>
  3692. <para>Functions added to
  3693. <filename>SSTATEPOSTINSTFUNCS</filename> are still
  3694. called as they were in previous Yocto Project releases.
  3695. However, since a separate sysroot is now being populated
  3696. for every recipe and if existing functions being called
  3697. through <filename>SSTATEPOSTINSTFUNCS</filename> are
  3698. doing relocation, then you will need to change these
  3699. to use a post-installation script that is installed by a
  3700. function added to
  3701. <link linkend='var-SYSROOT_PREPROCESS_FUNCS'><filename>SYSROOT_PREPROCESS_FUNCS</filename></link>.
  3702. </para>
  3703. <para>For an example, see the
  3704. <filename>pixbufcache</filename> class in
  3705. <filename>meta/classes/</filename> in the Yocto Project
  3706. <ulink url='&YOCTO_DOCS_OM_URL;#source-repositories'>Source Repositories</ulink>.
  3707. <note>
  3708. The <filename>SSTATEPOSTINSTFUNCS</filename> variable
  3709. itself is now deprecated in favor of the
  3710. <filename>do_populate_sysroot[postfuncs]</filename>
  3711. task.
  3712. Consequently, if you do still have any function or
  3713. functions that need to be called after the sysroot
  3714. component is created for a recipe, then you would be
  3715. well advised to take steps to use a post installation
  3716. script as described previously.
  3717. Taking these steps prepares your code for when
  3718. <filename>SSTATEPOSTINSTFUNCS</filename> is
  3719. removed in a future Yocto Project release.
  3720. </note>
  3721. </para></listitem>
  3722. <listitem><para>
  3723. <emphasis>Specify the Sysroot when Using Certain
  3724. External Scripts:</emphasis>
  3725. Because the shared sysroot is now gone, the scripts
  3726. <filename>oe-find-native-sysroot</filename> and
  3727. <filename>oe-run-native</filename> have been changed such
  3728. that you need to specify which recipe's
  3729. <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>
  3730. is used.
  3731. </para></listitem>
  3732. </itemizedlist>
  3733. <note>
  3734. You can find more information on how recipe-specific sysroots
  3735. work in the
  3736. "<link linkend='ref-classes-staging'><filename>staging.bbclass</filename></link>"
  3737. section.
  3738. </note>
  3739. </para>
  3740. </section>
  3741. <section id='migration-2.3-path-variable'>
  3742. <title><filename>PATH</filename> Variable</title>
  3743. <para>
  3744. Within the environment used to run build tasks, the environment
  3745. variable <filename>PATH</filename> is now sanitized such that
  3746. the normal native binary paths
  3747. (<filename>/bin</filename>, <filename>/sbin</filename>,
  3748. <filename>/usr/bin</filename> and so forth) are
  3749. removed and a directory containing symbolic links linking only
  3750. to the binaries from the host mentioned in the
  3751. <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>
  3752. and
  3753. <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>
  3754. variables is added to <filename>PATH</filename>.
  3755. </para>
  3756. <para>
  3757. Consequently, any native binaries provided by the host that you
  3758. need to call needs to be in one of these two variables at
  3759. the configuration level.
  3760. </para>
  3761. <para>
  3762. Alternatively, you can add a native recipe (i.e.
  3763. <filename>-native</filename>) that provides the
  3764. binary to the recipe's
  3765. <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
  3766. value.
  3767. <note>
  3768. <filename>PATH</filename> is not sanitized in the same way
  3769. within <filename>devshell</filename>.
  3770. If it were, you would have difficulty running host tools for
  3771. development and debugging within the shell.
  3772. </note>
  3773. </para>
  3774. </section>
  3775. <section id='migration-2.3-scripts'>
  3776. <title>Changes to Scripts</title>
  3777. <para>
  3778. The following changes to scripts took place:
  3779. <itemizedlist>
  3780. <listitem><para>
  3781. <emphasis><filename>oe-find-native-sysroot</filename>:</emphasis>
  3782. The usage for the
  3783. <filename>oe-find-native-sysroot</filename> script has
  3784. changed to the following:
  3785. <literallayout class='monospaced'>
  3786. $ . oe-find-native-sysroot <replaceable>recipe</replaceable>
  3787. </literallayout>
  3788. You must now supply a recipe for
  3789. <replaceable>recipe</replaceable> as part of the command.
  3790. Prior to the Yocto Project &DISTRO; release, it was not
  3791. necessary to provide the script with the command.
  3792. </para></listitem>
  3793. <listitem><para>
  3794. <emphasis><filename>oe-run-native</filename>:</emphasis>
  3795. The usage for the
  3796. <filename>oe-run-native</filename> script has changed
  3797. to the following:
  3798. <literallayout class='monospaced'>
  3799. $ oe-run-native <replaceable>native_recipe</replaceable> <replaceable>tool</replaceable>
  3800. </literallayout>
  3801. You must supply the name of the native recipe and the tool
  3802. you want to run as part of the command.
  3803. Prior to the Yocto Project &DISTRO; release, it was not
  3804. necessary to provide the native recipe with the command.
  3805. </para></listitem>
  3806. <listitem><para>
  3807. <emphasis><filename>cleanup-workdir</filename>:</emphasis>
  3808. The <filename>cleanup-workdir</filename> script has been
  3809. removed because the script was found to be deleting
  3810. files it should not have, which lead to broken build
  3811. trees.
  3812. Rather than trying to delete portions of
  3813. <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
  3814. and getting it wrong, it is recommended that you
  3815. delete <filename>TMPDIR</filename> and have it restored
  3816. from shared state (sstate) on subsequent builds.
  3817. </para></listitem>
  3818. <listitem><para>
  3819. <emphasis><filename>wipe-sysroot</filename>:</emphasis>
  3820. The <filename>wipe-sysroot</filename> script has been
  3821. removed as it is no longer needed with recipe-specific
  3822. sysroots.
  3823. </para></listitem>
  3824. </itemizedlist>
  3825. </para>
  3826. </section>
  3827. <section id='migration-2.3-functions'>
  3828. <title>Changes to Functions</title>
  3829. <para>
  3830. The previously deprecated
  3831. <filename>bb.data.getVar()</filename>,
  3832. <filename>bb.data.setVar()</filename>, and
  3833. related functions have been removed in favor of
  3834. <filename>d.getVar()</filename>,
  3835. <filename>d.setVar()</filename>, and so forth.
  3836. </para>
  3837. <para>
  3838. You need to fix any references to these old functions.
  3839. </para>
  3840. </section>
  3841. <section id='migration-2.3-bitbake-changes'>
  3842. <title>BitBake Changes</title>
  3843. <para>
  3844. The following changes took place for BitBake:
  3845. <itemizedlist>
  3846. <listitem><para>
  3847. <emphasis>BitBake's Graphical Dependency Explorer UI Replaced:</emphasis>
  3848. BitBake's graphical dependency explorer UI
  3849. <filename>depexp</filename> was replaced by
  3850. <filename>taskexp</filename> ("Task Explorer"), which
  3851. provides a graphical way of exploring the
  3852. <filename>task-depends.dot</filename> file.
  3853. The data presented by Task Explorer is much more
  3854. accurate than the data that was presented by
  3855. <filename>depexp</filename>.
  3856. Being able to visualize the data is an often requested
  3857. feature as standard <filename>*.dot</filename> file
  3858. viewers cannot usual cope with the size of
  3859. the <filename>task-depends.dot</filename> file.
  3860. </para></listitem>
  3861. <listitem><para>
  3862. <emphasis>BitBake "-g" Output Changes:</emphasis>
  3863. The <filename>package-depends.dot</filename> and
  3864. <filename>pn-depends.dot</filename> files as previously
  3865. generated using the <filename>bitbake -g</filename> command
  3866. have been removed.
  3867. A <filename>recipe-depends.dot</filename> file
  3868. is now generated as a collapsed version of
  3869. <filename>task-depends.dot</filename> instead.
  3870. </para>
  3871. <para>The reason for this change is because
  3872. <filename>package-depends.dot</filename> and
  3873. <filename>pn-depends.dot</filename> largely date back
  3874. to a time before task-based execution and do not take
  3875. into account task-level dependencies between recipes,
  3876. which could be misleading.
  3877. </para></listitem>
  3878. <listitem><para>
  3879. <emphasis>Mirror Variable Splitting Changes:</emphasis>
  3880. Mirror variables including
  3881. <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>,
  3882. <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
  3883. and
  3884. <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
  3885. can now separate values entirely with spaces.
  3886. Consequently, you no longer need "\\n".
  3887. BitBake looks for pairs of values, which simplifies usage.
  3888. There should be no change required to existing mirror
  3889. variable values themselves.
  3890. </para></listitem>
  3891. <listitem><para>
  3892. <emphasis>The Subversion (SVN) Fetcher Uses an "ssh" Parameter and Not an "rsh" Parameter:</emphasis>
  3893. The SVN fetcher now takes an "ssh" parameter instead of an
  3894. "rsh" parameter.
  3895. This new optional parameter is used when the "protocol"
  3896. parameter is set to "svn+ssh".
  3897. You can only use the new parameter to specify the
  3898. <filename>ssh</filename> program used by SVN.
  3899. The SVN fetcher passes the new parameter through the
  3900. <filename>SVN_SSH</filename> environment variable during
  3901. the
  3902. <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>
  3903. task.</para>
  3904. <para>See the
  3905. "<ulink url='&YOCTO_DOCS_BB_URL;#svn-fetcher'>Subversion (SVN) Fetcher (svn://)</ulink>"
  3906. section in the BitBake User Manual for additional
  3907. information.
  3908. </para></listitem>
  3909. <listitem><para>
  3910. <emphasis><filename>BB_SETSCENE_VERIFY_FUNCTION</filename>
  3911. and <filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
  3912. Removed:</emphasis>
  3913. Because the mechanism they were part of is no longer
  3914. necessary with recipe-specific sysroots, the
  3915. <filename>BB_SETSCENE_VERIFY_FUNCTION</filename> and
  3916. <filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
  3917. variables have been removed.
  3918. </para></listitem>
  3919. </itemizedlist>
  3920. </para>
  3921. </section>
  3922. <section id='migration-2.3-absolute-symlinks'>
  3923. <title>Absolute Symbolic Links</title>
  3924. <para>
  3925. Absolute symbolic links (symlinks) within staged files are no
  3926. longer permitted and now trigger an error.
  3927. Any explicit creation of symlinks can use the
  3928. <filename>lnr</filename> script, which is a replacement for
  3929. <filename>ln -r</filename>.
  3930. </para>
  3931. <para>
  3932. If the build scripts in the software that the recipe is building
  3933. are creating a number of absolute symlinks that need to be
  3934. corrected, you can inherit
  3935. <filename>relative_symlinks</filename> within the recipe to turn
  3936. those absolute symlinks into relative symlinks.
  3937. </para>
  3938. </section>
  3939. <section id='migration-2.3-gplv2-and-gplv3-moves'>
  3940. <title>GPLv2 Versions of GPLv3 Recipes Moved</title>
  3941. <para>
  3942. Older GPLv2 versions of GPLv3 recipes have moved to a
  3943. separate <filename>meta-gplv2</filename> layer.
  3944. </para>
  3945. <para>
  3946. If you use
  3947. <link linkend='var-INCOMPATIBLE_LICENSE'><filename>INCOMPATIBLE_LICENSE</filename></link>
  3948. to exclude GPLv3 or set
  3949. <link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link>
  3950. to substitute a GPLv2 version of a GPLv3 recipe, then you must add
  3951. the <filename>meta-gplv2</filename> layer to your configuration.
  3952. <note>
  3953. You can find <filename>meta-gplv2</filename> layer in the
  3954. OpenEmbedded layer index at
  3955. <ulink url='https://layers.openembedded.org/layerindex/branch/master/layer/meta-gplv2/'></ulink>.
  3956. </note>
  3957. </para>
  3958. <para>
  3959. These relocated GPLv2 recipes do not receive the same level of
  3960. maintenance as other core recipes.
  3961. The recipes do not get security fixes and upstream no longer
  3962. maintains them.
  3963. In fact, the upstream community is actively hostile towards people
  3964. that use the old versions of the recipes.
  3965. Moving these recipes into a separate layer both makes the different
  3966. needs of the recipes clearer and clearly identifies the number of
  3967. these recipes.
  3968. <note>
  3969. The long-term solution might be to move to BSD-licensed
  3970. replacements of the GPLv3 components for those that need to
  3971. exclude GPLv3-licensed components from the target system.
  3972. This solution will be investigated for future Yocto
  3973. Project releases.
  3974. </note>
  3975. </para>
  3976. </section>
  3977. <section id='migration-2.3-package-management-changes'>
  3978. <title>Package Management Changes</title>
  3979. <para>
  3980. The following package management changes took place:
  3981. <itemizedlist>
  3982. <listitem><para>
  3983. Smart package manager is replaced by DNF package manager.
  3984. Smart has become unmaintained upstream, is not ported
  3985. to Python 3.x.
  3986. Consequently, Smart needed to be replaced.
  3987. DNF is the only feasible candidate.</para>
  3988. <para>The change in functionality is that the on-target
  3989. runtime package management from remote package feeds is
  3990. now done with a different tool that has a
  3991. different set of command-line options.
  3992. If you have scripts that call the
  3993. tool directly, or use its API, they need to be fixed.</para>
  3994. <para>For more information, see the
  3995. <ulink url='http://dnf.readthedocs.io/en/latest/'>DNF Documentation</ulink>.
  3996. </para></listitem>
  3997. <listitem><para>
  3998. Rpm 5.x is replaced with Rpm 4.x.
  3999. This is done for two major reasons:
  4000. <itemizedlist>
  4001. <listitem><para>
  4002. DNF is API-incompatible with Rpm 5.x and porting
  4003. it and maintaining the port is non-trivial.
  4004. </para></listitem>
  4005. <listitem><para>
  4006. Rpm 5.x itself has limited maintenance upstream,
  4007. and the Yocto Project is one of the very few
  4008. remaining users.
  4009. </para></listitem>
  4010. </itemizedlist>
  4011. </para></listitem>
  4012. <listitem><para>
  4013. Berkeley DB 6.x is removed and Berkeley DB 5.x becomes
  4014. the default:
  4015. <itemizedlist>
  4016. <listitem><para>
  4017. Version 6.x of Berkeley DB has largely been
  4018. rejected by the open source community due to its
  4019. AGPLv3 license.
  4020. As a result, most mainstream open source projects
  4021. that require DB are still developed and tested with
  4022. DB 5.x.
  4023. </para></listitem>
  4024. <listitem><para>
  4025. In OE-core, the only thing that was requiring
  4026. DB 6.x was Rpm 5.x.
  4027. Thus, no reason exists to continue carrying DB 6.x
  4028. in OE-core.
  4029. </para></listitem>
  4030. </itemizedlist>
  4031. </para></listitem>
  4032. <listitem><para>
  4033. <filename>createrepo</filename> is replaced with
  4034. <filename>createrepo_c</filename>.</para>
  4035. <para><filename>createrepo_c</filename> is the current
  4036. incarnation of the tool that generates remote repository
  4037. metadata.
  4038. It is written in C as compared to
  4039. <filename>createrepo</filename>, which is written in
  4040. Python.
  4041. <filename>createrepo_c</filename> is faster and is
  4042. maintained.
  4043. </para></listitem>
  4044. <listitem><para>
  4045. Architecture-independent RPM packages are "noarch"
  4046. instead of "all".</para>
  4047. <para>This change was made because too many places in
  4048. DNF/RPM4 stack already make that assumption.
  4049. Only the filenames and the architecture tag has changed.
  4050. Nothing else has changed in OE-core system, particularly
  4051. in the
  4052. <link linkend='ref-classes-allarch'><filename>allarch.bbclass</filename></link>
  4053. class.
  4054. </para></listitem>
  4055. <listitem><para>
  4056. Signing of remote package feeds using
  4057. <filename>PACKAGE_FEED_SIGN</filename>
  4058. is not currently supported.
  4059. This issue will be fully addressed in a future
  4060. Yocto Project release.
  4061. See <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>defect 11209</ulink>
  4062. for more information on a solution to package feed
  4063. signing with RPM in the Yocto Project 2.3 release.
  4064. </para></listitem>
  4065. <listitem><para>
  4066. OPKG now uses the libsolv backend for resolving package
  4067. dependencies by default.
  4068. This is vastly superior to OPKG's internal ad-hoc solver
  4069. that was previously used.
  4070. This change does have a small impact on disk (around
  4071. 500 KB) and memory footprint.
  4072. <note>
  4073. For further details on this change, see the
  4074. <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?
  4075. id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message</ulink>.
  4076. </note>
  4077. </para></listitem>
  4078. </itemizedlist>
  4079. </para>
  4080. </section>
  4081. <section id='migration-2.3-removed-recipes'>
  4082. <title>Removed Recipes</title>
  4083. <para>
  4084. The following recipes have been removed:
  4085. <itemizedlist>
  4086. <listitem><para>
  4087. <emphasis><filename>linux-yocto 4.8:</filename></emphasis>
  4088. Version 4.8 has been removed.
  4089. Versions 4.1 (LTSI), 4.4 (LTS), 4.9 (LTS/LTSI) and 4.10
  4090. are now present.
  4091. </para></listitem>
  4092. <listitem><para>
  4093. <emphasis><filename>python-smartpm:</filename></emphasis>
  4094. Functionally replaced by <filename>dnf</filename>.
  4095. </para></listitem>
  4096. <listitem><para>
  4097. <emphasis><filename>createrepo:</filename></emphasis>
  4098. Replaced by the <filename>createrepo-c</filename> recipe.
  4099. </para></listitem>
  4100. <listitem><para>
  4101. <emphasis><filename>rpmresolve:</filename></emphasis>
  4102. No longer needed with the move to RPM 4 as RPM itself is
  4103. used instead.
  4104. </para></listitem>
  4105. <listitem><para>
  4106. <emphasis><filename>gstreamer:</filename></emphasis>
  4107. Removed the GStreamer Git version recipes as they have
  4108. been stale.
  4109. <filename>1.10.</filename><replaceable>x</replaceable>
  4110. recipes are still present.
  4111. </para></listitem>
  4112. <listitem><para>
  4113. <emphasis><filename>alsa-conf-base:</filename></emphasis>
  4114. Merged into <filename>alsa-conf</filename> since
  4115. <filename>libasound</filename> depended on both.
  4116. Essentially, no way existed to install only one of these.
  4117. </para></listitem>
  4118. <listitem><para>
  4119. <emphasis><filename>tremor:</filename></emphasis>
  4120. Moved to <filename>meta-multimedia</filename>.
  4121. Fixed-integer Vorbis decoding is not
  4122. needed by current hardware.
  4123. Thus, GStreamer's ivorbis plugin has been disabled
  4124. by default eliminating the need for the
  4125. <filename>tremor</filename> recipe in
  4126. <link linkend='oe-core'>OE-Core</link>.
  4127. </para></listitem>
  4128. <listitem><para>
  4129. <emphasis><filename>gummiboot:</filename></emphasis>
  4130. Replaced by <filename>systemd-boot</filename>.
  4131. </para></listitem>
  4132. </itemizedlist>
  4133. </para>
  4134. </section>
  4135. <section id='migration-2.3-wic-changes'>
  4136. <title>Wic Changes</title>
  4137. <para>
  4138. The following changes have been made to Wic:
  4139. <note>
  4140. For more information on Wic, see the
  4141. "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
  4142. section in the Yocto Project Development Tasks Manual.
  4143. </note>
  4144. <itemizedlist>
  4145. <listitem><para>
  4146. <emphasis>Default Output Directory Changed:</emphasis>
  4147. Wic's default output directory is now the current directory
  4148. by default instead of the unusual
  4149. <filename>/var/tmp/wic</filename>.</para>
  4150. <para>The "-o" and "--outdir" options remain unchanged
  4151. and are used to specify your preferred output directory
  4152. if you do not want to use the default directory.
  4153. </para></listitem>
  4154. <listitem><para>
  4155. <emphasis>fsimage Plug-in Removed:</emphasis>
  4156. The Wic fsimage plug-in has been removed as it duplicates
  4157. functionality of the rawcopy plug-in.
  4158. </para></listitem>
  4159. </itemizedlist>
  4160. </para>
  4161. </section>
  4162. <section id='migration-2.3-qa-changes'>
  4163. <title>QA Changes</title>
  4164. <para>
  4165. The following QA checks have changed:
  4166. <itemizedlist>
  4167. <listitem><para>
  4168. <emphasis><filename>unsafe-references-in-binaries</filename>:</emphasis>
  4169. The <filename>unsafe-references-in-binaries</filename>
  4170. QA check, which was disabled by default, has now been
  4171. removed.
  4172. This check was intended to detect binaries in
  4173. <filename>/bin</filename> that link to libraries in
  4174. <filename>/usr/lib</filename> and have the case where
  4175. the user has <filename>/usr</filename> on a separate
  4176. filesystem to <filename>/</filename>.</para>
  4177. <para>The removed QA check was buggy.
  4178. Additionally, <filename>/usr</filename> residing on a
  4179. separate partition from <filename>/</filename> is now
  4180. a rare configuration.
  4181. Consequently,
  4182. <filename>unsafe-references-in-binaries</filename> was
  4183. removed.
  4184. </para></listitem>
  4185. <listitem><para>
  4186. <emphasis><filename>file-rdeps</filename>:</emphasis>
  4187. The <filename>file-rdeps</filename> QA check is now an
  4188. error by default instead of a warning.
  4189. Because it is an error instead of a warning, you need to
  4190. address missing runtime dependencies.</para>
  4191. <para>For additional information, see the
  4192. <link linkend='ref-classes-insane'><filename>insane</filename></link>
  4193. class and the
  4194. "<link linkend='qa-errors-and-warnings'>Errors and Warnings</link>"
  4195. section.
  4196. </para></listitem>
  4197. </itemizedlist>
  4198. </para>
  4199. </section>
  4200. <section id='migration-2.3-miscellaneous-changes'>
  4201. <title>Miscellaneous Changes</title>
  4202. <para>
  4203. The following miscellaneous changes have occurred:
  4204. <itemizedlist>
  4205. <listitem><para>
  4206. In this release, a number of recipes have been changed to
  4207. ignore the <filename>largefile</filename>
  4208. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
  4209. item, enabling large file support unconditionally.
  4210. This feature has always been enabled by default.
  4211. Disabling the feature has not been widely tested.
  4212. <note>
  4213. Future releases of the Yocto Project will remove
  4214. entirely the ability to disable the
  4215. <filename>largefile</filename> feature,
  4216. which would make it unconditionally enabled everywhere.
  4217. </note>
  4218. </para></listitem>
  4219. <listitem><para>
  4220. If the
  4221. <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
  4222. value contains the value of the
  4223. <link linkend='var-DATE'><filename>DATE</filename></link>
  4224. variable, which is the default between Poky releases,
  4225. the <filename>DATE</filename> value is explicitly excluded
  4226. from <filename>/etc/issue</filename> and
  4227. <filename>/etc/issue.net</filename>, which is displayed at
  4228. the login prompt, in order to avoid conflicts with
  4229. Multilib enabled.
  4230. Regardless, the <filename>DATE</filename> value is
  4231. inaccurate if the <filename>base-files</filename>
  4232. recipe is restored from shared state (sstate) rather
  4233. than rebuilt.</para>
  4234. <para>If you need the build date recorded in
  4235. <filename>/etc/issue*</filename> or anywhere else in your
  4236. image, a better method is to define a post-processing
  4237. function to do it and have the function called from
  4238. <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>.
  4239. Doing so ensures the value is always up-to-date with the
  4240. created image.
  4241. </para></listitem>
  4242. <listitem><para>
  4243. Dropbear's <filename>init</filename> script now disables
  4244. DSA host keys by default.
  4245. This change is in line with the systemd service
  4246. file, which supports RSA keys only, and with recent
  4247. versions of OpenSSH, which deprecates DSA host keys.
  4248. </para></listitem>
  4249. <listitem><para>
  4250. The
  4251. <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
  4252. class now correctly uses tabs as separators between all
  4253. columns in <filename>installed-package-sizes.txt</filename>
  4254. in order to aid import into other tools.
  4255. </para></listitem>
  4256. <listitem><para>
  4257. The <filename>USE_LDCONFIG</filename> variable has been
  4258. replaced with the "ldconfig"
  4259. <filename>DISTRO_FEATURES</filename> feature.
  4260. Distributions that previously set:
  4261. <literallayout class='monospaced'>
  4262. USE_LDCONFIG = "0"
  4263. </literallayout>
  4264. should now instead use the following:
  4265. <literallayout class='monospaced'>
  4266. DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig"
  4267. </literallayout>
  4268. </para></listitem>
  4269. <listitem><para>
  4270. The default value of
  4271. <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
  4272. now includes all versions of AGPL licenses in addition
  4273. to GPL and LGPL.
  4274. <note>
  4275. The default list is not intended to be guaranteed
  4276. as a complete safe list.
  4277. You should seek legal advice based on what you are
  4278. distributing if you are unsure.
  4279. </note>
  4280. </para></listitem>
  4281. <listitem><para>
  4282. Kernel module packages are now suffixed with the kernel
  4283. version in order to allow module packages from multiple
  4284. kernel versions to co-exist on a target system.
  4285. If you wish to return to the previous naming scheme
  4286. that does not include the version suffix, use the
  4287. following:
  4288. <literallayout class='monospaced'>
  4289. KERNEL_MODULE_PACKAGE_SUFFIX to ""
  4290. </literallayout>
  4291. </para></listitem>
  4292. <listitem><para>
  4293. Removal of <filename>libtool</filename>
  4294. <filename>*.la</filename> files is now enabled by default.
  4295. The <filename>*.la</filename> files are not actually
  4296. needed on Linux and relocating them is an unnecessary
  4297. burden.</para>
  4298. <para>If you need to preserve these
  4299. <filename>.la</filename> files (e.g. in a custom
  4300. distribution), you must change
  4301. <link linkend='var-INHERIT_DISTRO'><filename>INHERIT_DISTRO</filename></link>
  4302. such that "remove-libtool" is not included in the value.
  4303. </para></listitem>
  4304. <listitem><para>
  4305. Extensible SDKs built for GCC 5+ now refuse to install on a
  4306. distribution where the host GCC version is 4.8 or 4.9.
  4307. This change resulted from the fact that the installation
  4308. is known to fail due to the way the
  4309. <filename>uninative</filename> shared state (sstate)
  4310. package is built.
  4311. See the
  4312. <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
  4313. class for additional information.
  4314. </para></listitem>
  4315. <listitem><para>
  4316. All native and nativesdk recipes now use a separate
  4317. <filename>DISTRO_FEATURES</filename> value instead of
  4318. sharing the value used by recipes for the target, in order
  4319. to avoid unnecessary rebuilds.</para>
  4320. <para>The <filename>DISTRO_FEATURES</filename> for
  4321. <filename>native</filename> recipes is
  4322. <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
  4323. added to an intersection of
  4324. <filename>DISTRO_FEATURES</filename> and
  4325. <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>.
  4326. </para>
  4327. <para>For nativesdk recipes, the
  4328. corresponding variables are
  4329. <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
  4330. and
  4331. <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>.
  4332. </para></listitem>
  4333. <listitem><para>
  4334. The <filename>FILESDIR</filename>
  4335. variable, which was previously deprecated and rarely used,
  4336. has now been removed.
  4337. You should change any recipes that set
  4338. <filename>FILESDIR</filename> to set
  4339. <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
  4340. instead.
  4341. </para></listitem>
  4342. <listitem><para>
  4343. The <filename>MULTIMACH_HOST_SYS</filename>
  4344. variable has been removed as it is no longer needed
  4345. with recipe-specific sysroots.
  4346. </para></listitem>
  4347. </itemizedlist>
  4348. </para>
  4349. </section>
  4350. </section>
  4351. <section id='moving-to-the-yocto-project-2.4-release'>
  4352. <title>Moving to the Yocto Project 2.4 Release</title>
  4353. <para>
  4354. This section provides migration information for moving to the
  4355. Yocto Project 2.4 Release from the prior release.
  4356. </para>
  4357. <section id='migration-2.4-memory-resident-mode'>
  4358. <title>Memory Resident Mode</title>
  4359. <para>
  4360. A persistent mode is now available in BitBake's default operation,
  4361. replacing its previous "memory resident mode" (i.e.
  4362. <filename>oe-init-build-env-memres</filename>).
  4363. Now you only need to set
  4364. <link linkend='var-BB_SERVER_TIMEOUT'><filename>BB_SERVER_TIMEOUT</filename></link>
  4365. to a timeout (in seconds) and BitBake's server stays resident for
  4366. that amount of time between invocations.
  4367. The <filename>oe-init-build-env-memres</filename> script has been
  4368. removed since a separate environment setup script is no longer
  4369. needed.
  4370. </para>
  4371. </section>
  4372. <section id='migration-2.4-packaging-changes'>
  4373. <title>Packaging Changes</title>
  4374. <para>
  4375. This section provides information about packaging changes that have
  4376. ocurred:
  4377. <itemizedlist>
  4378. <listitem><para>
  4379. <emphasis><filename>python3</filename> Changes:</emphasis>
  4380. <itemizedlist>
  4381. <listitem><para>
  4382. The main "python3" package now brings in all of the
  4383. standard Python 3 distribution rather than a subset.
  4384. This behavior matches what is expected based on
  4385. traditional Linux distributions.
  4386. If you wish to install a subset of Python 3, specify
  4387. <filename>python-core</filename> plus one or more of
  4388. the individual packages that are still produced.
  4389. </para></listitem>
  4390. <listitem><para>
  4391. <emphasis><filename>python3</filename>:</emphasis>
  4392. The <filename>bz2.py</filename>,
  4393. <filename>lzma.py</filename>, and
  4394. <filename>_compression.py</filename> scripts have
  4395. been moved from the
  4396. <filename>python3-misc</filename> package to
  4397. the <filename>python3-compression</filename> package.
  4398. </para></listitem>
  4399. </itemizedlist>
  4400. </para></listitem>
  4401. <listitem><para>
  4402. <emphasis><filename>binutils</filename>:</emphasis>
  4403. The <filename>libbfd</filename> library is now packaged in
  4404. a separate "libbfd" package.
  4405. This packaging saves space when certain tools
  4406. (e.g. <filename>perf</filename>) are installed.
  4407. In such cases, the tools only need
  4408. <filename>libbfd</filename> rather than all the packages in
  4409. <filename>binutils</filename>.
  4410. </para></listitem>
  4411. <listitem><para>
  4412. <emphasis><filename>util-linux</filename> Changes:</emphasis>
  4413. <itemizedlist>
  4414. <listitem><para>
  4415. The <filename>su</filename> program is now packaged
  4416. in a separate "util-linux-su" package, which is only
  4417. built when "pam" is listed in the
  4418. <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
  4419. variable.
  4420. <filename>util-linux</filename> should not be
  4421. installed unless it is needed because
  4422. <filename>su</filename> is normally provided through
  4423. the shadow file format.
  4424. The main <filename>util-linux</filename> package has
  4425. runtime dependencies (i.e.
  4426. <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
  4427. on the <filename>util-linux-su</filename> package
  4428. when "pam" is in
  4429. <filename>DISTRO_FEATURES</filename>.
  4430. </para></listitem>
  4431. <listitem><para>
  4432. The <filename>switch_root</filename> program is now
  4433. packaged in a separate "util-linux-switch-root"
  4434. package for small initramfs images that do not need
  4435. the whole <filename>util-linux</filename> package or
  4436. the busybox binary, which are both much larger than
  4437. <filename>switch_root</filename>.
  4438. The main <filename>util-linux</filename> package has
  4439. a recommended runtime dependency (i.e.
  4440. <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>)
  4441. on the <filename>util-linux-switch-root</filename> package.
  4442. </para></listitem>
  4443. <listitem><para>
  4444. The <filename>ionice</filename> program is now
  4445. packaged in a separate "util-linux-ionice" package.
  4446. The main <filename>util-linux</filename> package has
  4447. a recommended runtime dependency (i.e.
  4448. <filename>RRECOMMENDS</filename>)
  4449. on the <filename>util-linux-ionice</filename> package.
  4450. </para></listitem>
  4451. </itemizedlist>
  4452. </para></listitem>
  4453. <listitem><para>
  4454. <emphasis><filename>initscripts</filename>:</emphasis>
  4455. The <filename>sushell</filename> program is now packaged in
  4456. a separate "initscripts-sushell" package.
  4457. This packaging change allows systems to pull
  4458. <filename>sushell</filename> in when
  4459. <filename>selinux</filename> is enabled.
  4460. The change also eliminates needing to pull in the entire
  4461. <filename>initscripts</filename> package.
  4462. The main <filename>initscripts</filename> package has a
  4463. runtime dependency (i.e. <filename>RDEPENDS</filename>)
  4464. on the <filename>sushell</filename> package when
  4465. "selinux" is in <filename>DISTRO_FEATURES</filename>.
  4466. </para></listitem>
  4467. <listitem><para>
  4468. <emphasis><filename>glib-2.0</filename>:</emphasis>
  4469. The <filename>glib-2.0</filename> package now has a
  4470. recommended runtime dependency (i.e.
  4471. <filename>RRECOMMENDS</filename>) on the
  4472. <filename>shared-mime-info</filename> package, since large
  4473. portions of GIO are not useful without the MIME database.
  4474. You can remove the dependency by using the
  4475. <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
  4476. variable if <filename>shared-mime-info</filename> is too
  4477. large and is not required.
  4478. </para></listitem>
  4479. <listitem><para>
  4480. <emphasis>Go Standard Runtime:</emphasis>
  4481. The Go standard runtime has been split out from the main
  4482. <filename>go</filename> recipe into a separate
  4483. <filename>go-runtime</filename> recipe.
  4484. </para></listitem>
  4485. </itemizedlist>
  4486. </para>
  4487. </section>
  4488. <section id='migration-2.4-removed-recipes'>
  4489. <title>Removed Recipes</title>
  4490. <para>
  4491. The following recipes have been removed:
  4492. <itemizedlist>
  4493. <listitem><para>
  4494. <emphasis><filename>acpitests</filename>:</emphasis>
  4495. This recipe is not maintained.
  4496. </para></listitem>
  4497. <listitem><para>
  4498. <emphasis><filename>autogen-native</filename>:</emphasis>
  4499. No longer required by Grub, oe-core, or meta-oe.
  4500. </para></listitem>
  4501. <listitem><para>
  4502. <emphasis><filename>bdwgc</filename>:</emphasis>
  4503. Nothing in OpenEmbedded-Core requires this recipe.
  4504. It has moved to meta-oe.
  4505. </para></listitem>
  4506. <listitem><para>
  4507. <emphasis><filename>byacc</filename>:</emphasis>
  4508. This recipe was only needed by rpm 5.x and has moved to
  4509. meta-oe.
  4510. </para></listitem>
  4511. <listitem><para>
  4512. <emphasis><filename>gcc (5.4)</filename>:</emphasis>
  4513. The 5.4 series dropped the recipe in favor of 6.3 / 7.2.
  4514. </para></listitem>
  4515. <listitem><para>
  4516. <emphasis><filename>gnome-common</filename>:</emphasis>
  4517. Deprecated upstream and no longer needed.
  4518. </para></listitem>
  4519. <listitem><para>
  4520. <emphasis><filename>go-bootstrap-native</filename>:</emphasis>
  4521. Go 1.9 does its own bootstrapping so this recipe has been
  4522. removed.
  4523. </para></listitem>
  4524. <listitem><para>
  4525. <emphasis><filename>guile</filename>:</emphasis>
  4526. This recipe was only needed by
  4527. <filename>autogen-native</filename> and
  4528. <filename>remake</filename>.
  4529. The recipe is no longer needed by either of these programs.
  4530. </para></listitem>
  4531. <listitem><para>
  4532. <emphasis><filename>libclass-isa-perl</filename>:</emphasis>
  4533. This recipe was previously needed for LSB 4, no longer
  4534. needed.
  4535. </para></listitem>
  4536. <listitem><para>
  4537. <emphasis><filename>libdumpvalue-perl</filename>:</emphasis>
  4538. This recipe was previously needed for LSB 4, no longer
  4539. needed.
  4540. </para></listitem>
  4541. <listitem><para>
  4542. <emphasis><filename>libenv-perl</filename>:</emphasis>
  4543. This recipe was previously needed for LSB 4, no longer
  4544. needed.
  4545. </para></listitem>
  4546. <listitem><para>
  4547. <emphasis><filename>libfile-checktree-perl</filename>:</emphasis>
  4548. This recipe was previously needed for LSB 4, no longer
  4549. needed.
  4550. </para></listitem>
  4551. <listitem><para>
  4552. <emphasis><filename>libi18n-collate-perl</filename>:</emphasis>
  4553. This recipe was previously needed for LSB 4, no longer
  4554. needed.
  4555. </para></listitem>
  4556. <listitem><para>
  4557. <emphasis><filename>libiconv</filename>:</emphasis>
  4558. This recipe was only needed for <filename>uclibc</filename>,
  4559. which was removed in the previous release.
  4560. <filename>glibc</filename> and <filename>musl</filename>
  4561. have their own implementations.
  4562. <filename>meta-mingw</filename> still needs
  4563. <filename>libiconv</filename>, so it has
  4564. been moved to <filename>meta-mingw</filename>.
  4565. </para></listitem>
  4566. <listitem><para>
  4567. <emphasis><filename>libpng12</filename>:</emphasis>
  4568. This recipe was previously needed for LSB. The current
  4569. <filename>libpng</filename> is 1.6.x.
  4570. </para></listitem>
  4571. <listitem><para>
  4572. <emphasis><filename>libpod-plainer-perl</filename>:</emphasis>
  4573. This recipe was previously needed for LSB 4, no longer
  4574. needed.
  4575. </para></listitem>
  4576. <listitem><para>
  4577. <emphasis><filename>linux-yocto (4.1)</filename>:</emphasis>
  4578. This recipe was removed in favor of 4.4, 4.9, 4.10 and 4.12.
  4579. </para></listitem>
  4580. <listitem><para>
  4581. <emphasis><filename>mailx</filename>:</emphasis>
  4582. This recipe was previously only needed for LSB
  4583. compatibility, and upstream is defunct.
  4584. </para></listitem>
  4585. <listitem><para>
  4586. <emphasis><filename>mesa (git version only)</filename>:</emphasis>
  4587. The git version recipe was stale with respect to the release
  4588. version.
  4589. </para></listitem>
  4590. <listitem><para>
  4591. <emphasis><filename>ofono (git version only)</filename>:</emphasis>
  4592. The git version recipe was stale with respect to the release
  4593. version.
  4594. </para></listitem>
  4595. <listitem><para>
  4596. <emphasis><filename>portmap</filename>:</emphasis>
  4597. This recipe is obsolete and is superseded by
  4598. <filename>rpcbind</filename>.
  4599. </para></listitem>
  4600. <listitem><para>
  4601. <emphasis><filename>python3-pygpgme</filename>:</emphasis>
  4602. This recipe is old and unmaintained. It was previously
  4603. required by <filename>dnf</filename>, which has switched
  4604. to official <filename>gpgme</filename> Python bindings.
  4605. </para></listitem>
  4606. <listitem><para>
  4607. <emphasis><filename>python-async</filename>:</emphasis>
  4608. This recipe has been removed in favor of the Python 3
  4609. version.
  4610. </para></listitem>
  4611. <listitem><para>
  4612. <emphasis><filename>python-gitdb</filename>:</emphasis>
  4613. This recipe has been removed in favor of the Python 3
  4614. version.
  4615. </para></listitem>
  4616. <listitem><para>
  4617. <emphasis><filename>python-git</filename>:</emphasis>
  4618. This recipe was removed in favor of the Python 3
  4619. version.
  4620. </para></listitem>
  4621. <listitem><para>
  4622. <emphasis><filename>python-mako</filename>:</emphasis>
  4623. This recipe was removed in favor of the Python 3
  4624. version.
  4625. </para></listitem>
  4626. <listitem><para>
  4627. <emphasis><filename>python-pexpect</filename>:</emphasis>
  4628. This recipe was removed in favor of the Python 3 version.
  4629. </para></listitem>
  4630. <listitem><para>
  4631. <emphasis><filename>python-ptyprocess</filename>:</emphasis>
  4632. This recipe was removed in favor of Python the 3 version.
  4633. </para></listitem>
  4634. <listitem><para>
  4635. <emphasis><filename>python-pycurl</filename>:</emphasis>
  4636. Nothing is using this recipe in OpenEmbedded-Core
  4637. (i.e. <filename>meta-oe</filename>).
  4638. </para></listitem>
  4639. <listitem><para>
  4640. <emphasis><filename>python-six</filename>:</emphasis>
  4641. This recipe was removed in favor of the Python 3 version.
  4642. </para></listitem>
  4643. <listitem><para>
  4644. <emphasis><filename>python-smmap</filename>:</emphasis>
  4645. This recipe was removed in favor of the Python 3 version.
  4646. </para></listitem>
  4647. <listitem><para>
  4648. <emphasis><filename>remake</filename>:</emphasis>
  4649. Using <filename>remake</filename> as the provider of
  4650. <filename>virtual/make</filename> is broken.
  4651. Consequently, this recipe is not needed in OpenEmbedded-Core.
  4652. </para></listitem>
  4653. </itemizedlist>
  4654. </para>
  4655. </section>
  4656. <section id='migration-2.4-kernel-device-tree-move'>
  4657. <title>Kernel Device Tree Move</title>
  4658. <para>
  4659. Kernel Device Tree support is now easier to enable in a kernel
  4660. recipe.
  4661. The Device Tree code has moved to a
  4662. <link linkend='ref-classes-kernel-devicetree'><filename>kernel-devicetree</filename></link>
  4663. class.
  4664. Functionality is automatically enabled for any recipe that inherits
  4665. the
  4666. <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
  4667. class and sets the
  4668. <link linkend='var-KERNEL_DEVICETREE'><filename>KERNEL_DEVICETREE</filename></link>
  4669. variable.
  4670. The previous mechanism for doing this,
  4671. <filename>meta/recipes-kernel/linux/linux-dtb.inc</filename>,
  4672. is still available to avoid breakage, but triggers a
  4673. deprecation warning.
  4674. Future releases of the Yocto Project will remove
  4675. <filename>meta/recipes-kernel/linux/linux-dtb.inc</filename>.
  4676. It is advisable to remove any <filename>require</filename>
  4677. statements that request
  4678. <filename>meta/recipes-kernel/linux/linux-dtb.inc</filename>
  4679. from any custom kernel recipes you might have.
  4680. This will avoid breakage in post 2.4 releases.
  4681. </para>
  4682. </section>
  4683. <section id='migration-2.4-package-qa-changes'>
  4684. <title>Package QA Changes</title>
  4685. <para>
  4686. The following package QA changes took place:
  4687. <itemizedlist>
  4688. <listitem><para>
  4689. The "unsafe-references-in-scripts" QA check has been
  4690. removed.
  4691. </para></listitem>
  4692. <listitem><para>
  4693. If you refer to <filename>${COREBASE}/LICENSE</filename>
  4694. within
  4695. <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
  4696. you receive a warning because this file is a description of
  4697. the license for OE-Core.
  4698. Use <filename>${COMMON_LICENSE_DIR}/MIT</filename>
  4699. if your recipe is MIT-licensed and you cannot use the
  4700. preferred method of referring to a file within the source
  4701. tree.
  4702. </para></listitem>
  4703. </itemizedlist>
  4704. </para>
  4705. </section>
  4706. <section id='migration-2.4-readme-changes'>
  4707. <title><filename>README</filename> File Changes</title>
  4708. <para>
  4709. The following are changes to <filename>README</filename> files:
  4710. <itemizedlist>
  4711. <listitem><para>
  4712. The main Poky <filename>README</filename> file has been
  4713. moved to the <filename>meta-poky</filename> layer and
  4714. has been renamed <filename>README.poky</filename>.
  4715. A symlink has been created so that references to the old
  4716. location work.
  4717. </para></listitem>
  4718. <listitem><para>
  4719. The <filename>README.hardware</filename> file has been moved
  4720. to <filename>meta-yocto-bsp</filename>.
  4721. A symlink has been created so that references to the old
  4722. location work.
  4723. </para></listitem>
  4724. <listitem><para>
  4725. A <filename>README.qemu</filename> file has been created
  4726. with coverage of the <filename>qemu*</filename> machines.
  4727. </para></listitem>
  4728. </itemizedlist>
  4729. </para>
  4730. </section>
  4731. <section id='migration-2.4-miscellaneous-changes'>
  4732. <title>Miscellaneous Changes</title>
  4733. <para>
  4734. The following are additional changes:
  4735. <itemizedlist>
  4736. <listitem><para>
  4737. The <filename>ROOTFS_PKGMANAGE_BOOTSTRAP</filename>
  4738. variable and any references to it have been removed.
  4739. You should remove this variable from any custom recipes.
  4740. </para></listitem>
  4741. <listitem><para>
  4742. The <filename>meta-yocto</filename> directory has been
  4743. removed.
  4744. <note>
  4745. In the Yocto Project 2.1 release
  4746. <filename>meta-yocto</filename> was renamed to
  4747. <filename>meta-poky</filename> and the
  4748. <filename>meta-yocto</filename> subdirectory remained
  4749. to avoid breaking existing configurations.
  4750. </note>
  4751. </para></listitem>
  4752. <listitem><para>
  4753. The <filename>maintainers.inc</filename> file, which tracks
  4754. maintainers by listing a primary person responsible for each
  4755. recipe in OE-Core, has been moved from
  4756. <filename>meta-poky</filename> to OE-Core (i.e. from
  4757. <filename>meta-poky/conf/distro/include</filename> to
  4758. <filename>meta/conf/distro/include</filename>).
  4759. </para></listitem>
  4760. <listitem><para>
  4761. The
  4762. <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
  4763. class now makes a single commit per build rather than one
  4764. commit per subdirectory in the repository.
  4765. This behavior assumes the commits are enabled with
  4766. <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
  4767. = "1", which is typical.
  4768. Previously, the <filename>buildhistory</filename> class made
  4769. one commit per subdirectory in the repository in order to
  4770. make it easier to see the changes for a particular
  4771. subdirectory.
  4772. To view a particular change, specify that subdirectory as
  4773. the last parameter on the <filename>git show</filename>
  4774. or <filename>git diff</filename> commands.
  4775. </para></listitem>
  4776. <listitem><para>
  4777. The <filename>x86-base.inc</filename> file, which is
  4778. included by all x86-based machine configurations, now sets
  4779. <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
  4780. using <filename>?=</filename> to "live" rather than
  4781. appending with <filename>+=</filename>.
  4782. This change makes the default easier to override.
  4783. </para></listitem>
  4784. <listitem><para>
  4785. BitBake fires multiple "BuildStarted" events when
  4786. multiconfig is enabled (one per configuration).
  4787. For more information, see the
  4788. "<ulink url='&YOCTO_DOCS_BB_URL;#events'>Events</ulink>"
  4789. section in the BitBake User Manual.
  4790. </para></listitem>
  4791. <listitem><para>
  4792. By default, the <filename>security_flags.inc</filename> file
  4793. sets a
  4794. <link linkend='var-GCCPIE'><filename>GCCPIE</filename></link>
  4795. variable with an option to enable Position Independent
  4796. Executables (PIE) within <filename>gcc</filename>.
  4797. Enabling PIE in the GNU C Compiler (GCC), makes Return
  4798. Oriented Programming (ROP) attacks much more difficult to
  4799. execute.
  4800. </para></listitem>
  4801. <listitem><para>
  4802. OE-Core now provides a
  4803. <filename>bitbake-layers</filename> plugin that implements
  4804. a "create-layer" subcommand.
  4805. The implementation of this subcommand has resulted in the
  4806. <filename>yocto-layer</filename> script being deprecated and
  4807. will likely be removed in the next Yocto Project release.
  4808. </para></listitem>
  4809. <listitem><para>
  4810. The <filename>vmdk</filename>, <filename>vdi</filename>,
  4811. and <filename>qcow2</filename> image file types are now
  4812. used in conjunction with the "wic" image type through
  4813. <filename>CONVERSION_CMD</filename>.
  4814. Consequently, the equivalent image types are now
  4815. <filename>wic.vmdk</filename>, <filename>wic.vdi</filename>,
  4816. and <filename>wic.qcow2</filename>, respectively.
  4817. </para></listitem>
  4818. <listitem><para>
  4819. <filename>do_image_&lt;type&gt;[depends]</filename> has
  4820. replaced <filename>IMAGE_DEPENDS_&lt;type&gt;</filename>.
  4821. If you have your own classes that implement custom image
  4822. types, then you need to update them.
  4823. </para></listitem>
  4824. <listitem><para>
  4825. OpenSSL 1.1 has been introduced.
  4826. However, the default is still 1.0.x through the
  4827. <link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link>
  4828. variable.
  4829. This preference is set is due to the remaining compatibility
  4830. issues with other software.
  4831. The
  4832. <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
  4833. variable in the openssl 1.0 recipe now includes "openssl10"
  4834. as a marker that can be used in
  4835. <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
  4836. within recipes that build software that still depend on
  4837. OpenSSL 1.0.
  4838. </para></listitem>
  4839. <listitem><para>
  4840. To ensure consistent behavior, BitBake's "-r" and "-R"
  4841. options (i.e. prefile and postfile), which are used to
  4842. read or post-read additional configuration files from the
  4843. command line, now only affect the current BitBake command.
  4844. Before these BitBake changes, these options would "stick"
  4845. for future executions.
  4846. </para></listitem>
  4847. </itemizedlist>
  4848. </para>
  4849. </section>
  4850. </section>
  4851. <section id='moving-to-the-yocto-project-2.5-release'>
  4852. <title>Moving to the Yocto Project 2.5 Release</title>
  4853. <para>
  4854. This section provides migration information for moving to the
  4855. Yocto Project 2.5 Release from the prior release.
  4856. </para>
  4857. <section id='migration-2.5-packaging-changes'>
  4858. <title>Packaging Changes</title>
  4859. <para>
  4860. This section provides information about packaging changes that have
  4861. occurred:
  4862. <itemizedlist>
  4863. <listitem><para>
  4864. <emphasis><filename>bind-libs</filename>:</emphasis>
  4865. The libraries packaged by the bind recipe are in a
  4866. separate <filename>bind-libs</filename> package.
  4867. </para></listitem>
  4868. <listitem><para>
  4869. <emphasis><filename>libfm-gtk</filename>:</emphasis>
  4870. The <filename>libfm gtk</filename>package and bindings are
  4871. split into a separate <filename>libfm-gtk</filename> package.
  4872. </para></listitem>
  4873. <listitem><para>
  4874. <emphasis><filename>flex-libfl</filename>:</emphasis>
  4875. The flex recipe splits out libfl into a separate
  4876. <filename>flex-libfl</filename> package to avoid too many
  4877. dependencies being pulled in where only the library is
  4878. needed.
  4879. </para></listitem>
  4880. <listitem><para>
  4881. <emphasis><filename>grub-efi</filename>:</emphasis>
  4882. The <filename>grub-efi</filename> configuration is split
  4883. into a separate <filename>grub-bootconf</filename>
  4884. recipe.
  4885. However, the dependency relationship from
  4886. <filename>grub-efi</filename> is through a
  4887. virtual/grub-bootconf provider making it possible to have
  4888. your own recipe provide the dependency.
  4889. Alternatively, you can use a BitBake append file to bring
  4890. the configuration back into the
  4891. <filename>grub-efi</filename> recipe.
  4892. </para></listitem>
  4893. <listitem><para>
  4894. <emphasis>ARMv7-A Legacy Support:</emphasis>
  4895. Legacy support is removed for transitioning from ARMv7-A
  4896. to armv7a-vfp-neon in package feeds, which was previously
  4897. enabled by setting
  4898. <filename>PKGARCHCOMPAT_ARMV7A</filename>.
  4899. This transition occurred in 2011 and active package feeds
  4900. should by now be updated to the new naming.
  4901. </para></listitem>
  4902. </itemizedlist>
  4903. </para>
  4904. </section>
  4905. <section id='migration-2.5-removed-recipes'>
  4906. <title>Removed Recipes</title>
  4907. <para>
  4908. The following recipes have been removed:
  4909. <itemizedlist>
  4910. <listitem><para>
  4911. <emphasis><filename>gcc</filename>:</emphasis>
  4912. The version 6.4 recipes are replaced by 7.x.
  4913. </para></listitem>
  4914. <listitem><para>
  4915. <emphasis><filename>gst-player</filename>:</emphasis>
  4916. Renamed to <filename>gst-examples</filename> as per
  4917. upstream.
  4918. </para></listitem>
  4919. <listitem><para>
  4920. <emphasis><filename>hostap-utils</filename>:</emphasis>
  4921. This recipe is obsolete.
  4922. </para></listitem>
  4923. <listitem><para>
  4924. <emphasis><filename>latencytop</filename>:</emphasis>
  4925. This recipe is no longer maintained upstream.
  4926. The last release was in 2009.
  4927. </para></listitem>
  4928. <listitem><para>
  4929. <emphasis><filename>libpfm4</filename>:</emphasis>
  4930. The only file that requires this recipe is
  4931. <filename>oprofile</filename>, which has been removed.
  4932. </para></listitem>
  4933. <listitem><para>
  4934. <emphasis><filename>linux-yocto</filename>:</emphasis>
  4935. The version 4.4, 4.9, and 4.10 recipes have been removed.
  4936. Versions 4.12, 4.14, and 4.15 remain.
  4937. </para></listitem>
  4938. <listitem><para>
  4939. <emphasis><filename>man</filename>:</emphasis>
  4940. This recipe has been replaced by
  4941. <filename>modern man-db</filename>
  4942. </para></listitem>
  4943. <listitem><para>
  4944. <emphasis><filename>mkelfimage</filename>:</emphasis>
  4945. This recipe has been removed in the upstream coreboot,
  4946. and is no longer needed with the removal of the ELF image
  4947. type.
  4948. </para></listitem>
  4949. <listitem><para>
  4950. <emphasis><filename>nativesdk-postinst-intercept</filename>:</emphasis>
  4951. This recipe is not maintained.
  4952. </para></listitem>
  4953. <listitem><para>
  4954. <emphasis><filename>neon</filename>:</emphasis>
  4955. This recipe is not maintained upstream and is not used by
  4956. anything in OpenEmbedded-Core.
  4957. </para></listitem>
  4958. <listitem><para>
  4959. <emphasis><filename>oprofile</filename>:</emphasis>
  4960. The functionality of this recipe is replaced by
  4961. <filename>perf</filename> since keeping ongoing
  4962. compatibility on with <filename>musl</filename> is
  4963. difficult.
  4964. </para></listitem>
  4965. <listitem><para>
  4966. <emphasis><filename>pax</filename>:</emphasis>
  4967. This recipe is obsolete.
  4968. </para></listitem>
  4969. <listitem><para>
  4970. <emphasis><filename>stat</filename>:</emphasis>
  4971. This recipe is not maintained upstream.
  4972. <filename>coreutils</filename> provides a modern binary for
  4973. the stat recipe.
  4974. </para></listitem>
  4975. <listitem><para>
  4976. <emphasis><filename>zisofs-tools-native</filename>:</emphasis>
  4977. This recipe is no longer needed because the compressed
  4978. ISO image feature has been removed.
  4979. </para></listitem>
  4980. </itemizedlist>
  4981. </para>
  4982. </section>
  4983. <section id='migration-2.5-scripts-and-tools-changes'>
  4984. <title>Scripts and Tools Changes</title>
  4985. <para>
  4986. The following are changes to scripts and tools:
  4987. <itemizedlist>
  4988. <listitem><para>
  4989. <emphasis><filename>yocto-bsp</filename>,
  4990. <filename>yocto-kernel</filename>, and
  4991. <filename>yocto-layer</filename></emphasis>:
  4992. The <filename>yocto-bsp</filename>,
  4993. <filename>yocto-kernel</filename>, and
  4994. <filename>yocto-layer</filename> scripts previously shipped
  4995. with poky but not in OpenEmbedded-Core have been removed.
  4996. These scripts are not maintained and are outdated.
  4997. In many cases, they are also limited in scope.
  4998. The <filename>bitbake-layers create-layer</filename> command
  4999. is a direct replacement for <filename>yocto-layer</filename>.
  5000. See the documentation to create a BSP or kernel recipe in
  5001. the
  5002. "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-kernel-recipe-example'>BSP Kernel Recipe Example</ulink>"
  5003. section.
  5004. </para></listitem>
  5005. <listitem><para>
  5006. <emphasis><filename>devtool finish</filename>:</emphasis>
  5007. <filename>devtool finish</filename> now exits with an error
  5008. if there are uncommitted changes or a rebase/am in progress
  5009. in the recipe's source repository.
  5010. If this error occurs, there might be uncommitted changes
  5011. that will not be included in updates to the patches applied
  5012. by the recipe.
  5013. A -f/--force option is provided for situations that the
  5014. uncommitted changes are inconsequential and you want to
  5015. proceed regardless.
  5016. </para></listitem>
  5017. <listitem><para>
  5018. <emphasis><filename>scripts/oe-setup-rpmrepo</filename> script:</emphasis>
  5019. The functionality of
  5020. <filename>scripts/oe-setup-rpmrepo</filename> is replaced by
  5021. <filename>bitbake package-index</filename>.
  5022. </para></listitem>
  5023. <listitem><para>
  5024. <emphasis><filename>scripts/test-dependencies.sh</filename> script:</emphasis>
  5025. The script is largely made obsolete by the
  5026. recipe-specific <filename>sysroots</filename>
  5027. functionality introduced in the previous release.
  5028. </para></listitem>
  5029. </itemizedlist>
  5030. </para>
  5031. </section>
  5032. <section id='migration-2.5-bitbake-changes'>
  5033. <title>BitBake Changes</title>
  5034. <para>
  5035. The following are BitBake changes:
  5036. <itemizedlist>
  5037. <listitem><para>
  5038. The <filename>--runall</filename> option has changed.
  5039. There are two different behaviors people might want:
  5040. <itemizedlist>
  5041. <listitem><para>
  5042. For a given target (or set of targets) look through
  5043. the task graph and run task X only if it is present
  5044. and will be built.
  5045. </para></listitem>
  5046. <listitem><para>
  5047. For a given target (or set of targets) look through
  5048. the task graph and run task X if any recipe in the
  5049. taskgraph has such a target, even if it is not in
  5050. the original task graph.
  5051. </para></listitem>
  5052. </itemizedlist>
  5053. The <filename>--runall</filename> option now performs
  5054. list item (b) mentioned in the previous bullet point.
  5055. Previously <filename>--runall</filename> behaved like list
  5056. item (a) mentioned in the previous bullet point.
  5057. A <filename>--runonly</filename> option now exists to
  5058. retain the ability to perform list item (a).
  5059. </para></listitem>
  5060. <listitem><para>
  5061. Several explicit "run this task for all recipes in the
  5062. dependency tree" tasks have been removed (e.g.
  5063. <filename>fetchall</filename>,
  5064. <filename>checkuriall</filename>, and the
  5065. <filename>*all</filename> tasks provided by the
  5066. <filename>distrodata</filename> and
  5067. <filename>archiver</filename> classes).
  5068. There is a BitBake option to complete this for any arbitrary
  5069. task. For example:
  5070. <literallayout class='monospaced'>
  5071. bitbake &lt;target&gt; -c fetchall
  5072. </literallayout>
  5073. should now be replaced with:
  5074. <literallayout class='monospaced'>
  5075. bitbake &lt;target&gt; --runall=fetch
  5076. </literallayout>
  5077. </para></listitem>
  5078. </itemizedlist>
  5079. </para>
  5080. </section>
  5081. <section id='migration-2.5-miscellaneous-changes'>
  5082. <title>Miscellaneous Changes</title>
  5083. <para>
  5084. The following are additional changes:
  5085. <itemizedlist>
  5086. <listitem><para>
  5087. The <filename>kernel</filename> class supports building
  5088. packages for multiple kernels.
  5089. If your kernel recipe or <filename>.bbappend</filename> file
  5090. mentions packaging at all, you should replace references to
  5091. the kernel in package names with
  5092. <filename>${KERNEL_PACKAGE_NAME}</filename>.
  5093. For example, if you disable automatic installation of the
  5094. kernel image using
  5095. <filename>RDEPENDS_kernel-base = ""</filename> you can avoid
  5096. warnings using
  5097. <filename>RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""</filename>
  5098. instead.
  5099. </para></listitem>
  5100. <listitem><para>
  5101. The <filename>buildhistory</filename> class commits changes
  5102. to the repository by default so you no longer need to set
  5103. <filename>BUILDHISTORY_COMMIT = "1"</filename>.
  5104. If you want to disable commits you need to set
  5105. <filename>BUILDHISTORY_COMMIT = "0"</filename> in your
  5106. configuration.
  5107. </para></listitem>
  5108. <listitem><para>
  5109. The <filename>beaglebone</filename> reference machine has
  5110. been renamed to <filename>beaglebone-yocto</filename>.
  5111. The <filename>beaglebone-yocto</filename> BSP is a reference
  5112. implementation using only mainline components available in
  5113. OpenEmbedded-Core and <filename>meta-yocto-bsp</filename>,
  5114. whereas Texas Instruments maintains a full-featured BSP in
  5115. the <filename>meta-ti</filename> layer.
  5116. This rename avoids the previous name clash that existed
  5117. between the two BSPs.
  5118. </para></listitem>
  5119. <listitem><para>
  5120. The <filename>update-alternatives</filename> class no longer
  5121. works with SysV <filename>init</filename> scripts because
  5122. this usage has been problematic.
  5123. Also, the <filename>sysklogd</filename> recipe no longer
  5124. uses <filename>update-alternatives</filename> because it is
  5125. incompatible with other implementations.
  5126. </para></listitem>
  5127. <listitem><para>
  5128. By default, the <filename>cmake</filename> class uses
  5129. <filename>ninja</filename> instead of
  5130. <filename>make</filename> for building.
  5131. This improves build performance.
  5132. If a recipe is broken with <filename>ninja</filename>, then
  5133. the recipe can set
  5134. <filename>OECMAKE_GENERATOR = "Unix Makefiles"</filename>
  5135. to change back to <filename>make</filename>.
  5136. </para></listitem>
  5137. <listitem><para>
  5138. <filename>python</filename>:
  5139. This command restructures
  5140. Python packaging and replaces it with autopackaging.
  5141. </para></listitem>
  5142. <listitem><para>
  5143. <filename>python3</filename>:
  5144. This command restructures Python3 packaging and replaces it
  5145. with autopackaging.
  5146. </para></listitem>
  5147. <listitem><para>
  5148. The previously deprecated <filename>base_*</filename>
  5149. functions have been removed in favor of their replacements
  5150. in <filename>meta/lib/oe</filename> and
  5151. <filename>bitbake/lib/bb</filename>.
  5152. These are typically used from recipes and classes.
  5153. Any references to the old functions should be updated.
  5154. The following is a full list, along with each of their
  5155. replacements:
  5156. <itemizedlist>
  5157. <listitem><para>
  5158. <filename>base_path_join()</filename>
  5159. is replaced by
  5160. <filename>oe.path.join()</filename>.
  5161. </para></listitem>
  5162. <listitem><para>
  5163. <filename>base_path_relative()</filename>
  5164. is replaced by
  5165. <filename>oe.path.relative()</filename>.
  5166. </para></listitem>
  5167. <listitem><para>
  5168. <filename>base_path_out()</filename>
  5169. is replaced by
  5170. <filename>oe.path.format_display()</filename>.
  5171. </para></listitem>
  5172. <listitem><para>
  5173. <filename>base_read_file()</filename>
  5174. is replaced by
  5175. <filename>oe.utils.read_file()</filename>.
  5176. </para></listitem>
  5177. <listitem><para>
  5178. <filename>base_ifelse()</filename>
  5179. is replaced by
  5180. <filename>oe.utils.ifelse()</filename>.
  5181. </para></listitem>
  5182. <listitem><para>
  5183. <filename>base_conditional()</filename>
  5184. is replaced by
  5185. <filename>oe.utils.conditional()</filename>.
  5186. </para></listitem>
  5187. <listitem><para>
  5188. <filename>base_less_or_equal()</filename>
  5189. is replaced by
  5190. <filename>oe.utils.less_or_equal()</filename>.
  5191. </para></listitem>
  5192. <listitem><para>
  5193. <filename>base_version_less_or_equal()</filename>
  5194. is replaced by
  5195. <filename>oe.utils.version_less_or_equal()</filename>.
  5196. </para></listitem>
  5197. <listitem><para>
  5198. <filename>base_contains()</filename>
  5199. is replaced by
  5200. <filename>bb.utils.contains()</filename>.
  5201. </para></listitem>
  5202. <listitem><para>
  5203. <filename>base_both_contain()</filename>
  5204. is replaced by
  5205. <filename>oe.utils.both_contain()</filename>.
  5206. </para></listitem>
  5207. <listitem><para>
  5208. <filename>base_prune_suffix()</filename>
  5209. is replaced by
  5210. <filename>oe.utils.prune_suffix()</filename>.
  5211. </para></listitem>
  5212. <listitem><para>
  5213. <filename>oe_filter()</filename>
  5214. is replaced by
  5215. <filename>oe.utils.str_filter()</filename>.
  5216. </para></listitem>
  5217. <listitem><para>
  5218. <filename>oe_filter_out()</filename>
  5219. is replaced by
  5220. <filename>oe.utils.str_filter_out()</filename>
  5221. (or use the <filename>_remove</filename>
  5222. operator).
  5223. </para></listitem>
  5224. </itemizedlist>
  5225. </para></listitem>
  5226. <listitem><para>
  5227. Using <filename>exit 1</filename> to explicitly defer a
  5228. postinstall script until first boot is now deprecated since
  5229. it is not an obvious mechanism and can mask actual errors.
  5230. If you want to explicitly defer a postinstall to first boot
  5231. on the target rather than at <filename>rootfs</filename>
  5232. creation time, use
  5233. <filename>pkg_postinst_ontarget()</filename>
  5234. or call
  5235. <filename>postinst-intercepts defer_to_first_boot</filename>
  5236. from <filename>pkg_postinst()</filename>.
  5237. Any failure of a <filename>pkg_postinst()</filename>
  5238. script (including <filename>exit 1</filename>)
  5239. will trigger a warning during
  5240. <filename>do_rootfs</filename>.
  5241. </para></listitem>
  5242. <listitem><para>
  5243. The <filename>elf</filename> image type has been removed.
  5244. This image type was removed because the
  5245. <filename>mkelfimage</filename> tool
  5246. that was required to create it is no longer provided by
  5247. coreboot upstream and required updating every time
  5248. <filename>binutils</filename> updated.
  5249. </para></listitem>
  5250. <listitem><para>
  5251. Support for .iso image compression (previously enabled
  5252. through <filename>COMPRESSISO = "1"</filename>) has been
  5253. removed.
  5254. The userspace tools (<filename>zisofs-tools</filename>) are
  5255. unmaintained and <filename>squashfs</filename> provides
  5256. better performance and compression.
  5257. In order to build a live image with squashfs+lz4 compression
  5258. enabled you set
  5259. <filename>LIVE_ROOTFS_TYPE = "squashfs-lz4"</filename>
  5260. and ensure that <filename>live</filename>
  5261. is in <filename>IMAGE_FSTYPES</filename>.
  5262. </para></listitem>
  5263. <listitem><para>
  5264. Recipes with an unconditional dependency on
  5265. <filename>libpam</filename> are only buildable with
  5266. <filename>pam</filename> in
  5267. <filename>DISTRO_FEATURES</filename>.
  5268. If the dependency is truly optional then it is recommended
  5269. that the dependency be conditional upon
  5270. <filename>pam</filename> being in
  5271. <filename>DISTRO_FEATURES</filename>.
  5272. </para></listitem>
  5273. <listitem><para>
  5274. For EFI-based machines, the bootloader
  5275. (<filename>grub-efi</filename> by default) is installed into
  5276. the image at /boot.
  5277. Wic can be used to split the bootloader into separate boot
  5278. and rootfs partitions if necessary.
  5279. </para></listitem>
  5280. <listitem><para>
  5281. Patches whose context does not match exactly (i.e. where
  5282. patch reports "fuzz" when applying) will generate a
  5283. warning.
  5284. For an example of this see
  5285. <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=cc97bc08125b63821ce3f616771830f77c456f57'>this commit</ulink>.
  5286. </para></listitem>
  5287. <listitem><para>
  5288. Layers are expected to set
  5289. <filename>LAYERSERIES_COMPAT_layername</filename>
  5290. to match the version(s) of OpenEmbedded-Core they are
  5291. compatible with.
  5292. This is specified as codenames using spaces to separate
  5293. multiple values (e.g. "rocko sumo").
  5294. If a layer does not set
  5295. <filename>LAYERSERIES_COMPAT_layername</filename>, a warning
  5296. will is shown.
  5297. If a layer sets a value that does not include the current
  5298. version, then an error is be produced.
  5299. </para></listitem>
  5300. <listitem><para>
  5301. The <filename>TZ</filename> environment variable is set to
  5302. "UTC" within the build environment in order to fix
  5303. reproducibility problems in some recipes.
  5304. </para></listitem>
  5305. </itemizedlist>
  5306. </para>
  5307. </section>
  5308. </section>
  5309. </chapter>
  5310. <!--
  5311. vim: expandtab tw=80 ts=4
  5312. -->