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

source dependencies for source packages

We now have Build-Depends for source packages. What I do miss are
Source-Dependencies for Source-packages. Problem: gcc takes long to
build and test on some architectures. Adding cross compiler support
would increase the build time for some architectures to some cpu days
and disk requirements up to 1GB, which doesn't seem acceptable. And
packaging mistakes in architecture dependant packages (like gcc)
unfortunately are not so rare, so you have make some tries to get
correct binary packages. That's the schema which currently uses the
(still small?) binutils package.

1) A solution could be copying the source package and building cross
compilers from this package. But you would have to keep the "native"
and the "cross" source package in sync.

2) Another solution could be to keep the build infrastructure in one
source package and then setting one variable from outside to build the
needed cross compilers: TARGET=<cross-target> dpkg-buildpackge ...
Not sure if this is allowed by policy, because it requires manual
intervention in the build process.

3) Next solution could be 2), but setting the environment variable from
another source package (i.e. gcc-cross). For that scenario the source
scenario is needed. The advantages for this scenario is the
manangement of upstream source, build infrastructure and patches in
one source package. I do realize that the native gcc packages still
need to be recompiled for all architectures, when the build
infrastructure for one target architecture changes, but you wouldn't have
to recompile the native and the cross compilers for all
architectures. Saving disk space at build time as well.

4) Upload gcc source in a binary package and the build infrastructure
and patches in two other source packages. Source code duplication in
source and binary package. And a user usually doesn't recompile gcc.

I'd like some feedback
- about the introduction of source dependencies.
- and how to get this particular problem solved, if source
  dependencies are not acceptable


Addon: FHS doesn't say anything where to install files for cross
development platforms. gcc installs these files by default to
/usr/<target>/{bin,include,lib,...}, which is not allowed by FHS. OTOH
altgcc and libc5 use this location.

Reply to: