minutes of ESC call ...

Jan Iversen jani at documentfoundation.org
Fri Dec 9 10:45:56 UTC 2016


> On 9 Dec 2016, at 11:35, Bjoern Michaelsen <bjoern.michaelsen at canonical.com> wrote:
> 
> Hi, 
> 
> some additional thoughts below:
> 
> On Thu, Dec 08, 2016 at 07:40:40PM +0100, Bjoern Michaelsen wrote:
>>> 	AFAICS - there -should- also be no need for cygwin, LODE, or anything
>>> else in this world ;-) just a single download.
>> Ok, who is going to finally kill scp2, the horribly icon-theme scriping, UNO
>> registry generation plumbing etc. for good? (With kill=port to plain C++ tooling).
>> [...]
>> Well, we sneakily use various bits of sed/gawk/gperf/perl/python/zip/tar/... in
>> various corners of the build. Killing those and replacing them with GNU make
>> and plain C++ would be good, but is quite a thankless effort. I agree though it
>> would be appreciated to make the build easier to bootstrap.
>> 
>> tl;dr: First kill the POSIX deps sprinkled all over the repo[1], building a bit of
>> C++ libs isnt the issue.  All the plumbing around it is.
> 
> On a more positive and actionable note: With C++11 having regex[1] that
> certainly is possible and e.g. Perl-to-C++11 might even be some EasyHacks.
> Limiting the tools used in the build system to C++11, GNU make and basic
> cross-plattform busybox[2] might be a starting point and allow all of:
> 
> - migrating to e.g. using ninja as backend
> - migrating away from GNU make (via gbuildtojson and manually recreating the
>  bazillion configure-based conditional we have in Makefiles)
> - simple bootstrapping on Windows without the need for cygwin or LODE 
Now we are getting very close to my x-mas wishlist.

the current json files made by gbuildjson misses 2 things:
- objective C++ (and some other language) files are not accounted for
- there are no dependency structure (as provided by running “make -d”)

I have been experimenting with a variant of gbuildtojson:
- the gb_macros do not make the C++ program, but makes a simple echo with an identifier
- make is called with “make -d gbuildtojson | gbuildjson.exe
- the C++ program is changed to understand the “make -d” dependency structure, and of course the echo statements.

With that change the json files contains enough information to e.g. generate a new set of makefiles without macros.
 
> 
> So while I am reluctant to replace gbuild as the canonical build _right now_,
> Im all for killing the custom tooling based on all of coreutils and Perl in
> gbuild (and replace it with plain C++11 ... and maybe busybox for a start).
> Once that happened, we can consider all the options on where to carry the build
> system from there. But locking in one of those options now, with all the
> tooling crap still around would be jumping the gun.
> 
> So: Who is going to champion the "kill all Perl in the Build" (for a start) EasyHack?
It is not fair I just complain without also volunteering :-)

That would be something I would like to do, with a little help from the experts, and provided Norbert has nothing against it.

have a nice weekend
jan I.



More information about the LibreOffice mailing list