Hi all, I'm an Arch Linux user and I've been learning Haskell and working on an Arch Liux Port in the last several months. Here's my GitHub fork, and the branch is called archlinux.
Currently, I've added types, modified Bootstrap.hs, and added a Property for the package manager Pacman. I've been using it for a while and it seems to be working.
I've made some addtional minor changes to make propellor compile without errors:
- User.nuked now has type Property Linux
- OS.cleanInstallOnce now has type Property DebianLike, because one of its dependencies, User.shadowConfig only supports DebianLike
- tightenTargets is added to Reboot.toDistroKernel to get the expeted type
- pattern for Arch Linux is added to Debootstrap.extractSuite to silence warning "non-exhaustive pattern match"
- several properties in Parted and Partition are converted to Property Linux
- Rsync.installed and Docker.installed now supports Pacman as well
Hope you enjoy it!
Wow, nice work!
Seems that Propellor.Property.Partition.formatted' is still a DebianLike property really, since it only supports using apt to install the mkfs programs. It will fail at runtime on Arch. So, I think best to keep it DebianLike until that's dealt with -- and then the type will be
DebianLike + ArchLinux
rather thanLinuxLike
Same for Propellor.Property.Partition.kpartx.
Several properties that were changed from DebianLike to Linux really only support DebianLike and ArchLinux, not all linux distros, so their types ought to be
DebianLike + ArchLinux
. This includes Docker.installed, Parted.installed, Rsync.installed.A nicer way to inplement those multi-distro
installed
properties is like this:Make those changes and I will merge it.
Thanks!
I didn't find the right way to do it;
pickOS
is so much easier thanwithOS
!Propellor.Property.Partition
was modified to get rid of some compiling errors in DiskImage and didn't support anything new. So I removed the changes.Instead, I changed some properties in DiskImage from Linux to DebianLike. Is it the correct way to do it?
Looking at it, kpartx is DebianLike-specific, so imageBuiltFrom which uses it should be too. The only reason it wasn't marked as DebianLike already and was type Linux is because Linux used to be the same as DebianLike and so the type checker didn't see a difference. No longer, thanks to your patch.
So, it makes complete sense that you have to change this. You're paying the price of blazing the trail of the first non-DebianLike Linux distro in Propellor..
Looks like your 25f6871e1dda3de252fbc6c8ac6962eb0cd9311a dealt with all my review suggestions. And so, I've merged it.
Unless you have anything else that needs to be done, I'll release propellor soon with the added Arch Linux support. Thank you very much!