On Jul 5, 2005, at 10:58 PM, Philip Lamb wrote:
Obviously we have 10.4-transitional using g++-3.3, but how is Fink going to enforce a complete rebuild of c++-based packages for users under 10.4? Another issue is that we will potentially have packages which cannot link to anything pre gcc4.. but how will these packages be able to specify this in the requirements? The epoch field??
If we do exactly what we did last time, this is how it will go:1) Every package that uses C++ must have GCC: 3.3 in 10.4- transitional and GCC: 4.0 in 10.4.
2) All these packages must have their revision bumped in 10.4 by some arbitrary amount (10? 100?) so that the revision in 10.4 will always be higher than 10.4-transitional. This way update-all will cause them to rebuild.
3) All packages which depend on GCC: 4.0 packages must version those dependencies. So if the first version of foo in 10.4 is 3.1-11, then 'Depends: foo (>= 3.1-11)'. This forces packages to build in order.
The upside of this is it's not extremely complicated, and mostly works. The downsides are:
- If a user upgrades from 10.4-transitional to 10.4, and doesn't update-all, things will break sooner or later. Eg: Both bar and zot depend on foo, all use C++. User upgrades to 10.4, and later does 'fink update bar', this causes foo to be updated. But now zot is broken.
- Actually bumping all the revisions and versioning all the Depends can be a lot of work if done manually, and isn't trivial to script.
- If we keep 10.4-transitional, packages that are upgraded there can become "newer" than the rev-bumped packages in 10.4.
For all those considering wild new schemes, here's your chance to put them forward. :-)
Dave
PGP.sig
Description: This is a digitally signed message part
