Hisham Muhammad a écrit :
> On 5/13/06, Carlo Calica <[EMAIL PROTECTED]> wrote:
>> I say different rev numbers does not make sense. The build
>> environment should be "fully deterministic". What's the difference
between r3p1 and r3p2? Is there anyway to know?
>
> Package r3p1 might be built against GCC 3.3 and r3p2 built against GCC
4.0, both having been built from the same recipe, r3, which lists "GCC
[3.0, )" as a build dependency.
Does it really make sense to have different recipes just for different
compiler ? Most of the time the same recipe works whatever the compiler
version is. If I decide to make gcc 4.0 my default compiler, everything is
going to be compiled with it using the same recipes. Moreover it is not
easy to see at first glance that the only difference between r3p1 and r3p2
is the compiler version.
I see two issues related to compiler:
1. binary incompatibility between compilers (although it is mainly on C++
code, usually C code is ok).
2. compiling errors due to compiler becoming more strict on syntax.
This is not a problem if you compile everything. But this is a problem if
you mix binary packages from the distribution with compiled packages.
Even if it's a good thing to allow people to install all the compilers
they want, I'm not sure it is a good idea to support them to compile
packages. It seems safer to me to always use the same compiler to compile
recipes. Even if your default compiler is gcc4.x, only gcc3.y will be used
to compile recipes. The official compiler could be defined in
Compile.conf. That gives you the possibility to take the risk to change
it. But normal users wouldn't have to worry about that.
The official compiler would only be updated for major upgrades.
In this case, even point 2 is no longer an issue. All recipes have to work
with the official compiler. If someone needs it to compile with a more
recent compiler, he can provide a recipe that patch the code but is still
compatible with the official compiler.
> Different kinds of information that could be written/extracted:
>
> * BuildDependencies: handwritten file, in recipe, listing what's needed
to build ("GCC [3.0,)")
> * RuntimeDependencies: handwritten file, in recipe and package,
> listing what's needed to run a package ("GCC [3.0,4.0)", maybe (not a
particularly good example))
> * PackageBuildInformation: generated file, in package, saying what was
used during build (equivalent to current Dependencies file -- for
reference only as an aid to write the other files?)
Can't PackageBuildInformation be called AutomaticDependencies or
DetectedDependencies or <whatever>Dependencies. Since the three files have
the same syntax, it would be less confusing if their names were similar.
--
Laurent
_______________________________________________
gobolinux-devel mailing list
[email protected]
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel