1. Software Packet Manager
Use EMF and P2 to manage device development environment
Gaetan Morice – Eclipse Con 2010
Sierra Wireless Proprietary and Confidential January 21, 2010 Page 1
2. Sierra Wireless ?
Mobile Broadband Device
Intelligent Embedded Modules
Intelligent Gateways & Routers
Services Platform & Solutions
January 21, 2010 Page 2
3. Device software development ?
#include <stdio.h>
int main()
{
printf("Hello world!n");
return 0;
}
My application
January 21, 2010 Page 3
4. Device software development ?
The device
#include <stdio.h>
int main()
{
printf("Hello world!n");
return 0;
}
My application
January 21, 2010 Page 4
5. Device software development ?
The device
#include <stdio.h>
int main()
{
printf("Hello world!n");
return 0;
}
My application
The IDE
January 21, 2010 Page 5
6. Device software development ?
The device
#include <stdio.h>
int main()
{
printf("Hello world!n");
return 0;
}
My application
?
The IDE
The development
environment
January 21, 2010 Page 6
20. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
January 21, 2010 Page 20
21. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
January 21, 2010 Page 21
22. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compile the project
January 21, 2010 Page 22
23. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
January 21, 2010 Page 23
24. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
January 21, 2010 Page 24
25. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Modify the paths
January 21, 2010 Page 25
26. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Compile the project Modify the paths
January 21, 2010 Page 26
27. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Compilation OK Compile the project Modify the paths
January 21, 2010 Page 27
28. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Compilation OK Compile the project Modify the paths
Start to work, add to the project a library you had made previously
January 21, 2010 Page 28
29. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Compilation OK Compile the project Modify the paths
Start to work, add to the project a library you had develop
Compile the project
January 21, 2010 Page 29
30. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Compilation OK Compile the project Modify the paths
Start to work, add to the project a library you had develop
Compilation error Compile the project
January 21, 2010 Page 30
31. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Compilation OK Compile the project Modify the paths
Start to work, add to the project a library you had develop
Compilation error Compile the project
Your library rely on another one that is not compatible
with the project’s dependencies
January 21, 2010 Page 31
32. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Compilation OK Compile the project Modify the paths
Start to work, add to the project a library you had develop
Compilation error Compile the project
Your library rely on another one that is not compatible
with the project’s dependencies
…
January 21, 2010 Page 32
33. A classic scenario
Checkout the project from the SVN
Compile it Compilation error
The project rely on a vendor specific library
Find the library, download it and put it next to the project
Compilation error Compile the project
The paths to the includes in the make file of the project are absolute
Pain and frustration
Compilation OK Compile the project Modify the paths
Start to work, add to the project a library you had develop
Compilation error Compile the project
Your library rely on another one that is not compatible
with the project’s dependencies
…
January 21, 2010 Page 33
34. What do we exactly need ?
January 21, 2010 Page 34
35. What do we exactly need ?
Package it
January 21, 2010 Page 35
36. What do we exactly need ?
Package it
Add ID and version
ID
January 21, 2010 Page 36
37. What do we exactly need ?
Package it
Make it available
Add ID and version
ID
January 21, 2010 Page 37
38. What do we exactly need ?
Package it
Make it available
Add ID and version
Provision it
ID
January 21, 2010 Page 38
39. What do we exactly need ?
Package it
Make it available
Add ID and version
Provision it
ID
Use it
January 21, 2010 Page 39
40. What do we exactly need ?
Package it
Make it available
Add ID and version
Provision it
ID
Use it
January 21, 2010 Page 40
41. Wait a minute !
It reminds me of something !
January 21, 2010 Page 41
42. Wait a minute !
It reminds me of something !
The Eclipse Update System !
January 21, 2010 Page 42
43. Use plug-ins
To package
Basic resource plug-ins
January 21, 2010 Page 43
48. Use extension points
To install
Plug-in registry to listen to new installations
Access to EMF model
Perform specific actions according to the package
January 21, 2010 Page 48
49. Use EMF
In projects properties
January 21, 2010 Page 49
50. A step further
A central repository for multiple vendors
Allow to have a single Eclipse distro
January 21, 2010 Page 50