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 / x11_finish.ycp < prev    next >
Text File  |  2006-11-29  |  4KB  |  134 lines

  1. /**
  2.  * File:
  3.  *  x11_finish.ycp
  4.  *
  5.  * Module:
  6.  *  Step of base installation finish
  7.  *
  8.  * Authors:
  9.  *  Jiri Srain <jsrain@suse.cz>
  10.  *
  11.  * $Id: x11_finish.ycp 33360 2006-10-12 14:45:22Z locilka $
  12.  *
  13.  */
  14.  
  15. {
  16.  
  17. textdomain "installation";
  18.  
  19. import "X11Version";
  20. import "Mode";
  21. import "Installation";
  22. import "String";
  23.  
  24. include "installation/misc.ycp";
  25.  
  26. any ret = nil;
  27. string func = "";
  28. map param = $[];
  29.  
  30. /* Check arguments */
  31. if(size(WFM::Args()) > 0 && is(WFM::Args(0), string)) {
  32.     func = (string)WFM::Args(0);
  33.     if(size(WFM::Args()) > 1 && is(WFM::Args(1), map))
  34.     param = (map)WFM::Args(1);
  35. }
  36.  
  37. y2milestone ("starting x11_finish");
  38. y2debug("func=%1", func);
  39. y2debug("param=%1", param);
  40.  
  41. if (func == "Info")
  42. {
  43.     return (any)$[
  44.     "steps" : 1,
  45.     // progress step title
  46.     "title" : _("Copying X Window System configuration into system..."),
  47.     "when" : [ `installation, `update, `autoinst ],
  48.     ];
  49. }
  50. else if (func == "Write")
  51. {
  52.     // --------------------------------------------------------------
  53.     // Copy /etc/XF86Config into built system so that the
  54.     // second phase of the installation can find it.
  55.     X11Version::GetX11Link();
  56.  
  57.     // Check if X11 package is installed.
  58.     boolean x11_installed = Pkg::IsProvided("xorg-x11");
  59.     if (!x11_installed)
  60.     {
  61.     x11_installed = Pkg::IsSelected ("xorg-x11");
  62.     }
  63.  
  64.     y2milestone ("x11_installed: <%1>", x11_installed );
  65.  
  66.     if (x11_installed)
  67.     {
  68.     if ( Mode::update () )
  69.     {
  70.         if (X11Version::versionLink == "3")
  71.         {
  72.         //========================================
  73.         // Update mode...
  74.         //----------------------------------------
  75.         // - set a flag at the end of the config to indicate later migration
  76.         // - copy the config to the installed system
  77.         y2milestone ("Update: XFree86 version 3 detected");
  78.         string filename = "/etc/XF86Config";
  79.         WFM::Execute (.local.bash,
  80.                   "echo -e '\n#3x' >> " + filename
  81.                   );
  82.         SCR::Execute (.target.bash,"/bin/ln -sf " +
  83.                   "'" + String::Quote (Installation::destdir) + "/usr/X11R6/bin/XFree86' " +
  84.                   "'" + String::Quote (Installation::destdir) + "/var/X11R6/bin/X'"
  85.                   );
  86.         y2milestone ("Update: Include X11 config [3.x] to installed system");
  87.         y2milestone ("Update: X11 config [3.x] prepared for migration to [4.x]");
  88.         InjectFile ( filename );
  89.         }
  90.     }
  91.     else
  92.     {
  93.         //========================================
  94.         // Installation mode...
  95.         //----------------------------------------
  96.         // make current X11 configuration available in installed system
  97.         // copy /etc/X11/XF86Config from inst-sys to [/mnt]/etc/X11/xorg.conf
  98.         // ---
  99.         y2milestone ("Include X11 config [instsys] to installed system: xorg.conf");
  100.         string filename = "/etc/X11/xorg.conf";
  101.         WFM::Execute (.local.bash, "/bin/cp " + filename + " " +
  102.               "'" + String::Quote (Installation::destdir) + "/etc/X11/xorg.conf'"
  103.               );
  104.     }
  105.     }
  106.  
  107.     {
  108.     // ... /
  109.     // create backup copy from from inst-sys config to be available in installed
  110.     // or updated system copy /etc/X11/XF86Config from inst-sys to
  111.     // [/mnt]/etc/X11/xorg.conf.install
  112.     // ---
  113.     y2milestone ("Include X11 config [instsys] to installed system: xorg.conf.install");
  114.     string filename = "/etc/X11/xorg.conf";
  115.     WFM::Execute (.local.bash, "/bin/cp " + filename + " " +
  116.               "'" + String::Quote (Installation::destdir) + "/etc/X11/xorg.conf" + ".install'"
  117.               );
  118.     }
  119. }
  120. else
  121. {
  122.     y2error ("unknown function: %1", func);
  123.     ret = nil;
  124. }
  125.  
  126. y2debug("ret=%1", ret);
  127. y2milestone("x11_finish finished");
  128. return ret;
  129.  
  130.  
  131. } /* EOF */
  132.  
  133.  
  134.