Editing Documentation/Maemo Eclipse Tutorial/Using ESbox

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.

Warning: This page is 36 kilobytes long; some browsers may have problems editing pages approaching or longer than 32kb. Please consider breaking the page into smaller sections.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 11: Line 11:
Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.
Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.
-
To create a new C or C++ project, select '''File > New > Project''', figure [[#figure-esbox_usage_project_new|8.1]].
+
To create a new C or C++ project, select '''File > New > Project''', figure [[#fig:esbox_usage_project_new|8.1]].
* C > C Maemo Project
* C > C Maemo Project
Line 18: Line 18:
For Qt4 projects, select C++ project.
For Qt4 projects, select C++ project.
-
<div id="figure-esbox_usage_project_new">
+
{| summary="New Project Menu"
-
[[Image:project-Python-new.png|frame|center|alt=Screenshot of New Project menu|Figure 8.1: New Project Menu]]
+
|+ align="BOTTOM" |'''Figure 8.1:''' New Project Menu
-
</div>
+
|-
 +
|
 +
[[Image:project-Python-new.png|Image project-Python-new]]
 +
|}
-
ESbox supports simple Qt4, Makefile and Autotools projects, figure [[#figure-esbox_usage_c_01_projects|8.2]].
+
ESbox supports simple Qt4, Makefile and Autotools projects, figure [[#fig:esbox_usage_c_01_projects|8.2]].
-
<div id="figure-esbox_usage_c_01_projects">
+
{| summary="New C/C++ Project"
-
[[Image:c-01-projects.png|frame|center|alt=Screenshot of New C/C++ project|Figure 8.2: New C/C++ Project]]
+
|+ align="BOTTOM" |'''Figure 8.2:''' New C/C++ Project
-
</div>
+
|-
 +
|
 +
[[Image:c-01-projects.png|Image c-01-projects]]
 +
|}
-
Select any of the available templates on the '''Template Project Type''' page, figure [[#figure-esbox_usage_c_02_templates|8.3]].
+
Select any of the available templates on the '''Template Project Type''' page, figure [[#fig:esbox_usage_c_02_templates|8.3]].
-
<div id="figure-esbox_usage_c_02_templates">
+
{| summary="C/C++ Project Template"
-
[[Image:c-02-templates.png|frame|center|alt=Screenshot of CC++ project template|Figure 8.3: C/C++ Project Template]]
+
|+ align="BOTTOM" |'''Figure 8.3:''' C/C++ Project Template
-
</div>
+
|-
 +
|
 +
[[Image:c-02-templates.png|Image c-02-templates]]
 +
|}
{{ambox
{{ambox
-
|text='''Maemo 4''' templates are only for [[Open development/Maemo roadmap/Diablo|Diablo]] targets and '''Maemo 5''' templates for [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Select the correct template depending on your installation.
+
|text='''Maemo 4''' templates are only for Diablo targets and '''Maemo 5''' templates for Fremantle. Select the correct template depending on your installation.
}}
}}
Line 42: Line 51:
You can select multiple targets for a project. Optimized targets are compiled using compiler optimization while debug targets are compiled with debug options.
You can select multiple targets for a project. Optimized targets are compiled using compiler optimization while debug targets are compiled with debug options.
-
If you want to run a project on a Maemo device, select the <code>ARMEL</code> target. To run a project on the emulator, select the <code>X86</code> target.
+
If you want to run a project on a Maemo device, select the <span><font face="monospace">ARMEL</font></span> target. To run a project on the emulator, select the <span><font face="monospace">X86</font></span> target.
-
Select all targets for a project, figure [[#figure-esbox_usage_c_03_targets|8.4]]. You can change the targets after you have created the project.
+
Select all targets for a project, figure [[#fig:esbox_usage_c_03_targets|8.4]]. You can change the targets after you have created the project.
-
<div id="figure-esbox_usage_c_03_targets">
+
{| summary="C/C++ Project Target"
-
[[Image:c-03-targets.png|frame|center|alt=Screenshot of C/C++ project target|Figure 8.4: C/C++ Project Target]]
+
|+ align="BOTTOM" |'''Figure 8.4:''' C/C++ Project Target
-
</div>
+
|-
 +
|
 +
[[Image:c-03-targets.png|Image c-03-targets]]
 +
|}
If you do not see any targets on the '''Project Configuration''' page, check that Maemo SDK targets are installed and install them if necessary. For more information on how to install Maemo SDK and targets for ESbox, see ESbox installation chapters.
If you do not see any targets on the '''Project Configuration''' page, check that Maemo SDK targets are installed and install them if necessary. For more information on how to install Maemo SDK and targets for ESbox, see ESbox installation chapters.
Line 54: Line 66:
=== C/C++ and Qt4 Metadata ===
=== C/C++ and Qt4 Metadata ===
-
Other project pages define different metadata the template uses. You can specify additional information in the fields or use the default values, figure [[#figure-esbox_usage_c_04_metadata|8.5]].
+
Other project pages define different metadata the template uses. You can specify additional information in the fields or use the default values, figure [[#fig:esbox_usage_c_04_metadata|8.5]].
-
<div id="figure-esbox_usage_c_04_metadata">
+
{| summary="C/C++ Project Metadata"
-
[[Image:c-04-metadata.png|frame|center|alt=Screenshot of C/C++ project metadata|Figure 8.5: C/C++ Project Metadata]]
+
|+ align="BOTTOM" |'''Figure 8.5:''' C/C++ Project Metadata
-
</div>
+
|-
 +
|
 +
[[Image:c-04-metadata.png|Image c-04-metadata]]
 +
|}
After defining the values, click '''Finish''' to create a project.
After defining the values, click '''Finish''' to create a project.
Line 64: Line 79:
=== Validating C/C++ and Qt4 Project Packages for Maemo SDK ===
=== Validating C/C++ and Qt4 Project Packages for Maemo SDK ===
-
When you have created a new project, ESbox suggests package validation, figure [[#figure-esbox_usage_c_05_validate|8.6]]. If you are not sure that the required development environments have been installed for your targets, click '''Yes'''.
+
When you have created a new project, ESbox suggests package validation, figure [[#fig:esbox_usage_c_05_validate|8.6]]. If you are not sure that the required development environments have been installed for your targets, click '''Yes'''.
-
<div id="figure-esbox_usage_c_05_validate">
+
{| summary="Validate Packages Dialog"
-
[[Image:c-05-validate.png|frame|center|alt=Screenshot of package validation dialog|Figure 8.6: Validate Packages Dialog]]
+
|+ align="BOTTOM" |'''Figure 8.6:''' Validate Packages Dialog
-
</div>
+
|-
 +
|
 +
[[Image:c-05-validate.png|Image c-05-validate]]
 +
|}
-
ESbox installs all the required dependencies for your project for the selected targets, if they are not installed already, figure [[#figure-esbox_usage_c_06_validate_wizard|8.7]].
+
ESbox installs all the required dependencies for your project for the selected targets, if they are not installed already, figure [[#fig:esbox_usage_c_06_validate_wizard|8.7]].
If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.
If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.
-
<div id="figure-esbox_usage_c_06_validate_wizard">
+
{| summary="Validate Packages Wizard"
-
[[Image:c-06-validate-wizard.png|frame|center|alt=Screenshot of package validation wizard|Figure 8.7: Validate Packages Wizard]]
+
|+ align="BOTTOM" |'''Figure 8.7:''' Validate Packages Wizard
-
</div>
+
|-
 +
|
 +
[[Image:c-06-validate-wizard.png|Image c-06-validate-wizard]]
 +
|}
You can also validate project packages afterwards. To start the validation, select '''Project &gt; Project Menu &gt; Validate Installed Packages'''.
You can also validate project packages afterwards. To start the validation, select '''Project &gt; Project Menu &gt; Validate Installed Packages'''.
Line 82: Line 103:
During validation, the projects are scanned for dependencies using the following information:
During validation, the projects are scanned for dependencies using the following information:
-
* Autotools projects: <code>PKG_CHECK_MODULES</code> macros in <code>configure.ac</code>
+
* Autotools projects: <span><font face="monospace">PKG_CONFIG_CHECK</font></span> macros in configure.ac
* Makefile projects: default metapackages for the project type and libraries detected through <code>pkg-config</code> invocations
* Makefile projects: default metapackages for the project type and libraries detected through <code>pkg-config</code> invocations
== Running C/C++ and Qt4 Applications on Maemo SDK ==
== Running C/C++ and Qt4 Applications on Maemo SDK ==
-
First, select the build configuration. Change the build configuration to <code>DIABLO_X86 (Debug)</code> or <code>FREMANTLE_X86 (Debug)<code>.
+
First, select the build configuration. Change the build configuration to <span><font face="monospace">DIABLO_X86 (Debug)</font></span> or <span><font face="monospace">FREMANTLE_X86 (Debug)</font></span>.
-
To activate the selected configuration, right-click the project and select '''Build Configurations &gt; Set active''', figure [[#figure-esbox_usage_c_07_set_target|8.8]].
+
To activate the selected configuration, right-click the project and select '''Build Configurations &gt; Set active''', figure [[#fig:esbox_usage_c_07_set_target|8.8]].
-
<div id="figure-esbox_usage_c_07_set_target">
+
{| summary="Set C/C++ Project Target"
-
[[Image:c-07-set-target.png|frame|center|alt=Screenshot of C/C++ project target|Figure 8.8: Set C/C++ Project Target]]
+
|+ align="BOTTOM" |'''Figure 8.8:''' Set C/C++ Project Target
-
</div>
+
|-
 +
|
 +
[[Image:c-07-set-target.png|Image c-07-set-target]]
 +
|}
To add or remove targets, select '''Manage''' in the same menu.
To add or remove targets, select '''Manage''' in the same menu.
-
The project is ready to be launched on Maemo SDK. To launch it, right-click the project and select '''Run As &gt; Maemo Local Application''', figure [[#figure-esbox_usage_c_08_run_as|8.9]].
+
The project is ready to be launched on Maemo SDK. To launch it, right-click the project and select '''Run As &gt; Maemo Local Application''', figure [[#fig:esbox_usage_c_08_run_as|8.9]].
-
<div id="figure-esbox_usage_c_08_run_as">
+
{| summary="Run C/C++ Project as Local Application"
-
[[Image:c-08-run-as.png|frame|center|alt=Screenshot of C/C++ project running as a local application|'''Figure 8.9:''' Run C/C++ Project as Local Application]]
+
|+ align="BOTTOM" |'''Figure 8.9:''' Run C/C++ Project as Local Application
-
</div>
+
|-
 +
|
 +
[[Image:c-08-run-as.png|Image c-08-run-as]]
 +
|}
-
If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched the Application Framework successfully, you can see the Application Framework and the program running, figure [[#figure-esbox_usage_c_09_result|8.10]].
+
If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched the Application Framework successfully, you can see the Application Framework and the program running, figure [[#fig:esbox_usage_c_09_result|8.10]].
-
<div id="figure-esbox_usage_c_09_result">
+
{| summary="C/C++ Project Local Launch Result"
-
[[Image:c-09-result.png|frame|center|alt=Screenshot of result of launching local project|'''Figure 8.10:''' C/C++ Project Local Launch Result]]
+
|+ align="BOTTOM" |'''Figure 8.10:''' C/C++ Project Local Launch Result
-
</div>
+
|-
 +
|
 +
[[Image:c-09-result.png|Image c-09-result]]
 +
|}
== Running C/C++ and Qt4 Applications on a Maemo Device ==
== Running C/C++ and Qt4 Applications on a Maemo Device ==
Line 113: Line 143:
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
-
Because the device uses <code>ARMEL</code> binaries, you must to change the target platform to <code>DIABLO_ARMEL</code> or <code>FREMANTLE_ARMEL</code> and rebuild your application for the Maemo device.
+
Because the device uses <span><font face="monospace">ARMEL</font></span> binaries, you must to change the target platform to <span><font face="monospace">DIABLO_ARMEL</font></span> or <span><font face="monospace">FREMANTLE_ARMEL</font></span> and rebuild your application for the Maemo device.
-
First, make sure that <code>DIABLO_ARMEL</code> or <code>FREMANTLE_ARMEL</code> target is selected by right-clicking the project and selecting '''Properties &gt; Build Configurations &gt; Manage''', figure [[#figure-esbox_usage_c_remote_01_manage|8.11]].
+
First, make sure that <span><font face="monospace">DIABLO_ARMEL</font></span> or <span><font face="monospace">FREMANTLE_ARMEL</font></span> target is selected by right-clicking the project and selecting '''Properties &gt; Build Configurations &gt; Manage''', figure [[#fig:esbox_usage_c_remote_01_manage|8.11]].
-
<div id="figure-esbox_usage_c_remote_01_manage">
+
{| summary="C/C++ Project Manage Target Menu"
-
[[Image:c-remote-01-manage.png|frame|center|alt=Screenshot of project management target menu|Figure 8.11: C/C++ Project Manage Target Menu]]
+
|+ align="BOTTOM" |'''Figure 8.11:''' C/C++ Project Manage Target Menu
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-01-manage.png|Image c-remote-01-manage]]
 +
|}
-
Set the target to <code>DIABLO_ARMEL</code> or <code>FREMANTLE_ARMEL</code>, figure [[#figure-esbox_usage_c_remote_02_targets|8.12]].
+
Set the target to <span><font face="monospace">DIABLO_ARMEL</font></span> or <span><font face="monospace">FREMANTLE_ARMEL</font></span>, figure [[#fig:esbox_usage_c_remote_02_targets|8.12]].
-
<div id="figure-esbox_usage_c_remote_02_targets">
+
{| summary="C/C++ Project Manage Targets"
-
[[Image:c-remote-02-targets.png|frame|center|alt=Screenshot of project management of targets|'''Figure 8.12:''' C/C++ Project Manage Targets]]
+
|+ align="BOTTOM" |'''Figure 8.12:''' C/C++ Project Manage Targets
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-02-targets.png|Image c-remote-02-targets]]
 +
|}
-
Right-click the project, select '''Build Configurations &gt; Set Active''' and activate <code>DIABLO_ARMEL (Debug)</code> or <code>FREMANTLE_ARMEL (Debug)</code>, figure [[#figure-esbox_usage_c_remote_03_set_target|8.13]].
+
Right-click the project, select '''Build Configurations &gt; Set Active''' and activate <span><font face="monospace">DIABLO_ARMEL (Debug)</font></span> or <span><font face="monospace">FREMANTLE_ARMEL (Debug)</font></span>, figure [[#fig:esbox_usage_c_remote_03_set_target|8.13]].
-
<div id="figure-esbox_usage_c_remote_03_set_target">
+
{| summary="Set C/C++ Project Target"
-
[[Image:c-remote-03-set-target.png|frame|center|alt=Screnshot of C/C++ project target setting|Figure 8.13: Set C/C++ Project Target]]
+
|+ align="BOTTOM" |'''Figure 8.13:''' Set C/C++ Project Target
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-03-set-target.png|Image c-remote-03-set-target]]
 +
|}
=== Validating C/C++ and Qt4 Project Packages on a Maemo Device ===
=== Validating C/C++ and Qt4 Project Packages on a Maemo Device ===
Line 137: Line 176:
To be able to run your application on the Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.
To be able to run your application on the Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.
-
Select '''Project Menu &gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#figure-esbox_usage_c_remote_04_validate_device|8.14]].
+
Select '''Project Menu &gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#fig:esbox_usage_c_remote_04_validate_device|8.14]].
-
<div id="figure-esbox_usage_c_remote_04_validate_device">
+
{| summary="Validate Packages Menu"
-
[[Image:c-remote-04-validate-device.png|frame|center|alt=Screenshot of package validation menu|Figure 8.14: Validate Packages Menu]]
+
|+ align="BOTTOM" |'''Figure 8.14:''' Validate Packages Menu
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-04-validate-device.png|Image c-remote-04-validate-device]]
 +
|}
-
On the '''Target Selection''' page, select the correct Maemo device connection and <span><font face="monospace">ARMEL</font></span> target, Figure [[#figure-esbox_usage_c_remote_05_validate_targets|8.15]].
+
On the '''Target Selection''' page, select the correct Maemo device connection and <span><font face="monospace">ARMEL</font></span> target, Figure [[#fig:esbox_usage_c_remote_05_validate_targets|8.15]].
-
<div id="figure-esbox_usage_c_remote_05_validate_targets">
+
{| summary="Validate Package Targets"
-
[[Image:c-remote-05-validate-targets.png|frame|center|alt=Screenshot of package validation targets|Figure 8.15: Validate Package Targets]]
+
|+ align="BOTTOM" |'''Figure 8.15:''' Validate Package Targets
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-05-validate-targets.png|Image c-remote-05-validate-targets]]
 +
|}
To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.
To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.
Line 157: Line 202:
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
-
After you have set the target to <code>ARMEL</code> and built your application as <code>ARMEL</code>, you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &gt; Maemo Remote Application''', figure [[#figure-esbox_usage_c_remote_06_run|8.16]].
+
After you have set the target to <span><font face="monospace">ARMEL</font></span> and built your application as <span><font face="monospace">ARMEL</font></span>, you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &gt; Maemo Remote Application''', figure [[#fig:esbox_usage_c_remote_06_run|8.16]].
-
<div id="figure-esbox_usage_c_remote_06_run">
+
{| summary="Run C/C++ Project as Remote Maemo Application"
-
[[Image:c-remote-06-run.png|frame|center|alt=Screenshot of running C/C++ project as a remote Maemo application|Figure 8.16: Run C/C++ Project as Remote Maemo Application]]
+
|+ align="BOTTOM" |'''Figure 8.16:''' Run C/C++ Project as Remote Maemo Application
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-06-run.png|Image c-remote-06-run]]
 +
|}
-
Select SSH as the connection type (using the SBRSH connection type requires additional configuration), figure [[#figure-esbox_usage_c_remote_07_use_ssh|8.17]].
+
Select SSH as the connection type (using the SBRSH connection type requires additional configuration), figure [[#fig:esbox_usage_c_remote_07_use_ssh|8.17]].
-
<div id="figure-esbox_usage_c_remote_07_use_ssh">
+
{| summary="Connection Type Dialog"
-
[[Image:c-remote-07-use-ssh.png|frame|center|alt=Screenshot of connection type dialog|Figure 8.17: Connection Type Dialog]]
+
|+ align="BOTTOM" |'''Figure 8.17:''' Connection Type Dialog
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-07-use-ssh.png|Image c-remote-07-use-ssh]]
 +
|}
-
Select the device connection, figure [[#figure-esbox_usage_c_remote_06_run|8.16]]. Use USB connection because it is faster than Bluetooth or WLAN.
+
Select the device connection, figure [[#fig:esbox_usage_c_remote_06_run|8.16]]. Use USB connection because it is faster than Bluetooth or WLAN.
-
<div id="figure-esbox_usage_c_remote_06_run">
+
{| summary="Select Device Connection Dialog"
-
[[Image:c-remote-08-select-connection.png|frame|center|alt=Screenshot of device selection connection dialog|Figure 8.18: Select Device Connection Dialog]]
+
|+ align="BOTTOM" |'''Figure 8.18:''' Select Device Connection Dialog
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-08-select-connection.png|Image c-remote-08-select-connection]]
 +
|}
You can now see your application running on the Maemo device.
You can now see your application running on the Maemo device.
Line 179: Line 233:
You can use VNC Viewer to control the Maemo device and your application running on it. Select '''Window &gt; Show View &gt; Other &gt; VNC Viewer'''.
You can use VNC Viewer to control the Maemo device and your application running on it. Select '''Window &gt; Show View &gt; Other &gt; VNC Viewer'''.
-
{{ambox
+
{ambox
-
|text=To use VNC Viewer, the <code>x11vnc</code> service must be installed on the Maemo device either separately (apt-get install x11vnc) or as part of Maemo PC Connectivity.
+
|text=To use VNC Viewer, the <span><font face="monospace">x11vnc</font></span> service must be installed on the Maemo device either separately (apt-get install x11vnc) or as part of Maemo PC Connectivity.
-
}}
+
}
== Debugging C/C++ and Qt4 Applications ==
== Debugging C/C++ and Qt4 Applications ==
-
To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#figure-esbox_usage_c_debug_01_breakpoint|8.19]].
+
To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#fig:esbox_usage_c_debug_01_breakpoint|8.19]].
-
<div id="figure-esbox_usage_c_debug_01_breakpoint">
+
{| summary="Adding Breakpoint to C/C++ Source File"
-
[[Image:c-debug-01-breakpoint.png|frame|center|alt=Screenshot of adding a breakpoint to a C/C++ source file|Figure 8.19: Adding a Breakpoint to a C/C++ Source File]]
+
|+ align="BOTTOM" |'''Figure 8.19:''' Adding Breakpoint to C/C++ Source File
-
</div>
+
|-
 +
|
 +
[[Image:c-debug-01-breakpoint.png|Image c-debug-01-breakpoint]]
 +
|}
-
To launch your project in debug mode, right-click the project and select '''Debug As &gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#figure-esbox_usage_c_debug_02_debug|8.20]].
+
To launch your project in debug mode, right-click the project and select '''Debug As &gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#fig:esbox_usage_c_debug_02_debug|8.20]].
-
<div id="figure-esbox_usage_c_debug_02_debug">
+
{| summary="Debug as Maemo Application Menu"
-
[[Image:c-debug-02-debug.png|frame|center|alt=Screenshot of Maemo application debugging menu|Figure 8.20: Debug as Maemo Application Menu]]
+
|+ align="BOTTOM" |'''Figure 8.20:''' Debug as Maemo Application Menu
-
</div>
+
|-
 +
|
 +
[[Image:c-debug-02-debug.png|Image c-debug-02-debug]]
 +
|}
-
In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#figure-esbox_usage_c_debug_03_perspective|8.21]] and [[#figure-esbox_usage_c_debug_04_variables|8.22]].
+
In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#fig:esbox_usage_c_debug_03_perspective|8.21]] and [[#fig:esbox_usage_c_debug_04_variables|8.22]].
{{ambox
{{ambox
Line 203: Line 263:
}}
}}
-
<div id="figure-esbox_usage_c_debug_03_perspective">
+
{| summary="C/C++ Project Debug View"
-
[[Image:c-debug-03-perspective.png|frame|center|alt=Screenshot of C/C++ project debug view|Figure 8.21: C/C++ Project Debug View]]
+
|+ align="BOTTOM" |'''Figure 8.21:''' C/C++ Project Debug View
-
</div>
+
|-
 +
|
 +
[[Image:c-debug-03-perspective.png|Image c-debug-03-perspective]]
 +
|}
-
<div id="figure-esbox_usage_c_debug_04_variables">
+
{| summary="Inspect C/C++ Variables"
-
[[Image:c-debug-04-variables.png|frame|center|alt=Screenshot of inspecting C/C++ variables|Figure 8.22: Inspect C/C++ Variables]]
+
|+ align="BOTTOM" |'''Figure 8.22:''' Inspect C/C++ Variables
-
</div>
+
|-
 +
|
 +
[[Image:c-debug-04-variables.png|Image c-debug-04-variables]]
 +
|}
== Creating Python Projects ==
== Creating Python Projects ==
Line 219: Line 285:
Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.
Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.
-
To create a new Python project, select '''File &gt; New &gt; Project''' and then '''Python Maemo Project''', figure [[#figure-esbox_usage_project_python_new|8.23]].
+
To create a new Python project, select '''File &gt; New &gt; Project''' and then '''Python Maemo Project''', figure [[#fig:esbox_usage_project_python_new|8.23]].
-
<div id="figure-esbox_usage_project_python_new">
+
{| summary="New Project Menu"
-
[[Image:project-Python-new.png|frame|center|alt=Screenshot of new project menu|Figure 8.23: New Project Menu]]
+
|+ align="BOTTOM" |'''Figure 8.23:''' New Project Menu
-
</div>
+
|-
 +
|
 +
[[Image:project-Python-new.png|Image project-Python-new]]
 +
|}
-
Select any of the Python example templates on the '''Template''' page, figure [[#figure-esbox_usage_python_01_template|8.24]].
+
Select any of the Python example templates on the '''Template''' page, figure [[#fig:esbox_usage_python_01_template|8.24]].
-
<div id="figure-esbox_usage_python_01_template">
+
{| summary="Python Project Template"
-
[[Image:python-01-template.png|frame|center|alt=Screenshot of Python project template|Figure 8.24: Python Project Template]]
+
|+ align="BOTTOM" |'''Figure 8.24:''' Python Project Template
-
</div>
+
|-
 +
|
 +
[[Image:python-01-template.png|Image python-01-template]]
 +
|}
=== Python Targets ===
=== Python Targets ===
-
Select <code>DIABLO_X86</code> or <code>FREMANTLE_X86</code> as the target, figure [[#figure-esbox_usage_python_02_target|8.25]].
+
Select <span><font face="monospace">DIABLO_X86</font></span> or <span><font face="monospace">FREMANTLE_X86</font></span> as the target, figure [[#fig:esbox_usage_python_02_target|8.25]].
-
<div id="figure-esbox_usage_python_02_target">
+
{| summary="Python Project Target"
-
[[Image:python-02-target.png|frame|center|alt=Screenshot of Python project target|Figure 8.25: Python Project Target]]
+
|+ align="BOTTOM" |'''Figure 8.25:''' Python Project Target
-
</div>
+
|-
 +
|
 +
[[Image:python-02-target.png|Image python-02-target]]
 +
|}
=== Python Metadata ===
=== Python Metadata ===
-
The '''Basic Settings''' page defines different metadata the selected template uses. You can specify additional information in the fields or use the default values, figure [[#figure-esbox_usage_python_03_metadata|8.26]].
+
The '''Basic Settings''' page defines different metadata the selected template uses. You can specify additional information in the fields or use the default values, figure [[#fig:esbox_usage_python_03_metadata|8.26]].
-
<div id="figure-esbox_usage_python_03_metadata">
+
{| summary="Python Project Metadata"
-
[[Image:python-03-metadata.png|frame|center|alt=Screenshot of Python project metadata|Figure 8.26: Python Project Metadata]]
+
|+ align="BOTTOM" |'''Figure 8.26:''' Python Project Metadata
-
</div>
+
|-
 +
|
 +
[[Image:python-03-metadata.png|Image python-03-metadata]]
 +
|}
=== Python Configuration ===
=== Python Configuration ===
Line 251: Line 329:
You can define the Python configuration settings on the last page. If the wizard cannot find an existing Python configuration, it suggests to create a new configuration.
You can define the Python configuration settings on the last page. If the wizard cannot find an existing Python configuration, it suggests to create a new configuration.
-
You can use the default values and click '''Finish''' to a create project, figure [[#figure-esbox_usage_python_04_grammar|8.27]].
+
You can use the default values and click '''Finish''' to a create project, figure [[#fig:esbox_usage_python_04_grammar|8.27]].
-
<div id="figure-esbox_usage_python_04_grammar">
+
{| summary="Python Project Configuration"
-
[[Image:python-04-grammar.png|frame|center|alt=Screenshot of Python project configuration|Figure 8.27: Python Project Configuration]]
+
|+ align="BOTTOM" |'''Figure 8.27:''' Python Project Configuration
-
</div>
+
|-
 +
|
 +
[[Image:python-04-grammar.png|Image python-04-grammar]]
 +
|}
If there is no previous configuration for your project, ESbox asks you to create a new configuration. To create one, click '''Yes'''.
If there is no previous configuration for your project, ESbox asks you to create a new configuration. To create one, click '''Yes'''.
-
For the Python interpreter configuration, you can add all the Python paths and confirm this by clicking '''OK''', figure [[#figure-esbox_usage_python_05_path|8.28]].
+
For the Python interpreter configuration, you can add all the Python paths and confirm this by clicking '''OK''', figure [[#fig:esbox_usage_python_05_path|8.28]].
-
<div id="figure-esbox_usage_python_05_path">
+
{| summary="Python Project Interpreter Paths"
-
[[Image:python-05-path.png|frame|center|alt=Screenshot of Python project interpreter paths|Figure 8.28: Python Project Interpreter Paths]]
+
|+ align="BOTTOM" |'''Figure 8.28:''' Python Project Interpreter Paths
-
</div>
+
|-
 +
|
 +
[[Image:python-05-path.png|Image python-05-path]]
 +
|}
=== Validating Python Project Packages ===
=== Validating Python Project Packages ===
-
When you have created a new project, ESbox suggests package validation. Click '''Yes''' to accept, figure [[#figure-esbox_usage_python_c_05_validate|8.29]].
+
When you have created a new project, ESbox suggests package validation. Click '''Yes''' to accept, figure [[#fig:esbox_usage_python_c_05_validate|8.29]].
-
<div id="figure-esbox_usage_python_c_05_validate">
+
{| summary="Validate Packages"
-
[[Image:c-05-validate.png|frame|center|alt=Screenshot of package validation|Figure 8.29: Validate Packages]]
+
|+ align="BOTTOM" |'''Figure 8.29:''' Validate Packages
-
</div>
+
|-
 +
|
 +
[[Image:c-05-validate.png|Image c-05-validate]]
 +
|}
-
Click '''Finish''' on the Package Validation Wizard dialog, figure [[#figure-esbox_usage_python_c_06_validate_wizard|8.30]]. ESbox installs all the required dependencies for the selected targets.
+
Click '''Finish''' on the Package Validation Wizard dialog, figure [[#fig:esbox_usage_python_c_06_validate_wizard|8.30]]. ESbox installs all the required dependencies for the selected targets.
-
<div id="figure-esbox_usage_python_c_06_validate_wizard">
+
{| summary="Validate Packages Wizard"
-
[[Image:c-06-validate-wizard.png|frame|center|alt=Screenshot of package validation wizard|'''Figure 8.30:''' Validate Packages Wizard]]
+
|+ align="BOTTOM" |'''Figure 8.30:''' Validate Packages Wizard
-
</div>
+
|-
 +
|
 +
[[Image:c-06-validate-wizard.png|Image c-06-validate-wizard]]
 +
|}
If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.
If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.
Line 289: Line 379:
First, select the build configuration. Change the build configuration to <span><font face="monospace">DIABLO_X86</font></span> or <span><font face="monospace">FREMANTLE_X86</font></span>.
First, select the build configuration. Change the build configuration to <span><font face="monospace">DIABLO_X86</font></span> or <span><font face="monospace">FREMANTLE_X86</font></span>.
-
Right-click the project and select '''Properties''', figures [[#figure-esbox_usage_python_06_properties|8.31]].
+
Right-click the project and select '''Properties''', figures [[#fig:esbox_usage_python_06_properties|8.31]].
-
<div id="figure-esbox_usage_python_06_properties">
+
{| summary="Python Project Properties"
-
[[Image:python-06-properties.png|frame|center|alt=Screenshot of Python project properties|Figure 8.31: Python Project Properties]]
+
|+ align="BOTTOM" |'''Figure 8.31:''' Python Project Properties
-
</div>
+
|-
 +
|
 +
[[Image:python-06-properties.png|Image python-06-properties]]
 +
|}
-
Select '''Maemo Build Configurations''' and activate the configuration, figures [[#figure-esbox_usage_python_07_configuration|8.32]]
+
Select '''Maemo Build Configurations''' and activate the configuration, figures [[#fig:esbox_usage_python_07_configuration|8.32]]
-
<div id="figure-esbox_usage_python_07_configuration">
+
{| summary="Python Project Build Configuration"
-
[[Image:python-07-configuration.png|frame|center|alt=Screenshot of Python project build configuration|Figure 8.32: Python Project Build Configuration]]
+
|+ align="BOTTOM" |'''Figure 8.32:''' Python Project Build Configuration
-
</div>
+
|-
 +
|
 +
[[Image:python-07-configuration.png|Image python-07-configuration]]
 +
|}
-
To launch the project on Maemo SDK, right-click the project and select '''Run As &gt; Python Maemo Local Application''', figure [[#figure-esbox_usage_python_08_run_as|8.33]].
+
To launch the project on Maemo SDK, right-click the project and select '''Run As &gt; Python Maemo Local Application''', figure [[#fig:esbox_usage_python_08_run_as|8.33]].
-
<div id="figure-esbox_usage_python_08_run_as">
+
{| summary="Python Project Run as Local Application"
-
[[Image:python-08-run-as.png|frame|center|alt=Screenshot of Pyton project run as a local application|Figure 8.33: Python Project Run as Local Application]]
+
|+ align="BOTTOM" |'''Figure 8.33:''' Python Project Run as Local Application
-
</div>
+
|-
 +
|
 +
[[Image:python-08-run-as.png|Image python-08-run-as]]
 +
|}
-
Select the file you want to run on Maemo SDK. Do not select setup.py because it is used only for Debian package creation, figure [[#figure-esbox_usage_python_09_run_file|8.34]].
+
Select the file you want to run on Maemo SDK. Do not select setup.py because it is used only for Debian package creation, figure [[#fig:esbox_usage_python_09_run_file|8.34]].
-
<div id="figure-esbox_usage_python_09_run_file">
+
{| summary="Python Project Select File on Launch"
-
[[Image:python-09-run-file.png|frame|center|alt=Screenshot of selecting a file on launch of a Python project|Figure 8.34: Python Project Select File on Launch]]
+
|+ align="BOTTOM" |'''Figure 8.34:''' Python Project Select File on Launch
-
</div>
+
|-
 +
|
 +
[[Image:python-09-run-file.png|Image python-09-run-file]]
 +
|}
-
If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched Maemo Application Framework successfully, you can see the Application Framework and the program running, figure [[#figure-esbox_usage_python_10_result|8.35]].
+
If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched Maemo Application Framework successfully, you can see the Application Framework and the program running, figure [[#fig:esbox_usage_python_10_result|8.35]].
-
<div id="figure-esbox_usage_python_10_result">
+
{| summary="Python Project Local Launch Result"
-
[[Image:python-10-result.png|frame|center|alt=Screenshot of the result of launching a local Python project|Figure 8.35: Python Project Local Launch Result]]
+
|+ align="BOTTOM" |'''Figure 8.35:''' Python Project Local Launch Result
-
</div>
+
|-
 +
|
 +
[[Image:python-10-result.png|Image python-10-result]]
 +
|}
== Running Python Applications on a Maemo Device ==
== Running Python Applications on a Maemo Device ==
Line 323: Line 428:
To be able to run your Python application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
To be able to run your Python application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
-
First, make sure that <code>DIABLO_ARMEL</code> or <code>FREMANTLE_ARMEL</code> target is selected by right-clicking the project and selecting '''Maemo Build Configurations'''. Select <code>DIABLO_ARMEL</code> or <code>FREMANTLE_ARMEL</code> as the target, figure [[#figure-esbox_usage_python_remote_02_target|8.36]].
+
First, make sure that <span><font face="monospace">DIABLO_ARMEL</font></span> or <span><font face="monospace">FREMANTLE_ARMEL</font></span> target is selected by right-clicking the project and selecting '''Maemo Build Configurations'''. Select <span><font face="monospace">DIABLO_ARMEL</font></span> or <span><font face="monospace">FREMANTLE_ARMEL</font></span> as the target, figure [[#fig:esbox_usage_python_remote_02_target|8.36]].
-
<div id="figure-esbox_usage_python_remote_02_target">
+
{| summary="Select Python Project Target"
-
[[Image:python-remote-02-target.png|frame|center|alt=Screenshot of selecting a Python project target|Figure 8.36: Select Python Project Target]]
+
|+ align="BOTTOM" |'''Figure 8.36:''' Select Python Project Target
-
</div>
+
|-
 +
|
 +
[[Image:python-remote-02-target.png|Image python-remote-02-target]]
 +
|}
If there is no configuration for the target, ESbox asks you to create one. To configure a new target, click '''Select all'''.
If there is no configuration for the target, ESbox asks you to create one. To configure a new target, click '''Select all'''.
Line 335: Line 443:
To be able to run your application on a Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.
To be able to run your application on a Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.
-
Select '''Project Menu &gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#figure-esbox_usage_python_c_remote_04_validate_device|8.37]].
+
Select '''Project Menu &gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#fig:esbox_usage_python_c_remote_04_validate_device|8.37]].
-
<div id="figure-esbox_usage_python_c_remote_04_validate_device">
+
{| summary="Validate Packages Menu"
-
[[Image:c-remote-04-validate-device.png|frame|center|alt=Screenshot of package validation menu|Figure 8.37: Validate Packages Menu]]
+
|+ align="BOTTOM" |'''Figure 8.37:''' Validate Packages Menu
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-04-validate-device.png|Image c-remote-04-validate-device]]
 +
|}
-
On the '''Target Selection''' page, select the correct Maemo device connection and <code>ARMEL</code> target, Figure [[#figure-esbox_usage_python_c_remote_05_validate_targets|8.38]].
+
On the '''Target Selection''' page, select the correct Maemo device connection and <span><font face="monospace">ARMEL</font></span> target, Figure [[#fig:esbox_usage_python_c_remote_05_validate_targets|8.38]].
-
<div id="figure-esbox_usage_python_c_remote_05_validate_targets">
+
{| summary="Validate Package Targets"
-
[[Image:c-remote-05-validate-targets.png|frame|center|alt=Screenshot of validating package targets|'''Figure 8.38:''' Validate Package Targets]]
+
|+ align="BOTTOM" |'''Figure 8.38:''' Validate Package Targets
-
</div>
+
|-
 +
|
 +
[[Image:c-remote-05-validate-targets.png|Image c-remote-05-validate-targets]]
 +
|}
To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.
To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.
Line 355: Line 469:
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.
-
After you have set the target to <span><font face="monospace">ARMEL</font></span> you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &gt; Maemo Remote Application''', figure [[#figure-esbox_usage_python_remote_03_run|8.39]].
+
After you have set the target to <span><font face="monospace">ARMEL</font></span> you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &gt; Maemo Remote Application''', figure [[#fig:esbox_usage_python_remote_03_run|8.39]].
-
<div id="figure-esbox_usage_python_remote_03_run">
+
{| summary="Python Project Run as Remote Application"
-
[[Image:python-remote-03-run.png|frame|center|alt=Screenshot of Python project being run as a remote application|Figure 8.39: Python Project Run as Remote Application]]
+
|+ align="BOTTOM" |'''Figure 8.39:''' Python Project Run as Remote Application
-
</div>
+
|-
 +
|
 +
[[Image:python-remote-03-run.png|Image python-remote-03-run]]
 +
|}
-
Select the Python file you want to run. Do not select <code>setup.py</code> because it is used only for Debian package creation. Select SSH as the connection type (using SBRSH requires additional configuration). Select the correct device connection.
+
Select the Python file you want to run. Do not select setup.py because it is used only for Debian package creation. Select SSH as the connection type (using SBRSH requires additional configuration). Select the correct device connection.
You can now see your application running on the Maemo device.
You can now see your application running on the Maemo device.
Line 368: Line 485:
{{ambox
{{ambox
-
|text=To be able to use VNC Viewer, the <code>x11vnc</code> service must be installed on the Maemo device either separately (<code>apt-get install x11vnc</code>) or as part of Maemo PC Connectivity.
+
|text=To be able to use VNC Viewer, the <span><font face="monospace">x11vnc</font></span> service must be installed on the Maemo device either separately (apt-get install x11vnc) or as part of Maemo PC Connectivity.
}}
}}
== Debugging Python Applications ==
== Debugging Python Applications ==
-
To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#figure-esbox_usage_python_debug_01_breakpoint|8.40]].
+
To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#fig:esbox_usage_python_debug_01_breakpoint|8.40]].
-
<div id="figure-esbox_usage_python_debug_01_breakpoint">
+
{| summary="Add Breakpoint to Python Project"
-
[[Image:python-debug-01-breakpoint.png|frame|center|alt=Screenshot of adding a breakpoint to a Python project|Figure 8.40: Add Breakpoint to Python Project]]
+
|+ align="BOTTOM" |'''Figure 8.40:''' Add Breakpoint to Python Project
-
</div>
+
|-
 +
|
 +
[[Image:python-debug-01-breakpoint.png|Image python-debug-01-breakpoint]]
 +
|}
-
To launch your project in debug mode, right-click the project and select '''Debug As &gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#figure-esbox_usage_python_debug_02_debug|8.41]].
+
To launch your project in debug mode, right-click the project and select '''Debug As &gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#fig:esbox_usage_python_debug_02_debug|8.41]].
-
<div id="figure-esbox_usage_python_debug_02_debug">
+
{| summary="Debug Python Project as"
-
[[Image:python-debug-02-debug.png|frame|center|alt=Screenshot of debugging a Python project|Figure 8.41: Debug Python Project as]]
+
|+ align="BOTTOM" |'''Figure 8.41:''' Debug Python Project as
-
</div>
+
|-
 +
|
 +
[[Image:python-debug-02-debug.png|Image python-debug-02-debug]]
 +
|}
-
In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#figure-esbox_usage_python_debug_03_perspective|8.42]] and [[#figure-esbox_usage_python_debug_04_variables|8.43]].
+
In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#fig:esbox_usage_python_debug_03_perspective|8.42]] and [[#fig:esbox_usage_python_debug_04_variables|8.43]].
{{ambox
{{ambox
Line 391: Line 514:
}}
}}
-
<div id="figure-esbox_usage_python_debug_03_perspective">
+
{| summary="Python Debug View"
-
[[Image:python-debug-03-perspective.png|frame|center|alt=Screenshot of Python debug view|Figure 8.42: Python Debug View]]
+
|+ align="BOTTOM" |'''Figure 8.42:''' Python Debug View
-
</div>
+
|-
 +
|
 +
[[Image:python-debug-03-perspective.png|Image python-debug-03-perspective]]
 +
|}
-
<div id="figure-esbox_usage_python_debug_04_variables">
+
{| summary="Inspect Python Variables"
-
[[Image:python-debug-04-variables.png|frame|center|alt=Screenshot of inspecting Python variables|Figure 8.43: Inspect Python Variables]]
+
|+ align="BOTTOM" |'''Figure 8.43:''' Inspect Python Variables
-
</div>
+
|-
 +
|
 +
[[Image:python-debug-04-variables.png|Image python-debug-04-variables]]
 +
|}
== Debian Packaging ESbox Project ==
== Debian Packaging ESbox Project ==
Line 405: Line 534:
=== Debian Package Structure ===
=== Debian Package Structure ===
-
Debian structure is <code>debian</code> folder under project directory. If you do not have Debian structure in your project you can create it by right clicking project and choosing '''Debian Package &gt; Create Debian Structure'''.
+
Debian structure is <span><font face="monospace">debian</font></span> folder under project directory. If you do not have Debian structure in your project you can create it by right clicking project and choosing '''Debian Package &gt; Create Debian Structure'''.
Python projects need setup.py script to create a Debian package and it should be in the project root folder. You can create setup.py from the last page of the '''Structure''' wizard.
Python projects need setup.py script to create a Debian package and it should be in the project root folder. You can create setup.py from the last page of the '''Structure''' wizard.
-
ESbox does not automate the whole Debian structure creation process, so you might need to manually modify the files in <code>debian</code> folder. A Debian installation package is built using <code>Makefile</code> located at <code>debian/rules</code> directory. Other files are usually install scripts and metadata.
+
ESbox does not automate the whole Debian structure creation process, so you might need to manually modify the files in <span><font face="monospace">debian</font></span> folder. A Debian installation package is built using <span><font face="monospace">Makefile</font></span> located at <span><font face="monospace">debian/rules</font></span> directory. Other files are usually install scripts and metadata.
You can find complete information on the Debian installation package structure from [http://www.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]
You can find complete information on the Debian installation package structure from [http://www.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]
Line 429: Line 558:
=== Repositories and package types ===
=== Repositories and package types ===
-
In the Debian package manager <code>apt</code> (used in Scratchbox and Maemo devices), the <code>sources.list</code> repository configuration files contain two kinds of entries: <code>deb</code> and <code>deb-src</code> repositories. Both point to external or local repositories of packages (called system packages here). <code>deb</code> repositories point to binary packages while <code>deb-src</code> repositories point to the (usually in sync) source packages for those binary packages.
+
In the Debian package manager <span><font face="monospace">apt</font></span> (used in Scratchbox and Maemo devices), the <span><font face="monospace">sources.list</font></span> repository configuration files contain two kinds of entries: <span><font face="monospace">deb</font></span> and <span><font face="monospace">deb-src</font></span> repositories. Both point to external or local repositories of packages (called system packages here). <span><font face="monospace">deb</font></span> repositories point to binary packages while <span><font face="monospace">deb-src</font></span> repositories point to the (usually in sync) source packages for those binary packages.
One source package may generate several binary packages; for instance, one for programs and primary data, one for auxiliary data, one for libraries, and one for development.
One source package may generate several binary packages; for instance, one for programs and primary data, one for auxiliary data, one for libraries, and one for development.
-
In <code>apt</code>, when fetching the sources for a binary package, you start with an interesting binary package and find its corresponding source package (for example, <code>apt-get source <package></code>).
+
In <span><font face="monospace">apt</font></span>, when fetching the sources for a binary package, you start with an interesting binary package and find its corresponding source package (for example, <span><font face="monospace">apt-get source &lt;package&gt;</font></span>).
=== Source package structure ===
=== Source package structure ===
-
The sources for a package come usually in three files: a ''control file'' (<code>*.dsc</code>), an ''archive'' (<code>*.tar.gz</code> or <code>*.tar.bz2</code>), and a ''patch'' (<code>*.diff.gz</code>). <code>apt-get source</code> command invokes the <code>dpkg-source</code> command to expand the archive and apply the patch. The control file is used when rebuilding the binary package.
+
The sources for a package come usually in three files: a ''control file'' (<span><font face="monospace"><nowiki>*.dsc</nowiki></font></span>), an ''archive'' (<span><font face="monospace"><nowiki>*.tar.gz</nowiki></font></span> or <span><font face="monospace"><nowiki>*.tar.bz2</nowiki></font></span>), and a ''patch'' (<span><font face="monospace"><nowiki>*.diff.gz</nowiki></font></span>). <span><font face="monospace">apt-get source</font></span> command invokes the <span><font face="monospace">dpkg-source</font></span> command to expand the archive and apply the patch. The control file is used when rebuilding the binary package.
-
Once extracted, the contents of the original patched sources vary wildly. The contents may contain a bare-bones <code>Makefile</code> project, an autotools-based project, a nest of programs and libraries and test code, or even another archive.
+
Once extracted, the contents of the original patched sources vary wildly. The contents may contain a bare-bones <span><font face="monospace">Makefile</font></span> project, an autotools-based project, a nest of programs and libraries and test code, or even another archive.
-
There is one guarantee, though: the package expands to contain a <code>debian</code> directory and its various control files (see the "Source packages" chapter of the [http://www.debian.org/doc/debian-policy/ch-source.html Debian Policy Manual] for more details).
+
There is one guarantee, though: the package expands to contain a <span><font face="monospace">debian</font></span> directory and its various control files (see the "Source packages" chapter of the [http://www.debian.org/doc/debian-policy/ch-source.html Debian Policy Manual] for more details).
-
The <code>debian/rules</code> file is an executable <code>Makefile</code> which is the primary means of interaction with the source from the perspective of a Debian package. In other words, even if the extracted sources contain autoconf files or <code>Makefiles</code>, you must use <code>debian/rules</code> to configure, build, clean, install, and re-package the package.
+
The <span><font face="monospace">debian/rules</font></span> file is an executable <span><font face="monospace">Makefile</font></span> which is the primary means of interaction with the source from the perspective of a Debian package. In other words, even if the extracted sources contain autoconf files or <span><font face="monospace">Makefiles</font></span>, you must use <span><font face="monospace">debian/rules</font></span> to configure, build, clean, install, and re-package the package.
-
For example, <code>debian/rules configure</code>, <code>debian/rules build</code>, <code>debian/rules install</code> are typical ways to use a source package.
+
For example, <span><font face="monospace">debian/rules configure</font></span>, <span><font face="monospace">debian/rules build</font></span>, <span><font face="monospace">debian/rules install</font></span> are typical ways to use a source package.
-
It must be mentioned that even <code>debian/rules</code> can have varying degrees of fluctuation in the targets it provides. Most packages not developed in the Debian project itself come from a large community of people who think differently, and the targets vary accordingly. While the utility <code>dh_make</code> tries to promote a standard set of guidelines, some projects may, for instance, lack a <code>configure</code> target (or have several), lack a <code>build</code> target (or have several), and so on.
+
It must be mentioned that even <span><font face="monospace">debian/rules</font></span> can have varying degrees of fluctuation in the targets it provides. Most packages not developed in the Debian project itself come from a large community of people who think differently, and the targets vary accordingly. While the utility <span><font face="monospace">dh_make</font></span> tries to promote a standard set of guidelines, some projects may, for instance, lack a <span><font face="monospace">configure</font></span> target (or have several), lack a <span><font face="monospace">build</font></span> target (or have several), and so on.
ESbox attempts to corral this kind of diversity with its import wizard.
ESbox attempts to corral this kind of diversity with its import wizard.
Line 453: Line 582:
=== Using the Wizard ===
=== Using the Wizard ===
-
Find the wizard under '''File &gt; Import &gt; ESbox &gt; Project from Debian Repository''', figure [[#figure-esbox_usage_import_package_wizard|8.44]].
+
Find the wizard under '''File &gt; Import &gt; ESbox &gt; Project from Debian Repository''', figure [[#fig:esbox_usage_import_package_wizard|8.44]].
-
<div id="figure-esbox_usage_import_package_wizard">
+
{| summary="Import"
-
[[Image:ImportPackageWizard.png|frame|center|alt=Screenshot of project import|Figure 8.44: Import]]
+
|+ align="BOTTOM" |'''Figure 8.44:''' Import
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageWizard.png|Image ImportPackageWizard]]
 +
|}
-
Select the package to import, figure [[#figure-esbox_usage_import_package_select|8.45]].
+
Select the package to import, figure [[#fig:esbox_usage_import_package_select|8.45]].
-
<div id="figure-esbox_usage_import_package_select">
+
{| summary="Import ESbox Project from Repository - Select Package"
-
[[Image:ImportPackageSelect.png|frame|center|alt=Screenshot of selecting a package during ESBox prject import|Figure 8.45: Import ESbox Project from Repository - Select Package]]
+
|+ align="BOTTOM" |'''Figure 8.45:''' Import ESbox Project from Repository - Select Package
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageSelect.png|Image ImportPackageSelect]]
 +
|}
The target providing packages is one of the Scratchbox targets on the host PC.
The target providing packages is one of the Scratchbox targets on the host PC.
{{ambox
{{ambox
-
|text=The target must have the necessary <code>deb-src</code> entries in <code>sources.list</code>. Standard Maemo SDK configurations have such entries by default.
+
|text=The target must have the necessary <span><font face="monospace">deb-src</font></span> entries in <span><font face="monospace">sources.list</font></span>. Standard Maemo SDK configurations have such entries by default.
|}
|}
Line 477: Line 612:
The '''Always re-fetch source components''' option asks the wizard to always go to the network and find the source components (the .dsc file, archives, and patches) for the package. This may be necessary if you have modified the package locally.
The '''Always re-fetch source components''' option asks the wizard to always go to the network and find the source components (the .dsc file, archives, and patches) for the package. This may be necessary if you have modified the package locally.
-
The '''Delete source components''' option deletes the <code>.dsc</code> file, source archives, and patches after extraction.
+
The '''Delete source components''' option deletes the <span><font face="monospace">.dsc</font></span> file, source archives, and patches after extraction.
-
Next, select the build targets for the package, figure [[#figure-esbox_usage_import_package_project|8.46]].
+
Next, select the build targets for the package, figure [[#fig:esbox_usage_import_package_project|8.46]].
-
<div id="figure-esbox_usage_import_package_project">
+
{| summary="Import ESbox Project from Repository - Project Configuration"
-
[[Image:ImportPackageProject.png|frame|center|alt=Screenshot of project configuration during import of ESBox project|Figure 8.46: Import ESbox Project from Repository - Project Configuration]]
+
|+ align="BOTTOM" |'''Figure 8.46:''' Import ESbox Project from Repository - Project Configuration
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageProject.png|Image ImportPackageProject]]
 +
|}
-
The next page prepares for the source fetch, figure [[#figure-esbox_usage_import_package_fetch0|8.47]].
+
The next page prepares for the source fetch, figure [[#fig:esbox_usage_import_package_fetch0|8.47]].
-
<div id="figure-esbox_usage_import_package_fetch0">
+
{|
-
[[Image:ImportPackageFetch0.png|frame|center|alt=Screenshot of fetching and imprting during import of a ESBox project|Figure 8.47: Import ESbox Project from Repository - Fetching and Importing, proxy]]
+
|+ align="BOTTOM" |'''Figure 8.47:''' Import ESbox Project from Repository - Fetching and Importing, proxy
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageFetch0.png|Image ImportPackageFetch0]]
 +
|}
Visit the link to ensure your proxy is configured, or else the download does not work.
Visit the link to ensure your proxy is configured, or else the download does not work.
-
Press '''Next''' to start the process, figure [[#figure-esbox_usage_import_package_fetch1|8.48]].
+
Press '''Next''' to start the process, figure [[#fig:esbox_usage_import_package_fetch1|8.48]].
-
<div id="figure-esbox_usage_import_package_fetch1">
+
{|
-
[[Image:ImportPackageFetch1.png|frame|center|alt=Screenshot of fetching and imprting during import of an ESBox project|Figure 8.48: Import ESbox Project from Repository - Fetching and Importing, fetching]]
+
|+ align="BOTTOM" |'''Figure 8.48:''' Import ESbox Project from Repository - Fetching and Importing, fetching
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageFetch1.png|Image ImportPackageFetch1]]
 +
|}
-
If the fetch fails then it is usually indicated by a long pause after the '''Building dependency tree''' message - press '''Cancel''' to abort the process. You can select '''View Log''' from the dialog, press '''Back''', then press '''Next''' again to retry.
+
If the fetch fails â usually indicated by a long pause after the '''Building dependency tree''' message - press '''Cancel''' to abort the process. You can select '''View Log''' from the dialog, press '''Back''', then press '''Next''' again to retry.
The next page lets you choose the project type and builder for the package.
The next page lets you choose the project type and builder for the package.
-
This is a normal case, figure [[#figure-esbox_usage_import_package_convert1|8.49]].
+
This is a normal case, figure [[#fig:esbox_usage_import_package_convert1|8.49]].
-
<div id="figure-esbox_usage_import_package_convert1">
+
{| summary="Import ESbox Project from Repository - Convert Project"
-
[[Image:ImportPackageConvert1.png|frame|center|alt=Screenshot of convert a project during import of an ESBox project|Figure 8.49: Import ESbox Project from Repository - Convert Project]]
+
|+ align="BOTTOM" |'''Figure 8.49:''' Import ESbox Project from Repository - Convert Project
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageConvert1.png|Image ImportPackageConvert1]]
 +
|}
-
Here, the project (sysstat from earlier pages) expands into a project with a <code>Makefile</code>. Also (off-screen) there are C sources and headers. Thus, the wizard is able to guess the project type. This page, therefore, is merely informative and you can press '''Next'''.
+
Here, the project (sysstat from earlier pages) expands into a project with a <span><font face="monospace">Makefile</font></span>. Also (off-screen) there are C sources and headers. Thus, the wizard is able to guess the project type. This page, therefore, is merely informative and you can press '''Next'''.
An imported package may, however, be provided as a compressed archive with patches. In this case, you can preconfigure the project to extract the sources and decide whether the project is really the one you are looking for.
An imported package may, however, be provided as a compressed archive with patches. In this case, you can preconfigure the project to extract the sources and decide whether the project is really the one you are looking for.
-
The following screenshot shows the inimitable bash shell, which is packaged as an archive, figure [[#figure-esbox_usage_import_package_convert2|8.50]].
+
The following screenshot shows the inimitable bash shell, which is packaged as an archive, figure [[#fig:esbox_usage_import_package_convert2|8.50]].
-
<div id="figure-esbox_usage_import_package_convert2">
+
{| summary="Import ESbox Project from Repository - Convert Project, compressed archive"
-
[[Image:ImportPackageConvert2.png|frame|center|alt=Screenshot of project conversion during import of an ESBox project|Figure 8.50: Import ESbox Project from Repository - Convert Project, compressed archive]]
+
|+ align="BOTTOM" |'''Figure 8.50:''' Import ESbox Project from Repository - Convert Project, compressed archive
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageConvert2.png|Image ImportPackageConvert2]]
 +
|}
To handle this case, the wizard selects a build rule, which appears to be a configuration rule. This would be expected to extract the archive and apply the patches.
To handle this case, the wizard selects a build rule, which appears to be a configuration rule. This would be expected to extract the archive and apply the patches.
-
You can manually select the rule for configuration, if desired. For example, bash can be built in several configurations for different footprints. Here are the rules found in bash's <code>debian/rules</code>, figure [[#figure-esbox_usage_import_package_convert3|8.51]].
+
You can manually select the rule for configuration, if desired. For example, bash can be built in several configurations for different footprints. Here are the rules found in bash's <span><font face="monospace">debian/rules</font></span>, figure [[#fig:esbox_usage_import_package_convert3|8.51]].
-
<div id="figure-esbox_usage_import_package_convert3">
+
{| summary="Import ESbox Project from Repository - Convert Project, rule selection"
-
[[Image:ImportPackageConvert3.png|frame|center|alt=Screenshot of project conversion during import of an ESBox project|Figure 8.51: Import ESbox Project from Repository - Convert Project, rule selection]]
+
|+ align="BOTTOM" |'''Figure 8.51:''' Import ESbox Project from Repository - Convert Project, rule selection
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageConvert3.png|Image ImportPackageConvert3]]
 +
|}
Select a rule and click '''Setup project...''' to run the build for the given rule. The build results go to the Console behind the wizard.
Select a rule and click '''Setup project...''' to run the build for the given rule. The build results go to the Console behind the wizard.
-
For <code>bash</code>, and probably other packages, this configure step actually proceeds to build the entire program and run its tests, you may '''Cancel''' after the archive has been extracted and the patches have been applied, then proceed with the wizard, figure [[#figure-esbox_usage_import_package_convert3b|8.52]].
+
For <span><font face="monospace">bash</font></span>, and probably other packages, this configure step actually proceeds to build the entire program and run its tests â you may '''Cancel''' after the archive has been extracted and the patches have been applied, then proceed with the wizard, figure [[#fig:esbox_usage_import_package_convert3b|8.52]].
-
<div id="figure-esbox_usage_import_package_convert3b">
+
{| summary="Import ESbox Project from Repository - Convert Project, building"
-
[[Image:ImportPackageConvert3b.png|frame|center|alt=Screenshot of building during import of an ESBox project|Figure 8.52: Import ESbox Project from Repository - Convert Project, building]]
+
|+ align="BOTTOM" |'''Figure 8.52:''' Import ESbox Project from Repository - Convert Project, building
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageConvert3b.png|Image ImportPackageConvert3b]]
 +
|}
-
Once the configuration step has been run, the conversion page updates its guess about the project, figure [[#figure-esbox_usage_import_package_convert4|8.53]].
+
Once the configuration step has been run, the conversion page updates its guess about the project, figure [[#fig:esbox_usage_import_package_convert4|8.53]].
-
<div id="figure-esbox_usage_import_package_convert4">
+
{| summary="Import ESbox Project from Repository - Convert Project, updated"
-
[[Image:ImportPackageConvert4.png|frame|center|alt=Screenshot of project conversion during import of an ESBox project|Figure 8.53: Import ESbox Project from Repository - Convert Project, updated]]
+
|+ align="BOTTOM" |'''Figure 8.53:''' Import ESbox Project from Repository - Convert Project, updated
-
</div>
+
|-
 +
|
 +
[[Image:ImportPackageConvert4.png|Image ImportPackageConvert4]]
 +
|}
Once the project type and builder type are known, you can '''Finish''' the wizard.
Once the project type and builder type are known, you can '''Finish''' the wizard.

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)

Templates used on this page: