Author: mzugec Date: Tue Apr 8 13:25:28 2008 New Revision: 46226 URL: http://svn.opensuse.org/viewcvs/yast?rev=46226&view=rev Log: LPD protocol switching support (bnc#120086) Modified: trunk/printer/VERSION trunk/printer/package/yast2-printer.changes trunk/printer/src/common/dialogs.ycp trunk/printer/src/modules/Printer.ycp Modified: trunk/printer/VERSION URL: http://svn.opensuse.org/viewcvs/yast/trunk/printer/VERSION?rev=46226&r1=... ============================================================================== --- trunk/printer/VERSION (original) +++ trunk/printer/VERSION Tue Apr 8 13:25:28 2008 @@ -1 +1 @@ -2.16.10 +2.16.11 Modified: trunk/printer/package/yast2-printer.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/printer/package/yast2-printer.cha... ============================================================================== --- trunk/printer/package/yast2-printer.changes (original) +++ trunk/printer/package/yast2-printer.changes Tue Apr 8 13:25:28 2008 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Mon Apr 7 20:53:53 CEST 2008 - mzugec@suse.de + +- LPD protocol switching support (bnc#120086) +- 2.16.11 + +------------------------------------------------------------------- Tue Apr 1 05:18:38 CEST 2008 - mzugec@suse.de - fixed list of remote/local backends Modified: trunk/printer/src/common/dialogs.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/printer/src/common/dialogs.ycp?re... ============================================================================== --- trunk/printer/src/common/dialogs.ycp (original) +++ trunk/printer/src/common/dialogs.ycp Tue Apr 8 13:25:28 2008 @@ -1805,6 +1805,7 @@ else UI::ChangeWidget(`queues, `Items, [ Printer::default_queue ]); } if ( contains (CUPS::cups_server_settings["Browsing"]:["On"],"On") ) UI::ChangeWidget(`ipp_listen, `Value, true); + if (Printer::lpd_enable) UI::ChangeWidget(`lpd_enable, `Value, true); } list<string> getAddresses(list<string> addr_orig){ @@ -1866,6 +1867,7 @@ boolean local = (UI::QueryWidget(`id(`server_type), `CurrentButton) == `local); UI::ChangeWidget(`ipp_listen, `Enabled, local); + UI::ChangeWidget(`lpd_enable, `Enabled, local); boolean listen = (boolean)UI::QueryWidget(`ipp_listen, `Value); UI::ChangeWidget(`select_addr, `Enabled, listen && local); @@ -1918,6 +1920,10 @@ Popup::Warning (sformat("%1 "%2".", _("Select default queue or check"), _("Use Server's Default Queue"))); return false; } + } else{ + if ((boolean)UI::QueryWidget(`lpd_enable, `Value) && !Printer::lpd_enable){ + if (!Popup::YesNo(_("To enable LPD support, you must enable also xinetd service."))) return false; + } } return true; } @@ -1928,6 +1934,7 @@ CUPS::cups_installation=`server; boolean listen = (boolean)UI::QueryWidget(`ipp_listen, `Value); CUPS::cups_server_settings["Browsing"] = listen ? ["On"] : ["Off"]; + Printer::lpd_enable = (boolean)UI::QueryWidget(`lpd_enable, `Value); }else{ CUPS::cups_installation=`client; CUPS::server_hostname = (string)UI::QueryWidget(`server_name, `Value); @@ -2241,8 +2248,11 @@ `VBox( `VBox( `Left( `RadioButton(`id(`local), `opt(`notify), "Local CUPS Server")), + `VBox( `HBox(`CheckBox(`id(`ipp_listen), `opt(`notify), _("Listen to IPP Broadcast Packets")), `PushButton(`id(`select_addr), _("Select Addresses")) + ), + `Left(`CheckBox(`id(`lpd_enable), `opt(`notify), _("enable LPD clients"))) ) ), `VBox( @@ -2460,134 +2470,6 @@ /** - * Complex dialog. - * @return symbol for ws - */ -/* - define symbol runComplexDialog () ``{ - Printer::confmode = `adm; - string spoolerlabel = ""; - if (Spooler::Get () == "cups") - { - spoolerlabel = "CUPS"; - } - else - { - // is %1 in following translation text - // "Printer administration for %1" - spoolerlabel = _("Any Spooler"); - } - Wizard::SetContentsButtons ( - // Header of the dialog with all the printers - sformat (_("Printer Administration for %1"), spoolerlabel), - Wizard_hw::ConfiguredContent ( (Spooler::Get () == "cups") ? - // table header - `header (_("Default"), - // table header - _("Name"), - // table header - _("Type"), - // table header - `Center(_("Ready"))) - : - // table header - `header (_("Default"), - // table header - _("Name"), - // table header - _("Type")), - printcapTable (), - nil, nil, - `HBox ( - `HStretch (), - // push button - `PushButton (`id (`setdefault), _("&Set as Default")), - // push button - `PushButton (`id (`advanced), `opt (`key_F7), _("Ad&vanced")), - - `HStretch () - ), - nil - ), - getComplexHelp (), - Label::BackButton (), - Label::FinishButton () - ); - Wizard::RestoreBackButton (); - Wizard::RestoreAbortButton (); - UI::ChangeWidget (`id (`table), `CurrentItem, -1 == Printer::index ? 0 : Printer::index); - symbol ret = nil; - while (true) - { - ret = (symbol)UI::UserInput (); - if (ret == `table) - { - ret = `edit_button; - } - if (ret == `cancel) - ret = `abort; - - if (ret == `add_button) - { - Printer::selectPrinter (-1); - Printer::conf_detected = false; - return `add; - } - else if (ret == `edit_button || ret == `delete_button || ret == `setdefault) - { - Printer::selectPrinter ((integer)UI::QueryWidget (`id (`table), `CurrentItem)); - if (-1 != Printer::index) - { - if (ret == `edit_button) - { - return `edit; - } - else if (`delete_button == ret) - { - // message box, %1 is replaced by printer name - if (Popup::YesNo (sformat (_("Really delete printer %1?"), Printer::printer["name"]:""))) - Printer::deletePrinter (); - UI::ChangeWidget (`id (`table), `Items, printcapTable ()); - UI::ChangeWidget (`id (`table), `CurrentItem, Printer::index); - } - else - { - Printer::setDefaultPrinter (); - UI::ChangeWidget (`id (`table), `Items, printcapTable ()); - UI::ChangeWidget (`id (`table), `CurrentItem, Printer::index); - } - } - else - { - // message box - Popup::Message (_("Select a printer.")); - } - } - else if (`advanced == ret) - { - break; - } - else if (`cancel == ret || `abort == ret) - { - ret = `abort; - if (reallyAbort ()) - { - break; - } - } - if (`back == ret) - { - break; - } - if (`next == ret) - { - break; - } - } - return ret; - } -*/ - /** * Detect installation type * @return symbol `server or `client */ Modified: trunk/printer/src/modules/Printer.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/printer/src/modules/Printer.ycp?r... ============================================================================== --- trunk/printer/src/modules/Printer.ycp (original) +++ trunk/printer/src/modules/Printer.ycp Tue Apr 8 13:25:28 2008 @@ -45,7 +45,7 @@ import "URL"; import "PackageSystem"; import "URL"; - import "PackageSystem"; + import "Inetd"; ////////// ////////// Module data @@ -125,6 +125,9 @@ */ global list<map<string,any> > autodetected = []; + // support for LPD style printing (FaTE#120086) + global boolean lpd_enable=false; + string default_paper_size = nil; @@ -148,6 +151,60 @@ return default_paper_size; } +boolean getLPDSupport(){ + boolean enabled=false; + enabled = Service::Enabled("xinetd"); + y2milestone("xinetd enabled: %1", enabled); + boolean old_progress = Progress::set (false); + Inetd::Read(); + Progress::set (old_progress); + if (enabled) { + string ids = ""; + integer i = 0; + integer lpd_id = nil; + + while (size(Inetd::netd_conf) > i) { + ids = tostring( Inetd::netd_conf[i,"iid"]:nil); + if (regexpmatch(ids, "cups-lpd")) lpd_id = i; + i=i+1; + } + + if (lpd_id!=nil) enabled=Inetd::netd_conf[lpd_id, "enabled"]:false; + else { + y2warning("cups-lpd not found"); + enabled=false; + } + + } + y2milestone("LPD enabled: %1", enabled); + return enabled; +} + +void saveLPD(){ + y2milestone("saving LPD enabled: %1", lpd_enable); + string ids = ""; + integer i=0; + integer lpd_id = nil; + + while (size(Inetd::netd_conf) > i) { + ids = tostring( Inetd::netd_conf[i,"iid"]:nil); + if (regexpmatch(ids, "cups-lpd")) lpd_id = i; + i=i+1; + } + if (lpd_id!=nil) { + Inetd::netd_conf[lpd_id, "enabled"]=lpd_enable; + Inetd::netd_conf[lpd_id, "changed"]=true; + } + else { + y2warning("cups-lpd not found"); + } + + if (lpd_enable){ + Service::Enable("xinetd"); + Inetd::netd_status = 0; + } + Inetd::Write(); +} global boolean isPrinterLocal(){ map tokens = URL::Parse(printer["uri"]:""); @@ -1273,6 +1330,8 @@ printcap = maplist (map<string,any> e, printcap,``{return assignState (e, false);}); default_paper_size = getPaperSize(); + lpd_enable = getLPDSupport(); + y2milestone("Default paper size is %1", default_paper_size); if (!skip_autodetection) { @@ -1594,6 +1653,7 @@ Progress::NextStage (); // save system settings if (testAbort ()) return false; ret = saveTheConfiguration() && ret; + saveLPD(); Progress::NextStage (); // save firewall settings if (testAbort ()) return false; -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org