summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile16
-rw-r--r--docs/TODO4
-rw-r--r--perl-install/ChangeLog8
-rw-r--r--perl-install/install2.pm10
-rw-r--r--perl-install/install_steps_gtk.pm22
-rw-r--r--perl-install/install_steps_interactive.pm7
-rw-r--r--perl-install/interactive.pm17
-rw-r--r--perl-install/interactive_gtk.pm10
-rw-r--r--perl-install/interactive_newt.pm7
-rw-r--r--perl-install/services.pm107
-rwxr-xr-xperl-install/standalone/drakxservices29
-rwxr-xr-xupdate_kernel2
12 files changed, 186 insertions, 53 deletions
diff --git a/Makefile b/Makefile
index 4cc0c1d6f..c0d340d6c 100644
--- a/Makefile
+++ b/Makefile
@@ -19,8 +19,8 @@ DIRS += lnx4win
endif
ROOTDEST = /export
-UPLOAD_DEST_ = ~/oxygen
-UPLOAD_DEST = $(UPLOAD_DEST_)/oxygen
+UPLOAD_DEST_ = ~/cooker
+UPLOAD_DEST = $(UPLOAD_DEST_)/cooker
UPLOAD_DEST_CONTRIB = $(UPLOAD_DEST_)/contrib
AUTOBOOT = $(ROOTDEST)/dosutils/autoboot/mdkinst
@@ -81,12 +81,12 @@ upload: tar install
touch /tmp/mdkinst_done
cd $(ROOTDEST)/Mandrake ; tar cfz mdkinst.tgz mdkinst
-# lftp -c "open -u distrib mandrakesoft.com; cd $(UPLOAD_DEST)/images ; mput $(ROOTDEST)/images/*.img"
- lftp -c "open -u distrib mandrakesoft.com; cd ~/tmp ; put $(ROOTDEST)/Mandrake/mdkinst.tgz ; put /tmp/mdkinst_done ; cd $(UPLOAD_DEST)/Mandrake/base ; lcd $(ROOTDEST)/Mandrake/base ; put mdkinst_stage2.gz compss compssList compssUsers ; cd $(UPLOAD_DEST)/misc ; lcd ~/gi/tools/ ; put make_mdkinst_stage2 build_archive genhdlist" #,gendepslist,rpm2header"
- lftp -c "open -u distrib mandrakesoft.com; cd $(UPLOAD_DEST)/dosutils/autoboot/mdkinst ; put $(ROOTDEST)/dosutils/autoboot/mdkinst/vmlinuz ; mput $(ROOTDEST)/dosutils/autoboot/mdkinst/initrd.*"
- lftp -c "open -u distrib mandrakesoft.com; cd $(UPLOAD_DEST)/lnx4win ; lcd $(ROOTDEST)/lnx4win ; put initrd.gz vmlinuz"
-# lftp -c "open -u distrib mandrakesoft.com; cd $(UPLOAD_DEST_CONTRIB)/others/src ; put ../gi.tar.bz2"
-# rm -f $(ROOTDEST)/Mandrake/mdkinst.tgz
+ lftp -c "open -u devel mandrakesoft.com; cd $(UPLOAD_DEST)/images ; mput $(ROOTDEST)/images/*.img"
+ lftp -c "open -u devel mandrakesoft.com; cd ~/tmp ; put $(ROOTDEST)/Mandrake/mdkinst.tgz ; put /tmp/mdkinst_done ; cd $(UPLOAD_DEST)/Mandrake/base ; lcd $(ROOTDEST)/Mandrake/base ; put mdkinst_stage2.gz compss compssList compssUsers ; cd $(UPLOAD_DEST)/misc ; lcd ~/gi/tools/ ; put make_mdkinst_stage2 build_archive genhdlist" #,gendepslist,rpm2header"
+ lftp -c "open -u devel mandrakesoft.com; cd $(UPLOAD_DEST)/dosutils/autoboot/mdkinst ; put $(ROOTDEST)/dosutils/autoboot/mdkinst/vmlinuz ; mput $(ROOTDEST)/dosutils/autoboot/mdkinst/initrd.*"
+ lftp -c "open -u devel mandrakesoft.com; cd $(UPLOAD_DEST)/lnx4win ; lcd $(ROOTDEST)/lnx4win ; put initrd.gz vmlinuz"
+ lftp -c "open -u devel mandrakesoft.com; cd $(UPLOAD_DEST_CONTRIB)/others/src ; put ../gi.tar.bz2"
+ rm -f $(ROOTDEST)/Mandrake/mdkinst.tgz
rm -f /tmp/mdkinst_done
# mkisofs -r -J -b images/cdrom.img -c images/boot.cat /tmp/r /mnt/disk/ | cdrecord -v -eject speed=6 dev=1,0 -
diff --git a/docs/TODO b/docs/TODO
index 6fb2ebb07..870b3a305 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -7,6 +7,8 @@ after clear all and auto allocate, try maximal size available).
-to test--------------------------------------------------------------------------------
+configure services at install
+
what happens if a module fails to insmod (scsi step), in beginner/normal/expert
fstab must be sorted (/usr/local after /usr)
@@ -162,6 +164,8 @@ have a better time estimation of the remaining time in install packages
-hardware-------------------------------------------------------------------------------
+token ring is tr0 not eth0
+
I have Mandrake 6.1 installed and working on a ThinkPad 770.
To enable the PCMCIA Token ring I have to append the following line to
/etc/pcmcia/config.opts
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog
index 21fa10787..6e293831a 100644
--- a/perl-install/ChangeLog
+++ b/perl-install/ChangeLog
@@ -1,3 +1,11 @@
+2000-02-21 Pixel <pixel@mandrakesoft.com>
+
+ * interactive.pm: add ask_many_from_list_with_help and
+ ask_many_from_list_with_help_ref
+
+ * services.pm: creation. Handle what was in
+ standalone/drakxservices
+
2000-02-18 Pixel <pixel@mandrakesoft.com>
* install_steps_gtk.pm (createXconf): added /dev/ (X wants
diff --git a/perl-install/install2.pm b/perl-install/install2.pm
index 68846bcaa..3c7e89b27 100644
--- a/perl-install/install2.pm
+++ b/perl-install/install2.pm
@@ -54,7 +54,7 @@ my (%installSteps, @orderedInstallSteps);
configureNetwork => [ __("Configure networking"), 1, 1, 'beginner', "formatPartitions" ],
installCrypto => [ __("Cryptographic"), 1, 1, '!expert', "configureNetwork" ],
configureTimezone => [ __("Configure timezone"), 1, 1, '', "doInstallStep" ],
-#- configureServices => [ __("Configure services"), 0, 0, '' ],
+ configureServices => [ __("Configure services"), 1, 1, '!expert', "doInstallStep" ],
configurePrinter => [ __("Configure printer"), 1, 0, '', "doInstallStep" ],
setRootPassword => [ __("Set root password"), 1, 1, '', "formatPartitions" ],
addUser => [ __("Add a user"), 1, 1, '', "doInstallStep" ],
@@ -430,13 +430,9 @@ sub configureTimezone {
$o->timeConfig($f, $clicked);
}
#------------------------------------------------------------------------------
-sub configureServices {
- return if $o->{lnx4win};
-
- $o->servicesConfig;
-}
+sub configureServices { $o->servicesConfig }
#------------------------------------------------------------------------------
-sub configurePrinter { $o->printerConfig }
+sub configurePrinter { $o->printerConfig }
#------------------------------------------------------------------------------
sub setRootPassword {
return if $o->{isUpgrade};
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm
index 8a20550f9..557a9cab3 100644
--- a/perl-install/install_steps_gtk.pm
+++ b/perl-install/install_steps_gtk.pm
@@ -33,11 +33,13 @@ use lang;
my $w_help;
my $itemsNB = 1;
my (@background1, @background2);
-my ($width, $height) = (640, 480);
-my ($stepswidth, $stepsheight) = (140, $height);
-my ($logowidth, $logoheight) = ($width - $stepswidth, 40);
-my ($helpwidth, $helpheight) = ($width - $stepswidth, 100);
-my ($windowwidth, $windowheight) = ($width - $stepswidth, $height - $helpheight - $logoheight);
+
+#- initialised in function init_sizes
+my ($width, $height);
+my ($stepswidth, $stepsheight);
+my ($logowidth, $logoheight);
+my ($helpwidth, $helpheight);
+my ($windowwidth, $windowheight);
my @themes_vga16 = qw(blue blackwhite savane);
my @themes = qw(DarkMarble marble3d blueHeart);
@@ -219,6 +221,7 @@ sub new($$) {
}
@themes = @themes_vga16 if $o->{simple_themes} || $o->{vga16};
+ init_sizes();
install_theme($o);
create_logo_window($o);
@@ -772,6 +775,15 @@ sub create_logo_window() {
$o->{logo_window} = $w;
}
+sub init_sizes() {
+# ($height, $width) = (480, 640);
+ ($height, $width) = my_gtk::gtkroot()->get_size;
+ ($stepswidth, $stepsheight) = (140, $height);
+ ($logowidth, $logoheight) = ($width - $stepswidth, 40);
+ ($helpwidth, $helpheight) = ($width - $stepswidth, 100);
+ ($windowwidth, $windowheight) = ($width - $stepswidth, $height - $helpheight - $logoheight);
+}
+
#------------------------------------------------------------------------------
sub createXconf($$$) {
my ($file, $mouse_type, $mouse_dev, $wacom_dev) = @_;
diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm
index 731c6ba3d..261fc0d47 100644
--- a/perl-install/install_steps_interactive.pm
+++ b/perl-install/install_steps_interactive.pm
@@ -24,6 +24,7 @@ use raid;
use mouse;
use modules;
use lang;
+use any;
use keyboard;
use fs;
use log;
@@ -551,7 +552,11 @@ sub timeConfig {
}
#------------------------------------------------------------------------------
-#-sub servicesConfig {}
+sub servicesConfig {
+ my ($o) = @_;
+ any::drakxservices($o, $o->{prefix});
+}
+
#------------------------------------------------------------------------------
sub printerConfig($) {
my ($o) = @_;
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm
index 79df5be2c..ac8ced5a2 100644
--- a/perl-install/interactive.pm
+++ b/perl-install/interactive.pm
@@ -112,12 +112,17 @@ sub ask_from_list2($$$$;$) {
$o->ask_from_listW($title, [ deref($message) ], $l, $def || $l->[0]);
}
-sub ask_many_from_list_ref($$$$;$) {
+sub ask_many_from_list_ref {
my ($o, $title, $message, $l, $val) = @_;
return 1 if @$l == 0;
$o->ask_many_from_list_refW($title, [ deref($message) ], $l, $val);
}
-sub ask_many_from_list($$$$;$) {
+sub ask_many_from_list_with_help_ref {
+ my ($o, $title, $message, $l, $help, $val) = @_;
+ return 1 if @$l == 0;
+ $o->ask_many_from_list_with_help_refW($title, [ deref($message) ], $l, $help, $val);
+}
+sub ask_many_from_list {
my ($o, $title, $message, $l, $def) = @_;
my $val = [ map { my $i = $_; \$i } @$def ];
@@ -125,6 +130,14 @@ sub ask_many_from_list($$$$;$) {
$o->ask_many_from_list_ref($title, $message, $l, $val) ?
[ map { $$_ } @$val ] : undef;
}
+sub ask_many_from_list_with_help {
+ my ($o, $title, $message, $l, $help, $def) = @_;
+
+ my $val = [ map { my $i = $_; \$i } @$def ];
+
+ $o->ask_many_from_list_with_help_ref($title, $message, $l, $help, $val) ?
+ [ map { $$_ } @$val ] : undef;
+}
sub ask_from_entry {
my ($o, $title, $message, $label, $def, %callback) = @_;
diff --git a/perl-install/interactive_gtk.pm b/perl-install/interactive_gtk.pm
index 41338477a..4b99d47d0 100644
--- a/perl-install/interactive_gtk.pm
+++ b/perl-install/interactive_gtk.pm
@@ -53,13 +53,20 @@ sub ask_from_listW {
$r or die "ask_from_list cancel";
}
-sub ask_many_from_list_refW($$$$$) {
+sub ask_many_from_list_refW {
my ($o, $title, $messages, $list, $val) = @_;
+ ask_many_from_list_with_help_refW($o, $title, $messages, $list, undef, $val)
+}
+
+sub ask_many_from_list_with_help_refW {
+ my ($o, $title, $messages, $list, $help, $val) = @_;
my $w = my_gtk->new('', %$o);
+ my $tips = new Gtk::Tooltips;
my $box = gtkpack(new Gtk::VBox(0,0),
map_index {
my $i = $::i;
my $o = Gtk::CheckButton->new($_);
+ $tips->set_tip($o, $help->[$i]) if $help->[$i];
$o->set_active(${$val->[$i]});
$o->signal_connect(clicked => sub { invbool \${$val->[$i]} });
$o;
@@ -74,7 +81,6 @@ sub ask_many_from_list_refW($$$$$) {
$w->main && $val;
}
-
sub ask_from_entries_refW {
my ($o, $title, $messages, $l, $val, %hcallback) = @_;
my ($title_, @okcancel) = deref($title);
diff --git a/perl-install/interactive_newt.pm b/perl-install/interactive_newt.pm
index 6fbc18d3c..3a00a36b0 100644
--- a/perl-install/interactive_newt.pm
+++ b/perl-install/interactive_newt.pm
@@ -78,7 +78,12 @@ sub ask_from_listW {
}
}
-sub ask_many_from_list_refW($$$$$) {
+sub ask_many_from_list_with_help_refW {
+ my ($o, $title, $messages, $list, $help, $val) = @_;
+ ask_many_from_list_refW($o, $title, $messages, $list, $val);
+}
+
+sub ask_many_from_list_refW {
my ($o, $title, $messages, $list, $val) = @_;
my $height = min(int @$list, 18);
diff --git a/perl-install/services.pm b/perl-install/services.pm
new file mode 100644
index 000000000..6e838cc05
--- /dev/null
+++ b/perl-install/services.pm
@@ -0,0 +1,107 @@
+package services;
+
+use diagnostics;
+use strict;
+
+#-######################################################################################
+#- misc imports
+#-######################################################################################
+use common qw(:common :functional :system :file);
+use commands;
+use run_program;
+
+my %services = (
+anacron => __("Anacron a periodic command scheduler."),
+apmd => __("apmd is used for monitoring batery status and logging it via
+syslog(8). It can also be used for shutting down the machine when the battery is
+low."),
+atd => __("Runs commands scheduled by the at command at the time specified when
+at was run, and runs batch commands when the load average is low enough."),
+crond => __("cron is a standard UNIX program that runs user-specified programs
+at periodic scheduled times. vixie cron adds a number of features to the basic
+UNIX cron, including better security and more powerful configuration options."),
+gpm => __("GPM adds mouse support to text-based Linux applications such the
+Midnight Commander. Is also allows mouse-based console cut-and-paste operations,
+and includes support for pop-up menus on the console."),
+httpd => __("Apache is a World Wide Web server. It is used to serve HTML files
+and CGI."),
+inet => __("The internet superserver daemon (commonly called inetd) starts a
+variety of other internet services as needed. It is responsible for starting
+many services, including telnet, ftp, rsh, and rlogin. Disabling inetd disables
+all of the services it is responsible for."),
+keytable => __("This package loads the selected keyboard map as set in
+/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility. You
+should leave this enabled for most machines."),
+lpd => __("lpd is the print daemon required for lpr to work properly. It is
+basically a server that arbitrates print jobs to printer(s)."),
+named => __("named (BIND) is a Domain Name Server (DNS) that is used to resolve
+host names to IP addresses."),
+netfs => __("Mounts and unmounts all Network File System (NFS), SMB (Lan
+Manager/Windows), and NCP (NetWare) mount points."),
+network => __("Activates/Deactivates all network interfaces configured to start
+at boot time."),
+nfs => __("NFS is a popular protocol for file sharing across TCP/IP networks.
+This service provides NFS server functionality, which is configured via the
+/etc/exports file."),
+nfslock => __("NFS is a popular protocol for file sharing across TCP/IP
+networks. This service provides NFS file locking functionality."),
+pcmcia => __("PCMCIA support is usually to support things like ethernet and
+modems in laptops. It won't get started unless configured so it is safe to have
+it installed on machines that don't need it."),
+portmap => __("The portmapper manages RPC connections, which are used by
+protocols such as NFS and NIS. The portmap server must be running on machines
+which act as servers for protocols which make use of the RPC mechanism."),
+postfix => __("Postfix is a Mail Transport Agent, which is the program that
+moves mail from one machine to another."),
+random => __("Saves and restores system entropy pool for higher quality random
+number generation."),
+routed => __("The routed daemon allows for automatic IP router table updated via
+the RIP protocol. While RIP is widely used on small networks, more complex
+routing protocls are needed for complex networks."),
+rstatd => __("The rstat protocol allows users on a network to retrieve
+performance metrics for any machine on that network."),
+rusersd => __("The rusers protocol allows users on a network to identify who is
+logged in on other responding machines."),
+rwhod => __("The rwho protocol lets remote users get a list of all of the users
+logged into a machine running the rwho daemon (similiar to finger)."),
+syslog => __("Syslog is the facility by which many daemons use to log messages
+to various system log files. It is a good idea to always run syslog."),
+usb => __("This startup script try to load your modules for your usb mouse."),
+xfs => __("Starts and stops the X Font Server at boot time and shutdown."),
+);
+
+sub drakxservices {
+ my ($in, $prefix) = @_;
+ my $cmd = $prefix ? "chroot $prefix" : "";
+ my @services = map { [/(\S+)/, /:on/ ] } sort `$cmd chkconfig --list`;
+ my @l = map { $_->[0] } @services;
+ my @before = map { $_->[1] } @services;
+ my @descr = map {
+ my $s = $services{$_};
+ if ($s) {
+ $s = translate($s);
+ } else {
+ ($s = cat_("$prefix/etc/rc.d/init.d/$_")) =~ s/\\\s*\n#\s*//mg;
+ ($s) = $s =~ /^# description:\s+(.*?)^(?:[^#]|# {0,2}\S)/sm;
+ $s =~ s/^#\s*//m;
+ }
+ $s =~ s/\n/ /gm; $s =~ s/\s+$//;
+ $s;
+ } @l;
+
+ my $after = $in->ask_many_from_list_with_help("drakxservices",
+ _("Choose which services should be automatically started at boot time"),
+ \@l, \@descr, \@before) or return;
+
+ mapn {
+ my ($name, $before, $after) = @_;
+ if ($before != $after) {
+ run_program::rooted($prefix, "chkconfig", $after ? "--add" : "--del", $name);
+ if ($after && cat_("$prefix/etc/rc.d/init.d/$name") =~ /^#\s+chkconfig:\s+-/m) {
+ #- `/sbin/runlevel` =~ /\s(\d+)/ or die "bad runlevel";
+ #- $1 == 3 || $1 == 5 or log::l("strange runlevel: ``$1'' (neither 3 nor 5)");
+ run_program::rooted($prefix, "chkconfig", "--level", "35", $name, "on");
+ }
+ }
+ } \@l, \@before, $after;
+}
diff --git a/perl-install/standalone/drakxservices b/perl-install/standalone/drakxservices
index b551055d6..45270a7e7 100755
--- a/perl-install/standalone/drakxservices
+++ b/perl-install/standalone/drakxservices
@@ -1,9 +1,10 @@
#!/usr/bin/perl
-use lib qw(/usr/lib/libDrakX);
+use lib qw(.);#(/usr/lib/libDrakX);
use common qw(:common :functional :file);
use interactive;
+use services;
use log;
local $_ = join '', @ARGV;
@@ -12,30 +13,6 @@ local $_ = join '', @ARGV;
$::isStandalone = 1;
-my $in = vnew interactive('su');
-
-my @l = grep { !/\.rpm/ } map { chop; $_ } `cd /etc/rc.d/init.d ; grep -l "chkconfig:" *`;
-my @before = map { bool(@_ = glob("/etc/rc.d/rc*.d/S*$_")) } @l;
-
-my $after = $in->ask_many_from_list("drakxservices",
-_("Choose which services should be automatically started at boot time"),
- \@l, \@before);
-
-mapn {
- my ($name, $before, $after) = @_;
- if ($before != $after) {
- if ($after) {
- if (cat_("/etc/rc.d/init.d/$name") =~ /^chkconfig:\s+-/m) {
- system("chkconfig --add $name");
- } else {
- `/sbin/runlevel` =~ /\s(\d+)/ or die "bad runlevel";
- $1 == 3 || $1 == 5 or log::l("strange runlevel: ``$1'' (neither 3 nor 5)");
- system("chkconfig --level $1 $name on");
- }
- } else {
- system("chkconfig --del $name");
- }
- }
-} \@l, \@before, $after if $after;
+services::drakxservices(my $in = vnew interactive('su'));
$in->exit(0);
diff --git a/update_kernel b/update_kernel
index 0cc5f920a..00ace1c9b 100755
--- a/update_kernel
+++ b/update_kernel
@@ -27,7 +27,7 @@ PCMCIA_INSTALLMODULES="pcmcia_core.o tcic.o ds.o i82365.o"
if [ "$ARCH" == "i386" ]; then
#set 640x480x16 resolution on boot.
cp -f $KERNEL_BOOT_PATH/boot/vmlinuz* vmlinuz
- /usr/sbin/rdev -v vmlinuz 785
+ /usr/sbin/rdev -v vmlinuz 791 #785
cp -f vmlinuz /export/lnx4win
rm -rf install_pcmcia_modules ; install -d install_pcmcia_modules