OpkMan: Don't use the UTF8 specific functions. FPC 2.x is not supported any more.

git-svn-id: trunk@54362 -
This commit is contained in:
juha 2017-03-07 14:29:46 +00:00
parent e8de10799e
commit a5d7bbe810
6 changed files with 70 additions and 62 deletions

View File

@ -5,10 +5,14 @@ unit opkman_createrepositorypackagefr;
interface interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, StdCtrls, Dialogs, Classes, SysUtils, md5, fpjson,
LazFileUtils, Graphics, Menus, Buttons, Laz2_XMLCfg, opkman_VirtualTrees, // LCL
md5, fpjson, LCLIntf, EditBtn, opkman_serializablepackages, opkman_zipper, Forms, Controls, ExtCtrls, StdCtrls, Dialogs, Graphics, Buttons, EditBtn,
opkman_uploader; LCLIntf,
// LazUtils
FileUtil, LazFileUtils, Laz2_XMLCfg,
// OpkMan
opkman_VirtualTrees, opkman_serializablepackages, opkman_zipper, opkman_uploader;
type type
PData = ^TData; PData = ^TData;
@ -1100,12 +1104,12 @@ begin
ShowHideControls(2); ShowHideControls(2);
EnableDisableControls(True); EnableDisableControls(True);
Uploader := nil; Uploader := nil;
if FileExistsUTF8(FPackageFile) then if FileExists(FPackageFile) then
DeleteFileUTF8(FPackageFile); DeleteFile(FPackageFile);
if FileExistsUTF8(FDestDir + FPackageName + '.json') then if FileExists(FDestDir + FPackageName + '.json') then
DeleteFileUTF8(FDestDir + FPackageName + '.json'); DeleteFile(FDestDir + FPackageName + '.json');
if FileExistsUTF8(FDestDir + 'update_' + FPackageName + '.json') then if FileExists(FDestDir + 'update_' + FPackageName + '.json') then
DeleteFileUTF8(FDestDir + 'update_' + FPackageName + '.json'); DeleteFile(FDestDir + 'update_' + FPackageName + '.json');
MessageDlgEx(rsCreateRepositoryPackageFrm_Message9, mtInformation, [mbOk], TForm(Self.Parent)); MessageDlgEx(rsCreateRepositoryPackageFrm_Message9, mtInformation, [mbOk], TForm(Self.Parent));
TForm(Self.Parent).ModalResult := mrOk; TForm(Self.Parent).ModalResult := mrOk;
TForm(Self.Parent).Close; TForm(Self.Parent).Close;

View File

@ -31,7 +31,11 @@ interface
uses uses
Classes, SysUtils, contnrs, Classes, SysUtils, contnrs,
// LCL // LCL
Dialogs, Forms, Controls, LazIDEIntf, LazFileUtils, Dialogs, Forms, Controls,
// LazUtils
LazFileUtils,
// IdeIntf
LazIDEIntf,
// OpkMan // OpkMan
opkman_const, opkman_options; opkman_const, opkman_options;
@ -148,12 +152,12 @@ var
LocalRepo, LocalRepoConfig: String; LocalRepo, LocalRepoConfig: String;
begin begin
LocalRepo := AppendPathDelim(AppendPathDelim(LazarusIDE.GetPrimaryConfigPath) + cLocalRepository); LocalRepo := AppendPathDelim(AppendPathDelim(LazarusIDE.GetPrimaryConfigPath) + cLocalRepository);
if not DirectoryExistsUTF8(LocalRepo) then if not DirectoryExists(LocalRepo) then
CreateDirUTF8(LocalRepo); CreateDir(LocalRepo);
LocalRepoConfig := AppendPathDelim(LocalRepo + cLocalRepositoryConfig); LocalRepoConfig := AppendPathDelim(LocalRepo + cLocalRepositoryConfig);
if not DirectoryExists(LocalRepoConfig) then if not DirectoryExists(LocalRepoConfig) then
CreateDirUTF8(LocalRepoConfig); CreateDir(LocalRepoConfig);
LocalRepositoryConfigFile := LocalRepoConfig + cLocalRepositoryConfigFile; LocalRepositoryConfigFile := LocalRepoConfig + cLocalRepositoryConfigFile;
LocalRepositoryUpdatesFile := LocalRepoConfig + cLocalRepositoryUpdatesFile; LocalRepositoryUpdatesFile := LocalRepoConfig + cLocalRepositoryUpdatesFile;
end; end;

View File

@ -128,7 +128,7 @@ begin
FLocalUpdateDefault := LocalRepo + AppendPathDelim(cLocalRepositoryUpdate); FLocalUpdateDefault := LocalRepo + AppendPathDelim(cLocalRepositoryUpdate);
FXML := TXMLConfig.Create(AFileName); FXML := TXMLConfig.Create(AFileName);
if FileExistsUTF8(AFileName) then if FileExists(AFileName) then
begin begin
Load; Load;
if FLocalRepositoryPackages = '' then if FLocalRepositoryPackages = '' then
@ -254,11 +254,11 @@ end;
procedure TOptions.CreateMissingPaths; procedure TOptions.CreateMissingPaths;
begin begin
if not DirectoryExists(FLocalRepositoryPackages) then if not DirectoryExists(FLocalRepositoryPackages) then
CreateDirUTF8(FLocalRepositoryPackages); CreateDir(FLocalRepositoryPackages);
if not DirectoryExists(FLocalRepositoryArchive) then if not DirectoryExists(FLocalRepositoryArchive) then
CreateDirUTF8(FLocalRepositoryArchive); CreateDir(FLocalRepositoryArchive);
if not DirectoryExists(FLocalRepositoryUpdate) then if not DirectoryExists(FLocalRepositoryUpdate) then
CreateDirUTF8(FLocalRepositoryUpdate); CreateDir(FLocalRepositoryUpdate);
end; end;
end. end.

View File

@ -1048,7 +1048,7 @@ var
FileName: String; FileName: String;
begin begin
FileName := Options.LocalRepositoryArchive + APackage.RepositoryFileName; FileName := Options.LocalRepositoryArchive + APackage.RepositoryFileName;
Result := (FileExistsUTF8(FileName)) and Result := (FileExists(FileName)) and
// (MD5Print(MD5File(FileName)) = APackage.RepositoryFileHash) and // (MD5Print(MD5File(FileName)) = APackage.RepositoryFileHash) and
(FileUtil.FileSize(FileName) = APackage.RepositoryFileSize); (FileUtil.FileSize(FileName) = APackage.RepositoryFileSize);
end; end;
@ -1062,8 +1062,9 @@ begin
for I := 0 to APackage.FPackageFiles.Count - 1 do for I := 0 to APackage.FPackageFiles.Count - 1 do
begin begin
PackageFile := TPackageFile(APackage.FPackageFiles.Items[I]); PackageFile := TPackageFile(APackage.FPackageFiles.Items[I]);
PackageFile.FPackageAbsolutePath := Options.LocalRepositoryPackages + APackage.PackageBaseDir + PackageFile.FPackageRelativePath + PackageFile.Name; PackageFile.FPackageAbsolutePath := Options.LocalRepositoryPackages + APackage.PackageBaseDir
if not FileExistsUTF8(PackageFile.FPackageAbsolutePath) then + PackageFile.FPackageRelativePath + PackageFile.Name;
if not FileExists(PackageFile.FPackageAbsolutePath) then
begin begin
Result := False; Result := False;
Break; Break;
@ -1154,7 +1155,7 @@ function TSerializablePackages.IsPackageInstalled(const APackageFile: TPackageFi
IntToStr(Package.Version.Minor) + '.' + IntToStr(Package.Version.Minor) + '.' +
IntToStr(Package.Version.Release) + '.' + IntToStr(Package.Version.Release) + '.' +
IntToStr(Package.Version.Build); IntToStr(Package.Version.Build);
if FileExistsUTF8(APackageFile.InstalledFileName) then if FileExists(APackageFile.InstalledFileName) then
begin begin
APackageFile.InstalledFileDescription := GetPackageDescription(Package.Filename); APackageFile.InstalledFileDescription := GetPackageDescription(Package.Filename);
APackageFile.InstalledFileLincese := GetPackageLicense(Package.Filename); APackageFile.InstalledFileLincese := GetPackageLicense(Package.Filename);
@ -1166,19 +1167,19 @@ function TSerializablePackages.IsPackageInstalled(const APackageFile: TPackageFi
end; end;
var var
FileName: String; FileName, RepoPath: String;
begin begin
Result := False; Result := False;
case APackageFile.PackageType of case APackageFile.PackageType of
ptRunTime, ptRunTimeOnly: ptRunTime, ptRunTimeOnly:
begin begin
FileName := StringReplace(APackageFile.Name, '.lpk', '.opkman', [rfIgnoreCase]); FileName := StringReplace(APackageFile.Name, '.lpk', '.opkman', [rfIgnoreCase]);
Result := (psExtracted in APackageFile.PackageStates) and RepoPath := Options.LocalRepositoryPackages + APackageBaseDir + APackageFile.PackageRelativePath;
FileExistsUTF8(Options.LocalRepositoryPackages + APackageBaseDir + APackageFile.PackageRelativePath + FileName); Result := (psExtracted in APackageFile.PackageStates) and FileExists(RepoPath + FileName);
if Result then if Result then
begin begin
APackageFile.InstalledFileName := Options.LocalRepositoryPackages + APackageBaseDir + APackageFile.FPackageRelativePath + APackageFile.Name; APackageFile.InstalledFileName := RepoPath + APackageFile.Name;
if FileExistsUTF8(APackageFile.InstalledFileName) then if FileExists(APackageFile.InstalledFileName) then
begin begin
APackageFile.InstalledFileVersion := GetPackageVersion(APackageFile.InstalledFileName); APackageFile.InstalledFileVersion := GetPackageVersion(APackageFile.InstalledFileName);
APackageFile.InstalledFileDescription := GetPackageDescription(APackageFile.InstalledFileName); APackageFile.InstalledFileDescription := GetPackageDescription(APackageFile.InstalledFileName);
@ -1400,7 +1401,7 @@ begin
(PackageFile.PackageType in [ptRunTime, ptRunTimeOnly]) then (PackageFile.PackageType in [ptRunTime, ptRunTimeOnly]) then
begin begin
FileName := StringReplace(PackageFile.Name, '.lpk', '.opkman', [rfIgnoreCase]); FileName := StringReplace(PackageFile.Name, '.lpk', '.opkman', [rfIgnoreCase]);
FileCreateUTF8(Options.LocalRepositoryPackages + Items[I].PackageBaseDir + PackageFile.PackageRelativePath + FileName); FileCreate(Options.LocalRepositoryPackages + Items[I].PackageBaseDir + PackageFile.PackageRelativePath + FileName);
end; end;
end; end;
end; end;
@ -1457,7 +1458,7 @@ begin
end; end;
paUpdate: paUpdate:
begin begin
if FileExistsUTF8(Options.LocalRepositoryUpdate + Items[I].RepositoryFileName) then if FileExists(Options.LocalRepositoryUpdate + Items[I].RepositoryFileName) then
DeleteFile(Options.LocalRepositoryUpdate + Items[I].RepositoryFileName) DeleteFile(Options.LocalRepositoryUpdate + Items[I].RepositoryFileName)
end; end;
end; end;

View File

@ -32,7 +32,7 @@ interface
uses uses
Classes, SysUtils, fpjson, fpjsonrtti, dateutils, Classes, SysUtils, fpjson, fpjsonrtti, dateutils,
// LazUtils // LazUtils
Laz2_XMLCfg, LazFileUtils, Laz2_XMLCfg,
// OpkMan // OpkMan
opkman_timer, opkman_serializablepackages, opkman_timer, opkman_serializablepackages,
opkman_options, opkman_common, opkman_const, opkman_options, opkman_common, opkman_const,
@ -407,37 +407,38 @@ end;
procedure TUpdates.CheckForOpenSSL; procedure TUpdates.CheckForOpenSSL;
{$IFDEF MSWINDOWS} {$IFDEF MSWINDOWS}
var var
ZipFile: String; ParamPath, libeaydll, ssleaydll, ZipFile: String;
UnZipper: TUnZipper; UnZipper: TUnZipper;
{$ENDIF} {$ENDIF}
begin begin
{$IFDEF MSWINDOWS} {$IFDEF MSWINDOWS}
FOpenSSLAvailable := FileExistsUTF8(ExtractFilePath(ParamStr(0)) + 'libeay32.dll') and ParamPath := ExtractFilePath(ParamStr(0));
FileExistsUTF8(ExtractFilePath(ParamStr(0)) + 'ssleay32.dll'); libeaydll := ParamPath + 'libeay32.dll';
if not FOpenSSLAvailable then ssleaydll := ParamPath + 'ssleay32.dll';
begin FOpenSSLAvailable := FileExists(libeaydll) and FileExists(ssleaydll);
ZipFile := ExtractFilePath(ParamStr(0)) + ExtractFileName(cOpenSSLURL); if not FOpenSSLAvailable then
try begin
FHTTPClient.Get(cOpenSSLURL, ZipFile); ZipFile := ParamPath + ExtractFileName(cOpenSSLURL);
except try
end; FHTTPClient.Get(cOpenSSLURL, ZipFile);
if FileExistsUTF8(ZipFile) then except
begin end;
UnZipper := TUnZipper.Create; if FileExists(ZipFile) then
try begin
try UnZipper := TUnZipper.Create;
UnZipper.FileName := ZipFile; try
UnZipper.Examine; try
UnZipper.UnZipAllFiles; UnZipper.FileName := ZipFile;
except UnZipper.Examine;
end; UnZipper.UnZipAllFiles;
finally except
UnZipper.Free; end;
end; finally
DeleteFileUTF8(ZipFile); UnZipper.Free;
FOpenSSLAvailable := FileExistsUTF8(ExtractFilePath(ParamStr(0)) + 'libeay32.dll') and end;
FileExistsUTF8(ExtractFilePath(ParamStr(0)) + 'ssleay32.dll'); DeleteFile(ZipFile);
end; FOpenSSLAvailable := FileExists(libeaydll) and FileExists(ssleaydll);
end;
end; end;
{$ELSE} {$ELSE}
FOpenSSLAvailable := True; FOpenSSLAvailable := True;

View File

@ -32,8 +32,6 @@ interface
uses uses
Classes, SysUtils, base64, Classes, SysUtils, base64,
// LazUtils
LazFileUtils,
// OpkMan // OpkMan
opkman_options, opkman_const, opkman_options, opkman_const,
{$IFDEF FPC311}fphttpclient{$ELSE}opkman_httpclient{$ENDIF}; {$IFDEF FPC311}fphttpclient{$ELSE}opkman_httpclient{$ENDIF};
@ -138,7 +136,7 @@ var
CanGo: Boolean; CanGo: Boolean;
begin begin
FFileName := ExtractFileName(FZip); FFileName := ExtractFileName(FZip);
CanGo := FileExistsUTF8(FZip); CanGo := FileExists(FZip);
if CanGo then if CanGo then
begin begin
Synchronize(@DoOnUploadProgress); Synchronize(@DoOnUploadProgress);
@ -153,7 +151,7 @@ begin
Exit; Exit;
FFileName := ExtractFileName(FJSON); FFileName := ExtractFileName(FJSON);
CanGo := FileExistsUTF8(FJSON); CanGo := FileExists(FJSON);
if CanGo then if CanGo then
begin begin
Synchronize(@DoOnUploadProgress); Synchronize(@DoOnUploadProgress);
@ -171,7 +169,7 @@ begin
if FJSONUpdate <> '' then if FJSONUpdate <> '' then
begin begin
FFileName := ExtractFileName(FJSONUpdate); FFileName := ExtractFileName(FJSONUpdate);
CanGo := FileExistsUTF8(FJSONUpdate); CanGo := FileExists(FJSONUpdate);
if CanGo then if CanGo then
begin begin
Synchronize(@DoOnUploadProgress); Synchronize(@DoOnUploadProgress);