VirtualBox

Changeset 107005 in vbox for trunk/src/VBox/Installer/win


Ignore:
Timestamp:
Nov 14, 2024 3:51:06 PM (2 months ago)
Author:
vboxsync
Message:

Installer/win/Makefile.kmk: Workaround for broken compression control. Problem was that we are now using VirtualBox_en_US.wixlib for all languages instead of the language speicfic ones, so everyone got the same Media attributes as en_US, i.e. the high compression setting. Workaround is to not set it on the Media element but specify the default on the command line. (This means we're currently compressing common.cab on arm, but will get to that later. Perhaps.) jiraref:VBP-1442

Location:
trunk/src/VBox/Installer/win
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/win/Makefile.kmk

    r107004 r107005  
    477477
    478478# Note! Keep the list sorted for easier lookup.
    479 VBOX_WIN_INST_ENV_FIXED := \
     479VBOX_WIN_INST_ENV := \
    480480        -E 'KBUILD_TARGET_ARCH=$(KBUILD_TARGET_ARCH)' \
    481481        -E 'KBUILD_TYPE=$(KBUILD_TYPE)' \
     
    551551        -E 'VBOX_WITH_WEBSERVICES=$(if $(VBOX_WITH_WEBSERVICES),yes,no)'
    552552
    553 # The bits that depends on $(lang) + the expand once stuff above.
    554 VBOX_WIN_INST_ENV = $(VBOX_WIN_INST_ENV_FIXED) \
    555         -E 'VBOX_CAB_COMPRESSION_LEVEL_COMMON=$(if-expr $(lang) == "en_US" && $(KBUILD_TARGET_ARCH) == "amd64",$(VBOX_CAB_COMPRESSION_LEVEL),none)' \
    556         -E 'VBOX_CAB_COMPRESSION_LEVEL=$(if-expr $(lang) == "en_US",$(VBOX_CAB_COMPRESSION_LEVEL),none)'
    557 
    558553#
    559554# Building the main installer (en_US).
     
    585580        kmk_time $$(REDIRECT_EXT) $(VBOX_WIN_INST_ENV) -E WIX_TEMP='$$(subst /,\,$$(@D))' \
    586581                -- $(VBOX_TOOLS_WIN_WIX_BIN) build \
     582                -defaultcompressionlevel high \
    587583                -intermediatefolder $$(@D)/wix-temp/ \
    588584                -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \
     
    644640        kmk_time $$(REDIRECT_EXT) $(VBOX_WIN_INST_ENV) -E WIX_TEMP='$$(subst /,\,$$(@D))' \
    645641                -- $(VBOX_TOOLS_WIN_WIX_BIN) build \
     642                -defaultcompressionlevel high \
    646643                -intermediatefolder $$(@D)/wix-temp/ \
    647644                -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \
     
    738735                -- \
    739736                $(VBOX_TOOLS_WIN_WIX_BIN) build $(filter-out $(VBOX_VERSION_STAMP),$$<) \
     737                        -defaultcompressionlevel $(if-expr "$(lang)" == "en_US",high,none) \
    740738                        -intermediatefolder $$(@D)/wix-temp/ \
    741739                        $(VBOX_TOOLS_WIN_WIX_EXT) \
     
    746744  # doing the repacking via the shell scripts.
    747745        $(CP) $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib $(VBOX_WIN_INST_REPACK_DIR)/
    748 
    749746 endif
    750747        $(RM) -Rf -- $$(@D)/wix-temp/
     
    753750endef
    754751
     752## @todo We generate rules for all the languages here, but only the en_US one is actually used.
     753## This used to mess up the compression optimizations, since the compression level used to be
     754## part of the Media tag in the VirtualBox_en_US.wixlib file. Omitting it and using the command
     755## line option -defaultcompressionlevel for controlling it works around this.
    755756$(foreach lang,$(VBOX_INSTALLER_LANGUAGES),\
    756757        $(eval $(def_vbox_build_wixlib)))
     
    785786                -- \
    786787                $(VBOX_TOOLS_WIN_WIX_BIN) build $(filter-out $(VBOX_VERSION_STAMP),$$<) \
     788                        -defaultcompressionlevel high \
    787789                        -intermediatefolder $$(@D)/wix-temp/ \
    788790                        $(VBOX_TOOLS_WIN_WIX_EXT) \
     
    929931        $(call MSG_L1,Creating language diff for $(lang))
    930932        kmk_time $$(REDIRECT_EXT) -E WIX_TEMP='$$(subst /,\,$$(@D))' $(VBOX_WIN_INST_ENV) \
    931                 -E 'VBOX_CAB_COMPRESSION_LEVEL=none' \
    932                 -E 'VBOX_CAB_COMPRESSION_LEVEL_COMMON=none' \
    933933                -- $(VBOX_TOOLS_WIN_WIX_BIN) build \
     934                -defaultcompressionlevel none \
    934935                -intermediatefolder $$(@D)/wix-temp/ \
    935936                -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \
     
    938939                -ext $(VBOX_TOOLS_WIN_WIXEXT_DIR)/WixToolset.Util.wixext.dll \
    939940                -pdbtype none \
    940                 -defaultcompressionlevel none \
    941941                -out $$(@D)/$(PACKAGE_NAME_LANG)_$(lang).msi
    942942        $(REDIRECT) -C $$(@D) -- $$(VBOX_PATH_MSITRAN) -g $$< $(PACKAGE_NAME_LANG)_$(lang).msi $(lang).mst
  • trunk/src/VBox/Installer/win/VirtualBox.wxs

    r106986 r107005  
    152152             -rw-rw-rw-  1 bird 0 135 874 578 2016-09-25 03:47 VirtualBox-5.1.51-r110887_en_US.msi
    153153
    154         We set the level in the VBOX_CAB_COMPRESSION_LEVEL and VBOX_CAB_COMPRESSION_LEVEL_COMMON
    155         environment variables so we don't waste time compressing and decompressing the intermediate
    156         language MSIs and the common.cab that we're not going to use (x86).
     154        We use the -defaultcompressionlevel command line option to control this.
    157155    -->
    158     <Media Id="1" Cabinet="product.cab" EmbedCab="yes" CompressionLevel="$(env.VBOX_CAB_COMPRESSION_LEVEL)" />
     156    <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
    159157<?if $(env.VBOX_WITH_MSM_INSTALL) = "no" ?>
    160158    <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
    161         <Media Id="2" Cabinet="common.cab" EmbedCab="no" CompressionLevel="$(env.VBOX_CAB_COMPRESSION_LEVEL_COMMON)" />
     159        <Media Id="2" Cabinet="common.cab" EmbedCab="no" />
    162160    <?endif?>
    163161<?endif?>
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette