Author: hdu
Date: Fri Mar  2 14:26:34 2012
New Revision: 1296222

URL: http://svn.apache.org/viewvc?rev=1296222&view=rev
Log:
support bundling of extension blobs

Modified:
    incubator/ooo/trunk/main/configure.in
    incubator/ooo/trunk/main/scp2/source/ooo/common_brand.scp
    incubator/ooo/trunk/main/set_soenv.in
    incubator/ooo/trunk/main/solenv/bin/make_installer.pl
    incubator/ooo/trunk/main/solenv/bin/modules/installer/scriptitems.pm

Modified: incubator/ooo/trunk/main/configure.in
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/configure.in?rev=1296222&r1=1296221&r2=1296222&view=diff
==============================================================================
--- incubator/ooo/trunk/main/configure.in (original)
+++ incubator/ooo/trunk/main/configure.in Fri Mar  2 14:26:34 2012
@@ -327,6 +327,17 @@ AC_ARG_ENABLE(randr-link,
 [  --disable-randr-link    disable linking with libXrandr, instead dynamically 
                            open it at runtime
 ],,enable_randr_link=yes)
+AC_ARG_WITH(bundled-extension-blobs,
+[  --with-bundled-extension-blobs Whitespace seperated list of files in the 
tarball directory
+                          that are to be bundled as-is for installation as 
extensions
+                          at the first program start. Make sure to only bundle 
extensions
+                          which can be installed without requiring a license 
dialog
+],,)
+#AC_ARG_WITH(bundled-prereg-extensions,
+#[  --with-bundled-prereg-extensions Whitespace seperated list of files in the 
tarball directory that
+#                          are to be bundled as pre-registered extensions. 
Make sure to only bundle
+#                          extensions which can be installed without requiring 
a license dialog
+#],,)
 AC_ARG_WITH(system-dicts,
 [  --with-system-dicts    Use dictionaries from system paths- Specify
                          them via --with-{dict,hyph,thes}-path=/path
@@ -1454,37 +1465,58 @@ fi
 AC_MSG_RESULT([$ENABLE_RPATH])
 AC_SUBST(ENABLE_RPATH)
 
-dnl Test whether to include system dictionaries
 dnl ===================================================================
-AC_MSG_CHECKING([whether to use dicts from external paths])
-if test -n "$with_system_dicts" -a "$with_system_dicts" = "yes"; then
-  AC_MSG_RESULT([yes])
-  SYSTEM_DICTS=YES
-  AC_MSG_CHECKING([for spelling dictionary directory])
-  if test -n "$with_external_dict_dir"; then
-      DICT_SYSTEM_DIR=file://$with_external_dict_dir
-  else
-      DICT_SYSTEM_DIR=file:///usr/share/hunspell
-  fi
-  AC_MSG_RESULT([$DICT_SYSTEM_DIR])
-  AC_MSG_CHECKING([for hyphenation patterns directory])
-  if test -n "$with_external_hyph_dir"; then
-      HYPH_SYSTEM_DIR=file://$with_external_hyph_dir
-  else
-      HYPH_SYSTEM_DIR=file:///usr/share/hyphen
-  fi
-  AC_MSG_RESULT([$HYPH_SYSTEM_DIR])
-  AC_MSG_CHECKING([for thesaurus directory])
-  if test -n "$with_external_thes_dir"; then
-      THES_SYSTEM_DIR=file://$with_external_thes_dir
-  else
-      THES_SYSTEM_DIR=file:///usr/share/mythes
-  fi
-  AC_MSG_RESULT([$THES_SYSTEM_DIR])
+dnl Check extensions to be bundled as literal blobs
+dnl ===================================================================
+if test -n "$with_bundled_extension_blobs"; then
+       BUNDLED_EXTENSION_BLOBS="$with_bundled_extension_blobs"
 else
-  AC_MSG_RESULT([no])
-  SYSTEM_DICTS=NO
+       BUNDLED_EXTENSION_BLOBS=
+fi
+AC_SUBST(BUNDLED_EXTENSION_BLOBS)
+
+#dnl ===================================================================
+#dnl Check extensions that are to be bundled as pre-registerd
+#dnl ===================================================================
+if test -n "$with_bundled_prereg_extensions"; then
+       BUNDLED_PREREG_EXTENSIONS="$with_bundled_prereg_extensions"
+else
+       BUNDLED_PREREG_EXTENSIONS=
 fi
+AC_SUBST(BUNDLED_PREREG_EXTENSIONS)
+
+dnl ===================================================================
+dnl Configure system provided dictionary/hyphenation/thesaurus
+dnl ===================================================================
+  AC_MSG_CHECKING([whether to use dicts from external paths])
+  if test -n "$with_system_dicts" -a "$with_system_dicts" = "yes"; then
+       AC_MSG_RESULT([yes])
+       SYSTEM_DICTS=YES
+       AC_MSG_CHECKING([for spelling dictionary directory])
+       if test -n "$with_external_dict_dir"; then
+               DICT_SYSTEM_DIR=file://$with_external_dict_dir
+       else
+               DICT_SYSTEM_DIR=file:///usr/share/hunspell
+       fi
+       AC_MSG_RESULT([$DICT_SYSTEM_DIR])
+       AC_MSG_CHECKING([for hyphenation patterns directory])
+       if test -n "$with_external_hyph_dir"; then
+               HYPH_SYSTEM_DIR=file://$with_external_hyph_dir
+       else
+               HYPH_SYSTEM_DIR=file:///usr/share/hyphen
+       fi
+       AC_MSG_RESULT([$HYPH_SYSTEM_DIR])
+       AC_MSG_CHECKING([for thesaurus directory])
+       if test -n "$with_external_thes_dir"; then
+               THES_SYSTEM_DIR=file://$with_external_thes_dir
+       else
+               THES_SYSTEM_DIR=file:///usr/share/mythes
+       fi
+       AC_MSG_RESULT([$THES_SYSTEM_DIR])
+  else
+       AC_MSG_RESULT([no])
+       SYSTEM_DICTS=NO
+  fi
 AC_SUBST(SYSTEM_DICTS)
 AC_SUBST(DICT_SYSTEM_DIR)
 AC_SUBST(HYPH_SYSTEM_DIR)

Modified: incubator/ooo/trunk/main/scp2/source/ooo/common_brand.scp
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/scp2/source/ooo/common_brand.scp?rev=1296222&r1=1296221&r2=1296222&view=diff
==============================================================================
--- incubator/ooo/trunk/main/scp2/source/ooo/common_brand.scp (original)
+++ incubator/ooo/trunk/main/scp2/source/ooo/common_brand.scp Fri Mar  2 
14:26:34 2012
@@ -39,7 +39,8 @@ Module gid_Module_Root_Brand
             gid_Brand_Dir_Share_C05_Faq,
             gid_Brand_Dir_Share_Config,
             gid_Brand_Dir_Share_Extension,
-            gid_Brand_Dir_Share_Extensions,            
+            gid_Brand_Dir_Share_Extensions,
+            gid_Brand_Dir_Share_Extensions_Install,
             gid_Brand_Dir_Share_Prereg,    
             gid_Brand_Dir_Share_Uno_Packages,
             gid_Brand_Dir_Share_Uno_Packages_Cache,
@@ -227,7 +228,7 @@ Directory gid_Brand_Dir_Share_Prereg
 End
 
 Directory gid_Brand_Dir_Share_Extensions_Install
-    ParentID = gid_Brand_Dir_Share_Extension;
+    ParentID = gid_Brand_Dir_Share_Extensions;
     DosName = "install";
 End
 

Modified: incubator/ooo/trunk/main/set_soenv.in
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/set_soenv.in?rev=1296222&r1=1296221&r2=1296222&view=diff
==============================================================================
--- incubator/ooo/trunk/main/set_soenv.in (original)
+++ incubator/ooo/trunk/main/set_soenv.in Fri Mar  2 14:26:34 2012
@@ -1862,6 +1862,8 @@ ToFile( "SYSTEM_GRAPHITE",   "@SYSTEM_GR
 ToFile( "GRAPHITE_LIBS",     "@GRAPHITE_LIBS@",     "e");
 ToFile( "GRAPHITE_CFLAGS",   "@GRAPHITE_CFLAGS@",   "e");
 ToFile( "VC_STANDARD",       "@VC_STANDARD@",      "e" );
+ToFile( "BUNDLED_EXTENSION_BLOBS", "@BUNDLED_EXTENSION_BLOBS@", "e");
+ToFile( "BUNDLED_PREREG_EXTENSIONS", "@BUNDLED_PREREG_EXTENSIONS@", "e");
 ToFile( "SYSTEM_DICTS",      "@SYSTEM_DICTS@",     "e");
 ToFile( "DICT_SYSTEM_DIR",   "@DICT_SYSTEM_DIR@",  "e");
 ToFile( "HYPH_SYSTEM_DIR",   "@HYPH_SYSTEM_DIR@",  "e");

Modified: incubator/ooo/trunk/main/solenv/bin/make_installer.pl
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/solenv/bin/make_installer.pl?rev=1296222&r1=1296221&r2=1296222&view=diff
==============================================================================
--- incubator/ooo/trunk/main/solenv/bin/make_installer.pl (original)
+++ incubator/ooo/trunk/main/solenv/bin/make_installer.pl Fri Mar  2 14:26:34 
2012
@@ -796,10 +796,15 @@ for ( my $n = 0; $n <= $#installer::glob
        $filesinproductlanguageresolvedarrayref = 
installer::scriptitems::remove_non_existent_languages_in_productlists($filesinproductlanguageresolvedarrayref,
 $languagestringref, "Name", "file");
        if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes($loggingdir . "productfiles7.log", 
$filesinproductlanguageresolvedarrayref); }
 
-       
installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($filesinproductlanguageresolvedarrayref,
 $dirsinproductarrayref);
-       if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes($loggingdir . "productfiles8.log", 
$filesinproductlanguageresolvedarrayref); }
-
        
installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist($filesinproductlanguageresolvedarrayref,
 $includepatharrayref_lang, $dirsinproductlanguageresolvedarrayref, "Files");
+       if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes($loggingdir . "productfiles8a.log", 
$filesinproductlanguageresolvedarrayref); }
+
+       $filesinproductlanguageresolvedarrayref = 
installer::scriptitems::add_bundled_extension_blobs( 
$filesinproductlanguageresolvedarrayref);
+       if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes($loggingdir . "productfiles8b.log", 
$filesinproductlanguageresolvedarrayref); }
+       $filesinproductlanguageresolvedarrayref = 
installer::scriptitems::add_bundled_prereg_extensions( 
$filesinproductlanguageresolvedarrayref);
+       if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes($loggingdir . "productfiles8c.log", 
$filesinproductlanguageresolvedarrayref); }
+
+       
installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($filesinproductlanguageresolvedarrayref,
 $dirsinproductarrayref);
        if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes($loggingdir . "productfiles9.log", 
$filesinproductlanguageresolvedarrayref); }
 
        $filesinproductlanguageresolvedarrayref = 
installer::scriptitems::remove_Files_Without_Sourcedirectory($filesinproductlanguageresolvedarrayref);
@@ -1078,21 +1083,11 @@ for ( my $n = 0; $n <= $#installer::glob
                $modulesinproductlanguageresolvedarrayref = 
installer::scriptitems::remove_not_required_language_modules($modulesinproductlanguageresolvedarrayref,
 $languagesarrayref);
                if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes_modules($loggingdir . "modules2a.log", 
$modulesinproductlanguageresolvedarrayref); }
 
-               if ( $installer::globals::analyze_spellcheckerlanguage )
-               {
-                       $modulesinproductlanguageresolvedarrayref = 
installer::scriptitems::remove_not_required_spellcheckerlanguage_modules($modulesinproductlanguageresolvedarrayref);
-                       if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes_modules($loggingdir . "modules3.log", 
$modulesinproductlanguageresolvedarrayref); }
-
-                       $filesinproductlanguageresolvedarrayref = 
installer::scriptitems::remove_not_required_spellcheckerlanguage_files($filesinproductlanguageresolvedarrayref);
-                       if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes($loggingdir . "productfiles15b.log", 
$filesinproductlanguageresolvedarrayref); }
-               }
-               
                
installer::scriptitems::changing_name_of_language_dependent_keys($modulesinproductlanguageresolvedarrayref);
                if ( $installer::globals::globallogging ) { 
installer::files::save_array_of_hashes_modules($loggingdir . "modules3a.log", 
$modulesinproductlanguageresolvedarrayref); }
 
                # 
installer::scriptitems::collect_language_specific_names($modulesinproductlanguageresolvedarrayref);
   
                
installer::scriptitems::select_required_language_strings($modulesinproductlanguageresolvedarrayref);
    # using english strings
-                       
        }
                
        # Copy-only projects can now start to copy all items File and ScpAction 

Modified: incubator/ooo/trunk/main/solenv/bin/modules/installer/scriptitems.pm
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/solenv/bin/modules/installer/scriptitems.pm?rev=1296222&r1=1296221&r2=1296222&view=diff
==============================================================================
--- incubator/ooo/trunk/main/solenv/bin/modules/installer/scriptitems.pm 
(original)
+++ incubator/ooo/trunk/main/solenv/bin/modules/installer/scriptitems.pm Fri 
Mar  2 14:26:34 2012
@@ -490,6 +490,52 @@ sub remove_not_required_spellcheckerlang
        return \@filesarray;
 }
 
+sub add_bundled_extension_blobs
+{
+       my @filelist = @{$_[0]};
+
+       my $bundleenv = $ENV{'BUNDLED_EXTENSION_BLOBS'};
+       my $bundlesrc = $ENV{'TARFILE_LOCATION'};
+       my @bundle_files = split(/\s+/, $bundleenv, -1);
+       foreach my $filename ( @bundle_files) {
+               my $basename = File::Basename::basename( $filename);
+               my $onefile = {
+                       'Dir' => 'gid_Brand_Dir_Share_Extensions_Install',
+                       'Name' => $basename,
+                       'Styles' => '(PACKED)',
+                       'UnixRights' => '444',
+                       'sourcepath' => $bundlesrc . 
$installer::globals::separator . $filename
+               };
+               push( @filelist, $onefile);
+               push( @installer::globals::logfileinfo, "\tbundling 
\"$filename\" extension\n");
+       }
+
+       return \@filelist;
+}
+
+sub add_bundled_prereg_extensions
+{
+       my @filelist = @{$_[0]};
+
+       my $bundleenv = $ENV{'BUNDLED_PREREG_EXTENSIONS'};
+       my $bundlesrc = $ENV{'TARFILE_LOCATION'};
+       my @bundle_files = split(/\s+/, $bundleenv, -1);
+       foreach my $filename ( @bundle_files) {
+               my $basename = File::Basename::basename( $filename);
+               my $onefile = {
+                       'Dir' => 
'gid_Profileitem_Uno_Uno_Bundled_Extensions_Prereg',
+                       'Name' => $basename,
+                       'Styles' => '(PACKED,ARCHIVE)',
+                       'UnixRights' => '444',
+                       'sourcepath' => $bundlesrc . 
$installer::globals::separator . $filename
+               };
+               push( @filelist, $onefile);
+               push( @installer::globals::logfileinfo, "\tbundling 
\"$filename\" extension\n");
+       }
+
+       return \@filelist;
+}
+
 
################################################################################
 # Looking for directories without correct HostName
 
################################################################################
@@ -981,7 +1027,7 @@ sub get_Directoryname_From_Directorygid
 }
 
 ##################################################################
-# Getting destination direcotory for links, files and profiles
+# Getting destination directory for links, files and profiles
 ##################################################################
 
 sub get_Destination_Directory_For_Item_From_Directorylist              # this 
is used for Files, Profiles and Links
@@ -1373,7 +1419,7 @@ sub remove_Files_Without_Sourcedirectory
 
                        if ( ! $installer::globals::languagepack )
                        {
-                               $infoline = "ERROR: Removing file $filename 
from file list.\n";
+                               $infoline = "ERROR: No sourcepath -> Removing 
file $filename from file list.\n";
                                push( @installer::globals::logfileinfo, 
$infoline);
 
                                push(@missingfiles, "ERROR: File not found: 
$filename\n");      


Reply via email to