[Fedora-livecd-list] RFC- mayflower flexibility enhancements
Tim Wood
tim.wood at datawranglers.com
Mon Aug 13 05:25:57 UTC 2007
follow up since I've no urge to look like a newb in the bat-it-over
the fence group on this list... what is Mayflower? Link to let me
RTFM is fine o'course...
Tim
On Aug 12, 2007, at 10:13 PM, Douglas McClendon wrote:
> I have a few changes I'd like to request to mayflower. I'd like to
> get some feedback before actually laying down the effort of
> producing patches.
>
> #1 - mayflower.conf - add PROGRAMS and FILES
>
> I'd like it if mayflower, in addition to supporting MODULES+=
> lines, would also support PROGRAMS+= and FILES+=
>
> PROGRAMS+= would be used for example, in my prior persistence
> patch, to add things like ntfsmount.
>
> FILES+= would differ from PROGRAMS, in that the auto shared library
> dependency check would not apply to them. Maybe that doesn't
> matter, and you could just have FILES.
>
> #2 - support user specified mayflower.conf location
> (i.e. not just /etc/mayflower.conf)
>
> #3 - optional program, sort of like existing shell cmdline arg
>
> Have a cmdline argument of program= and eprogram= which would cause
> the specified program to be executed. program= would happen right
> after the current shell, and eprogram would happen right after the
> current eshell.
>
> You would of course supply your own custom program via #1 above.
>
> Now, you are no doubt asking, what would this be used for...
>
> Answers:
>
> 1) support SELinux enabled livecd creation from an SELinux disabled
> build system.
>
> 2) support building of anaconda rpm as a non root user
>
> 3) support livecd-creator as a non root user
>
> Now you are no doubt asking, how do #1 #2 & #3 get you 1) 2) and 3)?
>
> The answer is by implementing the qmkfs program I alluded to a long
> time ago on fedora-devel, and it's more general incarnation, qrr
> (qemu root run)
>
> The idea is this- qrr is a script. qrr reads it's input, a config
> file, describing a program and some data. qrr then invokes
> mayflower (as a user, not root, with #2) to generate an initramfs,
> that is basically the same as the livecd initramfs, but with extra
> programs, specified by the config file, and added with #1. Then,
> qemu is invoked with #3, somewhat like this-
>
> mkdir ./my_input_output_dir
> cp -av <user supplied input data> ./my_input_output_dir
> qemu-img create scratch.img 10G
> qemu -kernel /boot/vmlinuz-$(uname -r) \
> -initrd ./my_mayflower_generated_initrd.img \
> -append "program=/my_custom_qrr_program" \
> -hda ./scratch.img \
> -hdb fat:rw:./my_input_output_dir
>
> Thus, the mayflower initramfs boots, runs the user supplied
> my_custom_qrr_program, which mounts the my_input_output_dir, and
> proceeds to process it with root privs (i.e. it can do loopback
> mounts, selinux relabeling, etc...), and then leaves its output
> (e.g. a filesystem image) in my_input_output_dir.
>
> I think that the changes involved with #1 #2 and #3 are fairly
> minor, elegant, and safe. Actually implementing 1) and 2) are a
> bit tricky. 3) is probably a lot tricky, but arguably worth the
> effort.
>
> Mainly I want this feature (qrr) for my own currently private
> project, though I would definitely go ahead and implement 1) as
> part of the patchset to be submitted for merging, which I think is
> justification enough for #1 #2 and #3.
>
> In general, the ability to use mayflower to construct arbitrarily
> useful custom purpose initramfs-s, seems quite useful. I imagine
> that when people really start to think about this, and what it
> allows, they will come up with many uses that I would probably
> never imagine.
>
> Personally I am hoping for a koji/pungi/livecd-creator/revisor that
> does not require root privileges at all. It seems to me like there
> should be no reason why a non-root user cannot take the fedora cvs/
> git trees, and output (customized) F9 media sets.
>
> I realize this may sound like a lot of stuff, but please focus on
> how small and safe the patches to support #1 #2 and #3 really are.
>
> Also, I have basically done this somewhat manually. (tweaked
> mayflower, generated initramfs as user, booted qemu to get
> arbitrary program to run)
>
> questions/comments/criticisms?
>
> -dmc
>
> --
> Fedora-livecd-list mailing list
> Fedora-livecd-list at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-livecd-list
>
More information about the livecd
mailing list