package tmp::compssUsers; use common; use ugtk2 qw(:helpers :wrappers :create); my $low_resources = availableRamMB() < 100 || detect_devices::ix86_cpu_frequency() < 450; my $meta_class = $::o->{meta_class}; my $desktop = $meta_class eq 'desktop'; my $powerpack = $meta_class eq 'powerpack'; my $server = $meta_class eq 'server'; my $h = { $desktop ? ( "Discovery" => [ { label => ("Discovery"), descr => (""), flags => [ qw(OFFICE SPELLCHECK PUBLISHING PIM ARCHIVING PRINTER AUDIO VIDEO GRAPHICS NETWORKING_WWW NETWORKING_MAIL NETWORKING_NEWS COMMUNICATIONS NETWORKING_CHAT NETWORKING_FILE_TRANSFER NETWORKING_IRC NETWORKING_INSTANT_MESSAGING NETWORKING_DNS CONFIG TERMINALS TEXT_TOOLS SHELLS FILE_TOOLS KDE X BOOKS) ], default_selected => 1, }, ], ) : ( N_("Workstation") => [ { label => N_("Office Workstation"), descr => $server ? N_("Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets (OpenOffice.org Calc, Kspread), PDF viewers, etc") : N_("Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, gnumeric), pdf viewers, etc"), flags => [ qw(OFFICE SPELLCHECK PUBLISHING PIM ARCHIVING PRINTER) ], default_selected => 1, }, if_(!$server, { label => N_("Game station"), descr => N_("Amusement programs: arcade, boards, strategy, etc"), flags => [ qw(GAMES) ], }, { label => N_("Multimedia station"), descr => N_("Sound and video playing/editing programs"), flags => [ qw(AUDIO VIDEO GRAPHICS) ], default_selected => 1, }, ), { label => N_("Internet station"), descr => N_("Set of tools to read and send mail and news (mutt, tin..) and to browse the Web"), flags => [ qw(NETWORKING_WWW NETWORKING_MAIL NETWORKING_NEWS COMMUNICATIONS NETWORKING_CHAT NETWORKING_FILE_TRANSFER NETWORKING_IRC NETWORKING_INSTANT_MESSAGING NETWORKING_DNS) ], default_selected => 1, }, if_(!$server, { label => N_("Network Computer (client)"), descr => N_("Clients for different protocols including ssh"), flags => [ qw(NETWORKING_REMOTE_ACCESS NETWORKING_FILE) ], default_selected => $powerpack, }, { label => N_("Configuration"), descr => N_("Tools to ease the configuration of your computer"), flags => [ qw(CONFIG) ], default_selected => 1, }, { label => N_("Console Tools"), descr => N_("Editors, shells, file tools, terminals"), flags => [ qw(EDITORS TERMINALS TEXT_TOOLS SHELLS FILE_TOOLS) ], default_selected => 1, }, { label => N_("Development"), descr => N_("C and C++ development libraries, programs and include files"), flags => [ qw(DEVELOPMENT EDITORS) ], default_selected => $powerpack, }, { label => N_("Documentation"), descr => N_("Books and Howto's on Linux and Free Software"), flags => [ qw(BOOKS) ], default_selected => $powerpack, }, { label => N_("LSB"), descr => N_("Linux Standard Base. Third party applications support"), flags => [ qw(LSB) ], }, ), ], N_("Server") => [ $server ? ( { label => N_("Web Server"), descr => N_("Apache"), flags => [ qw(NETWORKING_WWW_SERVER) ], }, { label => N_("Groupware"), descr => N_("Kolab Server"), flags => [ qw(NETWORKING_GROUPWARE_SERVER) ], }, { label => N_("Firewall/Router"), descr => N_("Internet gateway"), flags => [ qw(NETWORKING_FIREWALLING_SERVER) ], }, { label => N_("Mail/News"), descr => N_("Postfix mail server, Inn news server"), flags => [ qw(NETWORKING_MAIL_SERVER NETWORKING_NEWS_SERVER) ], }, { label => N_("Directory Server"), descr => N_("LDAP Server"), flags => [ qw(NETWORKING_LDAP_SERVER) ], }, { label => N_("FTP Server"), descr => N_("ProFTPd"), flags => [ qw(NETWORKING_FILE_TRANSFER_SERVER) ], }, { label => N_("DNS/NIS"), descr => N_("Domain Name and Network Information Server"), flags => [ qw(NIS_SERVER NETWORKING_DNS_SERVER) ], }, { label => N_("File and Printer Sharing Server"), descr => N_("NFS Server, Samba server"), flags => [ qw(NETWORKING_FILE_SERVER PRINTER) ], }, { label => N_("Database"), descr => N_("PostgreSQL and MySQL Database Server"), flags => [ qw(DATABASES DATABASES_SERVER) ], }, ) : ( { label => N_("Web/FTP"), descr => N_("Apache, Pro-ftpd"), flags => [ qw(NETWORKING_WWW_SERVER NETWORKING_FILE_TRANSFER_SERVER) ], }, { label => N_("Mail"), descr => N_("Postfix mail server"), flags => [ qw(NETWORKING_MAIL_SERVER) ], }, { label => N_("Database"), descr => N_("PostgreSQL or MySQL database server"), flags => [ qw(DATABASES DATABASES_SERVER) ], }, { label => N_("Firewall/Router"), descr => N_("Internet gateway"), flags => [ qw(NETWORKING_FIREWALLING_SERVER) ], }, { label => N_("Network Computer server"), descr => N_("NFS server, SMB server, Proxy server, ssh server"), flags => [ qw(NETWORKING_FILE_SERVER NETWORKING_REMOTE_ACCESS_SERVER) ], }, ), ], N_("Graphical Environment") => [ { label => N_("KDE Workstation"), descr => N_("The K Desktop Environment, the basic graphical environment with a collection of accompanying tools"), flags => [ qw(KDE X ACCESSIBILITY) ], default_selected => !$low_resources, }, { label => N_("GNOME Workstation"), descr => N_("A graphical environment with user-friendly set of applications and desktop tools"), flags => [ qw(GNOME X ACCESSIBILITY) ], }, { label => N_("IceWm Desktop"), flags => [ qw(ICEWM X ACCESSIBILITY) ], default_selected => $low_resources, }, { label => N_("Other Graphical Desktops"), descr => N_("Window Maker, Enlightenment, Fvwm, etc"), flags => [ qw(GRAPHICAL_DESKTOP X ACCESSIBILITY) ], }, ], if_($server, N_("Development") => [ { label => N_("Development"), descr => N_("C and C++ development libraries, programs and include files"), flags => [ qw(DEVELOPMENT EDITORS) ], default_selected => 1, }, { label => N_("Documentation"), descr => N_("Books and Howto's on Linux and Free Software"), flags => [ qw(BOOKS) ], }, { label => N_("LSB"), descr => N_("Linux Standard Base. Third party applications support"), flags => [ qw(LSB) ], }, ], N_("Utilities") => [ { label => N_("SSH Server"), descr => N_("SSH Server"), flags => [ qw(NETWORKING_REMOTE_ACCESS_SERVER) ], default_selected => 1, }, { label => N_("Webmin"), descr => N_("Webmin Remote Configuration Server"), flags => [ qw(WEBMIN) ], default_selected => 1, }, { label => N_("Network Utilities/Monitoring"), descr => N_("Monitoring tools, processes accounting, tcpdump, nmap, ..."), flags => [ qw(MONITORING NETWORKING_FILE) ], default_selected => 1, }, { label => N_("Mandriva Wizards"), descr => N_("Wizards to configure server"), flags => [ qw(WIZARDS) ], default_selected => 1, }, ], ), ), }; foreach my $path (keys %$h) { foreach (@{$h->{$path}}) { $_->{path} = $path; $_->{uid} = join('|', $path, $_->{label}); } } my $compssUsers = [ map { @$_ } values %$h ]; my $gtk_display_compssUsers = sub { my ($entry) = @_; my $entries_in_path = sub { my ($path) = @_; translate($path), map { $entry->($_) } @{$h->{$path}}; }; gtkpack_(Gtk2::VBox->new(0, 0), 1, gtkpack_(Gtk2::HBox->new(0, 0), 1, gtkpack(Gtk2::VBox->new(0, 0), $entries_in_path->('Workstation'), $server ? $entries_in_path->('Server') : (), ), 0, gtkpack(Gtk2::VBox->new(0, 0), $server ? ( $entries_in_path->('Graphical Environment'), $entries_in_path->('Development'), $entries_in_path->('Utilities'), ) : ( $entries_in_path->('Server'), '', $entries_in_path->('Graphical Environment'), ), ), ), ); }; $compssUsers, $gtk_display_compssUsers;