Differences between revisions 29 and 30
Revision 29 as of 2010-03-13 15:18:38
Size: 6012
Editor: NeilWilliams
Comment:
Revision 30 as of 2010-03-17 18:02:06
Size: 6039
Editor: NeilWilliams
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
work-in-progress and affected packages. work-in-progress and affected packages. See also EmdebianCodeAudit

Details of the changes in the EmdebianCodeAudit

RPATH

See 367115 and 484277 for details. Also, EmdebianAuditRpath for information on work-in-progress and affected packages. See also EmdebianCodeAudit

maintainer scripts

The only real way of handling maintainer script changes is to implement an no-op wrapper via emsandbox from the emdebian-rootfs package or by creating suitable wrappers using multistrap support.

As such, the maintainer scripts in the package would remain unchanged. Other changes (e.g. dropping specific options that are unsupported) are more difficult.

Vendor

This snippet needs emvendor from emdebian-buildsupport (>= 2.1.2).

DEB_VENDOR=$(shell dpkg-vendor --query vendor)
ifeq (Debian,$(DEB_VENDOR))
  # Debian build
  EXCONFARGS=--disable-mono --disable-monodoc
else
  # any-vendor build
  EXCONFARGS=$(shell emvendor --vendor $(DEB_VENDOR) --package avahi --key EXCONFARGS)
endif

e.g. this (abridged) avahi patch:

 DEB_CONFIGURE_EXTRA_FLAGS += --enable-compat-libdns_sd --enable-compat-howl \
-                             --disable-mono --disable-monodoc
+                             --disable-mono --disable-monodoc \
+                             --disable-mono --disable-monodoc --disable-python \
+                             --with-distro=debian 

becomes:

DEB_VENDOR=$(shell dpkg-vendor --query vendor)
ifeq (,$(findstring emdebian-crush,$(DEB_VENDOR)))
  # Debian build
  EXCONFARGS=--disable-mono --disable-monodoc
else
  # emdebian build (crush)
  EXCONFARGS=--disable-mono --disable-monodoc --disable-python --with-distro=debian 
endif
 DEB_CONFIGURE_EXTRA_FLAGS += --enable-compat-libdns_sd --enable-compat-howl ${EXCONFARGS}

emvendor provides an extra hierarchy of configuration settings, over and above what dpkg-vendor supports. It would be possible to include the relevant strings in /etc/dpkg/origins/vendor but each identifier string would need to be unique across all packages for each vendor, which would be an unrealistic limitation.

apt

  • Originally related to dropping the dependency on debian-archive-keyring - which is not used in Emdebian.

    • Assessed as insufficient reason not to use the version in Grip, original reason was the extra dependency on gnupg but gnupg was included in Crush 1.0 anyway.

atk1.0

  • Need to disable the documentation generation as it tries to execute internal compiled binaries in the scan process. Avoid this issue by pulling the package from Grip where documentation is removed after the native build.

avahi

  • Lots of components are disabled, including python, qt3, qt4, docs and gobject components. Quite a difficult package to handle, overall, due to the number of possible permutations. The gobject code didn't cross-build last time it was tried.
  • Maintainer scripts call adduser.
  • Needs vendor support to implement changes in configure arguments. Problem will be matching these switches to the xcontrol support.
  • Some of the disabled components could just be ignored if the packages could come from Grip but other binaries depend on adduser and could need replacement.

base-files

  • Drop the Pre-Depends on awk - TODO: might not be necessary anymore - needs to be tested against busybox.
  • Compress the licence texts and update the symlinks. (Not needed if using from Grip.)

busybox

  • Large functional changes - due to the completely different roles of busybox in Debian (d-i and initramfs) and Emdebian (replacing coreutils, boot support).

cpio

  • drop win32 bindings - needs xcontrol support for dropping the package.
  • update-alternatives changes in maintainer scripts

cracklib2

  • python support needs to be handled in xcontrol
  • Debian package uses chrpath which fails with a cross-built binary.

cron

  • adduser dependency needs to be handled (uses addgroup in preinst).

curl

  • generates a SONAME bump during the build, libcurl-gnutls.so.5.1.1 ??
  • drop ldap support and disable ssh support.
  • drop dependency on ca-certificates (v.large)

dash

  • scripts drop dpkg-divert support - possible to handle this in emsandbox but that could easily cause package installation failures and will need careful management.

dbus

  • Remove adduser dependency and probably use empty adduser support in emsandbox. Users and groups will need to be handled manually.

dbus-glib

  • Needs patches to skip examples and tools directories from build - tools tries to execute the built binaries. examples ignores the cross-compiler.

dpkg

  • Needs xcontrol|vendor support to (pre-)depend on busybox instead of coreutils

hal

  • adduser dependency removal

  • --disable-smbios change.

libxi

  • does not notice the ac_cv_func_malloc_0_nonnull=yes cache variable, needs a patch for debian/rules to add the package-specific ./configure option --enable-malloc0returnsnull

libxinerama

  • does not notice the ac_cv_func_malloc_0_nonnull=yes cache variable, needs a patch for debian/rules to add the package-specific ./configure option --enable-malloc0returnsnull

libxrandr

  • does not notice the ac_cv_func_malloc_0_nonnull=yes cache variable, needs a patch for debian/rules to add the package-specific ./configure option --enable-malloc0returnsnull

libxrender

  • does not notice the ac_cv_func_malloc_0_nonnull=yes cache variable, needs a patch for debian/rules to add the package-specific ./configure option --enable-malloc0returnsnull

openssh

  • adduser dependency removal

  • drop binary-ssh-krb5 target in debian/rules

  • drop update-alternatives from maintainer scripts.


CategoryEmdebian