diff options
| author | Joey Hess <joeyh@joeyh.name> | 2016-03-02 14:47:46 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2016-03-02 14:58:33 -0400 |
| commit | 6bb39d0125c8b1cb65eb33cb04fb300601fd4f93 (patch) | |
| tree | 570237620d5540501b3aa08476c8f3be7f0c62fd /debian | |
| parent | 458e74ec9b4fa4e16e3484a972c331d20c29ffa6 (diff) | |
avoid repeated rebuilds, more type safely
buildFirst re-runs propellor with --continue, which is supposed to
make defaultMain bypass subsequent calls to buildFirst. But, use of a Bool
to do that caused the code to be unclear, and some of the cases lost track
of that.
--continue SimpleRun would buildFirst, and if the binary changed, would
--continue SimpleRun. This could loop repatedly, on systems such as FreeBSD
where building re-links the binary even when there are no changes. As
discussed in github pull #11
Fixed by introducing a CanRebuild data type, which buildFirst and updateFirst
require in order to do any work makes it more clear what's going on.
It's not a type-level proof that propellor won't rebuild repeatedly,
but gets closer to one.
(Only remaining way such a bug could slip in is if the CanRebuild
value was reused in a call to buildFirst and also inside the IO action
passed to it.)
There were some other weirdnesses around repeated builds. In particular,
Run as non-root did an updateFirst, followed by a buildFirst. I think this
redundant build was an accident, and have removed it.
Diffstat (limited to 'debian')
| -rw-r--r-- | debian/changelog | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index c5b27741..156e010c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,8 @@ propellor (2.16.1) UNRELEASED; urgency=medium * Apt.upgrade: Run dpkg --configure -a first, to recover from interrupted upgrades. * Apt: Add safeupgrade. + * Avoid repeated re-building on systems such as FreeBSD where building + re-links the binary even when there are no changes. -- Joey Hess <id@joeyh.name> Mon, 29 Feb 2016 17:58:08 -0400 |
