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

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to