summaryrefslogtreecommitdiff
path: root/onlineupdate/Executable_updater.mk
AgeCommit message (Collapse)Author
2023-12-15Turn onlineupdate into external/onlineupdateStephan Bergmann
...and update to latest Mozilla sources. Originally, this was a non-external onlineupdate module (plus correspsonding top-level include/onlineupdate/ directory) that apparently contained sources originally copied from Mozilla and subsequently modified in-place (plus, mixed in, presumably some sources that were not copied from Mozilla but were our own inventions). To clean up this mess, this has been turned into a proper external/onlineupdate module with a tarball containing the pristine external Mozilla sources. The sources for the onlineupdate-c003be8b9727672e7d30972983b375f4c200233f.tar.xz tarball are taken, somewhat arbitrarily, from a recent <https://github.com/mozilla/gecko-dev/commit/c003be8b9727672e7d30972983b375f4c200233f> ("Bug 1867784 - Force reflow all kids in the last column balancing reflow. r=layout-reviewers,dholbert") trunk state, by running `external/onlineupdate/generate-sources.sh ~/github.com/mozilla/gecko-dev` on a Fedora 39 machine. The layout of the tarball still mostly follows the old onlineupdate/ layout, even if that deviates heavily from the actual source layout at <https://github.com/mozilla/gecko-dev/>. (And some files, which apparently are not needed, anyway, lacked sources, see the "Missing source for" in external/onlineupdate/generate-sources.sh. And win_dirent.h/.cpp has meanwhile been superseded by updateutils_win.h/.cpp.) Merely newly included source files are laid out in the tarball according to the actual source layout. Any LO-specific modifications are made via patch files (rather than modifying the sources inline, as was done in the past): external/onlineupdate/lo.patch contains whatever modifications are needed to adapt the functionality, while external/onlineupdate/gtk3deprecated.patch fixes > workdir/UnpackedTarball/onlineupdate/onlineupdate/source/update/updater/progressui_gtk.cpp:97:21: error: use of undeclared identifier 'gtk_vbox_new'; did you mean 'gtk_box_new'? > 97 | GtkWidget* vbox = gtk_vbox_new(TRUE, 6); > | ^~~~~~~~~~~~ > | gtk_box_new to not use the deprecated gtk_vbox_new, which is hidden because we include -DGTK_DISABLE_DEPRECATED in our GTK3_CFLAGS as per our configure.ac. On Windows, the definition of __BYTE_ORDER__ etc. is needed because workdir/UnpackedTarball/onlineupdate/include/mozilla/ says "Our supported compilers provide architecture-independent macros for this", but MSVC doesn't actually, so define here what would implicitly be defined by GCC. Similarly, on Windows -U_WIN32_WINNT is needed to undo -D_WIN32_WINNT=0x0601 in solenv/gbuild/platform/windows.mk, which would cause > workdir\UnpackedTarball\onlineupdate\include\mozilla/WinHeaderOnlyUtils.h(537): error C2065: 'FILE_ID_INFO': undeclared identifier etc., despite the #include <windws.h> there. Curiously, the original gb_CustomTarget_CustomTarget,onlineupdate/generated from onlineupdate/CustomTarget_generated.mk had to be renamed to gb_CustomTarget_CustomTarget,external/onlineupdate/generated when the file was moved to external/onlineupdate/CustomTarget_generated.mk, as otherwise a top-level `make CustomTarget_onlineupdate/generated` would have failed with "No rule to make target..." Also, as there is no gb_CustomTarget_use_unpacked, its effect has been poorly mimicked for now in external/onlineupdate/CustomTarget_generated.mk. Similarly, as there is no gb_WinResTarget_use_unpacked, its effect has been poorly mimicked for now in external/onlineupdate/WinResTarget_updater.mk. The original onlineupdate/workben/test_dialog.cxx, which is actually code written by us, has been moved to external/onlineupdate/workben/test_dialog.cxx. The original onlineupdate/qa/ sources (which were apparently not used during the build) have been preserved for now as external/onlineupdate/qa/, for documentation purposes. The original onlineupdate/astyle.options (which was apparently not used during the build) has been removed. Change-Id: I5ea606202e7837269e7b128e45af2f0b8c277f9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160492 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-08Fix --enable-online-update-mar on WindowsStephan Bergmann
The code had apparently rotten a bit, * a wchar_t vs. char16_t confusion in desktop/source/app/updater.cxx * code broken by 926e4e469d0285ee72f8da80f00370b4b3120417 "Rename online updater functions and strcmp relpath" in onlineupdate/source/update/updater/updater.cxx * -DUNICODE missing in some places (so that plain Windows functions resolve to the ...W variant), which had been set centrally in the past IIRC * silencing some warnings like "C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data" (where silencing is the right thing to do for effectively extern code); no sure why those apparently didn't hit in the past, maybe it is all warnings that compilers only started to emit in recent years, or only for recent -std:c++... modes * silencing some "Conversion from string literal loses const qualifier" errors with -Zc:strictStrings-; these hit at least with recent VS 2022 Preview and --with-latest-c++, where -Zc:strictStrings is apparently now on by default Change-Id: I7fe46f5aa2b42fc9c03f24f7f0236512b4d3b936 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2019-09-30drop gtk2 supportCaolán McNamara
Change-Id: Ie838cabfecfef7e3225c1555536d5c9cf3b43f15 Reviewed-on: https://gerrit.libreoffice.org/77405 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-25Cut down on -pthread/-lpthread proliferationStephan Bergmann
Building against libstdc++ effectively always requires -pthread anyway (as various standard C++ headers require it, see the comment added to solenv/gbuild/platform/unxgcc.mk), so many explicit uses of -pthread/-lpthread can be removed. Doing a (partial) test build on Linux with Clang -stdlib=libc++ suggests that libc++ indeed doesn't need -pthread as libstdc++ does. The remaining uses of -pthread/-lpthread are mostly in configure.ac for the various BSDs (which somebody else might want to clean up now), and related to external projects. I tried to be careful to remove -pthread/-lpthread from makefiles only when C++ object files are involved (so -pthread will now be included on the link command line by default). Change-Id: I936e082839cb9a434bd273ce5a1f187a4245dfa1 Reviewed-on: https://gerrit.libreoffice.org/71291 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-04-04Drop UNICODE/_UNICODE definesMike Kaganski
The code is using expicit (mostly W) Windows API, and is independent from the macro. Removing it here allows to catch places where some UNICODE-dependent macro is used unintentionally. Change-Id: I5dff40aecfc3c3dc7fc4cf7271a995a675943a45 Reviewed-on: https://gerrit.libreoffice.org/70237 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2017-08-22updater: get the updater GUI working on LinuxMarkus Mohrhard
Change-Id: I3e7edb5319ab2e2ec316204b917a7e29c1791b5b
2017-08-21updater: set executable type GUI for updater.exeMarkus Mohrhard
Change-Id: I795cbd8634a3afe219db033ce40f833af0eee44a
2017-08-08updater: move the windows process starting code to comphelperMarkus Mohrhard
Change-Id: I1a499f57d01ee28afdb2c4f85dc976f2e6837dfd Reviewed-on: https://gerrit.libreoffice.org/40837 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-07-31updater: get the signature verification working on WindowsMarkus Mohrhard
The updater itself does not link to NSS on Windows and instead uses the Windows-internal crypto libraries. However the mar executable needs to link against NSS, so we need to split the code a bit. Change-Id: Iea61c716aa507a876fdb444eb28ad828bdea18bd Reviewed-on: https://gerrit.libreoffice.org/40608 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-05-19generate the certificate verification data as part of the buildMarkus Mohrhard
Change-Id: I30186f76302e7666c833933b059931e8b1b7b78c
2017-05-19add the resource to the updaterMarkus Mohrhard
Change-Id: I80e80708346aa2850b2964c566ebc6423837a9cd
2017-05-19extract the common updater code to an own static libraryMarkus Mohrhard
We again need to use a static lib to prevent the file is in use problem during the update. Change-Id: I22d00ea2ab46949d32cdaae85c799896d6e0468f
2017-05-19include nss also on windows for the updater executableMarkus Mohrhard
Change-Id: I998355e0c4fb97a5b513be0072bced2a611c9928
2017-05-19build the signing part for the updaterMarkus Mohrhard
Change-Id: I422eed712da76a90f49b9d9cd5d6155fa394c223
2017-05-19only compile the windows files on windowsMarkus Mohrhard
Change-Id: I489aa2877ff23b556ab587a0fae5125de3b76d21
2017-05-19make the winhelper library compile on windowsMarkus Mohrhard
Change-Id: I4bfa678b6a028a91a63b79a24f6db3a3644d086a
2017-05-19use the new winhelper static lib on windowsMarkus Mohrhard
Change-Id: Iecb4328e4c665f7dd24fa7c6a66c3328942fb196
2016-06-13tdf#98602 Duplicate code in onlineupdate/Ras-al-Ghul
Converted libmar into static library and removed duplicate code. Change-Id: I51c58ae9a6a1f1128422b4a79491d0cd62e6ced6 Reviewed-on: https://gerrit.libreoffice.org/23312 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2016-05-03Handle wchar_t as native C++11 type on windowsDavid Ostrovsky
The option /Zc:wchar_t- prevented to use wchar_t as a built-in type according to the C++ standard. In Visual C++ 6.0 and earlier, wchar_t was not implemented as a built-in type, but was declared in wchar.h as a typedef for unsigned short. Now, years later after the end of life this outdated toolchain, there is no reason not to use native type. The only issue could be the ABI compatibility. But on a quick look at least, it looks like none of the mangled C++ symbols in the stable URE interface actually depend on wchar_t. We forgot to get rid of /Zc:wchar_t- in 5.1. Do that for LibreOffice 5.2, though. Change-Id: I8d6b380660859efa44c83c830734978d31d756a0 Reviewed-on: https://gerrit.libreoffice.org/22589 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-03-14Revert "tdf#98602 Duplicate code in onlineupdate/"Jan Holesovsky
Unfortunately needs more work, I've pushed it too early... This reverts commit e60506acc53098b4b479d565048c316562657cec.
2016-03-14tdf#98602 Duplicate code in onlineupdate/Ras-al-Ghul
Converted libmar into static library and removed duplicated code Change-Id: I6a6c8ce24103a400e1835ccf7e6421024f5cec4b Reviewed-on: https://gerrit.libreoffice.org/23179 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2016-01-06onlineupdate: linking libpthread should work better than including itMichael Stahl
Change-Id: Ib19a5651f7e30108e8fbcdc6f7924c47cbeb4434
2016-01-06onlineupdate: Executable_updater should decide which GTK it wants to useMichael Stahl
Using both GTK2 and GTK3 sounds like a recipe for disaster, so use gtk2 for now (since we get numerous deprecation warnings with gtk3). Change-Id: I32a27c3620503b6c5d7d81510137bfddc5abb05c
2015-07-22online update tdf#68274: fix --enable-online-update=mar on WindowsNathan Yee
Change-Id: I397566ae2488799399cad361b24a281d3599cc5b
2015-07-03online update: Make the 'updater' build & link at least on Linux.Jan Holesovsky
Works with the non-system bzip2; the --with-system case might still need some love - but then again, distros want to have the online update switched off anyway... Change-Id: I26a27aec07a8f1aac22a4d14a38fb5b833550ea7
2015-07-03online update: Add the bzip2 external.Nathan Yee
Change-Id: Id7547390c49c0bcf672eb1a9863fc236518bfa49
2015-06-29online update: Configure switch --enable-online-update=marJan Holesovsky
This will enable the mar-based online update instead of the 'traditional' one. At the moment, this does not build, as libbz2 was not packaged as an external library yet. Change-Id: I1ad7d9adf7a12a427786682ad932597eb2319256
2015-06-29online update: Add updater executable build supportNathan Yee
Change-Id: I033f114d29cd020b6dba5a74257d3f577dd73ea7