From 5cbbc8fbc5cfe0862ac278b63bb5f16f35998ee8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 16 Oct 2015 12:30:32 -0400 Subject: comment --- ...ent_1_10d797b43df9252c34a02c3fd249374b._comment | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 doc/todo/spin_without_remote_compilation/comment_1_10d797b43df9252c34a02c3fd249374b._comment (limited to 'doc/todo') diff --git a/doc/todo/spin_without_remote_compilation/comment_1_10d797b43df9252c34a02c3fd249374b._comment b/doc/todo/spin_without_remote_compilation/comment_1_10d797b43df9252c34a02c3fd249374b._comment new file mode 100644 index 00000000..31efdbd8 --- /dev/null +++ b/doc/todo/spin_without_remote_compilation/comment_1_10d797b43df9252c34a02c3fd249374b._comment @@ -0,0 +1,47 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2015-10-16T16:05:44Z" + content=""" +This is already implemented in propellor, but is currently only used +when the remote host doesn't have git installed and apt fails to install +it. I've used it for converting non-Debian systems to Debian eg. +See Propellor.Spin.sendPrecompiled + +Going beyond what's there now is not a feature I need myself, and not a +priority for me to implement, but I can help to some extent if you're going +to work on it. + +Both the controller and host architecture matter of course in determining +whether it will work. For example, an i386 controller will produce a +propellor bundle that works on amd64. An amd64 controller's bundle *may* +work on an i386 host, but only if its hardware and kernel happen to support +64 bit. The simplest solution I can think of is to send the precompiled +binary over to the host and check if it runs there before replacing any +older propellor binary with it. + +The other question is, how to tell propellor when to use this mode. Some +ideas: + +* --spin --precompiled + +* Add a `precompiled` property to the host that needs precompiled propellor. + The property can set Info, which --spin can look at to know if it needs + to use sendPrecompiled for this host, without needing --precompiled + +* Could also add a property that says a host is the controller for other + hosts. So, anytime propellor is run on the controller host, it + automatically spins the other hosts. And if the hosts it's spinning + have the `precompiled` property, the controller will honor it. + +These ideas build on each other. I think the last one is best. + +Propellor's cron job will probably fail on a precompiled host, since +even if it manages to pull changes from the central git repo (unlikely as a +precompiled propellor currently isn't set up as a git repo), it can't +locally compile them. + +So, in order to have a centralized repository with precompiled hosts, +you need a controller that can handle sending the updated builds of +propellor to them. +"""]] -- cgit v1.2.3