Hello everyone, I got a chance to discuss the build factory idea with imcleod and Evolution on IRC Freenode #centos-gsoc. They gave me some good inputs. While I work on improving my proposal based on those inputs, here is the entire log of the chat.
----------------------------------------------------------------------------------------------------------------------------- Conversation with #centos-gsoc at Thu 02 Apr 2015 12:49:44 AM IST on mndar@irc.freenode.net (irc) (12:49:44 AM) The topic for #centos-gsoc is: We are IN! || http://wiki.centos.org/GSoC/HowToApply || http://wiki.centos.org/GSoC/2015/ (12:49:44 AM) Topic for #centos-gsoc set by kbsingh!~kbsingh@n12.lon1.karan.org at 06:43:51 PM on 03/03/2015 (01:05:21 AM) mndar: hughesjr: Perhaps you might have already seen my email to you that I sent on 22 March. I learnt from Karsten Wade on the centos-devel mailing list that you are busy with the CentOS updates. I was wondering if you got the chance to review my proposal for RootFS Build Factory. sankarshan asked me if I've been in conversation with the mentor of this project. I am eager to discuss the project with you. (01:18:50 AM) lalatenduM left the room (quit: Quit: Leaving). (01:33:55 AM) mndar: right now I am trying to figure out if using ImageFactory is the best option for building ARM RootFS or whether we need a separate set of scripts. (01:34:11 AM) mndar: Evolution, imcleod: any thoughts? (01:37:20 AM) Evolution: I'm fine either way. (01:37:36 AM) Evolution: so long as there's 'one tool suite' to do so (01:39:20 AM) mndar: by 'one tool suite' you mean, a single tool should be able to generate x86 cloud images and ARM RootFS? (01:56:45 AM) kbsingh: quaid: around ? (01:58:09 AM) rbowen [~DrBacchus@apache/pony-mafia/rbowen] entered the room. (02:01:57 AM) kbsingh: quaid: meet rbowen ; rbowen meet quaid :) (02:05:19 AM) rbowen: quaid: I feel like maybe we've met somewhere before. (02:15:22 AM) The account has disconnected and you are no longer in this chat. You will automatically rejoin the chat when the account reconnects.
Conversation with #centos-gsoc at Thu 02 Apr 2015 02:16:11 AM IST on mndar@irc.freenode.net (irc) (02:16:11 AM) The topic for #centos-gsoc is: We are IN! || http://wiki.centos.org/GSoC/HowToApply || http://wiki.centos.org/GSoC/2015/ (02:16:11 AM) Topic for #centos-gsoc set by kbsingh!~kbsingh@n12.lon1.karan.org at 06:43:51 PM on 03/03/2015 (02:16:42 AM) mndar left the room (quit: Ping timeout: 264 seconds). (02:33:39 AM) imcleod: mndar: I will try to get some initial review comments in in the next day or two. Regarding the specific question, I don't think it necessarily has to be based on ImageFactory. (02:49:08 AM) mndar1: imcleod: thanks. In the next 2-3 days, I'll play around a bit with ImageFactory. Check out what features it has. How it does things. Should I refer to https://github.com/imcleod/oz/tree/feature/arm_support or http://imgfac.org/ ? (02:50:17 AM) imcleod: mndar1: For this use case, the oz tree would probably be a better starting point. (02:51:19 AM) imcleod: The primary benefit of the Oz approach is that we get to use Anaconda, which means we get the install runtime (with yum/dnf, rpm versions, filesystem support) built for us. (02:51:58 AM) imcleod: Earlier image solutions used in Fedora did not use virt, and depended on things like running a yum transaction with the target being a subdir or a loopback device. (02:52:39 AM) imcleod: And this works, somewhat, if you are using similar versions of the host and target (e.g. F20 -> F20) but starts to break down when the diff between the host and target grows. (02:53:52 AM) mndar1: imcleod: when I initially read the problem statement on the ideas page, my first thought was to take the subdir/loopback device approach. (02:55:38 AM) imcleod: mndar1: Right. I believe the Fedora project is in fact still using that approach to make the ARM images for F21 and now F22. (02:55:55 AM) mndar1: do we need anaconda for ARM boards? Packages required to run a complete CentOS system can be put into a rootfs image using the 'Build Factory' (02:56:40 AM) imcleod: mndar1: But they do so using nested chroots (IIRC). So, for example, the version of yum used to generate the F21 rootfs for ARM was the F21 version of yum (and rpm, etc.) not the version running on the host doing the build. (02:57:37 AM) imcleod: mndar1: Anaconda actually does work now for ARM (and most of the other non x86_64 architectures). (02:58:11 AM) imcleod: mndar1: And the appeal of using the Anaconda approach is that it can essentially be the same thing that is already done to generate disk images for x86. (02:58:18 AM) imcleod: mndar1: It's an open question, in my mind. (02:59:28 AM) mndar1: imcleod: I didn't know that about Anaconda. Thanks. You've given me some good points to ponder over (02:59:59 AM) imcleod: mndar1: Cheers. (03:00:48 AM) mndar1: imcleod: do we also want something like this http://fedoraproject.org/wiki/Fedora_ARM_Installer? (03:08:58 AM) mndar1: imcleod: from what I've read so far Fedora has released one image which needs to be installed using slightly different techniques on each board. That's one approach. The second would be, as you mentioned, Anaconda. With Anaconda users will have to first copy over a bootable images to a SD card, boot with it and install CentOS to their NAND Flash or SATA HDD and then configure it (03:09:24 AM) mndar1: imcleod: another option is to create a preconfigured images using the 'Build Factory' (03:14:42 AM) imcleod: mndar1: I think the Fedora approach for F21 is pretty cool, in that it manages to provide a single base image where the only board-specific tweaks are related to the boot loader. (03:17:11 AM) mndar1: imcleod: can you do custom partitioning with those Fedora images? (03:18:01 AM) imcleod: mndar1: You cannot. You are more or less stuck with the partition layout they have given you, though there are built in tools to extend the main parition (containing /) to fill whatever sdcard you have used to do the install. (03:21:43 AM) mndar1: imcleod: my initial thoughts are that we should let the board vendor decide everything about partitions. If any user wants to custom partitions he can easily create his own image using the build factory. As far as the partitioning issue goes, your suggestion of using Anaconda seems to be the best option (03:24:47 AM) mndar1: imcleod: About Oz. So, it creates a virtual machine using libvirt and then installs native packages? It would save me some time if you could briefly tell me how Oz goes about generating images (03:33:23 AM) mndar1: imcleod: We want the build factory to be able to generate different images containing different packages. For that, the yum chroot option seems suitable (03:37:03 AM) mndar1: So the ideal/Fedora solution is https://fedoraproject.org/wiki/Architectures/ARM/F21/Installation#Download_t... + ability to generate custom images based on packages listed in a template file (03:45:55 AM) mndar1: imcleod: thanks for all your inputs. I have to go now. its almost 4am over here --------------------------------------------------------------------------------------------------------------------------
Regards Mandar Joshi