diff options
| author | Joey Hess <joeyh@joeyh.name> | 2016-03-30 15:27:12 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2016-03-30 15:27:12 -0400 |
| commit | 711df152e01cffa957971725efcaa97b57c2a588 (patch) | |
| tree | b5943ba4e1afda8b60e65f939f4f5897855dd979 | |
| parent | 0f410f8acdb9e0b84ae364e80e5ee63adcb2ee50 (diff) | |
| parent | bc607807f9aa7dffea4e6e3267b4874acd64747f (diff) | |
Merge branch 'master' into joeyconfig
| -rw-r--r-- | debian/changelog | 12 | ||||
| -rw-r--r-- | doc/todo/missing_dependencies.mdwn | 2 | ||||
| -rw-r--r-- | doc/todo/problem_with_spin_after_new_dependencies_added.mdwn | 46 |
3 files changed, 57 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog index abc7d530..e741b39c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,9 @@ propellor (3.0.0) UNRELEASED; urgency=medium * Property types have been improved to indicate what systems they target. This prevents using eg, Property FreeBSD on a Debian system. Transition guide for this sweeping API change: + - First, upgrade to propellor 2.17.2 and deploy that to all your hosts. + Otherwise, propellor --spin will fail when you upgrade to + propellor 3.0.0. - Change "host name & foo & bar" to "host name $ props & foo & bar" - Similarly, `propertyList` and `combineProperties` need `props` @@ -60,12 +63,17 @@ propellor (3.0.0) UNRELEASED; urgency=medium * Re-enabled -O0 in propellor.cabal to reign in ghc's memory use handling these complex new types. * Added dependency on concurrent-output; removed embedded copy. + +propellor (2.17.2) unstable; urgency=medium + * When new dependencies are added to propellor or the propellor config, try harder to get them installed. In particular, this makes propellor --spin work when the remote host needs to get dependencies installed in order to build the updated config. + * Apt.update: Also run dpkg --configure -a here as apt for some reason + won't even update if dpkg was interrupted. - -- Joey Hess <id@joeyh.name> Thu, 24 Mar 2016 15:02:33 -0400 + -- Joey Hess <id@joeyh.name> Mon, 28 Mar 2016 11:06:34 -0400 propellor (2.17.1) unstable; urgency=medium @@ -75,8 +83,6 @@ propellor (2.17.1) unstable; urgency=medium * Uwsgi: add ".ini" extension to app config files. Files without extensions were ignored by uwsgi. Thanks, Félix Sipma. - * Apt.update: Also run dpkg --configure -a here as apt for some reason - won't even update if dpkg was interrupted. -- Joey Hess <id@joeyh.name> Mon, 28 Mar 2016 11:06:34 -0400 diff --git a/doc/todo/missing_dependencies.mdwn b/doc/todo/missing_dependencies.mdwn index 55490a86..2b2ac0f4 100644 --- a/doc/todo/missing_dependencies.mdwn +++ b/doc/todo/missing_dependencies.mdwn @@ -37,3 +37,5 @@ After upgrading to 2.4.0, I get this error: propellor: remote propellor failed As in https://propellor.branchable.com/todo/issue_after_upgrading_shared_library/, manually running "make clean" on the server fixed the issue + +> Ok, this is the same as [[problem_with_spin_after_new_dependencies_added]]. Closing this issue as I'm dealing with it in the other one. [[done]] --[[Joey]] diff --git a/doc/todo/problem_with_spin_after_new_dependencies_added.mdwn b/doc/todo/problem_with_spin_after_new_dependencies_added.mdwn new file mode 100644 index 00000000..3a2c97af --- /dev/null +++ b/doc/todo/problem_with_spin_after_new_dependencies_added.mdwn @@ -0,0 +1,46 @@ +Using --spin against a remote host after new cabal deps are added fails. + +<pre> +Sending git update to clam.kitenet.net ... done +Pull from central git repository ... done +git branch origin/joeyconfig gpg signature verified; merging +Already up-to-date. +Warning: The package list for 'hackage.haskell.org' is 77.9 days old. +Run 'cabal update' to get the latest list of available packages. +Resolving dependencies... +Configuring propellor-3.0.0... +cabal: At least the following dependencies are missing: +concurrent-output -any +propellor: failed to make dist/setup-config +Shared connection to clam.kitenet.net closed. +propellor: remote propellor failed +- exit 1 +</pre> + +This is a blocker for merging the typed-os-requirements branch. + +Problem is, the remote propellor runs Propellor.Bootstrap.build to build +itself after updating the git tree. But that does not install any missing +cabal deps. + +It can be made to, but there are three problems: + +1. For it to use depsCommand to install missing deps, it needs to know + the target OS of the host it's running on. That would need to be + extracted from other info. +2. Propellor.Bootstrap.build is also run when local propellor builds + itself, and if cabal failed there, it's not running as root and so can't + install deps. And probably shouldn't try to anyhow. +3. Even if Propellor.Bootstrap.build is fixed to install deps, + this would still require an upgrade to get that fix before new deps can + be added. This presents difficulties in merging the + typed-os-requirements branch. + +Instead of fixing this in Propellor.Bootstrap.build, could it be fixed +in the --spin code? That could run the depsCommand, but that's too +expensive to do every time. Only need to do it if the remote +propellor's build of itself fails. How to tell when that happened, +vs when propellor built ok, ran, and exited nonzero due to a failing property? + +(Note that the cron job runs the depsCommand if cabal configure fails, +so deps do get installed that way, only --spin is a problem.) |
