Emdebian Policy is based on Debian Policy and is intended to cover the needs of the cross-built Emdebian Crush distribution. Due to the state of cross-building support in Debian Squeeze, Emdebian Crush is only available as Emdebian Crush 1.0 (based on Debian 5.0 'Lenny'). This table shows sections of Debian Policy that need modification for Emdebian:

Policy changes common to Grip, Baked and Crush

Policy changes specific to cross-built Emdebian Crush

Policy changes specific to pre-configured Emdebian Baked

Baked is generated from packages otherwise compatible with either Emdebian Grip or Emdebian Crush. Where there is a conflict in Policy regarding a Baked package, the Policy for Baked will always overrule any other Policy. Where there is no conflict, the Policy for Grip or Crush will apply as determined by the methods used to create the relevant package.



These are preliminary lintian checks that emdebian-tools can support. Automated tests will use lintian -C em $changes_file so that only these checks are run so that lintian errors that also exist in the Debian package do not complicate the build. Normal operations of lintian $changes_file are not affected - the script checks for an Emdebian version string (with the emN suffix).

Lintian errors will cause a FTBFS (fail to build from source) build failure in emdebuild in automated builds for Crush.

Lintian warnings are issues that differ from Debian but which may or may not be applicable to all Emdebian packages.

Lintian warnings are not currently sub-divided for the different variants of Emdebian.

Check-Script: emdebian
Author: Neil Williams <codehelp@debian.org>
Abbrev: em
Type: binary, udeb, source
Unpack-Level: 1
Needs-Info: objdump-info, file-info
Info: This script checks binaries and object files for bugs.

Standard lintian prefix content, based on /usr/share/lintian/checks/binaries.

Tag: binary-or-shlib-omits-rpath
Type: warning
Info: The binary or shared library fails to set RPATH.

RPATH is an important issue in Debian and Emdebian but for opposite reasons and with opposite emphasis. More information is needed in this area with more testing to establish the role and importance of RPATH in Emdebian packages.

Tag: binary-is-wrong-architecture
Type: error
Info: The binary or shared library is the wrong architecture.
 This is usually a failure of the Emdebian patches to set the
 correct compiler.

This is a critical error and lintian makes a much better job of this check than the previous support in emdebuild. Allowing packages to install binaries built for the build architecture (e.g. amd64) instead of the host architecture (e.g. ARM) will cause disastrous errors at runtime, especially if the binary concerned is part of the boot process. The error appears if debian/rules does not set the cross-compiler for all (or any) part of the build. Sometimes this can happen if the Emdebian patch for debian/rules fails to apply and the package tries to build anyway.

Tag: unsupported-interpreter-in-maintainer-script
Type: error
Info: The maintainer script needs an unsupported interpreter.
 Maintainer scripts in Emdebian must not try to use perl
 or python, no matter what dependencies are specified.

At some future point, some form of interpreter may be supported in Emdebian but the presence of perl (and python) is so engrained within Debian that it needs to be a definite error until such time as a sane perl installation can be made available for embedded devices.

Maintainer scripts are particularly bad because the lack of /usr/bin/perl means that packages will fail to install or be impossible to remove.

Tag: unsupported-interpreter-in-binary
Type: error
Info: The binary package includes an interpreted script.
 Interpreted languages like perl and python are not supported
 in Emdebian.

Still an error in case the binary in question ends up being called during the boot process or system installation.

Tag: maintainer-scripts-calls-install-info
Type: error
Info: Maintainer pages in Emdebian must not call install-info
 info pages are not present in Emdebian packages and install-info
 itself does not exist. Maintainer scripts must be patched to remove
 calls to install-info.

Tag: maintainer-scripts-calls-update-alternatives
Type: error
Info: Maintainer pages in Emdebian must not call update-alternatives

Tag: maintainer-scripts-tries-to-process-a-manpage
Type: error
Info: Maintainer pages in Emdebian must not process manpages

Tag: emdebian-tdeb-without-messages
Type: error
Info: The Emdebian TDeb does not contain a matching messages file.

Tag: emdebian-package-contains-translations
Type: error
Info: All translations must be in Emdebian TDeb packages.

Tag: emdebian-package-contains-manpages
Type: error
Info: All manpages must be removed from Emdebian packages.

Tag: emdebian-package-contains-docs
Type: error
Info: The package contains files in /usr/share/doc/
 Only copyright.gz is allowed in /usr/share/doc/.

See 448615

Tag: emdebian-copyright-not-compressed
Type: warning
Info: copyright files should be compressed for Emdebian.