From 66cf655d5d6b4d5ed825ef652128a439f0c50963 Mon Sep 17 00:00:00 2001 From: Sam Hartman Date: Wed, 28 Sep 2011 21:03:52 +0000 Subject: [PATCH] Installer wip. Actually builds semi-functional kfw.msi Still many things missing and/or misplaced Signed-off-by: Kevin Wasserman git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25281 dc483132-0cff-0310-8789-dd5450dbe970 --- src/windows/build/BKWconfig.xml | 10 +- src/windows/build/bkw.pl | 107 +-- src/windows/build/copyfiles.xml | 65 -- src/windows/installer/wix/config.wxi | 16 +- src/windows/installer/wix/features.wxi | 64 +- src/windows/installer/wix/files.wxi | 750 ++++++------------ src/windows/installer/wix/kfw.wxs | 4 +- .../installer/wix/lang/strings_1033.wxl | 2 +- src/windows/installer/wix/platform.wxi | 35 +- 9 files changed, 328 insertions(+), 725 deletions(-) diff --git a/src/windows/build/BKWconfig.xml b/src/windows/build/BKWconfig.xml index 92fdc6ecd..c787befae 100644 --- a/src/windows/build/BKWconfig.xml +++ b/src/windows/build/BKWconfig.xml @@ -24,19 +24,19 @@ - + - + - - + + @@ -114,7 +114,7 @@ - + diff --git a/src/windows/build/bkw.pl b/src/windows/build/bkw.pl index 24c32a035..f23c9be63 100644 --- a/src/windows/build/bkw.pl +++ b/src/windows/build/bkw.pl @@ -132,9 +132,10 @@ sub main { ##++ Validate required conditions: - # List of programs which must be in PATH: - my @required_list = ('sed', 'awk', 'which', 'cat', 'rm', 'cvs', 'svn', 'doxygen', - 'hhc', 'candle', 'light', 'makensis', 'nmake', 'plink', 'filever'); + # List of programs which must be in PATH:' + # 'cvs', 'svn', 'hhc', 'makensis', 'plink', 'filever' + my @required_list = ('sed', 'awk', 'which', 'cat', 'rm', 'doxygen', + 'candle', 'light', 'nmake'); my $requirements_met = 1; my $first_missing = 0; my $error_list = ""; @@ -190,7 +191,7 @@ sub main { # If the switch can be negated, test that, too: if ( ! ($val->{def} =~ /A/)) { local $nosw = "no".$sw; - if (exists $OPT->{$sw}) { ## -NO ? + if (exists $OPT->{$nosw}) { ## -NO ? if ($val->{env}) { if (!$val->{def}) { print "Deleting environment variable $sw\n"; @@ -288,7 +289,7 @@ sub main { $clean = $odr->{clean}->{def} = 0; } - my $wd = $src."\\pismere"; + my $wd = $src; if (! ($rverb =~ /skip/)) { local $len = 0; @@ -421,7 +422,7 @@ sub main { # ** Do this now (after repository update and before first zip) # because making zip files requires some configuration data be set up. local $version_path = $config->{Stages}->{Package}->{Config}->{Paths}->{Versions}->{path}; - open(DAT, "$src/$version_path") or die "Could not open $version_path."; + open(DAT, "$src/$version_path") or die "Could not open $src/$version_path."; @raw = ; close DAT; foreach $line (@raw) { @@ -562,40 +563,40 @@ sub main { # The build results are copied to a staging area, where the packager expects to find them. # We put the staging area in the fixed area .../pismere/staging. - my $prepackage = $config->{Stages}->{PrePackage}; - my $staging = "$wd\\staging"; - chdir($wd) or die "Fatal -- couldn't chdir to $wd\n"; - print "Info -- chdir to ".`cd`."\n" if ($verbose); - if (-d "staging") { - !system("rm -rf $staging/*") or die "Fatal -- Couldn't clean $staging."; - } - else { - mkdir($staging) or die "Fatal -- Couldn't create $staging."; - } + #my $prepackage = $config->{Stages}->{PrePackage}; + #my $staging = "$wd\\staging"; + #chdir($wd) or die "Fatal -- couldn't chdir to $wd\n"; + #print "Info -- chdir to ".`cd`."\n" if ($verbose); + #if (-d "staging") { + # !system("rm -rf $staging/*") or die "Fatal -- Couldn't clean $staging."; + # } + #else { + # mkdir($staging) or die "Fatal -- Couldn't create $staging."; + # } # Force Where From and To are relative to: - $prepackage->{CopyList}->{Config}->{From}->{root} = "$wd\\athena"; - $prepackage->{CopyList}->{Config}->{To}->{root} = "$wd\\staging"; - copyFiles($prepackage->{CopyList}, $config); ## Copy any files [this step takes a while] + #$prepackage->{CopyList}->{Config}->{From}->{root} = "$wd\\athena"; + #$prepackage->{CopyList}->{Config}->{To}->{root} = "$wd\\staging"; + #copyFiles($prepackage->{CopyList}, $config); ## Copy any files [this step takes a while] # Sign files: - chdir($staging) or die "Fatal -- couldn't chdir to $staging\n"; - print "Info -- chdir to ".`cd`."\n" if ($verbose); - if ($odr->{sign}->{def}) { - signFiles($config->{Stages}->{PostPackage}->{Config}->{Signing}, $config); - } + #chdir($staging) or die "Fatal -- couldn't chdir to $staging\n"; + #print "Info -- chdir to ".`cd`."\n" if ($verbose); + #if ($odr->{sign}->{def}) { + # signFiles($config->{Stages}->{PostPackage}->{Config}->{Signing}, $config); + # } # Create working directories for building the installers: if (-d "$wd\\buildwix") {!system("rm -rf $wd\\buildwix/*") or die "Fatal -- Couldn't clean $wd\\buildwix."} - !system("echo D | xcopy /s $wd\\staging\\install\\wix\\*.* $wd\\buildwix") or die "Fatal -- Couldn't create $wd\\buildwix."; - if (-d "$wd\\buildnsi") {!system("rm -rf $wd\\buildnsi/*") or die "Fatal -- Couldn't clean $wd\\buildnsi."} - !system("echo D | xcopy /s $wd\\staging\\install\\nsis\\*.* $wd\\buildnsi") or die "Fatal -- Couldn't create $wd\\buildnsi."; + !system("echo D | xcopy /s $wd\\windows\\installer\\wix\\*.* $wd\\buildwix") or die "Fatal -- Couldn't create $wd\\buildwix."; + #if (-d "$wd\\buildnsi") {!system("rm -rf $wd\\buildnsi/*") or die "Fatal -- Couldn't clean $wd\\buildnsi."} + #!system("echo D | xcopy /s $wd\\staging\\install\\nsis\\*.* $wd\\buildnsi") or die "Fatal -- Couldn't create $wd\\buildnsi."; - chdir("$staging\\install\\wix") or die "Fatal -- Couldn't cd to $staging\\install\\wix"; + chdir("$wd\\windows\\installer\\wix") or die "Fatal -- Couldn't cd to $wd\\windows\\installer\\wix"; print "Info -- chdir to ".`cd`."\n" if ($verbose); # Correct errors in files.wxi: - !system("sed 's/WorkingDirectory=\"\\[dirbin\\]\"/WorkingDirectory=\"dirbin\"/g' files.wxi > a.tmp") or die "Fatal -- Couldn't modify files.wxi."; - !system("mv a.tmp files.wxi") or die "Fatal -- Couldn't update files.wxi."; + #!system("sed 's/WorkingDirectory=\"\\[dirbin\\]\"/WorkingDirectory=\"dirbin\"/g' files.wxi > a.tmp") or die "Fatal -- Couldn't modify files.wxi."; + #!system("mv a.tmp files.wxi") or die "Fatal -- Couldn't update files.wxi."; # Make sed script to run on the site-local configuration files: local $tmpfile = "site-local.sed" ; @@ -623,41 +624,41 @@ sub main { !system("sed -f $tmpfile site-local-tagged.wxi > $wd\\buildwix\\site-local.wxi") or die "Fatal -- Couldn't modify site-local.wxi."; # Now update site-local.nsi: - chdir "..\\nsis"; - print "Info -- chdir to ".`cd`."\n" if ($verbose); - !system("sed -f ..\\wix\\$tmpfile site-local-tagged.nsi > b.tmp") or die "Fatal -- Couldn't modify site-local.wxi."; + #chdir "..\\nsis"; + #print "Info -- chdir to ".`cd`."\n" if ($verbose); + #!system("sed -f ..\\wix\\$tmpfile site-local-tagged.nsi > b.tmp") or die "Fatal -- Couldn't modify site-local.wxi."; # Add DEBUG or RELEASE: - if ($odr->{debug}->{def}) { ## debug build - !system("echo !define DEBUG >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; - } - else { ## release build - !system("echo !define RELEASE >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; - } + #if ($odr->{debug}->{def}) { ## debug build + # !system("echo !define DEBUG >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; + # } + #else { ## release build + # !system("echo !define RELEASE >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; + # } # Add BETA if present: - if (exists $config->{Versions}->{'BETA_STR'}) { - !system("echo !define BETA $config->{Versions}->{'BETA_STR'} >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; - } - !system("mv -f b.tmp $wd\\buildnsi\\site-local.nsi") or die "Fatal -- Couldn't replace site-local.nsi."; + #if (exists $config->{Versions}->{'BETA_STR'}) { + # !system("echo !define BETA $config->{Versions}->{'BETA_STR'} >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; + # } + #!system("mv -f b.tmp $wd\\buildnsi\\site-local.nsi") or die "Fatal -- Couldn't replace site-local.nsi."; # Run the script on nsi-includes-tagged.nsi: - !system("sed -f ..\\wix\\$tmpfile nsi-includes-tagged.nsi > $wd\\buildnsi\\nsi-includes.nsi") or die "Fatal -- Couldn't modify nsi-includes.nsi."; - !system("rm ..\\wix\\$tmpfile") or die "Fatal -- Couldn't remove $tmpfile."; + #!system("sed -f ..\\wix\\$tmpfile nsi-includes-tagged.nsi > $wd\\buildnsi\\nsi-includes.nsi") or die "Fatal -- Couldn't modify nsi-includes.nsi."; + #!system("rm ..\\wix\\$tmpfile") or die "Fatal -- Couldn't remove $tmpfile."; - if ($verbose) {print "Info -- *** End prepackage.\n";} + #if ($verbose) {print "Info -- *** End prepackage.\n";} - if ($verbose) {print "Info -- *** Begin package.\n";} + #if ($verbose) {print "Info -- *** Begin package.\n";} # Make the msi: chdir("$wd\\buildwix") or die "Fatal -- Couldn't cd to $wd\\buildwix"; print "Info -- *** Make .msi:\n" if ($verbose); print "Info -- chdir to ".`cd`."\n" if ($verbose); !system("$MAKE") or die "Error -- msi installer build failed."; - chdir("$wd\\buildnsi") or die "Fatal -- Couldn't cd to $wd\\buildnsi"; - print "Info -- *** Make NSIS:\n" if ($verbose); - print "Info -- chdir to ".`cd`."\n" if ($verbose); - !system("cl.exe killer.cpp advapi32.lib") or die "Error -- nsis killer.exe not built."; - !system("rename killer.exe Killer.exe") or die "Error -- Couldn't rename killer.exe"; - !system("makensis kfw.nsi") or die "Error -- executable installer build failed."; + #chdir("$wd\\buildnsi") or die "Fatal -- Couldn't cd to $wd\\buildnsi"; + #print "Info -- *** Make NSIS:\n" if ($verbose); + #print "Info -- chdir to ".`cd`."\n" if ($verbose); + #!system("cl.exe killer.cpp advapi32.lib") or die "Error -- nsis killer.exe not built."; + #!system("rename killer.exe Killer.exe") or die "Error -- Couldn't rename killer.exe"; + #!system("makensis kfw.nsi") or die "Error -- executable installer build failed."; # Begin packaging extra items: chdir($wd) or die "Fatal -- Couldn't cd to $wd"; diff --git a/src/windows/build/copyfiles.xml b/src/windows/build/copyfiles.xml index 11809ca74..4b24e1f65 100644 --- a/src/windows/build/copyfiles.xml +++ b/src/windows/build/copyfiles.xml @@ -6,40 +6,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -48,10 +19,6 @@ - - - - @@ -128,21 +95,6 @@ - - - - - - - - - - - - - - - @@ -151,11 +103,6 @@ - - - - - @@ -177,16 +124,6 @@ - - - - - - - - - - @@ -216,6 +153,4 @@ - - \ No newline at end of file diff --git a/src/windows/installer/wix/config.wxi b/src/windows/installer/wix/config.wxi index e1f48a8b1..813e1259f 100644 --- a/src/windows/installer/wix/config.wxi +++ b/src/windows/installer/wix/config.wxi @@ -30,7 +30,7 @@ - + + + - - - - @@ -63,9 +61,11 @@ - - + + + + diff --git a/src/windows/installer/wix/features.wxi b/src/windows/installer/wix/features.wxi index a15cfcd86..fcb6d59ce 100644 --- a/src/windows/installer/wix/features.wxi +++ b/src/windows/installer/wix/features.wxi @@ -57,7 +57,6 @@ - @@ -67,53 +66,26 @@ + - + - + - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - @@ -127,11 +99,11 @@ - + @@ -163,12 +135,11 @@ LEASHAUTOSTART = 1 - - + - + @@ -180,32 +151,23 @@ Level="130" Title="$(loc.KerberosSDKTitle)"> - - - - - + - - - - - @@ -218,11 +180,9 @@ Level="30" Title="$(loc.KerberosDocTitle)"> - + diff --git a/src/windows/installer/wix/files.wxi b/src/windows/installer/wix/files.wxi index 5a391d03d..b73a2fd77 100644 --- a/src/windows/installer/wix/files.wxi +++ b/src/windows/installer/wix/files.wxi @@ -24,32 +24,32 @@ or implied warranty. --> - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - + + @@ -58,26 +58,6 @@ - - - - - KRB4KRBREALMS - - - - KRB4KRBCONF - - - - KRB4CONFIGDIR - - - - KRB4TICKETFILE - - - @@ -93,106 +73,87 @@ - - - - - - + - + - + - - - - - - - - - - + - - + - + - + - + - + - + + + + + + - + - + - + - - - - - - + - - - - + + + + - - - - - - - + - - + @@ -220,25 +181,25 @@ LEASHMSLSAIMPORT - + - + - + @@ -313,145 +274,59 @@ - + - + - - - - - - - - - - VersionNT > 500 - - - - - VersionNT <= 500 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VersionNT > 500 - - - - - - - - - - VersionNT <= 500 - - - - - - USENETIDMGR + - + - - - - + - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -459,323 +334,250 @@ - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + + - - - - - - - - - - + - + - - - - + + + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + - + - + @@ -785,179 +587,107 @@ - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - - + + - + - - - - - - - - - - - - - - - - - - + - + - + - + + + + + diff --git a/src/windows/installer/wix/kfw.wxs b/src/windows/installer/wix/kfw.wxs index c01d1bfe5..6b85faaf8 100644 --- a/src/windows/installer/wix/kfw.wxs +++ b/src/windows/installer/wix/kfw.wxs @@ -29,7 +29,7 @@ - + - + diff --git a/src/windows/installer/wix/lang/strings_1033.wxl b/src/windows/installer/wix/lang/strings_1033.wxl index 60b680fba..cd515895b 100644 --- a/src/windows/installer/wix/lang/strings_1033.wxl +++ b/src/windows/installer/wix/lang/strings_1033.wxl @@ -1,5 +1,5 @@ - +