diff --git a/yard/scripts/make_debian b/yard/scripts/make_debian index a44f7bd..6233c8d 100755 --- a/yard/scripts/make_debian +++ b/yard/scripts/make_debian @@ -28,40 +28,119 @@ close(SWIM); push(@required_files,@extra_files); -# This creates a tweaked runlevel.conf which is easier then trying to figure -# out which symlinks to use in /etc/rc?d. - - open(DEBIAN,">$template_dir/Debian-test.yard") or die "Couldn't open $?\n"; +open(FILERC,"/etc/runlevel.conf") or die "No runlevel.conf: $?\n"; +@filerc = ; +close(FILERC); print DEBIAN stuff(); - +my @file_rc; foreach (@required_files) { - if (-e && !-d) { + if (-e && !-d) { + if ($ARGV[0] eq "doc") { + print DEBIAN "$_\n"; + } + else { + if (! m,/usr/share/info|/usr/share/man|/usr/share/doc,) { print DEBIAN "$_\n"; + } } - + if (m,/etc/init\.d,) { + foreach my $filerc (@filerc) { + push(@file_rc,$filerc) if $filerc =~ /$_/; + } + } + } } close(DEBIAN); + +# This creates a tweaked runlevel.conf which is easier then trying to figure +# out which symlinks to use in /etc/rc?d. + +open(MY_FILERC,">$home_yard_replacements/etc/runlevel.conf") + or die "Couldn't open $home_yard_replacements/etc/runlevel.conf: $?\n"; +my @sortedrc = map { $_->[1] } +sort { $a->[0] <=> $b->[0] } +map { [ (split(/\s/,$_))[0], $_ ] } +@file_rc; +print MY_FILERC @sortedrc; +close(MY_FILERC); + sub stuff { + $stuff = << "STUFF"; -# This template creates a complete Debian system which is more streamlined than -# the base.tgz used for normal installations. Once everything is made, you can -# use user-mode-linux to tweak the system, as well as apt. make-debain -# generates all the information you need, you will need swim and file-rc -# installed, and you will have to be running a Debian system to make this -# template. +# This template creates a complete Debian system which is more streamlined +# than the base.tgz used for normal installations. Once everything is made, +# you can use user-mode-linux to tweak the system, as well as apt. +# Make-debian generates all the information you need, you will need swim and +# file-rc installed, and you will have to be running a Debian system to make +# this template. Make-debian ditches info, man, and doc files by default, +# use the "doc" option to make documentation. +# +# Note: Things slow down noticeably when the buffer gets too big in the +# verbosity box so consider closing it with the slider for faster generation. # The STUFF NEEDED in order for init to work. +/etc/runlevel.conf <= Replacements/etc/runlevel.conf +/etc/init.d/rc +/etc/init.d/rcS /etc/inittab <= Replacements/etc/inittab.debian /etc/default/rcS +# Stuff to save to return init to old state prior to file-rc +/etc/init.d/rc.links +/etc/init.d/rcS.links +/usr/sbin/update-rc.d.links -# The information needed so that dpkg can work. +# Important stuff +/etc/fstab <= ./Replacements/etc/fstab.new +/etc/passwd* +/etc/group* +# The information needed so that dpkg can work. +/var/lib/dpkg/diversions <= Replacements/var/lib/dpkg/diversions +/var/lib/dpkg/cmethopt +/var/lib/dpkg/lock +/var/lib/dpkg/status <= Replacements/var/lib/dpkg/status +/var/lib/dpkg/methods/disk +/var/lib/dpkg/methods/floppy +/var/lib/dpkg/methods/mnt +/var/lib/dpkg/info +/var/lib/dpkg/updates +/var/lib/dpkg/alternatives + +# Devices +/dev/MAKEDEV # a link +/dev/mem +/dev/kmem +/dev/null +/dev/zero +/dev/ram* +/dev/console +/dev/tty[0-9] +/dev/hd[abcd]* +/dev/ttyS[0-9] +/dev/fd0* +/dev/sd* +/dev/cdrom +/dev/modem +/dev/pts* +/dev/ptmx +/dev/initctl +/dev/urandom +/dev/ubd0 <= Replacements/dev/ubd0 + +# Empty directories +/mnt +/proc +/tmp +/var/tmp +/var/run +/var/lock +/var/log ## ALL the REQUIRED files generated by make-debian STUFF