On a similar topic to the -fPIC question, I've realized today that
if use alpha; then
epatch ${FILESDIR}/${P}-alpha.patch || die "epatch failed"
fi
is really the wrong thing (and I'm not talking about the die part, which
I know is controversial). I'm talking about the conditional application
of the patch.
I think this should really be:
# Patch for 64-bit but apply everywhere
epatch ${FILESDIR}/${P}-alpha.patch || die "epatch failed"
The reason is twofold:
1. Devs presently break packages by bumping the version without
reworking the patch. But they don't KNOW they broke the package
because they're working on a different architecture.
Consequently, the arch teams get a bug report that just ends up
being busy-work.
2. We shouldn't be applying patches that are only "safe" for one
architecture. If possible (and I know this is a little more
work), we should be writing patches that correct the problem
without hurting other arches. This practice would give us an
easier time pushing patches upstream.
So what happens if a dev bumps the version on a package, and the patch
no longer applies? Here's what I think:
1. The dev should attempt to rework the patch, or determine if it
can be removed.
2. If it's too involved, then the dev should remove the arch or
~arch keyword from the ebuild, comment out the patch, and send
email to the appropriate arch team. That keeps users from
attempting to update their systems only to have emerge fail in
the middle for their arch. Better to have the devs handle the
problem than push it on to the users.
Does this make sense to everybody? I'm pushing for this approach
because our current situation truly has a scalability problem. We have
more devs available for working on packages than we have for working on
alternative architectures (where alternative means non-x86). It's
really important that devs responsible for packages attempt to keep
their ebuilds cross-platform friendly and not rely on the arch teams to
come along and clean up afterward.
I'm not suggesting that anybody has been careless, but I am suggesting a
change in perspective on Gentoo's multi-arch support...
Thoughts?
Aron
--
Aron Griffis
Gentoo Linux Developer (alpha / ia64 / ruby / vim)
Key fingerprint = E3B6 8734 C2D6 B5E5 AE76 FB3A 26B1 C5E3 2010 4EB0
pgp00000.pgp
Description: PGP signature
