Age | Commit message (Collapse) | Author |
|
also include the version number in the base-URL for the mar files in the
json-file
Change-Id: I613ac7c1cf3aeb1eff856c58f00a67151267606c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168100
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
|
|
Change-Id: I01b8626c95bc234db38c76ee2fc6a17c91aad477
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165374
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I5443341ce308ea0f9906b54c02c51785aa624e6f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165375
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Id67e1a7f944f0aa1aaa5d598305727c913d823cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165376
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...as the former is more convenient for release engineering (see the discussion
in the comments at
<https://gerrit.libreoffice.org/c/core/+/162157/1#message-8d7ebbcc64a87ee8e4a073ae1a05e3b74f5a3d6a>
"Also enable --with-package-format=archive for LibreOfficeWin64.conf").
Instead of ONLINEUPDATE_MAR_OLDARCHIVE and ONLINEUPDATE_MAR_OLDMETADATA make
variables, the create-partial-info target now only needs an
ONLINEUPDATE_MAR_OLDMSI make variable.
TODO: There are two issues when comparing the content of msi files (extracted
with msiexec /a), which the old code comparing the content of archives had tried
to somewhat (but not fully) address with the metadata files that I had invented
(and now reverted): For one, msiexec /a also extracts content that would
normally be installed somewhere else in the system (e.g., it extracts Fonts,
System, and System64 directories). Differences in those directories will cause
a MAR update to create those directories in the installation directory, rather
than to update the corresponding files in their actual locations. For another,
optional components are not recognized as such, but their content must be added
to the MAR file as add/patch-if, not as plain add/patch. To work around that,
for now *all* files are added as add/patch-if, conditional on the files
themselves. Thus, addition of files will cause a MAR update to miss them.
(As they now exclusively operate on msi files, the create-update-info and
create-partial-info targets are no longer meaningful for non-Windows platforms,
so drop the non-Windows bin/update/create_full_mar_for_languages.py part.)
Change-Id: Ifb55b5e7d1a201b4f50a27cb449a634b96c2e29b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162399
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
Change-Id: Ifdec48aaf53b0444c2d7ceef554f64795e2f2c38
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162172
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
...along the lines of what had already been done for create-update-info, passing
files to the mar executable with an -f files.txt instead of on the command line
(which could grow too long for Windows), and taking the archive metadata into
account.
For the latter, `make create-partial-info` now expects a second make variable,
ONLINEUPDATE_MAR_OLDMETADATA, in addition to ONLINEUPDATE_MAR_OLDARCHIVE. And
there is a new TODO in update/create_partial_update.py that the old and new
metadata should be compared for problematic changes. (For now, any such changes
would just get lost by an update.)
Change-Id: Ide45adedb72958fc32c5b26aa7ebb01530ccf3d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161972
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
I got lost trying to figure out how the original
bin/update/create_partial_update.py code was meant to obtain old and new
installation trees to diff, so I simplified that down to the create-partial-info
make target now expecting an ONLINEUPDATE_MAR_OLDARCHIVE make variable that
points at the old archive install set. (And the
--with-online-update-mar-serverurl configure option is gone for good again.)
The remaining changes are similar to what was needed in
28bad382face10be75af3875e44dde89fbc78108 "Fix `make create-update-info` (for
Windows, at least)". (And the mbsdiff and mar tools expect Windows-style
pathnames, but mktemp returns a Unix-style pathname in cygwin shell scripts, so
this needed an additional Windows-only external/onlineupdate/cygpath.patch.)
Change-Id: I40690210d62e3f26fb2d574914a0dd4323e6cd62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161924
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
That make target operates on an archive, but generates data to be applied to an
msi installation, so suffers from any mismatch between archive and msi install
sets. Two such mismatches, at least on Windows, are:
1 Files that msi will install outside the LibreOffice installation itself (but
which for an archive install set are included under LibreOffice/). This covers
(at least) .Net assemblies and associated files that are installed in the GAC
(scp2 styles ASSEMBLY and ASSIGNCOMPONENT) and fonts (scp2 style FONT).
2 Files that msi will only install conditionally. This covers optional
components (many of which in scp2 are assigned to gid_Module_Optional_...
modules) and user interface languages (which in scp2 are assigned to
gid_Module_Langpack_... modules).
The approach taken here is to create a
workdir/installation/LibreOffice/archive/install/metadata file while building an
archive install set, and to record any files matching 1 (as "skip" lines) or 2
(as "cond" lines). Then, the create-update-info target uses that metadata file
to act accordingly on those files:
1 Files from "skip" lines are simply removed for now from the extracted archive
that is passed to Mozilla's make_full_update.sh script. (TODO: That means that
changes to such files will not be updated with the MAR update mechanism. This
would apparently need some extra processing during the MAR update.)
2 Files from "cond" lines shall be recorded as add-if in the mar file manifest.
Mozilla's make_full_update.sh script already has support for emitting add-if vs.
plain add, but only for files under distribution/extensions/, which doesn't
match our needs. So we generate from the metadata file an ifs file that we pass
into the make_full_update.sh script, and patch that script to also take that ifs
file into account. (Each line in the ifs file is of the form
"testfile" "file"
which works as long as none of the pathnames contains double quote characters.
The Mozilla script code appears to be confused about the arguments to
make_add_instruction(), where this ifs file will be needed: There are calls to
make_add_instruction() with two or three arguments across make_full_update.sh
and make_incremental_update.sh, but make_add_instruction() checks $1, $2, and
$4 (but not $3), so leave that mess alone and pass the ifs file as a global
IFSFILE variable instead.)
The mar file manifest `add-if "testfile" "file"` adds "file" only if "testfile"
is already present, and those two can be different files. TODO: However, for
simplicity, for now I always use "file" also as the "testfile" (so that an
add-if file only gets updated if it was already present). That avoids having to
identify a specific "key file" for each optional component and for each user
interface language, where that key file would be used as the add-if testfile.
But on the other hand, it means that if an optional component or a user
interface language will bring along a completely new file in the future, we will
not install that file during a MAR update. What obviously remains to be done is
to properly assign each add-if file to a specific key file. (And the current
way of identifying add-if files by gid_Module_... names appears to be too
simplistic too. For example, there are some gid_Module_Optional_... that are
installed unconditionally for msi; but it should be harmless that those files
are recorded as add-if rather than as plain add.)
Change-Id: I2fdeed92604f3a2d8a0b500b9e3fa421cfb6a9cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161917
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
...where, depending on --without-lang/--with-lang=fu ba bz/--with-lang=ALL, the
directory and archive file names appear to vary wildly, so go with a glob
approach instead of trying to guess the exact matching names here
Change-Id: I07355724f28eea66e619eb8d3d83c3e74217f54f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161885
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
Change-Id: I83a44d0cb563b1caf9459dddec7c6409af6ac0f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161693
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
* The shell scripts that had once been copied from Mozilla to bin/update/*.sh
are now included in
onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz (which is still
generated from the same
<https://github.com/mozilla/gecko-dev/commit/c003be8b9727672e7d30972983b375f4c200233f>
that was used for the original tarball in
3a445cb49795fabe0d8caaf12bfc38eb9e12d5fc "Turn onlineupdate into
external/onlineupdate").
* The additional modifications in external/onlineupdate/lo.patch are:
** Allowing to pass the list of files into the mar tool via -f instead of on the
command line, to avoid "command line too long" errors on Windows, inspired by
the modifications once made directly in our old downstream sources with
4165dd4e465a86ba6abe9afb3abfda5ef72493ea "add a way to create mar file from
file", 8e4d49340bd235a7db8fde1d24dd1d63ddc4d571 "use the new file based
approach for the mar creation", and fb13ed6955cd66017e5348b915af371a184ea633
"add the manifest file to the mar file". (To keep things simple for now, it
still uses a hard-coded maximum of 10000 lines in the file, marked with a
TODO.)
** Not failing when "precomplete file is missing!" (There is a comment
// Applications aren't required to have a precomplete manifest. The mar
// generation scripts enforce the presence of a precomplete manifest.
in
workdir/UnpackedTarball/onlineupdate/onlineupdate/source/update/updater/updater.cpp
and it appears to be OK that we don't have such a precomplete manifest file
and just skip that test.)
* In the Makefile.gbuild create-update-info, the create_full_mar.py script needs
to be called with a Unix pathname on Windows, or else the
#!/usr/bin/env python3
shebang in that script would get confused.
* The related Makefile.gbuild targets upload-update-info and create-partial-info
have not been addressed yet.
Change-Id: Iab4e083ddbe99e07d846e202f20c6031e2983e1b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161656
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
Used pyflakes to find unused imports from bin/ folder. Then, removed
those unused imports.
Change-Id: I439dbc443d6da6d82700ff9caf2f4f2677f46b5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158819
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Hossein <hossein@libreoffice.org>
|
|
...and allow each of them to be left off, for debug purposes, even if that may
render the resulting --enable-online-update-mar feature non-functional.
This change tracked each item that was potentially read from the
--with-update-config ini file, and turned each of them into a new
--with-online-update-mar-... option. The only exception and remaining TODO is
bin/update/upload_build_config.py (called from Makefile.gbuild).
distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf (which might well be dead)
set --with-update-config=~/updater.ini with an ini file of unknown content. So
that no items are silently missing if we ever resurrect that distro-config, I
set all of the new options to =TODO there for now.
Change-Id: I17a13e0d190a868436bac10c1b0a6675d8c704c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160622
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
157298bb808a943616991927f9370a86c1f2ca48 "android and bin/update: make pythonic"
had removed it, so that `make create-partial-info` would now fail at least with
> Traceback (most recent call last):
> File "bin/update/create_partial_update.py", line 10, in <module>
> from path import UpdaterPath, mkdir_p, convert_to_unix, convert_to_native
> ImportError: cannot import name 'mkdir_p' from 'path' (bin/update/path.py)
(and no idea if that make target would still do anything useful, beyond this
initial hurdle)
Change-Id: Ib1be3304e2b3468dc187c1b5e24041e68a3677fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160397
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
157298bb808a943616991927f9370a86c1f2ca48 "android and bin/update: make pythonic"
had introduced this apparent typo, so that `make create-update-info` would now
fail (and no idea if that make target would still do anything useful, beyond
this initial hurdle)
Change-Id: I63c4e87e06370d99e5d036ce5c7f2a5bda3c1554
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160398
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
Change-Id: Iaf791bfa8d9822843b26f2a2f2c3d94c55a60a0b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133358
Reviewed-by: Arkadiy Illarionov <qarkai@gmail.com>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
|
|
Change-Id: Ia89059eea51ca396a7c74143625ac9a6706de198
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120773
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
|
|
According to [1]:
> Changed in version 3.6: Unrecognized escape sequences produce a DeprecationWarning.
> In a future Python version they will be a SyntaxWarning and eventually a SyntaxError.
[1] https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals
Change-Id: Ia4f79f17ccb121f423f35b1e1306d5ae285e8762
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98321
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
The 'is' operator should not be used for comparison on some types of
literals. In CPython this works by accident and CPython 3.8 introduced a
SyntaxWarning (see https://bugs.python.org/issue34850).
Change-Id: I5cb7470132b26d87848c2bdc382b05477eb56afb
Reviewed-on: https://gerrit.libreoffice.org/83032
Tested-by: Jenkins
Reviewed-by: Jens Carl <j.carl43@gmx.de>
|
|
Change-Id: Iadfcdd58ca77d0906583c63ff81170f54c8c0ecd
|
|
Change-Id: I6cafdb28468d0023a0a1ea8cc2c051e9b84a1c6c
|
|
Change-Id: I934c8196e260573cd0bc4f74066ea6082ab3c6c3
|
|
Change-Id: Id19578a889de51cacac869d7ec681c5c18c40cf9
Reviewed-on: https://gerrit.libreoffice.org/41365
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I04f784d317b8cfeea25932728f03c92b0b73c70e
|
|
Change-Id: I543b903157d44038468eb4d92261dfd0d8b2909b
|
|
Change-Id: I0834a088af1527e4ed0d181f9e3a63ee82d0e980
|
|
Change-Id: I8089f1e2b46a242562608431e56c5da4c63fdb01
|
|
Change-Id: I49bcc55e1f91ee88cffafbe408f9d5f9e7ed0d16
Reviewed-on: https://gerrit.libreoffice.org/40796
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Ie3005a3fd4bc491cea0dd965931a7c0ac7ef813e
Reviewed-on: https://gerrit.libreoffice.org/40781
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: Ifb982aa4a0c496e1e21f762bd4e20241e41d4ea2
Reviewed-on: https://gerrit.libreoffice.org/40780
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I07ab2d69891975c93ab1824410eacc30eb98fcb5
Reviewed-on: https://gerrit.libreoffice.org/40779
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I01d8958801e7c5b2d08dd79b0469dfab1f6dee72
Reviewed-on: https://gerrit.libreoffice.org/40757
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
This is a huge mess. Any windows executable does not understand
cygwin paths but for example the bash script only understands unix paths.
Additionally, os.path is unixpath so it is not able to correctly handle
windows paths. We therefore convert everything that we need to handle
to unix paths and only the few paths that are passed in the end to windows
executables back to the native format. We selected mixed mode
(windows path with forward slash) to allow the unix scripts to manipulate
paths.
Change-Id: Ic443415ff5e8277bf0bb8704bbafd35f50767288
Reviewed-on: https://gerrit.libreoffice.org/40755
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: Ica68488f4e39c958a913936573cee67c1ff69175
Reviewed-on: https://gerrit.libreoffice.org/40754
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: Ia91724afbb258c7667dd18e76a32be24bff369ef
Reviewed-on: https://gerrit.libreoffice.org/40753
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I8c5ce1a2c256fbaf046fbe73e5574d48cd3f3a7a
|
|
Change-Id: I5fa7ce762ae7e429f685a52b0fed1a1f120da8dd
|
|
Change-Id: I9960cbc0b0c9037a1c9cf0ef7a9699bb09ad054e
|
|
Change-Id: I0ee9fbef7b80e5d37800b4fb9daff7e8ba46d65d
|
|
Change-Id: I1b6fc7970d3010c63ae910d55103efb504e15b53
|
|
Change-Id: Ifbb482a4fd9c1c92e9cdd7769d4b16160de14a86
|
|
Change-Id: I7cd9d541b90f4f6b38aa5e36e295e7677bb22f58
|
|
Change-Id: Ica0fad83820569623f3cc2f0217ac9cd8ee19257
|
|
Change-Id: Idcf7f9cedc2368f6a4e4e10c2852cc9b1125b712
|
|
Change-Id: I4000523cfc944657714267958836dd3ce4ec3b0d
|
|
Change-Id: I007b0b68a61242b7255a1a58a3637e3307d675aa
|
|
Change-Id: If928cae4c722354d5c3e415e7cb8426a3a4412f7
|
|
Change-Id: Ie8c92472631034935e73e55c934ce128c7b6ecd2
|
|
Change-Id: I997bdc38f705d7536a99a168815ece93dcf0c0de
|