On Thu, 2008-07-31 at 10:21 -0300, Herbert P Fortes Neto wrote: > Hi, > > > Busybox for example. What is in emdebian-control.patch: > > > > > > -Conflicts: busybox-static > > > +Conflicts: busybox-static, sysv-rc, coreutils Reasons: 1. sysv-rc contains update-rc.d which is a perl script. 2. sysv-rc replaces any shell version of update-rc.d put into place by the emdebian-rootfs scripts (albeit that this script, until v. recently was a simple: #!/bin/sh exit 0; You could do worse than implement this to replace the perl version (and make it executable). 3. This is a bug in emdebian-rootfs (even in 1.4.2) - not all the suite scripts have been updated to remove sysv-rc. I've filed the bug, awaiting the number. > > > > > > I changed Conflicts field to have sysv-rc. > Why? The scripts in sysv-rc are perl and busybox doesn't support > > runlevels so you don't need all the rc[0-9].d directories. > > > What is in busybox.old/debian/control file > > Package: busybox > Architecture: any > Depends: ${shlibs:Depends} > Conflicts: busybox-static > Replaces: busybox-static Which is the Debian config that relies on having perl, coreutils and a configuration for busybox that prevents you using it as the main shell of the installation and only supports local testing. That config simply will not work for Emdebian - the busybox with that config will not allow you to boot or login. > :/# dpkg -l | grep busy > ii busybox 1:1.10.2-1em2.1 Tiny utilities for small and embedded system > cliente:/# dpkg -l | grep sysv > ii sysv-rc 2.86.ds1-60em1.1 System-V-like runlevel change mechanism The right option here is to remove sysv-rc and replace update-rc.d. The solution is never to select sysv-rc in the first place. This has changed during development and the current suite scripts in emdebian-rootfs were updated a long time ago. (Well, long time is relative - things can change quickly around here.) :-) Unfortunately, I didn't update all the suite scripts, only the Gtk and GPE ones. Sorry about that. > Conflicts: busybox-static, coreutils, sysv-rc > Description: Tiny utilities for small and embedded systems > > The following packages have unmet dependencies: > busybox: Conflicts: sysv-rc but 2.86.ds1-60em1.1 is to be installed > E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a s > olution). > > :/# apt-get -f install > Reading package lists... Done > Building dependency tree... Done > Correcting dependencies... Done > The following packages will be REMOVED: > sysv-rc > 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. > After this operation, 258kB disk space will be freed. > Do you want to continue [Y/n]? > Can not write log, openpty() failed (/dev/pts not mounted?) > (Reading database ... 3245 files and directories currently installed.) > Removing sysv-rc ... > cliente:/# > > :/# apt-get install dropbear > Reading package lists... Done > Building dependency tree > Reading state information... Done > Suggested packages: > openssh-client runit > The following NEW packages will be installed: > dropbear > 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. > Need to get 213kB of archives. > After this operation, 541kB of additional disk space will be used. > WARNING: The following packages cannot be authenticated! > dropbear > Install these packages without verification [y/N]? y > Get:1 http://192.168.1.3 unstable/main dropbear 0.51-1 [213kB] > Fetched 213kB in 0s (3737kB/s) > Can not write log, openpty() failed (/dev/pts not mounted?) > dpkg: `update-rc.d' not found on PATH. <<< here the problem Yes, and it has only just been solved - with thanks to Phil Hands here at DebConf. However, /dev/pts should have been mounted too - your config needs some adaptation (/etc/inittab?). Which version of emdebian-tools do you have installed? I'll be releasing 1.4.3 to Emdebian unstable fairly soon. You should be using 1.4.2. Don't be afraid to create updated emsandbox tarballs and reinstall - until Emdebian is in a state to be released, there will remain the need to refresh many installations. > :/# apt-get install sysv-rc That won't fix the problem. The update-rc.d in sysv-rc is a perl script and would simply fail to run - it is no better than not having an update-rc.d in the first place. I'm hoping to get these changes into Lenny but the empty script workaround does work as long as sysv-rc is never installed (which is what the Conflicts: in busybox was intended to achieve). > I had to do that to be possible to install other packages. No, you did not need to put sysv-rc back - it only makes things worse. > If I remove sysv-rc to solve conflict of busybox, no packages > gets installed. I understand what you say about sysv-rc , but > this is what happend and I do not have a 'because'. Installing sysv-rc (despite the Conflicts:) took out the workaround that already existed but as this was a workaround and the shell version was put into the rootfilesystem pending a proper shell version (that Phil and I have since written), the workaround was not part of a package and therefore dpkg did not prevent sysv-rc overwriting it. Normally this would not be a problem because svsv-rc Conflicts with busybox and that should have been sufficient to prevent your situation. The new update-rc.d is put in place by emsandbox (if one does not already exist from another package), e.g. your machine:variant customisation package. Depending on how well it works, I might add it to busybox or another package. It's not sufficiently intelligent to be a shell replacement for update-rc.d in Debian (it does almost no error checking) - making it suitable for submission to Debian is left as an exercise for the reader. :-( > What do I have to do to check this? Never install sysv-rc again and don't worry about whether and how update-rc.d runs or operates - just create a no-op that has executable permissions and let other packages install. Until the latest changes get into the emdebian-rootfs package, you will have to manage the symlinks in /etc/rc.d/ manually (they were originally created within the root filesystem by emsandbox but this method has been superceded by the functional update-rc.d support currently being tested). If you really want a functional update-rc.d, note that it has not been fully tested and will only operate when packages are installed so old links will not be updated. You can get the shell version from Emdebian SVN (emdebian-tools/pbuilder). -- 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