summaryrefslogtreecommitdiff
path: root/doc/forum/__34__Unknown_host_OS__34___after_merging_recent_propellor/comment_1_6ed53a6752f3f88acce023a4fe1b9bf6._comment
blob: 608bc3e25a96b0f18a48ab5f87c6d08c9668279c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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.
"""]]