toaster-manual-setup-and-use.xml 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  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='toaster-manual-setup-and-use'>
  5. <title>Setting Up and Using Toaster</title>
  6. <section id='starting-toaster-for-local-development'>
  7. <title>Starting Toaster for Local Development</title>
  8. <para>
  9. Once you have set up the Yocto Project and installed the
  10. Toaster system dependencies as described in
  11. "<link linkend='toaster-manual-start'>Preparing to Use Toaster</link>",
  12. you are ready to start Toaster.
  13. </para>
  14. <para>
  15. If you want to configure and start your builds using the
  16. Toaster web interface
  17. (i.e. "<link linkend='toaster-build-mode'>Build Mode</link>"),
  18. navigate to the root of your
  19. <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
  20. (e.g. <filename>poky</filename>):
  21. <literallayout class='monospaced'>
  22. $ cd poky
  23. </literallayout>
  24. Next, start Toaster:
  25. <literallayout class='monospaced'>
  26. $ bitbake/bin/toaster
  27. </literallayout>
  28. Open your favourite browser and enter the following:
  29. <literallayout class='monospaced'>
  30. http://127.0.0.1:8000
  31. </literallayout>
  32. If you would rather configure and start your builds
  33. using the command line
  34. (i.e. <link linkend='toaster-analysis-mode'>Analysis Mode</link>),
  35. you can get Toaster to "listen"
  36. to your builds and collect information about them.
  37. To do that, navigate to the root of your Source Directory:
  38. <literallayout class='monospaced'>
  39. $ cd poky
  40. </literallayout>
  41. Once in that directory, source the build environment script:
  42. <literallayout class='monospaced'>
  43. $ source oe-init-build-env
  44. </literallayout>
  45. Next, from the build directory (e.g.
  46. <filename>poky/build</filename>), start Toaster using this
  47. command:
  48. <literallayout class='monospaced'>
  49. $ source ../bitbake/bin/toaster
  50. </literallayout>
  51. You can now run your builds from the command line, or with
  52. Toaster as explained in section
  53. "<link linkend='using-the-toaster-web-interface'>Using the Toaster Web Interface</link>".
  54. </para>
  55. <para>
  56. To access the Toaster web interface, open your favorite
  57. browser and enter the following:
  58. <literallayout class='monospaced'>
  59. http://127.0.0.1:8000
  60. </literallayout>
  61. </para>
  62. </section>
  63. <section id='setting-a-different-port'>
  64. <title>Setting a Different Port</title>
  65. <para>
  66. By default, Toaster starts on port 8000.
  67. You can use the <filename>WEBPORT</filename> parameter to
  68. set a different port.
  69. For example, either of the following commands sets the
  70. port to "8400":
  71. <literallayout class='monospaced'>
  72. $ bitbake/bin/toaster webport=8400
  73. </literallayout>
  74. or
  75. <literallayout class='monospaced'>
  76. $ source ../bitbake/bin/toaster webport=8400
  77. </literallayout>
  78. </para>
  79. </section>
  80. <section id='the-directory-for-cloning-layers'>
  81. <title>The Directory for Cloning Layers</title>
  82. <para>
  83. If you are running Toaster in
  84. <link linkend='toaster-build-mode'>Build Mode</link>,
  85. Toaster creates a <filename>_toaster_clones</filename>
  86. directory inside your Source Directory
  87. (i.e. <filename>poky</filename>).
  88. For example, suppose you use this command to start Toaster:
  89. <literallayout class='monospaced'>
  90. poky/bitbake/bin/toaster
  91. </literallayout>
  92. In this example, Toaster creates and uses the
  93. <filename>poky/_toaster_clones</filename>
  94. directory to clone any layers needed for your builds.
  95. </para>
  96. <para>
  97. Alternatively, if you would like all of your Toaster related
  98. files and directories to be in a particular location other than
  99. the default, you can set the <filename>TOASTER_DIR</filename>
  100. environment variable, which takes precedence over your current
  101. working directory.
  102. Setting this environment variable causes Toaster to create and use
  103. <filename>$TOASTER_DIR./_toaster_clones</filename>.
  104. </para>
  105. </section>
  106. <section id='toaster-the-build-directory'>
  107. <title>The Build Directory</title>
  108. <para>
  109. If you are running Toaster in
  110. <link linkend='toaster-build-mode'>Build Mode</link>,
  111. Toaster creates a build directory within your Source
  112. Directory (e.g. <filename>poky</filename>).
  113. For example, suppose you use this command to start Toaster:
  114. <literallayout class='monospaced'>
  115. poky/bitbake/bin/toaster
  116. </literallayout>
  117. In this example, Toaster creates and uses the
  118. <filename>poky/build</filename>
  119. directory to execute the builds.
  120. </para>
  121. <para>
  122. Alternatively, if you would like all of your Toaster related files
  123. and directories to be in a particular location, you can set
  124. the <filename>TOASTER_DIR</filename> environment variable,
  125. which takes precedence over your current working directory.
  126. Setting this environment variable causes Toaster to use
  127. <filename>$TOASTER_DIR./build</filename> as the build directory.
  128. </para>
  129. </section>
  130. <section id='toaster-creating-a-django-super-user'>
  131. <title>Creating a Django Superuser</title>
  132. <para>
  133. Toaster is built on the
  134. <ulink url='https://www.djangoproject.com/'>Django framework</ulink>.
  135. Django provides an administration interface you can use
  136. to edit Toaster configuration parameters.
  137. </para>
  138. <para>
  139. To access the Django administration interface, you must
  140. create a superuser by following these steps:
  141. <orderedlist>
  142. <listitem><para>
  143. If you used <filename>virtualenv</filename>, which is
  144. recommended, to set up the Toaster system dependencies,
  145. you need be sure the virtual environment is activated.
  146. To activate this environment, use the following:
  147. <literallayout class='monospaced'>
  148. $ source venv/bin/activate
  149. </literallayout>
  150. </para></listitem>
  151. <listitem><para>
  152. From the root of your checkout directory, invoke the
  153. following command from <filename>manage.py</filename>:
  154. <literallayout class='monospaced'>
  155. $ ./bitbake/lib/toaster/manage.py createsuperuser
  156. </literallayout>
  157. </para></listitem>
  158. <listitem><para>
  159. Django prompts you for the username, which you need to
  160. provide.
  161. </para></listitem>
  162. <listitem><para>
  163. Django prompts you for an email address, which is
  164. optional.
  165. </para></listitem>
  166. <listitem><para>
  167. Django prompts you for a password, which you must provide.
  168. </para></listitem>
  169. <listitem><para>
  170. Django prompts you to re-enter your password for verification.
  171. </para></listitem>
  172. </orderedlist>
  173. After completing these steps, the following confirmation message
  174. appears:
  175. <literallayout class='monospaced'>
  176. Superuser created successfully.
  177. </literallayout>
  178. </para>
  179. <para>
  180. Creating a superuser allows you to access the Django administration
  181. interface through a browser.
  182. The URL for this interface is the same as the URL used for the
  183. Toaster instance with "/admin" on the end.
  184. For example, if you are running Toaster locally, use the
  185. following URL:
  186. <literallayout class='monospaced'>
  187. http://127.0.0.1:8000/admin
  188. </literallayout>
  189. You can use the Django administration interface to set Toaster
  190. configuration parameters such as the build directory, layer sources,
  191. default variable values, and BitBake versions.
  192. </para>
  193. </section>
  194. <section id='toaster-setting-up-a-production-instance-of-toaster'>
  195. <title>Setting Up a Production Instance of Toaster</title>
  196. <para>
  197. You can use a production instance of Toaster to share the
  198. Toaster instance with remote users, multiple users, or both.
  199. The production instance is also the setup that can cope with
  200. heavier loads on the web service.
  201. Use the instructions in the following sections to set up
  202. Toaster in
  203. <link linkend='toaster-build-mode'>Build Mode</link>
  204. where builds and projects are run,
  205. viewed, and defined through the Toaster web interface.
  206. </para>
  207. <section id='toaster-production-instance-requirements'>
  208. <title>Requirements</title>
  209. <para>
  210. Be sure you meet the following requirements:
  211. <note>
  212. You must comply with all Apache,
  213. <filename>mod-wsgi</filename>, and Mysql requirements.
  214. </note>
  215. <itemizedlist>
  216. <listitem><para>
  217. Have all the build requirements as described in
  218. "<link linkend='toaster-setting-up-the-basic-system-requirements'>Setting Up the Basic System Requirements</link>"
  219. chapter.
  220. </para></listitem>
  221. <listitem><para>
  222. Have an Apache webserver.
  223. </para></listitem>
  224. <listitem><para>
  225. Have <filename>mod-wsgi</filename> for the Apache
  226. webserver.
  227. </para></listitem>
  228. <listitem><para>
  229. Use the Mysql database server.
  230. </para></listitem>
  231. <listitem><para>
  232. If you are using Ubuntu 14.04.3, run the following:
  233. <literallayout class='monospaced'>
  234. $ sudo apt-get install apache2 libapache2-mod-wsgi mysql-server virtualenv libmysqlclient-dev
  235. </literallayout>
  236. </para></listitem>
  237. <listitem><para>
  238. If you are using Fedora 22 or a RedHat distribution, run
  239. the following:
  240. <literallayout class='monospaced'>
  241. $ sudo dnf install httpd mod_wsgi python-virtualenv gcc mysql-devel
  242. </literallayout>
  243. </para></listitem>
  244. </itemizedlist>
  245. </para>
  246. </section>
  247. <section id='toaster-installation-steps'>
  248. <title>Installation</title>
  249. <para>
  250. Perform the following steps to install Toaster:
  251. <orderedlist>
  252. <listitem><para>
  253. Checkout a copy of <filename>poky</filename>
  254. into the web server directory.
  255. You will be using <filename>/var/www/toaster</filename>:
  256. <literallayout class='monospaced'>
  257. $ mkdir -p /var/www/toaster
  258. $ cd /var/www/toaster/
  259. $ git clone git://git.yoctoproject.org/poky
  260. $ git checkout &DISTRO_NAME;
  261. </literallayout>
  262. </para></listitem>
  263. <listitem><para>
  264. Initialize a virtual environment and install Toaster
  265. dependencies.
  266. Using a virtual environment keeps the Python packages
  267. isolated from your system-provided packages:
  268. <literallayout class='monospaced'>
  269. $ cd /var/www/toaster/
  270. $ virtualenv venv
  271. $ source ./venv/bin/activate
  272. $ pip install -r ./poky/bitbake/toaster-requirements.txt
  273. $ pip install mysql
  274. $ pip install MySQL-python
  275. </literallayout>
  276. <note>
  277. Isolating these packages is not required but is
  278. recommended.
  279. Alternatively, you can use your operating system's
  280. package manager to install the packages.
  281. </note>
  282. </para></listitem>
  283. <listitem><para>
  284. Configure Toaster by editing
  285. <filename>/var/www/toaster/poky/bitbake/lib/toaster/toastermain/settings.py</filename>
  286. as follows:
  287. <itemizedlist>
  288. <listitem><para>
  289. Edit the <filename>DATABASE</filename> settings:
  290. <literallayout class='monospaced'>
  291. DATABASES = {
  292. 'default': {
  293. 'ENGINE': 'django.db.backends.mysql',
  294. 'NAME': 'toaster_data',
  295. 'USER': 'toaster',
  296. 'PASSWORD': 'yourpasswordhere',
  297. 'HOST': 'localhost',
  298. 'PORT': '3306',
  299. }
  300. </literallayout>
  301. </para></listitem>
  302. <listitem><para>
  303. Edit the <filename>SECRET_KEY</filename>:
  304. <literallayout class='monospaced'>
  305. SECRET_KEY = '<replaceable>your_secret_key</replaceable>'
  306. </literallayout>
  307. </para></listitem>
  308. <listitem><para>
  309. Edit the <filename>STATIC_ROOT</filename>:
  310. <literallayout class='monospaced'>
  311. STATIC_ROOT = '/var/www/toaster/static_files/'
  312. </literallayout>
  313. </para></listitem>
  314. <listitem><para>
  315. Enable Build Mode by adding the following
  316. line to <filename>settings.py</filename>:
  317. <literallayout class='monospaced'>
  318. BUILD_MODE=True
  319. </literallayout>
  320. </para></listitem>
  321. </itemizedlist>
  322. </para></listitem>
  323. <listitem><para>
  324. Add the database and user to the <filename>mysql</filename>
  325. server defined earlier:
  326. <literallayout class='monospaced'>
  327. $ mysql -u root -p
  328. mysql> CREATE DATABASE toaster;
  329. mysql> CREATE USER 'toaster'@'localhost' identified by 'yourpasswordhere';
  330. mysql> GRANT all on toaster_data.* to 'toaster'@'localhost';
  331. mysql> quit
  332. </literallayout>
  333. </para></listitem>
  334. <listitem><para>
  335. Get Toaster to create the database schema,
  336. default data, and gather the statically-served files:
  337. <literallayout class='monospaced'>
  338. $ cd /var/www/toaster/poky/
  339. $ ./bitbake/lib/toaster/manage.py syncdb --migrate
  340. $ ./bitbake/lib/toaster/manage.py loadconf ./meta-yocto/conf/toasterconf.json
  341. $ ./bitbake/lib/toaster/manage.py lsupdates
  342. $ ./bitbake/lib/toaster/manage.py collectstatic
  343. </literallayout>
  344. </para>
  345. <para>
  346. For the above set of commands, after moving to the
  347. <filename>poky</filename> directory,
  348. the <filename>syncdb</filename> command with the
  349. <filename>migrate</filename> option makes sure the database
  350. schema has had changes propagated correctly (i.e.
  351. migrations).
  352. See the
  353. <ulink url='https://south.readthedocs.org/en/latest/commands.html#syncdb'><filename>syncdb</filename></ulink>
  354. command for more information.
  355. </para>
  356. <para>
  357. The
  358. <link linkend='toaster-command-loadconf'><filename>loadconf</filename></link>
  359. command loads the
  360. <filename>./meta-yocto/conf/toasterconf.json</filename>
  361. JSON file.
  362. </para>
  363. <para>
  364. The <filename>lsupdates</filename> command fetches
  365. information about machines, recipes and
  366. layers available as part of OpenEmbedded.
  367. The information is fetched from the
  368. <ulink url='http://layers.openembedded.org/'>OpenEmbedded Metadata Index</ulink>.
  369. This information provides easy access to metadata
  370. from Toaster, and it is key for Toaster's usability.
  371. It is not recommended that you use Toaster without
  372. fetching this information."
  373. </para>
  374. <para>
  375. Finally, the <filename>collectstatic</filename> command
  376. is a Django framework command that collects all the
  377. statically served files into a designated directory to
  378. be served up by the Apache web server.
  379. For more information on this Django command, see
  380. <ulink url='https://docs.djangoproject.com/en/1.7/ref/contrib/staticfiles/'></ulink>.
  381. </para></listitem>
  382. <listitem><para>
  383. Add an Apache configuration file for Toaster to your Apache web
  384. server's configuration directory.
  385. If you are using Ubuntu or Debian, put the file here:
  386. <literallayout class='monospaced'>
  387. /etc/apache2/conf-available/toaster.conf
  388. </literallayout>
  389. If you are using Fedora or RedHat, put it here:
  390. <literallayout class='monospaced'>
  391. /etc/httpd/conf.d/toaster.conf
  392. </literallayout>
  393. Following is a sample Apache configuration for Toaster
  394. you can follow:
  395. <literallayout class='monospaced'>
  396. Alias /static /var/www/toaster/static_files
  397. &lt;Directory /var/www/toaster/static_files&gt;
  398. Order allow,deny
  399. Allow from all
  400. Require all granted
  401. &lt;/Directory&gt;
  402. WSGIDaemonProcess toaster_wsgi python-path=/var/www/toaster/poky/bitbake/lib/toaster:/var/www/toaster/venv/lib/python2.7/site-packages
  403. WSGIScriptAlias / "/var/www/toaster/poky/bitbake/lib/toaster/toastermain/wsgi.py"
  404. &lt;Location /&gt;
  405. WSGIProcessGroup toastern_wsgi
  406. &lt;/Location&gt;
  407. </literallayout>
  408. If you are using Ubuntu or Debian,
  409. you will need to enable the config and module for Apache:
  410. <literallayout class='monospaced'>
  411. $ sudo a2enmod wsgi
  412. $ sudo a2enconf toaster
  413. </literallayout>
  414. Finally, restart Apache to make sure all new configuration
  415. is loaded.
  416. For Ubuntu and Debian use:
  417. <literallayout class='monospaced'>
  418. $ sudo service apache2 restart
  419. </literallayout>
  420. For Fedora and RedHat use:
  421. <literallayout class='monospaced'>
  422. $ sudo service httpd restart
  423. </literallayout>
  424. </para></listitem>
  425. <listitem><para>
  426. Install the build runner service.
  427. This service needs to be running in order to dispatch
  428. builds.
  429. Use this command:
  430. <literallayout class='monospaced'>
  431. /var/www/toaster/poky/bitbake/lib/toaster/manage.py runbuilds
  432. </literallayout>
  433. Here is an example:
  434. <literallayout class='monospaced'>
  435. #!/bin/sh
  436. # toaster run builds dispatcher
  437. cd /var/www/toaster/
  438. source ./venv/bin/activate
  439. ./bitbake/lib/toaster/manage.py runbuilds
  440. </literallayout>
  441. </para></listitem>
  442. </orderedlist>
  443. You can now open up a browser and start using Toaster.
  444. </para>
  445. </section>
  446. </section>
  447. <section id='using-the-toaster-web-interface'>
  448. <title>Using the Toaster Web Interface</title>
  449. <para>
  450. The Toaster web interface allows you to do the following:
  451. <itemizedlist>
  452. <listitem><para>
  453. Browse published layers in the
  454. <ulink url='http://layers.openembedded.org'>OpenEmbedded Metadata Index</ulink>
  455. that are available for your selected version of the build
  456. system.
  457. </para></listitem>
  458. <listitem><para>
  459. Import your own layers for building.
  460. </para></listitem>
  461. <listitem><para>
  462. Add and remove layers from your configuration.
  463. </para></listitem>
  464. <listitem><para>
  465. Set configuration variables.
  466. </para></listitem>
  467. <listitem><para>
  468. Select a target or multiple targets to build.
  469. </para></listitem>
  470. <listitem><para>
  471. Start your builds.
  472. </para></listitem>
  473. <listitem><para>
  474. See what was built (recipes and packages) and what
  475. packages were installed into your final image.
  476. </para></listitem>
  477. <listitem><para>
  478. Browse the directory structure of your image.
  479. </para></listitem>
  480. <listitem><para>
  481. See the value of all variables in your build configuration,
  482. and which files set each value.
  483. </para></listitem>
  484. <listitem><para>
  485. Examine error, warning and trace messages to aid in
  486. debugging.
  487. </para></listitem>
  488. <listitem><para>
  489. See information about the BitBake tasks executed and
  490. reused during your build, including those that used
  491. shared state.
  492. </para></listitem>
  493. <listitem><para>
  494. See dependency relationships between recipes, packages
  495. and tasks.
  496. </para></listitem>
  497. <listitem><para>
  498. See performance information such as build time, task time,
  499. CPU usage, and disk I/O.
  500. </para></listitem>
  501. </itemizedlist>
  502. </para>
  503. <section id='web-interface-videos'>
  504. <title>Toaster Web Interface Videos</title>
  505. <para>
  506. Following are several videos that show how to use the Toaster GUI:
  507. <itemizedlist>
  508. <listitem><para><emphasis>Build Configuration:</emphasis>
  509. This
  510. <ulink url='https://www.youtube.com/watch?v=qYgDZ8YzV6w'>video</ulink>
  511. overviews and demonstrates build configuration for Toaster.
  512. </para></listitem>
  513. <listitem><para><emphasis>Build Custom Layers:</emphasis>
  514. This
  515. <ulink url='https://www.youtube.com/watch?v=QJzaE_XjX5c'>video</ulink>
  516. shows you how to build custom layers that are used with
  517. Toaster.
  518. </para></listitem>
  519. <listitem><para><emphasis>Toaster Homepage and Table Controls:</emphasis>
  520. This
  521. <ulink url='https://www.youtube.com/watch?v=QEARDnrR1Xw'>video</ulink>
  522. goes over the Toaster entry page, and provides
  523. an overview of the data manipulation capabilities of
  524. Toaster, which include search, sorting and filtering by
  525. different criteria.
  526. </para></listitem>
  527. <listitem><para><emphasis>Build Dashboard:</emphasis>
  528. This
  529. <ulink url='https://www.youtube.com/watch?v=KKqHYcnp2gE'>video</ulink>
  530. shows you the build dashboard, a page providing an
  531. overview of the information available for a selected build.
  532. </para></listitem>
  533. <listitem><para><emphasis>Image Information:</emphasis>
  534. This
  535. <ulink url='https://www.youtube.com/watch?v=XqYGFsmA0Rw'>video</ulink>
  536. walks through the information Toaster provides
  537. about images: packages installed and root file system.
  538. </para></listitem>
  539. <listitem><para><emphasis>Configuration:</emphasis>
  540. This
  541. <ulink url='https://www.youtube.com/watch?v=UW-j-T2TzIg'>video</ulink>
  542. provides Toaster build configuration information.
  543. </para></listitem>
  544. <listitem><para><emphasis>Tasks:</emphasis>
  545. This
  546. <ulink url='https://www.youtube.com/watch?v=D4-9vGSxQtw'>video</ulink>
  547. shows the information Toaster provides about the
  548. tasks run by the build system.
  549. </para></listitem>
  550. <listitem><para><emphasis>Recipes and Packages Built:</emphasis>
  551. This
  552. <ulink url='https://www.youtube.com/watch?v=x-6dx4huNnw'>video</ulink>
  553. shows the information Toaster provides about recipes
  554. and packages built.
  555. </para></listitem>
  556. <listitem><para><emphasis>Performance Data:</emphasis>
  557. This
  558. <ulink url='https://www.youtube.com/watch?v=qWGMrJoqusQ'>video</ulink>
  559. shows the build performance data provided by
  560. Toaster.
  561. </para></listitem>
  562. </itemizedlist>
  563. </para>
  564. </section>
  565. <section id='toaster-web-interface-preferred-version'>
  566. <title>Building a Specific Recipe Given Multiple Versions</title>
  567. <para>
  568. Occasionally, a layer might provide more than one version of
  569. the same recipe.
  570. For example, the <filename>openembedded-core</filename> layer
  571. provides two versions of the <filename>bash</filename> recipe
  572. (i.e. 3.2.48 and 4.3.30-r0) and two versions of the
  573. <filename>which</filename> recipe (i.e. 2.21 and 2.18).
  574. The following figure shows this exact scenario:
  575. <imagedata fileref="figures/bash-oecore.png" align="center" width="9in" depth="6in" />
  576. </para>
  577. <para>
  578. By default, the OpenEmbedded build system builds one of the
  579. two recipes.
  580. For the <filename>bash</filename> case, version 4.3.30-r0 is
  581. built by default.
  582. Unfortunately, Toaster as it exists, is not able to override
  583. the default recipe version.
  584. If you would like to build bash 3.2.48, you need to set the
  585. <ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></ulink>
  586. variable.
  587. You can do so from Toaster, using the "Add variable" form,
  588. which is available in the "BitBake variables" page of the
  589. project configuration section as shown in the following screen:
  590. <imagedata fileref="figures/add-variable.png" align="center" width="9in" depth="6in" />
  591. </para>
  592. <para>
  593. To specify <filename>bash</filename> 3.2.48 as the version to build,
  594. enter "PREFERRED_VERSION_bash" in the "Variable" field, and "3.2.48"
  595. in the "Value" field.
  596. Next, click the "Add variable" button:
  597. <imagedata fileref="figures/set-variable.png" align="center" width="9in" depth="6in" />
  598. </para>
  599. <para>
  600. After clicking the "Add variable" button, the settings for
  601. <filename>PREFERRED_VERSION</filename> are added to the bottom
  602. of the BitBake variables list.
  603. With these settings, the OpenEmbedded build system builds the
  604. desired version of the recipe rather than the default version:
  605. <imagedata fileref="figures/variable-added.png" align="center" width="9in" depth="6in" />
  606. </para>
  607. </section>
  608. </section>
  609. </chapter>