Emdebian Code Audit

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

debian-xcontrol 0.0.4 includes support that the Code Audit needs to utilise. Functionality changes need to be supported using the Optional package support in debian/xcontrol - along with changes in emdebian-tools to implement the necessary support. 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.

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

acl

2.2.47-2

284167

apt

0.7.20.2

Wait

( dependency, xcontrol) Detail

at

3.1.10.2

480825

atk1.0

1.22.0-1

Wait

(rules, xcontrol) Detail

attr

1:2.4.43-2

284044

audiofile

0.2.6-7

Done

avahi

0.6.22-3

Wait

(dependencies, python, scripts, xcontrol) Detail

base-files

5

Wait

(control, rules) Detail

base-passwd

3.5.20

Done

bluez-libs

3.36-1

Chain 450483

(cdbs)

bsdmainutils

6.1.10

Wait

(scripts, xcontrol)

busybox

1:1.11.1-1

Wait

(dependency, rules, xcontrol) Detail

bzip2

1.0.5-1

Wait

(info)

c-ares

1.5.2-4

Done

cairo

1.6.4-7

Wait

(xcontrol)

cdebconf

0.138lenny2

Wait 480899

splitout gtk frontend, (rules, xcontrol)

console-tools

1:0.2.3dbs-65.1

Tools

(xcontrol, libtool)

coreutils

6.10-6

Drop from Crush 2.0

cpio

2.9-13

Wait

(symbols [win32 omission], scripts) Detail

cracklib2

2.8.12-8

Wait

(python) Detail

cron

3.0pl1-105

465077

(adduser, rules) Detail

cups

1.3.8-1lenny4.1

531821

FAIL - no longer cross-builds

cupsys

1.3.5-1

Replaced by cups

curl

7.18.2-8

Wait

(noldap, rules, control, xcontrol)Detail

dash

0.5.4-12

Wait

(scripts, dpkg-divert)Detail

dbus

1.2.1-5

Chain 450483

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

dbus-glib

0.76-1

Chain 450483

(patches [tools, examples])

debconf

1.5.24

Wait

(tools)

debian-archive-keyring

2009.01.31

Wait

(section)

debianutils

2.30

Done

devmapper

2:1.02.27-4

Replaced by lvm2

dhcp3

3.1.1-6

Wait

(xcontrol)

dialog

1.1-20080316-1

Wait

(ldflags, xcontrol)

diffutils

2.8.1-12

Done

directfb

1.0.1-11

Wait

(ldflags, xcontrol)

dpkg

1.14.25

Wait

(dependency - busybox, xcontrol)Detail

dropbear

0.51-1

Needs a bug report

(rules, xcontrol)

eglibc

replaces glibc

Done

e2fsprogs

1.41.3-1

Wait

(scripts, xcontrol)

ed

0.7-3

(scripts)

expat

2.0.1-4

Done

fam

2.7.0-13.3

Chain 450483

(cdbs)

file

4.26-1

Wait

(python, xcontrol)

findutils

4.4.0-2

Wait

(scripts)

fontconfig

2.6.0-3

Wait

(dependency - defoma rules, xcontrol, )

freetype

2.3.7-2

Wait

(libtool, xcontrol)

galculator

1.3.1-2

Chain 450483

(cdbs)

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

gconf

2.22.0-1

Wait 450483

(dependency - python, ldap, rules)

glib2.0

2.16.6-1

Wait

(ldflags, xcontrol)

glibc

2.7-18

Replaced by eglibc

gmp

2:4.2.2+dfsg-3

Wait

(rules)

gnome-mime-data

2.18.0-1

Done

gnome-vfs

1:2.22.0-5

Wait

(patches, symbols, xcontrol)

gnupg

1.4.9-3

Wait

(patches, symbols, xcontrol)

gnutls13

2.0.4-4

out of date

needs RM

gnutls26

2.4.2-6

Wait

(dependency, symbols, xcontrol)

gpe-announce

0.13-2

Wait

(xcontrol)

gpe-appmgr

2.8-2

Wait

(xcontrol)

gpe-bluetooth

0.55-3

Done

gpe-calendar

0.91-3

Done

gpe-clock

0.25-4

Done

gpe-conf

0.2.7-1

Done

gpe-confd

0.16-2

Chain 450483

(xcontrol)

gpe-contacts

0.47-2

Chain 450483

(xcontrol)

gpe-edit

0.41-1

Wait

(xcontrol)

gpe-expenses

0.1.6-1

Done

gpe-filemanager

0.25-3

Chain 450483

(xcontrol)

gpe-gallery

0.97-3

Wait

(xcontrol)

gpe-go

0.05-4

Wait

(xcontrol)

gpe-icons

0.25-1

Done

gpe-lights

0.13-4

Wait

(xcontrol)

gpe-login

0.91-1

Done

gpe-mininet

0.7-2

Chain 450483

(xcontrol)

gpe-mixer

0.42-2

Chain 450483

(xcontrol)

gpe-othello

0.2-4

Wait

(xcontrol)

gpe-ownerinfo

0.28-1

Wait

(rules, xcontrol)

gpe-question

0.04-3

Wait

(xcontrol)

gpe-shield

0.31-3

Done

gpe-soundbite

1.0.6-2

Wait

(xcontrol)

gpe-soundserver

0.4-3

Done

gpe-su

0.19-2

Done

gpe-taskmanager

0.20-8

Wait

(rules, xcontrol)

gpe-tetris

0.6.4-2

Wait

(rules, xcontrol)

gpe-timesheet

0.32-2

Done

gpe-todo

0.57-1

Chain 450483

(xcontrol)

gpe-watch

0.11-1

Wait

(rules, xcontrol)

gpe-what

0.43-2

Chain 450483

(xcontrol)

grep

2.5.3~dfsg-6

Done

grisbi

0.5.8-1.2

Wait

(xcontrol)

gsoko

0.4.2-gpe6-3

Wait

(rules, xcontrol)

gtk+2.0

2.12.11-4

Wait

502433

gzip

1.3.12-6

Done

hal

0.5.11-8

Chain 450483

(dependencies, xcontrol) Detail

hal-info

20080508+git20080601-1

Done

hicolor-icon-theme

0.10-1

Done

homebank

3.8-1

Chain 450483

(xcontrol)

hostname

2.95

Done

ifupdown

0.6.8+nmu1

Needs a bug report

(rules)

iptables

1.4.2-6

Wait

(xcontrol)

iputils

3:20071127-1

Needs a bug report

(rules, scripts)

kerberos-configs

1.22

Done

keyutils

1.2-9

Done

krb5

1.6.dfsg.4~beta1-5

Wait

(scripts, xcontrol)

langupdate

0.0.4

Done

libcairo

1.4.10-1

Replaced

cairo

libcap

1:1.10-14

Replaced

libcap2, xcontrol, rules

libcontactsdb

0.5-4

Chain 450483

(xcontrol)

libdaemon

0.12-2

Done

libdatrie

0.1.3-2

Done

libdebian-installer

0.61

Wait

(xcontrol)

libdisplaymigration

0.28-7

Tools

(xcontrol)

libdrm

2.3.1-2

Wait

(libtool, xcontrol)

libedit

2.11~20080614-1

Wait

(xcontrol)

libeventdb

0.90-4

Chain 450483

(priority, xcontrol)

libfakekey

0.1-1

Chain 450483

(xcontrol)

libfontenc

1:1.0.4-3

Done

libgcrypt11

1.4.1-1

Wait

(rules, xcontrol)

libglade2

1:2.6.2-1

Wait

(python, rules, xcontrol)

libgpelaunch

0.14-4

Chain 450483

(xcontrol)

libgpepimc

0.9-2

Chain 450483

(control missing priority)

libgpeschedule

0.17-3

Chain 450483

(xcontrol)

libgpevtype

0.50-4

Chain 450483

(xcontrol)

libgpewidget

0.115-5

Done

libgpg-error

1.4-2

Wait

(modifies debian/control)

libgsm

1.0.12-1

Needs a bug report

(rules)

libhandoff

0.1-3

Wait

(xcontrol)

libice

2:1.0.4-1

Wait

(xcontrol)

libidl

0.8.10-0.1

Wait

drop cpp dependency (rules, xcontrol)

libidn

1.8+20080606-1

Wait

drop java (rules, xcontrol)

libjpeg6b

6b-14

Wait 451222

(rules)

libmatchbox

1.9-4

Chain 450483

(xcontrol)

libmimedir

0.4-4

Needs a bug report

(rules, xcontrol)

libmimedir-gnome

0.4.2-1

Wait

(rules, xcontrol)

libofx

1:0.9.0-3

Wait

(libtool, xcontrol, rules)

libopenobex

1.3+cvs20070425-2

FAIL - moved to CMake which fails to build.

libpng

1.2.27-2

Wait

(xcontrol)

libselinux

2.0.65-5

Wait

(rules)

libsepol

2.0.30-2

Wait

(rules)

libsigc++-2.0

2.0.18-2

Wait

(generated files/patches)

libsm

2:1.0.3-2

Wait

(xcontrol)

libsoundgen

0.6-2

Wait

(xcontrol)

libsoup

2.2.105-4

Wait

(replaced by libsoup2.4 - libtool, xcontrol)

libtasn1-3

1.4-1

Chain 450483

(xcontrol)

libtextwrap

0.1-6

Wait

(rules, xcontrol)

libthai

0.1.9-4

Wait

(xcontrol)

libtododb

0.11-2

Chain 450483

(missing priority, xcontrol)

libusb

2:0.1.12-13

Wait

(xcontrol)

libx11

2:1.1.5-2

FAIL - patch needs updating

rules, patches, xcontrol, scripts)

libxau

1:1.0.3-3

Wait

(xcontrol)

libxcb

1.1-1.1

Chain 450483

(xcontrol)

libxcomposite

1:0.4.0-3

Wait

(xcontrol)

libxcursor

1:1.1.9-1

Wait

(xcontrol)

libxdamage

1:1.1.1-4

Wait

(xcontrol)

libxdmcp

1:1.0.2-3

Wait

(xcontrol)

libxext

2:1.0.4-1

Wait

(xcontrol)

libxfixes

1:4.0.3-2

Wait

(xcontrol)

libxfont

1:1.3.3-1

Wait

(xcontrol)

libxi

2:1.1.4-1

Wait

(rules, xcontrol) Detail

libxinerama

2:1.0.3-2

Wait

(rules, xcontrol) Detail

libxml2

2.6.32.dfsg-5

Wait

(python)

libxmu

2:1.0.4-1

Wait

(xcontrol)

libxpm

1:3.5.7-1

Wait

(xcontrol)

libxrandr

2:1.2.3-1

Wait

(rules, xcontrol) Detail

libxrender

1:0.9.4-2

Wait

(rules, xcontrol) Detail

libxsettings

0.11-3

Wait

(rules, xcontrol)

libxsettings-client

0.17-5

Wait

(xcontrol)

libxtst

2:1.0.3-1

Wait

(xcontrol)

logrotate

3.7.1-5

Needs bug report

(rules, xcontrol)

lsb

3.2-20

Done

lzma

4.43-14

Wait

(xcontrol)

lvm2

Replaces devmapper

Wait

(cache, xcontrol)

lzo

1.08-3

Replaced by lzo2

lzo2

2.03-1

Chain 450483

(xcontrol)

makedev

2.3.1-88

Done

matchbox

1:4

Done

matchbox-common

0.9.1-3

Wait

(xcontrol, watch, compat)

matchbox-desktop

2.0-1

Chain 450483

(xcontrol)

matchbox-keyboard

0.1-1

Chain 450483

(xcontrol)

matchbox-panel

0.9.3-3

Chain 450483

(xcontrol)

matchbox-panel-manager

0.1-3

Chain 450483

(xcontrol)

matchbox-window-manager

1.2-2

Chain 450483

(xcontrol)

mawk

1.3.3-11.1

Wait

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

mktemp

1.5-9

Now part of coreutils in sid

module-init-tools

3.4-1

Wait

(scripts - dpkg-divert)

nano

2.0.7-4

Wait

(scripts - update-alternatives)

ncurses

5.7+20081213-1

Wait

(Fails to build, patches, rules, xcontrol)

net-tools

1.60-22

Needs bug report

(rules)

netbase

4.34

Done

netcat

1.10-38

Wait

(patches, priority, scripts)

newt

0.52.2-11.3

Wait

(dependencies, xcontrol, python)

ntp

1:4.2.4p4+dfsg-8

Wait

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

openbsd-inetd

0.20080125-2

Wait

(dependency change, rules, xcontrol)

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)

openssh

1:5.1p1-5

Wait

(rules, xcontrol, scripts) Detail

openssh-blacklist

0.4.1

Done

openssl

0.9.8g-15

Wait

(scripts, rules, xcontrol)

orbit2

1:2.14.13-0.1

Wait

(fails to build, patches, rules, xcontrol)

pam

1.0.1-5

Wait

(scripts, rules, xcontrol, patches)

pango1.0

1.20.5-3

Wait

(scripts, rules, xcontrol, patches)

pciutils

1:3.0.0-6

Wait

(xcontrol)

pcre3

7.6-2.1

Wait

(patches, xcontrol, rules, control)

pixman

0.10.0-2

Done

pm-utils

1.1.2.4-1

Done

popt

1.14-4

Done

powermgmt-base

1.30+nmu1

Wait

(rules)

procps

1:3.2.7-11

Wait

(scripts, xcontrol)

psmisc

22.6-1

Done

qof

0.7.5-1

Wait

(xcontrol)

readline5

5.2-3.1

Wait

(rules, scripts)

rxvt

1:2.6.4-14

Wait

(rules, scripts, xcontrol)

sed

4.1.5-6

Wait

(scripts)

shadow

1:4.1.1-6

Chain 450483

(xcontrol, cache)

shared-mime-info

0.30-2

Chain 450483

(xcontrol)

slang2

2.1.3-3

Wait

(rules, xcontrol)

sqlite

2.8.17-4

Wait

(drop tcl, rules, control, xcontrol)

startup-notification

0.9-1

Chain 450483

(xcontrol)

sysfsutils

2.1.0-5

Chain 450483

(xcontrol, rules)

sysvinit

2.86.ds1-61

Wait

(scripts, rules, xcontrol)

tar

1.20-1

Wait

(scripts)

tcp-wrappers

7.6.q-16

Done

tiff

3.8.2-11

FAIL

(scripts, rules, xcontrol)

traceroute

2.0.11-2

Wait

(xcontrol, scripts)

tslib

1.0-4

Done

ttf-bitstream-vera

1.10-7

Wait

(defoma)

tzdata

2008h-2

Wait

(java)

ucf

3.0016

Done

udev

0.125-7

Wait

(scripts, xcontrol)

udhcp

0.9.8cvs20050303-2.1

Needs bug report

(rules)

usbutils

0.73-10

Wait

(xcontrol)

util-linux

2.13.1.1-1

Wait

(scripts, xcontrol)

wget

1.11.4-2

Wait

(xcontrol)

x11proto-core

7.0.12-1

Done

xauth

1:1.0.3-2

Wait

(xcontrol)

xcb-util

0.2.1+git1-1

Wait

(xcontrol)

xdemineur

2.1.1-14

Wait

(xcontrol)

xf86-input-tslib

0.0.4-5

Wait

(xcontrol)

xfonts-base

1:1.0.0-5

Wait

(scripts, xcontrol)

xfonts-encodings

1:1.0.2-3

Done

xfonts-utils

1:7.4+1

Wait

(xcontrol)

xft

2.1.12-3

Wait

(xcontrol)

xinit

1.0.9-2

Wait

(xcontrol)

xorg

1:7.3+18

Wait

(scripts)

xorg-server

2:1.4.2-10

FAIL

(scripts, rules, xcontrol)

xserver-xorg-input-keyboard

1:1.3.1-1

Wait

(xcontrol)

xserver-xorg-input-mouse

1:1.3.0-1

Wait

(xcontrol)

xserver-xorg-video-fbdev

1:0.4.0-1

Wait

(xcontrol)

zlib

1:1.2.3.3.dfsg-12

Done

The table will be updated with columns for the status of each source package, bugs filed, bugs closed and other data during the progress of the audit.

Legend

Once the audit is in progress, the following tags will be 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