[MPlayer-dev-eng] deterministic builds

Enrico Weigelt weigelt at metux.de
Mon Dec 29 13:45:56 CET 2003

* Dominik 'Rathann' Mierzejewski <dominik at rangers.eu.org> [2003-12-29 11:25:31 +0100]:

> This is autodetection. I don't see what you're harping at. What RPM does
> is something like this:
> ...
> ld: tell me what libraries this thing is linked against
> put that information into package headers along with any
> packager-specified deps

No, you misunderstood me.

I'll tell the computer: 
okay, we have a library foo, which may be built as dll or linked statically,
it consists of a list of c-sources and a list of c-headers. some selected
header files are meant as public interface and have to be installed on
devkit builds.

Now the computer can build several things out of this (as they're needed):
    -> dynamic library (for several platforms and architectures)
    -> static libraries (several formats and architectures)
    -> include file package
    -> detailed descriptors for all these sub-packages.

Of course we have a database (maybe plain textfiles) on a global point of
the systems which tell evrybody, which packages/modules are installed
in which version and where they reside.

MVC also can be handled out of this information. You can simply tell the
build system to install another version (or variant) of a library somewhere
else and tell some other packages to use this variant (i.e. not to use
glib at default, instead glib at specialneeds)

This approach makes the whole build system much clearar, which is better
for correcting errors and reduces the possibility of errors and problems
in the build system dramatically (having one buildsystem for almost all
packages on a system has dramatically less code than if every package
brings its own build system - each line of code is a possible point of error!)

Also such a modeling could be used for a very wide range of automatic
systems (buildfarm, quality checks, ...), and also for IDEs.
Some IDEs already go small steps in this direction and provide an own
project description format, but this doesnt go far enough.

 Enrico Weigelt    ==   metux IT services

  phone:     +49 36207 519931         www:       http://www.metux.de/
  fax:       +49 36207 519932         email:     contact at metux.de
  cellphone: +49 174 7066481
 Diese Mail wurde mit UUCP versandt.      http://www.metux.de/uucp/

More information about the MPlayer-dev-eng mailing list