Debian has historically been packaged with desktop systems and native building in mind. It is increasingly being used in low-resource and [:Embedded_Debian:embedded systems]. Building natively on such systems is extremely slow and sometimes almost impossible, so cross-compiling is very important, and the normal way of building.

There is a number of things in packaging which affect how embedded-friendly they are. Here we explain some of the things you should do to make sure that your packages are suitable for embedded use. If you have questions please use the [ debian-embedded mailing list].


Below are various examples of things you should do/avoid doing, but it is best if you understand why these things are done. Here is some explanation of the issues.

Terminology (build/host/target).

Things to mention:

Options needed for packaging:

Emdebian Packages

TODO list states: "Select list of Debian packages to form Emdebian"

We could aim to build this list: (Note it might need some rework)

apache2 apache2_mod_python atk at-spi bash betaftpd bind binutils blackbox bluez-libs
bluez-utils bonniexx boost bridge-utils cairo cfgsh chrony clock cppunit cvs cyclictest
daemonize db41 db44 dbench dbus dhcp dialog diffutils dnsmasq dosfstools dropbear e2fsprogs
efax ethereal etherwake eventlog expat fam fbtest fbutils ffmpeg fftw findutils flash
flex fltk fontconfig freetype gail gawk gdb gdb-wrapper gettext glib gmp3 gmp4 gnupg
gnuplot grub gtk gtk1210 gtk22 gtk26 gtk2-engines hdparm hexedit host-e2tools hpanel
hrtimers-support i855resolution i915resolution initng iproute2 iptables jed joe jvisu
kaffe klibc konq-e ldd libart libcgicc libdaemon libdbus-cxx libdrm libelf libezv24
libgd libglade libgnomecanvas libgsloop libiconv libidl068 libidl-2 libjpeg liblockfile
libmodbus libmqueue libnet liboop libpng libpopt librn libxslt lilo live locales logrotate
lrzsz lsh ltp ltrace madwifi mc memstat memtest memtester mesalib mfirebird mgetty
mico mii-diag mplayer mtd-utils myghty mysql nano netcat netkit-ftp nfsutils nmap
ntp ntpclient omniorb openafs openntpd openssh openssl oprofile pango paranoia pciutils
pcmcia-cs pcmciautils pcre pdksh pekwm penguzilla php4 php5 php-apc pnet pnetlib
pop3spam portmap ppp procps proftpd pxacamera python python24 qt qte qtopia realvnc
rsync rtai rtnet samba schedutils screen sdl sdl_image setmixer setserial shorewall
slang smtpclient sqlite ssmtp sudo syslogng sysvinit tcpwrapper termcap tinylogin
treecc troll-ftpd tslib uclibc unionfs utelnetd valgrind wget wireless wireshark
wxWindows xalf xerces xmlstarlet xorg-app-mkfontdir xorg-app-mkfontscale xorg-app-rgb
xorg-app-setxkbmap xorg-app-xdm xorg-app-xeyes xorg-app-xhost xorg-app-xinit
xorg-app-xkbcomp xorg-app-xrdb xorg-app-xset xorg-app-xsetroot xorg-app-xvinfo
xorg-data-xbitmaps xorg-data-xkbdata xorg-driver-input-evdev xorg-driver-input-keyboard
xorg-driver-input-mouse xorg-driver-input-tslib xorg-driver-input-void xorg-driver-video-apm
xorg-driver-video-ati xorg-driver-video-dummy xorg-driver-video-fbdev xorg-driver-video-i810
xorg-driver-video-nsc xorg-driver-video-v4l xorg-driver-video-vesa xorg-driver-video-vga
xorg-font-adobe-100dpi xorg-font-adobe-75dpi xorg-font-adobe-utopia-100dpi
xorg-font-adobe-utopia-75dpi xorg-font-adobe-utopia-type1 xorg-font-alias
xorg-font-arabic-misc xorg-font-bh-100dpi xorg-font-bh-75dpi xorg-font-bh-lucidatypewriter-100dpi
xorg-font-bh-lucidatypewriter-75dpi xorg-font-bh-ttf xorg-font-bitstream-100dpi
xorg-font-bitstream-75dpi xorg-font-bitstream-speedo xorg-font-bitstream-type1
xorg-font-cronyx-cyrillic xorg-font-cursor-misc xorg-font-daewoo-misc xorg-font-dec-misc
xorg-font-encodings xorg-font-ibm-type1 xorg-font-intl xorg-font-isas-misc xorg-font-jis-misc
xorg-font-micro-misc xorg-font-misc-cyrillic xorg-font-misc-ethiopic xorg-font-misc-meltho
xorg-font-misc-misc xorg-font-mutt-misc xorg-fonts xorg-font-schumacher-misc xorg-font-screen-cyrillic
xorg-font-sony-misc xorg-font-sun-misc xorg-font-util xorg-font-winitzki-cyrillic
xorg-font-xfree86-type1 xorg-lib-AppleWM xorg-lib-dmx xorg-lib-fontenc xorg-lib-FS
xorg-lib-ICE xorg-lib-lbxutil xorg-lib-oldX xorg-lib-SM xorg-lib-WindowsWM xorg-lib-X11
xorg-lib-Xau xorg-lib-Xaw xorg-lib-Xcomposite xorg-lib-Xcursor xorg-lib-Xdamage
xorg-lib-Xdmcp xorg-lib-Xevie xorg-lib-Xext xorg-lib-Xfixes xorg-lib-xfont xorg-lib-Xfontcache
xorg-lib-Xft xorg-lib-Xi xorg-lib-Xinerama xorg-lib-xkbfile xorg-lib-xkbui xorg-lib-Xmu
xorg-lib-Xp xorg-lib-Xpm xorg-lib-XprintAppUtil xorg-lib-XprintUtil xorg-lib-Xrandr
xorg-lib-Xrender xorg-lib-Xres xorg-lib-XScrnSaver xorg-lib-Xt xorg-lib-xtrans xorg-lib-XTrap
xorg-lib-Xtst xorg-lib-Xv xorg-lib-XvMC xorg-lib-Xxf86dga xorg-lib-Xxf86misc xorg-lib-Xxf86vm
xorg-proto-applewm xorg-proto-bigreqs xorg-proto-composite xorg-proto-damage xorg-proto-dmx
xorg-proto-evieext xorg-proto-fixes xorg-proto-fontcache xorg-proto-fonts xorg-proto-gl
xorg-proto-input xorg-proto-kb xorg-proto-print xorg-proto-randr xorg-proto-record
xorg-proto-render xorg-proto-resource xorg-proto-scrnsaver xorg-proto-trap
xorg-proto-video xorg-proto-windowswm xorg-proto-x xorg-proto-xcmisc xorg-proto-xext
xorg-proto-xf86bigfont xorg-proto-xf86dga xorg-proto-xf86dri xorg-proto-xf86misc
xorg-proto-xf86rush xorg-proto-xf86vidmode xorg-proto-xinerama xorg-proto-xproxymanagement
xorg-server xterm xvkbd zebra