summaryrefslogtreecommitdiffstats
path: root/perl-install/install_steps_interactive.pm
Commit message (Collapse)AuthorAgeFilesLines
* fix bootstrap information screen back to orig with missing ":" - PPCStew Benedict2001-05-251-1/+1
|
* add hfs support to rescue - PPC, fix bootstrap creation, formatting sequenceStew Benedict2001-05-251-18/+18
|
* added support for NVIDIA 3D acceleration.Francois Pons2001-04-251-1/+4
|
* fixed missing mouse update in summary.Francois Pons2001-04-171-1/+1
|
* (setRootPassword): better ensure 'broadcast' insteaf of overridingPascal Rigaux2001-04-171-1/+1
|
* (setRootPassword): set NIS to broadcast when NIS asked. Empty NIS still ↵Pascal Rigaux2001-04-171-5/+8
| | | | means no NIS
* (exitInstall): fix bad i18n of Replay button (thx2submarine)Pascal Rigaux2001-04-141-1/+1
|
* (configureX): fix link /etc/gtk (to /mnt/etc/gtk) instead of /etc/gtkrcPascal Rigaux2001-04-141-1/+1
|
* (addUser): remove the setting of $o->{autologin}, now done in any::autologinPascal Rigaux2001-04-131-3/+0
|
* added conditional update-menus if package are installed.Francois Pons2001-04-131-4/+2
|
* make sure update-menus is called after installing cups related packages.Francois Pons2001-04-131-2/+7
|
* removed Cancel of Summary.Francois Pons2001-04-121-2/+4
|
* fixed ask printer configuration.Francois Pons2001-04-121-10/+7
|
* (configureX): fix for X test at install with exotic fontsPascal Rigaux2001-04-121-3/+2
|
* (chooseGroups): warn if chosen size is too bigPascal Rigaux2001-04-111-6/+12
|
* translate the ``path'' in profile selectionPascal Rigaux2001-04-111-1/+1
|
* fixed selection of CDs.Francois Pons2001-04-101-3/+3
|
* fixed typo for cups checking of installation.Francois Pons2001-04-061-2/+2
|
* fixed "No printer" after configuring cups for remove server.Francois Pons2001-04-061-3/+7
| | | | | added log for CD medium chosen par user.
* (addUser): default autologin to first user in beginnerPascal Rigaux2001-04-051-0/+3
|
* ask for autologinPascal Rigaux2001-04-051-4/+3
|
* (generateAutoInstFloppy): do not use $o->{pcmcia} to know if pcmcia.imgPascal Rigaux2001-04-051-1/+1
| | | | | was used. Better have a look at /proc/cmdline
* - move report_bug in install_anyPascal Rigaux2001-04-051-2/+2
| | | | | - g_auto_install generates the auto_inst.cfg string without output'ing it
* fixed printer description in summary.Francois Pons2001-04-041-1/+13
|
* PPC keyboard/mouse button emulationStew Benedict2001-04-031-1/+11
|
* (choosePackages): do not make a special case for upgrades (was: select thePascal Rigaux2001-04-031-4/+0
| | | | | min size, which was on contradiction with profile selection)
* (chooseGroups): simplified, more complex version in install_steps_gtkPascal Rigaux2001-03-291-13/+8
| | | | | (configurePrinter): fix the inverted condition for installing xpp/kups
* (reallyChooseGroups): created from chooseGroups so that it can bePascal Rigaux2001-03-291-16/+28
| | | | | overridden in install_steps_gtk
* change verbage on bootloader warningStew Benedict2001-03-271-1/+1
|
* warnAboutNaughtyServersPascal Rigaux2001-03-271-0/+2
|
* (summary): fix displaying of printer configuredPascal Rigaux2001-03-271-1/+1
|
* (configurePrinter): add Mesa-common for xpp and libqtcups2 for kups inPascal Rigaux2001-03-251-1/+1
| | | | | pkg_install_if_requires_satisfied
* (exitInstall): no "cancel" buttonPascal Rigaux2001-03-231-4/+4
|
* (generateAutoInstFloppy): fix the message which was uptodate only forPascal Rigaux2001-03-221-1/+2
| | | | | sparc :-(
* (summary): fixPascal Rigaux2001-03-211-2/+2
|
* make_boot_img: add routine for - PPCStew Benedict2001-03-201-1/+1
| | | | | | | any.pm: double "Append" entry in expert mode for yaboot.conf - PPC install_steps_interactive: setup dmasound - PPC modules.pm: load Mac hardware modules - PPC
* fix pcmcia functions only on x86Pascal Rigaux2001-03-201-1/+1
|
* - create install_any::unselectMostPackagesPascal Rigaux2001-03-201-2/+2
| | | | | - use it instead of pkgs::unselectAllPackages (otherwise default_packages ends up non-selected)
* (setupSCSI): don't pcmcia_probe if testingPascal Rigaux2001-03-201-1/+1
|
* - tellAboutProprietaryModules moved to setupSCSIPascal Rigaux2001-03-201-41/+16
| | | | | | - miscellaneous step re-enabled, called Security - pcmcia_probe moved to setupSCSI, skipped in noauto
* (chooseGroups):Pascal Rigaux2001-03-191-6/+24
| | | | | | - make the computed size work - unselectAll when a profile is unselected
* bootloader.pm, detect_devices.pm, install_steps_interactive.pm: changed ↵Stew Benedict2001-03-151-6/+2
| | | | temporary file read/write per Pixel
* fix bootstrap partition creation/trackingStew Benedict2001-03-141-1/+13
| | | | | allow Xpmac to launch in 2 modes based on cmdline
* (chooseGroups): disable the size display as it is wrong (for the beta2)Pascal Rigaux2001-03-141-2/+2
|
* (chooseGroups): add path for seperating groups, use "label" for the group textPascal Rigaux2001-03-141-4/+8
|
* completed language listPablo Saratxaga2001-03-141-6/+7
| | | | | | | completed language->keyboard guessing list aesthetic changes to an English message (removed \n and let gtk+ do the formatting, it is nicer)
* compss is deprecated. use compssUsers for the treePascal Rigaux2001-03-131-3/+3
|
* (chooseGroups): fix to get back the iconsPascal Rigaux2001-03-131-1/+1
|
* (chooseGroups): size computed should workPascal Rigaux2001-03-131-21/+34
|
* (summary): remove 'clicked' (labels are used)Pascal Rigaux2001-03-121-5/+5
|
ss="hl opt">, my $_a = $_[0], $mode | 0600, makedev($_[2], $_[3])) or die "mknod failed: $!\n"; } else { die "usage: mknod <path> [b|c] <major> <minor> or mknod <path>\n" } } sub ln { my ($force, $soft) = getopts(\@_, qw(fs)); @_ >= 1 or die "usage: ln [-s] [-f] <source> [<dest>]\n"; my ($source, $dest) = @_; $dest ||= basename($source); $force and unlink $dest; ($soft ? symlink($source, $dest) : link($source, $dest)) or die "ln failed: $!\n"; } sub rm { my ($rec, undef) = getopts(\@_, qw(rf)); my $rm; $rm = sub { foreach (@_) { if (!-l $_ && -d $_) { $rec or die "$_ is a directory\n"; &$rm(glob_($_)); rmdir $_ or die "can not remove directory $_: $!\n"; } else { unlink $_ or die "rm of $_ failed: $!\n" } } }; &$rm(@_); } sub chmod_ { @_ >= 2 or die "usage: chmod <mode> <files>\n"; my $mode = shift; $mode =~ /^[0-7]+$/ or die "illegal mode $mode\n"; foreach (@_) { chmod oct($mode), $_ or die "chmod failed $_: $!\n" } } sub chown_ { my ($rec, undef) = getopts(\@_, qw(r)); local $_ = shift or die "usage: chown [-r] name[.group] <files>\n"; my ($name, $group) = (split('\.'), $_); my ($uid, $gid) = (getpwnam($name) || $name, getgrnam($group) || $group); my $chown; $chown = sub { foreach (@_) { chown $uid, $gid, $_ or die "chown of file $_ failed: $!\n"; -d $_ && $rec and &$chown(glob_($_)); } }; &$chown(@_); } sub swapon { @_ == 1 or die "swapon <file>\n"; require fs; fs::swapon($_[0]); } sub swapoff { @_ == 1 or die "swapoff <file>\n"; require fs; fs::swapoff($_[0]); } sub uncpio { @_ and die "uncpio reads from stdin\n"; # cpioInstallArchive(gzdopen(0, "r"), NULL, 0, NULL, NULL, &fail); } sub rights { my $r = '-' x 9; my @rights = (qw(x w r x w r x w r), ['t', 0], ['s', 3], ['s', 6]); for (my $i = 0; $i < @rights; $i++) { if (vec(pack("S", $_[0]), $i, 1)) { my ($val, $place) = $i >= 9 ? @{$rights[$i]} : ($rights[$i], $i); my $old = \substr($r, 8 - $place, 1); $$old = $$old eq '-' && $i >= 9 ? uc $val : $val; } } my @types = split //, "_pc_d_b_-_l_s"; $types[($_[0] >> 12) & 0xf] . $r; } sub displaySize { my $m = $_[0] >> 12; $m == 4 || $m == 8 || $m == 10; } sub ls { my ($l, $h) = getopts(\@_, qw(lh)); $h and die "usage: ls [-l] <files...>\n"; @_ or @_ = '.'; @_ == 1 && -d $_[0] and @_ = glob_($_[0]); foreach (sort @_) { if ($l) { my @s = lstat or warn("can not stat file $_\n"), next; formline( "@<<<<<<<<< @<<<<<<< @<<<<<<< @>>>>>>>> @>>>>>>>>>>>>>>> @*\n", rights($s[2]), getpwuid $s[4] || $s[4], getgrgid $s[5] || $s[5], displaySize($s[2]) ? $s[7] : join(", ", unmakedev($s[6])), scalar localtime $s[9], -l $_ ? "$_ -> " . readlink $_ : $_); print $^A; $^A = ''; } else { print "$_\n" } } } sub cp { @_ >= 2 or die "usage: cp <sources> <dest>\n(this cp does -Rfl by default)\n"; cp_af(@_); } sub ps { @_ and die "usage: ps\n"; my ($pid, $rss, $cpu, $cmd); my ($uptime) = split ' ', first(cat_("/proc/uptime")); my $hertz = 100; require c; my $page = c::getpagesize() / 1024; open PS, ">&STDOUT"; #- PS must be not be localised otherwise the "format PS" fails format PS_TOP = PID RSS %CPU CMD . format PS = @>>>> @>>>> @>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $pid, $rss, $cpu, $cmd . foreach (sort { $a <=> $b } grep { /\d+/ } all('/proc')) { $pid = $_; my @l = split(' ', cat_("/proc/$pid/stat")); $cpu = sprintf "%2.1f", max(0, min(99, ($l[13] + $l[14]) * 100 / $hertz / ($uptime - $l[21] / $hertz))); $rss = (split ' ', cat_("/proc/$pid/stat"))[23] * $page; ($cmd = cat_("/proc/$pid/cmdline")) =~ s/\0/ /g; $cmd ||= (split ' ', (cat_("/proc/$pid/stat"))[0])[1]; write PS; } } sub dd { my $u = "usage: dd [-h] [-p] [if=<file>] [of=<file>] [bs=<number>] [count=<number>]\n"; my ($help, $percent) = getopts(\@_, qw(hp)); die $u if $help; my %h = (if => *STDIN, of => *STDOUT, bs => 512, count => undef); foreach (@_) { /(.*?)=(.*)/ && exists $h{$1} or die $u; $h{$1} = $2; } local (*IF, *OF); my ($tmp, $nb, $read); ref($h{if}) eq 'GLOB' ? (*IF = $h{if}) : sysopen(IF, $h{if}, 0) || die "error: can not open file $h{if}\n"; ref($h{of}) eq 'GLOB' ? (*OF = $h{of}) : sysopen(OF, $h{of}, 0x41) || die "error: can not open file $h{of}\n"; $h{bs} = removeXiBSuffix($h{bs}); for ($nb = 0; !$h{count} || $nb < $h{count}; $nb++) { printf "\r%02.1d%%", 100 * $nb / $h{count} if $h{count} && $percent; $read = sysread(IF, $tmp, $h{bs}) or ($h{count} ? die "error: can not read block $nb\n" : last); syswrite(OF, $tmp) or die "error: can not write block $nb\n"; $read < $h{bs} and $read = 1, last; } print STDERR "\r$nb+$read records in\n"; print STDERR "$nb+$read records out\n"; } sub head_tail { my ($h, $n) = getopts(\@_, qw(hn)); $h || @_ < to_bool($n) and die "usage: $0 [-h] [-n lines] [<file>]\n"; $n = $n ? shift : 10; my $fh; @_ ? open($fh, $_[0]) || die "error: can not open file $_[0]\n" : ($fh = *STDIN); if ($0 eq 'head') { local $_; while (<$fh>) { $n-- or return; print } } else { @_ = (); local $_; while (<$fh>) { push @_, $_; @_ > $n and shift } print @_; } } sub head { $0 = 'head'; &head_tail } sub tail { $0 = 'tail'; &head_tail } sub strings { my ($h, $o, $n) = getopts(\@_, qw(hon)); $h and die "usage: strings [-o] [-n min-length] [<files>]\n"; $n = $n ? shift : 4; $/ = "\0"; @ARGV = @_; my $l = 0; local $_; while (<>) { while (/[$printable_chars]{$n,}/og) { printf "%07d ", ($l + length $') if $o; print "$&\n"; } $l += length; } continue { $l = 0 if eof } } sub hexdump { my $i = 0; $/ = \16; @ARGV = @_; local $_; while (<>) { printf "%08lX ", $i; $i += 16; print join(" ", (map { sprintf "%02X", $_ } unpack("C*", $_)), (s/[^$printable_chars]/./og, $_)[1]), "\n"; } } sub more { @ARGV = @_; require devices; my $tty = devices::make('tty'); my $n = 0; open(my $IN, $tty) or die "can not open $tty\n"; local $_; while (<>) { if (++$n == 25) { my $v = <$IN>; $v =~ /^q/ and exit 0; $n = 0; } print; } } sub insmod { my ($h) = getopts(\@_, qw(h)); $h || @_ == 0 and die "usage: insmod <module> [options]\n"; my $f = shift; require run_program; require modules; if (! -r $f) { my $name = basename($f); $name =~ s/\.k?o$//; ($f) = modules::extract_modules('/tmp', $name); } if (! -r $f) { die "can not find module $f\n"; } run_program::run(["/usr/bin/insmod_", "insmod"], "-f", $f, @_) or die("insmod $f failed"); unlink $f; } sub modprobe { my ($h) = getopts(\@_, qw(h)); $h || @_ == 0 and die "usage: modprobe <module> [options]\n"; my $name = shift; require modules; modules::load_dependencies("/modules/modules.dep"); modules::load_with_options([ $name ], { $name => join(' ', @_) }); } sub route { @_ == 0 or die "usage: route\nsorry, no modification handled\n"; my ($titles, @l) = cat_("/proc/net/route"); my @titles = split ' ', $titles; my %l; open ROUTE, ">&STDOUT"; #- ROUTE must be not be localised otherwise the "format ROUTE" fails format ROUTE_TOP = Destination Gateway Mask Iface . format ROUTE = @<<<<<<<<<<<< @<<<<<<<<<<<< @<<<<<<<<<<<< @<<<<<<< $l{Destination}, $l{Gateway}, $l{Mask}, $l{Iface} . foreach (@l) { /^\s*$/ and next; @l{@titles} = split; $_ = join ".", reverse map { hex $_ } unpack "a2a2a2a2", $_ foreach @l{qw(Destination Gateway Mask)}; $l{Destination} = 'default' if $l{Destination} eq "0.0.0.0"; $l{Gateway} = '*' if $l{Gateway} eq "0.0.0.0"; write ROUTE; } } sub df { my ($h) = getopts(\@_, qw(h)); my ($dev, $size, $free, $used, $use, $mntpoint); open DF, ">&STDOUT"; #- DF must be not be localised otherwise the "format DF" fails format DF_TOP = Filesystem Size Used Avail Use Mounted on . format DF = @<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>>> @>>>>>% @<<<<<<<<<<<<<<<<<<<<<<<<< $dev, $size, $used, $free, $use, $mntpoint . my %h; foreach (cat_("/proc/mounts"), cat_("/etc/mtab")) { ($dev, $mntpoint) = split; $h{$dev} = $mntpoint; } foreach (sort keys %h) { $dev = $_; ($size, $free) = MDK::Common::System::df($mntpoint = $h{$dev}); $size or next; $use = int(100 * ($size - $free) / $size); $used = $size - $free; if ($h) { $used = int($used / 1024 . "M"); $size = int($size / 1024 . "M"); $free = int($free / 1024 . "M"); } write DF if $size; } } sub kill { my $signal = 15; @_ or die "usage: kill [-<signal>] pids\n"; $signal = (shift, $1)[1] if $_[0] =~ /^-(.*)/; kill $signal, @_ or die "kill failed: $!\n"; } sub lspci() { lspcidrake() } sub lspcidrake() { require detect_devices; print join "\n", detect_devices::stringlist(), ''; } *lssbus = \&lspci; sub dmesg() { print cat_("/tmp/syslog") } sub sort { my ($n, $h) = getopts(\@_, qw(nh)); $h and die "usage: sort [-n] [<file>]\n"; my $fh; @_ ? open($fh, $_[0]) || die "error: can not open file $_[0]\n" : ($fh = *STDIN); if ($n) { print(sort { $a <=> $b } <$fh>); } else { print(sort <$fh>); } } sub du { my ($s, $h) = getopts(\@_, qw(sh)); $h || !$s and die "usage: du -s [<directories>]\n"; my $f; $f = sub { my ($e) = @_; my $s = (lstat($e))[12]; $s += sum(map { &$f($_) } glob_("$e/*")) if !-l _ && -d _; $s; }; print &$f($_) >> 1, "\t$_\n" foreach @_ ? @_ : glob_("*"); } sub install_cpio($$;@) { my ($dir, $name, @more) = @_; return "$dir/$name" if -e "$dir/$name"; my $cpio = "$dir.cpio.bz2"; -e $cpio or return; eval { rm("-r", $dir) }; mkdir $dir, 0755; require run_program; my $more = join " ", map { $_ && "$_ $_/*" } @more; run_program::run("cd $dir ; $ENV{LD_LOADER} bzip2 -cd $cpio | $ENV{LD_LOADER} cpio -id $name $name/* $more"); "$dir/$name"; } sub bug { my ($h) = getopts(\@_, "h"); $h and die "usage: bug\nput file report.bug on fat formatted floppy\n"; require detect_devices; mount devices::make(detect_devices::floppy()), "/fd0"; require install_any; output("/fd0/report.bug", install_any::report_bug()); umount "/fd0"; common::sync(); } sub loadkeys { my ($h) = getopts(\@_, "h"); $h || @_ != 1 and die "usage: loadkeys <keyboard>\n"; require keyboard; keyboard::setup({ KEYBOARD => $_[0] }); } sub sync() { common::sync() } 1;