[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: smarter way to differ architectures needed?



>>>>> "Gord" == Gordon Matzigkeit <gord@fig.org> writes:

    Gord> If you need specific help understanding what I was proposing
    Gord> for Debian architectures, please feel free to ask me, on or
    Gord> off-list.

Sorry I have been so long to reply, I have been busy(TM). Anyway, I
have totally mangled, killed and destroyed your original proposal.
This is may not be better then other proposals, but that is open to
discussion.

I believe that this is totally flexible, and allows specifying the
build platform(s) and the destination platform(s) independently.

Currently it is very brief, but should be understandable:

PROPOSAL:

Use three fields.

1. build-for: specify what destination can be used.
2. build-depends: specify what is required to build.
3. depends: what is required by binary package.

(note: currently source is available on all platforms, but maybe one
day with build-depends this could change. eg.  have a seperate Sources
package for each platform).

ISSUES:

Issues that should probably be discussed further:

1. build-depends can vary depending on what build-for is.
Solution: use substitution, as shown in example. A different
syntax is used from depends to show that the substitution occurs
at a different time.

2. I don't like having the build-for header, but felt there needed to
be some way of letting the auto builders know what output they could
expect in advanced. eg. no point in trying to compile it on the sparc
for the sparc if the output is not use able on the sparc. The depends
can't be used for this, as per my proposal depends is not set until
after compilation (probably the major difference between my proposal
and Gordon's).

3. Marcus said something about a "pull" solution rather then a "push"
solution for autobuilder, but I never asked him to clarify what he
meant.

EXAMPLES:

typical binary package:

1. build-for:     %hwarch, %os
2. build-depends: %hwarch, %os
3. depends:       ${hwarch}, ${os}


1. should be compiled for every hwarch and os combination.
2. must be compiled on the same hwarch and os combination.
3. output depends ${hwarch} and ${os} inserted at compile time.

---

typically shell script:

1. build-for:
2. build-depends:
3. depends: perl

1. should be compiled once for everything
2. build can occur on any hwarch, and any os.
3. output depends on perl.

---

typically os specific shell script:

1. build-for:     %os [ !bsd ] 
2. build-depends: %os
3. depends:       ${os}, perl

1. should be compiled for all os except bsd.
2. build can occur on any hwarch, but same os is required.
3. output depends on current ${os} at compile time

---

typical binary package that can be cross compiled (note: how cross
compiling is done is beyond scope of this proposal).

1. build-for:     %hwarch [ !ia86 ], %os
2. build-depends: 
3. depends:       ${hwarch}, ${os}

1. can compiled for every hwarch (except ia86) and os combination
2. can be compiled on any hwarch
3. output depends on current ${hwarch} and ${os} at compile time


-- 
Brian May <bam@debian.org>



Reply to: