home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / clients / inst_dirinstall_finish.ycp < prev    next >
Text File  |  2006-11-29  |  4KB  |  132 lines

  1. /**
  2.  * File:
  3.  *   clients/inst_dirinstall_finish.ycp
  4.  *
  5.  * Summary:
  6.  *   Close dir installation
  7.  *
  8.  * Authors:
  9.  *   Anas Nashif <nashif@suse.de>
  10.  *
  11.  * $Id: inst_dirinstall_finish.ycp 33515 2006-10-19 11:04:46Z lslezak $
  12.  *
  13.  */
  14. {
  15.     textdomain "packager";
  16.     import "DirInstall";
  17.     import "Installation";
  18.     import "Directory";
  19.     import "Progress";
  20.     import "Mouse";
  21.     import "Keyboard";
  22.     import "Language";
  23.     import "Timezone";
  24.     import "Console";
  25.     import "RunlevelEd";
  26.     import "String";
  27.  
  28.     list<string> progress_stages =
  29.     [
  30.      // progress stages
  31.      _("Finalize system configuration"),
  32.      // progress stages
  33.      _("Prepare system for initial boot")
  34.      ];
  35.  
  36.     integer progress_length = 2;
  37.     if (DirInstall::makeimage)
  38.     {
  39.     // progress stage
  40.         progress_stages=add(progress_stages, _("Create image file"));
  41.         progress_length = progress_length + 1;
  42.     }
  43.  
  44.     list<string> progress_descriptions =
  45.     [];
  46.  
  47.     // help text
  48.     string help_text = _("<p>Please wait while the system is being configured.</p>");
  49.  
  50.     Progress::New(
  51.             // Headline for last dialog of base installation: Install LILO etc.
  52.             _("Finishing Directory Installation"),
  53.             "",    // Initial progress bar label - not empty (reserve space!)
  54.             progress_length,    // progress bar length
  55.             progress_stages,
  56.             progress_descriptions,
  57.             help_text );
  58.  
  59.  
  60.     Progress::NextStage ();
  61.     // progress title
  62.     Progress::Title(_("Configuring installed system"));
  63.  
  64.     Progress::NextStage ();
  65.  
  66.     y2milestone ("Re-starting SCR on %1", Installation::destdir);
  67.     Installation::scr_handle = WFM::SCROpen ("chroot="+Installation::destdir+":scr", false);
  68.     Installation::scr_destdir = "/";
  69.     WFM::SCRSetDefault (Installation::scr_handle);
  70.  
  71.     // re-init tmpdir from new SCR !
  72.     Directory::ResetTmpDir();
  73.     string tmpdir = Directory::tmpdir;
  74.  
  75.     if (DirInstall::runme_at_boot)
  76.     {
  77.         string runme_at_boot = Directory::vardir + "/runme_at_boot";
  78.         if (!SCR::Write (.target.string, runme_at_boot, ""))
  79.         {
  80.             y2error ("Couldn't create target %1", runme_at_boot );
  81.         }
  82.     }
  83.  
  84.     if (SCR::Execute (.target.bash, "/sbin/ldconfig") != 0)
  85.         y2error ("ldconfig failed\n");
  86.  
  87.     SCR::Execute (.target.mkdir, Installation::sourcedir);
  88.     Mouse::Save();
  89.     Timezone::Save();
  90.     Language::Save();
  91.     Keyboard::Save(true);
  92.     Console::Save();
  93.  
  94.     integer runlevel = RunlevelEd::default_runlevel == ""?
  95.         3 : tointeger (RunlevelEd::default_runlevel);
  96.     y2milestone ("setting default runlevel to %1", runlevel);
  97.     SCR::Write (.etc.inittab.id, sformat ("%1:initdefault:", runlevel));
  98.     SCR::Write (.etc.inittab, nil);
  99.  
  100.     Pkg::SourceCacheCopyTo (Installation::destdir);
  101.  
  102.     // disable some services - they are useless and usually failing in UML/Xen VM
  103.     list<string> disable_services = ["kbd", "acpid"];
  104.     foreach(string s, disable_services, {
  105.             integer disabled = (integer) SCR::Execute(.target.bash, sformat("/sbin/insserv -r %1", s));
  106.             y2milestone("insserv - service %1 exit status: %2", s, disabled);
  107.             }
  108.            );
  109.  
  110.     // Stop SCR on target
  111.     WFM::SCRClose (Installation::scr_handle);
  112.     // umount /proc and /sys before creating image (otherwise tar may fail)
  113.     DirInstall::UmountFilesystems ();
  114.  
  115.     if (DirInstall::makeimage && 
  116.             DirInstall::image_dir != "" && 
  117.             DirInstall::image_name != "")
  118.     {
  119.         Progress::NextStage();
  120.         string cmd =  sformat("cd '%1' && tar -zcf '%2' . && cd - ", 
  121.                 String::Quote (DirInstall::target),
  122.                 String::Quote (DirInstall::image_dir + "/" + DirInstall::image_name + ".tgz"));
  123.         y2debug("cmd: %1", cmd);
  124.     // progress title
  125.         Progress::Title(_("Building directory image..."));
  126.         WFM::Execute(.local.bash, cmd);
  127.     }
  128.  
  129.     Progress::Finish();
  130.     return `next;
  131. }
  132.