Future Plans: * Check on file ownership and modes. * Make oh-strip obey a missing '-l' option. * Package signing. [1] * Calculate "Installed-Size" field values. [2] * Compress documentation files. [3] * Write an 'opkcreate' script like dh_make to create a new source package. * Control field variables/macros (e.g. package version) * Build platform-specific binary packages only when really necessary. [4] * Support package relationship variables in control files. * Support versioned build dependencies. * Maybe support "--with-PACKAGE" options, e.g. "--with-shell=/bin/bash" * Write a tool similar to debhelper's oh_auto_configure. Notes: 1: Requires opkg to be built with GnuPG and GPGME. 2: There is an inconsistency between the Debian Policy and opkg in the units of this field. The Debian Policy defines this field in units of kibibytes: The disk space is given as the integer value of the estimated installed size in bytes, divided by 1024 and rounded up. However, opkg apparently attempts to convert this value from bytes to kibibytes in its determination of whether the package's data will fit on the system: pkg_size_kbs = (pkg->installed_size + 1023)/1024; For now, we'll omit this field (as a result, opkg simply won't make sure there is enough free space). 3: Follow the model of debhelper's dh_compress. 4: Currently, if a source package contains a file named 'config', all of its binary packages are built for the target platform architecture. For example, the 'opkg' source package installs platform configuration for the 'opkg' binary package; as a result, even 'libopkg.1' and 'libopkg.1-dbg' (though not 'libopkg.1-dev', which is built for the "all" architecture) are built for the target platform architecture. This problem is minor, since it will only bloat package archives with functionally identical binary packages and will not affect managed systems. A solution to this issue is to separate build-time and run-time configuration files into different lists in the source package format. Build-time configuration files would be listed in a file named 'config' in the package root (as they are now), and run-time configuration files would be listed in 'config' files in binary package metadata directories (e.g. 'opkg.pkg/config' in the case of 'opkg'). Then, opkhelper will build each binary package for the target platform only if there are build-time configuration files for the source package or there are run-time configuration files for the binary package.