Differences between revisions 1 and 25 (spanning 24 versions)
Revision 1 as of 2009-06-07 09:29:12
Size: 258
Editor: NeilWilliams
Comment:
Revision 25 as of 2009-07-10 20:40:39
Size: 5584
Editor: NeilWilliams
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

== RPATH ==

See [[Bug:367115]] and [[Bug:484277]] for details. Also, EmdebianAuditRpath for information on
work-in-progress and affected packages.

== maintainer scripts ==

The only real way of handling maintainer script changes is to implement an no-op wrapper via {{{emsandbox}}} from the [[DebPkg:emdebian-rootfs]] package or by creating suitable wrappers using [[DebPkg: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 [[DebPkg: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.
Line 7: Line 59:

== atk1.0 ==

 * Need to disable the documentation generation as it tries to execute internal compiled binaries in the scan process.

== 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.

== base-files ==

 * Drop the Pre-Depends on awk - TODO: might not be necessary anymore.
 * Compress the licence texts and update the symlinks.

== 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

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.

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

  • drop dependency on debian-archive-keyring - not used in Emdebian.

    • TODO: assess whether this change can be dropped, the original reason was the extra dependency on gnupg.

atk1.0

  • Need to disable the documentation generation as it tries to execute internal compiled binaries in the scan process.

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.

base-files

  • Drop the Pre-Depends on awk - TODO: might not be necessary anymore.
  • Compress the licence texts and update the symlinks.

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