958a055be8
To get the MOZ_MAINTENANCE_SERVICE mode going at all, update.status needs to contain a "pending-service" token. For Mozilla, code in its toolkit/mozapps/update/UpdateService.sys.mjs takes care of writing that. For us, lets always write that in update_checker() (even on Linux, where it's apparently harmless). Then, the MOZ_MAINTENANCE_SERVICE code is rather picky with its various sanity checks: Among other things, it expects argv[0] to be a full path to the updater executable, and it expects the update.mar (and its status and log files) to be in a directory hierarchy named updates/0/ rather than patch/. So get all that fixed in desktop/source/app/updater.cxx. And patch in external/onlineupdate/lo.patch where it expects to find the updater executable (just updater.exe vs. our program/updater.exe). And we shouldn't interfere with the upstream Mozilla maintenance service, so also rename that in external/onlineupdate/lo.patch. And `update_service install` wants to read version resources from the update_service.exe, so provide that (via gb_Executable_add_default_nativeres). Also, `update_service install` wants to read a MozillaMaintenanceDescription value from an updater.ini, so provide one (with contents of that value inspired by Mozilla's browser/locales/en-US/updater/updater.ini). As we now have an updater.ini anyway (and which apparently works fine with Unix line ends on both Linux and Windows), also use it on Linux and drop the onlineupdate/source/update/updater/progressui_gtk.cpp again from external/onlineupdate/lo.patch. And update external/onlineupdate/README.md how to manually execute that test against an updater.ini. Change-Id: I0e3e5e5311be61e1224cda700af2e5d751113a99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160996 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
83 lines
2.9 KiB
Makefile
83 lines
2.9 KiB
Makefile
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
|
|
$(eval $(call gb_Executable_Executable,update_service))
|
|
|
|
$(eval $(call gb_Executable_use_unpacked,update_service,onlineupdate))
|
|
|
|
$(eval $(call gb_Executable_set_targettype_gui,update_service,YES))
|
|
|
|
$(eval $(call gb_Executable_set_include,update_service,\
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/onlineupdate/inc \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/onlineupdate/source/libmar/src/ \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/onlineupdate/source/libmar/verify/ \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/onlineupdate/source/libmar/sign/ \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/onlineupdate/source/update/common/ \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/include/onlineupdate \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/include \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/toolkit/mozapps/update/common \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/toolkit/xre \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/xpcom/base \
|
|
-I$(call gb_UnpackedTarball_get_dir,onlineupdate)/xpcom/string \
|
|
$$(INCLUDE) \
|
|
))
|
|
|
|
$(eval $(call gb_Executable_use_static_libraries,update_service,\
|
|
updatehelper \
|
|
windows_process \
|
|
))
|
|
|
|
$(eval $(call gb_Executable_add_libs,update_service,\
|
|
ws2_32.lib \
|
|
Crypt32.lib \
|
|
shell32.lib \
|
|
wintrust.lib \
|
|
version.lib \
|
|
wtsapi32.lib \
|
|
userenv.lib \
|
|
shlwapi.lib \
|
|
ole32.lib \
|
|
rpcrt4.lib \
|
|
comctl32.lib \
|
|
shlwapi.lib \
|
|
kernel32.lib \
|
|
advapi32.lib \
|
|
))
|
|
|
|
$(eval $(call gb_Executable_add_ldflags,update_service,\
|
|
/ENTRY:wmainCRTStartup \
|
|
))
|
|
|
|
$(eval $(call gb_Executable_set_generated_cxx_suffix,update_service,cpp))
|
|
|
|
$(eval $(call gb_Executable_add_generated_exception_objects,update_service,\
|
|
UnpackedTarball/onlineupdate/onlineupdate/source/service/maintenanceservice \
|
|
UnpackedTarball/onlineupdate/onlineupdate/source/service/servicebase \
|
|
UnpackedTarball/onlineupdate/onlineupdate/source/service/serviceinstall \
|
|
UnpackedTarball/onlineupdate/onlineupdate/source/service/workmonitor \
|
|
))
|
|
|
|
$(eval $(call gb_Executable_add_cxxflags,update_service,-Zc:strictStrings-))
|
|
|
|
$(eval $(call gb_Executable_add_defs,update_service, \
|
|
-DMOZ_MAINTENANCE_SERVICE \
|
|
-DNS_NO_XPCOM \
|
|
-DUNICODE \
|
|
-DXP_WIN \
|
|
$(if $(filter AARCH64 INTEL X86_64,$(CPUNAME)),-D__BYTE_ORDER__=1234) \
|
|
-D__ORDER_BIG_ENDIAN__=4321 \
|
|
-D__ORDER_LITTLE_ENDIAN__=1234 \
|
|
-U_WIN32_WINNT \
|
|
))
|
|
|
|
$(eval $(call gb_Executable_set_warnings_disabled,update_service))
|
|
|
|
$(eval $(call gb_Executable_add_default_nativeres,update_service))
|
|
|
|
# vim:set shiftwidth=4 tabstop=4 noexpandtab: */
|