/[packages]/cauldron/meta-task/current/SOURCES/compssUsers.pl
ViewVC logotype

Contents of /cauldron/meta-task/current/SOURCES/compssUsers.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 389212 - (show annotations) (download)
Thu Jan 17 21:28:45 2013 UTC (9 years, 4 months ago) by tv
File MIME type: text/plain
File size: 8911 byte(s)
fix checking for multiples packages (mga#8719)
1 package tmp::compssUsers;
2
3 use common;
4 use install::pkgs;
5
6 my $low_resources = detect_devices::has_low_resources();
7 my $netbook_desktop = detect_devices::is_netbook_nettop();
8 my $light_desktop = detect_devices::need_light_desktop();
9 my $meta_class = $::o->{meta_class};
10 my $powerpack = $meta_class eq 'powerpack';
11 my $server = $meta_class eq 'server';
12
13 my $h = {
14 N_("Workstation") =>
15 [
16 { label => N_("Office Workstation"),
17 descr =>
18 N_("Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets (LibreOffice Calc, Kspread), PDF viewers, etc"),
19 flags => [ qw(OFFICE SPELLCHECK PIM ARCHIVING ), if_(!$light_desktop, qw(PUBLISHING)) ],
20 default_selected => 1,
21 required => [ qw(libreoffice-writer abiword) ],
22 },
23 if_(!$server,
24 { label => N_("Game station"),
25 descr => N_("Amusement programs: arcade, boards, strategy, etc"),
26 flags => [ qw(GAMES) ],
27 },
28 { label => N_("Multimedia station"),
29 descr => N_("Sound and video playing/editing programs"),
30 flags => [ qw(AUDIO VIDEO GRAPHICS VIDEO_EDITING) ],
31 default_selected => 1,
32 },
33 ),
34 { label => N_("Internet station"),
35 descr => N_("Set of tools to read and send mail and news (mutt, tin..) and to browse the Web"),
36 flags => [ qw(NETWORKING_WWW NETWORKING_MAIL NETWORKING_NEWS COMMUNICATIONS NETWORKING_CHAT NETWORKING_FILE_TRANSFER NETWORKING_IRC NETWORKING_INSTANT_MESSAGING NETWORKING_DNS) ],
37 default_selected => 1,
38 },
39 if_(!$server,
40 { label => N_("Network Computer (client)"),
41 descr => N_("Clients for different protocols including ssh"),
42 flags => [ qw(NETWORKING_REMOTE_ACCESS NETWORKING_FILE) ],
43 default_selected => $powerpack,
44 required => [ qw(openssh-clients samba-client) ],
45 },
46 { label => N_("Configuration"),
47 descr => N_("Tools to ease the configuration of your computer"),
48 flags => [ qw(CONFIG) ],
49 default_selected => 1,
50 },
51 { label => N_("Console Tools"),
52 descr => N_("Editors, shells, file tools, terminals"),
53 flags => [ qw(EDITORS TERMINALS TEXT_TOOLS SHELLS FILE_TOOLS) ],
54 default_selected => 1,
55 },
56 { label => N_("Development"),
57 descr => N_("C and C++ development libraries, programs and include files"),
58 flags => [ qw(DEVELOPMENT EDITORS) ],
59 required => [ 'make' ],
60 },
61 { label => N_("Documentation"),
62 descr => N_("Books and Howto's on Linux and Free Software"),
63 flags => [ qw(BOOKS) ],
64 default_selected => !$light_desktop,
65 },
66 { label => N_("LSB"),
67 descr => N_("Linux Standard Base. Third party applications support"),
68 flags => [ qw(LSB) ],
69 required => [ 'lsb-core' ],
70 },
71 ),
72 ],
73
74 N_("Server") =>
75 [
76 $server ? (
77 { label => N_("Web Server"),
78 descr => N_("Apache"),
79 flags => [ qw(NETWORKING_WWW_SERVER) ],
80 required => [ qw(apache lftp mirrordir rsync) ],
81 },
82 { label => N_("Groupware"),
83 descr => N_("Kolab Server"),
84 flags => [ qw(NETWORKING_GROUPWARE_SERVER) ],
85 },
86 { label => N_("Firewall/Router"),
87 descr => N_("Internet gateway"),
88 flags => [ qw(NETWORKING_FIREWALLING_SERVER) ],
89 },
90 { label => N_("Mail/News"),
91 descr => N_("Postfix mail server, Inn news server"),
92 flags => [ qw(NETWORKING_MAIL_SERVER NETWORKING_NEWS_SERVER) ],
93 required => [ 'postfix' ],
94 },
95 { label => N_("Directory Server"),
96 descr => N_("LDAP Server"),
97 flags => [ qw(NETWORKING_LDAP_SERVER) ],
98 required => [ 'openldap-servers' ],
99 },
100 { label => N_("FTP Server"),
101 descr => N_("ProFTPd"),
102 flags => [ qw(NETWORKING_FILE_TRANSFER_SERVER) ],
103 required => [ 'proftpd' ],
104 },
105 { label => N_("DNS/NIS"),
106 descr => N_("Domain Name and Network Information Server"),
107 flags => [ qw(NIS_SERVER NETWORKING_DNS_SERVER) ],
108 required => [ 'bind' ],
109 },
110 { label => N_("File and Printer Sharing Server"),
111 descr => N_("NFS Server, Samba server"),
112 flags => [ qw(NETWORKING_FILE_SERVER PRINTER) ],
113 required => [ qw(nfs-utils cups samba-server) ],
114 },
115 { label => N_("Database"),
116 descr => N_("PostgreSQL and MariaDB Database Server"),
117 flags => [ qw(DATABASES DATABASES_SERVER) ],
118 required => [ qw(postgresql9.1 postgresql9.2 mariadb) ],
119 },
120 ) : (
121 { label => N_("Web/FTP"),
122 descr => N_("Apache, Pro-ftpd"),
123 flags => [ qw(NETWORKING_WWW_SERVER NETWORKING_FILE_TRANSFER_SERVER) ],
124 required => [ qw(apache proftpd rsync) ],
125 },
126 { label => N_("Mail"),
127 descr => N_("Postfix mail server"),
128 flags => [ qw(NETWORKING_MAIL_SERVER) ],
129 required => [ 'postfix' ],
130 },
131 { label => N_("Database"),
132 descr => N_("PostgreSQL or MariaDB database server"),
133 flags => [ qw(DATABASES DATABASES_SERVER) ],
134 required => [ qw(postgresql9.1 postgresql9.2 mariadb) ],
135 },
136 { label => N_("Firewall/Router"),
137 descr => N_("Internet gateway"),
138 flags => [ qw(NETWORKING_FIREWALLING_SERVER) ],
139 },
140 { label => N_("Network Computer server"),
141 descr => N_("NFS server, SMB server, Proxy server, ssh server"),
142 flags => [ qw(NETWORKING_FILE_SERVER NETWORKING_REMOTE_ACCESS_SERVER) ],
143 required => [ qw(nfs-utils cups samba-server openssh-server) ],
144 },
145 ),
146 ],
147
148 N_("Graphical Environment") =>
149 [
150 { label => N_("KDE Workstation"),
151 descr => N_("The K Desktop Environment, the basic graphical environment with a collection of accompanying tools"),
152 flags => [ qw(KDE X ACCESSIBILITY THEMES) ],
153 default_selected => !$light_desktop,
154 required => [ 'task-kde4-minimal' ],
155 },
156 { label => N_("GNOME Workstation"),
157 descr => N_("A graphical environment with user-friendly set of applications and desktop tools"),
158 flags => [ qw(GNOME X THEMES), if_(!$light_desktop, qw(ACCESSIBILITY)) ],
159 default_selected => $netbook_desktop,
160 required => [ 'task-gnome-minimal' ],
161 },
162 { label => N_("LXDE Desktop"),
163 flags => [ qw(LXDE X ACCESSIBILITY) ],
164 descr => N_("A lightweight & fast graphical environment with user-friendly set of applications and desktop tools"),
165 default_selected => $low_resources,
166 },
167 { label => N_("Other Graphical Desktops"),
168 descr => N_("Window Maker, Enlightenment, Fvwm, etc"),
169 flags => [ qw(GRAPHICAL_DESKTOP X ACCESSIBILITY E17 XFCE) ],
170 },
171 ],
172
173 if_($server,
174 N_("Development") =>
175 [
176 { label => N_("Development"),
177 descr => N_("C and C++ development libraries, programs and include files"),
178 flags => [ qw(DEVELOPMENT EDITORS) ],
179 default_selected => 1,
180 },
181 { label => N_("Documentation"),
182 descr => N_("Books and Howto's on Linux and Free Software"),
183 flags => [ qw(BOOKS) ],
184 },
185 { label => N_("LSB"),
186 descr => N_("Linux Standard Base. Third party applications support"),
187 flags => [ qw(LSB) ],
188 },
189 ],
190
191 N_("Utilities") =>
192 [
193 { label => N_("SSH Server"),
194 descr => N_("SSH Server"),
195 flags => [ qw(NETWORKING_REMOTE_ACCESS_SERVER) ],
196 default_selected => 1,
197 },
198 { label => N_("Webmin"),
199 descr => N_("Webmin Remote Configuration Server"),
200 flags => [ qw(WEBMIN) ],
201 default_selected => 1,
202 },
203 { label => N_("Network Utilities/Monitoring"),
204 descr => N_("Monitoring tools, processes accounting, tcpdump, nmap, ..."),
205 flags => [ qw(MONITORING NETWORKING_FILE) ],
206 default_selected => 1,
207 },
208 { label => N_("Mageia Wizards"),
209 descr => N_("Wizards to configure server"),
210 flags => [ qw(WIZARDS) ],
211 default_selected => 1,
212 },
213 ],
214 ),
215 };
216
217 foreach my $path (keys %$h) {
218 foreach (@{$h->{$path}}) {
219 $_->{path} = $path;
220 $_->{uid} = join('|', $path, $_->{label});
221 }
222 }
223
224 sub _filter {
225 grep { $_->{required} ? (any { install::pkgs::packageByName($::o->{packages}, $_ ) } @{$_->{required}}) : 1 } map { @$_ } @_;
226 }
227
228 my $compssUsers = [ _filter(values %$h) ];
229
230 my $gtk_display_compssUsers = sub {
231 my ($entry) = @_;
232
233 require ugtk2;
234 ugtk2->import(qw(:helpers :wrappers :create));
235 require mygtk2;
236 mygtk2->import(qw(gtknew));
237
238 my $entries_in_path = sub {
239 my ($path) = @_;
240 my @items = map { $entry->($_) } _filter($h->{$path});
241
242 # ensure we have an even number of items:
243 if (@items % 2) {
244 my @last_items = (pop @items, gtknew('Label'));
245 # RTL support:
246 @last_items = reverse @last_items if lang::text_direction_rtl();
247 push @items, @last_items;
248 }
249
250 gtknew('Title2', label => mygtk2::asteriskize(translate($path))),
251 gtknew('Table', children => [ group_by2(@items) ], homogeneous => 1),
252 Gtk2::HSeparator->new;
253 };
254
255 gtkpack__(Gtk2::VBox->new,
256 $entries_in_path->('Workstation'),
257 $server ? $entries_in_path->('Server') : (),
258 $server ? (
259 $entries_in_path->('Graphical Environment'),
260 $entries_in_path->('Development'),
261 $entries_in_path->('Utilities'),
262 ) : (
263 $entries_in_path->('Server'),
264 $entries_in_path->('Graphical Environment'),
265 ),
266 );
267 };
268
269 $compssUsers, $gtk_display_compssUsers;

  ViewVC Help
Powered by ViewVC 1.1.28