Here's something I was playing with a few days go. The problem is that
when you have a package delivering a python module, you have to have a
separate, full manifest for each version of python, even though they're
essentially identical. This is a pretty ugly maintenance burden, since on
update, you have to tweak each one in exactly the same way, and every time
a new python version is introduced or removed, you gotta go add or remove a
ton of manifests. They should be autogenerated.
So here's an attempt at that:
https://cr.opensolaris.org/action/browse/userland/dduvall/pyver/
There are a couple of things to note:
- I've included the ability to do the same thing for Perl. It'll extend
indefinitely, though the way I managed to make make do this requires
that those definitions be somewhat intertwined.
- I'm not even remotely sold on the variable names; if someone has better
ideas, I'm all ears.
- The changes to shared-macros.mk are primarily for performance, though
IIRC, the WS_TOP change is necessary in order that its definition isn't
too slippery (I can't remember now the exact failure mode, though I can
retry that if anyone wants to know).
- The whole canonical-manifests rule was a royal pain in the butt. You'd
think it wouldn't have any effect on what I was trying to do, but it
definitely made things not work until I tweaked everything that used
it. I'm tempted to remove it, since I don't really see its purpose,
but left it in for now.
- Make is annoyingly fragile. And yet it deals with chained rulesets
better than anything else. <sigh>
- Assuming folks are okay with this, I'd rewrite all the modules to use
this, not just mercurial.
Thanks,
Danek
_______________________________________________
userland-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/userland-discuss