David Woodhouse wrote: > On Fri, 2007-06-15 at 07:59 -0500, David Smith wrote: >> Note that we leave things so that native compiles still work. We then >> check native dependencies (_arch == _build_arch) against our mock >> chroot's native rpm database, then check cross dependencies (_arch != >> _build_arch) against the mock chroot's target rpm database. >> >> Target versions of autoconf and sed aren't needed since nothing links >> against anything in those packages (those packages are only run >> natively). The only problem with this scheme is that we end up with an >> extra native dependency of libblah-devel (which really isn't needed >> since nothing links against it in the cross compile). But the benefit >> of unaffected native compiles outweighed the extra dependency. > > I might go so far as to suggest that the benefit of avoiding that > %if "%{_arch" == "%{_build_arch}" stuff in the specfile might outweigh > the extra dependencies on autoconf and sed, too. > > One way of handling dependencies in mock for cross-builds might be to > install the full set of dependencies for _both_ host and target > architectures. I would be the first to reach for a dirty but unanswerably effective hack to get me where I am going... But in this case I think the only true answer is to tag BuildRequires as being host or target in the spec file, not to unmanageably duplicate the target-world dependencies in the host. Eg HostBuildRequires: byacc (<-- for it is he) BuildRequires: libblah-devel ...where they are considered the same deal when hostArch == buildArch. We can see if this logic raises objections anywhere given the effective forkage of rpm but I suspect it is a basic fact necessary for cross to work in rpm semantics. -Andy -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list