diff --git a/debian/multistrap.install b/debian/multistrap.install index 115a965..7a23b97 100644 --- a/debian/multistrap.install +++ b/debian/multistrap.install @@ -1,13 +1,14 @@ multistrap ./usr/sbin/ doc/multistrap/man/* ./usr/share/man/ +examples/device_table.txt ./usr/share/doc/multistrap/examples/ examples/multistrap-example.conf ./usr/share/doc/multistrap/examples/ examples/sid.conf ./usr/share/multistrap/ examples/squeeze.conf ./usr/share/multistrap/ examples/lenny.conf ./usr/share/multistrap/ examples/setup.sh ./usr/share/doc/multistrap/examples/ examples/config.sh ./usr/share/doc/multistrap/examples/ -update-rc.d ./usr/share/multistrap/ check-deps.sh ./usr/share/multistrap/ device-table.pl ./usr/share/multistrap/ +update-rc.d ./usr/share/multistrap/ crosschroot.conf ./usr/share/multistrap/ bash/multistrap ./etc/bash_completion.d/ diff --git a/debian/rules b/debian/rules index 80d5c51..2e1989b 100755 --- a/debian/rules +++ b/debian/rules @@ -7,4 +7,4 @@ include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/rules/simple-patchsys.mk DEB_MAKE_INSTALL_TARGET=install - +DEB_COMPRESS_EXCLUDE := device_table.txt diff --git a/device-table.pl b/device-table.pl index 58b4e5d..d21b476 100755 --- a/device-table.pl +++ b/device-table.pl @@ -17,6 +17,7 @@ use strict; use warnings; +use File::Basename; use POSIX qw(locale_h); use Locale::gettext; use vars qw/ @list @seq $file $dir $line @cmd $i $dry @@ -32,6 +33,8 @@ $ourversion = &our_version(); # default file from mtd-utils. $file = "/usr/share/multistrap/device-table.txt"; $dir = `pwd`; +chomp ($dir); +$dir .= "/tmp/"; $fakeroot = "fakeroot"; while( @ARGV ) { @@ -64,11 +67,10 @@ while( @ARGV ) { $msg = sprintf (_g("Need a configuration file - use %s -f\n"), $progname); die ($msg) - if (-f $file); + if (not -f $file); -my $ret = mkdir ("$dir") if (not -d "$dir"); -die ("Unable to create directory '$dir'\n") - if ($ret == 0); +my $ret = 0; +$ret = mkdir ("$dir") if (not -d "$dir"); $dir = `realpath $dir`; chomp ($dir); $dir .= ($dir =~ m:/$:) ? '' : "/"; @@ -116,6 +118,19 @@ sub our_version { (defined $query) ? return $query : return "0.0.9"; } +sub usageversion { + printf STDERR (_g(" +%s version %s + + %s [-d DIR] [-f FILE] + %s -?|-h|--help|--version +"), $progname, $ourversion, $progname, $progname); +} + +sub _g { + return gettext(shift); +} + =pod =head1 Name diff --git a/examples/device_table.txt b/examples/device_table.txt new file mode 100644 index 0000000..74fdc56 --- /dev/null +++ b/examples/device_table.txt @@ -0,0 +1,129 @@ +# This is a sample device table file for use with mkfs.jffs2. You can +# do all sorts of interesting things with a device table file. For +# example, if you want to adjust the permissions on a particular file +# you can just add an entry like: +# /sbin/foobar f 2755 0 0 - - - - - +# and (assuming the file /sbin/foobar exists) it will be made setuid +# root (regardless of what its permissions are on the host filesystem. +# +# Device table entries take the form of: +# +# where name is the file name, type can be one of: +# f A regular file +# d Directory +# c Character special device file +# b Block special device file +# p Fifo (named pipe) +# uid is the user id for the target file, gid is the group id for the +# target file. The rest of the entried apply only to device special +# file. + +# When building a target filesystem, it is desirable to not have to +# become root and then run 'mknod' a thousand times. Using a device +# table you can create device nodes and directories "on the fly". +# Furthermore, you can use a single table entry to create a many device +# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15] +# I could just use the following two table entries: +# /dev/hda b 640 0 0 3 0 0 0 - +# /dev/hda b 640 0 0 3 1 1 1 15 +# +# Have fun +# -Erik Andersen +# + +# +/dev d 755 0 0 - - - - - +/dev/mem c 640 0 0 1 1 0 0 - +/dev/kmem c 640 0 0 1 2 0 0 - +/dev/null c 640 0 0 1 3 0 0 - +/dev/zero c 640 0 0 1 5 0 0 - +/dev/random c 640 0 0 1 8 0 0 - +/dev/urandom c 640 0 0 1 9 0 0 - +/dev/tty c 666 0 0 5 0 0 0 - +/dev/tty c 666 0 0 4 0 0 1 6 +/dev/console c 640 0 0 5 1 0 0 - +/dev/ram b 640 0 0 1 1 0 0 - +/dev/ram b 640 0 0 1 0 0 1 4 +/dev/loop b 640 0 0 7 0 0 1 2 +/dev/ptmx c 666 0 0 5 2 0 0 - +#/dev/ttyS c 640 0 0 4 64 0 1 4 +#/dev/psaux c 640 0 0 10 1 0 0 - +#/dev/rtc c 640 0 0 10 135 0 0 - + +# Adjust permissions on some normal files +#/etc/shadow f 600 0 0 - - - - - +#/bin/tinylogin f 4755 0 0 - - - - - + +# User-mode Linux stuff +/dev/ubda b 640 0 0 98 0 0 0 - +/dev/ubda b 640 0 0 98 1 1 1 15 + +# IDE Devices +/dev/hda b 640 0 0 3 0 0 0 - +/dev/hda b 640 0 0 3 1 1 1 15 +/dev/hdb b 640 0 0 3 64 0 0 - +/dev/hdb b 640 0 0 3 65 1 1 15 +#/dev/hdc b 640 0 0 22 0 0 0 - +#/dev/hdc b 640 0 0 22 1 1 1 15 +#/dev/hdd b 640 0 0 22 64 0 0 - +#/dev/hdd b 640 0 0 22 65 1 1 15 +#/dev/hde b 640 0 0 33 0 0 0 - +#/dev/hde b 640 0 0 33 1 1 1 15 +#/dev/hdf b 640 0 0 33 64 0 0 - +#/dev/hdf b 640 0 0 33 65 1 1 15 +#/dev/hdg b 640 0 0 34 0 0 0 - +#/dev/hdg b 640 0 0 34 1 1 1 15 +#/dev/hdh b 640 0 0 34 64 0 0 - +#/dev/hdh b 640 0 0 34 65 1 1 15 + +# SCSI Devices +#/dev/sda b 640 0 0 8 0 0 0 - +#/dev/sda b 640 0 0 8 1 1 1 15 +#/dev/sdb b 640 0 0 8 16 0 0 - +#/dev/sdb b 640 0 0 8 17 1 1 15 +#/dev/sdc b 640 0 0 8 32 0 0 - +#/dev/sdc b 640 0 0 8 33 1 1 15 +#/dev/sdd b 640 0 0 8 48 0 0 - +#/dev/sdd b 640 0 0 8 49 1 1 15 +#/dev/sde b 640 0 0 8 64 0 0 - +#/dev/sde b 640 0 0 8 65 1 1 15 +#/dev/sdf b 640 0 0 8 80 0 0 - +#/dev/sdf b 640 0 0 8 81 1 1 15 +#/dev/sdg b 640 0 0 8 96 0 0 - +#/dev/sdg b 640 0 0 8 97 1 1 15 +#/dev/sdh b 640 0 0 8 112 0 0 - +#/dev/sdh b 640 0 0 8 113 1 1 15 +#/dev/sg c 640 0 0 21 0 0 1 15 +#/dev/scd b 640 0 0 11 0 0 1 15 +#/dev/st c 640 0 0 9 0 0 1 8 +#/dev/nst c 640 0 0 9 128 0 1 8 +#/dev/st c 640 0 0 9 32 1 1 4 +#/dev/st c 640 0 0 9 64 1 1 4 +#/dev/st c 640 0 0 9 96 1 1 4 + +# Floppy disk devices +#/dev/fd b 640 0 0 2 0 0 1 2 +#/dev/fd0d360 b 640 0 0 2 4 0 0 - +#/dev/fd1d360 b 640 0 0 2 5 0 0 - +#/dev/fd0h1200 b 640 0 0 2 8 0 0 - +#/dev/fd1h1200 b 640 0 0 2 9 0 0 - +#/dev/fd0u1440 b 640 0 0 2 28 0 0 - +#/dev/fd1u1440 b 640 0 0 2 29 0 0 - +#/dev/fd0u2880 b 640 0 0 2 32 0 0 - +#/dev/fd1u2880 b 640 0 0 2 33 0 0 - + +# All the proprietary cdrom devices in the world +#/dev/aztcd b 640 0 0 29 0 0 0 - +#/dev/bpcd b 640 0 0 41 0 0 0 - +#/dev/capi20 c 640 0 0 68 0 0 1 2 +#/dev/cdu31a b 640 0 0 15 0 0 0 - +#/dev/cdu535 b 640 0 0 24 0 0 0 - +#/dev/cm206cd b 640 0 0 32 0 0 0 - +#/dev/sjcd b 640 0 0 18 0 0 0 - +#/dev/sonycd b 640 0 0 15 0 0 0 - +#/dev/gscd b 640 0 0 16 0 0 0 - +#/dev/sbpcd b 640 0 0 25 0 0 0 - +#/dev/sbpcd b 640 0 0 25 0 0 1 4 +#/dev/mcd b 640 0 0 23 0 0 0 - +#/dev/optcd b 640 0 0 17 0 0 0 - + diff --git a/examples/lenny.conf b/examples/lenny.conf index bbecf9a..07bb95d 100644 --- a/examples/lenny.conf +++ b/examples/lenny.conf @@ -17,8 +17,8 @@ unpack=true debootstrap=Debian aptsources=Debian -[Debian] -packages= -source=http://ftp.uk.debian.org/debian -keyring=debian-archive-keyring -suite=lenny +[Debian] +packages= +source=http://ftp.uk.debian.org/debian +keyring=debian-archive-keyring +suite=lenny diff --git a/examples/sid.conf b/examples/sid.conf index 6fab776..3a89843 100644 --- a/examples/sid.conf +++ b/examples/sid.conf @@ -17,8 +17,8 @@ unpack=true debootstrap=Debian aptsources=Debian -[Debian] -packages= -source=http://ftp.uk.debian.org/debian -keyring=debian-archive-keyring +[Debian] +packages= +source=http://ftp.uk.debian.org/debian +keyring=debian-archive-keyring suite=sid diff --git a/examples/squeeze.conf b/examples/squeeze.conf index e825d14..007bf03 100644 --- a/examples/squeeze.conf +++ b/examples/squeeze.conf @@ -17,8 +17,8 @@ unpack=true debootstrap=Debian aptsources=Debian -[Debian] -packages= -source=http://ftp.uk.debian.org/debian -keyring=debian-archive-keyring +[Debian] +packages= +source=http://ftp.uk.debian.org/debian +keyring=debian-archive-keyring suite=squeeze