summaryrefslogtreecommitdiff
path: root/solenv/bin/modules
AgeCommit message (Collapse)Author
2024-12-19Remove the remains of the set_office_start_language mechanismStephan Bergmann
...whose uses have been dropped in 38fb0462578bde685e3862187a2dc842968d8f72 "fdo#54278 Only en-US help pack should contain en-US help" Change-Id: Ia2bee3fae2bf7fe5c0563fe075819b82162cc07a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178782 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-12-12replace a couple manual calls to cygpath with PathFormatChristian Lohmaier
this fixes using the MSM merge modules in the wsl-as-helper case and avoids "cygpath not found" error lines when doing the compiler tests when running configure. Also capture and report the output of failed msidb calls in the isntaller code and simplify the path-mangling to windows-style Change-Id: I6877edda72959ab592e686d662b1344487e6313e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177966 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-12-07Windows 7-8.1 support was removed, prevent install on these old systemsMike Kaganski
There is no simple "Windows is 10 or newer" check in MSI, with the Microsoft policy of "you don't need to know real Windows version". See also https://developercommunity.visualstudio.com/t/detect-a-windows-version-from-msi/412198 The values that MSI sees (e.g. on my Win11) are: Property(C): VersionNT = 603 Property(C): VersionNT64 = 603 Property(C): WindowsBuild = 9600 So those can't be used for the check. I use the WINMAJORVER that is read from registry (Software\Microsoft\Windows NT\CurrentVersion). There is no more need to check and install UCRT; it was dropped. Change-Id: Ic02d6aeb965e9684bafd4357f969980f77000e73 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178049 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-10python3: fix macosx installerXisco Fauli
Since a1295cb177295752f8cbfbb49e13d5bb69ed7dc7 "python: upgrade to 3.10.14 (master only)" because the regex expression no longer matches "error.cpython-310.opt-1.pyc" with two digits after "error.cpython-3" Change-Id: I78f566da20e6b591bfa76c36dc69ea3125946d82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170315 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-18tdf#115357: Set Start Menu folder under Windows to \LibreOffice\kubak
Enhancement request. Change-Id: I128520432d33bd900d4385395f28a32d181485cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167141 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-05-16MSI: Adds the missing ExtendedType column in the CustomAction tablekubak
ICE06 WARNING Column: ExtendedType of Table: CustomAction is not defined in database. https: //learn.microsoft.com/en-us/windows/win32/msi/ice06 https: //learn.microsoft.com/en-us/windows/win32/msi/customaction-table Change-Id: I5f9368fedf421b23a397f5dcd77f383cb9f42ac5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166951 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-04-26don't throw away command output when packaging installsetsChristian Lohmaier
and adjust installer to work with MSWin-style perl (like strawberry perl) Change-Id: I9305c7cb6ef72560bbf77626f113f3ee439b3ef3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166331 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-26MSI: Fix use of illegal character "@"kubak
ICE03 ERROR Invalid identifier; Example: flt14.mo gid_file_res_flt_lang__libreoffice_program_resource_ca@valen_dcb80460e flt.mo 55482 2051 16384 13967 We use the illegal "@" sign. Changing to underscore "_". https: //learn.microsoft.com/en-us/windows/win32/msi/identifier Change-Id: I50c40a3cde3f4b57b71ddda9876f27db08aa0970 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166580 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-26MSI: Fix use of illegal character in table Binarykubak
ICE03 ERROR Invalid identifier; Table: Binary, Column: Name, Key(s): Windows61-KB2999226-x64msu ICE03 ERROR Invalid identifier; Table: Binary, Column: Name, Key(s): Windows81-KB2999226-x64msu ICE03 ERROR Invalid identifier; Table: Binary, Column: Name, Key(s): Windows8-RT-KB2999226-x64msu We use the illegal "-" character. https: //learn.microsoft.com/en-us/windows/win32/msi/binary-table https: //learn.microsoft.com/en-us/windows/win32/msi/identifier Change-Id: I44aea358964c085599ab42f134535fa97840dd26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166567 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-22Create MAR updates from msi rather than from archiveStephan Bergmann
...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>
2024-01-22Remove (Windows-only) INIFILETABLE entries from setup.iniStephan Bergmann
(See a31f334d36b5735ba6fc8d0f89e834a73bdcc561 "Windows MAR update issues with program/{setup,version}.ini" for why this cleanup is needed.) It is unclear to me why these entries would be needed in the setup.ini file. The *INSTALLLOCATION values are also stored in the Windows registry (see scp2/source/ooo/registryitem_ooo.scp). FINDPRODUCT was once used as a GetMsiProperty, in code meanwhile removed in 030124d836a3f8571e26c8ce6b5d752ca7ab2511 "remove CustomAction ExecutePostUninstallScript" (so I also removed the FINDPRODUCT property file line from solenv/bin/modules/installer/windows/property.pm, so FINDPRODUCT will no longer in the MSI Property table). ALLUSERS is only used with some SetMsiPropertyW/UnsetMsiPropertyW/IsSetMsiPropertyW/GetMsiPropertySetW code in setup_native/source/win32/customactions/, but that should be unrelated to the setup.ini file. Removing the ProfileItems from scp2/source/ooo/common_brand.scp removed the only uses of the INIFILETABLE style, so also remove the corresponding code from solenv/bin/modules/installer.pm and the complete related solenv/bin/modules/installer/windows/inifile.pm. Fingers crossed. A# modified: scp2/source/ooo/common_brand.scp Change-Id: If2aa72f0da50bc72f8c873df713340a142eed5e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161981 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-22Remove (Windows-only) UpgradeCode from setup.ini and version.iniStephan Bergmann
(See a31f334d36b5735ba6fc8d0f89e834a73bdcc561 "Windows MAR update issues with program/{setup,version}.ini" for why this cleanup is needed.) I couldn't find any traces of any code actually reading that entry from ini-files. (There is some code in setup_native/source/win32/customactions/shellextensions/ calling GetMsiPropertyW with an L"UpgradeCode" argument, but that's something different.) Change-Id: I8ed79e7f7911635c52e1c41f54014b1445c561de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161980 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-22Remove (Windows-only) ProductCode from setup.ini and version.iniStephan Bergmann
(See a31f334d36b5735ba6fc8d0f89e834a73bdcc561 "Windows MAR update issues with program/{setup,version}.ini" for why this cleanup is needed.) There were traces of actually reading that entry from ini-files in commits like 3f01a5e9e4ec757eb26cc056a161fb7832ccd5d6 "INTEGRATION: CWS nativefixer12 (1.2.2); FILE MERGED", d9d86a2d662f38aa0473211fbf3ef2241b1c9c93 "INTEGRATION: CWS nativefixer18 (1.3.2); FILE MERGED", and 2521869690771c7af094520edf92ee8d2c5573a1 "INTEGRATION: CWS native36 (1.7.4); FILE MERGED", but all of them have since been removed with commits like 50c26300e5b5ae9671f18a9e449516604d16105f "Remove lots of dead code", 26c142ca5f2b405b02ab5701dfaeab7bf281a727 "Kill the ancient StarOffice "patch" concept", and e0ea85f61a5914508921b5e73119516219afa158 "we don't build language packs on Windows". (And all of the original code appears to having been related to ancient Windows patch mechanisms.) Change-Id: I552830faf9006bae951fc60e97804abd9de718bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161979 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-22Remove (Windows-only) MsiProductVersion from version.iniStephan Bergmann
(See a31f334d36b5735ba6fc8d0f89e834a73bdcc561 "Windows MAR update issues with program/{setup,version}.ini" for why this cleanup is needed.) The ini-file entry had originally been added with d295757e7ec2cf0f7d83cf903ecb7c115a354bb9 "INTEGRATION: CWS nativefixer11 (1.23.2); FILE MERGED", and setting its value with b993422e59287924d7d85afc75eb9cffc66311db "INTEGRATION: CWS nativefixer11 (1.21.38); FILE MERGED" and 127dd8d32a87cecdc678d4b8288142f65a7a1fc9 "INTEGRATION: CWS nativefixer11 (1.45.2); FILE MERGED", but it doesn't appear to ever have been actually used for anything, other than being recorded in the ini-file. Lets remove it completely for good. Change-Id: I5f0372360416c2c6949ee2d5f0cc7e6babd8ba79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161978 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-11Make create-update-info handle conditional contentStephan Bergmann
That make target operates on an archive, but generates data to be applied to an msi installation, so suffers from any mismatch between archive and msi install sets. Two such mismatches, at least on Windows, are: 1 Files that msi will install outside the LibreOffice installation itself (but which for an archive install set are included under LibreOffice/). This covers (at least) .Net assemblies and associated files that are installed in the GAC (scp2 styles ASSEMBLY and ASSIGNCOMPONENT) and fonts (scp2 style FONT). 2 Files that msi will only install conditionally. This covers optional components (many of which in scp2 are assigned to gid_Module_Optional_... modules) and user interface languages (which in scp2 are assigned to gid_Module_Langpack_... modules). The approach taken here is to create a workdir/installation/LibreOffice/archive/install/metadata file while building an archive install set, and to record any files matching 1 (as "skip" lines) or 2 (as "cond" lines). Then, the create-update-info target uses that metadata file to act accordingly on those files: 1 Files from "skip" lines are simply removed for now from the extracted archive that is passed to Mozilla's make_full_update.sh script. (TODO: That means that changes to such files will not be updated with the MAR update mechanism. This would apparently need some extra processing during the MAR update.) 2 Files from "cond" lines shall be recorded as add-if in the mar file manifest. Mozilla's make_full_update.sh script already has support for emitting add-if vs. plain add, but only for files under distribution/extensions/, which doesn't match our needs. So we generate from the metadata file an ifs file that we pass into the make_full_update.sh script, and patch that script to also take that ifs file into account. (Each line in the ifs file is of the form "testfile" "file" which works as long as none of the pathnames contains double quote characters. The Mozilla script code appears to be confused about the arguments to make_add_instruction(), where this ifs file will be needed: There are calls to make_add_instruction() with two or three arguments across make_full_update.sh and make_incremental_update.sh, but make_add_instruction() checks $1, $2, and $4 (but not $3), so leave that mess alone and pass the ifs file as a global IFSFILE variable instead.) The mar file manifest `add-if "testfile" "file"` adds "file" only if "testfile" is already present, and those two can be different files. TODO: However, for simplicity, for now I always use "file" also as the "testfile" (so that an add-if file only gets updated if it was already present). That avoids having to identify a specific "key file" for each optional component and for each user interface language, where that key file would be used as the add-if testfile. But on the other hand, it means that if an optional component or a user interface language will bring along a completely new file in the future, we will not install that file during a MAR update. What obviously remains to be done is to properly assign each add-if file to a specific key file. (And the current way of identifying add-if files by gid_Module_... names appears to be too simplistic too. For example, there are some gid_Module_Optional_... that are installed unconditionally for msi; but it should be harmless that those files are recorded as add-if rather than as plain add.) Change-Id: I2fdeed92604f3a2d8a0b500b9e3fa421cfb6a9cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161917 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-04Don't mess with UserInstallation setting of --with-package-format=archiveStephan Bergmann
Ever since 9043c50f5e284f00a7eadeab5a3add0417c32227 "INTEGRATION: CWS native62 (1.68.8); FILE MERGED" and its "2006/09/15 14:51:02 is 1.68.8.2: #i67179# new user dir for all simple-package installation sets" archive installation sets had set the UserInstallation bootstrap variable to $ORIGIN/../... instead of the normal $SYSUSERCONFIG/... that is used for other installation set formats. However, I see no good reason for that, and it interferes with my current work of making the --enable-online-update-mar `make create-update-info` work again (which builds a mar file from an archive installation set, so contained a boostrap ini-file with an unexpected UserInstallation value). (I don't know about the "installed" installation set format, which also messes with the UserInstallation setting, so I left that alone.) Change-Id: I3bd1e00771a4149922c3ce4e4d187abd3889b4ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161650 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-02Hard-code --with-online-update-mar-channel=LOOnlineUpdaterStephan Bergmann
(An upcoming change will add an instset/update-settings.ini file containing that value, but using a GeneratedPackage for a single file instead of a directory seems unsupported, so it will use the hard-coded value and a plain Package instead.) Change-Id: I12ffef4db71ce36be9096df674588b39c660e4de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161545 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-12Split --with-update-config=... into many --with-online-update-mar-...=...Stephan Bergmann
...and allow each of them to be left off, for debug purposes, even if that may render the resulting --enable-online-update-mar feature non-functional. This change tracked each item that was potentially read from the --with-update-config ini file, and turned each of them into a new --with-online-update-mar-... option. The only exception and remaining TODO is bin/update/upload_build_config.py (called from Makefile.gbuild). distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf (which might well be dead) set --with-update-config=~/updater.ini with an ini file of unknown content. So that no items are silently missing if we ever resurrect that distro-config, I set all of the new options to =TODO there for now. Change-Id: I17a13e0d190a868436bac10c1b0a6675d8c704c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160622 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-11-10Improve error logging in remove_Files_Without_SourcedirectoryMike Kaganski
Change-Id: I7ed7c08bd57bb5d1b11bc7c029decd571a6758f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159236 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-09-28rpm packaging: don't add /usr/.build-id/* symlinksChristian Lohmaier
the packages are meant to be fully relocatable, having that additional dir makes that more tedious and the files don't add any benefit for packages created via epm - they're meant to support parallel installable debuginfo packages which are not provided by our way of packaging Change-Id: I30284942846bae2f7030884cc15b02507e84e778 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155614 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-06-07Set entitlements in non-release in $(INSTROOTBASE) and .dmg packagePatrick Luby
Also, when building a .dmg for macOS, skip codesigning for non-release builds, both with and without the macOS sandbox, if there is no identity set but set entitlements to allow Xcode's Instruments application to connect to the application. Lastly, add entitlements when building soffice in $(INSTROOTBASE) if this is a non-release build. Change-Id: I764bf5bd5d44e878669c4287906e6efd6aac593f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152655 Tested-by: Jenkins Reviewed-by: Patrick Luby <plubius@neooffice.org>
2023-06-04tdf#71096: xlr filetype not associated with Calc in WindowsJulien Nabet
Change-Id: Ifb9f74f2bd1532ebf364a3d554d303c1209393cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152360 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-02-02capture output of package command and add to log on errorChristian Lohmaier
creating packages failed here and the logs aren't all that helpful without the output of the command that failed. Reason it failed was that macOS thought that a volume with the same name was already mounted (but that didn't show up in Finder). With the output of the command easy to solve by just rebooting to fix that bogus state, but with only "command failed" you question what is different about that specific language, why would packaging that single language fail, … Change-Id: I1f46263f9ec9c9374da5afaa58f6c9939b6a1488 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145239 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-01-27Remove support for AIXStephan Bergmann
As discussed in the mailing list thread starting at <https://lists.freedesktop.org/archives/libreoffice/2023-January/089808.html> "Plan to remove dead C++ UNO bridge implementations (bridges/source/cpp_uno/*)", the bridge implementation at bridges/source/cpp_uno/gcc3_aix_powerpc is apparently dead and should thus be removed. However, that was the only bridge implementation for AIX, which implies that support for the AIX platform as a whole is dead and should thus be removed. Change-Id: I96de3f7f97d4fd770ff78256f0ea435383688be9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146057 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-20tdf#151341 Use lzfse compression instead of bzip2Patrick Luby
Several users reported that copying the LibreOffice.app package in the Finder from a .dmg file compressed with lzfse compression copies the package several times faster than from a .dmg compressed with bzip2 compression. On a mid-2015 Intel MacBook Pro running macOS, copying in the Finder was at least 5 times faster with lzfse than with bzip2. Also, the hdiutil man page as of macOS Monterey 12.6.2 has marked bzip2 as deprecated. lzfse is marked as supported since macOS El Capitan 10.11 so this change appears safe. The one thing that bzip2 has is better compression so a .dmg with bzip2 should be smaller than with lzfse. A .dmg built from a debug build was 262M with bzip2 and 273MB for lzfse. So it appears that lzfse creates .dmg files that are only 4% or 5% larger than bzip2. Change-Id: I61e2a08cede19a5bb8c257d4fa4762168a3a9dc3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144342 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-11-03Do not merge filesarrayref and unixlinksarrayref when filtering out directoriesMike Kaganski
In commit 8c6467a785037309d2a2cec56c8e38cf52da0aee, the code filtering out the directories was creating a new array, that was assigned to the function's inout filesarrayref argument; and that code merged non-directories from both filesarrayref and unixlinksarrayref. This fixes the logic to only filter filesarrayref. Change-Id: Ia00dcd3f645ba2a6c2d8ea0559627ccfe0eb232b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142195 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-11-02Try to fix "ERROR: Directory with flag ISINSTALLLOCATION not set!"Mike Kaganski
This is a regression after my recent changes to Perl code in installer, most likely commit 8c6467a785037309d2a2cec56c8e38cf52da0aee, like seen at https://ci.libreoffice.org/job/lo_daily_tb_win/1213/consoleFull: > ERROR: Failure in installer.pm > ERROR: ERROR: Directory with flag ISINSTALLLOCATION not set! at C:/cygwin/home/tdf/jenkins/daily_workspace/tb/src_master/solenv/bin/modules/installer/windows/directory.pm line 334. I can't repro this problem locally; but as Stephan Bergmann noted, the mentioned commit changed logic so that a piece of code started to only execute for CREATE style, where previously it run always. This tries to re-create the logic prior to the mentioned commit. Change-Id: I01af06d58b26222bee6220cb9be61cf71940930f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142152 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-30'use strict' and 'use warnings' in all installer PerlMike Kaganski
Change-Id: I6068b795a7dfac24651c8e4a100f78dbee11f98b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142044 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-30Fix errors in scriptitems.pm found by 'use strict'Mike Kaganski
Besides some stylistic changes (adding 'my' in due places), this fixes two errors: 1. An omission from commit cb02ea85db6f38b792c17f5f971f81a28b595b4e Date Fri Oct 13 09:36:29 2006 +0000 INTEGRATION: CWS native62 (1.28.42); FILE MERGED not passing '$allvariableshashref' to 'replace_userdir_variable', and so using a local empty variable instead, ignoring custom value of LOCALUSERDIR in *.lst; 2. Use of wrong scalar variable '$alldirectoryhash' instead of hash '%alldirectoryhash' in 'collect_directories_from_filesarray', from commit 8c6467a785037309d2a2cec56c8e38cf52da0aee Date Sat Oct 29 23:38:12 2022 +0300 MSI: fix handling empty directories which resulted in the loss of empty directories found by that call. Change-Id: I126575a51044186bc6c7fdf898942abf71ddb4b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142034 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-30MSI: fix handling empty directoriesMike Kaganski
Such empty directories are added e.g. by setup_native/Package_packinfo.mk when using these configuration: ./autogen.sh --with-external-tar=/cygdrive/c/sources/lo-externalsrc --with-junit=/cygdrive/c/sources/junit-4.10.jar --with-ant-home=/cygdrive/c/sources/apache-ant-1.9.5 --enable-pch --disable-ccache --with-visual-studio=2019 --with-jdk-home="C:\Program Files\Microsoft\jdk-17.0.4.101-hotspot" --with-package-format=msi --with-ucrt-dir=/cygdrive/c/cygwin64/opt/ucrt/ Making after that produced this error: : ***************************************************************** : ERROR: Reading from filehandle failed at C:/sources/core/solenv/bin/modules/installer/windows/file.pm line 967. : ***************************************************************** because it tried to create MD5 hash of a directory. Change-Id: I7d2a6dc989f823fabaca1bef07a68ba964ffe34b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142026 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-18windows packaging: remove unused msp creationChristian Lohmaier
Change-Id: I71903967f89d968d963f66a3e160d6dead7757f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138011 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-08-17Raise hdiutil -megabytes even further for debug buildsStephan Bergmann
My macOS build had started to fail with workdir/installation/LibreOffice/dmg/logging/en-US/log_750_en-US.log stating > Systemcall: cd /Users/stephan/lo/core/workdir/installation/LibreOffice/dmg/install/en-US_inprogress_temp.14524 && hdiutil create -megabytes 2000 -srcfolder LibreOffice_7.5.0.0.alpha0_MacOS_aarch64 /Users/stephan/lo/core/workdir/installation/LibreOffice/dmg/install/en-US_inprogress/LibreOffice_7.5.0.0.alpha0_MacOS_aarch64.dmg -ov -fs HFS+ -volname "LibreOffice" -format UDBZ > ERROR: Could not execute "cd /Users/stephan/lo/core/workdir/installation/LibreOffice/dmg/install/en-US_inprogress_temp.14524 && hdiutil create -megabytes 2000 -srcfolder LibreOffice_7.5.0.0.alpha0_MacOS_aarch64 /Users/stephan/lo/core/workdir/installation/LibreOffice/dmg/install/en-US_inprogress/LibreOffice_7.5.0.0.alpha0_MacOS_aarch64.dmg -ov -fs HFS+ -volname "LibreOffice" -format UDBZ": 256 and which went away again with the increased $megabytes value. Change-Id: I483a8cb06df0720eeb42e6260276e6b52ea2a423 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138406 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-16drop special case for win 64bit download name, use x86-64 consistentlyChristian Lohmaier
"x64" was introduced in 2013 for the 64bit windows packages in efdad0b126abd3c151b545740d0530a0a832d482 for no apparent reason. Change-Id: Ifae4faaeb99b4e8950cc64bb993d29c0a3ff24dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135923 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-06-16fix download-filename for Windows aarch64 buildsChristian Lohmaier
was incorrectly using x64 Change-Id: Ieb7c90c6b1ed3abd73315a15c59490ea639954c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135922 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-01-23change rpm compression algorithm to multi threaded xzAndras Timar
Our baseline is CentOS 7, it's safe to switch to xz that is supported there. Here is my measurement on rpm package build time and package size on a 48 core machine, however 48 cores were never used (8-10 max). Compared to reference w9.gzdio which was used before the patch. Compression Build Package method time % size % w9.gzdio 100% 100% w7T.xzdio 69% 66% w6T.xzdio 62% 67% w5T.xzdio 55% 67% w4T.xzdio 41% 70% w3T.xzdio 31% 73% w2T.xzdio 26% 75% w1T.xzdio 24% 77% Conclusion: we'd like to optimize rather for the build time, therefore w1T.xzdio was picked. The package size was still smaller than the reference size, and the build time was 4x faster (in this measurement 18m16 -> 4m26). That makes a difference. Change-Id: Iabb532628d38a2d5091fa41fd08bfee69007d0ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128800 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-22Make installer compression tool configurableThorsten Behrens
So we can use pigz or other parallelizable tools if available. Shaves off noticeable build time when packaging install sets. - figure out if pigz is available (fallback to gzip otherwise) - pass compression tool down into make_installer - and handle as one of many global options there Change-Id: Ia9d1ea27a9f990874238b6f0be3e1fd30a662ec6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128469 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-11-17tdf#145711: filename may be 1-character, and must not contain path separatorMike Kaganski
Surfaced after 6ea7ca45782a7e1b46e18e994534ec0a7c71951b Change-Id: I4975f51a7a0ca73eccfd17338abc122254b57113 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125338 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-08hdiutil flatten/unflatten was removed in macOS 11Andras Timar
Change-Id: If5a1a70f8a7428d81668704f93fa7a1f45058b68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124825 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
2021-08-07Create destination directory also for non-empty sourcepath directoryEike Rathke
Do not attempt to copy anything. This can happen with instdir/share/extensions being populated from some build (e.g. by dictionaries) but no extension to be installed. The result was ERROR: Can't copy file: /build/core/instdir/share/extensions -> /build/usr/opt/core/lib/libreoffice/share/extensions Is a directory at /build/core/solenv/bin/modules/installer/worker.pm line 350. and the copy() created the destination as 0-length file instead. The recent changes not copying extensions/packages.txt anymore and related may have triggered this: 6c487d2d7e8aa5cdef55cbd7bc78058184671d82 Fix and simplify "any bundled extensions installed" check 626050e86b7d5ca0c3bfc265cc33ce8e9d1bf195 gb_Package_Package must specify a directory f267340d300da6318435ed1b2ae48b9f4275e2c4 Remove unused $(LIBO_SHARE_FOLDER)/extensions/package.txt Change-Id: I93c1b0867bf234255fdef9d31c447b9b20011e17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120164 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-05-27installer-code: remove some unused or pointless subsChristian Lohmaier
of course just the very tip of the iceberg, but you gotta start somewhere… Change-Id: I24ef6a51ec70c70418368da54595637283055d84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116255 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-05-19mac packaging: don't throw away codesign output for langpacksChristian Lohmaier
The change to use backticks to capture the output was already done for the main package in 6c4cb4e7e0afce2989c9fe596fd74a35eece6206, this change now also fixes it for the langpacks Change-Id: I26dcfb56342b9c3fc7b9c93f7d586c5c899b7232 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115808 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-01-27packaging: remove resolve_variables_in_downloadnameChristian Lohmaier
OOODOWNLOADNAME was set in the global section of openoffice.lst, so the code always did set the target path with set_download_filename. Thus remove the superfluous sub and then also the no longer used OOODOWNLOADNAME variables In the same vein: the "script that extracts a tarball that is appended to it" method is no longer in use since many years, delete that as well. Change-Id: I43481a3ec09e064ef77138e1cbfc1dba6854f2d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110017 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-01-25fix packaging of mac builds targeting apple siliconeChristian Lohmaier
the scpactions are what assemble the dmg (add the license & readme folders, the background image and the .DS_Store for alignment/the layout). Adding the AARCH64 statement is necessary to add the architecture to the filename. Change-Id: I0095b8d631cdaa7ce4333fde15dd17d4faf44e8f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109818 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-01-25mac packaging: capture output of signing callChristian Lohmaier
by replacing system() call with backticks operator, since now the macosx-codesign-app-bundle script doesn't redirect the output to temp-files anymore (see e2fcbac50549ca96b092d64bd14a37cee6b12e0a) That way the output can be added to the log in case of failure. Change-Id: I954cbb2ed28cfe0f7e1e8ebc8f21aeb1711a4d9a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109816 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-01-18mac: don't put script files into Contents/MacOS or framework-bin directoryChristian Lohmaier
Signing them as executable code would require external attributes, and those in turn break packaging into hfs+ dmg when building on apfs with Big Sur. It is not a new thing - the old Code Signing in Depth technote https://developer.apple.com/library/archive/technotes/tn2206/_index.html already reads: "Store Python, Perl, shell, and other script files and other non-Mach-O executables in your app's Contents/Resources directory. While it's possible to sign such executables and store them in Contents/MacOS, this is not recommended. […] Put another way, a properly-signed app that has all of its files in the correct places will not contain any signatures stored as extended attributes." The patch does exactly that for LO and the shipped python framework and adds symlinks for the moved files. Same applies for the Language pack applescript and the tarball - those are also moved into Contents/Resources Change-Id: Iab21e77b73f941248ca89c6e80703fdf67a1057c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109537 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-12-15remove extra space in version number in rpm/deb package infoAndras Timar
e.g. Instead of "Base module for LibreOffice 7.0 .3.1" we will get "Base module for LibreOffice 7.0.3.1". Change-Id: I9ce56b33f835a9527f777cfb9c0e466232e6f24f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105449 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-09-24Only read msi database for msi package formatMike Kaganski
Change-Id: I31f1b1aae3b89a58c33f58a76e32bf171f344012 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103293 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 7e610406a2d063ba5efacb0e186524c2a4ed77a9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103203 Tested-by: Jenkins
2020-09-05Avoid warnings about use of uninitialized valueMike Kaganski
Like these: Use of uninitialized value $feature{"Description"} in substitution (s///) at C:/lo/src/core/solenv/bin/modules/installer/windows/feature.pm line 362. Use of uninitialized value $feature{"Title"} in concatenation (.) or string at C:/lo/src/core/solenv/bin/modules/installer/windows/feature.pm line 370. Use of uninitialized value $feature{"Description"} in concatenation (.) or string at C:/lo/src/core/solenv/bin/modules/installer/windows/feature.pm line 370. gm_o_OGLTrans has no Title nor Description Change-Id: Ica247e071f252023e4cdec6f8ff15f0e0d3cedd5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102059 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-09-04Avoid warnings about use of uninitialized valueMike Kaganski
Use of uninitialized value $microversion in int at C:/lo/src/core/solenv/bin/modules/installer/windows/file.pm line 568. Use of uninitialized value $vervariant in int at C:/lo/src/core/solenv/bin/modules/installer/windows/file.pm line 568. Change-Id: I916861a34d39a796d2941f9a8d972e7a082e3b22 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102058 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-09-04Avoid warnings about use of uninitialized valueMike Kaganski
Like these: Use of uninitialized value in exists at C:/lo/src/core/solenv/bin/modules/installer/scriptitems.pm line 402. Debugging the failing values, these are: element 113 Dir => gid_Dir_Autotext_Language HostName => LibreOfficeDev 7/share/autotext/qtz modules => gid_Module_Langpack_Basis_qtz specificlanguage => qtz Styles => (CREATE) element 512 Dir => gid_Brand_Dir_Share_Uno_Packages HostName => LibreOfficeDev 7/share/uno_packages modules => gid_Module_Root,gid_Module_Root_Brand specificlanguage => Styles => (CREATE) element 513 Dir => gid_Brand_Dir_Share_Uno_Packages_Cache HostName => LibreOfficeDev 7/share/uno_packages/cache modules => gid_Module_Root,gid_Module_Root_Brand specificlanguage => Styles => (CREATE) element 514 Dir => gid_Brand_Dir_Share_Uno_Packages_Cache_Uno_Packages HostName => LibreOfficeDev 7/share/uno_packages/cache/uno_packages modules => gid_Module_Root specificlanguage => Styles => (CREATE) Change-Id: I9c91e2fa9bbaab4c15e96dbbdc710141e500c482 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102053 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>