* Do not use SetCurrentDir anymore during installations

git-svn-id: trunk@29004 -
This commit is contained in:
joost 2014-11-06 21:45:56 +00:00
parent 23743ec6f0
commit a217fe6cac

View File

@ -4773,21 +4773,14 @@ begin
{$ifdef HAS_TAR_SUPPORT}
if not assigned(FTarWriter) then
begin
If (APackage.Directory<>'') then
EnterDir('');
FGZFileStream := TGZFileStream.create(Defaults.ZipPrefix + APackage.Name + MakeZipSuffix(Defaults.CPU,Defaults.OS) +'.tar.gz', gzopenwrite);
try
FGZFileStream := TGZFileStream.create(Defaults.ZipPrefix + APackage.Name + MakeZipSuffix(Defaults.CPU,Defaults.OS) +'.tar.gz', gzopenwrite);
try
FTarWriter := TTarWriter.Create(FGZFileStream);
FTarWriter.Permissions := [tpReadByOwner, tpWriteByOwner, tpReadByGroup, tpReadByOther];
FTarWriter.UserName := 'root';
FTarWriter.GroupName := 'root';
except
FGZFileStream.Free;
end;
finally
If (APackage.Directory<>'') then
EnterDir(APackage.Directory);
FTarWriter := TTarWriter.Create(FGZFileStream);
FTarWriter.Permissions := [tpReadByOwner, tpWriteByOwner, tpReadByGroup, tpReadByOther];
FTarWriter.UserName := 'root';
FTarWriter.GroupName := 'root';
except
FGZFileStream.Free;
end;
end;
{$ifdef unix}
@ -5122,10 +5115,10 @@ begin
DestFileName:=DestDir+list.ValueFromIndex[i]
else
DestFileName:=list.ValueFromIndex[i];
FOnCopyFile(APackage, List.names[i], DestFileName);
FOnCopyFile(APackage, AddPathPrefix(APackage, List.Names[i]), DestFileName);
end
else
FOnCopyFile(APackage, List[i], DestDir+ExtractFileName(List[i]));
FOnCopyFile(APackage, AddPathPrefix(APackage, List[i]), DestDir+ExtractFileName(List[i]));
Exit;
end;
@ -5133,7 +5126,7 @@ begin
CmdCreateDir(DestDir);
If (Defaults.Copy<>'') then
begin
Args:=FileListToString(List,'');
Args:=FileListToString(List, IncludeTrailingPathDelimiter(GPathPrefix));
Args:=Args+' '+DestDir;
ExecuteCommand(Defaults.Copy,Args);
end
@ -5146,10 +5139,10 @@ begin
else
DestFileName:=list.ValueFromIndex[i];
CmdCreateDir(ExtractFilePath(DestFileName));
SysCopyFile(List.names[i],DestFileName)
SysCopyFile(AddPathPrefix(APackage, List.Names[i]),DestFileName)
end
else
SysCopyFile(List[i],DestDir);
SysCopyFile(AddPathPrefix(APackage, List[i]), DestDir);
end;
@ -6609,7 +6602,7 @@ begin
begin
ConfigFileContent := TStringList.Create;
try
ConfigFileContent.LoadFromFile(ConfigFileName);
ConfigFileContent.LoadFromFile(AddPathPrefix(APAckage, ConfigFileName));
if Defaults.FPUnitSourcePath='0' then
begin
Index := ConfigFileContent.IndexOfName(KeySourcePath);
@ -6618,7 +6611,7 @@ begin
end
else
ConfigFileContent.Values[KeySourcePath] := Defaults.FPUnitSourcePath;
ConfigFileContent.SaveToFile(ConfigFileName);
ConfigFileContent.SaveToFile(AddPathPrefix(APAckage, ConfigFileName));
finally
ConfigFileContent.Free;
end;
@ -6676,12 +6669,12 @@ Var
begin
If (Apackage.State<>tsCompiled) then
MaybeCompile(APackage);
Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);
if AnArchiveFiles and APackage.SeparateArchive then
FinishArchive(APackage);
try
Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);
if AnArchiveFiles and APackage.SeparateArchive then
FinishArchive(APackage);
If (APackage.Directory<>'') then
EnterDir(APackage.Directory);
GPathPrefix := APackage.Directory;
if AnArchiveFiles then
begin
FOnCopyFile:=@AddFileToArchive;
@ -6732,7 +6725,7 @@ begin
end;
Finally
If (APackage.Directory<>'') then
EnterDir('');
GPathPrefix := '';
end;
end;
@ -6772,7 +6765,7 @@ begin
Log(vlInfo,SInfoArchivingPackage,[APackage.Name,A]);
try
If (APackage.Directory<>'') then
EnterDir(APackage.Directory);
GPathPrefix := APackage.Directory;
DoBeforeArchive(Apackage);
AddPackageMacrosToDictionary(APackage, APackage.Dictionary);
L:=TStringList.Create;
@ -6826,7 +6819,7 @@ begin
DoAfterArchive(Apackage);
Finally
If (APackage.Directory<>'') then
EnterDir('');
GPathPrefix := '';
end;
end;
@ -7543,7 +7536,7 @@ begin
If ResourceStrings then
begin
// choose between 2 possible resource files
if FileExists(APrefixU + RSJFileName) then
if FileExists(Installer.BuildEngine.AddPathPrefix(nil, APrefixU + RSJFileName)) then
List.Add(APrefixU + RSJFileName)
else
List.Add(APrefixU + RSTFileName);