Author: locilka Date: Wed Mar 5 13:09:30 2008 New Revision: 45208 URL: http://svn.opensuse.org/viewcvs/yast?rev=45208&view=rev Log: - Adapted to a new .process SCR agent. - 2.16.2 Modified: trunk/backup/VERSION trunk/backup/package/yast2-backup.changes trunk/backup/src/Backup.ycp trunk/backup/src/backup.ycp trunk/backup/src/backup_get_packages.ycp trunk/backup/src/functions.ycp trunk/backup/src/scripts/backup_archive.pl trunk/backup/src/ui.ycp trunk/backup/yast2-backup.spec.in Modified: trunk/backup/VERSION URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/VERSION?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/VERSION (original) +++ trunk/backup/VERSION Wed Mar 5 13:09:30 2008 @@ -1 +1 @@ -2.16.1 +2.16.2 Modified: trunk/backup/package/yast2-backup.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/package/yast2-backup.changes?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/package/yast2-backup.changes (original) +++ trunk/backup/package/yast2-backup.changes Wed Mar 5 13:09:30 2008 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Wed Mar 5 10:27:15 CET 2008 - locilka@suse.cz + +- Adapted to a new .process SCR agent. +- 2.16.2 + +------------------------------------------------------------------- Tue Dec 11 12:54:50 CET 2007 - locilka@suse.cz - UI mode 'testsuite' is now 'UI' (#347534). Modified: trunk/backup/src/Backup.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/src/Backup.ycp?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/src/Backup.ycp (original) +++ trunk/backup/src/Backup.ycp Wed Mar 5 13:09:30 2008 @@ -426,11 +426,17 @@ script_options = script_options + " --no-md5"; } - // add widget file option - script_options = script_options + " --widget-file " + ((string)SCR::Read(.target.tmpdir)) + "/items.ycp"; + // if (display files before archiving them) + if (display) { + y2milestone ("Files files will be displayed before archiving"); + // add widget file option + script_options = script_options + " --widget-file " + ((string)SCR::Read(.target.tmpdir)) + "/items.ycp"; - // add items list option - script_options = script_options + " --list-file " + ((string)SCR::Read(.target.tmpdir)) + "/items-list.ycp"; + // add items list option + script_options = script_options + " --list-file " + ((string)SCR::Read(.target.tmpdir)) + "/items-list.ycp"; + } else { + y2milestone ("Displaying files will be skipped"); + } // add package verification option script_options = script_options + " --pkg-verification"; Modified: trunk/backup/src/backup.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/src/backup.ycp?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/src/backup.ycp (original) +++ trunk/backup/src/backup.ycp Wed Mar 5 13:09:30 2008 @@ -153,7 +153,7 @@ // create wizard dialog Wizard::CreateDialog(); // set icon - Wizard::SetDesktopIcon("backup"); + Wizard::SetTitleIcon("backup"); } Backup::ReadBackupProfiles(); Modified: trunk/backup/src/backup_get_packages.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/src/backup_get_packages.ycp?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/src/backup_get_packages.ycp (original) +++ trunk/backup/src/backup_get_packages.ycp Wed Mar 5 13:09:30 2008 @@ -29,8 +29,11 @@ y2milestone("Reading packages available on the installation sources..."); string filename = nil; - if (is(WFM::Args(0), string)) { - filename = (string) WFM::Args (0); + list args = WFM::Args(); + y2milestone ("Args: %1", args); + + if (args[0]:nil != nil && is(args[0]:"", string)) { + filename = (string) args[0]:""; } else { y2error ("Wrong parameter for script"); return false; @@ -43,14 +46,16 @@ } Pkg::TargetInitialize ("/"); + Pkg::SourceRestore(); + Pkg::SourceStartManager(true); // list of available enabled installation sources list<integer> sources = Pkg::SourceStartCache(true); - y2debug("availables sources: %1", sources); + y2milestone("availables sources: %1", sources); // list of installed products (last installed is first in the list) list installed_products = Pkg::TargetProducts(); - y2debug("installed products: %1", installed_products); + y2milestone("installed products: %1", installed_products); // installation sources for installed products list<integer> product_sources = []; Modified: trunk/backup/src/functions.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/src/functions.ycp?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/src/functions.ycp (original) +++ trunk/backup/src/functions.ycp Wed Mar 5 13:09:30 2008 @@ -703,6 +703,9 @@ * @return list<string> available packages */ define list <string> GetInstallPackages () { + // function returns empty list + return []; + y2milestone("--- backup_get_packages ---"); // was: return (list <string>) WFM::call("backup_get_packages", []); // bugzilla #224899, saves memory occupied by zypp data (packager) @@ -722,6 +725,7 @@ return []; } + // breaks ncurses string cmd = sformat("%1 backup_get_packages %2 1>/dev/null 2>/dev/null", yastbin, temporary_file); y2milestone ("Running command: '%1'", cmd); map command = (map) SCR::Execute(.target.bash_output, cmd); Modified: trunk/backup/src/scripts/backup_archive.pl URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/src/scripts/backup_archive.pl?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/src/scripts/backup_archive.pl (original) +++ trunk/backup/src/scripts/backup_archive.pl Wed Mar 5 13:09:30 2008 @@ -490,7 +490,7 @@ print "Creating archive:\n"; } -if (defined open(FILES, $files_info)) +if (open(FILES, $files_info)) { while (my $line = <FILES>) { @@ -597,6 +597,10 @@ close(FILES); } +else +{ + print STDERR "Cannot open list of files to backup"; +} #last package if (defined $opened) Modified: trunk/backup/src/ui.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/src/ui.ycp?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/src/ui.ycp (original) +++ trunk/backup/src/ui.ycp Wed Mar 5 13:09:30 2008 @@ -33,7 +33,10 @@ textdomain "backup"; - integer wait_time = 500; // loop delay (in miliseconds) +integer wait_time = 250; // loop delay (in miliseconds) + +// used for the ag_process +integer backup_PID = nil; // variables needed for backup when freezes on ZERO (or almost zero) free space integer waiting_without_output = 0; @@ -92,7 +95,7 @@ y2milestone("Finishing backup..."); return `abort; // !cron mode => ask user - } else if ((boolean) SCR::Read(.background.isrunning)) { + } else if ((boolean) SCR::Read (.process.running, backup_PID)) { if (!Popup::YesNoHeadline( // headline of a popup message _("Warning"), @@ -122,7 +125,7 @@ y2milestone("Finishing backup..."); return `abort; // !cron mode => ask user - } else if ((boolean) SCR::Read(.background.isrunning)) { + } else if ((boolean) SCR::Read (.process.running, backup_PID)) { if (!Popup::YesNoHeadline( // headline of a popup message _("Warning"), @@ -165,7 +168,7 @@ if (AbortConfirmation(abort_question)) { - SCR::Execute(.background.kill, nil); + SCR::Execute (.process.kill, backup_PID); return ret; } else @@ -174,33 +177,25 @@ } } - while ((integer)SCR::Read(.background.newlines) == 0 && (boolean)SCR::Read(.background.output_open)) + if ((boolean) SCR::Read (.process.running, backup_PID)) { sleep(wait); ret = (symbol) UI::PollInput(); - if (ret == `abort || ret == `cancel) - { + if (ret == `abort || ret == `cancel) { ret = `abort; - y2warning("Abort pressed"); + y2warning("Abort pressed"); - if (AbortConfirmation(abort_question)) - { - SCR::Execute(.background.kill, ""); - break; - } - else - { - ret = nil; - } - } - - if (Backup::just_creating_archive) { - CheckFreeSpace(); - ret = EvaluateFreeSpace(ret); - if (ret == `abort) { - break; + if (Backup::just_creating_archive) { + CheckFreeSpace(); + ret = EvaluateFreeSpace (ret); + } else { + if (AbortConfirmation(abort_question)) { + SCR::Execute(.process.kill, backup_PID); + } else { + ret = nil; + } } } } @@ -1682,9 +1677,6 @@ ); } - // set buffer size - SCR::Write(.background.buffer_size, 500); - // read list of available packages at the original installation sources Backup::ReadInstallablePackages(); @@ -1874,19 +1866,26 @@ y2milestone("Search script: %1", Backup::script_get_files + Backup::get_search_script_parameters()); // starting the searching script in the background - boolean started = (boolean)SCR::Execute(.background.run_output, Backup::script_get_files + Backup::get_search_script_parameters()); + backup_PID = (integer) SCR::Execute (.process.start_shell, Backup::script_get_files + Backup::get_search_script_parameters(), $["C_locale":true]); list<string> script_out = [ ]; + boolean started = (backup_PID != nil && backup_PID > 0); + symbol ret = nil; - y2milestone("subprocess started: %1 (PID: %2)", started, (integer)SCR::Read(.background.pid)); + y2milestone ("subprocess started: %1 (PID: %2)", started, backup_PID); if (!started) { // error popup message Report::Error(_("Could not start the search script. Aborting the backup. ")); - y2error("Errors: %1", (list<string>)SCR::Read(.background.newerr)); + line = ""; + while (line != nil) { + line = (string) SCR::Read (.process.read_line_stderr, backup_PID); + y2error ("Error: %1", line); + } + if (Backup::cron_mode) { return `abort; } else { @@ -1897,19 +1896,15 @@ integer search_time = time(); // while background script runs - while(((boolean)SCR::Read(.background.output_open)) || ((integer)SCR::Read(.background.newlines)) > 0) { - script_out = (list<string>)SCR::Read(.background.newout); - - // processing the script output - while (size(script_out) > 0) { - line = script_out[0]:nil; // read line - script_out = remove(script_out, 0); // remove line + while ((boolean) SCR::Read (.process.running, backup_PID) || ! (boolean) SCR::Read (.process.buffer_empty, backup_PID)) { + line = (string) SCR::Read (.process.read_line, backup_PID); // read line + while (line != nil) { // reading installed packages until the last package is read if (reading_installed_packages) { Search_ProcessInstalledPackages(); } else { - if (substring(line, 0, size(id_package)) == id_package || substring(line, 0, size(id_complete_package)) == id_complete_package) { + if (substring (line, 0, size(id_package)) == id_package || substring (line, 0, size(id_complete_package)) == id_complete_package) { Search_ChangedPackageFiles(); } else { if (substring(line, 0, size(id_file)) == id_file) { @@ -1928,6 +1923,8 @@ } } } + + line = (string) SCR::Read (.process.read_line, backup_PID); // read line } if (search_no_package) { @@ -1936,19 +1933,18 @@ if (Backup::cron_mode) { // in cron mode only wait for subprocess - while (((integer)SCR::Read(.background.newlines)) == 0 && (boolean)SCR::Read(.background.output_open)) { + while ((string) SCR::Read (.process.read, backup_PID) != nil) { sleep(wait_time); } ret = nil; } else { - ret = waitForUserOrProcess(wait_time, `changed); + ret = waitForUserOrProcess (wait_time, `changed); } if (ret != nil) { return ret; } - } // end of the 'while' backround script runs @@ -1978,24 +1974,13 @@ list package_files_part = []; integer new_files = 0; - while((boolean)SCR::Read(.background.output_open) || ((integer)SCR::Read(.background.newlines)) > 0 || (size(script_out) > 0)) + while ((boolean) SCR::Read (.process.running, backup_PID) || ! (boolean) SCR::Read (.process.buffer_empty, backup_PID)) // test of script_out size is needed, because previous while cycle was interrupted and script could exited with no new output... { - if (size(script_out) == 0) - { - script_out = (list<string>)SCR::Read(.background.newout); - } - - // current line index - integer lineidx = 0; - // number of new lines - integer script_out_size = size(script_out); - - while (lineidx < script_out_size) - { - line = script_out[lineidx]:nil; // read line - lineidx = lineidx + 1; + line = (string) SCR::Read (.process.read_line, backup_PID); // read line + if (line == nil) continue; + // ---> if (substring(line, 0, size(id_file)) == id_file) { line = substring(line, size(id_file)); @@ -2061,15 +2046,18 @@ } } } - } + // <--- script_out = []; if (Backup::cron_mode == true) { // in cron mode only wait for subprocess - while (((integer)SCR::Read(.background.newlines)) == 0 && (boolean)SCR::Read(.background.output_open)) + while ((boolean) SCR::Read (.process.running, backup_PID) || ! (boolean) SCR::Read (.process.buffer_empty, backup_PID)) { + while ((string) SCR::Read (.process.read, backup_PID) != nil) { + // do nothing + } sleep(wait_time); } @@ -2560,21 +2548,8 @@ // prepare start Backup::PrepareBackup(); - boolean started = (boolean)SCR::Execute(.background.run_output, sformat("%1 %2", Backup::script_create_archive, Backup::get_archive_script_parameters(tmpfile_list, tmpfile_comment))); - - if (!started) - { - // error popup message - Report::Error(_("Could not start archiving script. -Aborting the backup. -")); - return `abort; - } - list<string> script_out = [ ]; - - archived_num = 0; boolean tar_running = false; @@ -2590,10 +2565,35 @@ y2milestone("Creating archive..."); + backup_PID = (integer) SCR::Execute( + .process.start_shell, + sformat("%1 %2 | tee /tee-yast-backup", Backup::script_create_archive, Backup::get_archive_script_parameters(tmpfile_list, tmpfile_comment)), + $["C_locale":true] + ); + boolean started = (backup_PID != nil && backup_PID > 0); + + if (!started) + { + // error popup message + Report::Error(_("Could not start archiving script. +Aborting the backup. +")); + return `abort; + } + Backup::just_creating_archive = true; - while(((boolean)SCR::Read(.background.output_open)) == true || ((integer)(SCR::Read(.background.newlines)) > 0)) + + line = "-- just -- started --"; + // start while + // + // .running might return false + // but there still might be some buffer left + while ((boolean) SCR::Read (.process.running, backup_PID) || ! (boolean) SCR::Read (.process.buffer_empty, backup_PID)) { - script_out = (list<string>) SCR::Read(.background.newout); + line = (string) SCR::Read(.process.read_line, backup_PID); + if (line == nil) continue; + + script_out = [line]; // script returned some lines, no check the free space if (size(script_out)>0) { @@ -2812,7 +2812,10 @@ if (Backup::cron_mode) { // in cron mode only wait for subprocess (and free space!) - while ((integer) SCR::Read(.background.newlines) == 0 && (boolean) SCR::Read(.background.output_open) && enough_free_space_tmp && enough_free_space_target) { + while (((boolean) SCR::Read (.process.running, backup_PID) || ! (boolean) SCR::Read (.process.buffer_empty, backup_PID)) && enough_free_space_tmp && enough_free_space_target) { + while ((string) SCR::Read (.process.read_line, backup_PID) != nil) { + // do nothing + } sleep(wait_time); CheckFreeSpace(); } @@ -2836,6 +2839,10 @@ } } + // end while + + y2milestone ("DEBUG: running %1", (boolean) SCR::Read (.process.running, backup_PID)); + y2milestone ("DEBUG: empty %1", (boolean) SCR::Read (.process.buffer_empty, backup_PID)); Backup::selected_files = $[]; Modified: trunk/backup/yast2-backup.spec.in URL: http://svn.opensuse.org/viewcvs/yast/trunk/backup/yast2-backup.spec.in?rev=45208&r1=45207&r2=45208&view=diff ============================================================================== --- trunk/backup/yast2-backup.spec.in (original) +++ trunk/backup/yast2-backup.spec.in Wed Mar 5 13:09:30 2008 @@ -26,8 +26,8 @@ Requires: yast2-nfs-client Requires: yast2-storage -# New mod-UI -Conflicts: yast2-core < 2.15.7 +# .process.buffer_empty +Conflicts: yast2-core < 2.16.10 Recommends: yast2-bootloader Recommends: yast2-network -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org