= Details of the changes in the EmdebianCodeAudit = == RPATH == See [[Bug:367115]] and [[Bug: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 [[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. == apt == * Originally related to dropping the dependency on [[DebPkg: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 - Crush will simply provide an empty script. * Needs vendor support to implement changes in configure arguments. Problem will be matching these switches to the xcontrol support. A new source package, avahi-crush could be implemented to solve these problems. * 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. Tests are needed to work out the best way to handle all the problems together. == 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