Emdebian Code Audit

Emdebian Crush 1.0 uses a lot of patches to be able to build. This Code Audit was initially concerned with implementing as many of those patches as possible into the relevant Debian packages. See EmdebianAuditHowTo.

Packages that simply don't cross-build and which are not needed for Crush need to use the Cross-Compiling support but actually implementing those switches at build time needs to be done within that package and not all packages support skipping parts of the build.

The table is gradually being updated to indicate possible Candidate packages which will need to be cross-built to achieve functional changes in a future version of Crush. Packages are indicated as "Crush" to be cross-built with changes or "Grip" for inclusion from Emdebian Grip without functional changes. Packages tagged Unknown need further testing for compatibility. Some tools have been replaced or can be dropped without needing changes within packages (e.g. update-alternatives) and packages that were modified for this support in Crush 1.0 are candidates for Grip instead.

Package specifics

Where more information is needed for individual packages, see the EmdebianAuditDetail page.

Emdebian Crush 1.0 includes the following source packages:

Package

Version

Status

Tags

Candidate

acl

2.2.47-2

284167

Grip

apt

0.7.20.2

Wait

(xcontrol) Detail

Grip

at

3.1.10.2

480825

Grip

atk1.0

1.22.0-1

Wait

(rules, xcontrol) Detail

Grip

attr

1:2.4.43-2

284044

Grip

audiofile

0.2.6-7

Done

Grip

avahi

0.6.22-3

Wait

(dependencies, python, scripts, xcontrol) Detail

Crush

base-files

5

Wait

(control, rules) Detail

Grip

base-passwd

3.5.20

Done

Grip

bluez-libs

Removed

bsdmainutils

6.1.10

update-alternatives

(scripts, xcontrol)

Grip

busybox

1:1.11.1-1

Wait

(dependency, rules, xcontrol) Detail

Crush

bzip2

1.0.5-1

Done

Grip

c-ares

1.5.2-4

Done

Grip

cairo

1.6.4-7

Wait

(xcontrol)

Grip

cdebconf

0.138lenny2

Wait 480899

splitout gtk frontend, (rules, xcontrol)

Grip

console-tools

1:0.2.3dbs-65.1

Tools

(xcontrol, libtool)

Grip

coreutils

6.10-6

Drop from Crush 2.0

Grip

cpio

2.9-13

Wait

(symbols [win32 omission], scripts) Detail

Grip

cracklib2

2.8.12-8

Wait

(python) Detail

Grip

cron

3.0pl1-105

465077

(adduser, rules) Detail

Grip

cups

1.3.8-1lenny4.1

531821

FAIL - no longer cross-builds

Grip

cupsys

1.3.5-1

Replaced by cups

curl

7.18.2-8

Wait

(noldap, rules, control, xcontrol)Detail

Crush

dash

0.5.4-12

Wait

(scripts, dpkg-divert)Detail

Grip

dbus

1.2.1-5

Chain 450483

(perl [adduser], scripts [adduser], libtool)

Grip

dbus-glib

0.76-1

Chain 450483

(patches [tools, examples])

Grip

debconf

1.5.24

Wait

(tools)

Crush

debian-archive-keyring

2009.01.31

Wait

(section)

Grip

debianutils

2.30

Done

Grip

devmapper

2:1.02.27-4

Replaced by lvm2

Grip

dhcp3

3.1.1-6

Wait

(xcontrol)

Grip

dialog

1.1-20080316-1

Wait

(ldflags, xcontrol)

Grip

diffutils

2.8.1-12

Done

Grip

directfb

1.0.1-11

Wait

(ldflags, xcontrol)

Grip

dpkg

1.14.25

Wait

(dependency - busybox, xcontrol)Detail

Crush

dropbear

0.51-1

Needs a bug report

(rules, xcontrol)

Grip

eglibc

replaces glibc

Done

Grip

e2fsprogs

1.41.3-1

Wait

(scripts, xcontrol)

Grip

ed

0.7-3

(scripts)

Grip

expat

2.0.1-4

Done

Grip

fam

2.7.0-13.3

Chain 450483

(cdbs)

Grip

file

4.26-1

Wait

(python, xcontrol)

Grip

findutils

4.4.0-2

Wait

(scripts)

Grip

fontconfig

2.6.0-3

Wait

(dependency - defoma rules, xcontrol, )

Crush

freetype

2.3.7-2

Wait

(libtool, xcontrol)

Grip

galculator

1.3.1-2

Chain 450483

(cdbs)

Grip

gcc-4.3

4.3.2-1.1

RM

no longer builds libgcc1

gcc-4.4

4.4.0-5

Wait

Fails to build - possibly needs a gcc-4.4 toolchain

Grip

gconf

2.22.0-1

Wait 450483

(dependency - python, ldap, rules)

Crush

glib2.0

2.16.6-1

Wait

(ldflags, xcontrol)

Grip

glibc

2.7-18

Replaced by eglibc

gmp

2:4.2.2+dfsg-3

Wait

(rules)

Grip

gnome-mime-data

2.18.0-1

Done

Grip

gnome-vfs

1:2.22.0-5

Wait

(patches, symbols, xcontrol)

Crush

gnupg

1.4.9-3

Wait

(patches, symbols, xcontrol)

Crush

gnutls13

2.0.4-4

out of date

needs RM

gnutls26

2.4.2-6

Wait

(dependency, symbols, xcontrol)

Grip

gpe-announce

0.13-2

Wait

(xcontrol)

Grip

gpe-appmgr

2.8-2

Wait

(xcontrol)

Grip

gpe-bluetooth

0.55-3

Done

Grip

gpe-calendar

0.91-3

Done

Grip

gpe-clock

0.25-4

Done

Grip

gpe-conf

0.2.7-1

Done

Grip

gpe-confd

0.16-2

Chain 450483

(xcontrol)

Grip

gpe-contacts

0.47-2

Chain 450483

(xcontrol)

Grip

gpe-edit

0.41-1

Wait

(xcontrol)

Grip

gpe-expenses

0.1.6-1

Done

Grip

gpe-filemanager

0.25-3

Chain 450483

(xcontrol)

Grip

gpe-gallery

0.97-3

Wait

(xcontrol)

Grip

gpe-go

0.05-4

Wait

(xcontrol)

Grip

gpe-icons

0.25-1

Done

Grip

gpe-lights

0.13-4

Wait

(xcontrol)

Grip

gpe-login

0.91-1

Done

Grip

gpe-mininet

0.7-2

Chain 450483

(xcontrol)

Grip

gpe-mixer

0.42-2

Chain 450483

(xcontrol)

Grip

gpe-othello

0.2-4

Wait

(xcontrol)

Grip

gpe-ownerinfo

0.28-1

Wait

(rules, xcontrol)

Grip

gpe-question

0.04-3

Wait

(xcontrol)

Grip

gpe-shield

0.31-3

Done

Grip

gpe-soundbite

1.0.6-2

Wait

(xcontrol)

Grip

gpe-soundserver

0.4-3

Done

Grip

gpe-su

0.19-2

Done

Grip

gpe-taskmanager

0.20-8

Wait

(rules, xcontrol)

Grip

gpe-tetris

0.6.4-2

Wait

(rules, xcontrol)

Grip

gpe-timesheet

0.32-2

Wait

(rpath)

Grip

gpe-todo

0.57-1

Chain 450483

(xcontrol)

Grip

gpe-watch

0.11-1

Wait

(rules, xcontrol)

Grip

gpe-what

0.43-2

Chain 450483

(xcontrol)

Grip

grep

2.5.3~dfsg-6

Done

Grip

grisbi

0.5.8-1.2

Wait

(xcontrol)

Grip

gsoko

0.4.2-gpe6-3

Wait

(rules, xcontrol)

Grip

gtk+2.0

2.12.11-4

Wait

502433

Grip

gzip

1.3.12-6

Done

Grip

hal

0.5.11-8

Chain 450483

(dependencies, xcontrol) Detail

Crush

hal-info

20080508+git20080601-1

Done

Grip

hicolor-icon-theme

0.10-1

Done

Grip

homebank

3.8-1

Chain 450483

(xcontrol)

Grip

hostname

2.95

Done

Grip

ifupdown

0.6.8+nmu1

Needs a bug report

(rules)

Grip

iptables

1.4.2-6

Wait

(xcontrol)

Grip

iputils

3:20071127-1

Needs a bug report

(rules, scripts)

Grip

kerberos-configs

1.22

Done

Grip

keyutils

1.2-9

Done

Grip

krb5

1.6.dfsg.4~beta1-5

Wait

(scripts, xcontrol)

Grip

langupdate

0.0.4

Done

Grip

libcairo

1.4.10-1

Replaced

cairo

Grip

libcap

1:1.10-14

Replaced

libcap2, xcontrol, rules

Grip

libcontactsdb

0.5-4

Chain 450483

(rpath, xcontrol)

Grip

libdaemon

0.12-2

Done

Grip

libdatrie

0.1.3-2

Done

Grip

libdebian-installer

0.61

Wait

(xcontrol)

Grip

libdisplaymigration

0.28-7

Tools

(xcontrol)

Grip

libdrm

2.3.1-2

Wait

(libtool, xcontrol)

Grip

libedit

2.11~20080614-1

Wait

(xcontrol)

Grip

libeventdb

0.90-4

Chain 450483

(priority, rpath, xcontrol)

Grip

libfakekey

0.1-1

Chain 450483

(xcontrol)

Grip

libfontenc

1:1.0.4-3

Done

Grip

libgcrypt11

1.4.1-1

Wait

(rules, rpath, xcontrol)

Grip

libglade2

1:2.6.2-1

Wait

(python, rules, xcontrol)

Grip

libgpelaunch

0.14-4

Chain 450483

(rpath, xcontrol)

Grip

libgpepimc

0.9-2

Chain 450483

(control missing priority, rpath)

Grip

libgpeschedule

0.17-3

Chain 450483

(rpath, xcontrol)

Grip

libgpevtype

0.50-4

Chain 450483

(rpath, xcontrol)

Grip

libgpewidget

0.115-5

Done

Grip

libgpg-error

1.4-2

Wait

(modifies debian/control)

Grip

libgsm

1.0.12-1

Needs a bug report

(rules)

Grip

libhandoff

0.1-3

Wait

(rpath, xcontrol)

Grip

libice

2:1.0.4-1

Wait

(xcontrol)

Grip

libidl

0.8.10-0.1

Wait

drop cpp dependency (rules, xcontrol)

Crush

libidn

1.8+20080606-1

Wait

drop java (rules, xcontrol)

Grip

libjpeg6b

6b-14

Wait 451222

(rules)

Grip

libmatchbox

1.9-4

Chain 450483 535446

(rpath, xcontrol)

Grip

libmimedir

0.4-4

Needs a bug report

(rules, xcontrol)

Grip

libmimedir-gnome

0.4.2-1

Chain 450483

(cdbs, rpath, xcontrol)

Grip

libofx

1:0.9.0-3

Wait

(libtool, rpath, xcontrol, rules)

Grip

libopenobex

1.3+cvs20070425-2

FAIL - moved to CMake which fails to build.

Grip

libpng

1.2.27-2

Wait

(xcontrol)

Grip

libselinux

2.0.65-5

Needs a bug report

(rules)

Grip

libsepol

2.0.30-2

Needs a bug report

(rules)

Grip

libsigc++-2.0

2.0.18-2

Wait

(generated files/patches)

Grip

libsm

2:1.0.3-2

Wait

(xcontrol)

Grip

libsoundgen

0.6-2

Wait

(rpath, xcontrol)

Grip

libsoup

2.2.105-4

Wait

(replaced by libsoup2.4 - libtool, xcontrol)

Grip

libtasn1-3

1.4-1

Chain 450483

(xcontrol)

Grip

libtextwrap

0.1-6

Wait

(xcontrol)

Grip

libthai

0.1.9-4

Wait

(xcontrol)

Grip

libtododb

0.11-2

Chain 450483

(missing priority, rpath, xcontrol)

Grip

libusb

2:0.1.12-13

Wait

(xcontrol)

Grip

libx11

2:1.1.5-2

FAIL - patch needs updating

rules, patches, xcontrol, scripts)

Grip

libxau

1:1.0.3-3

Wait

(xcontrol)

Grip

libxcb

1.1-1.1

Chain 450483

(xcontrol)

Grip

libxcomposite

1:0.4.0-3

Wait

(xcontrol)

Grip

libxcursor

1:1.1.9-1

Wait

(xcontrol)

Grip

libxdamage

1:1.1.1-4

Wait

(xcontrol)

Grip

libxdmcp

1:1.0.2-3

Wait

(xcontrol)

Grip

libxext

2:1.0.4-1

Wait

(xcontrol)

Grip

libxfixes

1:4.0.3-2

Wait

(xcontrol)

Grip

libxfont

1:1.3.3-1

Wait

(xcontrol)

Grip

libxi

2:1.1.4-1

Wait

(rules, xcontrol) Detail

Grip

libxinerama

2:1.0.3-2

Wait

(rules, xcontrol) Detail

Grip

libxml2

2.6.32.dfsg-5

Wait

(python)

Grip

libxmu

2:1.0.4-1

Wait

(xcontrol)

Grip

libxpm

1:3.5.7-1

Wait

(xcontrol)

Grip

libxrandr

2:1.2.3-1

Wait

(rules, xcontrol) Detail

Grip

libxrender

1:0.9.4-2

Wait

(rules, xcontrol) Detail

Grip

libxsettings

0.11-3

Wait

(rules, xcontrol)

Grip

libxsettings-client

0.17-5

Wait

(xcontrol)

Grip

libxtst

2:1.0.3-1

Wait

(xcontrol)

Grip

logrotate

3.7.1-5

Needs bug report

(rules, xcontrol)

Grip

lsb

3.2-20

Done

Grip

lzma

4.43-14

Wait

(xcontrol)

Grip

lvm2

Replaces devmapper

Wait

(cache, xcontrol)

Grip

lzo

1.08-3

Replaced by lzo2

lzo2

2.03-1

Chain 450483

(xcontrol)

Grip

makedev

2.3.1-88

Done

Grip

matchbox

1:4

Done

Grip

matchbox-common

0.9.1-3

Wait

(xcontrol, watch, compat)

Grip

matchbox-desktop

2.0-1

Chain 450483

(xcontrol)

Grip

matchbox-keyboard

0.1-1

Chain 450483

(xcontrol)

Grip

matchbox-panel

0.9.3-3

Chain 450483

(xcontrol)

Grip

matchbox-panel-manager

0.1-3

Chain 450483

(xcontrol)

Grip

matchbox-window-manager

1.2-2

Chain 450483

(xcontrol)

Grip

mawk

1.3.3-11.1

Wait

(build-conflict support, scripts, rules, xcontrol)

Grip

mktemp

1.5-9

Now part of coreutils in sid

module-init-tools

3.4-1

Wait

(scripts - dpkg-divert)

Grip

nano

2.0.7-4

Wait

(scripts - update-alternatives)

Grip

ncurses

5.7+20081213-1

Wait

(Fails to build, patches, rules, xcontrol)

Grip

net-tools

1.60-22

Needs bug report

(rules)

Grip

netbase

4.34

Done

Grip

netcat

1.10-38

Wait

(patches, priority, scripts)

Grip

newt

0.52.2-11.3

Wait

(dependencies, xcontrol, python)

Grip

ntp

1:4.2.4p4+dfsg-8

Wait

(build fails, drops crypto support, rules, xcontrol)

Grip

openbsd-inetd

0.20080125-2

Wait

(dependency change, rules, xcontrol)

Grip

opencdk10

0.6.6-1

Not in Debian anymore

opencdk8

0.5.13-2

Not in Debian anymore

opensp

1.5.2-6

Needs bug report

(rules, xcontrol)

Grip

openssh

1:5.1p1-5

Wait

(rules, xcontrol, scripts) Detail

Crush

openssh-blacklist

0.4.1

Done

Grip

openssl

0.9.8g-15

Wait

(scripts, rules, xcontrol)

Grip

orbit2

1:2.14.13-0.1

Wait

(fails to build, patches, rules, xcontrol)

Grip

pam

1.0.1-5

Wait

(scripts, rules, xcontrol, patches)

Grip

pango1.0

1.20.5-3

Wait

(scripts, rules, xcontrol, patches)

Crush

pciutils

1:3.0.0-6

Wait

(xcontrol)

Grip

pcre3

7.6-2.1

Wait

(patches, xcontrol, rules, control)

Grip

pixman

0.10.0-2

Done

Grip

pm-utils

1.1.2.4-1

Done

Grip

popt

1.14-4

Done

Grip

powermgmt-base

1.30+nmu1

Wait

(rules)

Grip

procps

1:3.2.7-11

Wait

(scripts, xcontrol)

Grip

psmisc

22.6-1

Done

Grip

qof

0.7.5-1

Wait

(xcontrol)

Grip

readline5

5.2-3.1

Wait

(rules, scripts)

Grip

rxvt

1:2.6.4-14

Wait

(rules, scripts, xcontrol)

Grip

sed

4.1.5-6

Wait

(scripts)

Grip

shadow

1:4.1.1-6

Chain 450483

(xcontrol, cache)

Grip

shared-mime-info

0.30-2

Chain 450483

(xcontrol)

Grip

slang2

2.1.3-3

Wait

(rules, xcontrol)

Grip

sqlite

2.8.17-4

Wait

(drop tcl, rules, control, xcontrol)

Grip

startup-notification

0.9-1

Chain 450483

(xcontrol)

Grip

sysfsutils

2.1.0-5

Chain 450483

(xcontrol, rules)

Grip

sysvinit

2.86.ds1-61

Wait

(scripts, rules, xcontrol)

Crush

tar

1.20-1

Wait

(scripts)

Grip

tcp-wrappers

7.6.q-16

Done

Grip

tiff

3.8.2-11

FAIL

(scripts, rules, xcontrol)

Grip

traceroute

2.0.11-2

Wait

(xcontrol, scripts)

Grip

tslib

1.0-4

Done

Grip

ttf-bitstream-vera

1.10-7

Wait

(defoma)

Grip

tzdata

2008h-2

Wait

(java)

Grip

ucf

3.0016

Done

Grip

udev

0.125-7

Wait

(scripts, xcontrol)

Crush

udhcp

Removed

usbutils

0.73-10

Wait

(xcontrol)

Grip

util-linux

2.13.1.1-1

Wait

(scripts, xcontrol)

Grip

wget

1.11.4-2

Wait

(xcontrol)

Grip

x11proto-core

7.0.12-1

Done

Grip

xauth

1:1.0.3-2

Wait

(xcontrol)

Grip

xcb-util

0.2.1+git1-1

Wait

(xcontrol)

Grip

xdemineur

2.1.1-14

Wait

(xcontrol)

Grip

xf86-input-tslib

0.0.4-5

Wait

(xcontrol)

Grip

xfonts-base

1:1.0.0-5

Wait

(scripts, xcontrol)

Crush

xfonts-encodings

1:1.0.2-3

Done

Grip

xfonts-utils

1:7.4+1

Wait

(xcontrol)

Grip

xft

2.1.12-3

Wait

(xcontrol)

Grip

xinit

1.0.9-2

Wait

(xcontrol)

Grip

xorg

1:7.3+18

Wait

(scripts)

Crush

xorg-server

2:1.4.2-10

FAIL

(scripts, rules, xcontrol)

Unknown

xserver-xorg-input-keyboard

1:1.3.1-1

Wait

(xcontrol)

Grip

xserver-xorg-input-mouse

1:1.3.0-1

Wait

(xcontrol)

Grip

xserver-xorg-video-fbdev

1:0.4.0-1

Wait

(xcontrol)

Grip

zlib

1:1.2.3.3.dfsg-12

Done

Grip

The table will be updated with adjustments to the candidates, bugs filed, bugs closed and other data during the progress of the audit.

Legend

The following tags are assigned to each source package in the table:

Crush 2.0 will then be built from the audited packages in stages - core packages, Xorg, Gtk+ and finally applications.

(The sequence of the audit will not necessarily follow those stages - packages that I maintain myself will be completed asap and some packages have already included patches for cross-build support.)

Changes needed in the toolset

When a source package is tagged with status Tools, the most common reason is that the Emdebian Crush patches for the package still contain lines to remove calls to dh_installman or similar programs. i.e. the cross-build succeeds but Crush is waiting for emdebian-tools to reimplement the build so that docs can be removed without having to patch the package - this is expected to be done by using the current scripts supporting Emdebian Grip.

xcontrol support

To cross-build a package, the current Build-Depends needs to be split into packages that contain programs to be executed during the cross-build (i.e. tools) and packages that contain objects to be linked during the cross-build (i.e. -dev packages etc.). The debian/xcontrol file supports Build-Depends-Tools: for the programs to be executed (e.g. debhelper) and leaves Build-Depends as only containing packages that need to be processed by dpkg-cross.

Where a package status is listed as xcontrol in the audit, the package needs to have an xcontrol file added. This can be added manually but the debian-x-control package is being developed to assist

Build-Cross-Libtool fixes

Some packages need X-Build-Cross-Libtool: yes for likely broken libtool support, although each instance needs separate debugging. The actual cross-build uses the gccross workaround when this tag exists in debian/xcontrol. Packages needing such support are tagged 'libtool'.

python support

The future status of python in Crush is undetermined. Crush 1.0 does not include python but some form of python support may be necessary in Crush 2.0. Packages where python was been removed via patches in Crush 1.0 are tagged with 'python'. These patches are too problematic to retain (frequent changes causing the patches to break) so the python packages may continue to be built and uploaded, just left as uninstallable.

symbols

Functional changes are the main focus of the Audit - to identify:

These changes then need to be assessed and reviewed and packages renamed to indicate the nature of the change, e.g. libgconf-noldap, gnupg-minimal etc.

section

Various parts of a cross-build or upload can have problems if source packages do not specify both Section and Priority in debian/control - as recommended by Debian Policy. This is a minor/trivial issue and may be fixable within the emdebian-tools handling.

ldflags

A few packages do not need the full X-Build-Cross-Libtool: yes support and just need LDFLAGS set to a suitable value. e.g.   LDFLAGS=-L/usr/$(DEB_HOST_GNU_TYPE)/lib - this could be set using xcontrol or in the debian/rules files of the packages.


CategoryEmdebian