Sven LUTHER <firstname.lastname@example.org> writes:
> On Sun, May 23, 1999 at 02:42:51AM +0200, Josip Rodin wrote:
> > On Sun, May 23, 1999 at 03:07:19AM +0300, Antti-Juhani Kaijanaho wrote:
> > > > Some of these can be detected automatically (#5 could be discovered with a
> > > > grep on debian/rules, for example), but some can't.
> > >
> > > So, what's the problem? We don't autodetect all of binary dependencies
> > > either. Maintainers generally know what they need to build their packages;
> > > it should be trivial for them to list the dependencies explicitly!
> > >
> > > Besides, if source dependencies were completely autodetectable, we wouldn't
> > > need them.
> > Agreed. We don't need any magic, just a common location for that useful
> > piece of information.
> I didn't follow all of this thread, but i think source dependencies are mostly
> usefull for people recompiling the package.
> So it would be nice to have a some kind of wrapper library that patches the
> open and such function from glibc, and log the accessed files (the one that are
> not in the build directory naturally) after that you just have to run some kind
> of dpkg -S on these files, and you get all packages needed for building this
libtricks (the lib used by fakeroot) already does that. Also Falk
hueffner and me wrote a script to log all files used (or tried
to use) and autodetect the packages they are in. The scripts unpaks
base, some additional packages and the source and tries to build
it. On failure it installes the missing packages, detected from the
files that had been tried to open, but failed and restarts.
If the package builds, the script has a list of all files used during
compilations and from that detects the packages needed.
Unfortunatly at the time of writing, libtricks had some severe bugs
and the gcc on alpha also, so it or another prog crashed while in
fakeroot, so we couldn't finish the script and test it properly. But
when it didn't crash, the results were satisfactory.
> you would need something a bit like what fakeroot does for it, so it is not
> The dpkg -S part would be quite slow i think, and produce a very big number of
> packages, but you could reduce them by providing a standard debian compiler
> metapackage (or whatever it is named this days) including stuff like make and
> gcc. or maybe various of them for lets say perl-devel, gcc-devel, text-only,
> etc, ...
We didn't assume anything to be installed, so even package from base
would show up. But you are right, the dependencies output of the
script should be stripped of any required packages to reduce size. I
know that I will need bash to compile something and I will have bash
installed, so no need to have a dependency for it in every source.
Everything thats not required should be included in the dependency
list, because you might not need gcc to compile a package.
May the Source be with you.