diff options
Diffstat (limited to 'move/move.pm')
| -rw-r--r-- | move/move.pm | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/move/move.pm b/move/move.pm deleted file mode 100644 index f4e6c0fdb..000000000 --- a/move/move.pm +++ /dev/null @@ -1,174 +0,0 @@ -package move; # $Id$ $ - -use diagnostics; -use strict; - -use modules; -use common; -use fs; -use run_program; -use log; -use lang; - -my @ALLOWED_LANGS = qw(en_US fr es it de); - -sub symlinkf_short { - my ($dest, $file) = @_; - if (my $l = readlink $dest) { - $dest = $l if $l =~ m!^/!; - } - symlinkf($dest, $file); -} - -#- run very soon at stage2 start, setup things on tmpfs rw / that -#- were not necessary to start stage2 itself (there were setup -#- by stage1 of course) -sub init { - my ($o) = @_; - - $::testing and goto drakx_stuff; - - #- rw things - mkdir "/$_" foreach qw(home mnt root root/tmp etc var); - mkdir "/etc/$_" foreach qw(X11); - touch '/etc/modules.conf'; - symlinkf "/proc/mounts", "/etc/mtab"; - - #- to be able to adduser, one need to have /etc/passwd and /etc/group writable - #- sudoers must a file, not a symlink - system("cp /image/etc/{passwd,group,sudoers} /etc"); - - mkdir_p("/etc/$_"), system("cp -R /image/etc/$_/* /etc/$_") foreach qw(cups profile.d sysconfig/network-scripts); - - #- ro things - symlinkf_short("/image/etc/$_", "/etc/$_") - foreach qw(alternatives shadow man.config services shells pam.d security inputrc ld.so.conf - DIR_COLORS bashrc profile rc.d init.d devfsd.conf gtk-2.0 pango fonts modules.devfs - dynamic gnome-vfs-2.0 gnome-vfs-mime-magic gtk gconf menu menu-methods nsswitch.conf default login.defs - skel ld.so.cache openoffice xinetd.d); - symlinkf_short("/image/etc/X11/$_", "/etc/X11/$_") - foreach qw(encodings.dir app-defaults applnk fs lbxproxy proxymngr rstart wmsession.d xinit.d xinit xkb xserver xsm); - - #- create remaining /etc and /var subdirectories if not already copied or symlinked, - #- because programs most often won't try to create the missing subdir before trying - #- to write a file, leading to obscure unexpected failures - -d $_ or mkdir_p $_ foreach chomp_(cat_('/image/move/directories-to-create')); - - - #- free up stage1 memory - fs::umount($_) foreach qw(/stage1/proc /stage1); - - #- devfsd needed for devices accessed by old names - fs::mount("none", "/dev", "devfs", 0); - run_program::run('/sbin/devfsd', '/dev'); - - modules::load_category('multimedia/sound'); - -drakx_stuff: - $o->{steps}{startMove} = { reachable => 1, text => "Start Move" }; - $o->{orderedSteps_orig} = $o->{orderedSteps}; - $o->{orderedSteps} = [ qw(selectLanguage acceptLicense selectMouse selectKeyboard startMove) ]; - - member($_, @ALLOWED_LANGS) or delete $lang::langs{$_} foreach keys %lang::langs; -} - -sub lomount_clp { - my ($name) = @_; - my ($clp, $dir) = ("/image_raw/live_tree_$name.clp", "/image_$name"); - - if (! -e $clp || cat_('/proc/cmdline') =~ /\blive\b/) { - symlink "/image_raw/live_tree_$name", $dir; - return; - } - - mkdir_p($dir); - my $dev = devices::find_free_loop(); - run_program::run('losetup', '-r', '-e', 'gz', $dev, $clp); - run_program::run('mount', '-r', $dev, $dir); -} - -sub install2::startMove { - my $o = $::o; - - if (cat_('/proc/cmdline') =~ /\buser=(\w+)/) { - $o->{users} = [ { name => $1 } ]; - } else { - require any; - any::ask_user_one($o, $o->{users} ||= [], $o->{security}, - additional_msg => N("BLA BLA user for move, password for screensaver"), noaccept => 1, needauser => 1, noicons => 1); - } - require install_steps; - install_steps::addUser($o); - - my $w = $o->wait_message(N("Auto configuration"), N("Please wait, detecting and configuring devices...")); - - #- automatic printer, timezone, network configs - require install_steps_interactive; - install_steps_interactive::configureNetwork($o); - install_steps_interactive::summaryBefore($o); - - require install_any; - install_any::write_fstab($o); - modules::write_conf(''); - detect_devices::install_addons(''); - - foreach my $step (@{$o->{orderedSteps_orig}}) { - next if member($step, @{$o->{orderedSteps}}); - while (my $f = shift @{$o->{steps}{$step}{toBeDone} || []}) { - log::l("doing remaining toBeDone for undone step $step"); - eval { &$f() }; - $o->ask_warn(N("Error"), [ -N("An error occurred, but I don't know how to handle it nicely. -Continue at your own risk."), formatError($@) ]) if $@; - } - } - - $w = undef; - - $::WizardWindow->destroy if $::WizardWindow; - require ugtk2; - my $root = ugtk2::gtkroot(); - my $pixbuf = Gtk2::Gdk::Pixbuf->new_from_file('/usr/share/mdk/screensaver/3.png'); - my ($w, $h) = ($pixbuf->get_width, $pixbuf->get_height); - $root->draw_pixbuf(Gtk2::Gdk::GC->new($root), $pixbuf, 0, 0, ($::rootwidth - $w) / 2, ($::rootheight - $h)/2, $w, $h, 'none', 0, 0); - ugtk2::gtkflush(); - - run_program::run('/sbin/service', 'syslog', 'start'); #- otherwise minilogd will strike - run_program::run('killall', 'minilogd'); #- get rid of minilogd - - my $username = $o->{users}[0]{name}; - output('/var/run/console.lock', $username); - output("/var/run/console/$username", 1); - run_program::run('pam_console_apply'); - - if (fork()) { - sleep 1; - log::l("DrakX waves bye-bye"); - - (undef, undef, my $uid, my $gid, undef, undef, undef, my $home, my $shell) = getpwnam($username); - $( = $) = "$gid $gid"; - $< = $> = $uid; - $ENV{LOGNAME} = $ENV{USER} = $username; - $ENV{HOME} = $home; - $ENV{SHELL} = $shell; - exec 'startkde'; - } else { - exec 'xwait' or c::_exit(0); - } -} - -sub automatic_xconf { - my ($o) = @_; - log::l('automatic XFree configuration'); - - require Xconfig::default; - $o->{raw_X} = Xconfig::default::configure({ KEYBOARD => 'uk' }, $o->{mouse}); #- using uk instead of us for now to have less warnings - - require Xconfig::main; - require class_discard; - Xconfig::main::configure_everything_auto_install($o->{raw_X}, class_discard->new, {}, - { allowNVIDIA_rpms => [], allowATI_rpms => [] }); -} - - -1; |
