summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorStephan Bergmann <stephan.bergmann@allotropia.de>2024-01-22 11:49:45 +0100
committerStephan Bergmann <stephan.bergmann@allotropia.de>2024-01-22 16:06:42 +0100
commit084c64982ef6187292fd73e6deaa4448e0b6f3de (patch)
tree16fcf75df77b5517bd05333047a950becc51153a /solenv
parent4e7a0270c6efc371433c3c77772ca062d6747fe8 (diff)
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.bergmann@allotropia.de>
Diffstat (limited to 'solenv')
-rw-r--r--solenv/bin/modules/installer/globals.pm1
-rw-r--r--solenv/bin/modules/installer/simplepackage.pm31
2 files changed, 2 insertions, 30 deletions
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 ...\n" );
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'} =~ /\b(ASSEMBLY|ASSIGNCOMPONENT|FONT)\b/)
- {
- 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 $_\n" foreach (sort(@archive_metadata_skip));
- print HANDLE "cond $_\n" foreach (sort(@archive_metadata_cond));
- close HANDLE;
- }
-
# Analyzing the log file
installer::worker::clean_output_tree(); # removing directories created in the output tree