Revision as of 01:58, 11 November 2009 by Kengilmer (talk | contribs) (Target System User)

Jump to: navigation, search


This page defines primary user-roles in using OpenEmbedded. The material resulted from some discussions at OEDEM that were truncated due to time restrictions.


The goal of identifying user-roles is to be able to categorize different tooling scenarios, and what types of users will be interested in specific features. Tools designed for role type may not be appropriate for other roles. For example, a GUI for recipe editing may not be helpful for an application developer that's looking to remote debug their application on a target. On the other hand, a simple press-button build GUI may not be interesting for a seasoned OE hacker.

Role Types

Application Developer

The application developer's main concern is developing and testing any given application on a target system. This person does not care nor want to learn much about the internal details of the build system or package metadata. The best possible case is that these systems are transparent and the developer is able to easily build and deploy applications to the target device.

Distro Developer

Distro developer's concern is to compose packages and configurations into a working system. The disto developer has deep knowledge of packages available in Linux, and how sets of packages work well together. Additionally the distro developer is not afraid to work deeply within the build system to make it better, and to produce better, more maintainable package metadata and target systems.

Package Developer

The package developer is often a mix of the previous two role types. Often they have some knowledge of the build system and applications and build tools used to create those applications. They typically act as a bridge between pure application developers and the resulting target system that's produced. Package developers write recipes, debug applications, and debug build problems.

Target System User

This role type typically is not exposed to package metadata, cross compilers, or build systems. They are system users, and as such, at times want to:

  • Update system
  • Install packages
  • Configure package metadata