... in InstallUISequense.
Use --with-vcredist-dir to point to a directory with vc_redist.x64.exe
and/or vc_redist.x86.exe. Use --without-vcredist-dir (or
--with-vcredist-dir=no) if you don't want to ship it as part of
installer and want to silence the configure warning.
VCRedist 2015 version 14.0.24215.1 is available at
https://www.microsoft.com/en-us/download/details.aspx?id=53840
Since VisualStudio 2015, VC redist merge module that we used before
started to work differently: it installs the UCRT only on WinXP,
but not on later OSes (Vista to 8.1) which may lack the UCRT (Win10
has it out of the box). The merge module only installs VCRuntime on
those systems, which still leaves us with "api-ms-*.dll is missing"
problem.
(https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/
gives more information on VCRedist refactoring background.)
Since commit 71d9a61302, we use a
workaround described at the page mentioned above as "App-local
deployment of the Universal CRT". We just copy all UCRT DLLs to
LibreOffice/program. This has a drawback though, that our UCRT
is not updated by Windows Update, so users would rely on LibreOffice
updates in case of some vulnerabilities in UCRT (and they could
even not realize they have that problem).
MS recommends to install UCRT using EXEs they provide from their
site. The EXEs install both VCRuntimes and UCRTs, along with
required patches, for all Windows versions (Windows XP through
Windows 10, where they only install VCRuntimes); the installed
libraries are managed by system's update mechanism. But those EXEs
cannot be used in MSI custom actions inside InstallExecuteSequence,
because they use MSI themselves.
So this patch integrates the vc_redist.xXX.exe into MSI binary
table, and uses custom action to run the EXE after ExecuteAction
in InstallUISequence. This will show the user a VCRedist install
window after the main LibreOffice installation finishes; no user
interaction is required (except for one additional UAC request),
and errors are ignored.
Since this installation takes care of both VCRuntime and UCRT,
we can ultimately drop both the app-local workaround, and
vcredist merge module (so VCRuntime would also be updated by
system). The former is done here: this reverts commit
71d9a61302.
This approach has its drawback: if one wants to use unattended
installation (without UI; one example is deployment using
ActiveDirectory GPO), then InstallUISequence is not run, and so
VCRedist isn't installed. In this case, one should install
VCRedist separately. Supposedly this should not be huge problem,
because this is the case for many existing applications that need
separate VCRedist deployment in these scenarios, and unattended
installation is advanced stuff that requires prepared user. A
notice would be required in release notes and FAQ, though.
Change-Id: Ia6a16be60af8a08f41ea7c3dbd457d8f89006006
Reviewed-on: https://gerrit.libreoffice.org/46356
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
VersionNT is now always greated than 600 (only needs checking in version
checking action). ISSETUPDRIVEN and ISSCHEDULEREBOOT are specific to
InstallShield and aren't relevant to LibreOffice installer.
Change-Id: I6cb769c863e09f1568ae895a6cfbb0e5940c2486
Reviewed-on: https://gerrit.libreoffice.org/46434
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* all .ui files go from <interface> to <interface domain="MODULE"> e.g. vcl
* all .src files go away and the english source strings folded into the .hrc as NC_("context", "source string")
* ResMgr is dropped in favour of std::locale imbued by boost::locale::generator pointed at matching
MODULE .mo files
* UIConfig translations are folded into the module .mo, so e.g. UIConfig_cui
goes from l10n target to normal one, so the res/lang.zips of UI files go away
* translation via Translation::get(hrc-define-key, imbued-std::locale)
* python can now be translated with its inbuilt gettext support (we keep the name strings.hrc there
to keep finding the .hrc file uniform) so magic numbers can go away there
* java and starbasic components can be translated via the pre-existing css.resource.StringResourceWithLocation
mechanism
* en-US res files go away, their strings are now the .hrc keys in the source code
* remaining .res files are replaced by .mo files
* in .res/.ui-lang-zip files, the old scheme missing translations of strings
results in inserting the english original so something can be found, now the
standard fallback of using the english original from the source key is used, so
partial translations shrink dramatically in size
* extract .hrc strings with hrcex which backs onto
xgettext -C --add-comments --keyword=NC_:1c,2 --from-code=UTF-8 --no-wrap
* extract .ui strings with uiex which backs onto
xgettext --add-comments --no-wrap
* qtz for gettext translations is generated at runtime as ascii-ified crc32 of
content + "|" + msgid
* [API CHANGE] remove deprecated binary .res resouce loader related uno apis
com::sun::star::resource::OfficeResourceLoader
com::sun::star::resource::XResourceBundleLoader
com::sun::star::resource::XResourceBundle
when translating strings via uno apis
com.sun.star.resource.StringResourceWithLocation
can continue to be used
Change-Id: Ia2594a2672b7301d9c3421fdf31b6cfe7f3f8d0a
USERDIRPRODUCTVERSION is stuck at 4 now (as its main use is for the version
number of the UserInstallation directory), so use LIBO_VERSION_MAJOR instead
(like generation of the version ini-file counterpart for instdir/ does in
instsetoo_native/CustomTarget_setup.mk).
Change-Id: Ib87536d335487383940cff2f69c864a33f05bbee
Reviewed-on: https://gerrit.libreoffice.org/35301
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
This reverts commit 1cb1cc30b5.
Setup.ico contains of three different image sizes. Furthermore, the design is not applied to the other setup icons (partial, complete). And please discuss proposal first.
Change-Id: I3cc9ad3424f85c812ae89939cabaddf38e3c41b3
Reviewed-on: https://gerrit.libreoffice.org/32751
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Heiko Tietze <tietze.heiko@googlemail.com>
Adaptions to UI, added more modes what the user
can do in SafeMode. Adapted locations to write
pack information and added places where to enter
SafeMode. Implemented basically all five
possible user choices
Change-Id: Ic5324a8f77ab434309e840949c3803e65a75c538
Reviewed-on: https://gerrit.libreoffice.org/29785
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Saving configuration is now extended to three
basic modes, from just saving registrymodifiications
to adding user-defined config stuff to saving all
information in the user profile, additionally
configuration information for Extensions is saved.
Added configuration entries for this and tested
saving/restoring.
Change-Id: I79b09c37617803bf656826f76a7e3db79cda49ac
Reviewed-on: https://gerrit.libreoffice.org/29770
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Added default values for SecureUserConfig values
to soffice.ini/rc which enable the mechanism,
enable by default and set a maximum of three backups
file in packed form. Added more handy flag for easy
decision to add compressed/uncompressed.
Change-Id: I5a624c09fec4e4278314e13fc5f693ac085d5e61
The goal is to allow installer to automatically close and restart closed
applications, and thus diminish users frustration when they don't know
how to close explorer.exe, or how to start it again and bring desktop back.
Reference: https://msdn.microsoft.com/en-us/library/windows/desktop/aa370379
Notes:
* A dialog MsiRMFilesInUse must be present in MSI.
* It will only be used when operating system's Windows Installer version
is >=4.0, and OS is Vista or newer. If system's Windows Installer is older,
then current FilesInUse dialog will be used.
* MSIRESTARTMANAGERCONTROL property has default value of 0, that enables
installer to use the Restart Manager. It is explicitly set in MSI just in case.
* Do not use Restart Manager and do reboot is selected by default.
Change-Id: If9d8be7cb478d81db03485ee912991ae9d568ed8
Reviewed-on: https://gerrit.libreoffice.org/28171
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Failing to do this caused a mysterious uncaught exception in gengal,
with no explanation printed. This turned out to be caused by the
'CONFIGURATION_LAYERS: missing ":"' exception thrown in configmgr,
which was caused by the unencoded space confusing the parsing of the
CONFIGURATION_LAYERS thing.
Change-Id: I9c91819906c2e0dd434d9f96a04bc14c0e0408ed
The new option thoroughly replaces the product name mentioned in the
AC_INIT() call. Work in progress.
Also take care of spaces in the product name in a more systematic
fashion.
This should affect mainly OS X where the final app bundle that is
installed should use the product name as such, including spaces, if
any. However, our build system does not cope that well with having an
app bundle with spaces in it in instdir. So in instdir, and also in
test-install, spaces are stripped away from the product name when used
as part of the app bundle name.
Change-Id: Ic16b5039f23c96a4f39387a1869faeb25e05aafb
This reverts commit 795c61e052.
<sberg_> but what is 795c61e052
supposed to help anyway? on all platforms, gengal should already get
URE_BOOTSTRAP set, either via redirectrc, or via
extendApplicationEnvironment()
<mst_> sberg_: so ... you mean that gengal.rc is actually unnecessary,
and that the problem was caused by a missing dep on
Package_instsetoo_native_setup ?
<sberg_> I'm pretty sure a missing gengal ini-file was a red herring
Change-Id: I50ebc360e0e5c75c16f8407cbac6a54753fca272
Reviewed-on: https://gerrit.libreoffice.org/20226
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
So "grep -v" returns != 0, if your input or output file is empty.
which breaks the Jenkins build, because Jenkins runs scripts with
-xe per default.
The "strip comments" grep currently fails for the empty file
instsetoo_native/inc_openoffice/windows/msi_templates/components.txt
Change-Id: I53a477702dbcc3c00c4a23263c3b402cb936250a
...to eventually support writing to dconf (see TODO).
Even when writing somewhere else, it may still be useful to read from the
current "user:" location, so a new convention was introduced to
CONFIGURATION_LAYERS types that support write-back:
- A leading "!" indicates that the layer is indeed used for write-back (probably
in addition to reading from it). For backwards compatibility (when users use
own settings of CONFIGURATION_LAYERS, instead of depending on the value in the
shipped fundamental ini-file), no prefix on the "user:" is now interpreted the
same as a "!" prefix.
- A leading "*" indicates that the layer is not used for write-back (but only
for reading from it).
Change-Id: I399cc7bfe927db50586834f9630c184aaa2153f2
...after 097292feab "Add HKEY_CURRENT_USER
registry integration" added "winuserreg:".
Even though changing from the exisiting "winreg:" to "winreg:LOCAL_MACHINE"
should be compatible, as it only ends up in fundamental.ini included in the LO
inst set, play it safe it keep treating "winreg" the same as
"winreg:LOCAL_MACHINE".
("url" is a misnomer now in configmgr's Components ctor, and should eventually
be renamed to something more accurate.)
Change-Id: Ifbcf3284d904490891642599468470d03547f92a
Reviewed-on: https://gerrit.libreoffice.org/17891
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>