summaryrefslogtreecommitdiffstats
path: root/globetrotter
diff options
context:
space:
mode:
Diffstat (limited to 'globetrotter')
-rw-r--r--globetrotter/.perl_checker4
-rw-r--r--globetrotter/ChangeLog119
-rw-r--r--globetrotter/Makefile97
-rw-r--r--globetrotter/README64
-rw-r--r--globetrotter/doc/BUGS6
-rw-r--r--globetrotter/doc/BUILD28
-rw-r--r--globetrotter/doc/NOTES17
-rw-r--r--globetrotter/hwprofile46
-rwxr-xr-xglobetrotter/make_live461
-rw-r--r--globetrotter/mandrake-globetrotter.spec45
-rw-r--r--globetrotter/move.pm171
-rwxr-xr-xglobetrotter/runstage230
12 files changed, 0 insertions, 1088 deletions
diff --git a/globetrotter/.perl_checker b/globetrotter/.perl_checker
deleted file mode 100644
index f6f9b3608..000000000
--- a/globetrotter/.perl_checker
+++ /dev/null
@@ -1,4 +0,0 @@
-Digest::base
-Gtk2::Gdk::Keysyms
-Net::Ping
-urpm \ No newline at end of file
diff --git a/globetrotter/ChangeLog b/globetrotter/ChangeLog
deleted file mode 100644
index e86f433af..000000000
--- a/globetrotter/ChangeLog
+++ /dev/null
@@ -1,119 +0,0 @@
-2004-08-27 08:10 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * Makefile: add changelog target
-
-2004-07-20 04:42 Pixel <pixel@mandrakesoft.com>
-
- * hwprofile, move.pm, runstage2: MandrakeSoft -> Mandrakesoft
-
-2004-07-09 04:47 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: sometimes grub return non zero exit status w/o error
-
-2004-07-09 04:46 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: kill debug message
-
-2004-07-09 04:16 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: do not complain about unmounted usb fs in recue mode
-
-2004-07-09 03:45 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: fix restore mode (initrd's mount failled to mount ext2
- as ext3)
-
-2004-06-30 10:14 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * doc/BUILD: fix build explanation (else make_live will horribly
- die due to missing functions :-()
-
-2004-06-30 09:25 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * doc/BUILD: update how to build instructions
-
-2004-06-30 08:13 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * doc/BUILD: do not forget to update hdlists
-
-2004-06-30 08:12 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * README: fix required packages list
-
-2004-06-30 07:24 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: display a nicer error message when disk is not found
-
-2004-06-29 08:25 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: fix umounting
-
-2004-06-29 05:28 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: unselect uim since mdk10 package of uim IM break first
- time wizard when selecting english
-
-2004-06-29 04:09 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: perl_checker cleanups
-
-2004-06-29 03:36 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: add rescue support
-
-2004-06-24 11:41 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: (installPackages) kill debugging statements
-
-2004-06-24 10:17 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * hwprofile: create hw profile after having run first time wizard
- so that if one refuse the icense, he has to run it again
-
-2004-06-24 07:39 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: make share partition be writeable by unpriviliegied
- users
-
-2004-06-24 07:33 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: add fb2png in order to be able to take screenshots
-
-2004-06-24 07:31 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: per machine firewall configuration
-
-2004-06-18 05:44 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: force installation of both 2.4.x and 2.6.x centrino
- drivers
-
-2004-06-18 05:44 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: - use labels for home and packages partitions too -
- mount packages partition in read-only mode
-
-2004-06-18 04:08 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: install autologin as requested by QA
-
-2004-06-15 18:56 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * README: update package versions to reflect current globetrotter
-
-2004-06-15 18:54 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * README: update what's required in new initscripts
-
-2004-06-15 18:50 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * .perl_checker, Makefile, README, hwprofile, make_live,
- mandrake-globetrotter.spec, move.pm, runstage2, doc/BUGS,
- doc/BUILD, doc/NOTES: Imported Globetrotter
-
-2004-06-15 18:50 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * .perl_checker, Makefile, README, hwprofile, make_live,
- mandrake-globetrotter.spec, move.pm, runstage2, doc/BUGS,
- doc/BUILD, doc/NOTES: Initial revision
-
diff --git a/globetrotter/Makefile b/globetrotter/Makefile
deleted file mode 100644
index ebbc7abbf..000000000
--- a/globetrotter/Makefile
+++ /dev/null
@@ -1,97 +0,0 @@
-PACKAGE=mandrake-globetrotter
-PKGVERSION:=$(shell rpm -q --qf '%{VERSION}\n' --specfile $(PACKAGE).spec|head -n 1)
-RELEASE:=$(shell rpm -q --qf '%{RELEASE}\n' --specfile $(PACKAGE).spec|head -n 1)
-TAG := $(shell echo "V$(PKGVERSION)_$(RELEASE)" | tr -- '-.' '__')
-
-DIRS=share/po
-PREFIX =
-
-SBINDIR = $(PREFIX)/usr/sbin
-LIBDIR = $(PREFIX)/usr/lib
-LIBDEST = $(LIBDIR)/libDrakX
-DATADIR = $(PREFIX)/usr/share
-
-LANG_FILES = pixmaps/langs
-DISTFILES = hwprofile *.spec share/po/*.po share/po/Makefile share/po/i18n_compssUsers Makefile Makefile.config *.pm runstage2 $(LANG_FILES)
-
-.PHONY: all install clean
-
-all:
- rm -f share/po/DrakX.pot # force rebuild of po's
- make -C share/po mofiles
-
-
-localcopy: clean
- cd .. ; rm -rf $(PACKAGE)-$(PKGVERSION) ; cp -af globetrotter $(PACKAGE)-$(PKGVERSION)
- # include pixmaps for language selector:
- mkdir ../$(PACKAGE)-$(PKGVERSION)/{pixmaps,share}
- cp -af ../perl-install/pixmaps/langs ../$(PACKAGE)-$(PKGVERSION)/pixmaps/langs
- # include drakx modules for first time wizard :
- # cp -af ../perl-install/share/po ../$(PACKAGE)-$(PKGVERSION)/share/
- mkdir ../$(PACKAGE)-$(PKGVERSION)/share/po
- # cp -af ../perl-install/share/po/{fr.po,Makefile,i18n_compssUsers} ../$(PACKAGE)-$(PKGVERSION)/share/po
- cp -af ../perl-install/share/po/{*.po,Makefile,i18n_compssUsers} ../$(PACKAGE)-$(PKGVERSION)/share/po
- # enable fast build:
- perl -pi -e 's!^.*msgmerge.*\n!!' ../$(PACKAGE)-$(PKGVERSION)/share/po/Makefile
- cp -af ../perl-install/{help,pkgs,install*}.pm ../$(PACKAGE)-$(PKGVERSION)/
- echo 'ALLPMS = *.pm' > ../$(PACKAGE)-$(PKGVERSION)/Makefile.config
- @make nuke_perl
-
-
-install:
- install -d $(LIBDEST) $(DATADIR)/libDrakX/pixmaps/langs $(SBINDIR)
- install -m 644 *.pm $(LIBDEST)
- install -m 755 runstage2 $(SBINDIR)/mdkmove
- cp -f pixmaps/langs/lang-*.png $(DATADIR)/libDrakX/pixmaps/langs
- $(MAKE) -C share/po install PREFIX=$(PREFIX) SUDO= DATADIR=$(DATADIR) NAME=libDrakX2
-# %make -C po install SUDO= NAME=libDrakX2 LOCALEDIR=$(DEST)/usr/share/locale_special
-
-
-rpm: localrpm
-localrpm: localdist buildrpm
-
-srpm: localsrpm
-localsrpm: spec_test localdist buildsrpm
-
-localdist: cleandist localcopy tar
-
-cleandist:
- rm -rf ../$(PACKAGE)-$(PKGVERSION) ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-spec_test:
- @if [[ -z "$(PKGVERSION)" ]]; then echo "unable to get spec version"; exit 3;fi
- @if [[ -z "$(RELEASE)" ]]; then echo "unable to get spec release"; exit 2;fi
-
-tar:
- cd ../$(PACKAGE)-$(PKGVERSION) && rm -rf debug.log `find -name CVS`
- cd ..; tar cfj $(PACKAGE)-$(PKGVERSION).tar.bz2 $(patsubst %,$(PACKAGE)-$(PKGVERSION)/%,$(DISTFILES))
- #cd ..; rm -rf $(PACKAGE)-$(PKGVERSION)
-
-buildrpm:
- rpm -ta ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-buildsrpm:
- rpm -ts --nodeps ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-# rules to build a distributable rpm
-
-dist: cleandist export tar
-
-export:
- cd ..; cvs export -d $(PACKAGE)-$(PKGVERSION) -r $(TAG) $(PACKAGE)
- cd ../$(PACKAGE)-$(PKGVERSION)
- cd ..;
- @make nuke_perl
-
-nuke_perl:
- find ../$(PACKAGE)-$(PKGVERSION) -name '*.pm' | xargs perl -pi -e 's/\s*use\s+(diagnostics|strict|vars|warnings).*//g'
-
-img:
- /usr/bin/lilo-bmp2mdk mode:0x103 progress:397,190,14,6,64+8 clear:600,800,64+8 pos:0,0 < BOOTGTROTTER-install-lilo-8bis.bmp > isolinux_boot.msg
-
-.PHONY: log changelog
-
-log: changelog
-
-changelog:
- cvs2cl --accum -W 400 -U ../../soft/common/username
diff --git a/globetrotter/README b/globetrotter/README
deleted file mode 100644
index 7052212b3..000000000
--- a/globetrotter/README
+++ /dev/null
@@ -1,64 +0,0 @@
- Mandrakelinux GlobeTrotter, powered by LaCie Mobile Hard Drive project
- ======================================================================
-
-
-
-Requirements:
-=============
-
-1) packages:
-------------
-
-you need to have the distro repositery mounted in /export.
-
-on top of the mdk10.0 base + its updates, the following packages were
-updated from cooker:
-
-- misc bug fixes:
- o drakconf-10-13mdk
- o {drakxtools,harddrake}*-10-34.2mdk
- o mdkonline-1.1-2.1.100mdk
- o menudrake-0.7.4-8mdk
- o perl-Libconf*-0.33-2mdk
- o rpmdrake-2.1.3-5mdk
- o initscripts-7.06-49.1mdk:
- * usb starting when usb host drivers were loaded by initrd
- * fix larsen on laptops
-- root=LABEL=foobar and boot from USB support:
- o mkinitrd-3.5.18-10mdk
- o bootloader-utils-1.7-1mdk
-- coexistance:
- o glibc with /etc/ld.so.conf.d/ support
- o ATI driver
- o NIVIDIA driver
-- new packages:
- o kdetv, libkdevideo
-- should we also take new kernel?
-
-Note: once you've updated some packages, you need to run "gendistrib
- /export".
-
-
-2) local checkout of drakx:
----------------------------
-
-you need a copy of gi/perl-install in ../perl-install as well as
-gi/mdk-stage1.
-
-you need to install the following packages: gcc, e2fsprogs,
-ldetect-devel, libext2fs2-devel, libxfree86-devel, perl-devel,
-perl-URPM, rpm-devel, rpmtools, and urpmi.
-
-then you need to type "make c" in ../perl-install.
-
-last but not least, you need to copy list_modules from gi/kernel into
-perl-instéall and gi/mdk-stage1/pcmcia_/probe.c into perl-install/c.
-
-
-
-Building the hd image:
-======================
-
-just type ./make_live
-
-it'll reformat the hard disk, mount it and install packages \ No newline at end of file
diff --git a/globetrotter/doc/BUGS b/globetrotter/doc/BUGS
deleted file mode 100644
index 97ff5d8b0..000000000
--- a/globetrotter/doc/BUGS
+++ /dev/null
@@ -1,6 +0,0 @@
--*- outline -*-
-
-* drakboot and diskdrake are not yet fully capable of managing LABEL= in
-/tc/fstab
-
-* lilo failed to boot from USB
diff --git a/globetrotter/doc/BUILD b/globetrotter/doc/BUILD
deleted file mode 100644
index 108c44650..000000000
--- a/globetrotter/doc/BUILD
+++ /dev/null
@@ -1,28 +0,0 @@
- How to build Mandrakelinux Globetrotter:
- ========================================
-
-- you need first to install all the drakxtools' build dependancies
- (thus running "urpmi /SRPMS/drakxtools-*" may be quite helpful)
-
-- copy the mdk10.0 DVD in /export
-- leave main as Mandrake/RPMS
-- copy h[cs]f*, FlashPlayer*, RealPlayer* into Mandrake/RPMS from Mandrake/RPMS[23]
-- move contribs as Mandrake/RPMS2
-- move other RPMS? somewhere else
-- add packages from ~tv/rpm/lacie on cluster
-- add updates from /mnt/BIG/dis/updates/10.0
-- add updated proprietary packages for kernel update from kameha
- (nplanel's work machine):
- echo "mget *2.4.25.5mdk* *2.6.3.13mdk*" | \
-lftp -u a,a ftp://kameha:/~/../nplanel/rpm/prop/RPMS/i586/
-- run the following in order to remove duplicated packages:
- doble [A-Z] | xargs rm -f
- doble [a-g] | xargs rm -f
- doble [h-z] | xargs rm -f
-- run "gendistrib --noclean /export"
-- plug the LaCie disk
-- check out the whole gi cvs module
-- run "C_DRAKX=1 make c" in gi/perl-install
-- go into gi/globetrotter
-- run make_live --partition --format --install --post in order to
- prepare the disk
diff --git a/globetrotter/doc/NOTES b/globetrotter/doc/NOTES
deleted file mode 100644
index 5a43af0e2..000000000
--- a/globetrotter/doc/NOTES
+++ /dev/null
@@ -1,17 +0,0 @@
- Mandrakelinux GlobeTrotter release notes
-
-
-
-* Arabic support
-
-
-you may want to enable the acon service from the acon package.
-Just type: "chkconfig --add jserver" as root or use the "Services"
-icon from the Mandrakelinux Control Center
-
-
-* Japanese support
-
-you may want to enable the jserver service from the FreeWnn package.
-Just type: "chkconfig --add jserver" as root or use the "Services"
-icon from the Mandrakelinux Control Center \ No newline at end of file
diff --git a/globetrotter/hwprofile b/globetrotter/hwprofile
deleted file mode 100644
index d84073394..000000000
--- a/globetrotter/hwprofile
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright (c) 2004 Mandrakesoft
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-use lib qw(/usr/lib/libDrakX);
-
-use common;
-use standalone;
-use Digest::MD5 qw(md5_hex);
-use network::tools;
-use network::netconnect;
-
-# md5_hex call came from move::machine_ident() :
-my $id = "MDK" . md5_hex(join("", (map { (split)[1] } cat_("/proc/bus/pci/devices"))));
-
-my $netcnx = {};
-
-# first boot wizard:
-!glob_("/etc/netprofile/profiles/MDK*") and system('/usr/sbin/mdkmove');
-
-# create hardware profile if needed:
-if (! -d "/etc/netprofile/profiles/$id") {
- network::tools::reread_net_conf($netcnx, {}, {});
- network::netconnect::add_profile($netcnx, $id);
-}
-
-# restore hardware profile:
-$netcnx->{PROFILE} = $id;
-eval { network::netconnect::set_profile($netcnx) };
-
-# redo ldconfig cache for libGL (since we've both ATI and NVIDIA GLX packages):
-system("/sbin/ldconfig");
diff --git a/globetrotter/make_live b/globetrotter/make_live
deleted file mode 100755
index e06960d3f..000000000
--- a/globetrotter/make_live
+++ /dev/null
@@ -1,461 +0,0 @@
-#!/usr/bin/perl
-
-$::isInstall = 1; # for /root/drakx/ddebug.log
-
-use strict;
-#use lib qw(/usr/lib/libDrakX);
-use lib "../perl-install";
-use standalone;
-use interactive;
-use common;
-use partition_table;
-use fsedit;
-use fs;
-use any;
-use pkgs;
-use class_discard;
-use run_program;
-use log;
-
-# my $in = interactive->vnew;
-
-$::isStandalone = undef; # for /tmp/ddebug.log
-
-my (%options, @new_ARGV);
-
-foreach (@ARGV) {
- if (/^--(.*)/) {
- $options{$1} = 1;
- } else {
- push @new_ARGV, $_;
- }
-}
-
-my $rescue;
-
-if ($0 =~ /restore_globetrotter/) {
- %options = (install => 1, post => 1);
- $rescue = 1;
-}
-
-@ARGV = @new_ARGV;
-
-my @suggestions = (
- { mntpoint => "/", size => 4500 << 11, type => 0x483, ratio => 1, maxsize => 6000 << 11 },
- # splited / and /usr:
- # { mntpoint => "/", size => 250 << 11, type => 0x483, ratio => 1, maxsize => 2000 << 11 },
- # { mntpoint => "/usr", size => 300 << 11, type => 0x483, ratio => 4, maxsize => 4000 << 11 },
- { mntpoint => "/home", size => 100 << 11, type => 0x483, ratio => 3 },
-
- # share partition with windows:
- { mntpoint => "/mnt/share", size => 2000 << 11, type => 0xb, ratio => 2, maxsize => 10000 << 11 },
- { mntpoint => "/mnt/packages", size => 7500 << 11, type => 0x483, ratio => 3, maxsize => 7500 << 11 },
- # allocated last b/c end of disk is usually faster:
- { mntpoint => "swap", size => 64 << 11, type => 0x82, ratio => 1, maxsize => 500 << 11 },
- );
-
-
-sub get_hds() {
- my $all_hds = fsedit::get_hds();
- my $other;
- ($all_hds->{hds}, $other) = partition { $_->{usb_description} eq 'LaCie|LaCie Hard Drive USB' } @{$all_hds->{hds}};
- die "I did not found any LaCie disk\n" if !$all_hds->{hds}[0];
- $all_hds, $all_hds->{hds}[0]; # $other
-}
-
-
-sub prepare_disk() {
- # repartion the hard disk:
- print "PARTITIONNING\n";
- my ($all_hds, $hd, $other) = get_hds();
- # partition_table::remove($hd, $_) while partition_table::get_normal_parts($hd);
- run_program::run("swapoff", "/dev/$all_hds->{hds}[0]{device}8") if any { /$all_hds->{hds}[0]{device}/ } cat_("/proc/partitions");
-
- partition_table::raw::zero_MBR_and_dirty($hd);
- fsedit::allocatePartitions($all_hds, \@suggestions);
- require diskdrake::interactive;
- require class_discard;
- # diskdrake::interactive::write_partitions(class_discard->new, $_, 'skip_check_rebootNeeded') foreach (@{$all_hds->{hds}});
- foreach (@{$all_hds->{hds}}) {
- local $::isStandalone = undef;
- print "WRITE PARTITION ON $_->{file}\n";
- diskdrake::interactive::write_partitions(class_discard->new, $_, 'skip_check_rebootNeeded')
- }
- # partition_table::write(@{$all_hds->{hds}});
- ($all_hds, $hd, $other);
-}
-
-
-sub formatdisk {
- my ($hd) = @_;
- print "FORMATTING\n";
- foreach (partition_table::get_normal_parts($hd)) {
- print qq(Formatting "$_->{device}" ($_->{mntpoint})\n);
- fs::format_part(undef, $_, $::prefix, undef) if !$::testing;
- }
-}
-
-
-#@ARGV <= 1 or die "usage: make_live [live_location=/tmp/live_tree]\n";
-
- if (!find { m!/proc/bus/usb! } run_program::get_stdout('mount')) {
- warn "USB service is *NOT* started" if !$rescue;
- run_program::get_stdout('service', 'usb', 'start');
- }
-
-my $pkg_dev;
-if ($rescue) {
- system("mount -t tmpfs none /tmp");
- # let be able to see USB devices:
- system("mount -t usbfs none /proc/bus/usb");
- system("modprobe usb-storage; modprobe sd_mod");
- # let be able to detect SCSI hds:
- mkdir("/sys");
- system("mount -t sysfs none /sys");
-
- my ($all_hds, $hd, $other) = get_hds();
- print "Looking for the package partition\n";
- my @parts = partition_table::get_normal_parts($hd);
- my $pkg_dev = find { member(fs::type2fs($_), qw(ext2 ext3)) && chomp_(`e2label /dev/$_->{device} 2>/dev/root`) eq "MDK-PKGS" } @parts;
- die "I cannot find the package partition which is needed in order to restore the system!" if is_empty_hash_ref($pkg_dev) || !$pkg_dev->{device};
- my $root = find { member(fs::type2fs($_), qw(ext2 ext3)) && chomp_(`e2label /dev/$_->{device} 2>/dev/root`) eq "MDK-ROOT" } @parts;
- $root = find { $_->{device} eq "sda1" } @parts if is_empty_hash_ref($root);
- die "I cannot find any hard disk to restore!" if is_empty_hash_ref($root) || !$root->{device};
- print "Please wait, disk reinstallation is in progress, this can take quite some time\n";
- print "Formating $root->{device}\n";
- system("mkfs.ext2 -j /dev/$root->{device} > /dev/null\n");
-
-}
-
-sub installPackages() {
- local $::testing = undef;
-
- # for a gconftool-2 cleaner:
- my $pid = fork();
- !defined $pid and die("cannot fork: $!");
- !$pid and do {
- while (1) {
- sleep(10);
- run_program::run('/usr/bin/killall', 'gconftool-2') if -x '/usr/bin/killall';
- }
- };
- my $_b = before_leaving { kill 'TERM', $pid if $pid };
-
- # ensure no %_install_langs:
- output_p("$::prefix/etc/rpm/macros", "%_install_langs all\n");
- # ensure boot from USB will work:
- output_p("$::prefix/etc/sysconfig/mkinitrd", "forceusb=yes\n");
-
- mkdir_p("$::prefix/var/lib/rpm");
- mkdir_p("$::prefix/root/drakx");
-
-
- undef *install_any::setDefaultPackages;
- *install_any::setDefaultPackages = sub {};
-
- undef *install_any::getFile;
- *install_any::getFile = sub {
- my ($f, $o_method) = @_;
- log::l("getFile $f:$o_method");
- open(my $F, '/export/' . install_any::relGetFile($f)) or return;
- $F;
- };
-
- undef *c::kernel_version;
- *c::kernel_version = sub {
- #my @l = glob_('/export/Mandrake/RPMS/kernel-enterprise-2.6*');
- my @l = glob_('/export/Mandrake/RPMS/kernel-2.6*');
- @l >= 1 or die "can't find kernel";
- @l <= 1 or die "too many kernels";
- first(`rpm -qp --qf '%{name}' $l[0]` =~ /kernel-(.*)/);
- };
-
- my $kernel_version = c::kernel_version();
-
- print "INSTALLING\n";
- install_any::setPackages(my $o = $::o =
- {
- prefix => $::prefix,
- meta_class => 'desktop',
- default_packages => [
- #- for screenshots:
- qw(fb2png),
- qw(XFree86-server XFree86-xfs XFree86-FBDev),
- qw(openssh-server), #- fred wants it
- qw(alsa-utils cdialog newt),
- qw(k3b-dvd),
- qw(davfs nfs-utils samba-server sane-backends xsane xsane-gimp ntp),
- qw(acpi acpid), #- so that removing acpi=ht will work
- qw(mountloop), #- crypted folders
- qw(mandrake-doc-en mandrake-doc-fr mandrake-doc-drakxtools-en mandrake-doc-drakxtools-fr),
- qw(autologin),
- qw(synaptics),
- #- network conf:
- qw(wireless-tools pcmcia-cs),
- #- zeroconf:
- qw(zcip dhcpcd tmdns),
- #- cnx stuff:
- qw(dhcp-client ppp kdenetwork-kppp ppp-pppoatm ppp-pppoe pptp-linux pptp-adsl rp-pppoe),
- #- ISDN stuff:
- # qw(isdn4net ibod isdn4k-utils), # not installed since it provides an interface (will be automatically installed by drakconnect)
- #- network file sharing:
- qw(nfs-utils-clients samba-client),
- #- network drivers and firmwares:
- qw(eagle-usb speedtouch speedtouch_mgmt unicorn),
- #- alt kernels:
- # glob_('/export/Mandrake/RPMS/kernel-2.4*'), #- for ISDN
- #- configuration:
- qw(drakconf drakcronat drakfirsttime drakxtools harddrake-ui mdkonline rpmdrake userdrake2),
- qw(cups cups-drivers foomatic-db gimpprint hpoj libnet-snmp mtools mtoolsfm nmap printer-filters printer-testpages printer-utils scli xojpanel xpp), #- printer stuff
- "ATI_kernel-$kernel_version", qw(ATI_GLX ATI_GLX-utils NVIDIA_GLX libMesaGLU1), # ATI_GLX requires ATI_kernel
- "NVIDIA_kernel-$kernel_version",
- # qw(hcfpcimodem hsflinmodem ltmodem), #- 2.4.x only
- qw(xinput), #- for some mice
- qw(bash-completion binutils emacs-X11 ntsysv perl-doc perl-Term-Readline-Gnu), #- allow debugging
- qw(openssh-askpass-gnome), #- openssh-askpass for mountloop doesn't allow to click on ok/cancel buttons
- qw(clanbomber freeciv-client freeciv-server crack-attack kdegames), #- more games
- qw(numlock), # shorewall # not installed since its default config breaks network (will be automatically installed by drakfirewall)
- qw(xawtv zapping), #- tv apps
- qw(scribus scribus-i18n-de scribus-i18n-fr), #- John Jablonski says it's so much useful
- (map { "OpenOffice.org-l10n-$_" } qw(ar ca cs da de el en es eu fi fr it ja ko nl pl pt pt_BR ru sk sv tr zh_CN zh_TW)),
- qw(dosfstools mtools),
- qw(koffice konsole),
- qw(devfsd dynamic harddrake hotplug magicdev mandrake-globetrotter netprofile),
- qw(gnome2),
- qw(alsa-utils),
- qw(ipw2100 ipw2100_kernel ipw2100_kernel-2.6.3.13mdk), # ipw2100_kernel-$kernel_version,
- #- fonts:
- qw(XFree86-100dpi-fonts XFree86-75dpi-fonts),
- qw(fonts-bitmap-tscii fonts-hebrew-elmar),
- (map { "fonts-ttf-$_" } qw(arabic armenian bengali big5 decoratives ethiopic gb2312 japanese kannada korean latex tamil thai tscii vera west_european)),
- (map { "fonts-type1-$_" } qw(cyrillic greek hebrew)),
- ],
- });
-
- my %compssUsersChoice = map { $_ => 1 } map { @{$_->{flags}} } values %{$o->{compssUsers}};
- $compssUsersChoice{$_} = 1 foreach 'SYSTEM', 'DVD', 'USB', 'SOUND', 'BURNER', 'UTF8', 'DOCS', 'TV', '3D', 'INSTALL';
- $compssUsersChoice{qq(LOCALES"$_")} = 1 foreach lang::langsLANGUAGE({ all => 1 });
-
- pkgs::setSelectedFromCompssList($o->{packages}, \%compssUsersChoice, 4, 0);
-
- my $unselect = sub {
- my ($pkg) = @_;
- my $p = pkgs::packageByName($o->{packages}, $pkg);
- pkgs::unselectPackage($o->{packages}, $p) if $p;
- };
-
- # unselect some packages whose services fsck up the box and whose services are not enabled by appropriate tools:
- # (shorewall must be deselected before iptables is)
- $unselect->($_) foreach qw(at hpoj shorewall iptables ntp tmdns zcip );
-
- # unselect uim since uim IM break first time wizard when selecting english:
- $unselect->($_) foreach qw(uim-applet uim libuim0);
-
- my @toInstall = pkgs::packagesToInstall($o->{packages});
- local $ENV{DURING_INSTALL} = 1;
- $ENV{LD_LIBRARY_PATH} = "/lib:/usr/lib:/usr/X11R6/lib:/usr/lib/qt3/lib";
- pkgs::install($::prefix, 0, \@toInstall, $o->{packages});
-
- eval { fs::umount("$::prefix/proc") };
-}
-
-sub config_X_proprietary_drivers() {
- unlink "$::prefix/usr/lib/libGL.so";
-
- my %name_to_Driver = (NVIDIA_GLX => 'nvidia', ATI_GLX => 'fglrx');
-
- my $lib = 'libGL.so.1';
- symlinkf("/etc/X11/$lib", "$::prefix/usr/lib/$lib");
- foreach (keys %name_to_Driver) {
- my ($full_name) = run_program::rooted_get_stdout($::prefix, 'rpm', '-ql', $_) =~ m!/usr/lib/(\Q$lib\E\..*)! or die '';
- symlinkf($full_name, "$::prefix/usr/lib/$lib.$name_to_Driver{$_}");
- }
- #- remove the dirty hack done by NVIDIA_kernel-xxx proprietary package
- #- we do it by hand when needed
- substInFile { $_ = '' if $_ eq 'nvidia' } "$::prefix/etc/modules";
-}
-
-$::prefix = $ARGV[0] || '/tmp/live_tree';
-
--d $::prefix or mkdir $::prefix;
-print "Making live in $::prefix directory.\n";
-
-
-my ($all_hds, $hd, $other) = do {
- # here we want testing so that diskdrake still set mount points in data structure:
- local $::testing = !$options{partition};
- prepare_disk();
-};
-
-formatdisk($hd) if $options{format};
-
-add2hash($hd, $other);
-
-undef $::testing;
-
-my @parts = partition_table::get_normal_parts($hd);
-
-my ($root) = grep { $_->{mntpoint} eq "/" } @parts;
-print "Root is $root->{device}\n";
-run_program::run('tune2fs', '-L', "MDK-ROOT", "/dev/$root->{device}");
-# fs::mount_part($root, $::prefix);
-my $fstab = [ fsedit::get_all_fstab($all_hds) ];
-
-# we need to mount every fs we want to see into /etc/fstab !!!
-fs::mount_part($_, $::prefix) foreach sort { $a->{mntpoint} cmp $b->{mntpoint} } @$fstab;
-
-symlink("$::prefix/mnt/packages", "/export") if $rescue;
-
-eval {
- print "Installing packages\n";
- installPackages();
-} if $options{install};
-print "ERROR WHILE INSTALLING PACKAGES: $@\n" if $@;
-log::closeLog;
-
-sub doRootSubst {
- my ($file) = @_;
- substInFile {
- s!/dev/$root->{device}!LABEL=MDK-ROOT!g;
- } $file;
-}
-
-#fs::merge_info_from_mtab($fstab);
-fs::write_fstab($all_hds, $::prefix);
-append_to_file("$::prefix/etc/fstab", "none /dev/pts devpts mode=0620 0 0");
-doRootSubst("$::prefix/etc/fstab");
-
-my ($home) = grep { $_->{mntpoint} eq "/home" } @parts;
-my ($mnt_pkgs) = grep { $_->{mntpoint} eq "/mnt/packages" } @parts;
-run_program::run('tune2fs', '-L', "MDK-HOME", "/dev/$home->{device}") if $home;
-run_program::run('tune2fs', '-L', "MDK-PKGS", "/dev/$mnt_pkgs->{device}") if $mnt_pkgs;
-
-substInFile {
- s!defaults\s!defaults,ro ! if m!/mnt/packages!;
- s!defaults\s!defaults,umask=0000 ! if m!/mnt/share!;
- s!/dev/$home->{device}!LABEL=MDK-HOME!g;
- s!/dev/$mnt_pkgs->{device}!LABEL=MDK-PKGS!g;
-} "$::prefix/etc/fstab";
-
-
-#-------------------------------------------------------------------
-#- Bootloader
-print "Configuring bootloader\n";
-system("modprobe loop");
-require keyboard;
-require bootloader;
-
-my $bootloader = {
- keytable => keyboard::keyboard2kmap(keyboard::lang2keyboard('fr')),
- bios => { '/dev/sda' => '0x80' },
- };
-
-bootloader::suggest($bootloader, $all_hds->{hds}, $fstab,
- vga_fb => 788,
- quiet => 1);
-
-# LILO failled to boot from SCSI:
-# $bootloader->{method} = 'lilo-graphic';
-$bootloader->{method} = 'grub';
-
-eval { bootloader::install($bootloader, $fstab, $all_hds->{hds}) };
-
-doRootSubst("$::prefix/boot/grub/menu.lst");
-run_program::rooted($::prefix, 'sh', '/boot/grub/install.sh');
-
-# fix GRUB configuration:
-substInFile {
- # use FB by default on versionned entries so that the initial versionned entry behave like those created by /sbin/installkernel:
- s/$/ vga=788/ if /^kernel.*\d\.\d\.\d/;
- # set devfs=mount as well so that installkernel can properly install bootable 2.4.x kernels:
- s/$/ devfs=mount/ if /^kernel/ && !/failsafe/;
-} "$::prefix/boot/grub/menu.lst";
-
-
-## disable ISDN by default (bogus isdn4net came with an enabled interface :-():
-#substInFile {
-# s/#ONBOOT.*/ONBOOT="no"/
-#} "$::prefix/etc/sysconfig/network-scripts/ifcfg-ippp0";
-#
-
-print "Post install misc configuration\n";
-
-
-# clean services:
-# cups-lpd ibod isdn4linux isdnlog)) {
-run_program::rooted($::prefix, '/sbin/chkconfig', '--del', $_) foreach qw(acon jserver oki4daemon);
-#foreach my $service (qw(acon atd cups-lpd hpoj ibod iptables isdn4linux isdnlog jserver ntpd oki4daemon shorewall tmdns)) {
-# run_program::rooted($::prefix, '/sbin/chkconfig', '--level', $_, $service, 'off') foreach qw(3 5);
-#}
-
-# probably useless:
-foreach my $service (qw(alsa dm harddrake hotplug sound)) {
- run_program::rooted($::prefix, '/sbin/chkconfig', '--level', $_, $service, 'on') foreach qw(3 5);
-}
-
-if ($options{post}) {
- #-------------------------------------------------------------------
- # save a few more files in profiles
- my $prof_cfg = "$::prefix/etc/netprofile/list";
- my @files = map { chomp_($_) } cat_($prof_cfg);
- # do not save the whole /etc/sysconfig;
- push @files, (map { "/etc/X11/$_" } qw(XF86Config XF86Config-4)),
- (map { "/etc/sysconfig/$_" } qw(keyboard harddrake2/previous_hw harddisks)),
- (map { "/etc/$_" } qw(modprobe.conf modprobe.devfs modprobe.preload modules modules.conf modules.devfs)),
- qw(/etc/asound.state /etc/fstab /etc/ld.so.conf/GL.conf /etc/shorewall/);
-
- output($prof_cfg, join("\n", sort @files));
-
-
- #-------------------------------------------------------------------
- #- regenerate library loader and fonts cache
- run_program::rooted($::prefix, 'ldconfig');
- any::fix_broken_alternatives();
- run_program::rooted($::prefix, 'fc-cache'); #- generate cache in all directories mentioned in config file
-
- #- XFree
-
- touch("$::prefix/etc/menu/enable_simplified");
-
- {
- local $ENV{LC_ALL} = 'en_US'; #- update-menus doesn't work when there is no locale (aka locale "C")
- #local $ENV{HOME} = '/'; #- savekdemimetypes.pl needs this otherwise it's tmp file fails
- run_program::rooted($::prefix, 'update-menus', '-n');
- }
-
- run_program::rooted($::prefix, 'nspluginscan'); #- must be run before kbuildsycoca for the ksycoca to be flash plugin aware
-
- $ENV{HELP_BROWSER} = "kfmclient openProfile webbrowsing";
- $ENV{BROWSER} = "kfmclient openProfile webbrowsing";
- $ENV{DESKTOP} = "kde";
- #- faster boot:
- foreach my $lang (lang::list_langs()) {
- local $ENV{LC_ALL} = lang::getLANGUAGE($lang);
- unlink "$::prefix/usr/share/services/ksycoca";
- run_program::rooted($::prefix, 'kbuildsycoca', '--global');
- rename("$::prefix/usr/share/services/ksycoca", "$::prefix/usr/share/services/ksycoca-$lang");
- }
- symlinkf('/etc/X11/ksycoca', "$::prefix/usr/share/services/ksycoca");
-}
-
-# clean gconftool-2 mess:
-unlink $_ foreach glob("$::prefix/core.*");
-
-
-##- Mandrake
-#substInFile {
-# s!Mandrake(l| L)inux release (\S+) \(.*\)!Mandrakelinux Nomad, powered by LaCie Mobile Hard Drive)!;
-#} "$::prefix/etc/mandrake-release";
-#
-
-
-system("rsync -rvltp /export/ $::prefix/mnt/packages/") if !$rescue;
-unlink $_ foreach glob("$::prefix/var/lib/urpmi/*");
-run_program::rooted($::prefix, 'urpmi.addmedia', '-h', 'main', 'file:///mnt/packages/Mandrake/RPMS');
-run_program::rooted($::prefix, 'urpmi.addmedia', '-h', 'contrib', 'file:///mnt/packages/Mandrake/RPMS2');
-
-# for fast test replaying:
-run_program::rooted($::prefix, 'tar', 'cfj', '/root/etc.tar.bz2', '/etc');
-
-system("umount $::prefix/proc");
-eval { fs::umount_all($fstab, $::prefix) } or system("umount $::prefix");
diff --git a/globetrotter/mandrake-globetrotter.spec b/globetrotter/mandrake-globetrotter.spec
deleted file mode 100644
index 4bb3a8ac9..000000000
--- a/globetrotter/mandrake-globetrotter.spec
+++ /dev/null
@@ -1,45 +0,0 @@
-Summary: Mandrakelinux Globetrotter tools
-Name: mandrake-globetrotter
-Version: 10
-Release: 1mdk
-Url: http://www.mandrakelinux.com/en/drakx.php3
-Source0: %name-%version.tar.bz2
-License: GPL
-Group: System/Configuration/Other
-Requires: drakxtools netprofile
-BuildRoot: %_tmppath/%name-buildroot
-
-
-%description
-Contains many Mandrakelinux tools needed for Mandrakelinux Globetrotter.
-
-%prep
-%setup -q
-
-%build
-%make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-mkdir -p $RPM_BUILD_ROOT/{%_initrddir,%_datadir/harddrake}
-%makeinstall_std PREFIX=$RPM_BUILD_ROOT
-install -m 755 hwprofile $RPM_BUILD_ROOT/%_datadir/harddrake/hwprofile
-
-%find_lang libDrakX2
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
-%files -f libDrakX2.lang
-%defattr(-,root,root)
-%_datadir/harddrake/*
-%_sbindir/*
-/usr/lib/libDrakX/*pm
-/usr/share/libDrakX/pixmaps/lang*
-
-%changelog
-* Wed Apr 28 2004 Thierry Vignaud <tvignaud@mandrakesoft.com> 10-1mdk
-- initial release
diff --git a/globetrotter/move.pm b/globetrotter/move.pm
deleted file mode 100644
index 075e3c258..000000000
--- a/globetrotter/move.pm
+++ /dev/null
@@ -1,171 +0,0 @@
-package move; # $Id$
-
-#- Copyright (c) 2004 Mandrakesoft
-#-
-#- This program is free software; you can redistribute it and/or modify
-#- it under the terms of the GNU General Public License as published by
-#- the Free Software Foundation; either version 2, or (at your option)
-#- any later version.
-#-
-#- This program is distributed in the hope that it will be useful,
-#- but WITHOUT ANY WARRANTY; without even the implied warranty of
-#- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#- GNU General Public License for more details.
-#-
-#- You should have received a copy of the GNU General Public License
-#- along with this program; if not, write to the Free Software
-#- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-use diagnostics;
-use strict;
-
-use c;
-use common;
-use modules;
-use fs;
-use fsedit;
-use run_program;
-use partition_table qw(:types);
-use swap;
-use log;
-use lang;
-use detect_devices;
-
-sub symlinkf_short {
- my ($dest, $file) = @_;
- if (my $l = readlink $dest) {
- $dest = $l if $l =~ m!^/!;
- }
- -d $file and log::l("$file already exists and is a directory! writing in directory may be needed, not overwriting"), return;
- symlinkf($dest, $file);
-}
-
-#- run very soon at stage2 start, setup things on tmpfs rw / that
-#- were not necessary to start stage2 itself (there were setup
-#- by stage1 of course)
-sub init {
- my ($o) = @_;
-
- check_for_xserver() and c::bind_textdomain_codeset('libDrakX2', 'UTF8');
-
-
- -d '/lib/modules/' . c::kernel_version() or warn("ERROR: kernel package " . c::kernel_version() . " not installed\n"), c::_exit(1);
-
- run_program::run('sysctl', '-w', 'kernel.hotplug=/bin/true');
- modules::load_category('bus/usb');
- *c::pcmcia_probe = \&detect_devices::pcmcia_probe;
- $o->{pcmcia} ||= !$::noauto && c::pcmcia_probe();
- install_steps::setupSCSI($o);
- run_program::run('sysctl', '-w', 'kernel.hotplug=/sbin/hotplug');
-
-drakx_stuff:
- $o->{steps}{$_} = { reachable => 1, text => $_ }
- foreach qw(autoSelectLanguage configMove selectMouse setRootPassword addUser configureNetwork miscellaneous selectMouse);
- $o->{orderedSteps_orig} = $o->{orderedSteps};
- $o->{orderedSteps} = [ qw(selectLanguage acceptLicense selectMouse setupSCSI miscellaneous selectKeyboard setRootPassword addUser configureNetwork configMove ) ];
- $o->{steps}{first} = $o->{orderedSteps}[0];
-}
-
-
-
-
-sub enable_service {
- run_program::run('/sbin/chkconfig', '--level', 5, $_[0], 'on');
-}
-
-sub disable_service {
- run_program::run('/sbin/chkconfig', '--del', $_[0], 'on');
-}
-
-sub install2::configMove {
- my $o = $::o;
-
- security::level::set($o->{security});
-
- require install_steps;
- install_steps::addUser($o); # for test, when replaying wizard on an already configured machine
- while ($#{$o->{users}} ne -1) {
- install_steps::addUser($o);
- }
-
- $::noauto and goto after_autoconf;
-
- my $_wait = $o->wait_message(N("Auto configuration"), N("Please wait, detecting and configuring devices..."));
-
- #- automatic printer, timezone, network configs
- require install_steps_interactive;
- if (cat_('/proc/mounts') !~ /nfs/) {
- install_steps_interactive::configureNetwork($o);
- enable_service('network');
- }
- enable_service('netfs');
- install_steps_interactive::summaryBefore($o);
-
- modules::load_category('multimedia/sound');
- enable_service('sound');
-
- detect_devices::isLaptop() or enable_service('numlock');
-
-after_autoconf:
- require timezone;
- timezone::write($o->{timezone});
-
- $o->{useSupermount} = 1;
- fs::set_removable_mntpoints($o->{all_hds});
- fs::set_all_default_options($o->{all_hds}, %$o, lang::fs_options($o->{locale}));
-
- modules::write_conf();
- require mouse;
- mouse::write_conf($o, $o->{mouse}, 1); #- write xfree mouse conf
- detect_devices::install_addons('');
-
- foreach my $step (@{$o->{orderedSteps_orig}}) {
- next if member($step, @{$o->{orderedSteps}});
- while (my $f = shift @{$o->{steps}{$step}{toBeDone} || []}) {
- log::l("doing remaining toBeDone for undone step $step");
- eval { &$f() };
- $o->ask_warn(N("Error"), [
-N("An error occurred, but I don't know how to handle it nicely.
-Continue at your own risk."), formatError($@) ]) if $@;
- }
- }
- system("killall XFree86");
- output_p("$::prefix/etc/rpm/macros", "%_install_langs all\n");
- system("service dm on");
- c::_exit(0);
-}
-
-
-
-sub automatic_xconf {
- my ($o) = @_;
-
- log::l('automatic XFree configuration');
-
- any::devfssymlinkf($o->{mouse}, 'mouse');
- local $o->{mouse}{device} = 'mouse';
-
- require Xconfig::default;
- $o->{raw_X} = Xconfig::default::configure(class_discard->new, { KEYBOARD => 'uk' }, $o->{mouse}); #- using uk instead of us for now to have less warnings
-
- require Xconfig::main;
- require class_discard;
- Xconfig::main::configure_everything_auto_install($o->{raw_X}, class_discard->new, {},
- { allowNVIDIA_rpms => sub { [] }, allowATI_rpms => sub { [] }, allowFB => $o->{allowFB} });
-
- modules::load_category('various/agpgart');
-
- my $file = '/etc/X11/XF86Config';
- $file = "$file-4" if -e "$file-4";
- my ($Driver) = cat_($file) =~ /Section "Device".*Driver\s*"(.*?)"/s;
- if ($Driver eq 'nvidia') {
- modules::load('nvidia');
- }
- my $lib = 'libGL.so.1';
- symlinkf_short(-e "/usr/lib/$lib.$Driver" ? "/usr/lib/$lib.$Driver" : "/usr/X11R6/lib/$lib", "/etc/X11/$lib");
-}
-
-sub handleI18NClp {}
-
-
-1;
diff --git a/globetrotter/runstage2 b/globetrotter/runstage2
deleted file mode 100755
index af249976c..000000000
--- a/globetrotter/runstage2
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/perl
-
-#- Copyright (c) 2004 Mandrakesoft
-#-
-#- This program is free software; you can redistribute it and/or modify
-#- it under the terms of the GNU General Public License as published by
-#- the Free Software Foundation; either version 2, or (at your option)
-#- any later version.
-#-
-#- This program is distributed in the hope that it will be useful,
-#- but WITHOUT ANY WARRANTY; without even the implied warranty of
-#- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#- GNU General Public License for more details.
-#-
-#- You should have received a copy of the GNU General Public License
-#- along with this program; if not, write to the Free Software
-#- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# i18n: IMPORTANT: to get correct namespace (drakconf instead of libDrakX)
-BEGIN { unshift @::textdomains, 'libDrakX2' }
-c::bind_textdomain_codeset($_, 'UTF8') foreach 'libDrakX', @::textdomains;
-
-use lib qw(../perl-install /usr/lib/libDrakX);
-use standalone;
-use install2;
-
-#$::isStandalone = 0;
-install2::main(@ARGV, '--globetrotter');
-
-c::_exit(0);