Makefile.gbuild                                       |    5 
 bin/update/create_full_mar.py                         |   30 +----
 bin/update/create_full_mar_for_languages.py           |   71 -------------
 bin/update/create_partial_update.py                   |   41 +------
 bin/update/tools.py                                   |   30 +----
 external/onlineupdate/UnpackedTarball_onlineupdate.mk |    1 
 external/onlineupdate/inifiles.patch                  |   11 --
 external/onlineupdate/lo.patch                        |   98 ++++++++----------
 solenv/bin/modules/installer/globals.pm               |    1 
 solenv/bin/modules/installer/simplepackage.pm         |   31 -----
 10 files changed, 74 insertions(+), 245 deletions(-)
New commits:
commit 084c64982ef6187292fd73e6deaa4448e0b6f3de
Author:     Stephan Bergmann <stephan.bergm...@allotropia.de>
AuthorDate: Mon Jan 22 11:49:45 2024 +0100
Commit:     Stephan Bergmann <stephan.bergm...@allotropia.de>
CommitDate: Mon Jan 22 16:06:42 2024 +0100

    Create MAR updates from msi rather than from archive
    
    ...as the former is more convenient for release engineering (see the 
discussion
    in the comments at
    
<https://gerrit.libreoffice.org/c/core/+/162157/1#message-8d7ebbcc64a87ee8e4a073ae1a05e3b74f5a3d6a>
    "Also enable --with-package-format=archive for LibreOfficeWin64.conf").
    
    Instead of ONLINEUPDATE_MAR_OLDARCHIVE and ONLINEUPDATE_MAR_OLDMETADATA make
    variables, the create-partial-info target now only needs an
    ONLINEUPDATE_MAR_OLDMSI make variable.
    
    TODO:  There are two issues when comparing the content of msi files 
(extracted
    with msiexec /a), which the old code comparing the content of archives had 
tried
    to somewhat (but not fully) address with the metadata files that I had 
invented
    (and now reverted):  For one, msiexec /a also extracts content that would
    normally be installed somewhere else in the system (e.g., it extracts Fonts,
    System, and System64 directories).  Differences in those directories will 
cause
    a MAR update to create those directories in the installation directory, 
rather
    than to update the corresponding files in their actual locations.  For 
another,
    optional components are not recognized as such, but their content must be 
added
    to the MAR file as add/patch-if, not as plain add/patch.  To work around 
that,
    for now *all* files are added as add/patch-if, conditional on the files
    themselves.  Thus, addition of files will cause a MAR update to miss them.
    
    (As they now exclusively operate on msi files, the create-update-info and
    create-partial-info targets are no longer meaningful for non-Windows 
platforms,
    so drop the non-Windows bin/update/create_full_mar_for_languages.py part.)
    
    Change-Id: Ifb55b5e7d1a201b4f50a27cb449a634b96c2e29b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162399
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de>

diff --git a/Makefile.gbuild b/Makefile.gbuild
index 31ba1772c50a..bb072340e19f 100644
--- a/Makefile.gbuild
+++ b/Makefile.gbuild
@@ -42,16 +42,13 @@ create-update-info:
        rm -rf $(UPDATE_DIR) || true
        mkdir -p $(MAR_DIR)/language
        MAR=$(INSTDIR)/program/mar $(if $(filter WNT,$(OS)),$(shell cygpath -u 
$(SRCDIR)/bin/update/create_full_mar.py),$(SRCDIR)/bin/update/create_full_mar.py)
 "$(PRODUCTNAME)" "$(WORKDIR)" "$(MAR_NAME_PREFIX)" 
"$(ONLINEUPDATE_MAR_CERTIFICATEPATH)" "$(ONLINEUPDATE_MAR_CERTIFICATENAME)" 
"$(ONLINEUPDATE_MAR_BASEURL)" 
'$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)'
-       $(if $(filter WNT,$(OS)),, \
-               MAR=$(INSTDIR)/program/mar 
$(SRCDIR)/bin/update/create_full_mar_for_languages.py "$(PRODUCTNAME)" 
"$(WORKDIR)" "$(MAR_NAME_PREFIX)" "$(ONLINEUPDATE_MAR_CERTIFICATEPATH)" 
"$(ONLINEUPDATE_MAR_CERTIFICATENAME)" "$(ONLINEUPDATE_MAR_BASEURL)" 
'$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)'
 \
-       )
 
 create-partial-info:
        $(eval BUILDID := $(shell git -C $(SRCDIR) log -1 --format=%H))
        $(eval VERSION := 
$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)$(LIBO_VERSION_SUFFIX)$(LIBO_VERSION_SUFFIX_SUFFIX))
        $(eval PLATFORM := $(RTL_OS)_$(RTL_ARCH))
        $(eval MAR_NAME_PREFIX := 
$(PRODUCTNAME)_$(VERSION)_$(PLATFORM)_$(BUILDID))
-       MBSDIFF=$(WORKDIR)/LinkTarget/Executable/mbsdiff 
MAR=$(INSTDIR)/program/mar $(if $(filter WNT,$(OS)),$(shell cygpath -u 
$(SRCDIR)/bin/update/create_partial_update.py),$(SRCDIR)/bin/update/create_partial_update.py)
 "$(WORKDIR)" "$(MAR_NAME_PREFIX)" LOOnlineUpdater 
"$(ONLINEUPDATE_MAR_CERTIFICATEPATH)" "$(ONLINEUPDATE_MAR_CERTIFICATENAME)" 
"$(ONLINEUPDATE_MAR_BASEURL)" "$(PRODUCTNAME)" 
'$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)'
 "$(ONLINEUPDATE_MAR_OLDARCHIVE)" "$(ONLINEUPDATE_MAR_OLDMETADATA)"
+       MBSDIFF=$(WORKDIR)/LinkTarget/Executable/mbsdiff 
MAR=$(INSTDIR)/program/mar $(if $(filter WNT,$(OS)),$(shell cygpath -u 
$(SRCDIR)/bin/update/create_partial_update.py),$(SRCDIR)/bin/update/create_partial_update.py)
 "$(WORKDIR)" "$(MAR_NAME_PREFIX)" LOOnlineUpdater 
"$(ONLINEUPDATE_MAR_CERTIFICATEPATH)" "$(ONLINEUPDATE_MAR_CERTIFICATENAME)" 
"$(ONLINEUPDATE_MAR_BASEURL)" "$(PRODUCTNAME)" 
'$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)'
 "$(ONLINEUPDATE_MAR_OLDMSI)"
 
 # also possible to bypass the dependencies/the gbuild processing by just 
running
 # LD_LIBRARY_PATH=instdir/program make cmd cmd='ALL_LANGS="$(ALL_LANGS)" 
workdir/LinkTarget/Executable/pocheck'
diff --git a/bin/update/create_full_mar.py b/bin/update/create_full_mar.py
index 1c2b249db3b5..d43c0804c9a7 100755
--- a/bin/update/create_full_mar.py
+++ b/bin/update/create_full_mar.py
@@ -2,7 +2,6 @@
 
 import glob
 import os
-import re
 import subprocess
 import json
 import argparse
@@ -37,35 +36,20 @@ def main():
     target_dir = update_path.get_update_dir()
     temp_dir = update_path.get_current_build_dir()
 
-    tar_file_glob = os.path.join(update_path.get_workdir(), "installation", 
product_name, "archive", "install", "*", f'{product_name}_*_archive*')
-    tar_files = glob.glob(tar_file_glob)
-    if len(tar_files) != 1:
-        raise Exception(f'`{tar_file_glob}` does not match exactly one file')
-    tar_file = tar_files[0]
+    msi_file_glob = os.path.join(update_path.get_workdir(), "installation", 
product_name, "msi", "install", "*", f'{product_name}_*.msi')
+    msi_files = glob.glob(msi_file_glob)
+    if len(msi_files) != 1:
+        raise Exception(f'`{msi_file_glob}` does not match exactly one file')
+    msi_file = msi_files[0]
 
-    uncompress_dir = uncompress_file_to_dir(tar_file, temp_dir)
-
-    metadatafile = os.path.join(
-        update_path.get_workdir(), 'installation', product_name, 'archive', 
'install', 'metadata')
-    ifsfile = os.path.join(update_path.get_mar_dir(), 'ifs')
-    with open(metadatafile) as meta, open(ifsfile, 'w') as ifs:
-        for l in meta:
-            m = re.fullmatch('(skip|cond) (.*)', l.rstrip())
-            if m and m.group(2).startswith(f'{product_name}/'):
-                path = m.group(2)[len(f'{product_name}/'):]
-                if m.group(1) == 'skip':
-                    os.remove(os.path.join(uncompress_dir, path))
-                else:
-                    ifs.write(f'"{path}" "{path}"
')
+    uncompress_dir = uncompress_file_to_dir(msi_file, temp_dir)
 
     mar_file = make_complete_mar_name(target_dir, filename_prefix)
     path = os.path.join(
         workdir, 
'UnpackedTarball/onlineupdate/tools/update-packaging/make_full_update.sh')
     os.putenv('MOZ_PRODUCT_VERSION', version)
     os.putenv('MAR_CHANNEL_ID', 'LOOnlineUpdater')
-    subprocess.call([
-        path, convert_to_native(mar_file), convert_to_native(uncompress_dir),
-        convert_to_native(ifsfile)])
+    subprocess.call([path, convert_to_native(mar_file), 
convert_to_native(uncompress_dir)])
 
     sign_mar_file(target_dir, certificate_path, certificate_name, mar_file, 
filename_prefix)
 
diff --git a/bin/update/create_full_mar_for_languages.py 
b/bin/update/create_full_mar_for_languages.py
deleted file mode 100755
index d431ecaf6d1a..000000000000
--- a/bin/update/create_full_mar_for_languages.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-import os
-import subprocess
-import json
-
-from tools import uncompress_file_to_dir, get_file_info
-
-from path import UpdaterPath
-from signing import sign_mar_file
-
-
-def make_complete_mar_name(target_dir, filename_prefix, language):
-    filename = filename_prefix + "_" + language + "_complete_langpack.mar"
-    return os.path.join(target_dir, filename)
-
-
-def create_lang_infos(mar_file_name, language, url):
-    data = {'lang': language,
-            'complete': get_file_info(mar_file_name, url)
-            }
-    return data
-
-
-def main():
-    if len(sys.argv) < 8:
-        print(
-            "Usage: create_full_mar_for_languages.py $PRODUCTNAME $WORKDIR 
$TARGETDIR $TEMPDIR $FILENAMEPREFIX $CERTIFICATEPATH $CERTIFICATENAME $BASEURL 
$VERSION")
-        sys.exit(1)
-
-    certificate_path = sys.argv[4]
-    certificate_name = sys.argv[5]
-    base_url = sys.argv[6]
-    filename_prefix = sys.argv[3]
-    workdir = sys.argv[2]
-    product_name = sys.argv[1]
-    version = sys.argv[7]
-
-    updater_path = UpdaterPath(workdir)
-    target_dir = updater_path.get_update_dir()
-    temp_dir = updater_path.get_language_dir()
-
-    language_pack_dir = os.path.join(workdir, "installation", product_name + 
"_languagepack", "archive", "install")
-    language_packs = os.listdir(language_pack_dir)
-    lang_infos = []
-    for language in language_packs:
-        if language == 'log':
-            continue
-
-        language_dir = os.path.join(language_pack_dir, language)
-        language_file = os.path.join(language_dir, os.listdir(language_dir)[0])
-
-        directory = uncompress_file_to_dir(language_file, 
os.path.join(temp_dir, language))
-
-        mar_file_name = make_complete_mar_name(target_dir, filename_prefix, 
language)
-
-        os.putenv('MOZ_PRODUCT_VERSION', version)
-        os.putenv('MAR_CHANNEL_ID', 'LOOnlineUpdater')
-        subprocess.call([os.path.join(workdir, 
'UnpackedTarball/onlineupdate/tools/update-packaging/make_full_update.sh'), 
mar_file_name, directory])
-
-        sign_mar_file(target_dir, certificate_path, certificate_name, 
mar_file_name, filename_prefix)
-
-        lang_infos.append(create_lang_infos(mar_file_name, language, base_url))
-
-    with open(os.path.join(target_dir, "complete_lang_info.json"), "w") as 
language_info_file:
-        json.dump({'languages': lang_infos}, language_info_file, indent=4)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/bin/update/create_partial_update.py 
b/bin/update/create_partial_update.py
index 88a4553d6a36..8c49bd9159fd 100755
--- a/bin/update/create_partial_update.py
+++ b/bin/update/create_partial_update.py
@@ -29,10 +29,9 @@ def main():
     base_url = sys.argv[6]
     product_name = sys.argv[7]
     version = sys.argv[8]
-    old_archive = sys.argv[9]
-    old_metadata = sys.argv[10]
+    old_msi = sys.argv[9]
 
-    old_uncompress_dir = uncompress_file_to_dir(old_archive, 
updater_path.get_previous_build_dir())
+    old_uncompress_dir = uncompress_file_to_dir(old_msi, 
updater_path.get_previous_build_dir())
     versionini = os.path.join(old_uncompress_dir, 'program', 'version.ini') 
#TODO: Linux, macOS
     old_build_id = None
     with open(versionini) as f:
@@ -44,33 +43,12 @@ def main():
     if old_build_id is None:
         raise Exception(f'Cannot find buildid in {versionini}')
 
-    #TODO: check for problematic changes between old and new metadata
-    with open(old_metadata) as meta:
-        for l in meta:
-            m = re.fullmatch('skip (.*)', l.rstrip())
-            if m and m.group(1).startswith(f'{product_name}/'):
-                path = m.group(1)[len(f'{product_name}/'):]
-                os.remove(os.path.join(old_uncompress_dir, path))
-
-    new_tar_file_glob = os.path.join(updater_path.get_workdir(), 
"installation", product_name, "archive", "install", "*", 
f'{product_name}_*_archive*')
-    new_tar_files = glob.glob(new_tar_file_glob)
-    if len(new_tar_files) != 1:
-        raise Exception(f'`{new_tar_file_glob}` does not match exactly one 
file')
-    new_tar_file = new_tar_files[0]
-    new_uncompress_dir = uncompress_file_to_dir(new_tar_file, 
updater_path.get_current_build_dir())
-
-    new_metadata = os.path.join(
-        updater_path.get_workdir(), 'installation', product_name, 'archive', 
'install', 'metadata')
-    ifsfile = os.path.join(updater_path.get_mar_dir(), 'ifs')
-    with open(new_metadata) as meta, open(ifsfile, 'w') as ifs:
-        for l in meta:
-            m = re.fullmatch('(skip|cond) (.*)', l.rstrip())
-            if m and m.group(2).startswith(f'{product_name}/'):
-                path = m.group(2)[len(f'{product_name}/'):]
-                if m.group(1) == 'skip':
-                    os.remove(os.path.join(new_uncompress_dir, path))
-                else:
-                    ifs.write(f'"{path}" "{path}"
')
+    new_msi_file_glob = os.path.join(updater_path.get_workdir(), 
"installation", product_name, "msi", "install", "*", f'{product_name}_*.msi')
+    new_msi_files = glob.glob(new_msi_file_glob)
+    if len(new_msi_files) != 1:
+        raise Exception(f'`{new_msi_file_glob}` does not match exactly one 
file')
+    new_msi_file = new_msi_files[0]
+    new_uncompress_dir = uncompress_file_to_dir(new_msi_file, 
updater_path.get_current_build_dir())
 
     update_dir = updater_path.get_update_dir()
 
@@ -80,8 +58,7 @@ def main():
     os.putenv('MOZ_PRODUCT_VERSION', version)
     os.putenv('MAR_CHANNEL_ID', 'LOOnlineUpdater')
     subprocess.call([os.path.join(workdir, 
'UnpackedTarball/onlineupdate/tools/update-packaging/make_incremental_update.sh'),
 convert_to_native(mar_file),
-                     convert_to_native(old_uncompress_dir), 
convert_to_native(new_uncompress_dir),
-                     convert_to_native(ifsfile)])
+                     convert_to_native(old_uncompress_dir), 
convert_to_native(new_uncompress_dir)])
 
     sign_mar_file(update_dir, certificate_path, certificate_name, mar_file, 
mar_name_prefix)
 
diff --git a/bin/update/tools.py b/bin/update/tools.py
index 71fcc5cc2f69..1c5588cb5470 100644
--- a/bin/update/tools.py
+++ b/bin/update/tools.py
@@ -1,30 +1,20 @@
 import os
 import hashlib
-import zipfile
-import tarfile
+import subprocess
 
+from path import convert_to_native
 
-def uncompress_file_to_dir(compressed_file, uncompress_dir):
-    extension = os.path.splitext(compressed_file)[1]
 
+def uncompress_file_to_dir(compressed_file, uncompress_dir):
     os.makedirs(uncompress_dir, exist_ok=True)
 
-    if extension == '.gz':
-        with tarfile.open(compressed_file) as tar:
-            tar.extractall(uncompress_dir)
-    elif extension == '.zip':
-        with zipfile.ZipFile(compressed_file) as zip_file:
-            zip_file.extractall(uncompress_dir)
-
-        uncompress_dir = os.path.join(uncompress_dir, 
os.listdir(uncompress_dir)[0])
-        if " " in os.listdir(uncompress_dir)[0]:
-            print("replacing whitespace in directory name")
-            os.rename(os.path.join(uncompress_dir, 
os.listdir(uncompress_dir)[0]),
-                      os.path.join(uncompress_dir, 
os.listdir(uncompress_dir)[0].replace(" ", "_")))
-    else:
-        print("Error: unknown extension " + extension)
-
-    return os.path.join(uncompress_dir, os.listdir(uncompress_dir)[0])
+    if subprocess.call([
+            'msiexec', '/a', convert_to_native(compressed_file).replace('/', 
'\'),
+            '/quiet',
+            'TARGETDIR=' + convert_to_native(uncompress_dir).replace('/', 
'\')]) != 0:
+        raise Exception(f'msiexec failed')
+
+    return uncompress_dir
 
 
 BUF_SIZE = 1048576
diff --git a/external/onlineupdate/UnpackedTarball_onlineupdate.mk 
b/external/onlineupdate/UnpackedTarball_onlineupdate.mk
index 43c189b84a18..166ede0a6b9b 100644
--- a/external/onlineupdate/UnpackedTarball_onlineupdate.mk
+++ b/external/onlineupdate/UnpackedTarball_onlineupdate.mk
@@ -21,7 +21,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,onlineupdate, \
 ifeq ($(OS),WNT)
 $(eval $(call gb_UnpackedTarball_add_patches,onlineupdate, \
     external/onlineupdate/cygpath.patch \
-    external/onlineupdate/inifiles.patch \
 ))
 endif
 
diff --git a/external/onlineupdate/inifiles.patch 
b/external/onlineupdate/inifiles.patch
deleted file mode 100644
index 1d285f09af1b..000000000000
--- a/external/onlineupdate/inifiles.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/update-packaging/make_incremental_update.sh
-+++ tools/update-packaging/make_incremental_update.sh
-@@ -226,7 +227,7 @@
-       patchsize=$(get_file_size "$patchfile")
-       fullsize=$(get_file_size "$workdir/$f")
- 
--      if [ $patchsize -lt $fullsize ]; then
-+      if [ $patchsize -lt $fullsize ] && [ "$f" != program/setup.ini ] && [ 
"$f" != program/version.ini ]; then
-         make_patch_instruction "$f" "$updatemanifestv3"
-         mv -f "$patchfile" "$workdir/$f.patch"
-         rm -f "$workdir/$f"
diff --git a/external/onlineupdate/lo.patch b/external/onlineupdate/lo.patch
index ce4f2e4c77ec..debb7a5b3bbf 100644
--- a/external/onlineupdate/lo.patch
+++ b/external/onlineupdate/lo.patch
@@ -225,49 +225,49 @@
      }
 --- tools/update-packaging/common.sh
 +++ tools/update-packaging/common.sh
-@@ -76,6 +76,15 @@
+@@ -76,17 +76,8 @@
      forced=
    fi
  
-+  if [ -n "$IFSFILE" ]; then
-+    ifsline=$(grep -F " \"$f\"" "$IFSFILE")
-+    if [ -n "$ifsline" ]; then
-+      testfile=$(printf '%s' "$ifsline" | cut -f 2 -d '"')
-+      verbose_notice "     add-if \"$testfile\" \"$f\""
-+      echo "add-if \"$testfile\" \"$f\"" >> "$filev3"
-+      return
-+    fi
-+  fi
-   is_extension=$(echo "$f" | grep -c 'distribution/extensions/.*/')
-   if [ $is_extension = "1" ]; then
-     # Use the subdirectory of the extensions folder as the file to test
-@@ -113,6 +122,15 @@
+-  is_extension=$(echo "$f" | grep -c 'distribution/extensions/.*/')
+-  if [ $is_extension = "1" ]; then
+-    # Use the subdirectory of the extensions folder as the file to test
+-    # before performing this add instruction.
+-    testdir=$(echo "$f" | sed 
's/\(.*distribution\/extensions\/[^\/]*\)\/.*//')
+-    verbose_notice "     add-if \"$testdir\" \"$f\""
+-    echo "add-if \"$testdir\" \"$f\"" >> "$filev3"
+-  else
+-    verbose_notice "        add \"$f\"$forced"
+-    echo "add \"$f\"" >> "$filev3"
+-  fi
++  verbose_notice "     add-if \"$f\" \"$f\"$forced"
++  echo "add-if \"$f\" \"$f\"" >> "$filev3"
+ }
+ 
+ check_for_add_if_not_update() {
+@@ -113,17 +104,8 @@
    f="$1"
    filev3="$2"
  
-+  if [ -n "$IFSFILE" ]; then
-+    ifsline=$(grep -F " \"$f\"" "$IFSFILE")
-+    if [ -n "$ifsline" ]; then
-+      testfile=$(printf '%s' "$ifsline" | cut -f 2 -d '"')
-+      verbose_notice "   patch-if \"$testfile\" \"$f.patch\" \"$f\""
-+      echo "patch-if \"$testfile\" \"$f.patch\" \"$f\"" >> "$filev3"
-+      return
-+    fi
-+  fi
-   is_extension=$(echo "$f" | grep -c 'distribution/extensions/.*/')
-   if [ $is_extension = "1" ]; then
-     # Use the subdirectory of the extensions folder as the file to test
+-  is_extension=$(echo "$f" | grep -c 'distribution/extensions/.*/')
+-  if [ $is_extension = "1" ]; then
+-    # Use the subdirectory of the extensions folder as the file to test
+-    # before performing this add instruction.
+-    testdir=$(echo "$f" | sed 
's/\(.*distribution\/extensions\/[^\/]*\)\/.*//')
+-    verbose_notice "   patch-if \"$testdir\" \"$f.patch\" \"$f\""
+-    echo "patch-if \"$testdir\" \"$f.patch\" \"$f\"" >> "$filev3"
+-  else
+-    verbose_notice "      patch \"$f.patch\" \"$f\""
+-    echo "patch \"$f.patch\" \"$f\"" >> "$filev3"
+-  fi
++  verbose_notice "   patch-if \"$f\" \"$f.patch\" \"$f\""
++  echo "patch-if \"$f\" \"$f.patch\" \"$f\"" >> "$filev3"
+ }
+ 
+ append_remove_instructions() {
 --- tools/update-packaging/make_full_update.sh
 +++ tools/update-packaging/make_full_update.sh
-@@ -45,6 +45,7 @@
- 
- archive="$1"
- targetdir="$2"
-+IFSFILE=$3
- # Prevent the workdir from being inside the targetdir so it isn't included in
- # the update mar.
- if [ $(echo "$targetdir" | grep -c '\/$') = 1 ]; then
-@@ -53,9 +54,10 @@
+@@ -53,9 +53,10 @@
  fi
  workdir="$targetdir.work"
  updatemanifestv3="$workdir/updatev3.manifest"
@@ -279,7 +279,7 @@
  
  # Generate a list of all files in the target directory.
  pushd "$targetdir"
-@@ -66,7 +68,6 @@
+@@ -66,7 +67,6 @@
  if [ ! -f "precomplete" ]; then
    if [ ! -f "Contents/Resources/precomplete" ]; then
      notice "precomplete file is missing!"
@@ -287,7 +287,7 @@
    fi
  fi
  
-@@ -99,7 +100,7 @@
+@@ -99,7 +99,7 @@
    $XZ $XZ_OPT --compress $BCJ_OPTIONS --lzma2 --format=xz --check=crc64 
--force --stdout "$targetdir/$f" > "$workdir/$f"
    copy_perm "$targetdir/$f" "$workdir/$f"
  
@@ -296,7 +296,7 @@
  done
  
  # Append remove instructions for any dead files.
-@@ -110,7 +111,7 @@
+@@ -110,7 +110,7 @@
  $XZ $XZ_OPT --compress $BCJ_OPTIONS --lzma2 --format=xz --check=crc64 --force 
"$updatemanifestv3" && mv -f "$updatemanifestv3.xz" "$updatemanifestv3"
  
  mar_command="$mar_command -C \"$workdir\" -c output.mar"
@@ -307,15 +307,7 @@
  # cleanup
 --- tools/update-packaging/make_incremental_update.sh
 +++ tools/update-packaging/make_incremental_update.sh
-@@ -104,6 +104,7 @@
- archive="$1"
- olddir="$2"
- newdir="$3"
-+IFSFILE=$4
- # Prevent the workdir from being inside the targetdir so it isn't included in
- # the update mar.
- if [ $(echo "$newdir" | grep -c '\/$') = 1 ]; then
-@@ -112,9 +113,10 @@
+@@ -112,9 +112,10 @@
  fi
  workdir="$(mktemp -d)"
  updatemanifestv3="$workdir/updatev3.manifest"
@@ -327,7 +319,7 @@
  
  # Generate a list of all files in the target directory.
  pushd "$olddir"
-@@ -135,7 +137,6 @@
+@@ -135,7 +136,6 @@
  if [ ! -f "precomplete" ]; then
    if [ ! -f "Contents/Resources/precomplete" ]; then
      notice "precomplete file is missing!"
@@ -335,7 +327,7 @@
    fi
  fi
  
-@@ -170,7 +171,7 @@
+@@ -170,7 +170,7 @@
        $XZ $XZ_OPT --compress $BCJ_OPTIONS --lzma2 --format=xz --check=crc64 
--force --stdout "$newdir/$f" > "$workdir/$f"
        copy_perm "$newdir/$f" "$workdir/$f"
        make_add_if_not_instruction "$f" "$updatemanifestv3"
@@ -344,7 +336,7 @@
        continue 1
      fi
  
-@@ -180,7 +181,7 @@
+@@ -180,7 +180,7 @@
        $XZ $XZ_OPT --compress $BCJ_OPTIONS --lzma2 --format=xz --check=crc64 
--force --stdout "$newdir/$f" > "$workdir/$f"
        copy_perm "$newdir/$f" "$workdir/$f"
        make_add_instruction "$f" "$updatemanifestv3" 1
@@ -353,7 +345,7 @@
        continue 1
      fi
  
-@@ -227,11 +228,11 @@
+@@ -227,11 +227,11 @@
          make_patch_instruction "$f" "$updatemanifestv3"
          mv -f "$patchfile" "$workdir/$f.patch"
          rm -f "$workdir/$f"
@@ -367,7 +359,7 @@
        fi
      fi
    else
-@@ -270,7 +271,7 @@
+@@ -270,7 +270,7 @@
    fi
  
  
@@ -376,7 +368,7 @@
  done
  
  notice ""
-@@ -302,7 +303,7 @@
+@@ -302,7 +302,7 @@
  $XZ $XZ_OPT --compress $BCJ_OPTIONS --lzma2 --format=xz --check=crc64 --force 
"$updatemanifestv3" && mv -f "$updatemanifestv3.xz" "$updatemanifestv3"
  
  mar_command="$mar_command -C \"$workdir\" -c output.mar"
diff --git a/solenv/bin/modules/installer/globals.pm 
b/solenv/bin/modules/installer/globals.pm
index d210cefa179a..045d9d6afde9 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -185,7 +185,6 @@ BEGIN
     $installer::globals::is_copy_only_project = 0;
     $installer::globals::is_simple_packager_project = 0;
     $installer::globals::patch_user_dir = 0;
-    $installer::globals::record_archive_metadata = 0;
     $installer::globals::languagepack = 0;
     $installer::globals::helppack = 0;
     $installer::globals::refresh_includepaths = 0;
diff --git a/solenv/bin/modules/installer/simplepackage.pm 
b/solenv/bin/modules/installer/simplepackage.pm
index 3a876c4a36d7..a8b98a222e5f 100644
--- a/solenv/bin/modules/installer/simplepackage.pm
+++ b/solenv/bin/modules/installer/simplepackage.pm
@@ -47,12 +47,8 @@ sub check_simple_packager_project
         $installer::globals::is_simple_packager_project = 1;
         $installer::globals::patch_user_dir = 1;
     }
-    elsif( $installer::globals::packageformat eq "archive" )
-    {
-        $installer::globals::is_simple_packager_project = 1;
-        $installer::globals::record_archive_metadata = 1;
-    }
-    elsif( $installer::globals::packageformat eq "dmg" )
+    elsif(( $installer::globals::packageformat eq "archive" ) ||
+          ( $installer::globals::packageformat eq "dmg" ) )
     {
         $installer::globals::is_simple_packager_project = 1;
     }
@@ -612,9 +608,6 @@ sub create_simple_package
     # stripping files ?!
     if (( $installer::globals::strip ) && ( ! 
$installer::globals::iswindowsbuild )) { strip_libraries($filesref, 
$languagestringref); }
 
-    my @archive_metadata_skip;
-    my @archive_metadata_cond;
-
     # copy Files
     installer::logger::print_message( "... copying files ...
" );
     installer::logger::include_header_into_logfile("Copying files:");
@@ -665,18 +658,6 @@ sub create_simple_package
                 }
             }
         }
-
-        if ($installer::globals::record_archive_metadata)
-        {
-            if ($onefile->{'Styles'} =~ /(ASSEMBLY|ASSIGNCOMPONENT|FONT)/)
-            {
-                push(@archive_metadata_skip, $onefile->{'destination'});
-            }
-            elsif ($onefile->{'modules'} =~ /^gid_Module_(Langpack|Optional)_/)
-            {
-                push(@archive_metadata_cond, $onefile->{'destination'});
-            }
-        }
     }
 
     # creating Links
@@ -745,14 +726,6 @@ sub create_simple_package
         create_package($installdir, $installdir, $packagename, $allvariables, 
$includepatharrayref, $languagestringref, ".dmg");
     }
 
-    if ($installer::globals::record_archive_metadata)
-    {
-        open(HANDLE, '>', "$installer::globals::csp_installdir/../metadata") 
or die $!;
-        print HANDLE "skip $_
" foreach (sort(@archive_metadata_skip));
-        print HANDLE "cond $_
" foreach (sort(@archive_metadata_cond));
-        close HANDLE;
-    }
-
     # Analyzing the log file
 
     installer::worker::clean_output_tree(); # removing directories created in 
the output tree

Reply via email to