summaryrefslogtreecommitdiffstats
path: root/msicreator/create_installer.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
commit267c6f2ac71f92999e969232431ba04678e7437e (patch)
tree358c9467650e1d0a1d7227a21dac2e3d08b622b2 /msicreator/create_installer.py
parentInitial commit. (diff)
downloadlibreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz
libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'msicreator/create_installer.py')
-rw-r--r--msicreator/create_installer.py84
1 files changed, 84 insertions, 0 deletions
diff --git a/msicreator/create_installer.py b/msicreator/create_installer.py
new file mode 100644
index 0000000000..01394a48c4
--- /dev/null
+++ b/msicreator/create_installer.py
@@ -0,0 +1,84 @@
+import os, sys
+from shutil import copytree, copy2, move, rmtree
+import json
+import createmsi
+
+build_dir = sys.argv[1]
+src_dir = sys.argv[2]
+creator_dir = os.path.join(build_dir, 'workdir/installation/MSICreatorLO')
+
+def prepare_project_dir():
+ instdir = os.path.join(build_dir, 'instdir')
+ fonts_dir = os.path.join(instdir, 'share/fonts')
+ new_fonts_dir = os.path.join(creator_dir, 'libo-fonts/share/fonts')
+ main_dir = os.path.join(creator_dir, 'main')
+ src_uninstaller_icon = os.path.join(src_dir, 'icon-themes/colibre/res/mainapp_48_8.png')
+ src_ui_banner = os.path.join(src_dir, 'instsetoo_native/inc_common/windows/msi_templates/Binary/Banner.bmp')
+ src_ui_background = os.path.join(src_dir, 'instsetoo_native/inc_common/windows/msi_templates/Binary/Image_2.bmp')
+ graphics_dir = os.path.join(creator_dir, 'graphics')
+ sdk_dir = os.path.join(creator_dir, 'main/sdk')
+ try:
+ move(fonts_dir, new_fonts_dir)
+ copytree(instdir, main_dir, dirs_exist_ok=True)
+ copy2(src_uninstaller_icon, creator_dir)
+ os.mkdir(graphics_dir)
+ copy2(src_ui_banner, graphics_dir)
+ copy2(src_ui_background, graphics_dir)
+ rmtree(sdk_dir)
+ except FileExistsError as err:
+ print(err)
+
+def create_creator_json():
+ lo_version = sys.argv[3]
+ lo_name = sys.argv[4]
+ uninstaller_icon = 'mainapp_48_8.png'
+ lo_dictionary = {
+ "upgrade_guid": "6f05ed48-a735-4155-ab60-e4cc98455262",
+ "version": lo_version,
+ "product_name": lo_name,
+ "manufacturer": "The Document Foundation",
+ "name": lo_name,
+ "name_base": lo_name,
+ "comments": "Testing a libo installer",
+ "installdir": "LibreOffice Test",
+ "startmenu_shortcut": "program/soffice.exe",
+ "desktop_shortcut": "program/soffice.exe",
+ "addremove_icon": uninstaller_icon,
+ "major_upgrade": {
+ "AllowDowngrades": "yes",
+ "IgnoreRemoveFailure": "yes"
+ },
+ "graphics": {
+ "banner": "graphics/Banner.bmp",
+ "background": "graphics/Image_2.bmp"
+ },
+ "parts": [
+ {
+ "id": "libreoffice",
+ "title": "The LibreOffice Suite",
+ "description": "This is a test for the LibreOffice installer",
+ "absent": "disallow",
+ "staged_dir": "main"
+ },
+ {
+ "id": "libreofficefonts",
+ "title": "The LibreOffice Fonts ",
+ "description": "This is a test for the LibreOffice Fonts",
+ "absent": "allow",
+ "staged_dir": "libo-fonts"
+ }
+ ]
+ }
+
+ lo_object = json.dumps(lo_dictionary, indent=4)
+ with open(os.path.join(creator_dir, 'lo.json'), 'w') as lo_json:
+ lo_json.write(lo_object)
+
+def generate_installer():
+ os.chdir(creator_dir)
+ createmsi.run(['lo.json'])
+
+if __name__ == '__main__':
+ prepare_project_dir()
+ create_creator_json()
+ generate_installer()