summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2018-02-05 21:27:20 -0700
committerSean Whitton <spwhitton@spwhitton.name>2018-02-05 21:27:20 -0700
commitdc59cda0d6c506fa05905ae230f5027e282ce213 (patch)
tree76f72674ca3457de34a6a246ddb7689bb2673338
parent61895722d0b7469a56cba7faae0f1a8d44ea9d08 (diff)
parente1fd45067b037876a69a3ef741970105f14afbc8 (diff)
Merge tag '5.3.1' into debian
tagging package propellor version 5.3.1 # gpg: Signature made Sun 04 Feb 2018 09:05:14 AM MST # gpg: using RSA key 28A500C35207EAB72F6C0F25DB12DB0FF05F8F38 # gpg: Good signature from "Joey Hess <joeyh@joeyh.name>" [full] # Primary key fingerprint: E85A 5F63 B31D 24C1 EBF0 D81C C910 D922 2512 E3C7 # Subkey fingerprint: 28A5 00C3 5207 EAB7 2F6C 0F25 DB12 DB0F F05F 8F38
-rwxr-xr-xcontrib/post-merge-hook4
-rw-r--r--debian/changelog27
-rw-r--r--doc/forum/Executing_a_property_within_a_explicit_CWD.mdwn11
-rw-r--r--doc/forum/Executing_a_property_within_a_explicit_CWD/comment_1_00e636c4ec122361213f0e1062569704._comment15
-rw-r--r--doc/forum/Executing_a_property_within_a_explicit_CWD/comment_2_b9ba322a7770ca537174795792ec0a40._comment18
-rw-r--r--doc/forum/Executing_a_property_within_a_explicit_CWD/comment_3_60154b98f64306e627a417905e2bef73._comment16
-rw-r--r--doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor.mdwn43
-rw-r--r--doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_1_6ed53a6752f3f88acce023a4fe1b9bf6._comment27
-rw-r--r--doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_2_8592411690ea524b65e4fba580d51ba8._comment10
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date...mdwn20
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_1_79e18b696ed18c998cd2605cccbf3750._comment19
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_2_c8bfbc1eaa3565ed3e92a402c75b63dc._comment10
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_3_ecd5b0d960f1eb92795c559736f92e25._comment34
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_4_93c97f8767a7ae3b9795aea051b0e77e._comment8
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_5_af7919be09eb454b2dca235ede03008f._comment10
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_6_ee440c1ceab7875ad6375b38f4580f08._comment8
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_7_f54ff51d2e413f0bbd534470b4b3b5a6._comment8
-rw-r--r--doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_8_28c9fe9c8acef04998c885161748ad49._comment8
-rw-r--r--doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_17_0c1349784ba28b6fbbd833e76d5075b3._comment24
-rw-r--r--doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_18_adea3a8a65cf954a5244bbb47a1636e4._comment26
-rw-r--r--doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_19_22178bd21d8a44bdd67cad162f71c400._comment11
-rw-r--r--doc/forum/secret-project_deliverable/comment_10_df12578135263d7e0a42415532cb04e3._comment11
-rw-r--r--doc/forum/secret-project_deliverable/comment_11_9cbcee2364a499206d5329c5a88a1211._comment73
-rw-r--r--doc/forum/secret-project_deliverable/comment_12_edebbe9056d9dad486c24f3ce226366c._comment15
-rw-r--r--doc/forum/secret-project_deliverable/comment_13_bdb28cfa4990d60f6767fd857a7398d5._comment11
-rw-r--r--doc/forum/secret-project_deliverable/comment_14_4b6959a061c468f3498005fce19019d0._comment82
-rw-r--r--doc/forum/secret-project_deliverable/comment_3_12d569df836f8c1ec926f00c9c344885._comment81
-rw-r--r--doc/forum/secret-project_deliverable/comment_4_96d1c080c94474edef500d7564c30d77._comment43
-rw-r--r--doc/forum/secret-project_deliverable/comment_5_70eb3b130cb1b7449083669f16452682._comment11
-rw-r--r--doc/forum/secret-project_deliverable/comment_6_a03868f03316f940e3f4edc6ee970292._comment37
-rw-r--r--doc/forum/secret-project_deliverable/comment_7_a707f939469b74dc92a77ffb382a6359._comment9
-rw-r--r--doc/forum/secret-project_deliverable/comment_8_30bc5e081916688468e750de6c95aebf._comment36
-rw-r--r--doc/forum/secret-project_deliverable/comment_9_4a6e1a53f5bf5b72aaafba3a7dd45346._comment10
-rw-r--r--doc/forum/to_teach_propellor_about_other_ARM_boards.mdwn33
-rw-r--r--doc/forum/to_teach_propellor_about_other_ARM_boards/comment_1_70f9d9442616144d6f862c81516e721b._comment18
-rw-r--r--doc/news/version_5.1.0.mdwn18
-rw-r--r--doc/news/version_5.3.0.mdwn16
-rw-r--r--doc/todo/Sbuild_and_jessie.mdwn (renamed from doc/forum/Sbuild_and_jessie.mdwn)2
-rw-r--r--doc/todo/Sbuild_and_jessie/comment_1_31dc85774c182a583aeb1935e9fef2d6._comment (renamed from doc/forum/Sbuild_and_jessie/comment_1_31dc85774c182a583aeb1935e9fef2d6._comment)0
-rw-r--r--doc/todo/Sbuild_and_jessie/comment_2_41ed6253709b18ec799624a66b9b8078._comment (renamed from doc/forum/Sbuild_and_jessie/comment_2_41ed6253709b18ec799624a66b9b8078._comment)0
-rw-r--r--doc/todo/Sbuild_and_jessie/comment_3_a4d6fdbed71270d7a4ffbfe98d1aa479._comment (renamed from doc/forum/Sbuild_and_jessie/comment_3_a4d6fdbed71270d7a4ffbfe98d1aa479._comment)0
-rw-r--r--doc/todo/Sbuild_and_jessie/comment_4_9e409a59abc81786481207ffbbd7c3ac._comment (renamed from doc/forum/Sbuild_and_jessie/comment_4_9e409a59abc81786481207ffbbd7c3ac._comment)0
-rw-r--r--doc/todo/Sbuild_and_jessie/comment_5_6303943e3425b29b1e4727d809574cda._comment (renamed from doc/forum/Sbuild_and_jessie/comment_5_6303943e3425b29b1e4727d809574cda._comment)0
-rw-r--r--doc/todo/Sbuild_and_jessie/comment_6_a88b331c80f57acdf55ac0c0ce3dce6f._comment (renamed from doc/forum/Sbuild_and_jessie/comment_6_a88b331c80f57acdf55ac0c0ce3dce6f._comment)0
-rw-r--r--doc/todo/Sbuild_and_jessie/comment_7_38650a2151201eaf6f40d8becbbe8861._comment (renamed from doc/forum/Sbuild_and_jessie/comment_7_38650a2151201eaf6f40d8becbbe8861._comment)0
-rw-r--r--doc/todo/chroot_localdir_issue.mdwn15
-rw-r--r--doc/todo/etckeeper/comment_4_f4f9f3e3d7c81e631aaec45fdd17dfe8._comment19
-rw-r--r--doc/todo/etckeeper/comment_5_af3b29e3e066c05e4b5a0004f0e57926._comment18
-rw-r--r--doc/todo/partition_properties_should_install_e2fsprogs.mdwn3
-rw-r--r--doc/todo/partition_properties_should_install_e2fsprogs/comment_1_0a6335e03587b18d5ae085f9a7bc0656._comment11
-rw-r--r--doc/todo/partition_properties_should_install_e2fsprogs/comment_2_54a6e8a53221d0db2fe37703cd0a011d._comment8
-rw-r--r--doc/todo/removable_drive_partitioning_and_install.mdwn19
-rw-r--r--doc/usage.mdwn5
-rw-r--r--joeyconfig.hs19
-rw-r--r--privdata/.joeyconfig/privdata.gpg3226
-rw-r--r--propellor.cabal3
-rw-r--r--src/Propellor/DotDir.hs28
-rw-r--r--src/Propellor/Git.hs7
-rw-r--r--src/Propellor/Property.hs4
-rw-r--r--src/Propellor/Property/Cmd.hs3
-rw-r--r--src/Propellor/Property/DiskImage.hs2
-rw-r--r--src/Propellor/Property/DiskImage/PartSpec.hs9
-rw-r--r--src/Propellor/Property/FlashKernel.hs7
-rw-r--r--src/Propellor/Property/Gpg.hs6
-rw-r--r--src/Propellor/Property/Grub.hs65
-rw-r--r--src/Propellor/Property/Installer/Target.hs24
-rw-r--r--src/Propellor/Property/Laptop.hs28
-rw-r--r--src/Propellor/Property/Parted.hs18
-rw-r--r--src/Propellor/Property/Parted/Types.hs7
-rw-r--r--src/Propellor/Property/SiteSpecific/JoeySites.hs21
70 files changed, 2856 insertions, 1582 deletions
diff --git a/contrib/post-merge-hook b/contrib/post-merge-hook
index fa9ab5b6..4bbb1de7 100755
--- a/contrib/post-merge-hook
+++ b/contrib/post-merge-hook
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# git post-merge hook, used by propellor's author to maintain a
-# joeyconfig branch with some changes while being able to merge
+# git post-merge (and post-checkout) hook, used by propellor's author to
+# maintain a joeyconfig branch with some changes while being able to merge
# between it and branches without the changes.
#
# Each time this hook is run, it checks if it's on a branch with
diff --git a/debian/changelog b/debian/changelog
index 536cfef9..e2f62bb2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,30 @@
+propellor (5.3.1) unstable; urgency=medium
+
+ * Last release mistakenly contained my personal branch not master.
+ * contrib/post-merge-hook documentation updated to recommend also using
+ it as a post-checkout hook, to avoid such problems.
+
+ -- Joey Hess <id@joeyh.name> Sun, 04 Feb 2018 12:00:03 -0400
+
+propellor (5.3.0) unstable; urgency=medium
+
+ * Avoid bogus warning about new upstream version when /usr/bin/propellor
+ is run on a Debian system, but ~/.propellor was not cloned from the
+ Debian git bundle.
+ * Parted: Allow partitions to have no filesystem, for eg, GPT BIOS boot
+ partitions. (API change)
+ * Added rawPartition to PartSpec, for specifying partitions with no
+ filesystem.
+ * Added BiosGrubFlag to PartFlag.
+ * Add HasCallStack constraint to pickOS and unsupportedOS, so the
+ call stack includes the caller.
+ * Run su with --login, to avoid inheriting some problematic environment
+ variables, such as TMP, from the caller.
+ * Grub: Added properties to configure /etc/default/grub.
+ * Laptop: New module, starting with powertopAutoTuneOnBoot.
+
+ -- Joey Hess <id@joeyh.name> Thu, 01 Feb 2018 12:27:01 -0400
+
propellor (5.2.0-1) unstable; urgency=medium
* Package new upstream release.
diff --git a/doc/forum/Executing_a_property_within_a_explicit_CWD.mdwn b/doc/forum/Executing_a_property_within_a_explicit_CWD.mdwn
new file mode 100644
index 00000000..e1b6ae7b
--- /dev/null
+++ b/doc/forum/Executing_a_property_within_a_explicit_CWD.mdwn
@@ -0,0 +1,11 @@
+I am trying to create a Property to install (and configure) gitlab through Propellor.
+To perform the installation and configuration I am using Apt.installed and Apt.reConfigure. When ever Propellor has to go though configuration of the package it «fails» (cf. bug report on gitlab package :
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886657
+
+Awaiting a resolution of the bug itself, a workaround would be to perform the apt-get install or dpkg-reconfigure from a «world-readable» directory (such as /tmp or /etc or ...). Currently these properties are executed with CWD eing the propellor repository.
+
+I have looked for, but not found yet, a way to perform the work of this property within a specific directory.
+
+Thanks in advance for any help or pointers,
+
+Serge.
diff --git a/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_1_00e636c4ec122361213f0e1062569704._comment b/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_1_00e636c4ec122361213f0e1062569704._comment
new file mode 100644
index 00000000..b898b822
--- /dev/null
+++ b/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_1_00e636c4ec122361213f0e1062569704._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2018-01-08T18:33:06Z"
+ content="""
+Since propellor can run multiple properties at the same time
+(Propellor.Property.Concurrent), setting the CWD while running a property
+is probably not a good idea, as it would affect any other property that's
+currently running. Might be possible to fork and set CWD,
+but haskell is not great at supporting fork w/o exec.
+
+Instead, the best way to do it is to use `createProcess` with
+`{cwd = whatever}` when your property runs apt and dpkg-reconfigure.
+See Property.DnsSec.forceZoneSigned for an example.
+"""]]
diff --git a/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_2_b9ba322a7770ca537174795792ec0a40._comment b/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_2_b9ba322a7770ca537174795792ec0a40._comment
new file mode 100644
index 00000000..aba3618f
--- /dev/null
+++ b/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_2_b9ba322a7770ca537174795792ec0a40._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="serge1cohen@4282f0c177ae4ac2f90ceddf63d2281e1f739cb1"
+ nickname="serge1cohen"
+ avatar="http://cdn.libravatar.org/avatar/c86bcca74216ed367c91a99ff27259f0"
+ subject="To be sure to understand…"
+ date="2018-01-08T20:49:28Z"
+ content="""
+Hi again,
+
+Thanks for the swift answer. As I am not (yet ?-) an expert of either Haskell or Propellor I'd prefer to be sure before going further.
+Your proposal is to somehow «copy» the machinery of Apt.installed and Apt.reConfigure but using this time «createProcess with {cwd = whatever}». And I should find useful examples/snippets to implement this in the Property.DnsSec.forceZoneSigned sources.
+
+If I manage that I'll definitely propose a contribution on it :-)
+
+By the way, thanks for the complete system. As often elegance comes with a great quality of use !
+
+Serge.
+"""]]
diff --git a/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_3_60154b98f64306e627a417905e2bef73._comment b/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_3_60154b98f64306e627a417905e2bef73._comment
new file mode 100644
index 00000000..e24bc461
--- /dev/null
+++ b/doc/forum/Executing_a_property_within_a_explicit_CWD/comment_3_60154b98f64306e627a417905e2bef73._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2018-01-08T22:52:51Z"
+ content="""
+That is what I was suggesting yes.
+
+Another way to do it is using `cmdProperty'`, for example:
+
+ import Utility.Process
+ import Propellor.Property.Cmd
+
+ foo = cmdProperty' "apt-get" ["-y", "install", "gitlab"]
+ (\p -> p { cwd = Just "/tmp" })
+ `assume` MadeChange
+"""]]
diff --git a/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor.mdwn b/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor.mdwn
new file mode 100644
index 00000000..8625ee00
--- /dev/null
+++ b/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor.mdwn
@@ -0,0 +1,43 @@
+Hello,
+
+I merged 5.2.0 into my .propellor, last merge was merging f6797bed.
+
+Since the merge, when I try to spin, I get:
+
+ riva4.ni.fr.eu.org has ipv4 91.121.114.4 ... ok
+ ** warning: Unknown host OS is not supported by this property.
+ CallStack (from HasCallStack):
+ error, called at src/Propellor/Property.hs:350:30 in main:Propellor.Property
+ riva4.ni.fr.eu.org container vz-web2 ... failed
+ riva4.ni.fr.eu.org overall ... failed
+
+I have in my config.hs:
+
+ riva4 :: Host
+ riva4 = host "riva4.ni.fr.eu.org" $ props
+ & ipv4 "91.121.114.4"
+ & stdContainerSpawn "vz-web2" "2g" vzWeb2
+
+ stdContainerSpawn :: Systemd.MachineName
+ -> String
+ -> Systemd.Container
+ -> Property (HasInfo + DebianLike)
+ stdContainerSpawn name size container =
+ Lvm.lvFormatted Lvm.YesReallyFormatLogicalVolume
+ (Lvm.LogicalVolume name (Lvm.VolumeGroup "vg0")) size
+ Partition.EXT4
+ `before` Fstab.mounted "auto" dev dir mempty
+ `before` Systemd.nspawned container
+ `describe` ("container " ++ name)
+ where
+ dev = "/dev/vg0" </> name
+ dir = "/var/lib/container" </> name
+
+ vzWeb2 :: Systemd.Container
+ vzWeb2 = Systemd.debContainer "vz-web2" $ props
+ & osDebian (Stable "stretch") X86_64
+ & ipv4 "10.42.2.13"
+
+I reviewed all changes in propellor, but I cannot find what can cause this.
+
+How can I debug this?
diff --git a/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_1_6ed53a6752f3f88acce023a4fe1b9bf6._comment b/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_1_6ed53a6752f3f88acce023a4fe1b9bf6._comment
new file mode 100644
index 00000000..608bc3e2
--- /dev/null
+++ b/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_1_6ed53a6752f3f88acce023a4fe1b9bf6._comment
@@ -0,0 +1,27 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2018-01-24T16:55:19Z"
+ content="""
+This comes from something using `unsupportedOS'`, perhaps via `pickOS`.
+
+Probably it's coming from the use of `Systemd.nspawned`,
+which is going to use debootstrap to build the container,
+since the container uses debian. To use debootstrap,
+it needs to install it, and `Debootstrap.installed`
+uses `pickOS` to work out how to install it, but only supports
+installing debootstrap on linux hosts. Your riva4 host does not have its OS
+declared, leading to the failure.
+
+It seems there ought to be a way to get a deeper call
+stack, to make it easier to work this out. It's possible to build
+propellor with profiling and get a complete call stack, as shown at
+<https://wiki.haskell.org/Debugging#Stack_trace>. It might make sense for
+propellor to always be built that way.
+
+A simpler approach is to
+add `HasCallStack =>` constraints to `pickOS` and `unsupportedOS'`,
+so that those will have a call stack that reaches back to their
+caller, which in your case would reach back to `Debootstrap.installed`,
+which is probably enough. For now, I've made this change.
+"""]]
diff --git a/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_2_8592411690ea524b65e4fba580d51ba8._comment b/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_2_8592411690ea524b65e4fba580d51ba8._comment
new file mode 100644
index 00000000..430c4e90
--- /dev/null
+++ b/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_2_8592411690ea524b65e4fba580d51ba8._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="Nicolas.Schodet"
+ avatar="http://cdn.libravatar.org/avatar/0d7ec808ec329d04ee9a93c0da3c0089"
+ subject="response"
+ date="2018-01-29T20:49:46Z"
+ content="""
+Thanks, it works :)
+
+riva4 is not configured by propellor yet, but osDebian does not touch anything so it's OK.
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date...mdwn b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date...mdwn
new file mode 100644
index 00000000..7f912eb8
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date...mdwn
@@ -0,0 +1,20 @@
+Hi,
+
+After upgrading from propellor 5.1.0 to 5.2.0 I do get
+
+ ** warning: ** Your ~/.propellor/ is out of date..
+
+
+
+The `~/.propellor` directory was created with
+
+ propellor --init
+
+
+
+Is there a
+
+ propellor --update-my-home-propellor
+
+
+??
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_1_79e18b696ed18c998cd2605cccbf3750._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_1_79e18b696ed18c998cd2605cccbf3750._comment
new file mode 100644
index 00000000..6c8d187a
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_1_79e18b696ed18c998cd2605cccbf3750._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2017-12-31T16:03:40Z"
+ content="""
+You'd update it by git merge with propellor upstream, since your ~/.propellor
+in this case is forked from propellor's git repository, rather than the other
+option of being a separate git repository that uses propellor as a library.
+
+I think there should be more to the message than what you showed,
+explaining what you'd to do merge.
+
+ warningMessage ("** Your ~/.propellor/ is out of date..")
+ let also s = hPutStrLn stderr (" " ++ s)
+ also ("A newer upstream version is available in " ++ distrepo)
+ if havebranch
+ then also ("To merge it, run: git merge " ++ upstreambranch)
+ else also ("To merge it, find the most recent commit in your repository's history that corresponds to an upstream release of propellor, and set refs/remotes/" ++ upstreambranch ++ " to it. Then run propellor again.")
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_2_c8bfbc1eaa3565ed3e92a402c75b63dc._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_2_c8bfbc1eaa3565ed3e92a402c75b63dc._comment
new file mode 100644
index 00000000..46028b1e
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_2_c8bfbc1eaa3565ed3e92a402c75b63dc._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ avatar="http://cdn.libravatar.org/avatar/9c3f08f80e67733fd506c353239569eb"
+ subject="comment 2"
+ date="2018-01-01T11:10:01Z"
+ content="""
+If you update by merging from Joey's repo but have the Debian propellor package installed you'll always get this because the bundle in `/usr/src/propellor` has a commit ID that is distinct from any of those in Joey's branch.
+
+I think it would be nice to have a git config option to disable the check for those of us in the situation I just described.
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_3_ecd5b0d960f1eb92795c559736f92e25._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_3_ecd5b0d960f1eb92795c559736f92e25._comment
new file mode 100644
index 00000000..a6a24f53
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_3_ecd5b0d960f1eb92795c559736f92e25._comment
@@ -0,0 +1,34 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="twice the warning"
+ date="2018-01-01T15:57:05Z"
+ content="""
+The warning is printed twice.
+
+One at the very beginning:
+
+ stappers@paddy:~
+ $ propellor paddy.gpm.stappers.nl
+ A newer upstream version is available in /usr/src/propellor/propellor.git
+ To merge it, run: git merge upstream/master
+
+ [2018-01-01 16:42:54 CET] command line: Run \"paddy.gpm.stappers.nl\"
+
+
+The other at the end of executing:
+
+ loop deleted : /dev/loop0
+ paddy.gpm.stappers.nl built disk image /srv/image/lime.img ... done
+ paddy.gpm.stappers.nl overall ... done
+ Shared connection to paddy.gpm.stappers.nl closed.
+ ** warning: ** Your ~/.propellor/ is out of date..
+ stappers@paddy:~
+ $
+
+It was the last one that made me report this.
+The one that is color highlighted,
+the one that doesn't have the `git merge` advice.
+
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_4_93c97f8767a7ae3b9795aea051b0e77e._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_4_93c97f8767a7ae3b9795aea051b0e77e._comment
new file mode 100644
index 00000000..73dd3fec
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_4_93c97f8767a7ae3b9795aea051b0e77e._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2018-01-02T16:36:32Z"
+ content="""
+Ah I see, it was mixing concurrent output with unbuffered output, which in
+this case caused the related messages to appear separated. Fixed that.
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_5_af7919be09eb454b2dca235ede03008f._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_5_af7919be09eb454b2dca235ede03008f._comment
new file mode 100644
index 00000000..157e7803
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_5_af7919be09eb454b2dca235ede03008f._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2018-01-02T17:08:07Z"
+ content="""
+@spwhitton ah, I had not noticed that case. I found a way to avoid the
+unncessary warning in that case; since there's no upstream/master ref when
+~/.propellor has not been cloned from the debian git bundle, it can detect
+that and avoid warning. Done so.
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_6_ee440c1ceab7875ad6375b38f4580f08._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_6_ee440c1ceab7875ad6375b38f4580f08._comment
new file mode 100644
index 00000000..d867906e
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_6_ee440c1ceab7875ad6375b38f4580f08._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ avatar="http://cdn.libravatar.org/avatar/9c3f08f80e67733fd506c353239569eb"
+ subject="comment 6"
+ date="2018-01-03T14:46:48Z"
+ content="""
+Thanks for this fix! However, in my case I am going to have to do `git remote rename upstream joey` ;)
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_7_f54ff51d2e413f0bbd534470b4b3b5a6._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_7_f54ff51d2e413f0bbd534470b4b3b5a6._comment
new file mode 100644
index 00000000..5423db28
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_7_f54ff51d2e413f0bbd534470b4b3b5a6._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 7"""
+ date="2018-01-04T18:49:14Z"
+ content="""
+@spwhitton, ah but in that case you have a remote named "upstream", so
+it can assume you don't want it messing with upstream/master. Done!
+"""]]
diff --git a/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_8_28c9fe9c8acef04998c885161748ad49._comment b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_8_28c9fe9c8acef04998c885161748ad49._comment
new file mode 100644
index 00000000..0317b488
--- /dev/null
+++ b/doc/forum/__42____42___warning:___42____42___Your___126____47__.propellor__47___is_out_of_date../comment_8_28c9fe9c8acef04998c885161748ad49._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ avatar="http://cdn.libravatar.org/avatar/9c3f08f80e67733fd506c353239569eb"
+ subject="comment 8"
+ date="2018-01-05T08:49:56Z"
+ content="""
+Sweet! Thanks again!
+"""]]
diff --git a/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_17_0c1349784ba28b6fbbd833e76d5075b3._comment b/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_17_0c1349784ba28b6fbbd833e76d5075b3._comment
new file mode 100644
index 00000000..994d432c
--- /dev/null
+++ b/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_17_0c1349784ba28b6fbbd833e76d5075b3._comment
@@ -0,0 +1,24 @@
+[[!comment format=mdwn
+ username="gueux"
+ avatar="http://cdn.libravatar.org/avatar/2982bac2c2cd94ab3860efb189deafc8"
+ subject="comment 17"
+ date="2018-01-05T17:57:40Z"
+ content="""
+As the config with Grub.EFI64 didn't boot, I'd like to be sure that Grub.MSDOS does not boot either. But GPT tables seem to need a BIOS Boot partition:
+
+ creating /srv/router.img of size 1.67 gigabytes
+ mkfs.fat 4.1 (2017-01-24)
+ loop deleted : /dev/loop0
+ 26,473,509 100% 206.69MB/s 0:00:00 (xfr#5, to-chk=0/7)
+ 772,611,350 99% 60.26MB/s 0:00:12 (xfr#26272, to-chk=0/33603)
+ update-initramfs: Generating /boot/initrd.img-4.9.0-5-amd64
+ Generating grub configuration file ...
+ Found linux image: /boot/vmlinuz-4.9.0-5-amd64
+ Found initrd image: /boot/initrd.img-4.9.0-5-amd64
+ done
+ Installing for i386-pc platform.
+ grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
+ grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
+ grub-install: error: will not proceed with blocklists.
+
+"""]]
diff --git a/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_18_adea3a8a65cf954a5244bbb47a1636e4._comment b/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_18_adea3a8a65cf954a5244bbb47a1636e4._comment
new file mode 100644
index 00000000..8a9a380e
--- /dev/null
+++ b/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_18_adea3a8a65cf954a5244bbb47a1636e4._comment
@@ -0,0 +1,26 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 18"""
+ date="2018-01-06T17:51:05Z"
+ content="""
+I don't know much about GPT boot stuff. I found mention of a BIOS boot
+partition for GPT here:
+
+<https://help.ubuntu.com/community/DiskSpace>
+
+So, 1 mb partition with no filesystem and a "bios_grub" flag.
+
+Propellor's partitioning DSL will need to be extended in order to
+support that. Currently, `Partition` has a `Fs` that is one of the common
+filesystems or swap. Now we need no filesystem, so either add a NoFs to Fs,
+or change it to use `Maybe Fs`. I chose the latter, because with NoFs,
+Partition.formatted would be a no-op, which would be kinda surprising.
+
+I've made a commit adding all the stuff you should need, but I have not
+tested making a BIOS boot partition with it. Should look
+something like this:
+
+ & hasPartition (rawPartition (MegaBytes 1) `setFlag` BiosGrubFlag)
+
+If you get it working, it would be good to add an example to propellor's docs.
+"""]]
diff --git a/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_19_22178bd21d8a44bdd67cad162f71c400._comment b/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_19_22178bd21d8a44bdd67cad162f71c400._comment
new file mode 100644
index 00000000..bd34df0a
--- /dev/null
+++ b/doc/forum/imageBuiltFor_mount_points_not_automatically_created/comment_19_22178bd21d8a44bdd67cad162f71c400._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="gueux"
+ avatar="http://cdn.libravatar.org/avatar/2982bac2c2cd94ab3860efb189deafc8"
+ subject="comment 19"
+ date="2018-01-29T17:55:43Z"
+ content="""
+I tried several configurations, without success. Without a serial console, that was not fun to debug... I finally tried to boot the image with qemu, and that worked! So I thought that maybe I should try to use a MSDOS partition table instead of a GPT one, just to be sure. And that finally produced a bootable image on that damn card! :) I'll report a bug to PCEngines. It's unfortunate I can't test the GPT code more, but it would probably work, as it booted in qemu.
+
+Thanks a lot Joey!
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_10_df12578135263d7e0a42415532cb04e3._comment b/doc/forum/secret-project_deliverable/comment_10_df12578135263d7e0a42415532cb04e3._comment
new file mode 100644
index 00000000..a3d93892
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_10_df12578135263d7e0a42415532cb04e3._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="unstuck"
+ date="2018-01-02T20:20:24Z"
+ content="""
+After removing the `.stack-work` directory I got beyond the Installer.Types error.
+
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_11_9cbcee2364a499206d5329c5a88a1211._comment b/doc/forum/secret-project_deliverable/comment_11_9cbcee2364a499206d5329c5a88a1211._comment
new file mode 100644
index 00000000..be3346e3
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_11_9cbcee2364a499206d5329c5a88a1211._comment
@@ -0,0 +1,73 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="two git repos and one /usr/local/propellor"
+ date="2018-01-02T20:43:54Z"
+ content="""
+Perhaps I don't understand the secret-project and its special buid with stack.
+
+
+I have a git repo in `~/.propellor` and I have a git repo in `~/src/secret-project`.
+
+
+In the ~/secret-project directory
+
+ $ propellor
+ Pull from central git repository ... done
+ Copying from /home/stappers/src/secret-project/.stack-work/install/x86_64-linux-nopie/lts-8.12/8.0.2/bin/propellor-config to /home/stappers/src/secret-project/.built/propellor-config
+
+ Copied executables to /home/stappers/src/secret-project/.built:
+ - propellor-config
+
+ Warning: Installation path /home/stappers/src/secret-project/.built
+ not found on the PATH environment variable.
+ Propellor build ... done
+ [master fb46460] propellor spin
+ Git commit ... done
+ error: Cannot access URL https://git.joeyh.name/git/secret-project.git/, return code 22
+ fatal: git-http-push failed
+ error: failed to push some refs to 'https://git.joeyh.name/git/secret-project.git'
+ Push to central git repository ... failed
+ Pull from central git repository ... done
+ ** warning: git branch origin/master is not signed with a trusted gpg key; refusing to deploy it! (Running with previous configuration instead.)
+ Sending privdata (11 bytes) to paddy.gpm.stappers.nl ... done
+ remote: Counting objects: 6, done.
+ remote: Compressing objects: 100% (6/6), done.
+ remote: Total 6 (delta 4), reused 0 (delta 0)
+ Sending git update to paddy.gpm.stappers.nl ... done
+ From .
+ * branch HEAD -> FETCH_HEAD
+ fatal: refusing to merge unrelated histories
+ ** error: git merge from client failed
+ propellor: Cannot continue!
+ CallStack (from HasCallStack):
+ error, called at src/Propellor/Message.hs:143:9 in main:Propellor.Message
+ propellor: user error (ssh [\"-o\",\"ControlPath=/home/stappers/.ssh/propellor/paddy.gpm.stappers.nl.sock\",
+ \"-o\",\"ControlMaster=auto\",
+ \"-o\",\"ControlPersist=yes\",
+ \"root@paddy.gpm.stappers.nl\",
+ \"sh -c 'if [ ! -d /usr/local/propellor/.git ] ;
+ then (if ! git --version >/dev/null 2>&1;
+ 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 /usr/local/propellor && if ! stack build --dry-run >/dev/null 2>&1;
+ then ( apt-get update ;
+ DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends -y install gnupg ;
+ DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends -y install haskell-stack ;
+ stack setup ;
+ stack build --only-dependencies :propellor-config) || true;
+ fi&& if ! test -x ./propellor;
+ then stack build :propellor-config && ln -sf $(stack path --dist-dir)/build/propellor-config/propellor-config propellor;
+ fi;
+ if test -x ./propellor && ! ./propellor --check;
+ then stack clean && stack build :propellor-config && ln -sf $(stack path --dist-dir)/build/propellor-config/propellor-config propellor;
+ fi && ./propellor --boot paddy.gpm.stappers.nl ;
+ fi'\"] exited 1)
+ stappers@paddy:~/src/secret-project
+ $
+
+
+The `/usr/local/propellor/` has already a .git directory from ~/.propellor ...
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_12_edebbe9056d9dad486c24f3ce226366c._comment b/doc/forum/secret-project_deliverable/comment_12_edebbe9056d9dad486c24f3ce226366c._comment
new file mode 100644
index 00000000..43f2dff5
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_12_edebbe9056d9dad486c24f3ce226366c._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="buid should be build"
+ date="2018-01-02T20:46:53Z"
+ content="""
+The
+
+ special buid with stack
+
+in previous comment should have been
+
+ special build with stack
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_13_bdb28cfa4990d60f6767fd857a7398d5._comment b/doc/forum/secret-project_deliverable/comment_13_bdb28cfa4990d60f6767fd857a7398d5._comment
new file mode 100644
index 00000000..e7a110bc
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_13_bdb28cfa4990d60f6767fd857a7398d5._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 13"""
+ date="2018-01-02T21:21:49Z"
+ content="""
+Yes, I also found it kind of annoying to need to move /usr/local/propellor
+out of the way when I was working on secret-project. This is why I'd like
+it to be usable without propellor --spin so that directory would not be
+used, but until the bug with that can be fixed, you can't work on
+secret-project with an unrelated other propellor config at the same time.
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_14_4b6959a061c468f3498005fce19019d0._comment b/doc/forum/secret-project_deliverable/comment_14_4b6959a061c468f3498005fce19019d0._comment
new file mode 100644
index 00000000..70e222fc
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_14_4b6959a061c468f3498005fce19019d0._comment
@@ -0,0 +1,82 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="central git repository git.joeyh.name"
+ date="2018-01-07T22:10:40Z"
+ content="""
+I got my copy of `secret-project` by
+
+ git clone https://git.joeyh.name/git/secret-project.git
+
+During build it tries to contact git.joeyh.name
+
+ $ propellor
+ Pull from central git repository ... done
+ Copying from /home/stappers/src/secret-project/.stack-work/install/x86_64-linux-nopie/lts-8.12/8.0.2/bin/propellor-config to /home/stappers/src/secret-project/.built/propellor-config
+
+ Copied executables to /home/stappers/src/secret-project/.built:
+ - propellor-config
+
+ Warning: Installation path /home/stappers/src/secret-project/.built
+ not found on the PATH environment variable.
+ Propellor build ... done
+ [master 7d7bc07] propellor spin
+ Git commit ... done
+ error: Cannot access URL https://git.joeyh.name/git/secret-project.git/, return code 22
+ fatal: git-http-push failed
+ error: failed to push some refs to 'https://git.joeyh.name/git/secret-Push to central git repository ... failed
+ project.git'
+ Stop listening request sent.
+ Pull from central git repository ... done
+ Sending privdata (11 bytes) to paddy.gpm.stappers.nl ... done
+ remote: Counting objects: 1, done.
+ remote: Total 1 (delta 0), reused 0 (delta 0)
+ Sending git update to paddy.gpm.stappers.nl ... done
+ From .
+ * branch HEAD -> FETCH_HEAD
+ Pull from central git repository ... done
+ Copying from /usr/local/propellor/.stack-work/install/x86_64-linux-nopie/lts-8.12/8.0.2/bin/propellor-config to /usr/local/propellor/.built/propellor-config
+
+ Copied executables to /usr/local/propellor/.built:
+ - propellor-config
+
+ Warning: Installation path /usr/local/propellor/.built not found on the PATH environment variable.
+ Propellor build ... done
+ Pull from central git repository ... done
+ paddy.gpm.stappers.nl has propellor bootstrapped with stack ... ok
+ paddy.gpm.stappers.nl has Operating System (Debian Linux Unstable) X86_64 ... ok
+ debian.local no services started ... ok
+ debian.local has Operating System (Debian Linux Unstable) X86_64 ... ok
+ debian.local sane hostname ... ok
+ debian.local standard sources.list ... ok
+ debian.local apt installed linux-image-amd64 ... ok
+ debian.local grub package installed ... ok
+ debian.local XFCE desktop installed ... ok
+ debian.local apt installed firefox ... ok
+ debian.local en_US.UTF-8 locale selected ... ok
+ fatal: unable to access 'https://git.joeyh.name/git/secret-project.git/': Could not resolve host: git.joeyh.name
+ debian.local has propellor bootstrapped with stack ... ok
+ debian.local Propellor bootstrapped ... failed
+ debian.local user installer in group audio ... ok
+ debian.local user installer in group cdrom ... ok
+ debian.local user installer in group dip ... ok
+ debian.local user installer in group floppy ... ok
+ debian.local user installer in group video ... ok
+ debian.local user installer in group plugdev ... ok
+ debian.local user installer in group netdev ... ok
+ debian.local user installer in group scanner ... ok
+ debian.local user installer in group lpadmin ... ok
+ debian.local has desktop user installer and not has desktop user user ... done
+ debian.local autostart installer UI ... ok
+ debian.local apt installed rsync ... ok
+ debian.local cache cleaned ... ok
+ paddy.gpm.stappers.nl built disk image /srv/installer.vmdk ... failed
+ paddy.gpm.stappers.nl overall ... failed
+ Shared connection to paddy.gpm.stappers.nl closed.
+ propellor: remote propellor failed
+ $
+
+How to avoid connecting to git.joeyh.name during build?
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_3_12d569df836f8c1ec926f00c9c344885._comment b/doc/forum/secret-project_deliverable/comment_3_12d569df836f8c1ec926f00c9c344885._comment
new file mode 100644
index 00000000..8c5290e3
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_3_12d569df836f8c1ec926f00c9c344885._comment
@@ -0,0 +1,81 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="stuck"
+ date="2017-12-30T23:27:11Z"
+ content="""
+Hi,
+
+I feel stupid because I'm still stuck.
+
+What I have is ''secret-project'' from git, commit 14433a9494ed2946c8683a19a13dde54eae64723,
+Author: Joey Hess <joeyh@joeyh.name>,
+Date: Sat Dec 30 13:38:06 2017 -0400
+
+I, stappers, work on host with FQDN paddy.gpm.stappers.nl so I have these changes:
+
+ --- a/config.hs
+ +++ b/config.hs
+ @@ -31,7 +31,7 @@ hosts =
+ -- to build the installer disk images, by running, as root:
+ -- propellor installer.builder
+ installer_builder :: Host
+ -installer_builder = host \"installer.builder\" $ props
+ +installer_builder = host \"previous_attempt_on_paddy.gpm.stappers.nl\" $ props
+ & bootstrapWith (Robustly Stack) -- temporary
+ & osDebian Unstable X86_64
+ & installerBuilt
+ @@ -42,12 +42,12 @@ installer_builder = host \"installer.builder\" $ props
+ -- propellor --spin darkstar.kitenet.net
+ -- (Replace darkstar with your own hostname.)
+ darkstar :: Host
+ -darkstar = host \"darkstar.kitenet.net\" $ props
+ +darkstar = host \"paddy.gpm.stappers.nl\" $ props
+ & bootstrapWith (Robustly Stack) -- temporary
+ & osDebian Unstable X86_64
+ & installerBuilt
+ - `before` File.ownerGroup \"/srv/installer.img\" (User \"joey\") (Group \"joey\")
+ - `before` File.ownerGroup \"/srv/installer.vmdk\" (User \"joey\") (Group \"joey\")
+ + `before` File.ownerGroup \"/srv/installer.img\" (User \"stappers\") (Group \"stappers\")
+ + `before` File.ownerGroup \"/srv/installer.vmdk\" (User \"stappers\") (Group \"stappers\")
+
+ -- | Build a disk image for the installer.
+ installerBuilt :: RevertableProperty (HasInfo + DebianLike) Linux
+
+
+When I follow the instructions from README I get:
+
+ $ stack build
+ secret-project-0.0: build (exe)
+ Preprocessing executable 'propellor-config' for secret-project-0.0...
+ [9 of 9] Compiling Main ( config.hs, .stack-work/dist/x86_64-linux-nopie/Cabal-1.24.2.0/build/propellor-config/propellor-config-tmp/Main.o )
+ Linking .stack-work/dist/x86_64-linux-nopie/Cabal-1.24.2.0/build/propellor-config/propellor-config ...
+
+ Warning: The following modules should be added to exposed-modules or other-modules in /home/stappers/src/secret-project/secret-project.cabal:
+ - In propellor-config component:
+ Installer.Types
+
+ Missing modules in the cabal file are likely to cause undefined reference errors from the linker, along with other problems.
+ secret-project-0.0: copy/register
+ Installing executable(s) in
+ /home/stappers/src/secret-project/.stack-work/install/x86_64-linux-nopie/lts-8.12/8.0.2/bin
+ $ sudo stack --allow-different-user exec propellor-config paddy.gpm.stappers.nl
+ Pull from central git repository ... done
+ paddy.gpm.stappers.nl has propellor bootstrapped with stack ... ok
+ paddy.gpm.stappers.nl has Operating System (Debian Linux Unstable) X86_64 ... ok
+ ** error: cannot find chroot /srv/installer.img.chroot on host paddy.gpm.stappers.nl
+ propellor: Cannot continue!
+ CallStack (from HasCallStack):
+ error, called at src/Propellor/Message.hs:143:9 in main:Propellor.Message
+ ** warning: user error (chroot [\"/srv/installer.img.chroot\"
+ ,\"/usr/local/propellor/chroot/_srv_installer.img.chroot.shim/propellor\"
+ ,\"--continue\"
+ ,\"ChrootChain \\"paddy.gpm.stappers.nl\\" \\"/srv/installer.img.chroot\\" False True\"] exited 1)
+ paddy.gpm.stappers.nl built disk image /srv/installer.vmdk ... failed
+ paddy.gpm.stappers.nl overall ... failed
+ $
+
+How do I get unstuck??
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_4_96d1c080c94474edef500d7564c30d77._comment b/doc/forum/secret-project_deliverable/comment_4_96d1c080c94474edef500d7564c30d77._comment
new file mode 100644
index 00000000..67080b02
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_4_96d1c080c94474edef500d7564c30d77._comment
@@ -0,0 +1,43 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="patch"
+ date="2017-12-30T23:37:58Z"
+ content="""
+After applying this
+
+ --- a/secret-project.cabal
+ +++ b/secret-project.cabal
+ @@ -35,6 +35,7 @@ Executable propellor-config
+ Installer.Progress
+ Installer.Server
+ Installer.StoreUserInput
+ + Installer.Types
+ Installer.UI
+ Installer.User
+ Installer.UserInput
+
+is `stack build` happy.
+
+But help needed for:
+
+ $ sudo stack --allow-different-user exec propellor-config paddy.gpm.stappers.nl
+ Pull from central git repository ... done
+ paddy.gpm.stappers.nl has propellor bootstrapped with stack ... ok
+ paddy.gpm.stappers.nl has Operating System (Debian Linux Unstable) X86_64 ... ok
+ ** error: cannot find chroot /srv/installer.img.chroot on host paddy.gpm.stappers.nl
+ propellor: Cannot continue!
+ CallStack (from HasCallStack):
+ error, called at src/Propellor/Message.hs:143:9 in main:Propellor.Message
+ ** warning: user error (chroot [\"/srv/installer.img.chroot\"
+ ,\"/usr/local/propellor/chroot/_srv_installer.img.chroot.shim/propellor\"
+ ,\"--continue\"
+ ,\"ChrootChain \\"paddy.gpm.stappers.nl\\" \\"/srv/installer.img.chroot\\" False True\"] exited 1)
+ paddy.gpm.stappers.nl built disk image /srv/installer.vmdk ... failed
+ paddy.gpm.stappers.nl overall ... failed
+ $
+
+
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_5_70eb3b130cb1b7449083669f16452682._comment b/doc/forum/secret-project_deliverable/comment_5_70eb3b130cb1b7449083669f16452682._comment
new file mode 100644
index 00000000..5158dbe6
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_5_70eb3b130cb1b7449083669f16452682._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2017-12-31T00:46:49Z"
+ content="""
+I think this is more bad documentation on my part;
+probably running propellor like that does not fully work
+and only the propellor --spin method will really work currently.
+
+(Kind of a bug in propellor to; [[todo/chroot_localdir_issue]])
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_6_a03868f03316f940e3f4edc6ee970292._comment b/doc/forum/secret-project_deliverable/comment_6_a03868f03316f940e3f4edc6ee970292._comment
new file mode 100644
index 00000000..e048132c
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_6_a03868f03316f940e3f4edc6ee970292._comment
@@ -0,0 +1,37 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="Enough for this year ;-)"
+ date="2017-12-31T08:51:02Z"
+ content="""
+ stappers@paddy:~/src/secret-project
+ $ propellor --spin paddy.gpm.stappers.nl
+ Resolving dependencies...
+ Warning: solver failed to find a solution:
+ Could not resolve dependencies:
+ trying: secret-project-0.0 (user goal)
+ next goal: random-shuffle (dependency of secret-project-0.0)
+ Dependency tree exhaustively searched.
+ Trying configure anyway.
+ Configuring secret-project-0.0...
+ cabal: Encountered missing dependencies:
+ propellor ==5.2.0,
+ random >=1.1,
+ random-shuffle >=0.0.4,
+ threepenny-gui ==0.8.0.0
+ propellor: failed to make dist/setup-config
+ CallStack (from HasCallStack):
+ error, called at src/Propellor/Bootstrap.hs:322:25 in main:Propellor.Bootstrap
+ stappers@paddy:~/src/secret-project
+ $ LANG=C dpkg -l propellor
+ Desired=Unknown/Install/Remove/Purge/Hold
+ | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
+ |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
+ ||/ Name Version Architecture Description
+ +++-================-=============-=============-=====================================
+ ii propellor 5.2.0 amd64 property-based host configuration man
+ stappers@paddy:~/src/secret-project
+ $
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_7_a707f939469b74dc92a77ffb382a6359._comment b/doc/forum/secret-project_deliverable/comment_7_a707f939469b74dc92a77ffb382a6359._comment
new file mode 100644
index 00000000..404dd405
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_7_a707f939469b74dc92a77ffb382a6359._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 7"""
+ date="2017-12-31T15:07:40Z"
+ content="""
+Oh yeah, I forgot that needs first:
+
+ git config propellor.buildsystem stack
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_8_30bc5e081916688468e750de6c95aebf._comment b/doc/forum/secret-project_deliverable/comment_8_30bc5e081916688468e750de6c95aebf._comment
new file mode 100644
index 00000000..401cd6a9
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_8_30bc5e081916688468e750de6c95aebf._comment
@@ -0,0 +1,36 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="Happy New Year"
+ date="2018-01-01T14:51:59Z"
+ content="""
+ stappers@paddy:~/src/secret-project
+ $ git config propellor.buildsystem stack
+ stappers@paddy:~/src/secret-project
+ $ propellor --spin paddy.gpm.stappers.nl
+ Building all executables for `secret-project' once. After a successful build of all of them, only specified executables will be rebuilt.
+ secret-project-0.0: build (exe)
+ Preprocessing executable 'propellor-config' for secret-project-0.0...
+ [1 of 9] Compiling Installer.Types ( Installer/Types.hs, .stack-work/dist/x86_64-linux-nopie/Cabal-1.24.2.0/build/propellor-config/propellor-config-tmp/Installer/Types.o )
+
+ /home/stappers/src/secret-project/Installer/Types.hs:3:1: error:
+ Failed to load interface for ‘Propellor.Property.Installer.Types’
+ There are files missing in the ‘propellor-5.2.0’ package,
+ try running 'ghc-pkg check'.
+ Use -v to see a list of the files searched for.
+
+ -- While building custom Setup.hs for package secret-project-0.0 using:
+ /home/stappers/.stack/setup-exe-cache/x86_64-linux-nopie/Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 \
+ --builddir=.stack-work/dist/x86_64-linux-nopie/Cabal-1.24.2.0 build exe:propellor-config \
+ --ghc-options \" -ddump-hi -ddump-to-file\"
+ Process exited with code: ExitFailure 1
+ Propellor build ... failed
+ ** error: Propellor build failed!
+ propellor: Cannot continue!
+ CallStack (from HasCallStack):
+ error, called at src/Propellor/Message.hs:143:9 in main:Propellor.Message
+ stappers@paddy:~/src/secret-project
+ $
+
+"""]]
diff --git a/doc/forum/secret-project_deliverable/comment_9_4a6e1a53f5bf5b72aaafba3a7dd45346._comment b/doc/forum/secret-project_deliverable/comment_9_4a6e1a53f5bf5b72aaafba3a7dd45346._comment
new file mode 100644
index 00000000..c9f45ac3
--- /dev/null
+++ b/doc/forum/secret-project_deliverable/comment_9_4a6e1a53f5bf5b72aaafba3a7dd45346._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 9"""
+ date="2018-01-02T17:14:23Z"
+ content="""
+Since propellor 5.2.0 certianly *does* include the Propellor.Property.Installer.Types
+module, I guess you either have a somehow lost file on your local system
+there, or perhaps you installed a unreleased version of propellor 5.2.0
+from git before that file was added to it.
+"""]]
diff --git a/doc/forum/to_teach_propellor_about_other_ARM_boards.mdwn b/doc/forum/to_teach_propellor_about_other_ARM_boards.mdwn
new file mode 100644
index 00000000..aef3c59f
--- /dev/null
+++ b/doc/forum/to_teach_propellor_about_other_ARM_boards.mdwn
@@ -0,0 +1,33 @@
+Inspirated by <http://joeyh.name/blog/entry/custom_ARM_disk_image_generation_with_propellor/>
+I started to teach propellor about other ARM boards.
+(After having a clean build for a supported ARM board)
+
+
+Using two directories, a `~/.propellor` with my hosts and `src/propellor` with propellor source code.
+
+In the code directory I modified `src/Propellor/Property/Machine.hs`,
+compiled with `debuild -uc -us` and installed with `dpkg -i ../propellor*.deb`.
+
+Then using my hosts directory to get a WTF moment
+
+ $ propellor --spin paddy.gpm.stappers.nl
+ Auto-merging src/Propellor/Property/Machine.hs
+ Auto-merging propellor.cabal
+ Auto-merging debian/changelog
+ Auto-merging config.hs
+ CONFLICT (add/add): Merge conflict in config.hs
+ Automatic merge failed; fix conflicts and then commit the result.
+ propellor: Failed to run git ["merge","279b9267952b598914037983f74606d4f9c4ff6e","-s",
+ "recursive","-Xtheirs","--quiet","-m","merging upstream version"
+ ,"--allow-unrelated-histories"]
+ CallStack (from HasCallStack):
+ error, called at src/Propellor/DotDir.hs:425:17 in main:Propellor.DotDir
+
+
+What did connect both directories and why?
+
+
+More important:
+
+What directory setup and workflow to use
+to teach propellor about other ARM boards?
diff --git a/doc/forum/to_teach_propellor_about_other_ARM_boards/comment_1_70f9d9442616144d6f862c81516e721b._comment b/doc/forum/to_teach_propellor_about_other_ARM_boards/comment_1_70f9d9442616144d6f862c81516e721b._comment
new file mode 100644
index 00000000..e1a7ee2c
--- /dev/null
+++ b/doc/forum/to_teach_propellor_about_other_ARM_boards/comment_1_70f9d9442616144d6f862c81516e721b._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="stappers@eb96885816da287c29f6f699999434d532149234"
+ nickname="stappers"
+ avatar="http://cdn.libravatar.org/avatar/bf33450acf6fc2a17a8b4e6fc7749c65"
+ subject="Progress"
+ date="2018-01-02T14:19:53Z"
+ content="""
+Hi,
+
+FYI I'm making progress in teaching propellor about other ARM boards.
+
+What I have done is deleting `~/.propellor/` and creating a new one.
+
+The new one is a full .propellor repository.
+
+
+See also <http://propellor.branchable.com/components/>
+"""]]
diff --git a/doc/news/version_5.1.0.mdwn b/doc/news/version_5.1.0.mdwn
deleted file mode 100644
index dd007a24..00000000
--- a/doc/news/version_5.1.0.mdwn
+++ /dev/null
@@ -1,18 +0,0 @@
-propellor 5.1.0 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * [ Sean Whitton ]
- * File.isSymlinkedTo now revertable. (minor API change)
- * Sbuild module changes:
- - Type of Sbuild.built changed to accept additional properties to be
- ensured inside schroots. (API change)
- See the suggested usage in module's documentation for new syntax.
- - Drop Sbuild.installed, Sbuild.builtFor, Sbuild.updated,
- Sbuild.updatedFor. (API change)
- Use Sbuild.built instead. See suggested usage in module's documentation.
- - Propellor no longer sets up apt proxies in sbuild chroots automatically.
- Instead, pass the new Sbuild.useHostProxy to Sbuild.built to have
- Propellor propagate the host's Apt proxy configuration into the chroot.
- See suggested usage in module's documentation.
- - Internally, Propellor no longer invokes sbuild-createchroot(1) to build
- schroots.
- - Update documentation."""]] \ No newline at end of file
diff --git a/doc/news/version_5.3.0.mdwn b/doc/news/version_5.3.0.mdwn
new file mode 100644
index 00000000..07900e0b
--- /dev/null
+++ b/doc/news/version_5.3.0.mdwn
@@ -0,0 +1,16 @@
+propellor 5.3.0 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Avoid bogus warning about new upstream version when /usr/bin/propellor
+ is run on a Debian system, but ~/.propellor was not cloned from the
+ Debian git bundle.
+ * Parted: Allow partitions to have no filesystem, for eg, GPT BIOS boot
+ partitions. (API change)
+ * Added rawPartition to PartSpec, for specifying partitions with no
+ filesystem.
+ * Added BiosGrubFlag to PartFlag.
+ * Add HasCallStack constraint to pickOS and unsupportedOS, so the
+ call stack includes the caller.
+ * Run su with --login, to avoid inheriting some problematic environment
+ variables, such as TMP, from the caller.
+ * Grub: Added properties to configure /etc/default/grub.
+ * Laptop: New module, starting with powertopAutoTuneOnBoot."""]] \ No newline at end of file
diff --git a/doc/forum/Sbuild_and_jessie.mdwn b/doc/todo/Sbuild_and_jessie.mdwn
index 3786a26f..d90a23a3 100644
--- a/doc/forum/Sbuild_and_jessie.mdwn
+++ b/doc/todo/Sbuild_and_jessie.mdwn
@@ -21,3 +21,5 @@ So to my opinion the autopkgtest dependency is missing.
Cheers and thanks for this new Sbuild which is really nice :))
Frederic
+
+> [[done]] --spwhitton
diff --git a/doc/forum/Sbuild_and_jessie/comment_1_31dc85774c182a583aeb1935e9fef2d6._comment b/doc/todo/Sbuild_and_jessie/comment_1_31dc85774c182a583aeb1935e9fef2d6._comment
index 87508843..87508843 100644
--- a/doc/forum/Sbuild_and_jessie/comment_1_31dc85774c182a583aeb1935e9fef2d6._comment
+++ b/doc/todo/Sbuild_and_jessie/comment_1_31dc85774c182a583aeb1935e9fef2d6._comment
diff --git a/doc/forum/Sbuild_and_jessie/comment_2_41ed6253709b18ec799624a66b9b8078._comment b/doc/todo/Sbuild_and_jessie/comment_2_41ed6253709b18ec799624a66b9b8078._comment
index fd8646a1..fd8646a1 100644
--- a/doc/forum/Sbuild_and_jessie/comment_2_41ed6253709b18ec799624a66b9b8078._comment
+++ b/doc/todo/Sbuild_and_jessie/comment_2_41ed6253709b18ec799624a66b9b8078._comment
diff --git a/doc/forum/Sbuild_and_jessie/comment_3_a4d6fdbed71270d7a4ffbfe98d1aa479._comment b/doc/todo/Sbuild_and_jessie/comment_3_a4d6fdbed71270d7a4ffbfe98d1aa479._comment
index 8acacf57..8acacf57 100644
--- a/doc/forum/Sbuild_and_jessie/comment_3_a4d6fdbed71270d7a4ffbfe98d1aa479._comment
+++ b/doc/todo/Sbuild_and_jessie/comment_3_a4d6fdbed71270d7a4ffbfe98d1aa479._comment
diff --git a/doc/forum/Sbuild_and_jessie/comment_4_9e409a59abc81786481207ffbbd7c3ac._comment b/doc/todo/Sbuild_and_jessie/comment_4_9e409a59abc81786481207ffbbd7c3ac._comment
index 0974f8cd..0974f8cd 100644
--- a/doc/forum/Sbuild_and_jessie/comment_4_9e409a59abc81786481207ffbbd7c3ac._comment
+++ b/doc/todo/Sbuild_and_jessie/comment_4_9e409a59abc81786481207ffbbd7c3ac._comment
diff --git a/doc/forum/Sbuild_and_jessie/comment_5_6303943e3425b29b1e4727d809574cda._comment b/doc/todo/Sbuild_and_jessie/comment_5_6303943e3425b29b1e4727d809574cda._comment
index 96fd7fbf..96fd7fbf 100644
--- a/doc/forum/Sbuild_and_jessie/comment_5_6303943e3425b29b1e4727d809574cda._comment
+++ b/doc/todo/Sbuild_and_jessie/comment_5_6303943e3425b29b1e4727d809574cda._comment
diff --git a/doc/forum/Sbuild_and_jessie/comment_6_a88b331c80f57acdf55ac0c0ce3dce6f._comment b/doc/todo/Sbuild_and_jessie/comment_6_a88b331c80f57acdf55ac0c0ce3dce6f._comment
index b98163a7..b98163a7 100644
--- a/doc/forum/Sbuild_and_jessie/comment_6_a88b331c80f57acdf55ac0c0ce3dce6f._comment
+++ b/doc/todo/Sbuild_and_jessie/comment_6_a88b331c80f57acdf55ac0c0ce3dce6f._comment
diff --git a/doc/forum/Sbuild_and_jessie/comment_7_38650a2151201eaf6f40d8becbbe8861._comment b/doc/todo/Sbuild_and_jessie/comment_7_38650a2151201eaf6f40d8becbbe8861._comment
index 12dfbaac..12dfbaac 100644
--- a/doc/forum/Sbuild_and_jessie/comment_7_38650a2151201eaf6f40d8becbbe8861._comment
+++ b/doc/todo/Sbuild_and_jessie/comment_7_38650a2151201eaf6f40d8becbbe8861._comment
diff --git a/doc/todo/chroot_localdir_issue.mdwn b/doc/todo/chroot_localdir_issue.mdwn
new file mode 100644
index 00000000..497c7a93
--- /dev/null
+++ b/doc/todo/chroot_localdir_issue.mdwn
@@ -0,0 +1,15 @@
+Running "sudo ./propellor" is documented as a way to provision the local
+host. However, properties involving chroots and docker hard code localdir,
+so run /usr/local/propellor/propellor inside the chroot. When running
+propellor this way, that may not exist, or may be from some other propellor
+configuration and not know how to privision the chroot correctly.
+
+Should this stuff look at the path to the propellor executable that's
+really being run and use it? There's also the shimdir, which is under
+/usr/local/propellor and gets bind mounted into the chroot, so using
+something close to the executable run by "sudo ./propellor" may be
+surprising. And, exposeTrueLocaldir also uses the localdir.
+
+It may make more sense to detect when propellor is run this way and refuse
+to provision chroots. Or to eliminate this little-used way of running
+propellor entirely.. --[[Joey]]
diff --git a/doc/todo/etckeeper/comment_4_f4f9f3e3d7c81e631aaec45fdd17dfe8._comment b/doc/todo/etckeeper/comment_4_f4f9f3e3d7c81e631aaec45fdd17dfe8._comment
new file mode 100644
index 00000000..e6755e2c
--- /dev/null
+++ b/doc/todo/etckeeper/comment_4_f4f9f3e3d7c81e631aaec45fdd17dfe8._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="gueux"
+ avatar="http://cdn.libravatar.org/avatar/2982bac2c2cd94ab3860efb189deafc8"
+ subject="comment 4"
+ date="2018-01-06T09:24:04Z"
+ content="""
+I think I was thinking at least about configuring git to prevent
+
+ Your name and email address were configured automatically based
+ on your username and hostname. Please check that they are accurate.
+ You can suppress this message by setting them explicitly. Run the
+ following command and follow the instructions in your editor to edit
+ your configuration file:
+ git config --global --edit
+ After doing this, you may fix the identity used for this commit with:
+ git commit --amend --reset-author
+
+messages. I can live with these, though. So I guess you're right, `Apt.installed [\"etckeeper\"]` is enough.
+"""]]
diff --git a/doc/todo/etckeeper/comment_5_af3b29e3e066c05e4b5a0004f0e57926._comment b/doc/todo/etckeeper/comment_5_af3b29e3e066c05e4b5a0004f0e57926._comment
new file mode 100644
index 00000000..11e59e2c
--- /dev/null
+++ b/doc/todo/etckeeper/comment_5_af3b29e3e066c05e4b5a0004f0e57926._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2018-01-06T17:38:34Z"
+ content="""
+I avoid those warnings with properties that clone dotfiles repos containing
+.gitconfig for root and users who can sudo.
+
+It would be fine to have a property to configure them in
+/etckeeper/.git/config, if you wanted to write it.
+I think this would do it:
+
+ Git.repoConfigured "/etc/" ("user.name", "whatever")
+ Git.repoConfigured "/etc/" ("user.email", "whatever@whatever")
+
+Those would only be used when the user running etckeeper has not configured
+it in their own ~/.gitconfig
+"""]]
diff --git a/doc/todo/partition_properties_should_install_e2fsprogs.mdwn b/doc/todo/partition_properties_should_install_e2fsprogs.mdwn
new file mode 100644
index 00000000..7232bdeb
--- /dev/null
+++ b/doc/todo/partition_properties_should_install_e2fsprogs.mdwn
@@ -0,0 +1,3 @@
+The e2fsprogs package is becoming non-essential in Debian. Properties that invoke `mkfs.ext*` should start explicitly requiring that the package is installed (probably using `Apt.installed`). --spwhitton
+
+> [[done]] seems no change needed --[[Joey]]
diff --git a/doc/todo/partition_properties_should_install_e2fsprogs/comment_1_0a6335e03587b18d5ae085f9a7bc0656._comment b/doc/todo/partition_properties_should_install_e2fsprogs/comment_1_0a6335e03587b18d5ae085f9a7bc0656._comment
new file mode 100644
index 00000000..555ae84f
--- /dev/null
+++ b/doc/todo/partition_properties_should_install_e2fsprogs/comment_1_0a6335e03587b18d5ae085f9a7bc0656._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2018-01-17T17:02:36Z"
+ content="""
+AFAICS, only Partition.formatted runs that, and it's always made sure to
+install e2fsprogs.
+
+Closing this, unless you know of something else that my grep didn't turn
+up.
+"""]]
diff --git a/doc/todo/partition_properties_should_install_e2fsprogs/comment_2_54a6e8a53221d0db2fe37703cd0a011d._comment b/doc/todo/partition_properties_should_install_e2fsprogs/comment_2_54a6e8a53221d0db2fe37703cd0a011d._comment
new file mode 100644
index 00000000..e7527bdc
--- /dev/null
+++ b/doc/todo/partition_properties_should_install_e2fsprogs/comment_2_54a6e8a53221d0db2fe37703cd0a011d._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ avatar="http://cdn.libravatar.org/avatar/9c3f08f80e67733fd506c353239569eb"
+ subject="comment 2"
+ date="2018-01-19T22:59:44Z"
+ content="""
+Thanks for checking this!
+"""]]
diff --git a/doc/todo/removable_drive_partitioning_and_install.mdwn b/doc/todo/removable_drive_partitioning_and_install.mdwn
index 891c3b92..e88673c3 100644
--- a/doc/todo/removable_drive_partitioning_and_install.mdwn
+++ b/doc/todo/removable_drive_partitioning_and_install.mdwn
@@ -25,9 +25,28 @@ Open design questions:
Question: When using microsd card adapter, does the serial number pass
through so different microsds can be distinguished?
+
> Checked this, and two microsd card adapters from different
> manufacturers with different microsd cards have the same by-id.
> Those must have no serial number..
+ >
+ > Also, a USB SD/microSD reader had the same by-id for multiple cards.
+
+ > > For disks with a MBR, there's a disk identifier / volume id,
+ > > which should uniquely identify that disk,
+ > > as long as propellor does not overwrite the MBR when imaging it.
+ > > And, GPT has a similar disk GUID.
+ > >
+ > > /dev/disk/by-partuuid exposes this. Some documentation suggests
+ > > it's GPT-only, but my laptop is not GPT and its MBR disk identifier
+ > > shows up there. Oddly, that points to /dev/sda1 and not /dev/sda.
+ > >
+ > > blkid can also display it, as the PTUUID, which works for
+ > > both GPT and MBT.
+ > > --[[Joey]]
+
+ root@darkstar:/home/joey>blkid /dev/sda
+ /dev/sda: PTUUID="d0497bc6" PTTYPE="dos"
* Should an already imaged drive be updated incrementally or re-imaged?
Seems both cases would be useful, the former especially for incrementally
diff --git a/doc/usage.mdwn b/doc/usage.mdwn
index 3d32538f..fb19250e 100644
--- a/doc/usage.mdwn
+++ b/doc/usage.mdwn
@@ -160,6 +160,11 @@ spin when the foo branch is not checked out.
`git config propellor.forbid-dirty-spin true` will configure propellor to refuse
to spin when there are uncommitted changes in the `~/.propellor` repository.
+`git config propellor.buildsystem stack` makes propellor use stack for
+building itself, rather than the default cabal. This only controls the
+local build of propellor; Hosts can have properties set to control how
+propellor is built on them.
+
The usual git configuration controls which centralized repository (if any)
propellor pushes and pulls from.
diff --git a/joeyconfig.hs b/joeyconfig.hs
index 96be56c5..1d019498 100644
--- a/joeyconfig.hs
+++ b/joeyconfig.hs
@@ -27,11 +27,13 @@ import qualified Propellor.Property.Apache as Apache
import qualified Propellor.Property.LetsEncrypt as LetsEncrypt
import qualified Propellor.Property.Locale as Locale
import qualified Propellor.Property.Grub as Grub
+import qualified Propellor.Property.FlashKernel as FlashKernel
import qualified Propellor.Property.Borg as Borg
import qualified Propellor.Property.Gpg as Gpg
import qualified Propellor.Property.Systemd as Systemd
import qualified Propellor.Property.Journald as Journald
import qualified Propellor.Property.Fail2Ban as Fail2Ban
+import qualified Propellor.Property.Laptop as Laptop
import qualified Propellor.Property.OS as OS
import qualified Propellor.Property.HostingProvider.CloudAtCost as CloudAtCost
import qualified Propellor.Property.HostingProvider.Linode as Linode
@@ -58,6 +60,7 @@ hosts = -- (o) `
, elephant
, beaver
, mouse
+ , peregrine
, pell
, keysafe
] ++ monsters
@@ -87,12 +90,16 @@ darkstar = host "darkstar.kitenet.net" $ props
& ipv6 "2001:4830:1600:187::2"
& Hostname.sane
& Apt.serviceInstalledRunning "swapspace"
+ & Laptop.powertopAutoTuneOnBoot
+ & Grub.cmdline_Linux_default "i915.enable_psr=1"
+ ! Grub.cmdline_Linux_default "quiet"
& JoeySites.dkimMilter
& JoeySites.postfixSaslPasswordClient
-- & JoeySites.alarmClock "*-*-* 7:30" (User "joey")
-- "/usr/bin/timeout 45m /home/joey/bin/goodmorning"
& JoeySites.laptopSoftware
+ & JoeySites.userDirHtml
& Ssh.userKeys (User "joey") hostContext
[ (SshRsa, "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1YoyHxZwG5Eg0yiMTJLSWJ/+dMM6zZkZiR4JJ0iUfP+tT2bm/lxYompbSqBeiCq+PYcSC67mALxp1vfmdOV//LWlbXfotpxtyxbdTcQbHhdz4num9rJQz1tjsOsxTEheX5jKirFNC5OiKhqwIuNydKWDS9qHGqsKcZQ8p+n1g9Lr3nJVGY7eRRXzw/HopTpwmGmAmb9IXY6DC2k91KReRZAlOrk0287LaK3eCe1z0bu7LYzqqS+w99iXZ/Qs0m9OqAPnHZjWQQ0fN4xn5JQpZSJ7sqO38TBAimM+IHPmy2FTNVVn9zGM+vN1O2xr3l796QmaUG1+XLL0shfR/OZbb joey@darkstar")
]
@@ -114,7 +121,7 @@ clam :: Host
clam = host "clam.kitenet.net" $ props
& standardSystem Unstable X86_64
["Unreliable server. Anything here may be lost at any time!" ]
- & ipv4 "45.62.211.6"
+ & ipv4 "45.62.211.94"
& CloudAtCost.decruft
& Ssh.hostKeys hostContext
@@ -186,6 +193,9 @@ honeybee = host "honeybee.kitenet.net" $ props
`mountedAt` "/"
`setSize` MegaBytes 8000
)
+ & File.hasPrivContentExposed "/etc/flash-kernel/dtbs/sun7i-a20-cubietruck.dtb"
+ (Context "cubietruck gpio")
+ `onChange` FlashKernel.flashKernel
& Apt.installed ["firmware-brcm80211"]
-- Workaround for https://bugs.debian.org/844056
@@ -315,6 +325,7 @@ kite = host "kite.kitenet.net" $ props
& myDnsPrimary True "kitenet.net"
[ (RelDomain "mouse-onion", CNAME $ AbsDomain "htieo6yu2qtcn2j3.onion")
, (RelDomain "beaver-onion", CNAME $ AbsDomain "tl4xsvaxryjylgxs.onion")
+ , (RelDomain "peregrine-onion", CNAME $ AbsDomain "ahw47zqw6qszoufl.onion")
]
& myDnsPrimary True "joeyh.name" []
& myDnsPrimary True "ikiwiki.info" []
@@ -419,6 +430,12 @@ mouse = host "mouse.kitenet.net" $ props
& Tor.installed
& Tor.hiddenServiceAvailable "ssh" (Port 22)
+peregrine :: Host
+peregrine = host "peregrine.kitenet.net" $ props
+ & Apt.installed ["ssh"]
+ & Tor.installed
+ & Tor.hiddenServiceAvailable "ssh" (Port 22)
+
-- Branchable is not completely deployed with propellor yet.
pell :: Host
pell = host "pell.branchable.com" $ props
diff --git a/privdata/.joeyconfig/privdata.gpg b/privdata/.joeyconfig/privdata.gpg
index 3b6e24b0..1f2c3503 100644
--- a/privdata/.joeyconfig/privdata.gpg
+++ b/privdata/.joeyconfig/privdata.gpg
@@ -1,1512 +1,1720 @@
-----BEGIN PGP MESSAGE-----
-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
-KD4cHy4EZC5c93c/GrrGaMGUBaKtWGax0eo=
-=55uH
+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
+=Pd88
-----END PGP MESSAGE-----
diff --git a/propellor.cabal b/propellor.cabal
index a76d63f0..4f90c49c 100644
--- a/propellor.cabal
+++ b/propellor.cabal
@@ -1,5 +1,5 @@
Name: propellor
-Version: 5.2.0
+Version: 5.3.1
Cabal-Version: >= 1.20
License: BSD2
Maintainer: Joey Hess <id@joeyh.name>
@@ -126,6 +126,7 @@ Library
Propellor.Property.Installer.Target
Propellor.Property.Journald
Propellor.Property.Kerberos
+ Propellor.Property.Laptop
Propellor.Property.LetsEncrypt
Propellor.Property.List
Propellor.Property.LightDM
diff --git a/src/Propellor/DotDir.hs b/src/Propellor/DotDir.hs
index f42c0575..f62b38f8 100644
--- a/src/Propellor/DotDir.hs
+++ b/src/Propellor/DotDir.hs
@@ -358,7 +358,7 @@ checkRepoUpToDate = whenM (gitbundleavail <&&> dotpropellorpopulated) $ do
withQuietOutput createProcessSuccess $
proc "git" ["log", headrev]
if (headknown == Nothing)
- then setupUpstreamMaster headrev
+ then updateUpstreamMaster headrev
else do
theirhead <- getCurrentGitSha1 =<< getCurrentBranchRef
when (theirhead /= headrev) $ do
@@ -372,26 +372,30 @@ checkRepoUpToDate = whenM (gitbundleavail <&&> dotpropellorpopulated) $ do
d <- dotPropellor
doesFileExist (d </> "propellor.cabal")
--- Makes upstream/master in dotPropellor be a usefully mergeable branch.
+-- Updates upstream/master in dotPropellor so merging from it will update
+-- to the latest distrepo.
--
--- We cannot just use origin/master, because in the case of a distrepo,
--- it only contains 1 commit. So, trying to merge with it will result
--- in lots of merge conflicts, since git cannot find a common parent
--- commit.
+-- We cannot just fetch the distrepo because the distrepo contains only
+-- 1 commit. So, trying to merge with it will result in lots of merge
+-- conflicts, since git cannot find a common parent commit.
--
--- Instead, the upstream/master branch is created by taking the
--- upstream/master branch (which must be an old version of propellor,
+-- Instead, the new upstream/master branch is updated by taking the
+-- current upstream/master branch (which must be an old version of propellor,
-- as distributed), and diffing from it to the current origin/master,
-- and committing the result. This is done in a temporary clone of the
-- repository, giving it a new master branch. That new branch is fetched
-- into the user's repository, as if fetching from a upstream remote,
-- yielding a new upstream/master branch.
-setupUpstreamMaster :: String -> IO ()
-setupUpstreamMaster newref = do
+--
+-- If there's no upstream/master, the user is not using the distrepo,
+-- so do nothing. And, if there's a remote named "upstream", the user
+-- must have set that up is not using the distrepo, so do nothing.
+updateUpstreamMaster :: String -> IO ()
+updateUpstreamMaster newref = unlessM (hasRemote "upstream") $ do
changeWorkingDirectory =<< dotPropellor
go =<< catchMaybeIO getoldrev
where
- go Nothing = warnoutofdate False
+ go Nothing = return ()
go (Just oldref) = do
let tmprepo = ".git/propellordisttmp"
let cleantmprepo = void $ catchMaybeIO $ removeDirectoryRecursive tmprepo
@@ -427,7 +431,7 @@ setupUpstreamMaster newref = do
warnoutofdate :: Bool -> IO ()
warnoutofdate havebranch = do
warningMessage ("** Your ~/.propellor/ is out of date..")
- let also s = hPutStrLn stderr (" " ++ s)
+ let also s = infoMessage [" " ++ s]
also ("A newer upstream version is available in " ++ distrepo)
if havebranch
then also ("To merge it, run: git merge " ++ upstreambranch)
diff --git a/src/Propellor/Git.hs b/src/Propellor/Git.hs
index 1d81c157..10b88ddd 100644
--- a/src/Propellor/Git.hs
+++ b/src/Propellor/Git.hs
@@ -23,9 +23,12 @@ getCurrentGitSha1 branchref = takeWhile (/= '\n')
<$> readProcess "git" ["show-ref", "--hash", branchref]
hasOrigin :: IO Bool
-hasOrigin = catchDefaultIO False $ do
+hasOrigin = hasRemote "origin"
+
+hasRemote :: String -> IO Bool
+hasRemote remotename = catchDefaultIO False $ do
rs <- lines <$> readProcess "git" ["remote"]
- return $ "origin" `elem` rs
+ return $ remotename `elem` rs
hasGitRepo :: IO Bool
hasGitRepo = doesFileExist ".git/HEAD"
diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs
index 884ee683..8c0a5859 100644
--- a/src/Propellor/Property.hs
+++ b/src/Propellor/Property.hs
@@ -55,6 +55,7 @@ import Data.Maybe
import Data.List
import Data.Hashable
import Control.Applicative
+import GHC.Stack
import Prelude
import Propellor.Types
@@ -283,6 +284,7 @@ isNewerThan x y = do
-- fail that way.
pickOS
::
+ HasCallStack =>
( SingKind ('KProxy :: KProxy ka)
, SingKind ('KProxy :: KProxy kb)
, DemoteRep ('KProxy :: KProxy ka) ~ [MetaType]
@@ -344,7 +346,7 @@ unsupportedOS = property "unsupportedOS" unsupportedOS'
-- | Throws an error, for use in `withOS` when a property is lacking
-- support for an OS.
-unsupportedOS' :: Propellor Result
+unsupportedOS' :: HasCallStack => Propellor Result
unsupportedOS' = go =<< getOS
where
go Nothing = error "Unknown host OS is not supported by this property."
diff --git a/src/Propellor/Property/Cmd.hs b/src/Propellor/Property/Cmd.hs
index f2de1a27..fbe112cc 100644
--- a/src/Propellor/Property/Cmd.hs
+++ b/src/Propellor/Property/Cmd.hs
@@ -94,6 +94,7 @@ scriptProperty script = cmdProperty "sh" ["-c", shellcmd]
-- | A property that can satisfied by running a script
-- as user (cd'd to their home directory).
userScriptProperty :: User -> Script -> UncheckedProperty UnixLike
-userScriptProperty (User user) script = cmdProperty "su" ["--shell", "/bin/sh", "-c", shellcmd, user]
+userScriptProperty (User user) script = cmdProperty "su"
+ ["--login", "--shell", "/bin/sh", "-c", shellcmd, user]
where
shellcmd = intercalate " ; " ("set -e" : "cd" : script)
diff --git a/src/Propellor/Property/DiskImage.hs b/src/Propellor/Property/DiskImage.hs
index 24459476..289de151 100644
--- a/src/Propellor/Property/DiskImage.hs
+++ b/src/Propellor/Property/DiskImage.hs
@@ -420,7 +420,7 @@ imageFinalized final img mnts mntopts devs (PartTable _ _ parts) =
orderedmntsdevs = sortBy (compare `on` fst) $ zip mnts (zip mntopts devs)
swaps = map (SwapPartition . partitionLoopDev . snd) $
- filter ((== LinuxSwap) . partFs . fst) $
+ filter ((== Just LinuxSwap) . partFs . fst) $
zip parts devs
mountall top = forM_ orderedmntsdevs $ \(mp, (mopts, loopdev)) -> case mp of
diff --git a/src/Propellor/Property/DiskImage/PartSpec.hs b/src/Propellor/Property/DiskImage/PartSpec.hs
index 942cfa3e..b78e4280 100644
--- a/src/Propellor/Property/DiskImage/PartSpec.hs
+++ b/src/Propellor/Property/DiskImage/PartSpec.hs
@@ -9,6 +9,7 @@ module Propellor.Property.DiskImage.PartSpec (
partition,
-- * PartSpec combinators
swapPartition,
+ rawPartition,
mountedAt,
addFreeSpace,
setSize,
@@ -48,11 +49,15 @@ import Data.Ord
-- The partition is not mounted anywhere by default; use the combinators
-- below to configure it.
partition :: Monoid t => Fs -> PartSpec t
-partition fs = (Nothing, mempty, mkPartition fs, mempty)
+partition fs = (Nothing, mempty, mkPartition (Just fs), mempty)
-- | Specifies a swap partition of a given size.
swapPartition :: Monoid t => PartSize -> PartSpec t
-swapPartition sz = (Nothing, mempty, const (mkPartition LinuxSwap sz), mempty)
+swapPartition sz = (Nothing, mempty, const (mkPartition (Just LinuxSwap) sz), mempty)
+
+-- | Specifies a partition without any filesystem, of a given size.
+rawPartition :: Monoid t => PartSize -> PartSpec t
+rawPartition sz = (Nothing, mempty, const (mkPartition Nothing sz), mempty)
-- | Specifies where to mount a partition.
mountedAt :: PartSpec t -> MountPoint -> PartSpec t
diff --git a/src/Propellor/Property/FlashKernel.hs b/src/Propellor/Property/FlashKernel.hs
index 3f65f872..1a52621d 100644
--- a/src/Propellor/Property/FlashKernel.hs
+++ b/src/Propellor/Property/FlashKernel.hs
@@ -23,10 +23,15 @@ installed :: Machine -> Property (HasInfo + DebianLike)
installed machine = setInfoProperty go (toInfo [FlashKernelInstalled])
where
go = "/etc/flash-kernel/machine" `File.hasContent` [machine]
- `onChange` (cmdProperty "flash-kernel" [] `assume` MadeChange)
+ `onChange` flashKernel
`requires` File.dirExists "/etc/flash-kernel"
`requires` Apt.installed ["flash-kernel"]
+-- | Runs flash-kernel with whatever machine `installed` configured.
+flashKernel :: Property DebianLike
+flashKernel = tightenTargets $
+ cmdProperty "flash-kernel" [] `assume` MadeChange
+
-- | Runs flash-kernel in the system mounted at a particular directory.
flashKernelMounted :: FilePath -> Property Linux
flashKernelMounted mnt = combineProperties desc $ props
diff --git a/src/Propellor/Property/Gpg.hs b/src/Propellor/Property/Gpg.hs
index 27baa4ba..ac057b2e 100644
--- a/src/Propellor/Property/Gpg.hs
+++ b/src/Propellor/Property/Gpg.hs
@@ -33,7 +33,7 @@ keyImported key@(GpgKeyId keyid) user@(User u) = prop
ifM (liftIO $ hasGpgKey (parse keylines))
( return NoChange
, makeChange $ withHandle StdinHandle createProcessSuccess
- (proc "su" ["-c", "gpg --import", u]) $ \h -> do
+ (proc "su" ["--login", "-c", "gpg --import", u]) $ \h -> do
hPutStr h (unlines keylines)
hClose h
)
@@ -49,11 +49,11 @@ keyImported key@(GpgKeyId keyid) user@(User u) = prop
hasPrivKey :: GpgKeyId -> User -> IO Bool
hasPrivKey (GpgKeyId keyid) (User u) = catchBoolIO $
- snd <$> processTranscript "su" ["-c", "gpg --list-secret-keys " ++ shellEscape keyid, u] Nothing
+ snd <$> processTranscript "su" ["--login", "-c", "gpg --list-secret-keys " ++ shellEscape keyid, u] Nothing
hasPubKey :: GpgKeyId -> User -> IO Bool
hasPubKey (GpgKeyId keyid) (User u) = catchBoolIO $
- snd <$> processTranscript "su" ["-c", "gpg --list-public-keys " ++ shellEscape keyid, u] Nothing
+ snd <$> processTranscript "su" ["--login", "-c", "gpg --list-public-keys " ++ shellEscape keyid, u] Nothing
dotDir :: User -> IO FilePath
dotDir (User u) = do
diff --git a/src/Propellor/Property/Grub.hs b/src/Propellor/Property/Grub.hs
index 5cb9077d..79ecd8c9 100644
--- a/src/Propellor/Property/Grub.hs
+++ b/src/Propellor/Property/Grub.hs
@@ -5,6 +5,8 @@ module Propellor.Property.Grub (
installed,
mkConfig,
installed',
+ configured,
+ cmdline_Linux_default,
boots,
bootsMounted,
TimeoutSecs,
@@ -13,11 +15,15 @@ module Propellor.Property.Grub (
import Propellor.Base
import qualified Propellor.Property.File as File
+import qualified Propellor.Property.ConfFile as ConfFile
import qualified Propellor.Property.Apt as Apt
import Propellor.Property.Mount
import Propellor.Property.Chroot (inChroot)
import Propellor.Types.Info
import Propellor.Types.Bootloader
+import Utility.SafeCommand
+
+import Data.List
-- | Eg, \"hd0,0\" or \"xen/xvda1\"
type GrubDevice = String
@@ -53,6 +59,65 @@ installed' grubtarget = setInfoProperty aptinstall
Coreboot -> "grub-coreboot"
Xen -> "grub-xen"
+-- | Sets a simple confguration value, using grub-mkconfig to update
+-- the grub boot menu accordingly. On Debian, these are written to
+-- </etc/default/grub>
+--
+-- Example:
+--
+-- > & Grub.configured "GRUB_TIMEOUT" "10"
+-- > & Grub.configured "GRUB_TERMINAL_INPUT" "console serial"
+configured :: String -> String -> Property DebianLike
+configured k v = ConfFile.adjustSection
+ ("grub configured with " ++ k ++ "=" ++ v)
+ isline
+ (not . isline)
+ (const [l])
+ (const [l])
+ simpleConfigFile
+ `onChange` mkConfig
+ where
+ isline s = (k ++ "=") `isPrefixOf` s
+ l = k ++ "=" ++ shellEscape v
+
+simpleConfigFile :: FilePath
+simpleConfigFile = "/etc/default/grub"
+
+-- | Adds a word to the default linux command line.
+-- Any other words in the command line will be left unchanged.
+--
+-- Example:
+--
+-- > & Grub.cmdline_Linux_default "i915.enable_psr=1"
+-- > ! Grub.cmdline_Linux_default "quiet"
+cmdline_Linux_default :: String -> RevertableProperty DebianLike DebianLike
+cmdline_Linux_default w = setup <!> undo
+ where
+ setup = ConfFile.adjustSection
+ ("linux command line includes " ++ w)
+ isline
+ (not . isline)
+ (map (mkline . addw . getws))
+ (++ [mkline [w]])
+ simpleConfigFile
+ `onChange` mkConfig
+ undo = ConfFile.adjustSection
+ ("linux command line does not include " ++ w)
+ isline
+ (not . isline)
+ (map (mkline . rmw . getws))
+ (++ [mkline [""]])
+ simpleConfigFile
+ `onChange` mkConfig
+ k = "GRUB_CMDLINE_LINUX_DEFAULT"
+ isline s = (k ++ "=") `isPrefixOf` s
+ mkline ws = k ++ "=" ++ shellEscape (unwords ws)
+ getws = concatMap words . shellUnEscape . drop 1 . dropWhile (/= '=')
+ addw ws
+ | w `elem` ws = ws
+ | otherwise = ws ++ [w]
+ rmw = filter (/= w)
+
-- | Installs grub onto a device's boot loader,
-- so the system can boot from that device.
--
diff --git a/src/Propellor/Property/Installer/Target.hs b/src/Propellor/Property/Installer/Target.hs
index 986c75ea..80e660ad 100644
--- a/src/Propellor/Property/Installer/Target.hs
+++ b/src/Propellor/Property/Installer/Target.hs
@@ -68,15 +68,19 @@
-- see <https://git.joeyh.name/index.cgi/secret-project.git/>
module Propellor.Property.Installer.Target (
+ -- * Main interface
TargetPartTable(..),
targetInstalled,
- mountTarget,
fstabLists,
+ -- * Additional properties
+ mountTarget,
targetBootable,
partitionTargetDisk,
+ -- * Utility functions
targetDir,
probeDisk,
findDiskDevices,
+ -- * Installation progress tracking
TargetFilled,
TargetFilledHandle,
prepTargetFilled,
@@ -110,6 +114,7 @@ import Data.Ord
import Data.Ratio
import System.Process (readProcess)
+-- | Partition table for the target disk.
data TargetPartTable = TargetPartTable TableType [PartSpec DiskPart]
-- | Property that installs the target system to the TargetDiskDevice
@@ -179,6 +184,7 @@ instance ChrootBootstrapper RsyncBootstrapper where
umountaside = cmdProperty "umount" ["-l", "/mnt"]
`assume` MadeChange
+-- | Gets the target mounted.
mountTarget
:: UserInput i
=> i
@@ -240,10 +246,10 @@ fstabLists userinput (TargetPartTable _ partspecs) = setup <!> doNothing
partitions = map (\(mp, _, mkpart, _) -> (mp, mkpart mempty)) partspecs
mnts = mapMaybe fst $
- filter (\(_, p) -> partFs p /= LinuxSwap) partitions
+ filter (\(_, p) -> partFs p /= Just LinuxSwap && partFs p /= Nothing) partitions
swaps targetdev =
map (Fstab.SwapPartition . diskPartition targetdev . snd) $
- filter (\((_, p), _) -> partFs p == LinuxSwap)
+ filter (\((_, p), _) -> partFs p == Just LinuxSwap)
(zip partitions partNums)
-- | Make the target bootable using whatever bootloader is installed on it.
@@ -271,6 +277,7 @@ targetBootable userinput =
warningMessage $ "don't know how to enable bootloader(s) " ++ show l
return FailedChange
+-- | Partitions the target disk.
partitionTargetDisk
:: UserInput i
=> i
@@ -424,10 +431,10 @@ getMountsSizes = mapMaybe (parse . words) . lines <$> readProcess "findmnt" ps "
parse _ = Nothing
-- | How much of the target disks are used, compared with the size of the
--- installer's root device. Since the main part of an installation
--- is rsyncing the latter to the former, this allows roughly estimating
--- the percent done while an install is running, and can be used in some
--- sort of progress display.
+-- installer's root device. Since the main part of an installation
+-- is `targetInstalled` rsyncing the latter to the former, this allows
+-- roughly estimating the percent done while an install is running,
+-- and can be used in some sort of progress display.
data TargetFilled = TargetFilled (Ratio Integer)
deriving (Show, Eq)
@@ -437,6 +444,7 @@ instance Monoid TargetFilled where
newtype TargetFilledHandle = TargetFilledHandle Integer
+-- | Prepare for getting `TargetFilled`.
prepTargetFilled :: IO TargetFilledHandle
prepTargetFilled = go =<< getMountSource "/"
where
@@ -446,6 +454,8 @@ prepTargetFilled = go =<< getMountSource "/"
return (TargetFilledHandle sz)
go Nothing = return (TargetFilledHandle 0)
+-- | Get the current `TargetFilled` value. This is fast enough to be run
+-- multiple times per second without using much CPU.
checkTargetFilled :: TargetFilledHandle -> IO TargetFilled
checkTargetFilled (TargetFilledHandle installsz) = do
targetsz <- sum . map snd . filter (isTargetMountPoint . fst)
diff --git a/src/Propellor/Property/Laptop.hs b/src/Propellor/Property/Laptop.hs
new file mode 100644
index 00000000..a36bda18
--- /dev/null
+++ b/src/Propellor/Property/Laptop.hs
@@ -0,0 +1,28 @@
+module Propellor.Property.Laptop where
+
+import Propellor.Base
+import qualified Propellor.Property.File as File
+import qualified Propellor.Property.Apt as Apt
+import qualified Propellor.Property.Systemd as Systemd
+
+-- | Makes powertop auto-tune the system for optimal power consumption on
+-- boot.
+powertopAutoTuneOnBoot :: RevertableProperty DebianLike DebianLike
+powertopAutoTuneOnBoot = setup <!> undo
+ `describe` "powertop auto-tune on boot"
+ where
+ setup = Systemd.enabled "powertop"
+ `requires` Apt.installed ["powertop"]
+ `requires` File.hasContent servicefile
+ [ "[Unit]"
+ , "Description=Powertop tunings"
+ , "[Service]"
+ , "ExecStart=/usr/sbin/powertop --auto-tune"
+ , "RemainAfterExit=true"
+ , "[Install]"
+ , "WantedBy=multi-user.target"
+ ]
+ undo = tightenTargets $ File.notPresent servicefile
+ `requires` check (doesFileExist servicefile)
+ (Systemd.disabled "powertop")
+ servicefile = "/etc/systemd/system/powertop.service"
diff --git a/src/Propellor/Property/Parted.hs b/src/Propellor/Property/Parted.hs
index 97cf815e..81b84972 100644
--- a/src/Propellor/Property/Parted.hs
+++ b/src/Propellor/Property/Parted.hs
@@ -62,8 +62,10 @@ partitioned eep disk parttable@(PartTable _ _ parts) = property' desc $ \w -> do
where
desc = disk ++ " partitioned"
formatl devs = combineProperties desc (toProps $ map format (zip parts devs))
- format (p, dev) = Partition.formatted' (partMkFsOpts p)
- Partition.YesReallyFormatPartition (partFs p) dev
+ format (p, dev) = case partFs p of
+ Just fs -> Partition.formatted' (partMkFsOpts p)
+ Partition.YesReallyFormatPartition fs dev
+ Nothing -> doNothing
-- | Gets the total size of the disk specified by the partition table.
partTableSize :: PartTable -> ByteSize
@@ -81,12 +83,12 @@ calcPartedParamsSize (PartTable tabletype alignment parts) =
, pval f
, pval b
]
- mkpart partnum startpos endpos p =
- [ "mkpart"
- , pval (partType p)
- , pval (partFs p)
- , partposexact startpos
- , partposfuzzy endpos
+ mkpart partnum startpos endpos p = catMaybes
+ [ Just "mkpart"
+ , Just $ pval (partType p)
+ , fmap pval (partFs p)
+ , Just $ partposexact startpos
+ , Just $ partposfuzzy endpos
] ++ case partName p of
Just n -> ["name", show partnum, n]
Nothing -> []
diff --git a/src/Propellor/Property/Parted/Types.hs b/src/Propellor/Property/Parted/Types.hs
index e5c62739..cfd8760d 100644
--- a/src/Propellor/Property/Parted/Types.hs
+++ b/src/Propellor/Property/Parted/Types.hs
@@ -31,7 +31,7 @@ instance Monoid PartTable where
data Partition = Partition
{ partType :: PartType
, partSize :: PartSize
- , partFs :: Partition.Fs
+ , partFs :: Maybe Partition.Fs
, partMkFsOpts :: Partition.MkfsOpts
, partFlags :: [(PartFlag, Bool)] -- ^ flags can be set or unset (parted may set some flags by default)
, partName :: Maybe String -- ^ optional name for partition (only works for GPT, PC98, MAC)
@@ -39,7 +39,7 @@ data Partition = Partition
deriving (Show)
-- | Makes a Partition with defaults for non-important values.
-mkPartition :: Partition.Fs -> PartSize -> Partition
+mkPartition :: Maybe Partition.Fs -> PartSize -> Partition
mkPartition fs sz = Partition
{ partType = Primary
, partSize = sz
@@ -105,7 +105,7 @@ fromAlignment :: Alignment -> ByteSize
fromAlignment (Alignment n) = n
-- | Flags that can be set on a partition.
-data PartFlag = BootFlag | RootFlag | SwapFlag | HiddenFlag | RaidFlag | LvmFlag | LbaFlag | LegacyBootFlag | IrstFlag | EspFlag | PaloFlag
+data PartFlag = BootFlag | RootFlag | SwapFlag | HiddenFlag | RaidFlag | LvmFlag | LbaFlag | LegacyBootFlag | IrstFlag | EspFlag | PaloFlag | BiosGrubFlag
deriving (Show)
instance PartedVal PartFlag where
@@ -120,6 +120,7 @@ instance PartedVal PartFlag where
pval IrstFlag = "irst"
pval EspFlag = "esp"
pval PaloFlag = "palo"
+ pval BiosGrubFlag = "bios_grub"
instance PartedVal Bool where
pval True = "on"
diff --git a/src/Propellor/Property/SiteSpecific/JoeySites.hs b/src/Propellor/Property/SiteSpecific/JoeySites.hs
index 9385493c..0a1982c1 100644
--- a/src/Propellor/Property/SiteSpecific/JoeySites.hs
+++ b/src/Propellor/Property/SiteSpecific/JoeySites.hs
@@ -948,10 +948,9 @@ homePowerMonitor user hosts ctx sshkey = propertyList "home power monitor" $ pro
, "[Install]"
, "WantedBy=multi-user.target"
]
- -- Only upload when eth0 is up; eg the satellite internet is up.
-- Any changes to the rsync command will need my .authorized_keys
-- rsync server command to be updated too.
- rsynccommand = "if ip route | grep '^default' | grep -q eth0; then rsync -e 'ssh -i" ++ sshkeyfile ++ "' -avz rrds/recent/ joey@kitenet.net:/srv/web/homepower.joeyh.name/rrds/recent/; fi"
+ rsynccommand = "rsync -e 'ssh -i" ++ sshkeyfile ++ "' -avz rrds/recent/ joey@kitenet.net:/srv/web/homepower.joeyh.name/rrds/recent/"
-- My home router, running hostapd and dnsmasq for wlan0,
-- with eth0 connected to a satellite modem, and a fallback ppp connection.
@@ -998,7 +997,7 @@ homeRouter = propertyList "home router" $ props
& Apt.installed ["ppp"]
`before` File.hasContent "/etc/ppp/peers/provider"
[ "user \"joeyh@arczip.com\""
- , "connect \"/usr/sbin/chat -v -f /etc/chatscripts/pap -T 9734111\""
+ , "connect \"/usr/sbin/chat -v -f /etc/chatscripts/pap -T 3825441\""
, "/dev/ttyACM0"
, "115200"
, "noipdefault"
@@ -1037,28 +1036,31 @@ ipmasq intif = File.hasContent ifupscript
laptopSoftware :: Property DebianLike
laptopSoftware = Apt.installed
- [ "procmeter3", "xfce4", "procmeter3", "unclutter"
+ [ "intel-microcode"
+ , "procmeter3", "xfce4", "procmeter3", "unclutter"
, "mplayer", "fbreader", "firefox", "chromium"
, "libdatetime-event-sunrise-perl", "libtime-duration-perl"
- , "iftop", "network-manager", "gtk-redshift", "powertop"
+ , "network-manager", "gtk-redshift", "powertop"
, "gimp", "gthumb", "inkscape", "sozi", "xzgv", "hugin"
, "mpc", "mpd", "ncmpc", "sonata", "mpdtoys"
- , "bsdgames", "nethack"
+ , "bsdgames", "nethack-console"
, "xmonad", "libghc-xmonad-dev", "libghc-xmonad-contrib-dev"
, "ttf-bitstream-vera"
, "mairix", "offlineimap", "mutt"
- , "nmap"
- , "udevil", "pmount"
+ , "nmap", "whois", "wireshark", "tcpdump", "iftop"
+ , "udevil", "pmount", "tree"
, "arbtt", "hledger", "bc"
, "apache2", "ikiwiki", "libhighlight-perl"
, "pal"
, "yeahconsole", "xkbset", "xinput"
- , "assword", "pumpa", "vorbis-tools"
+ , "assword", "pumpa"
+ , "vorbis-tools", "audacity"
, "xul-ext-ublock-origin", "xul-ext-pdf.js", "xul-ext-status4evar"
, "vim-syntastic", "vim-fugitive"
, "adb", "gthumb"
, "w3m", "sm", "weechat"
, "borgbackup", "wipe"
+ , "units"
]
`requires` baseSoftware
`requires` devSoftware
@@ -1076,5 +1078,4 @@ devSoftware = Apt.installed
, "hothasktags", "hdevtools", "hlint"
, "gdb", "dpkg-repack", "lintian"
, "pristine-tar", "github-backup"
- , "kvm"
]