summaryrefslogtreecommitdiffstats
path: root/docs/README
Commit message (Expand)AuthorAgeFilesLines
* doc update: we switched to squashfs a long time agoThierry Vignaud2012-05-241-2/+2
* Synthesized commit during git-svn import combining previous Mandriva history ...Mageia SVN-Git Migration2011-02-061-3/+3
* update the *old* docPascal Rigaux2008-10-091-57/+18
* update docPascal Rigaux2007-09-201-2/+3
* update docPascal Rigaux2007-08-211-3/+3
* update some docPascal Rigaux2007-08-211-13/+2
* fix urlPascal Rigaux2007-07-021-1/+1
* fix linksPascal Rigaux2007-06-251-2/+2
* re-sync after the big svn lossPascal Rigaux2007-04-251-51/+8
* update auto_install doc urlPascal Rigaux2006-03-021-1/+1
* adapt to new cvs web urlPascal Rigaux2006-02-271-1/+1
* fixPascal Rigaux2005-08-091-1/+1
* replace mandrake with mandrivaPascal Rigaux2005-08-091-4/+4
* *** empty log message ***Pascal Rigaux2005-02-081-0/+22
* - drop oem & recovery code (which was broken)Pascal Rigaux2004-11-291-79/+0
* major switch from ramdisk to clpPascal Rigaux2004-11-161-46/+7
* adapt to new directories layout:Pascal Rigaux2004-07-261-23/+23
* replace "Mandrake Linux" with "Mandrakelinux"Pascal Rigaux2004-07-191-2/+2
* quick update, not completePascal Rigaux2004-05-031-29/+9
* update netauto docGuillaume Cottenceau2004-02-041-1/+1
* remove some really obsolete docPascal Rigaux2003-07-291-10/+2
* some fixes and improvementsGuillaume Cottenceau2003-04-041-9/+52
* refine info on blank.imgGuillaume Cottenceau2002-09-271-1/+5
* move /root/* files (ddebug.log, install.log, report.bug,Guillaume Cottenceau2002-01-291-4/+4
* enable easy screenshot'ingPascal Rigaux2001-12-121-2/+3
* save stage1.log and have it in report.bugGuillaume Cottenceau2001-12-041-2/+4
* New adress where to find the kernel BOOTChmouel Boudjnah2001-09-291-1/+1
* explain how to get the boot kernelsPascal Rigaux2001-09-121-0/+8
* s/Linux-Mandrake/Mandrake Linux/Pascal Rigaux2001-06-211-1/+1
* s/Linux-Mandrake/Mandrake Linux/Pascal Rigaux2001-06-211-1/+1
* s/gi.tar.bz2/DrakX-*.src.rpm/Pascal Rigaux2001-04-301-1/+1
* added some more comments for DrakX code source and usage.Francois Pons2001-04-261-68/+70
* support more than one boot kernel :-)Guillaume Cottenceau2001-03-291-3/+4
* add cvs howtoPascal Rigaux2001-03-211-0/+8
* *** empty log message ***Pascal Rigaux2001-02-131-5/+1
* fix doc about Mandrake/base/compssMystery Man 5532001-02-121-1/+2
* - deprecate "hdreiser.img" since we have room for "reiserfs.o" in "hd.img"Guillaume Cottenceau2001-01-291-1/+0
* update docsGuillaume Cottenceau2001-01-251-1/+1
* - fix anonymous CVSGuillaume Cottenceau2001-01-241-38/+55
* small updatePascal Rigaux2001-01-101-2/+2
* fix CVSROOTPascal Rigaux2000-12-151-1/+1
* no_commentPascal Rigaux2000-10-051-1/+1
* no_commentPascal Rigaux2000-09-141-0/+12
* no_commentPascal Rigaux2000-08-111-1/+1
* no_commentPascal Rigaux2000-07-131-0/+72
* no_commentPascal Rigaux2000-07-101-0/+29
* no_commentPascal Rigaux2000-06-281-1/+1
* no_commentPascal Rigaux2000-04-051-22/+17
* no_commentPascal Rigaux2000-03-261-0/+35
* no_commentPascal Rigaux2000-03-051-1/+1
n class="hl kwb">$_->widget } $box->children; my $info; if ($entry) { $info = diskdrake::interactive::format_raw_hd_info($entry); } gtkpack($box, gtkadd(Gtk2::Frame->new(N("Details")), gtkset_justify(Gtk2::Label->new($info), 'left'))); } sub per_entry_action_box { my ($box, $kind, $entry) = @_; $_->widget->destroy foreach $box->children; my @buttons; push @buttons, map { my $s = $_; gtksignal_connect(Gtk2::Button->new(translate($s)), clicked => sub { try($kind, $s, {}, $entry) }); } (if_($entry->{isMounted}, N_("Unmount")), if_($entry->{mntpoint} && !$entry->{isMounted}, N_("Mount"))) if $entry; my @l = ( if_($entry, N_("Mount point") => \&raw_hd_mount_point), if_($entry && $entry->{mntpoint}, N_("Options") => \&raw_hd_options), N_("Cancel") => sub {}, N_("Done") => \&done, ); push @buttons, map { my ($txt, $f) = @$_; gtksignal_connect(Gtk2::Button->new(translate($txt)), clicked => sub { try_($kind, $txt, $f, $entry) }); } group_by2(@l); gtkadd($box, gtkpack(Gtk2::HBox->new(0,0), @buttons)); } sub done { my ($in) = @_; diskdrake::interactive::Done($in, $all_hds); } sub set_export_icon { my ($entry, $w) = @_; $entry ||= {}; my $icon = $icons{$entry->{isMounted} ? 'mounted' : $entry->{mntpoint} ? 'has_mntpoint' : 'default'}; ugtk::ctree_set_icon($tree, $w, @$icon); } sub update { my ($kind) = @_; per_entry_action_box($kind->{action_box}, $kind, $current_entry); per_entry_info_box($kind->{info_box}, $kind, $current_entry); set_export_icon($current_entry, $current_leaf) if $current_entry; } sub find_fstab_entry { my ($kind, $e, $add_or_not) = @_; my $fs_entry = $kind->to_fstab_entry($e); if (my ($fs_entry_) = grep { $fs_entry->{device} eq $_->{device} } @{$kind->{val}}) { $fs_entry_; } elsif ($add_or_not) { push @{$kind->{val}}, $fs_entry; $fs_entry; } else { undef; } } sub import_ctree { my ($kind, $info_box) = @_; my (%servers_displayed, %wservers, %wexports, $inside); $tree = Gtk2::CTree->new(1, 0); $tree->set_column_auto_resize(0, 1); $tree->set_selection_mode('browse'); $tree->set_row_height($tree->style->font->ascent + $tree->style->font->descent + 1); foreach ('default', 'server', 'has_mntpoint', 'mounted') { $icons{$_} = [ gtkcreate_png("smbnfs_$_") ]; } my $add_server = sub { my ($server) = @_; my $name = $server->{name} || $server->{ip}; $servers_displayed{$name} ||= do { my $w = $tree->insert_node(undef, undef, [$name], 5, (undef) x 4, 0, 0); ugtk::ctree_set_icon($tree, $w, @{$icons{server}}); $wservers{$w->{_gtk}} = $server; $w; }; }; my $find_exports; $find_exports = sub { my ($server) = @_; my @l = eval { $kind->find_exports($server) }; return @l if !$@; if ($server->{username}) { $in->ask_warn('', N("Can't login using username %s (bad password?)", $server->{username})); network::smb::remove_bad_credentials($server); } else { if (my @l = network::smb::authentifications_available($server)) { my $user = $in->ask_from_list_(N("Domain Authentication Required"), N("Which username"), [ @l, N_("Another one") ]) or return; if ($user ne 'Another one') { network::smb::read_credentials($server, $user); goto $find_exports; } } } if ($in->ask_from(N("Domain Authentication Required"), N("Please enter your username, password and domain name to access this host."), [ { label => N("Username"), val => \$server->{username} }, { label => N("Password"), val => \$server->{password}, hidden => 1 }, { label => N("Domain"), val => \$server->{domain} }, ])) { goto $find_exports; } else { delete $server->{username}; (); } }; my $add_exports = sub { my ($node) = @_; $tree->expand($node); foreach ($find_exports->($wservers{$node->{_gtk}} || return)) { #- can't die here since insert_node provoque a tree_select_row before the %wservers is filled my $w = $tree->insert_node($node, undef, [$kind->to_string($_)], 5, (undef) x 4, 1, 0); set_export_icon(find_fstab_entry($kind, $_), $w); $wexports{$w->{_gtk}} = $_; } }; { my $search = Gtk2::Button->new(N("Search servers")); gtkpack__($info_box, gtksignal_connect($search, clicked => sub { $add_server->($_) foreach sort { $a->{name} cmp $b->{name} } $kind->find_servers; $search->destroy; })); } foreach (uniq(map { ($kind->from_dev($_->{device}))[0] } @{$kind->{val}})) { my $node = $add_server->({ name => $_ }); $add_exports->($node); } $tree->signal_connect(tree_select_row => sub { my $curr = $_[1]; $inside and return; $inside = 1; if ($curr->row->is_leaf) { $current_leaf = $curr; $current_entry = find_fstab_entry($kind, $wexports{$curr->{_gtk}} || die(''), 'add'); } else { if (!$curr->row->children) { gtkset_mousecursor_wait($tree->window); ugtk2::flush(); $add_exports->($curr); gtkset_mousecursor_normal($tree->window); } $current_entry = undef; } update($kind); $inside = 0; }); $tree; } sub add_smbnfs { my ($widget, $kind) = @_; die if $kind->{main_box}; $kind->{info_box} = Gtk2::VBox->new(0,0); $kind->{display_box} = createScrolledWindow(import_ctree($kind, $kind->{info_box})); $kind->{action_box} = Gtk2::HBox->new(0,0); $kind->{main_box} = gtkpack_(Gtk2::VBox->new(0,7), 1, gtkpack(Gtk2::HBox->new(0,7), gtkset_size_request($kind->{display_box}, 200, 0), $kind->{info_box}), 0, $kind->{action_box}, ); $widget->add($kind->{main_box}); $current_entry = undef; update($kind); $kind; } sub nfs2kind { network::nfs->new({ type => 'nfs', name => 'NFS', val => $all_hds->{nfss}, no_auto => 1 }); } sub smb2kind { network::smb->new({ type => 'smb', name => 'Samba', val => $all_hds->{smbs}, no_auto => 1 }); } 1;