[otrs-cvs] CVS: otrs/Kernel/System Package.pm,1.53,1.54

cvs-log at otrs.org cvs-log at otrs.org
Thu Jan 11 11:56:25 CET 2007


Update of /home/cvs/otrs/Kernel/System
In directory lancelot:/tmp/cvs-serv18925

Modified Files:
	Package.pm 
Log Message:
* bug#1564: improved error messages in case of non-matching OS and/or
  framework version.
* minor cleanup ($Structur -> $Structure)


Index: Package.pm
===================================================================
RCS file: /home/cvs/otrs/Kernel/System/Package.pm,v
retrieving revision 1.53
retrieving revision 1.54
diff -C2 -r1.53 -r1.54
*** Package.pm	7 Dec 2006 15:43:24 -0000	1.53
--- Package.pm	11 Jan 2007 10:56:23 -0000	1.54
***************
*** 1,5 ****
  # --
  # Kernel/System/Package.pm - lib package manager
! # Copyright (C) 2001-2006 OTRS GmbH, http://otrs.org/
  # --
  # $Id$
--- 1,5 ----
  # --
  # Kernel/System/Package.pm - lib package manager
! # Copyright (C) 2001-2007 OTRS GmbH, http://otrs.org/
  # --
  # $Id$
***************
*** 149,154 ****
          # get package attributes
          if ($Row[3]) {
!             my %Structur = $Self->PackageParse(String => $Row[3]);
!             push (@Data, {%Package, %Structur});
          }
      }
--- 149,154 ----
          # get package attributes
          if ($Row[3]) {
!             my %Structure = $Self->PackageParse(String => $Row[3]);
!             push (@Data, {%Package, %Structure});
          }
      }
***************
*** 220,243 ****
      }
      # get package attributes
!     my %Structur = $Self->PackageParse(%Param);
!     if (!$Structur{Name}) {
          $Self->{LogObject}->Log(Priority => 'error', Message => "Need Name!");
          return;
      }
!     if (!$Structur{Version}) {
          $Self->{LogObject}->Log(Priority => 'error', Message => "Need Version!");
          return;
      }
      # check if package already exists
!     if ($Self->RepositoryGet(Name => $Structur{Name}->{Content}, Version => $Structur{Version}->{Content})) {
  #        $Self->{LogObject}->Log(
  #            Priority => 'error',
! #            Message => "Package $Structur{Name}->{Content}-$Structur{Version}->{Content} already in local repository!",
  #        );
  #        return;
          my $SQL = "DELETE FROM package_repository WHERE ".
!             " name = '".$Self->{DBObject}->Quote($Structur{Name}->{Content})."'".
              " AND ".
!             " version = '".$Self->{DBObject}->Quote($Structur{Version}->{Content})."'";
          $Self->{DBObject}->Do(SQL => $SQL);
      }
--- 220,243 ----
      }
      # get package attributes
!     my %Structure = $Self->PackageParse(%Param);
!     if (!$Structure{Name}) {
          $Self->{LogObject}->Log(Priority => 'error', Message => "Need Name!");
          return;
      }
!     if (!$Structure{Version}) {
          $Self->{LogObject}->Log(Priority => 'error', Message => "Need Version!");
          return;
      }
      # check if package already exists
!     if ($Self->RepositoryGet(Name => $Structure{Name}->{Content}, Version => $Structure{Version}->{Content})) {
  #        $Self->{LogObject}->Log(
  #            Priority => 'error',
! #            Message => "Package $Structure{Name}->{Content}-$Structure{Version}->{Content} already in local repository!",
  #        );
  #        return;
          my $SQL = "DELETE FROM package_repository WHERE ".
!             " name = '".$Self->{DBObject}->Quote($Structure{Name}->{Content})."'".
              " AND ".
!             " version = '".$Self->{DBObject}->Quote($Structure{Version}->{Content})."'";
          $Self->{DBObject}->Do(SQL => $SQL);
      }
***************
*** 246,253 ****
              " create_time, create_by, change_time, change_by)".
              " VALUES ".
!             " ('".$Self->{DBObject}->Quote($Structur{Name}->{Content})."', ".
!             " '".$Self->{DBObject}->Quote($Structur{Version}->{Content})."', ".
!             " '".$Self->{DBObject}->Quote($Structur{Vendor}->{Content})."', ".
!             " '".$Self->{DBObject}->Quote($Structur{Name}->{Content})."-".$Self->{DBObject}->Quote($Structur{Version}->{Content}).".xml', ".
              " '213', 'text/xml', ?, 'not installed', ".
              " current_timestamp, 1, current_timestamp, 1)";
--- 246,253 ----
              " create_time, create_by, change_time, change_by)".
              " VALUES ".
!             " ('".$Self->{DBObject}->Quote($Structure{Name}->{Content})."', ".
!             " '".$Self->{DBObject}->Quote($Structure{Version}->{Content})."', ".
!             " '".$Self->{DBObject}->Quote($Structure{Vendor}->{Content})."', ".
!             " '".$Self->{DBObject}->Quote($Structure{Name}->{Content})."-".$Self->{DBObject}->Quote($Structure{Version}->{Content}).".xml', ".
              " '213', 'text/xml', ?, 'not installed', ".
              " current_timestamp, 1, current_timestamp, 1)";
***************
*** 423,430 ****
      }
      # conflict check
!     my %Structur = $Self->PackageParse(%Param);
      # check if package is already installed
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structur{Name}->{Content} eq $Package->{Name}->{Content}) {
              if ($Package->{Status} =~ /^installed$/i) {
                  if (!$Param{Force}) {
--- 423,430 ----
      }
      # conflict check
!     my %Structure = $Self->PackageParse(%Param);
      # check if package is already installed
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structure{Name}->{Content} eq $Package->{Name}->{Content}) {
              if ($Package->{Status} =~ /^installed$/i) {
                  if (!$Param{Force}) {
***************
*** 440,446 ****
      # check OS
      my $OSCheckOk = 1;
!     if ($Structur{OS} && ref($Structur{OS}) eq 'ARRAY') {
          $OSCheckOk = 0;
!         foreach my $OS (@{$Structur{OS}}) {
              if ($^O =~ /^$OS$/i) {
                  $OSCheckOk = 1;
--- 440,446 ----
      # check OS
      my $OSCheckOk = 1;
!     if ($Structure{OS} && ref($Structure{OS}) eq 'ARRAY') {
          $OSCheckOk = 0;
!         foreach my $OS (@{$Structure{OS}}) {
              if ($^O =~ /^$OS$/i) {
                  $OSCheckOk = 1;
***************
*** 449,455 ****
      }
      if (!$OSCheckOk && !$Param{Force}) {
          $Self->{LogObject}->Log(
              Priority => 'error',
!             Message => "Sorry, can't install package, because package is not for your OS!!",
          );
          return;
--- 449,460 ----
      }
      if (!$OSCheckOk && !$Param{Force}) {
+         my $CurrOS = $^O;
+         my $PkgOS = '<unknown OS>';
+         if (defined $Structure{OS} && scalar(@{$Structure{OS}}) > 0) {
+             $PkgOS = $Structure{OS}->[0];
+         }
          $Self->{LogObject}->Log(
              Priority => 'error',
!             Message => "Sorry, can't install package, because OS of package ($PkgOS) does not match your OS ($CurrOS)!!",
          );
          return;
***************
*** 457,462 ****
      # check framework
      my $FWCheckOk = 0;
!     if ($Structur{Framework} && ref($Structur{Framework}) eq 'ARRAY') {
!         foreach my $FW (@{$Structur{Framework}}) {
              if ($Self->_CheckFramework(Framework => $FW->{Content})) {
                  $FWCheckOk = 1;
--- 462,467 ----
      # check framework
      my $FWCheckOk = 0;
!     if ($Structure{Framework} && ref($Structure{Framework}) eq 'ARRAY') {
!         foreach my $FW (@{$Structure{Framework}}) {
              if ($Self->_CheckFramework(Framework => $FW->{Content})) {
                  $FWCheckOk = 1;
***************
*** 465,477 ****
      }
      if (!$FWCheckOk && !$Param{Force}) {
          $Self->{LogObject}->Log(
              Priority => 'error',
!             Message => "Sorry, can't install package, because package is not for your Framework!!",
          );
          return;
      }
      # check required packages
!     if ($Structur{PackageRequired} && ref($Structur{PackageRequired}) eq 'ARRAY') {
!         if (!$Self->_CheckRequired(%Param, PackageRequired => $Structur{PackageRequired}) && !$Param{Force}) {
              return;
          }
--- 470,487 ----
      }
      if (!$FWCheckOk && !$Param{Force}) {
+         my $FwVersion = $Self->{ConfigObject}->Get('Version');
+         my $PkgFwVersion = '<unknown version>';
+         if (defined $Structure{Framework} && scalar(@{$Structure{Framework}}) > 0) {
+             $PkgFwVersion = $Structure{Framework}->[0]->{Content};
+         }
          $Self->{LogObject}->Log(
              Priority => 'error',
!             Message => "Sorry, can't install package, because the framework version required by the package ($PkgFwVersion) does not match your Framework ($FwVersion)!!",
          );
          return;
      }
      # check required packages
!     if ($Structure{PackageRequired} && ref($Structure{PackageRequired}) eq 'ARRAY') {
!         if (!$Self->_CheckRequired(%Param, PackageRequired => $Structure{PackageRequired}) && !$Param{Force}) {
              return;
          }
***************
*** 479,484 ****
      # check files
      my $FileCheckOk = 1;
!     if ($Structur{Filelist} && ref($Structur{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structur{Filelist}}) {
  #            print STDERR "Notice: Want to install $File->{Location}!\n";
          }
--- 489,494 ----
      # check files
      my $FileCheckOk = 1;
!     if ($Structure{Filelist} && ref($Structure{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structure{Filelist}}) {
  #            print STDERR "Notice: Want to install $File->{Location}!\n";
          }
***************
*** 493,498 ****
      # check if one of this files is already intalled by an other package
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structur{Name}->{Content} ne $Package->{Name}->{Content}) {
!             foreach my $FileNew (@{$Structur{Filelist}}) {
                  foreach my $FileOld (@{$Package->{Filelist}}) {
                      $FileNew->{Location} =~ s/\/\//\//g;
--- 503,508 ----
      # check if one of this files is already intalled by an other package
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structure{Name}->{Content} ne $Package->{Name}->{Content}) {
!             foreach my $FileNew (@{$Structure{Filelist}}) {
                  foreach my $FileOld (@{$Package->{Filelist}}) {
                      $FileNew->{Location} =~ s/\/\//\//g;
***************
*** 516,527 ****
          my $SQL = "UPDATE package_repository SET install_status = 'installed'".
              " WHERE ".
!             " name = '".$Self->{DBObject}->Quote($Structur{Name}->{Content})."'".
              " AND ".
!             " version = '".$Self->{DBObject}->Quote($Structur{Version}->{Content})."'";
          $Self->{DBObject}->Do(SQL => $SQL);
  
          # install files
!         if ($Structur{Filelist} && ref($Structur{Filelist}) eq 'ARRAY') {
!             foreach my $File (@{$Structur{Filelist}}) {
                  # install file
                  $Self->_FileInstall(%{$File});
--- 526,537 ----
          my $SQL = "UPDATE package_repository SET install_status = 'installed'".
              " WHERE ".
!             " name = '".$Self->{DBObject}->Quote($Structure{Name}->{Content})."'".
              " AND ".
!             " version = '".$Self->{DBObject}->Quote($Structure{Version}->{Content})."'";
          $Self->{DBObject}->Do(SQL => $SQL);
  
          # install files
!         if ($Structure{Filelist} && ref($Structure{Filelist}) eq 'ARRAY') {
!             foreach my $File (@{$Structure{Filelist}}) {
                  # install file
                  $Self->_FileInstall(%{$File});
***************
*** 532,539 ****
          $Self->{SysConfigObject}->WriteDefault();
          # install code
!         if ($Structur{CodeInstall} && $Structur{CodeInstall}->{Content}) {
!             if ($Structur{CodeInstall}->{Content}) {
!                 print STDERR "Code: $Structur{CodeInstall}->{Content}\n";
!                 if (!eval $Structur{CodeInstall}->{Content}) {
                      print STDERR "CodeError: $@\n";
                  }
--- 542,549 ----
          $Self->{SysConfigObject}->WriteDefault();
          # install code
!         if ($Structure{CodeInstall} && $Structure{CodeInstall}->{Content}) {
!             if ($Structure{CodeInstall}->{Content}) {
!                 print STDERR "Code: $Structure{CodeInstall}->{Content}\n";
!                 if (!eval $Structure{CodeInstall}->{Content}) {
                      print STDERR "CodeError: $@\n";
                  }
***************
*** 541,546 ****
          }
          # install database
!         if ($Structur{DatabaseInstall} && ref($Structur{DatabaseInstall}) eq 'ARRAY') {
!             my @SQL = $Self->{DBObject}->SQLProcessor(Database => $Structur{DatabaseInstall}, );
              foreach my $SQL (@SQL) {
                  print STDERR "Notice: $SQL\n";
--- 551,556 ----
          }
          # install database
!         if ($Structure{DatabaseInstall} && ref($Structure{DatabaseInstall}) eq 'ARRAY') {
!             my @SQL = $Self->{DBObject}->SQLProcessor(Database => $Structure{DatabaseInstall}, );
              foreach my $SQL (@SQL) {
                  print STDERR "Notice: $SQL\n";
***************
*** 579,586 ****
      }
      # parse source file
!     my %Structur = $Self->PackageParse(%Param);
      # install files
!     if ($Structur{Filelist} && ref($Structur{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structur{Filelist}}) {
              # install file
  #            print STDERR "Notice: Reinstall $File->{Location}!\n";
--- 589,596 ----
      }
      # parse source file
!     my %Structure = $Self->PackageParse(%Param);
      # install files
!     if ($Structure{Filelist} && ref($Structure{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structure{Filelist}}) {
              # install file
  #            print STDERR "Notice: Reinstall $File->{Location}!\n";
***************
*** 592,599 ****
      $Self->{SysConfigObject}->WriteDefault();
      # install code
!     if ($Structur{CodeReinstall} && $Structur{CodeReinstall}->{Content}) {
!         if ($Structur{CodeReinstall}->{Content}) {
!             print STDERR "Code: $Structur{CodeReinstall}->{Content}\n";
!             if (!eval $Structur{CodeReinstall}->{Content}) {
                  print STDERR "CodeError: $@\n";
              }
--- 602,609 ----
      $Self->{SysConfigObject}->WriteDefault();
      # install code
!     if ($Structure{CodeReinstall} && $Structure{CodeReinstall}->{Content}) {
!         if ($Structure{CodeReinstall}->{Content}) {
!             print STDERR "Code: $Structure{CodeReinstall}->{Content}\n";
!             if (!eval $Structure{CodeReinstall}->{Content}) {
                  print STDERR "CodeError: $@\n";
              }
***************
*** 614,618 ****
      my $Self = shift;
      my %Param = @_;
!     my %InstalledStructur = ();
      # check needed stuff
      foreach (qw(String)) {
--- 624,628 ----
      my $Self = shift;
      my %Param = @_;
!     my %InstalledStructure = ();
      # check needed stuff
      foreach (qw(String)) {
***************
*** 623,636 ****
      }
      # conflict check
!     my %Structur = $Self->PackageParse(%Param);
      # check if package is already installed
      my $Installed = 0;
      my $InstalledVersion = 0;
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structur{Name}->{Content} eq $Package->{Name}->{Content}) {
              if ($Package->{Status} =~ /^installed$/i) {
                  $Installed = 1;
                  $InstalledVersion = $Package->{Version}->{Content};
!                 %InstalledStructur = %{$Package};
              }
          }
--- 633,646 ----
      }
      # conflict check
!     my %Structure = $Self->PackageParse(%Param);
      # check if package is already installed
      my $Installed = 0;
      my $InstalledVersion = 0;
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structure{Name}->{Content} eq $Package->{Name}->{Content}) {
              if ($Package->{Status} =~ /^installed$/i) {
                  $Installed = 1;
                  $InstalledVersion = $Package->{Version}->{Content};
!                 %InstalledStructure = %{$Package};
              }
          }
***************
*** 641,649 ****
      }
      # version check
!     if (!$Self->_CheckVersion(Version1 => $Structur{Version}->{Content}, Version2 => $InstalledVersion, Type => 'Max')) {
!         if ($Structur{Version}->{Content} eq $InstalledVersion) {
              $Self->{LogObject}->Log(
                  Priority => 'error',
!                 Message => "Can't upgrade, package '$Structur{Name}->{Content}-$InstalledVersion' already installed!",
              );
              if (!$Param{Force}) {
--- 651,659 ----
      }
      # version check
!     if (!$Self->_CheckVersion(Version1 => $Structure{Version}->{Content}, Version2 => $InstalledVersion, Type => 'Max')) {
!         if ($Structure{Version}->{Content} eq $InstalledVersion) {
              $Self->{LogObject}->Log(
                  Priority => 'error',
!                 Message => "Can't upgrade, package '$Structure{Name}->{Content}-$InstalledVersion' already installed!",
              );
              if (!$Param{Force}) {
***************
*** 654,658 ****
              $Self->{LogObject}->Log(
                  Priority => 'error',
!                 Message => "Can't upgrade, installed package '$InstalledVersion' is newer as '$Structur{Version}->{Content}'!",
              );
              if (!$Param{Force}) {
--- 664,668 ----
              $Self->{LogObject}->Log(
                  Priority => 'error',
!                 Message => "Can't upgrade, installed package '$InstalledVersion' is newer as '$Structure{Version}->{Content}'!",
              );
              if (!$Param{Force}) {
***************
*** 663,668 ****
      # check if one of this files is already intalled by an other package
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structur{Name}->{Content} ne $Package->{Name}->{Content}) {
!             foreach my $FileNew (@{$Structur{Filelist}}) {
                  foreach my $FileOld (@{$Package->{Filelist}}) {
                      $FileNew->{Location} =~ s/\/\//\//g;
--- 673,678 ----
      # check if one of this files is already intalled by an other package
      foreach my $Package ($Self->RepositoryList()) {
!         if ($Structure{Name}->{Content} ne $Package->{Name}->{Content}) {
!             foreach my $FileNew (@{$Structure{Filelist}}) {
                  foreach my $FileOld (@{$Package->{Filelist}}) {
                      $FileNew->{Location} =~ s/\/\//\//g;
***************
*** 682,692 ****
      }
      # remove old packages
!     $Self->RepositoryRemove(Name => $Structur{Name}->{Content});
      if ($Self->RepositoryAdd(String => $Param{String})) {
          # check OS
          my $OSCheckOk = 1;
!         if ($Structur{OS} && ref($Structur{OS}) eq 'ARRAY') {
              $OSCheckOk = 0;
!             foreach my $OS (@{$Structur{OS}}) {
                  if ($^O =~ /^$OS$/i) {
                      $OSCheckOk = 1;
--- 692,702 ----
      }
      # remove old packages
!     $Self->RepositoryRemove(Name => $Structure{Name}->{Content});
      if ($Self->RepositoryAdd(String => $Param{String})) {
          # check OS
          my $OSCheckOk = 1;
!         if ($Structure{OS} && ref($Structure{OS}) eq 'ARRAY') {
              $OSCheckOk = 0;
!             foreach my $OS (@{$Structure{OS}}) {
                  if ($^O =~ /^$OS$/i) {
                      $OSCheckOk = 1;
***************
*** 703,708 ****
          # check framework
          my $FWCheckOk = 0;
!         if ($Structur{Framework} && ref($Structur{Framework}) eq 'ARRAY') {
!             foreach my $FW (@{$Structur{Framework}}) {
                  if ($Self->_CheckFramework(Framework => $FW->{Content})) {
                      $FWCheckOk = 1;
--- 713,718 ----
          # check framework
          my $FWCheckOk = 0;
!         if ($Structure{Framework} && ref($Structure{Framework}) eq 'ARRAY') {
!             foreach my $FW (@{$Structure{Framework}}) {
                  if ($Self->_CheckFramework(Framework => $FW->{Content})) {
                      $FWCheckOk = 1;
***************
*** 718,723 ****
          }
          # check required packages
!         if ($Structur{PackageRequired} && ref($Structur{PackageRequired}) eq 'ARRAY') {
!             if (!$Self->_CheckRequired(%Param, PackageRequired => $Structur{PackageRequired}) && !$Param{Force}) {
                  return;
              }
--- 728,733 ----
          }
          # check required packages
!         if ($Structure{PackageRequired} && ref($Structure{PackageRequired}) eq 'ARRAY') {
!             if (!$Self->_CheckRequired(%Param, PackageRequired => $Structure{PackageRequired}) && !$Param{Force}) {
                  return;
              }
***************
*** 725,730 ****
          # check if one of this files is already intalled by an other package
          foreach my $Package ($Self->RepositoryList()) {
!             if ($Structur{Name}->{Content} ne $Package->{Name}->{Content}) {
!                 foreach my $FileNew (@{$Structur{Filelist}}) {
                      foreach my $FileOld (@{$Package->{Filelist}}) {
                          if ($FileNew eq $FileOld) {
--- 735,740 ----
          # check if one of this files is already intalled by an other package
          foreach my $Package ($Self->RepositoryList()) {
!             if ($Structure{Name}->{Content} ne $Package->{Name}->{Content}) {
!                 foreach my $FileNew (@{$Structure{Filelist}}) {
                      foreach my $FileOld (@{$Package->{Filelist}}) {
                          if ($FileNew eq $FileOld) {
***************
*** 744,755 ****
          my $SQL = "UPDATE package_repository SET install_status = 'installed'".
              " WHERE ".
!             " name = '".$Self->{DBObject}->Quote($Structur{Name}->{Content})."'".
              " AND ".
!             " version = '".$Self->{DBObject}->Quote($Structur{Version}->{Content})."'";
          $Self->{DBObject}->Do(SQL => $SQL);
  
          # uninstall old package files
!         if ($InstalledStructur{Filelist} && ref($InstalledStructur{Filelist}) eq 'ARRAY') {
!             foreach my $File (@{$InstalledStructur{Filelist}}) {
                  # remove file
                  $Self->_FileRemove(%{$File});
--- 754,765 ----
          my $SQL = "UPDATE package_repository SET install_status = 'installed'".
              " WHERE ".
!             " name = '".$Self->{DBObject}->Quote($Structure{Name}->{Content})."'".
              " AND ".
!             " version = '".$Self->{DBObject}->Quote($Structure{Version}->{Content})."'";
          $Self->{DBObject}->Do(SQL => $SQL);
  
          # uninstall old package files
!         if ($InstalledStructure{Filelist} && ref($InstalledStructure{Filelist}) eq 'ARRAY') {
!             foreach my $File (@{$InstalledStructure{Filelist}}) {
                  # remove file
                  $Self->_FileRemove(%{$File});
***************
*** 757,762 ****
          }
          # install files
!         if ($Structur{Filelist} && ref($Structur{Filelist}) eq 'ARRAY') {
!             foreach my $File (@{$Structur{Filelist}}) {
                  # install file
                  $Self->_FileInstall(%{$File});
--- 767,772 ----
          }
          # install files
!         if ($Structure{Filelist} && ref($Structure{Filelist}) eq 'ARRAY') {
!             foreach my $File (@{$Structure{Filelist}}) {
                  # install file
                  $Self->_FileInstall(%{$File});
***************
*** 767,774 ****
          $Self->{SysConfigObject}->WriteDefault();
          # install code
!         if ($Structur{CodeUpgrade} && $Structur{CodeUpgrade}->{Content}) {
!             if ($Structur{CodeUpgrade}->{Content}) {
!                 print STDERR "Code: $Structur{CodeUpgrade}->{Content}\n";
!                 if (!eval $Structur{CodeUpgrade}->{Content}) {
                      print STDERR "CodeError: $@\n";
                  }
--- 777,784 ----
          $Self->{SysConfigObject}->WriteDefault();
          # install code
!         if ($Structure{CodeUpgrade} && $Structure{CodeUpgrade}->{Content}) {
!             if ($Structure{CodeUpgrade}->{Content}) {
!                 print STDERR "Code: $Structure{CodeUpgrade}->{Content}\n";
!                 if (!eval $Structure{CodeUpgrade}->{Content}) {
                      print STDERR "CodeError: $@\n";
                  }
***************
*** 776,783 ****
          }
          # upgrade database
!         if ($Structur{DatabaseUpgrade} && ref($Structur{DatabaseUpgrade}) eq 'ARRAY') {
              my @Part = ();
              my $Use = 0;
!             foreach my $S (@{$Structur{DatabaseUpgrade}}) {
                  if ($S->{TagLevel} == 3 && $S->{Version}) {
                      if (!$Self->_CheckVersion(Version1 => $S->{Version}, Version2 => $InstalledVersion, Type => 'Min')) {
--- 786,793 ----
          }
          # upgrade database
!         if ($Structure{DatabaseUpgrade} && ref($Structure{DatabaseUpgrade}) eq 'ARRAY') {
              my @Part = ();
              my $Use = 0;
!             foreach my $S (@{$Structure{DatabaseUpgrade}}) {
                  if ($S->{TagLevel} == 3 && $S->{Version}) {
                      if (!$Self->_CheckVersion(Version1 => $S->{Version}, Version2 => $InstalledVersion, Type => 'Min')) {
***************
*** 832,840 ****
      }
      # parse source file
!     my %Structur = $Self->PackageParse(%Param);
      # files
      my $FileCheckOk = 1;
!     if ($Structur{Filelist} && ref($Structur{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structur{Filelist}}) {
              # remove file
              $Self->_FileRemove(%{$File});
--- 842,850 ----
      }
      # parse source file
!     my %Structure = $Self->PackageParse(%Param);
      # files
      my $FileCheckOk = 1;
!     if ($Structure{Filelist} && ref($Structure{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structure{Filelist}}) {
              # remove file
              $Self->_FileRemove(%{$File});
***************
*** 842,846 ****
      }
      # remove old packages
!     $Self->RepositoryRemove(Name => $Structur{Name}->{Content});
  
      # install config
--- 852,856 ----
      }
      # remove old packages
!     $Self->RepositoryRemove(Name => $Structure{Name}->{Content});
  
      # install config
***************
*** 851,858 ****
      }
      # uninstall code
!     if ($Structur{CodeUninstall} && $Structur{CodeUninstall}->{Content}) {
!         if ($Structur{CodeUninstall}->{Content}) {
!             print STDERR "Code: $Structur{CodeUninstall}->{Content}\n";
!             if (!eval $Structur{CodeUninstall}->{Content}) {
                  print STDERR "CodeError: $@\n";
              }
--- 861,868 ----
      }
      # uninstall code
!     if ($Structure{CodeUninstall} && $Structure{CodeUninstall}->{Content}) {
!         if ($Structure{CodeUninstall}->{Content}) {
!             print STDERR "Code: $Structure{CodeUninstall}->{Content}\n";
!             if (!eval $Structure{CodeUninstall}->{Content}) {
                  print STDERR "CodeError: $@\n";
              }
***************
*** 860,865 ****
      }
      # uninstall database
!     if ($Structur{DatabaseUninstall} && ref($Structur{DatabaseUninstall}) eq 'ARRAY') {
!         my @SQL = $Self->{DBObject}->SQLProcessor(Database => $Structur{DatabaseUninstall}, );
          foreach my $SQL (@SQL) {
              print STDERR "Notice: $SQL\n";
--- 870,875 ----
      }
      # uninstall database
!     if ($Structure{DatabaseUninstall} && ref($Structure{DatabaseUninstall}) eq 'ARRAY') {
!         my @SQL = $Self->{DBObject}->SQLProcessor(Database => $Structure{DatabaseUninstall}, );
          foreach my $SQL (@SQL) {
              print STDERR "Notice: $SQL\n";
***************
*** 1101,1109 ****
      }
      my $Package = $Self->RepositoryGet(%Param);
!     my %Structur = $Self->PackageParse(String => $Package);
      $Self->{DeployCheckInfo} = undef;
!     if ($Structur{Filelist} && ref($Structur{Filelist}) eq 'ARRAY') {
          my $Hit = 0;
!         foreach my $File (@{$Structur{Filelist}}) {
              my $LocalFile = "$Self->{Home}/$File->{Location}";
              if (! -e $LocalFile) {
--- 1111,1119 ----
      }
      my $Package = $Self->RepositoryGet(%Param);
!     my %Structure = $Self->PackageParse(String => $Package);
      $Self->{DeployCheckInfo} = undef;
!     if ($Structure{Filelist} && ref($Structure{Filelist}) eq 'ARRAY') {
          my $Hit = 0;
!         foreach my $File (@{$Structure{Filelist}}) {
              my $LocalFile = "$Self->{Home}/$File->{Location}";
              if (! -e $LocalFile) {
***************
*** 1349,1353 ****
  parse a package
  
!     my %Structur = $PackageObject->PackageParse(String => $FileString);
  
  =cut
--- 1359,1363 ----
  parse a package
  
!     my %Structure = $PackageObject->PackageParse(String => $FileString);
  
  =cut
***************
*** 1452,1459 ****
      }
      # parse source file
!     my %Structur = $Self->PackageParse(%Param);
      # install files
!     if ($Structur{Filelist} && ref($Structur{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structur{Filelist}}) {
              # install file
              $Self->_FileInstall(%{$File}, Home => $Param{Home});
--- 1462,1469 ----
      }
      # parse source file
!     my %Structure = $Self->PackageParse(%Param);
      # install files
!     if ($Structure{Filelist} && ref($Structure{Filelist}) eq 'ARRAY') {
!         foreach my $File (@{$Structure{Filelist}}) {
              # install file
              $Self->_FileInstall(%{$File}, Home => $Param{Home});



More information about the cvs-log mailing list