diff --git a/xpinstall/packager/windows/config.it b/xpinstall/packager/windows/config.it index 67a9278bbfa..91a262d4d81 100644 --- a/xpinstall/packager/windows/config.it +++ b/xpinstall/packager/windows/config.it @@ -196,6 +196,11 @@ Show Dialog=TRUE Title=Select Program Folder Message0=Setup will add program icons to the Program Folder listed below. You may type a new folder name, or select one from the Existing Folder list. Click Install to begin installation. +[Dialog Site Selector] +Show Dialog=FALSE +Title=Site Selector +Message0=Select the region you wish to download from, or leave it on Default for Setup to automatically determine the best place to download from releative to where you are. + [Dialog Start Install] Show Dialog=FALSE Title=Start Install @@ -258,7 +263,8 @@ Attributes=SELECTED|INVISIBLE ; the next url key is tried in sequential order. ; The url should not contain the filename. Setup will assemble the complete url ; using the url keys and the Archive key. -url0=$URLPath$ +Domain0=$Domain$ +Server Path0=$ServerPath$ [Component1] Description Short=Mozilla Seamonkey @@ -271,12 +277,14 @@ $InstallSizeArchive$:browser.xpi ; Attributes can be the following values: ; SELECTED - the component is selected to be installed by default. ; INVISIBLE - the component is not shown in the Select Components dialog. -Attributes=SELECTED|INVISIBLE +Attributes=SELECTED|DISABLED ; url keys can be as many as needed. url0 is attempted first. if it fails, ; the next url key is tried in sequential order. ; The url should not contain the filename. Setup will assemble the complete url ; using the url keys and the Archive key. -url0=$URLPath$ +Domain0=$Domain$ +Server Path0=$ServerPath$ +;url0=$URLPath$ [Component2] Description Short=Mail & News @@ -295,7 +303,9 @@ Parameter= ; the next url key is tried in sequential order. ; The url should not contain the filename. Setup will assemble the complete url ; using the url keys and the Archive key. -url0=$URLPath$ +Domain0=$Domain$ +Server Path0=$ServerPath$ +;url0=$URLPath$ [Core] Source=[XPI PATH]\core.xpi @@ -304,6 +314,12 @@ $InstallSize$:core Cleanup=TRUE Message=Preparing Install, please wait... +[Redirect] +Status=Enabled +url0=$RedirIniUrl$ +Description= +Message= + ; The Timing key needs to be one of the following values: ; pre download - process before any files have been downloaded. ; post download - process after all files have been downloaded. diff --git a/xpinstall/packager/windows/makeall.pl b/xpinstall/packager/windows/makeall.pl index 2bcde262354..36834ccd05f 100644 --- a/xpinstall/packager/windows/makeall.pl +++ b/xpinstall/packager/windows/makeall.pl @@ -27,27 +27,27 @@ # # Make sure there are at least four arguments -if($#ARGV < 3) +if($#ARGV < 2) { - die "usage: $0 + die "usage: $0 - default version : julian based date version - ie: 5.0.0.99257 - - URL path : URL path to where the .xpi files will be staged at. - Either ftp:// or http:// can be used. Nothing will be - copied to there by this script. It is used for config.ini. + default version : y2k compliant based date version. + ie: 5.0.0.2000040413 staging path : full path to where the components are staged at - dist install path : full path to where the mozilla/dist/win32_o.obj/install is at. + dist install path : full path to where the dist install dir is at. + ie: d:\\builds\\mozilla\\dist\\win32_o.obj\\install \n"; } $inDefaultVersion = $ARGV[0]; -$inURLPath = $ARGV[1]; -$inStagePath = $ARGV[2]; -$inDistPath = $ARGV[3]; +$inStagePath = $ARGV[1]; +$inDistPath = $ARGV[2]; + +$inRedirIniUrl = "ftp://not.needed.com/because/the/xpi/files/will/be/located/in/the/same/dir/as/the/installer"; +$inXpiUrl = "ftp://not.needed.com/because/the/xpi/files/will/be/located/in/the/same/dir/as/the/installer"; + $seiFileNameGeneric = "nsinstall.exe"; $seiFileNameSpecific = "mozilla-win32-installer.exe"; $userAgent = "5.0b1 (en)"; @@ -104,7 +104,7 @@ exit(0); sub MakeConfigFile { # Make config.ini file - if(system("perl makecfgini.pl config.it $inDefaultVersion $inStagePath $inDistPath\\xpi $inURLPath") != 0) + if(system("perl makecfgini.pl config.it $inDefaultVersion $inStagePath $inDistPath\\xpi $inRedirIniUrl $inXpiUrl") != 0) { exit(1); } diff --git a/xpinstall/packager/windows/makecfgini.pl b/xpinstall/packager/windows/makecfgini.pl index f8df5b1c0f9..3c63636b0a1 100644 --- a/xpinstall/packager/windows/makecfgini.pl +++ b/xpinstall/packager/windows/makecfgini.pl @@ -31,29 +31,48 @@ # - which is a .ini template # version # - version to display on the blue background +# # Path to staging area # - path on where the seamonkey built bits are staged to +# # xpi path # - path on where xpi files will be located at -# URL path -# - path to where the .xpi files are staged. can be -# either ftp:// or http:// # -# ie: perl makecfgini.pl config.it 5.0.0.1999120608 z:\exposed\windows\32bit\en\5.0 d:\builds\mozilla\dist\win32_0.obj\install\xpi ftp://sweetlou/products/client/seamonkey/windows/32bit/x86/1999-09-13-10-M10 +# redirect file url +# - url to where the redirect.ini file will be staged at. +# Either ftp:// or http:// can be used +# ie: ftp://ftp.netscape.com/pub/seamonkey +# +# xpi url +# - url to where the .xpi files will be staged at. +# Either ftp:// or http:// can be used +# ie: ftp://ftp.netscape.com/pub/seamonkey/xpi +# +# ie: perl makecfgini.pl config.it 5.0.0.1999120608 k:\windows\32bit\5.0 d:\builds\mozilla\dist\win32_o.obj\install\xpi ftp://ftp.netscape.com/pub/seamonkey/windows/32bit/x86/1999-09-13-10-M10 ftp://ftp.netscape.com/pub/seamonkey/windows/32bit/x86/1999-09-13-10-M10/xpi +# # # Make sure there are at least two arguments -if($#ARGV < 4) +if($#ARGV < 5) { - die "usage: $0 <.it file> <.xpi path> + die "usage: $0 <.it file> <.xpi path> - .it file : input ini template file - version : version to be shown in setup. Typically the same version - as show in mozilla.exe. - staging path : path to where the components are staged at - .xpi path : path to where the .xpi files have been built to - URL path : URL path to where the .xpi files will be staged at. - Either ftp:// or http:// can be used + .it file : input ini template file + + version : version to be shown in setup. Typically the same version + as show in mozilla.exe. + + staging path : path to where the components are staged at + + .xpi path : path to where the .xpi files have been built to + ie: d:\\builds\\mozilla\\dist\\win32_o.obj\\install\\xpi + + redirect file : url to where the redirect.ini file will be staged at. + url Either ftp:// or http:// can be used + ie: ftp://ftp.netscape.com/pub/seamonkey + xpi url : url to where the .xpi files will be staged at. + Either ftp:// or http:// can be used + ie: ftp://ftp.netscape.com/pub/seamonkey/xpi \n"; } @@ -61,7 +80,13 @@ $inItFile = $ARGV[0]; $inVersion = $ARGV[1]; $inStagePath = $ARGV[2]; $inXpiPath = $ARGV[3]; -$inURLPath = $ARGV[4]; +$inRedirIniUrl = $ARGV[4]; +$inUrl = $ARGV[5]; + +$inDomain; +$inServerPath; + +($inDomain, $inServerPath) = ParseDomainAndPath($inUrl); # Get the name of the file replacing the .it extension with a .ini extension @inItFileSplit = split(/\./,$inItFile); @@ -132,16 +157,13 @@ while($line = ) print fpOutIni "Install Size Archive=$installSizeArchive\n"; } - elsif($line =~ /\$Version\$/i) + else { # For each line read, search and replace $Version$ with the version passed in $line =~ s/\$Version\$/$inVersion/i; - print fpOutIni $line; - } - else - { - # For each line read, search and replace $InstallSizeSystem$ with the calculated size - $line =~ s/\$URLPath\$/$inURLPath/i; + $line =~ s/\$Domain\$/$inDomain/i; + $line =~ s/\$ServerPath\$/$inServerPath/i; + $line =~ s/\$RedirIniUrl\$/$inRedirIniUrl/i; print fpOutIni $line; } } @@ -151,6 +173,44 @@ print " done!\n"; # end of script exit(0); +sub ParseDomainAndPath() +{ + my($aUrl) = @_; + my($aDomain, $aServerPath); + + @slashSplit = split(/\//, $aUrl); + if($#slashSplit >= 0) + { + for($i = 0; $i <= $#slashSplit; $i++) + { + if($i <= 2) + { + if($aDomain eq "") + { + $aDomain = "$slashSplit[$i]"; + } + else + { + $aDomain = "$aDomain/$slashSplit[$i]"; + } + } + else + { + if($aServerPath eq "") + { + $aServerPath = "/$slashSplit[$i]"; + } + else + { + $aServerPath = "$aServerPath/$slashSplit[$i]"; + } + } + } + } + + return($aDomain, $aServerPath); +} + sub OutputInstallSize() { my($inPath) = @_;