[Libreoffice-commits] .: 6 commits - solenv/bin

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Sep 26 14:10:56 PDT 2012


 solenv/bin/modules/installer.pm             |   41 +++
 solenv/bin/modules/installer/epmfile.pm     |  200 +++++++++++++++++-
 solenv/bin/modules/installer/exiter.pm      |   72 ------
 solenv/bin/modules/installer/scriptitems.pm |   28 ++
 solenv/bin/modules/installer/worker.pm      |  307 ----------------------------
 5 files changed, 266 insertions(+), 382 deletions(-)

New commits:
commit 43ac04763d60ae651dc8f1a592cc2f0d41387a7d
Author: Tim Retout <tim at retout.co.uk>
Date:   Wed Sep 26 22:06:11 2012 +0100

    installer: Add extra failure warning.
    
    Change-Id: I387ee22ce59606b9680e1df70b8076ec474427a6

diff --git a/solenv/bin/modules/installer.pm b/solenv/bin/modules/installer.pm
index 2c2ef22..2c1f855 100644
--- a/solenv/bin/modules/installer.pm
+++ b/solenv/bin/modules/installer.pm
@@ -98,6 +98,7 @@ sub main {
     if ($@) {
         my $message = "ERROR: $@";
 
+        warn "ERROR: Failure in installer.pm\n";
         warn "$message\n";
         $exit_code = -1;
 
commit 247d1899e3fb69af30094d388c97ce074a2da26c
Author: Tim Retout <tim at retout.co.uk>
Date:   Wed Sep 26 21:58:45 2012 +0100

    installer::worker: Remove unused tar_package
    
    Change-Id: I58e9efdda8fac5b65e259b63a5150c44fa00feb6

diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index 017f2ab..cb205b4 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -1387,43 +1387,6 @@ sub put_license_into_setup
 }
 
 #########################################################
-# Create a tar file from the binary package
-#########################################################
-
-sub tar_package
-{
-    my ( $installdir, $packagename, $tarfilename, $getuidlibrary) = @_;
-
-    my $ldpreloadstring = "";
-    if ( $getuidlibrary ne "" ) { $ldpreloadstring = "LD_PRELOAD=" . $getuidlibrary; }
-
-    my $systemcall = "cd $installdir; $ldpreloadstring tar -cf - $packagename > $tarfilename";
-
-    my $returnvalue = system($systemcall);
-
-    my $infoline = "Systemcall: $systemcall\n";
-    push( @installer::globals::logfileinfo, $infoline);
-
-    if ($returnvalue)
-    {
-        $infoline = "ERROR: Could not execute \"$systemcall\"!\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-    else
-    {
-        $infoline = "Success: Executed \"$systemcall\" successfully!\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-
-    chmod 0775, $tarfilename;
-
-    my $fulltarfile = $installdir . $installer::globals::separator . $tarfilename;
-    my $filesize = ( -s $fulltarfile );
-
-    return $filesize;
-}
-
-#########################################################
 # Collecting all pkgmap files from an installation set
 #########################################################
 
commit acaaf6c72162566e896421e03ee4c966936c7917
Author: Tim Retout <tim at retout.co.uk>
Date:   Wed Sep 26 21:56:28 2012 +0100

    installer: Move key_in_a_is_also_key_in_b into scriptfiles.pm
    
    Change-Id: I466b285ddc9f3ac53978acefe76c27fa212d812c

diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm
index 42ee98d..9ce5bd6 100644
--- a/solenv/bin/modules/installer/scriptitems.pm
+++ b/solenv/bin/modules/installer/scriptitems.pm
@@ -2146,7 +2146,7 @@ sub get_string_of_modulegids_for_itemgid
     # Check: All modules or no module must have flag LANGUAGEMODULE
     if ( $haslanguagemodule )
     {
-        my $isreallylanguagemodule = installer::worker::key_in_a_is_also_key_in_b(\%foundmodules, \%installer::globals::alllangmodules);
+        my $isreallylanguagemodule = _key_in_a_is_also_key_in_b(\%foundmodules, \%installer::globals::alllangmodules);
         if ( ! $isreallylanguagemodule ) { installer::exiter::exit_program("ERROR: \"$itemgid\" is assigned to modules with flag \"LANGUAGEMODULE\" and also to modules without this flag! Modules: $allmodules", "get_string_of_modulegids_for_itemgid");  }
     }
 
@@ -2498,4 +2498,30 @@ sub select_required_language_strings
     }
 }
 
+################################################
+# Controlling that all keys in hash A are
+# also key in hash B.
+################################################
+
+sub _key_in_a_is_also_key_in_b
+{
+    my ( $hashref_a, $hashref_b) = @_;
+
+    my $returnvalue = 1;
+
+    my $key;
+    foreach $key ( keys %{$hashref_a} )
+    {
+        if ( ! exists($hashref_b->{$key}) )
+        {
+            print "*****\n";
+            foreach $keyb ( keys %{$hashref_b} ) { print "$keyb : $hashref_b->{$keyb}\n"; }
+            print "*****\n";
+            $returnvalue = 0;
+        }
+    }
+
+    return $returnvalue;
+}
+
 1;
diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index e895f54..017f2ab 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -1252,32 +1252,6 @@ sub resolving_hidden_flag
     push( @installer::globals::logfileinfo, $infoline);
 }
 
-################################################
-# Controlling that all keys in hash A are
-# also key in hash B.
-################################################
-
-sub key_in_a_is_also_key_in_b
-{
-    my ( $hashref_a, $hashref_b) = @_;
-
-    my $returnvalue = 1;
-
-    my $key;
-    foreach $key ( keys %{$hashref_a} )
-    {
-        if ( ! exists($hashref_b->{$key}) )
-        {
-            print "*****\n";
-            foreach $keyb ( keys %{$hashref_b} ) { print "$keyb : $hashref_b->{$keyb}\n"; }
-            print "*****\n";
-            $returnvalue = 0;
-        }
-    }
-
-    return $returnvalue;
-}
-
 ######################################################
 # Getting the first entry from a list of languages
 ######################################################
commit c003a803868a0faaae0f5b6949ffcaab54f7ef32
Author: Tim Retout <tim at retout.co.uk>
Date:   Wed Sep 26 21:38:36 2012 +0100

    installer: Move various functions from worker.pm to epmfile.pm
    
    Change-Id: I3ff5ce804eb348f91f1cf46b38475c4224d68978

diff --git a/solenv/bin/modules/installer/epmfile.pm b/solenv/bin/modules/installer/epmfile.pm
index 8045536..58bca0b 100644
--- a/solenv/bin/modules/installer/epmfile.pm
+++ b/solenv/bin/modules/installer/epmfile.pm
@@ -36,9 +36,9 @@ use installer::logger;
 use installer::packagelist;
 use installer::pathanalyzer;
 use installer::remover;
+use installer::scpzipfiles;
 use installer::scriptitems;
 use installer::systemactions;
-use installer::worker;
 use POSIX;
 
 ############################################################################
@@ -413,7 +413,7 @@ sub create_epm_header
 
         if (( $installer::globals::issolarispkgbuild ) && ( ! $variableshashref->{'NO_LICENSE_INTO_COPYRIGHT'} ))
         {
-            if ( ! $installer::globals::englishlicenseset ) { installer::worker::set_english_license() }
+            if ( ! $installer::globals::englishlicenseset ) { _set_english_license() }
 
             # The location for the new file
             my $languagestring = "";
@@ -2797,7 +2797,7 @@ sub put_systemintegration_into_installset
         if ( ! $installer::globals::issolarispkgbuild ) { ($newcontent, $subdir) = control_subdirectories($newcontent); }
 
         # Adding license content into Solaris packages
-        if (( $installer::globals::issolarispkgbuild ) && ( $installer::globals::englishlicenseset ) && ( ! $variableshashref->{'NO_LICENSE_INTO_COPYRIGHT'} )) { installer::worker::add_license_into_systemintegrationpackages($destdir, $newcontent); }
+        if (( $installer::globals::issolarispkgbuild ) && ( $installer::globals::englishlicenseset ) && ( ! $variableshashref->{'NO_LICENSE_INTO_COPYRIGHT'} )) { _add_license_into_systemintegrationpackages($destdir, $newcontent); }
     }
 }
 
@@ -3002,4 +3002,198 @@ sub finalize_linux_patch
     chmod 0755, $newscriptfilename;
 }
 
+################################################
+# Defining the English license text to add
+# it into Solaris packages.
+################################################
+
+sub _set_english_license
+{
+    my $additional_license_name = $installer::globals::englishsolarislicensename;   # always the English file
+    my $licensefileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$additional_license_name, "" , 0);
+    if ( $$licensefileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find license file $additional_license_name!", "set_english_license"); }
+    $installer::globals::englishlicenseset = 1;
+    $installer::globals::englishlicense = installer::files::read_file($$licensefileref);
+    installer::scpzipfiles::replace_all_ziplistvariables_in_file($installer::globals::englishlicense, $variableshashref);
+}
+
+################################################
+# Adding the content of the English license
+# file into the system integration packages.
+################################################
+
+sub _add_license_into_systemintegrationpackages
+{
+    my ($destdir, $packages) = @_;
+
+    for ( my $i = 0; $i <= $#{$packages}; $i++ )
+    {
+        my $copyrightfilename = ${$packages}[$i] . $installer::globals::separator . "install" . $installer::globals::separator . "copyright";
+        if ( ! -f $copyrightfilename ) { installer::exiter::exit_program("ERROR: Could not find license file in system integration package: $copyrightfilename!", "add_license_into_systemintegrationpackages"); }
+        my $copyrightfile = installer::files::read_file($copyrightfilename);
+
+        # Saving time stamp of old copyrightfile
+        my $savcopyrightfilename = $copyrightfilename . ".sav";
+        installer::systemactions::copy_one_file($copyrightfilename, $savcopyrightfilename);
+        _set_time_stamp_for_file($copyrightfilename, $savcopyrightfilename); # now $savcopyrightfile has the time stamp of $copyrightfile
+
+        # Adding license content to copyright file
+        push(@{$copyrightfile}, "\n");
+        for ( my $i = 0; $i <= $#{$installer::globals::englishlicense}; $i++ ) { push(@{$copyrightfile}, ${$installer::globals::englishlicense}[$i]); }
+        installer::files::save_file($copyrightfilename, $copyrightfile);
+
+        # Setting the old time stamp saved with $savcopyrightfilename
+        _set_time_stamp_for_file($savcopyrightfilename, $copyrightfilename); # now $copyrightfile has the time stamp of $savcopyrightfile
+        unlink($savcopyrightfilename);
+
+        # Changing content of copyright file in pkgmap
+        my $pkgmapfilename = ${$packages}[$i] . $installer::globals::separator . "pkgmap";
+        if ( ! -f $pkgmapfilename ) { installer::exiter::exit_program("ERROR: Could not find pkgmap in system integration package: $pkgmapfilename!", "add_license_into_systemintegrationpackages"); }
+        my $pkgmap = installer::files::read_file($pkgmapfilename);
+        _change_onefile_in_pkgmap($pkgmap, $copyrightfilename, "copyright");
+        installer::files::save_file($pkgmapfilename, $pkgmap);
+    }
+}
+
+##############################################
+# Setting time stamp of copied files to avoid
+# errors from pkgchk.
+##############################################
+
+sub _set_time_stamp_for_file
+{
+    my ($sourcefile, $destfile) = @_;
+
+    my $systemcall = "touch -r $sourcefile $destfile";
+
+    my $returnvalue = system($systemcall);
+
+    my $infoline = "Systemcall: $systemcall\n";
+    push( @installer::globals::logfileinfo, $infoline);
+
+    if ($returnvalue)
+    {
+        $infoline = "ERROR: \"$systemcall\" failed!\n";
+        push( @installer::globals::logfileinfo, $infoline);
+    }
+    else
+    {
+        $infoline = "Success: \"$systemcall\" !\n";
+        push( @installer::globals::logfileinfo, $infoline);
+    }
+}
+
+##############################################
+# Setting checksum and wordcount for changed
+# pkginfo file into pkgmap.
+##############################################
+
+sub _change_onefile_in_pkgmap
+{
+    my ($pkgmapfile, $fullfilename, $shortfilename) = @_;
+
+    # 1 i pkginfo 442 34577 1166716297
+    # ->
+    # 1 i pkginfo 443 34737 1166716297
+    #
+    # wc -c pkginfo | cut -f6 -d' '  -> 442  (variable)
+    # sum pkginfo | cut -f1 -d' '  -> 34577  (variable)
+    # grep 'pkginfo' pkgmap | cut -f6 -d' '  -> 1166716297  (fix)
+
+    my $checksum = _call_sum($fullfilename);
+    if ( $checksum =~ /^\s*(\d+)\s+.*$/ ) { $checksum = $1; }
+
+    my $wordcount = _call_wc($fullfilename);
+    if ( $wordcount =~ /^\s*(\d+)\s+.*$/ ) { $wordcount = $1; }
+
+    for ( my $i = 0; $i <= $#{$pkgmapfile}; $i++ )
+    {
+        if ( ${$pkgmapfile}[$i] =~ /(^.*\b\Q$shortfilename\E\b\s+)(\d+)(\s+)(\d+)(\s+)(\d+)(\s*$)/ )
+        {
+            my $newline = $1 . $wordcount . $3 . $checksum . $5 . $6 . $7;
+            ${$pkgmapfile}[$i] = $newline;
+            last;
+        }
+    }
+}
+
+#########################################################
+# Calling sum
+#########################################################
+
+sub _call_sum
+{
+    my ($filename) = @_;
+
+    $sumfile = "/usr/bin/sum";
+
+    if ( ! -f $sumfile ) { installer::exiter::exit_program("ERROR: No file /usr/bin/sum", "call_sum"); }
+
+    my $systemcall = "$sumfile $filename |";
+
+    my $sumoutput = "";
+
+    open (SUM, "$systemcall");
+    $sumoutput = <SUM>;
+    close (SUM);
+
+    my $returnvalue = $?;   # $? contains the return value of the systemcall
+
+    my $infoline = "Systemcall: $systemcall\n";
+    push( @installer::globals::logfileinfo, $infoline);
+
+    if ($returnvalue)
+    {
+        $infoline = "ERROR: Could not execute \"$systemcall\"!\n";
+        push( @installer::globals::logfileinfo, $infoline);
+    }
+    else
+    {
+        $infoline = "Success: Executed \"$systemcall\" successfully!\n";
+        push( @installer::globals::logfileinfo, $infoline);
+    }
+
+    return $sumoutput;
+}
+
+#########################################################
+# Calling wc
+# wc -c pkginfo | cut -f6 -d' '
+#########################################################
+
+sub _call_wc
+{
+    my ($filename) = @_;
+
+    $wcfile = "/usr/bin/wc";
+
+    if ( ! -f $wcfile ) { installer::exiter::exit_program("ERROR: No file /usr/bin/wc", "call_wc"); }
+
+    my $systemcall = "$wcfile -c $filename |";
+
+    my $wcoutput = "";
+
+    open (WC, "$systemcall");
+    $wcoutput = <WC>;
+    close (WC);
+
+    my $returnvalue = $?;   # $? contains the return value of the systemcall
+
+    my $infoline = "Systemcall: $systemcall\n";
+    push( @installer::globals::logfileinfo, $infoline);
+
+    if ($returnvalue)
+    {
+        $infoline = "ERROR: Could not execute \"$systemcall\"!\n";
+        push( @installer::globals::logfileinfo, $infoline);
+    }
+    else
+    {
+        $infoline = "Success: Executed \"$systemcall\" successfully!\n";
+        push( @installer::globals::logfileinfo, $infoline);
+    }
+
+    return $wcoutput;
+}
+
 1;
diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index 4912b4a..e895f54 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -1094,119 +1094,6 @@ sub find_file_by_id
     return $onefile;
 }
 
-#########################################################
-# Calling sum
-#########################################################
-
-sub call_sum
-{
-    my ($filename) = @_;
-
-    $sumfile = "/usr/bin/sum";
-
-    if ( ! -f $sumfile ) { installer::exiter::exit_program("ERROR: No file /usr/bin/sum", "call_sum"); }
-
-    my $systemcall = "$sumfile $filename |";
-
-    my $sumoutput = "";
-
-    open (SUM, "$systemcall");
-    $sumoutput = <SUM>;
-    close (SUM);
-
-    my $returnvalue = $?;   # $? contains the return value of the systemcall
-
-    my $infoline = "Systemcall: $systemcall\n";
-    push( @installer::globals::logfileinfo, $infoline);
-
-    if ($returnvalue)
-    {
-        $infoline = "ERROR: Could not execute \"$systemcall\"!\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-    else
-    {
-        $infoline = "Success: Executed \"$systemcall\" successfully!\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-
-    return $sumoutput;
-}
-
-#########################################################
-# Calling wc
-# wc -c pkginfo | cut -f6 -d' '
-#########################################################
-
-sub call_wc
-{
-    my ($filename) = @_;
-
-    $wcfile = "/usr/bin/wc";
-
-    if ( ! -f $wcfile ) { installer::exiter::exit_program("ERROR: No file /usr/bin/wc", "call_wc"); }
-
-    my $systemcall = "$wcfile -c $filename |";
-
-    my $wcoutput = "";
-
-    open (WC, "$systemcall");
-    $wcoutput = <WC>;
-    close (WC);
-
-    my $returnvalue = $?;   # $? contains the return value of the systemcall
-
-    my $infoline = "Systemcall: $systemcall\n";
-    push( @installer::globals::logfileinfo, $infoline);
-
-    if ($returnvalue)
-    {
-        $infoline = "ERROR: Could not execute \"$systemcall\"!\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-    else
-    {
-        $infoline = "Success: Executed \"$systemcall\" successfully!\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-
-    return $wcoutput;
-}
-
-##############################################
-# Setting time stamp of copied files to avoid
-# errors from pkgchk.
-##############################################
-
-sub set_time_stamp
-{
-    my ($olddir, $newdir, $copyfiles) = @_;
-
-    for ( my $i = 0; $i <= $#{$copyfiles}; $i++ )
-    {
-        my $sourcefile = $olddir . $installer::globals::separator . ${$copyfiles}[$i];
-        my $destfile = $newdir . $installer::globals::separator . ${$copyfiles}[$i];
-
-        my $systemcall = "touch -r $sourcefile $destfile";
-
-        my $returnvalue = system($systemcall);
-
-        my $infoline = "Systemcall: $systemcall\n";
-        push( @installer::globals::logfileinfo, $infoline);
-
-        if ($returnvalue)
-        {
-            $infoline = "ERROR: \"$systemcall\" failed!\n";
-            push( @installer::globals::logfileinfo, $infoline);
-        }
-        else
-        {
-            $infoline = "Success: \"$systemcall\" !\n";
-            push( @installer::globals::logfileinfo, $infoline);
-        }
-    }
-}
-
 #################################################
 # Generating paths for cygwin (second version)
 # This function generates smaller files for
@@ -1562,121 +1449,6 @@ sub tar_package
     return $filesize;
 }
 
-################################################
-# Defining the English license text to add
-# it into Solaris packages.
-################################################
-
-sub set_english_license
-{
-    my $additional_license_name = $installer::globals::englishsolarislicensename;   # always the English file
-    my $licensefileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$additional_license_name, "" , 0);
-    if ( $$licensefileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find license file $additional_license_name!", "set_english_license"); }
-    $installer::globals::englishlicenseset = 1;
-    $installer::globals::englishlicense = installer::files::read_file($$licensefileref);
-    installer::scpzipfiles::replace_all_ziplistvariables_in_file($installer::globals::englishlicense, $variableshashref);
-}
-
-##############################################
-# Setting time stamp of copied files to avoid
-# errors from pkgchk.
-##############################################
-
-sub set_time_stamp_for_file
-{
-    my ($sourcefile, $destfile) = @_;
-
-    my $systemcall = "touch -r $sourcefile $destfile";
-
-    my $returnvalue = system($systemcall);
-
-    my $infoline = "Systemcall: $systemcall\n";
-    push( @installer::globals::logfileinfo, $infoline);
-
-    if ($returnvalue)
-    {
-        $infoline = "ERROR: \"$systemcall\" failed!\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-    else
-    {
-        $infoline = "Success: \"$systemcall\" !\n";
-        push( @installer::globals::logfileinfo, $infoline);
-    }
-}
-
-##############################################
-# Setting checksum and wordcount for changed
-# pkginfo file into pkgmap.
-##############################################
-
-sub change_onefile_in_pkgmap
-{
-    my ($pkgmapfile, $fullfilename, $shortfilename) = @_;
-
-    # 1 i pkginfo 442 34577 1166716297
-    # ->
-    # 1 i pkginfo 443 34737 1166716297
-    #
-    # wc -c pkginfo | cut -f6 -d' '  -> 442  (variable)
-    # sum pkginfo | cut -f1 -d' '  -> 34577  (variable)
-    # grep 'pkginfo' pkgmap | cut -f6 -d' '  -> 1166716297  (fix)
-
-    my $checksum = call_sum($fullfilename);
-    if ( $checksum =~ /^\s*(\d+)\s+.*$/ ) { $checksum = $1; }
-
-    my $wordcount = call_wc($fullfilename);
-    if ( $wordcount =~ /^\s*(\d+)\s+.*$/ ) { $wordcount = $1; }
-
-    for ( my $i = 0; $i <= $#{$pkgmapfile}; $i++ )
-    {
-        if ( ${$pkgmapfile}[$i] =~ /(^.*\b\Q$shortfilename\E\b\s+)(\d+)(\s+)(\d+)(\s+)(\d+)(\s*$)/ )
-        {
-            my $newline = $1 . $wordcount . $3 . $checksum . $5 . $6 . $7;
-            ${$pkgmapfile}[$i] = $newline;
-            last;
-        }
-    }
-}
-
-################################################
-# Adding the content of the English license
-# file into the system integration packages.
-################################################
-
-sub add_license_into_systemintegrationpackages
-{
-    my ($destdir, $packages) = @_;
-
-    for ( my $i = 0; $i <= $#{$packages}; $i++ )
-    {
-        my $copyrightfilename = ${$packages}[$i] . $installer::globals::separator . "install" . $installer::globals::separator . "copyright";
-        if ( ! -f $copyrightfilename ) { installer::exiter::exit_program("ERROR: Could not find license file in system integration package: $copyrightfilename!", "add_license_into_systemintegrationpackages"); }
-        my $copyrightfile = installer::files::read_file($copyrightfilename);
-
-        # Saving time stamp of old copyrightfile
-        my $savcopyrightfilename = $copyrightfilename . ".sav";
-        installer::systemactions::copy_one_file($copyrightfilename, $savcopyrightfilename);
-        set_time_stamp_for_file($copyrightfilename, $savcopyrightfilename); # now $savcopyrightfile has the time stamp of $copyrightfile
-
-        # Adding license content to copyright file
-        push(@{$copyrightfile}, "\n");
-        for ( my $i = 0; $i <= $#{$installer::globals::englishlicense}; $i++ ) { push(@{$copyrightfile}, ${$installer::globals::englishlicense}[$i]); }
-        installer::files::save_file($copyrightfilename, $copyrightfile);
-
-        # Setting the old time stamp saved with $savcopyrightfilename
-        set_time_stamp_for_file($savcopyrightfilename, $copyrightfilename); # now $copyrightfile has the time stamp of $savcopyrightfile
-        unlink($savcopyrightfilename);
-
-        # Changing content of copyright file in pkgmap
-        my $pkgmapfilename = ${$packages}[$i] . $installer::globals::separator . "pkgmap";
-        if ( ! -f $pkgmapfilename ) { installer::exiter::exit_program("ERROR: Could not find pkgmap in system integration package: $pkgmapfilename!", "add_license_into_systemintegrationpackages"); }
-        my $pkgmap = installer::files::read_file($pkgmapfilename);
-        change_onefile_in_pkgmap($pkgmap, $copyrightfilename, "copyright");
-        installer::files::save_file($pkgmapfilename, $pkgmap);
-    }
-}
-
 #########################################################
 # Collecting all pkgmap files from an installation set
 #########################################################
commit cda8ac41f3aa34accac6a58df2c885595e8ce7ec
Author: Tim Retout <tim at retout.co.uk>
Date:   Wed Sep 26 21:10:13 2012 +0100

    installer: Replace installer::worker::shuffle_array
    
    Change-Id: I2da961affa4bcb8349d8a038bc77986f5209a55d

diff --git a/solenv/bin/modules/installer.pm b/solenv/bin/modules/installer.pm
index 49e2e3c..2c2ef22 100644
--- a/solenv/bin/modules/installer.pm
+++ b/solenv/bin/modules/installer.pm
@@ -32,6 +32,7 @@ use base 'Exporter';
 use Cwd;
 use Data::Dumper;
 use File::Copy;
+use List::Util qw(shuffle);
 use installer::archivefiles;
 use installer::control;
 use installer::converter;
@@ -1057,7 +1058,7 @@ sub run {
             }
 
             # shuffle array to reduce parallel packaging process in pool
-            installer::worker::shuffle_array($packages)
+            @{$packages} = shuffle @{$packages}
                 unless $installer::globals::simple;
 
             # iterating over all packages
diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index e954971..4912b4a 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -1562,22 +1562,6 @@ sub tar_package
     return $filesize;
 }
 
-#########################################################
-# Shuffle an array (Fisher Yates shuffle)
-#########################################################
-
-sub shuffle_array
-{
-    my ( $arrayref ) = @_;
-
-    my $i = @$arrayref;
-    while (--$i)
-    {
-        my $j = int rand ($i+1);
-        @$arrayref[$i,$j] = @$arrayref[$j,$i];
-    }
-}
-
 ################################################
 # Defining the English license text to add
 # it into Solaris packages.
commit bc9ad85ca4a70e5b14abe79ea59e848ee3b21e23
Author: Tim Retout <tim at retout.co.uk>
Date:   Wed Sep 26 18:21:27 2012 +0100

    installer: Move exiter.pm error handling into installer.pm
    
    Change-Id: I50e3ee8ff88f313b82ea617e354334d85fb453e0

diff --git a/solenv/bin/modules/installer.pm b/solenv/bin/modules/installer.pm
index 025d471..49e2e3c 100644
--- a/solenv/bin/modules/installer.pm
+++ b/solenv/bin/modules/installer.pm
@@ -95,8 +95,12 @@ sub main {
         run();
     };
     if ($@) {
-        warn "$@\n";
+        my $message = "ERROR: $@";
+
+        warn "$message\n";
         $exit_code = -1;
+
+        cleanup_on_error($message);
     }
 
     installer::logger::stoptime();
@@ -1820,4 +1824,35 @@ sub run {
     }   # end of iteration for one language group
 }
 
+sub cleanup_on_error {
+    my $message = shift;
+
+    # If an installation set is currently created, the directory name
+    # is saved in $installer::globals::saveinstalldir.  If this
+    # directory name contains "_inprogress", it has to be renamed to
+    # "_witherror".
+    if ( $installer::globals::saveinstalldir =~ /_inprogress/ ) {
+        installer::systemactions::rename_string_in_directory($installer::globals::saveinstalldir, "_inprogress", "_witherror");
+    }
+
+    # Removing directories created in the output tree.
+    installer::worker::clean_output_tree();
+
+    $installer::globals::logfilename = $installer::globals::exitlog . $installer::globals::logfilename;
+
+    my @log = (@installer::globals::logfileinfo, @installer::globals::globallogfileinfo);
+
+    push(@log, "\n" . '*' x 65 . "\n");
+    push(@log, $message);
+    push(@log, '*' x 65 . "\n");
+
+    installer::files::save_file($installer::globals::logfilename, \@log);
+
+    print("ERROR, saved logfile $installer::globals::logfilename is:\n");
+    open(my $log, "<", $installer::globals::logfilename);
+    print ": $_" while (<$log>);
+    print "\n";
+    close($log);
+}
+
 1;
diff --git a/solenv/bin/modules/installer/exiter.pm b/solenv/bin/modules/installer/exiter.pm
index 55a1dbb..516565f 100644
--- a/solenv/bin/modules/installer/exiter.pm
+++ b/solenv/bin/modules/installer/exiter.pm
@@ -30,79 +30,13 @@ package installer::exiter;
 use strict;
 use warnings;
 
-use installer::files;
-use installer::globals;
-use installer::logger;
-use installer::systemactions;
-use installer::worker;
-
-############################################
-# Exiting the program with an error
-# This function is used instead of "die"
-############################################
+use Carp;
 
 sub exit_program
 {
-    my ($message, $function) = @_;
-
-    # If an installation set is currently created, the directory name is saved in $installer::globals::saveinstalldir
-    # If this directory name matches with "_inprogress", it has to be renamed into "_witherror"
-
-    if ( $installer::globals::saveinstalldir =~ /_inprogress/ ) { installer::systemactions::rename_string_in_directory($installer::globals::saveinstalldir, "_inprogress", "_witherror");   }
-
-    installer::worker::clean_output_tree(); # removing directories created in the output tree
-
-    # If @installer::globals::logfileinfo is not empty, it can be used.
-    # Otherwise the content of @installer::globals::globallogfileinfo has to be used.
-
-    my $infoline;
-
-    $installer::globals::logfilename = $installer::globals::exitlog . $installer::globals::logfilename;
-
-    if ( ! $installer::globals::globalinfo_copied ) { installer::logger::copy_globalinfo_into_logfile(); }
-
-    if ( $#installer::globals::logfileinfo > -1 )
-    {
-        $infoline = "\n***************************************************************\n";
-        push(@installer::globals::logfileinfo, $infoline);
-
-        $infoline = "$message\n";
-        push(@installer::globals::logfileinfo, $infoline);
-
-        $infoline = "in function: $function\n";
-        push(@installer::globals::logfileinfo, $infoline);
-
-        $infoline = "***************************************************************\n";
-        push(@installer::globals::logfileinfo, $infoline);
-
-        installer::files::save_file($installer::globals::logfilename ,\@installer::globals::logfileinfo);
-    }
-    else
-    {
-        $infoline = "\n***************************************************************\n";
-        push(@installer::globals::globallogfileinfo, $infoline);
-
-        $infoline = "$message\n";
-        push(@installer::globals::globallogfileinfo, $infoline);
-
-        $infoline = "in function: $function\n";
-        push(@installer::globals::globallogfileinfo, $infoline);
-
-        $infoline = "***************************************************************\n";
-        push(@installer::globals::globallogfileinfo, $infoline);
-
-        installer::files::save_file($installer::globals::logfilename ,\@installer::globals::globallogfileinfo);
-    }
-    installer::logger::print_error("$message\nin function: $function");
-    print("ERROR, saved logfile $installer::globals::logfilename is:\n");
-    open(LOG, "<", $installer::globals::logfilename);
-    print ": $_" while (<LOG>);
-    print "\n";
-    close(LOG);
-
-    installer::logger::stoptime();
+    my $message = shift;
 
-    exit(-1);
+    croak $message;
 }
 
 1;


More information about the Libreoffice-commits mailing list