gbuild: i will have my build with less zips, please

David Tardon dtardon at redhat.com
Tue Apr 9 06:27:02 PDT 2013


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.


More information about the LibreOffice mailing list