On Thu, 2008-08-21 at 10:03 +0200, Marc 'HE' Brockschmidt wrote: > Neil Williams <codehelp@debian.org> writes: > > * two suite scripts force installation of conflicting packages > > (Closes: #494622) fix by dropping sysv-rc. Therefore complete the > > implementation of the replacement for the perl update-rc.d script > > from sysv-rc in shell across all suite scripts: r4711. Ensure > > /etc/rc.d/ exists for shell update-rc.d support: r4699. Implement > > shell replacement for update-rc.d: r4677 (this was the commit that > > omitted to make the change across all suite scripts, requiring r4711). > > I'm not exactly sure where this shell-version is used, could you please > explain a bit about that? Only in an Emdebian installation and only if the developer does not provide a better alternative. Any Emdebian installation can be customised by adding a custom package that drops in replacements for such files during the generation of the root filesystem. Emdebian has a list of "basic files" that can be used as fallbacks if no package creates them - the various files can be added or removed by using customised suite scripts. > It's fairly incomplete, and some of the > standard constructs of the perl version aren't supported (specifying > stop before start, it doesn't implements safeguards against adding the > same script with several sequence numbers, ...) Let's be honest here, it is very incomplete - skeletal is the intention here, every Kb matters. ;-) ("small is good, tiny is better, absolute-bare-bones is ideal") So, yes, that is deliberate - the safeguards are dropped for reasons of speed of processing and code simplicity. In the end, Emdebian just does not need the extra code - the more rigorous testing within Debian means that any Emdebian default can afford to be simpler, whenever the full Debian version cannot be supported. Phil Hands and I worked on it at DebConf8 with the deliberate intention of making it as small and feature-poor as possible without breaking the packages we actually use. All I need from the shell replacement is the ability to create some symlinks that approximate to what might happen if Debian was to be created without runlevel support. I'll have to see whether stop before start is relevant to an embedded device - and actually deployed in any packages that Emdebian cares about - but thanks for the tip. This bug was about providing a replacement for the perl script because the perl code simply cannot be run on an Emdebian device so installations would break completely. We experimented with a no-op shell script and manually specified symlinks (those are the symlink_rcS subroutine calls removed from the suite scripts in the same revisions) but in the end the solution was to have the absolute minimum number of features from the perl version so that we could still use the maintainer scripts of the packages we actually use (700 binaries out of the 20,000 in Debian) but coerce them into working with a single runlevel and minimal update-rc.d (and invoke-rc.d) support. Simply removing the sysv-rc conflict was not a solution because the installation would simply break. Trying to implement the safeguards of the perl script within the shell replacement was impractical and largely pointless for the package subset that we actually use. There is no intention to implement the shell version outside Emdebian or try to include it in any non-embedded installation. -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
Attachment:
signature.asc
Description: This is a digitally signed message part