summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess2016-06-10 14:59:40 -0400
committerJoey Hess2016-06-10 14:59:40 -0400
commit5608ab99f3aa058a196a7dfaf2b5ec123b5dad70 (patch)
tree36fe833d85386ae8a4637e1956b4f2feba4687a0
parente9a09eed901fc8ff40c7debef02fb6b0ed48b165 (diff)
parente56d193951672bc13aca88b17704160703fcad8b (diff)
Merge branch 'master' into joeyconfig
l---------config.hs2
-rw-r--r--debian/changelog4
-rw-r--r--doc/forum/Propellor_from_unprivileged_account.mdwn4
-rw-r--r--doc/forum/Propellor_from_unprivileged_account/comment_1_9a093f5ee1473549cef0578d1b2d1054._comment21
-rw-r--r--doc/forum/cabal:_Unrecognised_flags:_propellor-config.mdwn106
-rw-r--r--doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_1_5742cd0937a47a14cf3dc41e003e3855._comment26
-rw-r--r--doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_2_7121b4ceb44419c7a9b3b0c2ff76e52b._comment26
-rw-r--r--doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_3_886748a3a28e33c90bbc5485eddc8efb._comment10
-rw-r--r--doc/forum/functions_that_yield_properties/comment_3_76f4a92cf26ae2fcc3152a0f1a19f516._comment17
-rw-r--r--doc/forum/functions_that_yield_properties/comment_4_886daf04a0fa9e6d0dd1e9ef4cc9b63f._comment23
-rw-r--r--doc/forum/functions_that_yield_properties/comment_5_922e9e20c5326ceb695f7593d8bd72f5._comment38
-rw-r--r--doc/forum/recent_propellor_snapshots_cause_ghc_OOMs/comment_11_ac0d07af8234d6adb9b40524f6d5b10b._comment14
-rw-r--r--doc/news/version_3.0.4.mdwn8
-rw-r--r--doc/news/version_3.0.5.mdwn8
-rw-r--r--privdata/relocate1
-rw-r--r--propellor.cabal2
16 files changed, 297 insertions, 13 deletions
diff --git a/config.hs b/config.hs
index 97d90636..ec313725 120000
--- a/config.hs
+++ b/config.hs
@@ -1 +1 @@
-joeyconfig.hs \ No newline at end of file
+config-simple.hs \ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
index 0f85ccf0..763cecc6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-propellor (3.0.5) UNRELEASED; urgency=medium
+propellor (3.0.5) unstable; urgency=medium
* Modules added for Sbuild and Ccache.
Thanks, Sean Whitton
@@ -7,7 +7,7 @@ propellor (3.0.5) UNRELEASED; urgency=medium
killing processes like screen sessions.
* Systemd: Added logindConfigured property.
- -- Joey Hess <id@joeyh.name> Mon, 23 May 2016 11:19:28 -0400
+ -- Joey Hess <id@joeyh.name> Mon, 06 Jun 2016 17:13:21 -0400
propellor (3.0.4) unstable; urgency=medium
diff --git a/doc/forum/Propellor_from_unprivileged_account.mdwn b/doc/forum/Propellor_from_unprivileged_account.mdwn
new file mode 100644
index 00000000..127cee44
--- /dev/null
+++ b/doc/forum/Propellor_from_unprivileged_account.mdwn
@@ -0,0 +1,4 @@
+I have a need to configure the properties of some machines for which I am not the primary administrator (in particular, this is at a university where the central IT group does the administration, but delegates some tasks to department via sudo or by reading specific files). I imagine that I would have write my own properties. Is there a special way to call propellor, or code changes that need to be made to have propellor do the git clone and build in a user's home directory?
+
+Best,
+Jack
diff --git a/doc/forum/Propellor_from_unprivileged_account/comment_1_9a093f5ee1473549cef0578d1b2d1054._comment b/doc/forum/Propellor_from_unprivileged_account/comment_1_9a093f5ee1473549cef0578d1b2d1054._comment
new file mode 100644
index 00000000..01fff2a8
--- /dev/null
+++ b/doc/forum/Propellor_from_unprivileged_account/comment_1_9a093f5ee1473549cef0578d1b2d1054._comment
@@ -0,0 +1,21 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2016-06-09T20:06:05Z"
+ content="""
+Well propellor is normally built in the user's home directory and then
+deploys updates to the hosts and is built and run as root on them.
+
+If you're wanting to only run propellor as a user, to manage some
+user-specific properties, see the Propellor.Location module to change
+the path where propellor depploys itself to on a host.
+
+And in Propellor.Spin it has several `"root@"` that you'd need to change to
+make it ssh into the host as a different user.
+
+And, in Propellor.CmdLine, there's a check of `getRealUserID` to see if it's
+running as root.
+
+I think that's everything that assumes root (aside from a great many
+properties of course!), but can't swear to it.
+"""]]
diff --git a/doc/forum/cabal:_Unrecognised_flags:_propellor-config.mdwn b/doc/forum/cabal:_Unrecognised_flags:_propellor-config.mdwn
new file mode 100644
index 00000000..dd8048a2
--- /dev/null
+++ b/doc/forum/cabal:_Unrecognised_flags:_propellor-config.mdwn
@@ -0,0 +1,106 @@
+G'day Joey. Trying to deploy to a new host and I'm hitting this error:
+
+ cabal: Unrecognised flags: propellor-config
+ sh: 1: ./propellor: not found
+ propellor: user error (ssh ["-o","ControlPath=/home/craige/.ssh/propellor/os01.mcwhirter.io.sock","-o","ControlMa
+ ster=auto","-o","ControlPersist=yes","root@os01.mcwhirter.io","sh -c 'if [ ! -d /usr/local/propellor/.git ] ; the
+ n (if ! git --version >/dev/null; then apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -qq --no-install-
+ recommends --no-upgrade -y install git; fi && echo STATUSNeedGitClone) || echo STATUSNeedPrecompiled ; else cd /u
+ sr/local/propellor && if ! cabal configure >/dev/null 2>&1; then ( apt-get update ; DEBIAN_FRONTEND=noninteractiv
+ e apt-get -qq --no-upgrade --no-install-recommends -y install gnupg ; DEBIAN_FRONTEND=noninteractive apt-get -qq
+ --no-upgrade --no-install-recommends -y install ghc ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --n
+ o-install-recommends -y install cabal-install ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-inst
+ all-recommends -y install libghc-async-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install
+ -recommends -y install libghc-missingh-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install
+ -recommends -y install libghc-hslogger-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install
+ -recommends -y install libghc-unix-compat-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-inst
+ all-recommends -y install libghc-ansi-terminal-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no
+ -install-recommends -y install libghc-ifelse-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-i
+ nstall-recommends -y install libghc-network-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-in
+ stall-recommends -y install libghc-mtl-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install
+ -recommends -y install libghc-transformers-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-ins
+ tall-recommends -y install libghc-exceptions-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-i
+ nstall-recommends -y install libghc-stm-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-instal
+ l-recommends -y install libghc-text-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-re
+ commends -y install make ; cabal update ; cabal install --only-dependencies ) || true; fi&& if ! test -x ./propel
+ lor; then cabal configure && cabal build propellor-config && ln -sf dist/build/propellor-config/propellor-config
+ propellor; fi;if test -x ./propellor && ! ./propellor --check; then cabal clean && cabal configure && cabal build
+ propellor-config && ln -sf dist/build/propellor-config/propellor-config propellor; fi && ./propellor --boot os01
+ .mcwhirter.io ; fi'"] exited 127)
+
+When I build propellor manually on the remote host, same issue:
+
+ /usr/local/propellor# cabal build propellor-config
+ cabal: Unrecognised flags: propellor-config
+
+Building without the propellor-config flag *appears* to work fine:
+
+ /usr/local/propellor# cabal build
+ Building propellor-3.0.4...
+ Preprocessing executable 'propellor-config' for propellor-3.0.4...
+ ...
+ Linking dist/build/propellor-config/propellor-config ...
+ Preprocessing executable 'propellor' for propellor-3.0.4...
+
+So when I change line 39 in Bootstrap.hs to drop "propellor-config" it appears to work OK, locally:
+
+ % ~/.propellor/propellor --spin os01.mcwhirter.io
+ Preprocessing executable 'propellor-config' for propellor-3.0.4...
+ [85 of 90] Compiling Propellor.Bootstrap ( src/Propellor/Bootstrap.hs, dist/build/propellor-config/propellor-config-tmp/Propellor/Bootstrap.o )
+ Linking dist/build/propellor-config/propellor-config ...
+ Propellor build ... done
+
+ You need a passphrase to unlock the secret key for
+ user: ????
+ 4096-bit RSA key, ID ?????, created ????
+
+ [master 0e810ff] propellor spin
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+ Git commit ... done
+ Resolving dependencies...
+ Configuring propellor-3.0.4...
+ Warning: 'license: BSD2' is not a recognised license. The known licenses are:
+ GPL, GPL-2, GPL-3, LGPL, LGPL-2.1, LGPL-3, BSD3, MIT, Apache, Apache-2.0,
+ PublicDomain, AllRightsReserved, OtherLicense
+ Building propellor-3.0.4...
+ Preprocessing executable 'propellor-config' for propellor-3.0.4...
+ Preprocessing executable 'propellor' for propellor-3.0.4...
+ Preprocessing library propellor-3.0.4...
+ ...
+
+However it still fails with the original error on the remote host, despite the new Bootstrap.hs having been copied in place correctly.
+
+ % ~/.propellor/propellor --spin os01.mcwhirter.io
+ Preprocessing executable 'propellor-config' for propellor-3.0.4...
+ [85 of 90] Compiling Propellor.Bootstrap ( src/Propellor/Bootstrap.hs, dist/build/propellor-config/propellor-config-tmp/Propellor/Bootstrap.o )
+ Linking dist/build/propellor-config/propellor-config ...
+ Propellor build ... done
+
+ You need a passphrase to unlock the secret key for
+ user: ?????
+ 4096-bit RSA key, ID ?????, created ?????
+
+ [master bf1b056] propellor spin
+ 1 file changed, 1 deletion(-)
+ Git commit ... done
+ Sending privdata (11 bytes) to os01.mcwhirter.io ... done
+ Sending git update to os01.mcwhirter.io ... done
+ remote: Counting objects: 5, done.
+ remote: Compressing objects: 100% (5/5), done.
+ remote: Total 5 (delta 4), reused 0 (delta 0)
+ From .
+ * branch HEAD -> FETCH_HEAD
+ cabal: Unrecognised flags: propellor-config
+ Resolving dependencies...
+ Configuring propellor-3.0.4...
+ Warning: 'license: BSD2' is not a recognised license. The known licenses are:
+ GPL, GPL-2, GPL-3, LGPL, LGPL-2.1, LGPL-3, BSD3, MIT, Apache, Apache-2.0,
+ PublicDomain, AllRightsReserved, OtherLicense
+ cabal: Unrecognised flags: propellor-config
+ propellor: cabal build failed
+ Shared connection to os01.mcwhirter.io closed.
+ propellor: remote propellor failed
+
+I feel like I'm working around another local issue but so far my "fix" has been in Bootstrap.hs.
+
+Thoughts?
diff --git a/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_1_5742cd0937a47a14cf3dc41e003e3855._comment b/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_1_5742cd0937a47a14cf3dc41e003e3855._comment
new file mode 100644
index 00000000..93d70dc0
--- /dev/null
+++ b/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_1_5742cd0937a47a14cf3dc41e003e3855._comment
@@ -0,0 +1,26 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2016-06-07T17:13:29Z"
+ content="""
+propellor-config is the name of the Executable component
+in the cabal file that we want cabal to build.
+
+ Usage: cabal build [FLAGS]
+ or: cabal build COMPONENTS [FLAGS]
+
+It's the COMPONENT shown in the cabal build help. It seems that your cabal
+doesn't not understand this syntax. What version of cabal is that?
+
+(Based on the license warning, I'm guessing its an older version of cabal
+than the 1.22.6.0 I'm using here. The cabal 1.20.0.3 in Debian stable also
+supports this syntax.)
+
+Only building the propellor-config Executable is only an optimisation;
+otherwise cabal build also builds propellor as a library which is not
+needed here. So your workaround to drop that parameter should be ok.
+
+You probably need to rebuild propellor on the remote host manually
+after updating the code there, since the remote host has a version of
+propellor compiled such that it tries to recompile itself using that parameter..
+"""]]
diff --git a/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_2_7121b4ceb44419c7a9b3b0c2ff76e52b._comment b/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_2_7121b4ceb44419c7a9b3b0c2ff76e52b._comment
new file mode 100644
index 00000000..928f5d11
--- /dev/null
+++ b/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_2_7121b4ceb44419c7a9b3b0c2ff76e52b._comment
@@ -0,0 +1,26 @@
+[[!comment format=mdwn
+ username="craige@a46118dff5bc0fad85259759970d8b4b9fc377d7"
+ nickname="craige"
+ subject="comment 2"
+ date="2016-06-07T22:32:04Z"
+ content="""
+Local (Debian \"Stretch\"):
+
+ % cabal -V
+ cabal-install version 1.22.9.0
+ using version 1.22.8.0 of the Cabal library
+
+Remote (Buntish 14.04):
+
+ # cabal -V
+ cabal-install version 1.16.0.2
+ using version 1.16.0 of the Cabal library
+
+This host needs to remain 14.04 for reasons out of my control.
+
+When I land in a few hours, I'll try upgrading cabal on that host and I expect the problem will disappear.
+
+Thanks!
+
+(kicking myself for not thinking of cabal versions)
+"""]]
diff --git a/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_3_886748a3a28e33c90bbc5485eddc8efb._comment b/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_3_886748a3a28e33c90bbc5485eddc8efb._comment
new file mode 100644
index 00000000..8c04f052
--- /dev/null
+++ b/doc/forum/cabal:_Unrecognised_flags:_propellor-config/comment_3_886748a3a28e33c90bbc5485eddc8efb._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2016-06-08T17:07:09Z"
+ content="""
+This could be probed at runtime, I'd be willing to consider a patch
+checking cabal --version if you want to develop one.
+
+(Propellor supports Debian stable, but Ubuntu 14.04 is older than that.)
+"""]]
diff --git a/doc/forum/functions_that_yield_properties/comment_3_76f4a92cf26ae2fcc3152a0f1a19f516._comment b/doc/forum/functions_that_yield_properties/comment_3_76f4a92cf26ae2fcc3152a0f1a19f516._comment
new file mode 100644
index 00000000..7b1954bb
--- /dev/null
+++ b/doc/forum/functions_that_yield_properties/comment_3_76f4a92cf26ae2fcc3152a0f1a19f516._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ subject="comment 3"
+ date="2016-06-05T06:13:05Z"
+ content="""
+> The type of this will be somewhat more complex than the one you gave, but it should work.
+
+GHC's inferred type is not something I can understand, and I suspect that it is far more general than it needs to be. In this sort of situation, are their strategies one can employ to write a sensible type signature? I think that the only thing I need to restrict is avoiding trying to ensure properties with info.
+
+> You might be able to finesse this by using a monoidial value and get the description of mkp mempty.
+
+Could you expand a little on this suggestion, please? I want to be able to use unmodified core properties like `User.accountFor`, and that takes a non-monoidal `User`.
+
+> Or, you could do something like this to tie the knot. I don't know if this is a good idea (it might even <<loop>>), but it illustrates the core problem nicely; to get at the Info, we need a Host, but to get a Host, we need to already know its properties.
+
+This seems to work!
+"""]]
diff --git a/doc/forum/functions_that_yield_properties/comment_4_886daf04a0fa9e6d0dd1e9ef4cc9b63f._comment b/doc/forum/functions_that_yield_properties/comment_4_886daf04a0fa9e6d0dd1e9ef4cc9b63f._comment
new file mode 100644
index 00000000..aab4f6ed
--- /dev/null
+++ b/doc/forum/functions_that_yield_properties/comment_4_886daf04a0fa9e6d0dd1e9ef4cc9b63f._comment
@@ -0,0 +1,23 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2016-06-06T20:58:37Z"
+ content="""
+`Maybe a` is a Monoid, so something along that line was what I was
+thinking.
+
+----
+
+ withMyAcc
+ :: (SingI outer, Cannot_ensureProperty_WithInfo inner ~ 'True,
+ NotSuperset (Targets inner) (Targets outer) ~ 'CanCombine)
+ => Desc
+ -> (User -> Property (MetaTypes inner))
+ -> Property (MetaTypes outer)
+
+The complicated constraints there are inherited from the use of `ensureProperty`.
+
+A less general form of that is:
+
+ withMyAcc :: Desc -> (User -> Property DebianLike) -> Property DebianLike
+"""]]
diff --git a/doc/forum/functions_that_yield_properties/comment_5_922e9e20c5326ceb695f7593d8bd72f5._comment b/doc/forum/functions_that_yield_properties/comment_5_922e9e20c5326ceb695f7593d8bd72f5._comment
new file mode 100644
index 00000000..7cbcdd84
--- /dev/null
+++ b/doc/forum/functions_that_yield_properties/comment_5_922e9e20c5326ceb695f7593d8bd72f5._comment
@@ -0,0 +1,38 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ subject="comment 5"
+ date="2016-06-07T07:32:49Z"
+ content="""
+Unfortunately, the more general type doesn't seem to work:
+
+ withMyAcc
+ :: (SingI outer, Cannot_ensureProperty_WithInfo inner ~ 'True,
+ NotSuperset (Targets inner) (Targets outer) ~ 'CanCombine)
+ => Desc
+ -> (User -> Property (MetaTypes inner))
+ -> Property (MetaTypes outer)
+ withMyAcc desc mkp = property' desc $ \w -> do
+ u <- getMyAcc
+ ensureProperty w (mkp u)
+
+ accountForSean :: Property DebianLike
+ accountForSean = withMyAcc \"account for Sean\" User.accountFor
+
+yields
+
+ src/Propellor/Property/SiteSpecific/SPW/Account.hs:85:18:
+ Couldn't match kind ‘*’ with ‘MetaType’
+ Expected type: Property DebianLike
+ Actual type: Property (MetaTypes outer0)
+ In the expression: withMyAcc \"account for Sean\" User.accountFor
+ In an equation for ‘accountForSean’:
+ accountForSean = withMyAcc \"account for Sean\" User.accountFor
+
+ src/Propellor/Property/SiteSpecific/SPW/Account.hs:85:47:
+ Couldn't match kind ‘MetaType’ with ‘*’
+ Expected type: User -> Property (MetaTypes inner0)
+ Actual type: User -> Property DebianLike
+ In the second argument of ‘withMyAcc’, namely ‘User.accountFor’
+ In the expression: withMyAcc \"account for Sean\" User.accountFor
+
+"""]]
diff --git a/doc/forum/recent_propellor_snapshots_cause_ghc_OOMs/comment_11_ac0d07af8234d6adb9b40524f6d5b10b._comment b/doc/forum/recent_propellor_snapshots_cause_ghc_OOMs/comment_11_ac0d07af8234d6adb9b40524f6d5b10b._comment
new file mode 100644
index 00000000..8a1ef763
--- /dev/null
+++ b/doc/forum/recent_propellor_snapshots_cause_ghc_OOMs/comment_11_ac0d07af8234d6adb9b40524f6d5b10b._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="craige@a46118dff5bc0fad85259759970d8b4b9fc377d7"
+ nickname="craige"
+ subject="Thanks!"
+ date="2016-06-03T00:40:32Z"
+ content="""
+That all makes sense. Thanks joey.
+
+The update to Propellor 3.x caught me by surprise and this all resulted from that. Clearly I need to watch Propellor blog posts more more carefully :-)
+
+I'll take your example, read the upgrading doco and get things going from there, now the I understand the problem.
+
+I'll pass on those modules when the move beyond \"embarrassingly incomplete\" and become something that I think other people can use :-D
+"""]]
diff --git a/doc/news/version_3.0.4.mdwn b/doc/news/version_3.0.4.mdwn
deleted file mode 100644
index f6e1eac2..00000000
--- a/doc/news/version_3.0.4.mdwn
+++ /dev/null
@@ -1,8 +0,0 @@
-propellor 3.0.4 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * Run letsencrypt with --noninteractive.
- * Fix build with ghc 8.0.1.
- Thanks, davean.
- * Module added for the Borg backup system.
- Thanks, Félix Sipma.
- * Fix build with directory-1.2.6.2."""]] \ No newline at end of file
diff --git a/doc/news/version_3.0.5.mdwn b/doc/news/version_3.0.5.mdwn
new file mode 100644
index 00000000..b9655cf5
--- /dev/null
+++ b/doc/news/version_3.0.5.mdwn
@@ -0,0 +1,8 @@
+propellor 3.0.5 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Modules added for Sbuild and Ccache.
+ Thanks, Sean Whitton
+ * Systemd: Added killUserProcesses property, which can be reverted
+ to return systemd to its default behavior before version 230 started
+ killing processes like screen sessions.
+ * Systemd: Added logindConfigured property."""]] \ No newline at end of file
diff --git a/privdata/relocate b/privdata/relocate
deleted file mode 100644
index 271692d8..00000000
--- a/privdata/relocate
+++ /dev/null
@@ -1 +0,0 @@
-.joeyconfig
diff --git a/propellor.cabal b/propellor.cabal
index 670676df..dd71ab05 100644
--- a/propellor.cabal
+++ b/propellor.cabal
@@ -1,5 +1,5 @@
Name: propellor
-Version: 3.0.4
+Version: 3.0.5
Cabal-Version: >= 1.8
License: BSD2
Maintainer: Joey Hess <id@joeyh.name>