From 0f5bbbb914e20430b97a7840623c7299422c45ad Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 30 Apr 2018 09:23:06 -0400 Subject: clean up after merge --- config.hs | 2 +- privdata/relocate | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 privdata/relocate diff --git a/config.hs b/config.hs index 97d90636..ec313725 120000 --- a/config.hs +++ b/config.hs @@ -1 +1 @@ -joeyconfig.hs \ No newline at end of file +config-simple.hs \ No newline at end of file diff --git a/privdata/relocate b/privdata/relocate deleted file mode 100644 index 271692d8..00000000 --- a/privdata/relocate +++ /dev/null @@ -1 +0,0 @@ -.joeyconfig -- cgit v1.2.3 From fbe9e7ff6bd6c1feba0f04fe07cb7b086ec38376 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 30 Apr 2018 09:30:48 -0400 Subject: responses --- ...ment_1_bf0296c4293a52b4533a9465795366e4._comment | 7 +++++++ ...ment_2_32d521dad51ada52e98c9540ab97add6._comment | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 doc/forum/5.3.5_errors_building_with_Stack/comment_1_bf0296c4293a52b4533a9465795366e4._comment create mode 100644 doc/forum/5.3.5_import_errors/comment_2_32d521dad51ada52e98c9540ab97add6._comment diff --git a/doc/forum/5.3.5_errors_building_with_Stack/comment_1_bf0296c4293a52b4533a9465795366e4._comment b/doc/forum/5.3.5_errors_building_with_Stack/comment_1_bf0296c4293a52b4533a9465795366e4._comment new file mode 100644 index 00000000..03121a74 --- /dev/null +++ b/doc/forum/5.3.5_errors_building_with_Stack/comment_1_bf0296c4293a52b4533a9465795366e4._comment @@ -0,0 +1,7 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2018-04-30T13:23:47Z" + content=""" +Think I've fixed this now. +"""]] diff --git a/doc/forum/5.3.5_import_errors/comment_2_32d521dad51ada52e98c9540ab97add6._comment b/doc/forum/5.3.5_import_errors/comment_2_32d521dad51ada52e98c9540ab97add6._comment new file mode 100644 index 00000000..6edd05d7 --- /dev/null +++ b/doc/forum/5.3.5_import_errors/comment_2_32d521dad51ada52e98c9540ab97add6._comment @@ -0,0 +1,21 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 2""" + date="2018-04-30T13:24:30Z" + content=""" +Seems this must be caused by [[!commit d8d2faece72eabd18c2ff303e5fb63c3a69961f6]] + +And I guess you've modified the config.hs in propellor +for your own systems? + +You will indeed need to add dependencies to the cabal stanza for +propellor-config. + +I think that you may be able to add Other-Modules: Utility.FileMode +to the cabal stanza for propellor-config and get access to the unexported +module that way. Not 100% sure. + +I'm curious: Is there part of propellor's published modules that made you +need something from Utility.FileMode to use it, or were you writing your +own property and happened to use something from Utility.FileMode? +"""]] -- cgit v1.2.3 From 1e39e5eff8ef14d133b5e7aa029bb92d654ff4c0 Mon Sep 17 00:00:00 2001 From: jsza Date: Mon, 30 Apr 2018 14:27:19 +0000 Subject: Added a comment --- .../comment_2_be534b87de24660fb8565c2916ddefb5._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/forum/5.3.5_errors_building_with_Stack/comment_2_be534b87de24660fb8565c2916ddefb5._comment diff --git a/doc/forum/5.3.5_errors_building_with_Stack/comment_2_be534b87de24660fb8565c2916ddefb5._comment b/doc/forum/5.3.5_errors_building_with_Stack/comment_2_be534b87de24660fb8565c2916ddefb5._comment new file mode 100644 index 00000000..43e83fb7 --- /dev/null +++ b/doc/forum/5.3.5_errors_building_with_Stack/comment_2_be534b87de24660fb8565c2916ddefb5._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="jsza" + avatar="http://cdn.libravatar.org/avatar/72c6bc8c0cdfb0fff175e90c3b036415" + subject="comment 2" + date="2018-04-30T14:27:19Z" + content=""" +Nice, thank you! Can confirm that it's now working for me. + +I'd also just like to say that using Propellor to manage our eleven or so TF2 game servers has been an absolute pleasure and a time saver. + +Thanks for all the work you've put into making Propellor so awesome. +"""]] -- cgit v1.2.3 From a8fa6e5f63b466d97a04fb9e78e05b417aa3a33c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 30 Apr 2018 16:23:14 -0400 Subject: notes on failed attempt to migrate --- doc/todo/depend_on_concurrent-output.mdwn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/todo/depend_on_concurrent-output.mdwn b/doc/todo/depend_on_concurrent-output.mdwn index 347ea9e5..c3641385 100644 --- a/doc/todo/depend_on_concurrent-output.mdwn +++ b/doc/todo/depend_on_concurrent-output.mdwn @@ -7,3 +7,23 @@ Waiting on concurrent-output reaching Debian stable. > supporting the current oldstable, I believe.. --[[Joey]] [[!tag user/joey]] + +> This was attempted again in 2018 and had to be reverted +> in [[!commit b6ac64737b59e74d4aa2d889690e8fab3772d2c6]]. +> +> The strange output I was seeing is the first line +> of "apt-cache policy apache2" (but not subsequent lines) +> and the ssh-keygen command run by `genSSHFP'` + +> Propellor also misbehaved in some other ways likely due to not seeing +> the command output it expected. In particular Git.cloned must have +> failed to see an origin url in git config output, because it nuked and +> re-cloned a git repo (losing data). +> +> So, it seems that readProcess was somehow leaking output to the console +> and also likely not providing it to the caller. +> +> The affected system had libghc-concurrent-output-dev 1.10.5-1 installed +> from debian. That is a somewhat old version and perhaps it was buggy? +> However, I have not had any luck reproducing the problem there running +> readProcess in ghci. --[[Joey]] -- cgit v1.2.3 From bf705c7a797fd67ad825233a64c37ebb0e94aee3 Mon Sep 17 00:00:00 2001 From: picca Date: Tue, 1 May 2018 07:07:54 +0000 Subject: Added a comment --- ...ment_3_a4774959fd93039d49196e7cff232089._comment | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 doc/forum/5.3.5_import_errors/comment_3_a4774959fd93039d49196e7cff232089._comment diff --git a/doc/forum/5.3.5_import_errors/comment_3_a4774959fd93039d49196e7cff232089._comment b/doc/forum/5.3.5_import_errors/comment_3_a4774959fd93039d49196e7cff232089._comment new file mode 100644 index 00000000..c861f1cc --- /dev/null +++ b/doc/forum/5.3.5_import_errors/comment_3_a4774959fd93039d49196e7cff232089._comment @@ -0,0 +1,21 @@ +[[!comment format=mdwn + username="picca" + avatar="http://cdn.libravatar.org/avatar/7e61c80d28018b10d31f6db7dddb864c" + subject="comment 3" + date="2018-05-01T07:07:54Z" + content=""" +* Do you think that I should use a dedicated config-soleil.hs file instead of the config.hs file ? + +* I use the combinesModes in order to set the right mode. + + +rra :: Property UnixLike + +rra = fetch `onChange` execmode + + where + + fetch :: Property UnixLike + + fetch = property \"install rra scripts\" + + (liftIO $ toResult <$> download \"https://archives.eyrie.org/software/devel/backport\" \"/usr/local/bin/backport\") + + + + execmode :: Property UnixLike + + execmode = File.mode \"/usr/local/bin/backport\" (combineModes (ownerWriteMode:readModes ++ executeModes)) + +"""]] -- cgit v1.2.3 From 5541473c69a9cfc9564644d9757f3836ff99c3c3 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 2 May 2018 17:08:04 -0400 Subject: update --- src/Propellor/Property/SiteSpecific/JoeySites.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Propellor/Property/SiteSpecific/JoeySites.hs b/src/Propellor/Property/SiteSpecific/JoeySites.hs index d7f6196b..4d8ee240 100644 --- a/src/Propellor/Property/SiteSpecific/JoeySites.hs +++ b/src/Propellor/Property/SiteSpecific/JoeySites.hs @@ -1074,7 +1074,7 @@ laptopSoftware = Apt.installed , "bsdgames", "nethack-console" , "xmonad", "libghc-xmonad-dev", "libghc-xmonad-contrib-dev" , "ttf-bitstream-vera" - , "mairix", "offlineimap", "mutt" + , "mairix", "offlineimap", "mutt", "slrn" , "mtr", "nmap", "whois", "wireshark", "tcpdump", "iftop" , "pmount", "tree", "pv" , "arbtt", "hledger", "bc" -- cgit v1.2.3 From 09191ed1fde898d69bf7f3862bd8400db84eff66 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 2 May 2018 10:35:48 -0700 Subject: make Schroot.overlaysInTmpfs revertable Useful when a build fails on a tmpfs (usually a package's test suite). Signed-off-by: Sean Whitton --- src/Propellor/Property/Schroot.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Propellor/Property/Schroot.hs b/src/Propellor/Property/Schroot.hs index bb20f6e6..2f399b7c 100644 --- a/src/Propellor/Property/Schroot.hs +++ b/src/Propellor/Property/Schroot.hs @@ -32,8 +32,8 @@ usesOverlays = isJust . fromInfoVal -- Implicitly sets 'useOverlays' info property. -- -- Shell script from . -overlaysInTmpfs :: Property (HasInfo + DebianLike) -overlaysInTmpfs = go `requires` installed +overlaysInTmpfs :: RevertableProperty (HasInfo + DebianLike) UnixLike +overlaysInTmpfs = (go `requires` installed) undo where f = "/etc/schroot/setup.d/04tmpfs" go :: Property (HasInfo + UnixLike) @@ -58,6 +58,7 @@ overlaysInTmpfs = go `requires` installed , "fi" ] `onChange` (f `File.mode` combineModes (readModes ++ executeModes)) + undo = File.notPresent f installed :: Property DebianLike installed = Apt.installed ["schroot"] -- cgit v1.2.3 From 767d64b86f37f5313d257b28b5fdf93159b62ffa Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 2 May 2018 17:08:34 -0400 Subject: changelog --- debian/changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/changelog b/debian/changelog index 9308a7bb..4d077d35 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,8 @@ propellor (5.3.6) UNRELEASED; urgency=medium oldstable), to avoid needing to depend on the semigroups transitional package, but also because it's just too old to be worth supporting. * stack.yaml: Updated to lts-9.21. + * Make Schroot.overlaysInTmpfs revertable + Thanks, Sean Whitton -- Joey Hess Mon, 23 Apr 2018 13:12:25 -0400 -- cgit v1.2.3 From 94653981cab8a9e0640a8ce3eee54a186479c1e5 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 3 May 2018 12:25:25 -0400 Subject: Update shim each time propellor is run in a container, to deal with library version changes. Surprised this didn't come up before, since propellor was run against progressively old versions of libraries when propelling eg, a chroot. It finally broke on an arm box, where libm got updated to a new version and propellor used a symbol from the new version. The comment says that propellor may be running from an existing shim in which case it's reused. That could be a nested chroot or other container, or perhaps propellor was deployed via a precompiled tarball which is built using a shim. The code used to use "checkAlreadyShimmed shim" which I don't see how it deals with either of those scenarios. Changed to "checkAlreadyShimmed propellorbin", which I think will deal with them, but I've not tested such scenarios. Added code to delete old versions of libraries out of the shim directory to avoid masses of old ones piling up over time. Property.Chroot sets up the shim directory and then bind mounts it into the chroot. To avoid deleting the source of a bind mount, made this only delete files in the shim directory, but not the shim directory itself. --- debian/changelog | 2 ++ src/Propellor/Property/Chroot.hs | 5 +---- src/Propellor/Shim.hs | 9 ++++++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4d077d35..39fd6cba 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,8 @@ propellor (5.3.6) UNRELEASED; urgency=medium * stack.yaml: Updated to lts-9.21. * Make Schroot.overlaysInTmpfs revertable Thanks, Sean Whitton + * Update shim each time propellor is run in a container, to deal with + library version changes. -- Joey Hess Mon, 23 Apr 2018 13:12:25 -0400 diff --git a/src/Propellor/Property/Chroot.hs b/src/Propellor/Property/Chroot.hs index 0dd1f05a..5d29538c 100644 --- a/src/Propellor/Property/Chroot.hs +++ b/src/Propellor/Property/Chroot.hs @@ -169,10 +169,7 @@ propellChroot :: Chroot -> ([String] -> IO (CreateProcess, IO ())) -> Bool -> Pr propellChroot c@(Chroot loc _ _ _) mkproc systemdonly = property (chrootDesc c "provisioned") $ do let d = localdir shimdir c let me = localdir "propellor" - shim <- liftIO $ ifM (doesDirectoryExist d) - ( pure (Shim.file me d) - , Shim.setup me Nothing d - ) + shim <- liftIO $ Shim.setup me Nothing d ifM (liftIO $ bindmount shim) ( chainprovision shim , return FailedChange diff --git a/src/Propellor/Shim.hs b/src/Propellor/Shim.hs index 811ae7f0..b8ebdf46 100644 --- a/src/Propellor/Shim.hs +++ b/src/Propellor/Shim.hs @@ -16,12 +16,19 @@ import System.Posix.Files -- | Sets up a shimmed version of the program, in a directory, and -- returns its path. -- +-- If the shim was already set up, it's refreshed, in case newer +-- versions of libraries are needed. +-- -- Propellor may be running from an existing shim, in which case it's -- simply reused. setup :: FilePath -> Maybe FilePath -> FilePath -> IO FilePath -setup propellorbin propellorbinpath dest = checkAlreadyShimmed shim $ do +setup propellorbin propellorbinpath dest = checkAlreadyShimmed propellorbin $ do createDirectoryIfMissing True dest + -- Remove all old libraries inside dest, but do not delete the + -- directory itself, since it may be bind-mounted inside a chroot. + mapM_ nukeFile =<< dirContentsRecursive dest + libs <- parseLdd <$> readProcess "ldd" [propellorbin] glibclibs <- glibcLibs let libs' = nub $ libs ++ glibclibs -- cgit v1.2.3