aboutsummaryrefslogtreecommitdiffstats
path: root/msec.spec
Commit message (Expand)AuthorAgeFilesLines
...
* 0.31-1mdkFrederic Lepied2002-07-301-2/+16
* 0.30.2-1mdkFrederic Lepied2002-07-291-1/+4
* 0.30.1-1mdkFrederic Lepied2002-07-281-1/+4
* 0.30Frederic Lepied2002-07-271-1/+11
* 0.25-1mdkFrederic Lepied2002-07-041-1/+6
* 0.24-1mdkFrederic Lepied2002-06-271-1/+4
* 0.23-1mdkFrederic Lepied2002-05-311-1/+6
* 0.22-1mdkFrederic Lepied2002-05-291-1/+6
* 0.21-1mdkFrederic Lepied2002-04-191-2/+6
* 0.20-2mdkFrederic Lepied2002-03-271-1/+5
* 0.20-1mdkFrederic Lepied2002-03-261-2/+8
* 0.19-8mdkFrederic Lepied2002-03-091-1/+4
* 0.19-7mdkFrederic Lepied2002-03-081-1/+6
* 0.19-6mdkFrederic Lepied2002-03-061-1/+4
* 0.19-5mdkFrederic Lepied2002-03-041-2/+3
* msec.csh: "unhash" workaround for /usr/bin non-readable (msec 5) appliedPascal Rigaux2002-02-261-0/+4
* 0.19-4mdkFrederic Lepied2002-02-251-1/+7
* 0.19-3mdkFrederic Lepied2002-02-221-1/+10
* 0.19-2mdkFrederic Lepied2002-02-201-1/+5
* 0.19-1mdkFrederic Lepied2002-02-191-8/+19
* 0.18-6mdkFrederic Lepied2002-02-151-4/+10
* 0.18-5mdkFrederic Lepied2002-02-141-2/+8
* 0.18-4mdkFrederic Lepied2002-02-051-1/+5
* 0.18-3mdkFrederic Lepied2002-02-051-3/+13
* 0.18-2mdkFrederic Lepied2002-01-291-2/+20
* 0.18-1mdkFrederic Lepied2002-01-271-9/+16
* clean before installing and don't install init.sh man pages anymore.Frederic Lepied2002-01-221-6/+7
* 0.17-15mdkFrederic Lepied2002-01-221-2/+6
* 0.17-14mdkFrederic Lepied2002-01-211-1/+4
* 0.17-13mdkFrederic Lepied2002-01-211-4/+8
* 0.17Frederic Lepied2002-01-171-25/+80
* typo errorFlorin Grad2001-12-051-1/+1
* create the /etc/sysconfig/ directoryFlorin Grad2001-12-051-1/+2
* changelog for 4mdk and use %{_sysconfdir}/sysconfig/msec instead of %{_syscon...Florin Grad2001-12-051-2/+6
* 0.16-3mdkFrederic Lepied2001-12-021-0/+8
* 0.16-3mdk ChangelogFlorin Grad2001-11-301-0/+1
* update the changelog message in the 0.16-3mdkFlorin Grad2001-11-301-0/+1
* update the post messageFlorin Grad2001-11-301-1/+2
* create the entries for the %{_sysconfdir}/%{name} fileFlorin Grad2001-11-291-1/+1
* fix changelog for 3mdkFlorin Grad2001-11-291-1/+1
* 3mdkFlorin Grad2001-11-291-1/+6
* typo error in post scriptFlorin Grad2001-11-081-1/+1
* update post section and modify the changelogFlorin Grad2001-11-081-1/+25
* new versionFlorin Grad2001-11-081-4/+7
* 32 mdkFlorin Grad2001-11-081-1/+6
* make rpmlint happy and add Url tagFlorin Grad2001-11-071-2/+4
* Mandrake LinuxFlorin Grad2001-11-071-1/+1
* changelog enrtry in 31mdkFlorin Grad2001-11-071-0/+1
* changelog for 31mdkFlorin Grad2001-11-071-0/+1
* new modifsFlorin Grad2001-11-071-1/+5
pan>, $dev, $file) or return; } $dev; } sub find_compressed_image { my ($name) = @_; foreach (0..255) { my $dev = make("loop$_"); my ($file) = `losetup $dev 2>/dev/null` =~ m!\((.*?)\)! or return; $file =~ s!^/sysroot/!/!; basename($file) eq $name and return $dev, $file; } undef; } sub get_dynamic_major { my ($name) = @_; cat_('/proc/devices') =~ /^(\d+) \Q$name\E$/m && $1; } sub init_device_mapper() { require modules; eval { modules::load('dm-mod') }; make('urandom'); my $control = '/dev/mapper/control'; if (! -e $control) { my ($major) = get_dynamic_major('misc') or return; my ($minor) = cat_('/proc/misc') =~ /(\d+) device-mapper$/m or return; mkdir_p(dirname($control)); syscall_('mknod', $control, c::S_IFCHR() | 0600, makedev($major, $minor)) or die "mknod $control failed: $!"; } } sub entry { my ($type, $major, $minor); local ($_) = @_; if (/^0x([\da-f]{3,4})$/i) { $type = c::S_IFBLK(); ($major, $minor) = unmakedev(hex $1); } elsif (/^ram(.*)/) { $type = c::S_IFBLK(); $major = 1; $minor = $1 eq '' ? 1 : $1; } elsif (m|^rd/c(\d+)d(\d+)(p(\d+))?|) { # dac 960 "rd/cXdXXpX" $type = c::S_IFBLK(); $major = 48 + $1; $minor = 8 * $2 + $4; } elsif (m,(ida|cciss)/c(\d+)d(\d+)(?:p(\d+))?,) { # Compaq Smart Array "ida/c0d0{p1}" $type = c::S_IFBLK(); $major = ($1 eq 'ida' ? 72 : 104) + $2; $minor = 16 * $3 + ($4 || 0); } elsif (m,(ataraid)/d(\d+)(?:p(\d+))?,) { # ATA raid "ataraid/d0{p1}" $type = c::S_IFBLK(); $major = 114; $minor = 16 * $1 + ($2 || 0); } elsif (my ($prefix, $nb) = /(.*?)(\d+)$/) { my $f = ${{"fd" => sub { c::S_IFBLK(), 2, 0 }, "hidbp-mse-" => sub { c::S_IFCHR(), 10, 32 }, "lp" => sub { c::S_IFCHR(), 6, 0 }, "usb/lp" => sub { c::S_IFCHR(), 180, 0 }, "input/event" => sub { c::S_IFCHR(), 13, 64 }, "loop" => sub { c::S_IFBLK(), 7, 0 }, "md" => sub { c::S_IFBLK(), 9, 0 }, "nst" => sub { c::S_IFCHR(), 9, 128 }, "sr" => sub { c::S_IFBLK(), 11, 0 }, "tty" => sub { c::S_IFCHR(), 4, 0 }, "ttyS" => sub { c::S_IFCHR(), 4, 64 }, "ubd/" => sub { c::S_IFBLK(), 98, 0 }, "dm-" => sub { c::S_IFBLK(), get_dynamic_major('device-mapper'), 0 }, }}{$prefix}; if ($f) { ($type, $major, $minor) = $f->(); $minor += $nb; } } unless ($type) { ($type, $major, $minor) = @{ ${{"aztcd" => [ c::S_IFBLK(), 29, 0 ], "bpcd" => [ c::S_IFBLK(), 41, 0 ], "cdu31a" => [ c::S_IFBLK(), 15, 0 ], "cdu535" => [ c::S_IFBLK(), 24, 0 ], "cm206cd" => [ c::S_IFBLK(), 32, 0 ], "gscd" => [ c::S_IFBLK(), 16, 0 ], "mcd" => [ c::S_IFBLK(), 23, 0 ], "mcdx" => [ c::S_IFBLK(), 20, 0 ], "mem" => [ c::S_IFCHR(), 1, 1 ], "optcd" => [ c::S_IFBLK(), 17, 0 ], "kbd" => [ c::S_IFCHR(), 11, 0 ], "psaux" => [ c::S_IFCHR(), 10, 1 ], "atibm" => [ c::S_IFCHR(), 10, 3 ], "random" => [ c::S_IFCHR(), 1, 8 ], "urandom" => [ c::S_IFCHR(), 1, 9 ], "sbpcd" => [ c::S_IFBLK(), 25, 0 ], "sjcd" => [ c::S_IFBLK(), 18, 0 ], "tty" => [ c::S_IFCHR(), 5, 0 ], "input/mice" => [ c::S_IFCHR(), 13, 63 ], "adbmouse" => [ c::S_IFCHR(), 10, 10 ], #- PPC "vcsa" => [ c::S_IFCHR(), 7, 128 ], "zero" => [ c::S_IFCHR(), 1, 5 ], "null" => [ c::S_IFCHR(), 1, 3 ], "initrd" => [ c::S_IFBLK(), 1, 250 ], "console" => [ c::S_IFCHR(), 5, 1 ], "systty" => [ c::S_IFCHR(), 4, 0 ], "lvm" => [ c::S_IFBLK(), 109, 0 ], }}{$_} || [] }; } # Lookup non listed devices in /sys unless ($type) { my $sysdev; if (m!input/(.*)! && -e "/sys/class/input/$1/dev") { $sysdev = "/sys/class/input/$1/dev"; $type = c::S_IFCHR(); } elsif (-e "/sys/block/$_/dev") { $sysdev = "/sys/block/$_/dev"; $type = c::S_IFBLK(); } elsif (/^(.+)(\d+)$/ && -e "/sys/block/$1/$_/dev") { $sysdev = "/sys/block/$1/$_/dev"; $type = c::S_IFBLK(); } ($major, $minor) = split(':', chomp_(cat_($sysdev))); } # Lookup partitions in /proc/partitions in case /sys was not available unless ($type) { if (-e "/proc/partitions") { if (cat_("/proc/partitions") =~ /^\s*(\d+)\s+(\d+)\s+\d+\s+$_$/m) { ($major, $minor) = ($1, $2); $type = c::S_IFBLK(); } } } # Try to access directly the device # Now device mapper devices are links and do not appear in /proc or /sys unless ($type) { if (-e "/dev/$_") { my (undef, undef, $mode, undef, undef, undef, $rdev, undef) = stat("/dev/$_"); ($major, $minor) = unmakedev($rdev); $type = $mode & c::S_IFMT(); } } $type or internal_error("unknown device $_"); ($type, $major, $minor); } sub make($) { local $_ = my $file = $_[0]; if (m!^(.*/dev)/(.*)!) { $_ = $2; } else { $file =~ m|^/| && -e $file or $file = "/dev/$_"; } -e $file and return $file; #- assume nobody takes fun at creating files named as device my ($type, $major, $minor) = entry($_); #- make a directory for this inode if needed. mkdir_p(dirname($file)); syscall_('mknod', $file, $type | 0600, makedev($major, $minor)) or do { die "mknod failed (dev $_): $!" if ! -e $file; # we may have raced with udev }; $file; } sub simple_partition_scan { my ($part) = @_;