Hi all,
at the end of the last week, there landed in master a new feature that
will allow us to do less zipping during build (and unzipping during
installation).
This is because the only purpose for creating most of the zips (if not
all of them) is to workaround shortomings in our install set
configuration. IOW, scp2 sucks. It requires at least two lines (if there
is a specific macro; if not, then five or more) to put a file into an
install set; it does not allow two files to have the same name (but
there is no diagnostic if it happens, by mistake); etc. etc. So there
exists a way to avoid this unpleasantness: put a bunch of files into a
zip, add a File record in scp2 with a special flag ARCHIVE and the
installer will unpack the zip and put the files it contains into the
install set in the zips place.
But wait, do we really need a zip for that? All that is needed is a list
of files and a base directory for computing their relative path in the
install set. And it turned out to be quite easy to do. I added a new
flag FILELIST for scp, the installer code that handles it, and modified
gb_Package to produce a list of files it delivers. The files are looked
up in a new top level directory $INSTDIR (suggested by Michael), which
required another (bigger) change to gb_Package (especially a new
function gb_Package_set_outdir). And that is about it :-) I converted a
couple of existing Zips from module extras as an excercise and, as a
bigger challenge, adapted the installation of IDL files for SDK. There
is an easy hack for converting more Zips into Packages:
https://bugs.freedesktop.org/show_bug.cgi?id=63197 , with a (hopefully)
detailed recipe for the conversion.
In the near future, I am going to look for some harder cases where this
might be applied. My latest branch (posted for review/test builds on
gerrit) adapts installation of uiconfig files and avoids the need for
special processing in postprocess.
D.
Context
- gbuild: i will have my build with less zips, please · David Tardon
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.