[interchange-cvs] interchange - heins modified 76 files

interchange-core@icdevgroup.org interchange-core@icdevgroup.org
Mon Jan 27 14:04:00 2003


User:      heins
Date:      2003-01-27 19:03:37 GMT
Modified:  .        MANIFEST Makefile.PL
Modified:  dist/foundation/products variable.txt
Modified:  dist/lib/UI ui.cfg
Modified:  scripts  makecat.PL
Added:     .        install_lsb.pl
Added:     share/interchange-5/en_US az.gif bg.gif box_checked.gif
Added:              box_empty.gif delete.gif delsm.gif doc.gif down.gif
Added:              folder.gif folder.open.gif forward.gif generic.gif
Added:              graylogo.gif icfooter.gif iclogo.gif
Added:              ico_download.gif ico_duck.gif ico_export.gif
Added:              ico_folder.gif ico_import.gif ico_magnify.gif
Added:              ico_pen.gif ico_upload.gif icon_config.gif
Added:              icon_design.gif icon_error.gif icon_ic.gif
Added:              icon_item.gif icon_merch.gif icon_orders.gif
Added:              icon_pages.gif icon_people.gif icon_regen.gif
Added:              icon_stats.gif index.gif interchange.css layout.gif
Added:              left.gif logo.gif meta.png minus.gif photo.jpg
Added:              plus.gif poweredby.gif right.gif smindex.gif
Added:              specmeta.png text.gif tminus.gif tplus.gif
Added:              transfer.gif unknown.gif up.gif
Added:     share/interchange-5/u subtab_down_fill.gif
Added:              subtab_down_left.gif subtab_down_right.gif
Added:              subtab_fill.gif subtab_filllwr.gif subtab_left.gif
Added:              subtab_right.gif tab_dark_left.gif
Added:              tab_dark_right.gif tab_down_fill.gif
Added:              tab_down_left.gif tab_down_right.gif tab_fill.gif
Added:              tab_left.gif tab_light_left.gif tab_light_right.gif
Added:              tab_right.gif
Log:
* Add LSB=1 option to Makefile.PL. This causes:

	-- Set interchange directory to /usr/lib/interchange without prompt
	-- Set interchange user to "interch" without prompt
	-- Run of install_lsb.pl after main install, which:
		- Creates wrapper /usr/sbin/interchange
		- Creates wrapper /usr/sbin/makecat
		- Creates wrapper /etc/init.d/interchange
		- Adds interch user/group if necessary
		- Moves Interchange config file to /etc/interchange/interchange.cfg
		- Moves makecat config file to /etc/interchange/makecat.cfg
		- Moves control of Inet_mode and Unix_mode to files in /etc/interchange
		- Sets default run dir (for both interchange and makecat) to
		  /var/run/interchange
		- Sets default log dir (for both interchange and makecat) to
		  /var/log/interchange
		- Sets default base dir (for makecat) to /var/lib/interchange
		- Sets default cache dir (for makecat) to /var/run/interchange
		- Makes /etc/logrotate.d entry for interchange

       This essentially installs like an RPM, but no RPM dependencies
	   or updating is done. (It does preserve directories already made,
	   and copy files that might have good info to *.lsbsave and such.)

* Change share/interchange to share/interchange-5, including changes
  to Makefile.PL, lib/UI/ui.cfg, and dist/foundation/products/variable.txt.

Revision  Changes    Path
2.84      +98 -77    interchange/MANIFEST


rev 2.84, prev_rev 2.83
Index: MANIFEST
===================================================================
RCS file: /var/cvs/interchange/MANIFEST,v
retrieving revision 2.83
retrieving revision 2.84
diff -u -r2.83 -r2.84
--- MANIFEST	20 Jan 2003 17:39:14 -0000	2.83
+++ MANIFEST	27 Jan 2003 19:03:35 -0000	2.84
@@ -369,6 +369,33 @@
 dist/foundation/dbconf/pgsql/tree.pgsql
 dist/foundation/dbconf/pgsql/userdb.pgsql
 dist/foundation/dbconf/pgsql/variable.dbm
+dist/foundation/dbconf/sqlite/2ndDayAir.dbm
+dist/foundation/dbconf/sqlite/Ground.dbm
+dist/foundation/dbconf/sqlite/NextDayAir.dbm
+dist/foundation/dbconf/sqlite/access.dbm
+dist/foundation/dbconf/sqlite/affiliate.lite
+dist/foundation/dbconf/sqlite/area.lite
+dist/foundation/dbconf/sqlite/cat.lite
+dist/foundation/dbconf/sqlite/component.dbm
+dist/foundation/dbconf/sqlite/country.lite
+dist/foundation/dbconf/sqlite/forum.lite
+dist/foundation/dbconf/sqlite/gift_certs.lite
+dist/foundation/dbconf/sqlite/inventory.lite
+dist/foundation/dbconf/sqlite/locale.dbm
+dist/foundation/dbconf/sqlite/merchandising.lite
+dist/foundation/dbconf/sqlite/mv_metadata.dbm
+dist/foundation/dbconf/sqlite/options.lite
+dist/foundation/dbconf/sqlite/order_returns.lite
+dist/foundation/dbconf/sqlite/orderline.lite
+dist/foundation/dbconf/sqlite/pricing.lite
+dist/foundation/dbconf/sqlite/products.lite
+dist/foundation/dbconf/sqlite/sqlite.cfg
+dist/foundation/dbconf/sqlite/state.lite
+dist/foundation/dbconf/sqlite/survey.dbm
+dist/foundation/dbconf/sqlite/transactions.lite
+dist/foundation/dbconf/sqlite/tree.lite
+dist/foundation/dbconf/sqlite/userdb.lite
+dist/foundation/dbconf/sqlite/variable.dbm
 dist/foundation/etc/area.recordnumber
 dist/foundation/etc/cat.recordnumber
 dist/foundation/etc/log_entry
@@ -411,8 +438,6 @@
 dist/foundation/images/blueyellow/service.gif
 dist/foundation/images/blueyellow/thumb.gif
 dist/foundation/images/blueyellow/yourimage.gif
-dist/foundation/images/computer.xls
-dist/foundation/images/construct.xls
 dist/foundation/images/download.png
 dist/foundation/images/fc.gif
 dist/foundation/images/fixedwidth/about.gif
@@ -566,12 +591,10 @@
 dist/foundation/images/purpleyellow/service.gif
 dist/foundation/images/purpleyellow/thumb.gif
 dist/foundation/images/purpleyellow/yourimage.gif
-dist/foundation/images/reports.xls
 dist/foundation/images/smallamex.png
 dist/foundation/images/smalldisc.png
 dist/foundation/images/smallmc.png
 dist/foundation/images/smallvisa.png
-dist/foundation/images/template.xls
 dist/foundation/images/thumb/thumb.gif
 dist/foundation/include/checkout/billing_address
 dist/foundation/include/checkout/initialization
@@ -914,7 +937,6 @@
 dist/foundation/templates/sampledata/tools/products/transactions.txt
 dist/foundation/templates/sampledata/tools/products/userdb.txt
 dist/foundation/upload/.empty
-dist/foundation/upload/products.xls
 dist/interchange.cfg.dist
 dist/lib/UI/ContentEditor.pm
 dist/lib/UI/Primitive.pm
@@ -1226,6 +1248,7 @@
 extra/Tie/ShadowHash.pm
 extra/URI/URL.pm
 hints.pl
+install_lsb.pl
 lib/Vend/Accounting.pm
 lib/Vend/Accounting/SQL_Ledger.pm
 lib/Vend/Cart.pm
@@ -1302,76 +1325,74 @@
 scripts/offline.PL
 scripts/restart.PL
 scripts/update.PL
-share/interchange/en_US/az.gif
-share/interchange/en_US/bg.gif
-share/interchange/en_US/box_checked.gif
-share/interchange/en_US/box_empty.gif
-share/interchange/en_US/delete.gif
-share/interchange/en_US/delsm.gif
-share/interchange/en_US/doc.gif
-share/interchange/en_US/down.gif
-share/interchange/en_US/folder.gif
-share/interchange/en_US/folder.open.gif
-share/interchange/en_US/forward.gif
-share/interchange/en_US/generic.gif
-share/interchange/en_US/graylogo.gif
-share/interchange/en_US/icfooter.gif
-share/interchange/en_US/iclogo.gif
-share/interchange/en_US/ico_download.gif
-share/interchange/en_US/ico_duck.gif
-share/interchange/en_US/ico_export.gif
-share/interchange/en_US/ico_folder.gif
-share/interchange/en_US/ico_import.gif
-share/interchange/en_US/ico_magnify.gif
-share/interchange/en_US/ico_pen.gif
-share/interchange/en_US/ico_upload.gif
-share/interchange/en_US/icon_config.gif
-share/interchange/en_US/icon_design.gif
-share/interchange/en_US/icon_error.gif
-share/interchange/en_US/icon_ic.gif
-share/interchange/en_US/icon_item.gif
-share/interchange/en_US/icon_merch.gif
-share/interchange/en_US/icon_orders.gif
-share/interchange/en_US/icon_pages.gif
-share/interchange/en_US/icon_people.gif
-share/interchange/en_US/icon_regen.gif
-share/interchange/en_US/icon_stats.gif
-share/interchange/en_US/index.gif
-share/interchange/en_US/interchange.css
-share/interchange/en_US/layout.gif
-share/interchange/en_US/left.gif
-share/interchange/en_US/logo.gif
-share/interchange/en_US/meta.png
-share/interchange/en_US/minus.gif
-share/interchange/en_US/photo.jpg
-share/interchange/en_US/plus.gif
-share/interchange/en_US/poweredby.gif
-share/interchange/en_US/right.gif
-share/interchange/en_US/smindex.gif
-share/interchange/en_US/specmeta.png
-share/interchange/en_US/text.gif
-share/interchange/en_US/tminus.gif
-share/interchange/en_US/tplus.gif
-share/interchange/en_US/transfer.gif
-share/interchange/en_US/unknown.gif
-share/interchange/en_US/up.gif
-share/interchange/ic.css
-share/interchange/ic1.css
-share/interchange/u/subtab_down_fill.gif
-share/interchange/u/subtab_down_left.gif
-share/interchange/u/subtab_down_right.gif
-share/interchange/u/subtab_fill.gif
-share/interchange/u/subtab_filllwr.gif
-share/interchange/u/subtab_left.gif
-share/interchange/u/subtab_right.gif
-share/interchange/u/tab_dark_left.gif
-share/interchange/u/tab_dark_right.gif
-share/interchange/u/tab_down_fill.gif
-share/interchange/u/tab_down_left.gif
-share/interchange/u/tab_down_right.gif
-share/interchange/u/tab_fill.gif
-share/interchange/u/tab_left.gif
-share/interchange/u/tab_light_left.gif
-share/interchange/u/tab_light_right.gif
-share/interchange/u/tab_right.gif
+share/interchange-5/en_US/az.gif
+share/interchange-5/en_US/bg.gif
+share/interchange-5/en_US/box_checked.gif
+share/interchange-5/en_US/box_empty.gif
+share/interchange-5/en_US/delete.gif
+share/interchange-5/en_US/delsm.gif
+share/interchange-5/en_US/doc.gif
+share/interchange-5/en_US/down.gif
+share/interchange-5/en_US/folder.gif
+share/interchange-5/en_US/folder.open.gif
+share/interchange-5/en_US/forward.gif
+share/interchange-5/en_US/generic.gif
+share/interchange-5/en_US/graylogo.gif
+share/interchange-5/en_US/icfooter.gif
+share/interchange-5/en_US/iclogo.gif
+share/interchange-5/en_US/ico_download.gif
+share/interchange-5/en_US/ico_duck.gif
+share/interchange-5/en_US/ico_export.gif
+share/interchange-5/en_US/ico_folder.gif
+share/interchange-5/en_US/ico_import.gif
+share/interchange-5/en_US/ico_magnify.gif
+share/interchange-5/en_US/ico_pen.gif
+share/interchange-5/en_US/ico_upload.gif
+share/interchange-5/en_US/icon_config.gif
+share/interchange-5/en_US/icon_design.gif
+share/interchange-5/en_US/icon_error.gif
+share/interchange-5/en_US/icon_ic.gif
+share/interchange-5/en_US/icon_item.gif
+share/interchange-5/en_US/icon_merch.gif
+share/interchange-5/en_US/icon_orders.gif
+share/interchange-5/en_US/icon_pages.gif
+share/interchange-5/en_US/icon_people.gif
+share/interchange-5/en_US/icon_regen.gif
+share/interchange-5/en_US/icon_stats.gif
+share/interchange-5/en_US/index.gif
+share/interchange-5/en_US/interchange.css
+share/interchange-5/en_US/layout.gif
+share/interchange-5/en_US/left.gif
+share/interchange-5/en_US/logo.gif
+share/interchange-5/en_US/meta.png
+share/interchange-5/en_US/minus.gif
+share/interchange-5/en_US/photo.jpg
+share/interchange-5/en_US/plus.gif
+share/interchange-5/en_US/poweredby.gif
+share/interchange-5/en_US/right.gif
+share/interchange-5/en_US/smindex.gif
+share/interchange-5/en_US/specmeta.png
+share/interchange-5/en_US/text.gif
+share/interchange-5/en_US/tminus.gif
+share/interchange-5/en_US/tplus.gif
+share/interchange-5/en_US/transfer.gif
+share/interchange-5/en_US/unknown.gif
+share/interchange-5/en_US/up.gif
+share/interchange-5/u/subtab_down_fill.gif
+share/interchange-5/u/subtab_down_left.gif
+share/interchange-5/u/subtab_down_right.gif
+share/interchange-5/u/subtab_fill.gif
+share/interchange-5/u/subtab_filllwr.gif
+share/interchange-5/u/subtab_left.gif
+share/interchange-5/u/subtab_right.gif
+share/interchange-5/u/tab_dark_left.gif
+share/interchange-5/u/tab_dark_right.gif
+share/interchange-5/u/tab_down_fill.gif
+share/interchange-5/u/tab_down_left.gif
+share/interchange-5/u/tab_down_right.gif
+share/interchange-5/u/tab_fill.gif
+share/interchange-5/u/tab_left.gif
+share/interchange-5/u/tab_light_left.gif
+share/interchange-5/u/tab_light_right.gif
+share/interchange-5/u/tab_right.gif
 test.pl



2.35      +82 -24    interchange/Makefile.PL


rev 2.35, prev_rev 2.34
Index: Makefile.PL
===================================================================
RCS file: /var/cvs/interchange/Makefile.PL,v
retrieving revision 2.34
retrieving revision 2.35
diff -u -r2.34 -r2.35
--- Makefile.PL	23 Jan 2003 05:00:49 -0000	2.34
+++ Makefile.PL	27 Jan 2003 19:03:35 -0000	2.35
@@ -322,6 +322,8 @@
 	$X{EXE_FILES}	= [ @scripts ];
 	$X{PL_FILES}	= { 'relocate.pl' => [ @scripts ] };
 
+	$MV::Default{LSB} ||= $MV::Default{RPM};
+
 	if(! $MV::Default{force} and ! $MV::Default{PREFIX}) {
 		if($> == 0) {
 			$MV::Default{PREFIX} = '/usr/local/interchange';
@@ -330,6 +332,15 @@
 			$MV::Default{PREFIX} = "$ENV{HOME}/interchange";
 		}
 	}
+	if($MV::Default{LSB}) {
+		if($> != 0) {
+			die "Cannot install LSB (RPM-style) unless root.\n";
+		}
+		unlink '_uid';
+		$MV::Default{PREFIX} = '/usr/lib/interchange';
+		$MV::Default{INTERCHANGE_USER} = 'interch';
+	}
+
 	if($MV::Default{rpmbuilddir} or $MV::Default{RPMBUILDDIR}) {
 		$X{RPMBUILDDIR} = $MV::Default{rpmbuilddir} || $MV::Default{RPMBUILDDIR};
 		$MV::Default{RPMBUILDDIR} = $X{RPMBUILDDIR};
@@ -405,19 +416,24 @@
 		$MV::Default{PREFIX} = '' if
 			$MV::Default{PREFIX} eq $origdir;
 
-		{
-			$realdir = my_prompt(
-								"Where is your Interchange to be installed? ",
-								$MV::Default{PREFIX},
-								);
-			$realdir =~ s:[\\/]\s*$::;
-			$realdir =~ s:^\s*::;
-			if ($realdir eq $origdir) {
-				warn "Can't install in software source directory!\n";
-				redo;
+		PROMPTDIR: {
+			if($MV::Default{LSB}) {
+				$realdir = $MV::Default{PREFIX};
+			}
+			else {
+				$realdir = my_prompt(
+									"Where is your Interchange to be installed? ",
+									$MV::Default{PREFIX},
+									);
+				$realdir =~ s:[\\/]\s*$::;
+				$realdir =~ s:^\s*::;
+				if ($realdir eq $origdir) {
+					warn "Can't install in software source directory!\n";
+					redo;
+				}
 			}
+			print "\n";
 		}
-		print "\n";
 	}
 	else {
 		$MV::Default{final} =~ s:[\\/]\s*$::;
@@ -441,7 +457,7 @@
 			if ! $MV::Default{INSTALLMAN3DIR};
 	}
 
-	my @re_link = qw( interchange bin/minivend );
+	my @re_link = qw();
 	my @re_dir  = qw();
 	my @re_copy = qw();
 
@@ -467,24 +483,24 @@
 		# create symbolic links for images used for
 		# other languages either not yet translated
 		# or without embedded text
-		my @imgfiles = grep m:^share/interchange/en_US/:, @sharefiles;
+		my @imgfiles = grep m:^share/interchange-5/en_US/:, @sharefiles;
 		my @loc;
 		@loc = map { s:.*/::; s/\.cfg$//; $_ } glob('dist/lib/UI/locales/*_*.cfg');
 		my $cwd = cwd();
 		my ($locale, $imgfile, $fname);
-		chdir("$realdir/share/interchange")
-			|| die "Couldn't enter directory $realdir/share/interchange: $!\n";
+		chdir("$realdir/share/interchange-5")
+			|| die "Couldn't enter directory $realdir/share/interchange-5: $!\n";
 
 		for $locale (@loc) {
 			unless (-d $locale) {
 				mkdir ($locale, 0777)
-					|| die "Couldn't create directory $realdir/share/interchange/$locale: $!\n";
+					|| die "Couldn't create directory $realdir/share/interchange-5/$locale: $!\n";
 			}
 			for $imgfile (@imgfiles) {
 				$fname = basename($imgfile);
 				next if -f "$locale/$fname";
 				symlink ("../en_US/$fname", "$locale/$fname")
-					|| die "Couldn't create symlink $realdir/share/interchange/$locale/$fname: $!\n";
+					|| die "Couldn't create symlink $realdir/share/interchange-5/$locale/$fname: $!\n";
 			}
 		}
 		chdir($cwd)
@@ -563,24 +579,45 @@
 						"$realdir/$_";
 			}
 		}
-		chdir '..';
+		if($MV::Default{LSB}) {
+			my $d = cwd();
+			print "Doing LSB install...\n";
+			do './install_lsb.pl';
+			print "Done with LSB install.\n";
+		}
 		if(@remove_old) {
-			my $msg = <<EOF;
+			if($MV::Default{UNLINK}) {
+				print "Removing old files....";
+				my $odir = cwd();
+				chdir $realdir
+					or die "Cannot chdir to $realdir: $!\n";
+print "Changed dir to realdir=$realdir.\n";
+				unlink @remove_old;
+				print "done.\n";
+				chdir $odir
+					or die "Cannot chdir to $odir: $!\n";
+print "Changed dir to odir=$odir.\n";
+			}
+			else {
+				my $msg = <<EOF;
 The following old files were found, different from the installed versions.
 You should check and remove them at the earliest opportunity.
 
 EOF
-			$msg .= join "\n\t", '', @remove_old;
-			$msg .= <<EOF;
+				$msg .= join "\n\t", '', @remove_old;
+				$msg .= <<EOF;
 
 
 If you have not modified any Interchange usertags, software programs, or
 libraries, it is usually safe to remove them, but you might copy them somewhere
 just in case you forgot something you changed.
 EOF
-			print $msg;
+				print $msg;
+			}
 		}
 
+		chdir '..';
+
 		print <<EOF;
 
 Your Interchange main software installation appears to have been successful.
@@ -715,11 +752,24 @@
 		}
 	}
 
+	my @args = (
+			'force',
+			'nocpaninstall=$(NOCPANINSTALL)',
+		);
+	my @extra_args = ( qw/LSB RPM UNLINK/ );
+	for(@extra_args) {
+		next unless $MV::Default{$_};
+		push @args, "$_=$MV::Default{$_}";
+	}
+	push @args, 'final=$(INSTALLARCHLIB)';
+
+	my $argstring = join " ", @args;
+
 	my $new = <<EOF;
 VERBINST=0
 
 mv_install ::
-			\$(PERL) Makefile.PL force nocpaninstall=\$(NOCPANINSTALL) $uidparm final=\$(INSTALLARCHLIB)
+			\$(PERL) Makefile.PL $argstring
 
 install :: all pure_install mv_install
 
@@ -755,7 +805,15 @@
 }
 
 my %mv_specific = qw/
-	STORABLE 1 PREFIX 1 FORCE 1 FINAL 1 RPMBUILDDIR 1 INTERCHANGE_USER 1
+	FINAL            1
+	FORCE            1
+	INTERCHANGE_USER 1
+	LSB              1
+	PREFIX           1
+	RPM              1
+	RPMBUILDDIR      1
+	STORABLE         1
+	UNLINK           1
 /;
 my %delete;
 use Getopt::Long;



2.1                  interchange/install_lsb.pl


rev 2.1, prev_rev 2.0



2.22      +2 -2      interchange/dist/foundation/products/variable.txt


rev 2.22, prev_rev 2.21
Index: variable.txt
===================================================================
RCS file: /var/cvs/interchange/dist/foundation/products/variable.txt,v
retrieving revision 2.21
retrieving revision 2.22
diff -u -r2.21 -r2.22
--- variable.txt	25 Jan 2003 21:24:18 -0000	2.21
+++ variable.txt	27 Jan 2003 19:03:36 -0000	2.22
@@ -110,9 +110,9 @@
 UI_COMPONENT_DIR	templates/components	Directories and Paths
 UI_HELP_HEIGHT	480	Admin layout
 UI_HELP_WIDTH	650	Admin layout
-UI_IMAGE_DIR	__MVC_SHAREURL__/interchange/	Admin control
+UI_IMAGE_DIR	__MVC_SHAREURL__/interchange-5/	Admin control
 UI_ITEM_TABLES	products pricing inventory merchandising options:sku	Item display
-UI_IMAGE_DIR_SECURE	__MVC_SHAREURL__/interchange/	Admin control
+UI_IMAGE_DIR_SECURE	__MVC_SHAREURL__/interchange-5/	Admin control
 UI_META_LINK	1	Admin control
 UI_PAGE_DIR	pages	Directories and Paths
 UI_SECURE	__MVC_UISECURE__	Admin control



2.10      +2 -2      interchange/dist/lib/UI/ui.cfg


rev 2.10, prev_rev 2.9
Index: ui.cfg
===================================================================
RCS file: /var/cvs/interchange/dist/lib/UI/ui.cfg,v
retrieving revision 2.9
retrieving revision 2.10
diff -u -r2.9 -r2.10
--- ui.cfg	26 Nov 2002 15:21:56 -0000	2.9
+++ ui.cfg	27 Jan 2003 19:03:36 -0000	2.10
@@ -1,6 +1,6 @@
 # Set global defaults for UI images location
-Variable UI_IMAGE_DIR /interchange/
-Variable UI_IMAGE_DIR_SECURE /interchange/
+Variable UI_IMAGE_DIR /interchange-5/
+Variable UI_IMAGE_DIR_SECURE /interchange-5/
 
 # Set the base for the UI pages
 Variable UI_BASE admin



2.19      +21 -4     interchange/scripts/makecat.PL


rev 2.19, prev_rev 2.18
Index: makecat.PL
===================================================================
RCS file: /var/cvs/interchange/scripts/makecat.PL,v
retrieving revision 2.18
retrieving revision 2.19
diff -u -r2.18 -r2.19
--- makecat.PL	10 Jan 2003 12:07:50 -0000	2.18
+++ makecat.PL	27 Jan 2003 19:03:36 -0000	2.19
@@ -3,7 +3,7 @@
 #
 # Interchange catalog configurator
 #
-# $Id: makecat.PL,v 2.18 2003/01/10 12:07:50 kwalsh Exp $
+# $Id: makecat.PL,v 2.19 2003/01/27 19:03:36 mheins Exp $
 #
 # Copyright (C) 1996-2002 Red Hat, Inc. <interchange@redhat.com>
 #
@@ -150,6 +150,7 @@
 	    'cgibase'           => \$Conf{cgibase},
 	    'cgidir'            => \$Conf{cgidir},
 	    'cgiurl'            => \$Conf{cgiurl},
+	    'configfile'        => \$Global::ConfigFile,
 	    'demotype'          => \$Conf{demotype},
 	    'documentroot'      => \$Conf{documentroot},
 	    'c'                 => \$Configfile,
@@ -178,6 +179,7 @@
 	    'shareurl'          => \$Conf{shareurl},
 	    'serverconf'        => \$Conf{serverconf},
 	    'servername'        => \$Conf{servername},
+	    'linkfile'          => \$Conf{linkfile},
 	    'vendroot'          => \$Conf{vendroot},
 	    '<>'                => sub {
                             my $arg = shift;
@@ -202,6 +204,7 @@
 	    cgibase=s
 	    cgidir=s
 	    cgiurl|script=s
+	    configfile=s
 	    demotype|template=s
 	    documentroot=s
 	    c=s
@@ -210,6 +213,7 @@
 	    imageurl=s
 	    l=s
 	    linkmode=s
+	    linkfile=s
 	    linkhost=s
 	    linkport=s
 	    linkprogram=s
@@ -1272,6 +1276,12 @@
 	}
 }
 
+# Final substitution
+for(keys %Conf) {
+	next unless $Conf{$_} =~ /__MVC_/;
+	$Conf{$_} =~ s/__MVC_([A-Z]+)__/$Conf{lc $1}/g;
+}
+
 # Find the perl path
 $Conf{'perl'} = $Config{perlpath};
 
@@ -1394,6 +1404,7 @@
 		if(! $tried_compile) {
 			my $cmd = 'bin/compile_link ';
 			$cmd .= "-$lm " if $lm;
+			$cmd .= "-s $Conf{linkfile} " if $Conf{linkfile};
 			$cmd .= "-p $lp " if $lp;
 			$cmd .= "-h $lh " if $lh;
 			if ($Conf{relocate}) { 
@@ -2093,8 +2104,14 @@
 					or die "\nCouldn't copy $Global::ConfigFile: $!\n";
 			}	
 			else {
-				File::Copy::copy("$Global::ConfigFile.dist", $tmpfile)
-					or die "\nCouldn't copy $Global::ConfigFile.dist: $!\n";
+				my @cf = ("$Global::ConfigFile.dist", "$Global::VendRoot/interchange.cfg.dist");
+				my $cf;
+				for(@cf) {
+					$cf = $_ if -f $_;
+				}
+
+				File::Copy::copy($cf, $tmpfile)
+					or die "\nCouldn't copy $cf: $!\n";
 			}	
 		}
 
@@ -2277,7 +2294,7 @@
 
 =head1 VERSION
 
-# $Id: makecat.PL,v 2.18 2003/01/10 12:07:50 kwalsh Exp $
+# $Id: makecat.PL,v 2.19 2003/01/27 19:03:36 mheins Exp $
 
 =head1 INTRODUCTION
 



1.1                  interchange/share/interchange-5/en_US/az.gif


<<az.gif: GIF image data, version 87a, 20 x 22,>>


1.1                  interchange/share/interchange-5/en_US/bg.gif


<<bg.gif: GIF image data, version 89a, 1 x 1,>>


1.1                  interchange/share/interchange-5/en_US/box_checked.gif


<<box_checked.gif: GIF image data, version 89a, 15 x 15,>>


1.1                  interchange/share/interchange-5/en_US/box_empty.gif


<<box_empty.gif: GIF image data, version 89a, 15 x 15,>>


1.1                  interchange/share/interchange-5/en_US/delete.gif


<<delete.gif: GIF image data, version 89a, 20 x 20,>>


1.1                  interchange/share/interchange-5/en_US/delsm.gif


<<delsm.gif: GIF image data, version 89a, 13 x 11,>>


1.1                  interchange/share/interchange-5/en_US/doc.gif


<<doc.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/down.gif


<<down.gif: GIF image data, version 89a, 20 x 22,>>


1.1                  interchange/share/interchange-5/en_US/folder.gif


<<folder.gif: GIF image data, version 89a, 20 x 22,>>


1.1                  interchange/share/interchange-5/en_US/folder.open.gif


<<folder.open.gif: GIF image data, version 89a, 27 x 22,>>


1.1                  interchange/share/interchange-5/en_US/forward.gif


<<forward.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/generic.gif


<<generic.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/graylogo.gif


<<graylogo.gif: GIF image data, version 89a, 121 x 32,>>


1.1                  interchange/share/interchange-5/en_US/icfooter.gif


<<icfooter.gif: GIF image data, version 89a, 90 x 15,>>


1.1                  interchange/share/interchange-5/en_US/iclogo.gif


<<iclogo.gif: GIF image data, version 89a, 127 x 34,>>


1.1                  interchange/share/interchange-5/en_US/ico_download.gif


<<ico_download.gif: GIF image data, version 89a, 9 x 12,>>


1.1                  interchange/share/interchange-5/en_US/ico_duck.gif


<<ico_duck.gif: GIF image data, version 89a, 16 x 14,>>


1.1                  interchange/share/interchange-5/en_US/ico_export.gif


<<ico_export.gif: GIF image data, version 89a, 15 x 15,>>


1.1                  interchange/share/interchange-5/en_US/ico_folder.gif


<<ico_folder.gif: GIF image data, version 89a, 13 x 10,>>


1.1                  interchange/share/interchange-5/en_US/ico_import.gif


<<ico_import.gif: GIF image data, version 89a, 15 x 15,>>


1.1                  interchange/share/interchange-5/en_US/ico_magnify.gif


<<ico_magnify.gif: GIF image data, version 89a, 16 x 15,>>


1.1                  interchange/share/interchange-5/en_US/ico_pen.gif


<<ico_pen.gif: GIF image data, version 89a, 14 x 11,>>


1.1                  interchange/share/interchange-5/en_US/ico_upload.gif


<<ico_upload.gif: GIF image data, version 89a, 11 x 12,>>


1.1                  interchange/share/interchange-5/en_US/icon_config.gif


<<icon_config.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_design.gif


<<icon_design.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_error.gif


<<icon_error.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_ic.gif


<<icon_ic.gif: GIF image data, version 89a, 25 x 25,>>


1.1                  interchange/share/interchange-5/en_US/icon_item.gif


<<icon_item.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_merch.gif


<<icon_merch.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_orders.gif


<<icon_orders.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_pages.gif


<<icon_pages.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_people.gif


<<icon_people.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_regen.gif


<<icon_regen.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/icon_stats.gif


<<icon_stats.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/index.gif


<<index.gif: GIF image data, version 89a, 20 x 22,>>


1.1                  interchange/share/interchange-5/en_US/interchange.css


rev 1.1, prev_rev 1.0
Index: interchange.css
===================================================================
A:active,A:hover,A:link,A:visited {
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-decoration:underline;
}

.alert {
	color: #DE0101;
	font-weight:normal;
}

A.alertlink:active,A.alertlink:hover,A.alertlink:link,A.alertlink:visited {
	color: #DE0101;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-decoration:underline;
}

.block1,.block2,.block3 {
	background-color: #D4D0C8;
	vertical-align: top;
}

.block1inner,.block2inner {
	background-color: #D4D0C8;
	padding: 6px;
	vertical-align: top;
}

.block3inner {
	background-color: #D4D0C8;
	height: 100%;;
	padding: 6px;
	vertical-align: top
}

.block4 {
	background-color: #E6E6E6;
	vertical-align: top;
}

.block4bold,.mainbold {
	background-color: #E6E6E6;;
	color: #808080;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold
}

.block4sub {
	background-color: #E6E6E6;;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: normal;
	text-decoration: underline
}

body {
	background-color: #D4D0C8;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	margin: 0px;
}

.cborder {
	background-color: #999999;
	padding: 0;
}

.cbreak {
	background-color: #EEEEEE;
	border-left: 1px solid #999999;
	font-size: 11px;;
	font-weight: bold
}

.cdata {
	border-bottom: 1px solid #CCCCCC;
	border-right: 1px solid #CCCCCC;
	border-top: 1px solid #CCCCCC;
	font-size: 11px;;
	margin-right: 4px;
	padding-right: 2px;
	vertical-align: top
}

.cerror {
	color: red;
	font-size: 11px;
}

.cheader {
	color: #663333;
	font-size: 11px;;
	font-weight: bold
}

.chelp,.rhint {
	background-color: #FFFFFF;
	color: #AFABA5;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	padding: 4px;
}

.clabel {
	border-bottom: 1px solid #CCCCCC;
	border-left: 1px solid #CCCCCC;
	border-top: 1px solid #CCCCCC;
	font-size: 11px;
	font-weight: medium;
	padding-left: 5px;;
	text-align: left
}

.cmessage {
	color: green;
	font-size: 11px;
}

A:link.ctitle,A:visited.ctitle {
	color: white;
	font-size: 11px;;
	font-weight: bold;
	text-decoration: none
}

A:hover.ctitle,A:active.ctitle {
	color: yellow;
	font-size: 11px;;
	font-weight: bold;
	text-decoration: underline
}

.ctitle {
	font-size: 11px;;
	font-weight: bold
}

.cwidget {
	font-size: 11px;;
	vertical-align: center
}

.darkshade {
	background-color: #000000;
}

A.edittablink:link,A.edittablink:visited {
	color: #CC3333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-align: center;
	text-decoration: none;
}

A.edittablink:active,A.edittablink:hover {
	color: #CC3333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-align: center;
	text-decoration: underline;
}

.footer {
	color: #666666;;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px
}

A.footer:active,A.footer:hover {
	color: #333333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: normal;
	text-align: center;
	text-decoration: underline;
}

A.footer:link,A.footer:visited {
	color: #333333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: normal;
	text-align: center;
	text-decoration: none;
}

A.headlink:active,A.headlink:hover,A.headlink:link,A.headlink:visited {
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-decoration:underline;
}

.lightshade,.workarea,.rbreak {
	background-color: #FFFFFF;
}

.maincontent {
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: normal;
}

.rborder {
	background-color: #CCCCCC;
	margin: 0;;
	padding: 2
}

.rhead {
	background-color: #E6E6E6;;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px
}

A.rhead:active,A.rhead:hover {
	color: #000000;
	font-size: 12px;
	text-decoration: underline;
}

A.rhead:link,A.rhead:visited {
	color: #000000;
	font-size: 12px;
	text-decoration:none;
}

.rheadBold {
	background-color: #E6E6E6;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;;
	padding: 4px
}

.rheader {
	background-color: #999999;
	color: #663333;
}

.rmarq {
	background-color: #999999;;
	color: #FFFFFF;
	font-size: 12px;
	font-weight: bold
}

A.rmarq:active,A.rmarq:link,A.rmarq:visited {
	color: #FFFFCC;
	font-size: 12px;
	font-weight: bold;
	text-decoration:none;
}

A.rmarq:hover {
	color: #FFFF99;
	font-size: 12px;
	font-weight: bold;
	text-decoration: underline;
}

.rnobg {
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	padding: 4px;
}

.rnorm {
	background-color: #FFFFFF;
	border: 1px solid #CCCCCC;
}

.rowalt {
	background-color: #EAF1FB;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	padding: 4px;
}

A.rowalt:hover,A.rowalt:hover,A.rownorm:active,A.rownorm:hover {
	color: #333333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-decoration: underline;
}

A.rowalt:link,A.rowalt:visited,A.rownorm:link,A.rownorm:visited {
	color: #333333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-decoration:none;
}

.rownorm {
	background-color: #FFFFFF;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	padding: 4px;
}

.rownormbold {
	background-color: #FFFFFF;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;;
	padding: 4px
}

.rseparator {
	background-color: #CCCCCC;
}

.rshade {
	background-color: #E6E6E6;
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	padding: 4px;
}

.rspacer {
	background-color: #999999;
	margin: 0;;
	padding: 0
}

.rsubbold {
	background-color: #FFFFFF;
	color: #808080;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;;
	padding: 4px
}

.rtitle {
	background-color: #808080;;
	color: #FFFFFF;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold
}

A.rtitle:active,A.rtitle:link,A.rtitle:visited {
	color: #FFFFCC;
	font-size: 12px;
	font-weight: bold;
	text-decoration:none;
}


.s1,.s2 {
	color: #666666;;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px
}

.s3 {
	color: #333333;;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px
}

.s4 {
	color: #666666;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	width: 100%;
}

.searchbox {
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	width: 115px;
}

.searchrow {
	text-align: right;
}

A.sublink:active,A.sublink:hover,A.sublink:link,A.sublink:visited {
	color: #0033FF;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	text-decoration:underline;
}

.subtabdownfill {
	background-image: url(../u/subtab_down_fill.gif);
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-align: center;
	vertical-align: middle;
}

.subtabdownleft {
	background-image: url(../u/subtab_down_left.gif);
}

.subtabdownright {
	background-image: url(../u/subtab_down_right.gif);
}

.subtabfill {
	background-image: url(../u/subtab_fill.gif);
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-align: center;
	vertical-align: middle;
}

.subtabfilllwr {
	background-image: url(../u/subtab_filllwr.gif);
}

.subtableft {
	background-image: url(../u/subtab_left.gif);
}

.subtabright {
	background-image: url(../u/subtab_right.gif);
}

.tabdown,.subtabdown {
	background-color: #B4B0AA;
}

.tabdownfill {
	background-image: url(../u/tab_down_fill.gif);
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-align: center;
	vertical-align: middle;
}

.tabdownleft {
	background-image: url(../u/tab_down_left.gif);
}

.tabdownright {
	background-image: url(../u/tab_down_right.gif);
}

.tabfill {
	background-image: url(../u/tab_fill.gif);
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-align: center;
	vertical-align: middle;
}

.tableft {
	background-image: url(../u/tab_left.gif);
}

A.tablink:active,A.tablink:hover,A.tablink:link,A.tablink:visited,A.subtablink:active,A.subtablink:hover,A.subtablink:link,A.subtablink:visited {
	color: #333333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	text-align: center;
	text-decoration: none;
}

.tabright {
	background-image: url(../u/tab_right.gif);
}

.titlebox {
	background-color: #CCCCCC;
	border:1px solid #333333;
	color: #663333;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: bold;
	padding-bottom: 3px;
	padding-left: 10px;
	padding-top: 3px;
	width: 98%;
}

A.titlebox:active,A.titlebox:hover,A.titlebox:link,A.titlebox:visited {
	color: #993333;
	font-family: Arial, Helvetica, sans-serif;
	border: 0;
	font-size: 14px;
	text-decoration: underline;
}

A.toplink:active,A.toplink:hover {
	color: #004284;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-decoration: underline;
}

A.toplink:link,A.toplink:visited {
	color: #004284;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-decoration:none;
}




1.1                  interchange/share/interchange-5/en_US/layout.gif


<<layout.gif: GIF image data, version 89a, 20 x 22,>>


1.1                  interchange/share/interchange-5/en_US/left.gif


<<left.gif: GIF image data, version 89a, 20 x 22,>>


1.1                  interchange/share/interchange-5/en_US/logo.gif


<<logo.gif: GIF image data, version 89a, 121 x 32,>>


1.1                  interchange/share/interchange-5/en_US/meta.png


<<meta.png: PNG image data, 16 x 16, 8-bit gray+alpha, non-interlaced>>


1.1                  interchange/share/interchange-5/en_US/minus.gif


<<minus.gif: GIF image data, version 89a, 20 x 20,>>


1.1                  interchange/share/interchange-5/en_US/photo.jpg


<<photo.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), 72 x 72>>


1.1                  interchange/share/interchange-5/en_US/plus.gif


<<plus.gif: GIF image data, version 89a, 20 x 20,>>


1.1                  interchange/share/interchange-5/en_US/poweredby.gif


<<poweredby.gif: GIF image data, version 89a, 82 x 33,>>


1.1                  interchange/share/interchange-5/en_US/right.gif


<<right.gif: GIF image data, version 89a, 20 x 22,>>


1.1                  interchange/share/interchange-5/en_US/smindex.gif


<<smindex.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/specmeta.png


<<specmeta.png: PNG image data, 20 x 16, 8-bit/color RGBA, non-interlaced>>


1.1                  interchange/share/interchange-5/en_US/text.gif


<<text.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/tminus.gif


<<tminus.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/tplus.gif


<<tplus.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/transfer.gif


<<transfer.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/unknown.gif


<<unknown.gif: GIF image data, version 89a, 16 x 16,>>


1.1                  interchange/share/interchange-5/en_US/up.gif


<<up.gif: GIF image data, version 89a, 20 x 22,>>


1.1                  interchange/share/interchange-5/u/subtab_down_fill.gif


<<subtab_down_fill.gif: GIF image data, version 89a, 1 x 20,>>


1.1                  interchange/share/interchange-5/u/subtab_down_left.gif


<<subtab_down_left.gif: GIF image data, version 89a, 16 x 20,>>


1.1                  interchange/share/interchange-5/u/subtab_down_right.gif


<<subtab_down_right.gif: GIF image data, version 89a, 16 x 20,>>


1.1                  interchange/share/interchange-5/u/subtab_fill.gif


<<subtab_fill.gif: GIF image data, version 89a, 1 x 20,>>


1.1                  interchange/share/interchange-5/u/subtab_filllwr.gif


<<subtab_filllwr.gif: GIF image data, version 89a, 400 x 2,>>


1.1                  interchange/share/interchange-5/u/subtab_left.gif


<<subtab_left.gif: GIF image data, version 89a, 16 x 20,>>


1.1                  interchange/share/interchange-5/u/subtab_right.gif


<<subtab_right.gif: GIF image data, version 89a, 16 x 20,>>


1.1                  interchange/share/interchange-5/u/tab_dark_left.gif


<<tab_dark_left.gif: GIF image data, version 89a, 14 x 16,>>


1.1                  interchange/share/interchange-5/u/tab_dark_right.gif


<<tab_dark_right.gif: GIF image data, version 89a, 2 x 16,>>


1.1                  interchange/share/interchange-5/u/tab_down_fill.gif


<<tab_down_fill.gif: GIF image data, version 89a, 1 x 20,>>


1.1                  interchange/share/interchange-5/u/tab_down_left.gif


<<tab_down_left.gif: GIF image data, version 89a, 24 x 20,>>


1.1                  interchange/share/interchange-5/u/tab_down_right.gif


<<tab_down_right.gif: GIF image data, version 89a, 24 x 20,>>


1.1                  interchange/share/interchange-5/u/tab_fill.gif


<<tab_fill.gif: GIF image data, version 89a, 1 x 20,>>


1.1                  interchange/share/interchange-5/u/tab_left.gif


<<tab_left.gif: GIF image data, version 89a, 24 x 20,>>


1.1                  interchange/share/interchange-5/u/tab_light_left.gif


<<tab_light_left.gif: GIF image data, version 89a, 17 x 16,>>


1.1                  interchange/share/interchange-5/u/tab_light_right.gif


<<tab_light_right.gif: GIF image data, version 89a, 2 x 16,>>


1.1                  interchange/share/interchange-5/u/tab_right.gif


<<tab_right.gif: GIF image data, version 89a, 24 x 20,>>