| Age | Commit message (Collapse) | Author |
|
This commit was sponsored by Trenton Cronholm on Patreon.
|
|
|
|
Properties that used to need it as a parameter now look at Info about the
bootloader that is installed in the chroot that the disk image is created
from. (API change)
This is a simplication, and avoids the user needing to repeat themselves
in the propellor config, thus avoiding mistakes.
When no boot loader is installed, or multiple different ones are,
disk image creation will fail, which seems reasonable.
This commit was sponsored by Jake Vosloo on Patreon.
|
|
|
|
* DiskImage.grubBooted no longer takes a BIOS parameter,
and no longer implicitly adds Grub.installed to the properties of
the disk image. If you used DiskImage.grubBooted, you'll need to update
your propellor configuration, removing the BIOS parameter from
grubBooted and adding a Grub.installed property to the disk image, eg:
& Grub.installed PC
(API change)
* Grub.installed: Avoid running update-grub when used in a chroot, since
it will get confused.
* DiskImage.Finalization: Simplified this type since it does not need to
be used to install packages anymore. (API change)
The advantage of doing this comes when using hostChroot with
imageBuilt, since the Host then has its Grub.installed property
explicitly listed so propellor knows about it when otherwise deploying that
host. Also, it simplifies the quite complex imageBuilt parameters.
This commit was sponsored by Ewen McNeill.
|
|
|
|
This commit was sponsored by Ethan Aubin.
|
|
destination file did not yet exist.
This commit was sponsored by andrea rota.
|
|
* Propellor.Property.XFCE added with some useful properties for the
desktop environment.
* Added File.applyPath property.
This commit was sponsored by Riku Voipio.
|
|
(minor API change as the type changed)
|
|
When provisioning a container, output was buffered until the whole process
was done; now output will be displayed immediately.
I know this didn't used to be a problem. I belive it was introduced by
accident when propellor started using concurrent-output. I know I've seen
it for a while and never was bothered enough to get to the bottom of it;
apparently "a while" was longer than I thought.
Also refactored code to do with chain provisioning to all be in
Propellor.Engine and avoided some duplication.
This commit was sponsored by Anthony DeRobertis on Patreon.
|
|
This way, when a disk image is built using this property, and booted up,
running propellor won't try to ensure this property again.
This commit was sponsored by Jeff Goeke-Smith on Patreon.
|
|
from the bootstrapped config the first time.
When the config changes, the bootstrapped propellor needs to get rebuilt.
This commit was sponsored by Fernando Jimenez on Patreon.
|
|
Since some programs (such as VBoxManage convertdd) refuse to operate on
disk images not aligned to a sector size.
This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
|
|
|
|
|
|
So if the insecure password is later changed, the new password won't be
exposed.
|
|
|
|
ref HEAD"
Tricky stdin buffering problem.
An easier fix would have been:
hSetBuffering stdin NoBuffering
But that approach is less robust; even with NoBuffering, anything that
uses hLookAhead causes 1 byte of buffering. And, any reads from stdin
before hSetBuffering would still cause the problem. Instead, I used a
bigger hammer that will always work. It involves a bit more CPU work,
but this is data that is already being fed through ssh; copying it one
more time won't cause a measurable performance impact.
This commit was sponsored by Jack Hill on Patreon.
|
|
|
|
hackage rejection.
|
|
|
|
|
|
|
|
MissingH is a heavy dependency, which pulls in parsec and a bunch of stuff.
So eliminating it makes propellor easier to install and less likely to
fail to build.
changesFileContent now uses hashable's hash. This may not be stable across
upgrades, I'm not sure -- but it's surely ok here, as the hash is not
stored.
socketFile also uses hash. I *think* this is ok, even if it's not stable.
If it's not stable, an upgrade might make propellor hash a hostname to a
different number, but with 9 digets of number in use, the chances of a
collision are small. In any case, I've opned a bug report asking for the
stability to be documented, and I think it's intended to be stable, only
the documentation is bad.
NB: I have not checked that the arch linux and freebsd packages for the new
deps, that Propellor.Bootstrap lists, are the right names or even exist.
Since propellor depends on hashable, it could be changed to use
unordered-containers, rather than containers, which would be faster and
perhaps less deps too.
This commit was sponsored by Alexander Thompson on Patreon.
|
|
Félix Sipma.
|
|
|
|
|
|
Removed mountNow as a top-level property, as I don't think it makes
sense for anything except for mounted to use it.
db45x's patch turns out to have introduced a bug in mounted's use of
"mountNow src". That made mountNow check if the device was a mount
point, which it isn't. The fix would have been to use "mountNow mnt",
but my inlining of mountnow just basically reverted the part of the
patch that introduced the bug.
swapOn does not involve the fstab so moved to the Mount module.
(Also noticed that Mount.mounted is a kind of weird property, given that
it fails the next time ran. It's only used internally by some chroot
properties, so I left it as-is, but added a comment. It might make sense
to make Mount.mounted check like mountNow does if the thing is already
mounted.)
|
|
|
|
* Fix bug when using setContainerProps with a chroot that prevented
properties added to a chroot that way from being seen when propellor
was running inside the chroot. This affected disk image creation, and
possibly other things that use chroots.
The problem was, propagateChrootInfo was being passed the initial
version of the Chroot, but then the Chroot got more properties
added, and so those were not recorded in the _chroot info.
Fix was simply to make InfoPropagator be passed the Chroot as an
additional parameter, so Chroot.provisioned' can pass in the final
Chroot to it.
|
|
|
|
changed around version 0.6. Both output formats are supported now.
Do we trust kpartx to not change again, given how little documented its
output format is and that it's changed w/o warning? Little other things
like vmdebootstrap depend on its output in the same way..
This commit was sponsored by Ignacio on Patreon.
|
|
building disk images. /dev/mapper/loop* symlinks are now detected as block devices.
|
|
the default CDN.
This info is used by Apt.stdSourcesList and Sbuild.builtFor.
Thanks, Sean Whitton.
|
|
|
|
|
|
in addition to the old secret_id_key.
|
|
|
|
|
|
|
|
|
|
* Added Monoid instances for Property and RevertableProperty.
* Removed applyToList. Instead, use mconcat. (API change)
Eg, if you had: applyToList accountFor [User "joey", User "root"]
use instead: mconcat (map accountFor [User "joey", User "root"])
mappend x y is basically the same as x `before` y. In particular, if x
fails to be ensured, it won't ensure y. This seems to make sense, since
applyToList had that behavior, and so does the Monoid for Propellor
Result. The alternative would be to try to ensure both and combine
the results. However, I don't see any reason to do it that way.
It would be nice if the description of both properties were displayed when
ensuring the combination. But then, it would need to display eg:
ensuring x..ok
ensuring y..failed
ensuring x and ensuring y..failed
Without a way to get rid of that redundant last line, I don't want to do
that.
Note that the haddocks for the Monoid instances need a really wide screen
to display! This is IMHO an infelicity in haddock, and I can't do anything
about it really.
This commit was sponsored by Fernando Jimenez on Patreon.
|
|
* Property types changed to use a Maybe (Propellor Result). (API change)
* When Nothing needs to be done to ensure a property, propellor
will avoid displaying its description at all. The doNothing property
is an example of such a property.
This is mostly in preparation for Monoid instances for Property types, but
is's also nice that anything that uses doNothing will avoid printing out
any message at all. At least, I think it probably is. It might potentially
be confusing for something that sometimes takes an action and sometimes
resolves to doNothing and in either case has a description set to not
always show the description. If this did turn out to be confusing, the
change to doNothing could be reverted.
This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
|
|
* DiskImage building properties used to propagate DNS info out from
the chroot used to build the disk image to the Host. That is no longer
done, since that chroot only exists as a side effect of the disk image
creation and servers will not be running in it.
* The IsInfo types class's propagateInfo function changed to use a
PropagateInfo data type. (API change)
This is particularly important when using hostChroot, since the host could
well have DNS settings then.
This commit was sponsored by Ole-Morten Duesund on Patreon.
|
|
As originally seen in my slides at Linux.Conf.Au 2017 in January.
Now that it's not vaporware, it allows one Host to build a disk image that
has all the properties of another Host.
It was easier than I thought to implement this! As expected, Info
propagation was slightly tricky. Also, I originally had a lot of machinery
to try to use Info to detect infinitely nested chroot loops. But, my
machinery didn't work, and when I tested it, ghc did a much better job,
causing a "warning: <<loop>>" message to be output instead of such a
property using infinite disk space.
This commit was sponsored by Bruno BEAUFILS on Patreon.
|
|
This will allow for different Chroots that propigate info differently.
hostChroot will use this.
This commit was sponsored by Peter Hogg on Patreon.
|
|
It's not used by propellor any longer. Has not been used for a long time
actually.
|
|
"make" now only builds propellor, does not run it.
Note that propellor 1.0.0 and earlier relied on this target for the
Cron.runPropellor property's cronjob to work, so upgrading directly to this
version from 1.0.0 would break that cron job.
(Debian has 0.9.1 in stable, and 3.2.3 will be in the next stable
release. Upgrading between Debian releases is supposed to be done
without skipping a release, so that's ok.)
|
|
|