summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_4_294fcbae675879cb81aeb8d37cf3b635._comment13
-rw-r--r--doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_5_c627ddd43a68235e749b3025b2b6a51a._comment18
-rw-r--r--doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_6_00f48f55d8a48a7799d81d40bfe11921._comment13
-rw-r--r--doc/forum/Branch_not_signed_with_trusted_gpg_key_warning/comment_1_2b0f428151a6d338250c44549791395f._comment13
-rw-r--r--doc/forum/CUPS_configuration.mdwn3
-rw-r--r--doc/forum/DNS_for_LAN/comment_1_cc8b39a2344a74a32d821c59b499634a._comment8
-rw-r--r--doc/forum/DNS_for_LAN/comment_2_bd310b1f5865a2d35502721e138ca091._comment15
-rw-r--r--doc/forum/Error_trying_to_remove_a_key.mdwn8
-rw-r--r--doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__.mdwn1
-rw-r--r--doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_1_6271f4830c2a5bcc2bf296c32630bcba._comment28
-rw-r--r--doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_2_eb46e45efa0f40dbbc0a7471002eb97d._comment8
-rw-r--r--doc/forum/recommendations_for_setting_up__a_Fedora_chroot_on_a_Debian_host.mdwn9
-rw-r--r--doc/forum/ssh__95__known__95__hosts.mdwn1
-rw-r--r--doc/forum/ssh__95__known__95__hosts/comment_1_9447b1382bf54e6f4620bae200a62238._comment27
-rw-r--r--doc/news/version_5.10.2.mdwn10
-rw-r--r--doc/news/version_5.7.0.mdwn20
-rw-r--r--doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly.mdwn29
-rw-r--r--doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly/comment_1_b09c0c736838132b7dd69a1c510ff877._comment13
-rw-r--r--doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored.mdwn11
-rw-r--r--doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_1_4a662d7ab4f49a914718ca6e6f69ee86._comment29
-rw-r--r--doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_2_0a595f3481c37280bf3d9d9545b2e954._comment10
-rw-r--r--doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_3_c605e8c4b6e13fb1a5168ad34c3c7f46._comment16
-rw-r--r--doc/todo/Support_for_mirroring_bare_git_repos.mdwn2
-rw-r--r--doc/todo/Support_for_mirroring_bare_git_repos/comment_1_f8d0ade5f31f85c1db50b3ec6a9a3818._comment19
-rw-r--r--doc/todo/cabal_new-build_cruft.mdwn17
-rw-r--r--doc/todo/depend_on_concurrent-output.mdwn23
26 files changed, 344 insertions, 20 deletions
diff --git a/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_4_294fcbae675879cb81aeb8d37cf3b635._comment b/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_4_294fcbae675879cb81aeb8d37cf3b635._comment
new file mode 100644
index 00000000..726067da
--- /dev/null
+++ b/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_4_294fcbae675879cb81aeb8d37cf3b635._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2020-06-17T21:33:14Z"
+ content="""
+ cabal install --install-method=symlink --installdir=. exe:propellor --overwrite-policy=always
+
+But, this seems to do a lot of extra work, including generating a tarball
+of all the source code, and possibly building the package again
+unncessarily. And only works with a new enough cabal version.
+
+Ok, I've implemented it using `find`.
+"""]]
diff --git a/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_5_c627ddd43a68235e749b3025b2b6a51a._comment b/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_5_c627ddd43a68235e749b3025b2b6a51a._comment
new file mode 100644
index 00000000..cccac0fe
--- /dev/null
+++ b/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_5_c627ddd43a68235e749b3025b2b6a51a._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="Same issues now on Debian testing"
+ date="2020-08-12T17:22:31Z"
+ content="""
+I had to
+
+- merge from joeyh's master branch
+- cd /usr/local/propellor
+- sudo make clean
+- sudo make
+
+in order to get things going.
+
+I would not be surprised at all to learn there is an easier way (perhaps just blowing away /usr/local/propellor)
+
+"""]]
diff --git a/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_6_00f48f55d8a48a7799d81d40bfe11921._comment b/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_6_00f48f55d8a48a7799d81d40bfe11921._comment
new file mode 100644
index 00000000..2fa6ef19
--- /dev/null
+++ b/doc/forum/Bootstrapping_with_Cabal_on_Archlinux_fails/comment_6_00f48f55d8a48a7799d81d40bfe11921._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 6"""
+ date="2020-08-14T16:31:36Z"
+ content="""
+I'm curious why you needed to make clean. AFAIK the new cabal will ignore
+any cruft left by the old version and should just do a from scratch build
+on its own.
+
+Indeed, one of my hosts managed by propellor has both
+/usr/local/propellor/dist and dist-newstyle, and is building successfully
+in the latter directory.
+"""]]
diff --git a/doc/forum/Branch_not_signed_with_trusted_gpg_key_warning/comment_1_2b0f428151a6d338250c44549791395f._comment b/doc/forum/Branch_not_signed_with_trusted_gpg_key_warning/comment_1_2b0f428151a6d338250c44549791395f._comment
new file mode 100644
index 00000000..7e1c0a5d
--- /dev/null
+++ b/doc/forum/Branch_not_signed_with_trusted_gpg_key_warning/comment_1_2b0f428151a6d338250c44549791395f._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="sravikumar@b98554d12f31e17b71dd07098f122792ca8837ce"
+ nickname="sravikumar"
+ avatar="http://cdn.libravatar.org/avatar/227f208e95d449decbc71eccc658cdbe"
+ subject="comment 1"
+ date="2020-07-10T20:04:47Z"
+ content="""
+Resolved the issue by adding the gpg signing key again to propellor with
+
+```
+propellor --add-key SIGNING_KEY_ID
+```
+"""]]
diff --git a/doc/forum/CUPS_configuration.mdwn b/doc/forum/CUPS_configuration.mdwn
new file mode 100644
index 00000000..48e2ff4f
--- /dev/null
+++ b/doc/forum/CUPS_configuration.mdwn
@@ -0,0 +1,3 @@
+Any ideas for good ways to manage CUPS config? /etc/cups/printers.conf starts with `# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING`. I can do the obvious stop / replace / restart, but am curious if anyone has any success stories or pitfalls to relate.
+
+A very quick search suggests using "lpadmin" is the approved way of updating CUPS config. So I guess I can run some Cmd.cmpProperty calls
diff --git a/doc/forum/DNS_for_LAN/comment_1_cc8b39a2344a74a32d821c59b499634a._comment b/doc/forum/DNS_for_LAN/comment_1_cc8b39a2344a74a32d821c59b499634a._comment
new file mode 100644
index 00000000..53519ebb
--- /dev/null
+++ b/doc/forum/DNS_for_LAN/comment_1_cc8b39a2344a74a32d821c59b499634a._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="mDNS is ok"
+ date="2020-06-10T23:53:36Z"
+ content="""
+I ended up (finally) enabling mDNS in network-manager and systemd-resolved and it seems work pretty well for my goal of ssh-ing to machines on my LAN. avahi is the other main mDNS server as far as I know.
+"""]]
diff --git a/doc/forum/DNS_for_LAN/comment_2_bd310b1f5865a2d35502721e138ca091._comment b/doc/forum/DNS_for_LAN/comment_2_bd310b1f5865a2d35502721e138ca091._comment
new file mode 100644
index 00000000..4af921f4
--- /dev/null
+++ b/doc/forum/DNS_for_LAN/comment_2_bd310b1f5865a2d35502721e138ca091._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="network-manager snippet"
+ date="2020-06-11T10:25:10Z"
+ content="""
+[[!format haskell \"\"\"
+File.hasContent \"/etc/NetworkManager/conf.d/mDNS.conf\" [ \"[connection]\"
+ , \"connection.mdns=2\"
+ ]
+ `requires` File.dirExists \"/etc/NetworkManager/conf.d\"
+\"\"\"]]
+
+The `=2` is important if you want the host to actually tell other hosts what it's IP is, and not just query,
+"""]]
diff --git a/doc/forum/Error_trying_to_remove_a_key.mdwn b/doc/forum/Error_trying_to_remove_a_key.mdwn
new file mode 100644
index 00000000..252e507f
--- /dev/null
+++ b/doc/forum/Error_trying_to_remove_a_key.mdwn
@@ -0,0 +1,8 @@
+I try to remove a key from my propellor repository, but it fails:
+
+ % propellor --rm-key 41EED9A677C20D87
+ gpg: there is a secret key for public key "41EED9A677C20D87"!
+ gpg: use option "--delete-secret-keys" to delete it first.
+ removing key from propellor's keyring ... failed
+
+I believe gpg gets access to my secret keys using the agent now, it no longer use direct access.
diff --git a/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__.mdwn b/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__.mdwn
new file mode 100644
index 00000000..c2bc154a
--- /dev/null
+++ b/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__.mdwn
@@ -0,0 +1 @@
+An s390x running Ubuntu Bionic has starting failing with the message in the subject when I run propellor. Any ideas what might be going on there? It seems to be right after it fetches from the central git repo.
diff --git a/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_1_6271f4830c2a5bcc2bf296c32630bcba._comment b/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_1_6271f4830c2a5bcc2bf296c32630bcba._comment
new file mode 100644
index 00000000..d400839b
--- /dev/null
+++ b/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_1_6271f4830c2a5bcc2bf296c32630bcba._comment
@@ -0,0 +1,28 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="variation on the theme."
+ date="2020-08-14T14:30:52Z"
+ content="""
+Today for some reason I had one run produce more output, with many repeats of the same warning. It seems to be more than a warning, since the corresponding properties fail. I have rebooted the VM, in case there was some transient resource exhaustion problem. Successive runs of /usr/local/bin/propellor_cronjob stop very early as in my original report.
+
+ [[!format text \"\"\"
+lotus.casa.cs.unb.ca apt installed etckeeper apt-transport-https ... ok
+lotus.casa.cs.unb.ca unattended upgrades true ... failed
+lotus.casa.cs.unb.ca replace /etc/apt/apt.conf.d/20-propellor-auto-upgrades ... ok
+lotus.casa.cs.unb.ca git repo at /etc/ config setting user.email set to root@tethera.net ... ok
+** warning: waitForProcess: does not exist (No child processes)
+lotus.casa.cs.unb.ca git repo at /etc/ config setting user.name set to Root ... ok
+lotus.casa.cs.unb.ca ssh installed ... ok
+lotus.casa.cs.unb.ca ssh config: PermitRootLogin without-password ... ok
+lotus.casa.cs.unb.ca ssh config: PasswordAuthentication no ... done
+lotus.casa.cs.unb.ca root has authorized_keys ... failed
+** warning: waitForProcess: does not exist (No child processes)
+lotus.casa.cs.unb.ca root has authorized_keys ... failed
+** warning: waitForProcess: does not exist (No child processes)
+** warning: waitForProcess: does not exist (No child processes)
+lotus.casa.cs.unb.ca root has authorized_keys ... failed
+\"\"\"]]
+
+
+"""]]
diff --git a/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_2_eb46e45efa0f40dbbc0a7471002eb97d._comment b/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_2_eb46e45efa0f40dbbc0a7471002eb97d._comment
new file mode 100644
index 00000000..3ed165d4
--- /dev/null
+++ b/doc/forum/propellor:_waitForProcess:_does_not_exist___40__No_child_processes__41__/comment_2_eb46e45efa0f40dbbc0a7471002eb97d._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="addendum"
+ date="2020-08-14T14:32:59Z"
+ content="""
+Actually it seems a bit random as to whether I get the longwinded or the concise failure. Out of about 10 tries, I get the longer run maybe 3 times.
+"""]]
diff --git a/doc/forum/recommendations_for_setting_up__a_Fedora_chroot_on_a_Debian_host.mdwn b/doc/forum/recommendations_for_setting_up__a_Fedora_chroot_on_a_Debian_host.mdwn
new file mode 100644
index 00000000..c12a7556
--- /dev/null
+++ b/doc/forum/recommendations_for_setting_up__a_Fedora_chroot_on_a_Debian_host.mdwn
@@ -0,0 +1,9 @@
+I'd like a way to set up Fedora chroots for testing purposes on my Debian workstations. Currently I use the example from the systemd-nspawn manpage
+[[!format text """
+# machinectl pull-raw --verify=no \
+ https://download.fedoraproject.org/pub/fedora/linux/releases/31/Cloud/x86_64/images/Fedora-Cloud-Base-31-1.9.x86_64.raw.xz \
+ Fedora-Cloud-Base-31-1.9.x86-64
+# systemd-nspawn -M Fedora-Cloud-Base-31-1.9.x86-64
+"""]]
+
+If I understand correctly the existing Systemd.container function needs a way to make a chroot.
diff --git a/doc/forum/ssh__95__known__95__hosts.mdwn b/doc/forum/ssh__95__known__95__hosts.mdwn
new file mode 100644
index 00000000..94db5996
--- /dev/null
+++ b/doc/forum/ssh__95__known__95__hosts.mdwn
@@ -0,0 +1 @@
+I would find it useful if there was a function similar to Ssh.knownHost that updated /etc/ssh/ssh_known_hosts. I suppose it just requires parameterizing knownHost in terms of what file to operate on, but I'm still pretty clueless about IO in Haskell.
diff --git a/doc/forum/ssh__95__known__95__hosts/comment_1_9447b1382bf54e6f4620bae200a62238._comment b/doc/forum/ssh__95__known__95__hosts/comment_1_9447b1382bf54e6f4620bae200a62238._comment
new file mode 100644
index 00000000..eb52f671
--- /dev/null
+++ b/doc/forum/ssh__95__known__95__hosts/comment_1_9447b1382bf54e6f4620bae200a62238._comment
@@ -0,0 +1,27 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="prototype"
+ date="2020-06-11T01:23:28Z"
+ content="""
+This seems to work for me. Obviously less hardcoding and code duplication would be nicer.
+
+[[!format haskell \"\"\"
+-- | Puts some host's ssh public key(s), as set using `hostPubKey`
+-- or `hostKey` into /etc/ssh/ssh_known_hosts
+sshKnownHost :: [Host] -> HostName -> Property UnixLike
+sshKnownHost hosts hn = property' desc $ \w ->
+ go w =<< knownHostLines hosts hn
+ where
+ desc = \" globally known ssh key for \" ++ hn
+
+ go _ [] = do
+ warningMessage $ \"no configured ssh host keys for \" ++ hn
+ return FailedChange
+ go w ls = do
+ f <- return \"/etc/ssh/ssh_known_hosts\"
+ ensureProperty w $
+ f `File.containsLines` ls
+ `requires` File.dirExists (takeDirectory f)
+\"\"\"]]
+"""]]
diff --git a/doc/news/version_5.10.2.mdwn b/doc/news/version_5.10.2.mdwn
new file mode 100644
index 00000000..264b7f60
--- /dev/null
+++ b/doc/news/version_5.10.2.mdwn
@@ -0,0 +1,10 @@
+propellor 5.10.2 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Fix build with ghc 8.6.3.
+ Thanks, Robin Munn
+ * Bootstrap: Fix typo in Arch Linux dependencies.
+ Thanks, Robin Munn
+ * Bootstrap: Add haskell-type-errors package on Arch Linux.
+ Thanks, Robin Munn
+ * Apt.buildDepIn: Run build-dep command in a temporary directory,
+ since it may sometimes not clean up all the files it creates."""]] \ No newline at end of file
diff --git a/doc/news/version_5.7.0.mdwn b/doc/news/version_5.7.0.mdwn
deleted file mode 100644
index 194a2a6f..00000000
--- a/doc/news/version_5.7.0.mdwn
+++ /dev/null
@@ -1,20 +0,0 @@
-propellor 5.7.0 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * Sbuild.built no longer includes Apt.stdSourcesList by default,
- in order to support non-Debian OS's. (API change)
- To upgrade: Simply add Sbuild.osDebianStandard to all Sbuild.built
- calls which have osDebian.
- Thanks, Sean Whitton
- * Propellor.Property.PropellorRepo renamed to Propellor.Property.Localdir
- to widen its scope. (API change)
- * Added Localdir.removed property.
- Thanks, Sean Whitton
- * Sbuild.built uses Localdir.removed to clean up the propellor localdir
- after it's done running in a schroot.
- Thanks, Sean Whitton
- * Cron.runPropellor made revertable. (minor API change)
- Thanks, Sean Whitton
- * Added Cron.jobDropped.
- Thanks, Sean Whitton
- * Added Utility.FileMode to the modules exported by Propellor.Utilities
- to propellor library users."""]] \ No newline at end of file
diff --git a/doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly.mdwn b/doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly.mdwn
new file mode 100644
index 00000000..b3a3cd90
--- /dev/null
+++ b/doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly.mdwn
@@ -0,0 +1,29 @@
+It looks like ghc in Debian unstable is defaulting to new style cabal builds which bypasses `Bootstrap.bootstrapWith Bootstrap.OSOnly`:
+
+ ...
+ git branch origin/spw3conf gpg signature verified; merging
+ Already up to date.
+ Build profile: -w ghc-8.8.3 -O1
+ In order, the following will be built (use -v for more details):
+ - IfElse-0.85 (lib:IfElse) (requires build)
+ - first-class-families-0.8.0.0 (lib) (requires build)
+ - hsc2hs-0.68.7 (exe:hsc2hs) (requires download & build)
+ - old-locale-1.0.0.7 (lib) (requires build)
+ - syb-0.7.1 (lib) (requires build)
+ - th-abstraction-0.3.2.0 (lib) (requires build)
+ - network-bsd-2.8.1.0 (lib) (requires build)
+ - type-errors-0.2.0.0 (lib) (requires build)
+ - hslogger-1.3.1.0 (lib) (requires build)
+ - propellor-5.10.1 (lib) (first run)
+ - propellor-5.10.1 (exe:propellor-config) (first run)
+ Downloading hsc2hs-0.68.7
+ Configuring IfElse-0.85...
+ Preprocessing library for IfElse-0.85..
+ Building library for IfElse-0.85..
+ [1 of 1] Compiling Control.Monad.IfElse ( Control/Monad/IfElse.hs, dist/build/Control/Monad/IfElse.o )
+ Downloaded hsc2hs-0.68.7
+ ...
+
+I think the simplest fix is to replace `cabal build` with `cabal v1-build` in `Propellor.Bootstrap.buildCommand`?
+
+--spwhitton
diff --git a/doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly/comment_1_b09c0c736838132b7dd69a1c510ff877._comment b/doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly/comment_1_b09c0c736838132b7dd69a1c510ff877._comment
new file mode 100644
index 00000000..0ca694ff
--- /dev/null
+++ b/doc/todo/Default_of_new_style_builds_breaks_Bootstrap.OSOnly/comment_1_b09c0c736838132b7dd69a1c510ff877._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2020-06-17T22:01:21Z"
+ content="""
+Simplest yes, but also kicking the can down the road as they'll
+presumably remove 1- at some point.
+
+I've implemented new-build support in
+[[!commit 745784f61bdd678e20b1b18743f18d458836a802]].
+Have not actually tested it on bootstrapping a new host yet, but I assume
+it will work barring some dumb typo.
+"""]]
diff --git a/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored.mdwn b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored.mdwn
new file mode 100644
index 00000000..08d5cf86
--- /dev/null
+++ b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored.mdwn
@@ -0,0 +1,11 @@
+Recent versions of Borg require the `--encryption` option to initialize a repository.
+
+Also, `borg extract` needs an archive name and it extracts the backup in the current directory.
+
+I have made a fix for this, please pull the `borg-fixes` branch at `http://git.ni.fr.eu.org/nicolas/propellor.git`.
+
+Tested with borg version 1.1.9.
+
+My haskell level is still not that great, I would love to get comments on my code.
+
+Thanks.
diff --git a/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_1_4a662d7ab4f49a914718ca6e6f69ee86._comment b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_1_4a662d7ab4f49a914718ca6e6f69ee86._comment
new file mode 100644
index 00000000..7c5d7eb5
--- /dev/null
+++ b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_1_4a662d7ab4f49a914718ca6e6f69ee86._comment
@@ -0,0 +1,29 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2020-07-31T15:11:20Z"
+ content="""
+pull failed
+
+ joey@darkstar:~/src/propellor>git fetch http://git.ni.fr.eu.org/nicolas/propellor.git
+ fatal: Couldn't find remote ref HEAD
+
+I wonder if perhaps you forgot to run `git update-server-info`?
+Or possibly this is just not an url that actually points to the raw git
+repo, it looks like a gitweb installation and gitweb does not serve git
+repos IIRC.
+
+Hardcoding `BORG_PASSPHRASE` into a propellor configuration does not seem
+good. It could use `withPrivData` to get the passphrase.
+
+If `latestArchive` didn't work, it should probably display a
+`warningMessage` rather than just failing with no indication why.
+
+There is the small problem that borg 1.0.9 is in debian oldstable and if
+someone were using propellor with it, which is supported, the changes
+to extraction would break that. Not as bad as extraction currently being
+broken for everyone with a current version of borg though! But,
+it would be easy to at least detect the old version and refuse to use it to
+restore. Either by borg --version or by using withOS and to match against
+the debian version, like Propellor.Property.Systemd.machined does.
+"""]]
diff --git a/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_2_0a595f3481c37280bf3d9d9545b2e954._comment b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_2_0a595f3481c37280bf3d9d9545b2e954._comment
new file mode 100644
index 00000000..0cd6f1a7
--- /dev/null
+++ b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_2_0a595f3481c37280bf3d9d9545b2e954._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="Nicolas.Schodet"
+ avatar="http://cdn.libravatar.org/avatar/0d7ec808ec329d04ee9a93c0da3c0089"
+ subject="comment 2"
+ date="2020-08-01T14:58:33Z"
+ content="""
+HEAD was pointing to a non-existant master branch, sorry about that.
+
+I will try to fix the other issues, thanks for the review.
+"""]]
diff --git a/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_3_c605e8c4b6e13fb1a5168ad34c3c7f46._comment b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_3_c605e8c4b6e13fb1a5168ad34c3c7f46._comment
new file mode 100644
index 00000000..81fb2234
--- /dev/null
+++ b/doc/todo/Fix_Borg.init_on_recent_borg_versions__44___fix_Borg.restored/comment_3_c605e8c4b6e13fb1a5168ad34c3c7f46._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="Nicolas.Schodet"
+ avatar="http://cdn.libravatar.org/avatar/0d7ec808ec329d04ee9a93c0da3c0089"
+ subject="Branch updated"
+ date="2020-08-10T21:41:11Z"
+ content="""
+Hello, I updated my branch with:
+
+- a different commit message with a withPrivData example,
+- a fix for --glob-archive and --last not supported on borg 1.0.9,
+- a warning message if no archive is found.
+
+Not sure if it was clear: the restored function did not work either on borg 1.0.9 before my changes.
+
+Tested on buster and stretch.
+"""]]
diff --git a/doc/todo/Support_for_mirroring_bare_git_repos.mdwn b/doc/todo/Support_for_mirroring_bare_git_repos.mdwn
new file mode 100644
index 00000000..3c5da097
--- /dev/null
+++ b/doc/todo/Support_for_mirroring_bare_git_repos.mdwn
@@ -0,0 +1,2 @@
+Since "git pull" has the potential to fail because of merge problems (this is not theoretical, it happened to me today), I'd prefer to just fetch into a bare repo.
+I don't know the best way to go about this. Maybe a "Git.fetched" function that does not assume a non-bare repo (as Git.cloned currently does).
diff --git a/doc/todo/Support_for_mirroring_bare_git_repos/comment_1_f8d0ade5f31f85c1db50b3ec6a9a3818._comment b/doc/todo/Support_for_mirroring_bare_git_repos/comment_1_f8d0ade5f31f85c1db50b3ec6a9a3818._comment
new file mode 100644
index 00000000..fb6ff177
--- /dev/null
+++ b/doc/todo/Support_for_mirroring_bare_git_repos/comment_1_f8d0ade5f31f85c1db50b3ec6a9a3818._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="first attempt"
+ date="2020-05-16T23:44:41Z"
+ content="""
+This isn't very general, but it seems to work
+
+[[!format haskell \"\"\"
+bareMirror :: String -> String -> Property DebianLike
+bareMirror dir url = propertyList (\"bare mirror of \" ++ url ++ \" in \" ++ dir ) $ props
+ & Git.installed
+ & Git.bareRepo dir (User \"root\") Git.SharedAll
+ & Git.repoConfigured dir (\"remote.origin.url\", url)
+ & Git.repoConfigured dir (\"remote.origin.mirror\", \"true\")
+ & Git.repoConfigured dir (\"remote.origin.fetch\", \"+refs/*:refs/*\")
+ & Cmd.cmdProperty \"git\" [\"-C\", dir, \"fetch\", \"origin\" ] `changesFileContent` (dir </> \"HEAD\")
+\"\"\"]]
+"""]]
diff --git a/doc/todo/cabal_new-build_cruft.mdwn b/doc/todo/cabal_new-build_cruft.mdwn
new file mode 100644
index 00000000..586e9fde
--- /dev/null
+++ b/doc/todo/cabal_new-build_cruft.mdwn
@@ -0,0 +1,17 @@
+cabal new-build (now the default with recent cabal versions) stores stuff
+in dist-newstyle, versioned by the ghc version and the package version.
+
+So, as propellor builds itself on a host over and over again,
+and the host is upgraded and propellor is upgraded, dist-newstyle will
+accumulate cruft used by old builds.
+
+cabal clean can remove it of course, but then it won't update the build
+incrementally.
+
+What would be good is, a way to detect that the versioning has changed,
+and only then run cabal clean. One way to do that, would be when updating
+the propellor symlink to the cabal built binary, compare the old and new
+binary location. If they're not the same, the versioning has changed,
+and so cabal clean and re-build. --[[Joey]]
+
+(Note that stack probably has the same problem too.)
diff --git a/doc/todo/depend_on_concurrent-output.mdwn b/doc/todo/depend_on_concurrent-output.mdwn
index c3641385..48dd829e 100644
--- a/doc/todo/depend_on_concurrent-output.mdwn
+++ b/doc/todo/depend_on_concurrent-output.mdwn
@@ -27,3 +27,26 @@ Waiting on concurrent-output reaching Debian stable.
> from debian. That is a somewhat old version and perhaps it was buggy?
> However, I have not had any luck reproducing the problem there running
> readProcess in ghci. --[[Joey]]
+>
+> > Tried again in 2020, same bugs still happened. On a system running
+> > debian unstable with concurrent-output 1.10.9, and a system running stable that
+> > had cabal installed concurrent-output 1.10.11.
+> >
+> > The former system (kite) had the strange output problem.
+> >
+> > The latter system (keysafe) seemed ok but crashed at the end with
+> > a STM transaction deadlock. Seemed to only happen when spinning the
+> > host remotely, or not always; I tried to reproduce it running propellor
+> > manually to bisect concurrent-output but without success.
+> >
+> > This is really looking like a reversion, or several, in newer
+> > versions of concurrent-output. The code bundled with propellor is
+> > the same as concurrent-output 1.7.4.
+
+> > > I think I've fixed it, concurrent-output (>= 1.10.12 || <= 1.7.4)
+> > > will be needed to avoid the bug. Will be several years until that's
+> > > in debian stable..
+> > >
+> > > I've updated the embedded concurrent-output copy, and it should
+> > > be kept up-to-date as concurrent-output changes, to avoid more
+> > > such reversions. --[[Joey]]