[Gelistirici] YALI Installer

Barış Metin baris at pardus.org.tr
30 Kas 2006 Per 12:45:09 EET


29 Kas 2006 Çar 22:19 tarihinde, Rajeev J Sebastian şunları yazmıştı: 
> Hello all,

Hello,

> I would like to know some information on architecture of YALI, and
> also with regard to the partitioning screen. Is there any
> documentation on pyparted ?

There was a very little/limitted documentation on pyparted and libparted. One 
has to read the source code (mostly the code for libparted) to get an 
understanding of the overall process. At least, that was the case for me. I 
know it's counterproductive as a requirement to start developing but thats 
the only way I know :(.

> It seems that Kubuntu installer is very capable of resizing fat32
> using the partman (which uses libparted). In that case, is there some
> reason why it is not included in YALI ?

Basicly there are two steps in partition resizing. The first step is resizing 
the partition, which is filesystem independent and obviously YALI is capable 
of doing it :). The other is filesystem resizing and defined in 
filesystem.py. To support resizing a partition YALI checks 
FileSystem.isResizeable(). If it's positive partition resizing is done 
through the FileSystem implementation (if there is one of course ;).

We can have fat32 partitioning support of course. But one (possibly me or if 
you are a volunteer you ;), has to write a FileSystem implementation for 
fat32 and filesystem.py:get_filesystem(name) should return its instance. This 
is the only need.

We can use partman or using libparted directly is a choice  too. parted is 
capable of resizeing ext2/3, fat and linux-swap (and with an external 
dependency reiserfs), ext3 resizing has restrictions so we choosed not to use 
it. But using libparted for fat32 resize is fine for me.

> Also, Kubuntu partman it seems uses libparted directly for
> resize/partitioning tasks (other than for ntfs i believe). So, why is
> it that YALI calls some other commands like mke2fs/resize2fs etc ? (I
> am asking because I know nothing about pyparted. It actually seems
> better to use the commands directly, since those would be relatively
> bug free.)

As I wrote above, the reason is libparted has some limitations. Possibly that 
limitation (resizing ext2/3, geom.start should remain the same) isn't a 
problem for us currently but resize2fs does a good job so we choosed to use 
it instead.

> In my tests, it seems that installing Pardus on a "Free Space" mostly
> works, but when installing on resized partitions, GRUB installer is
> not loaded correctly. 

Bootloader code has nothing to do with resized partitions. It's possible that 
(by chance) you catched a bug which you could catch an other time without 
using the resizing feature.

> Is there some way to interact with the installer 
> environment in the console during installation ? This way, more tests
> can be done, especially running the commands manually which are
> currently run by YALI using os.popen calls.

YALI doesn't has an interface to do that and IMHO it's better to avoid adding 
that kind of code to YALI :). I guess you have something like DCOP/DBUS in 
mind and thinking about it at first seems a big work which doesn't worth the 
effort :).

> Has Pardus devel team instituted some test procedures for testing the
> installer/partitioner ? It would be nice to know the procedure if it
> exists, so that I can try those here.

This is the biggest things that bothers me about YALI. Testing it is hard. 
Automated testing of partitioning code is harder, cause its possible to ruin 
your disk while testing. But I'll have (or have to have) a solution I 
hope ;).

> Thank you in advance for this information. I'm apologise if it causes
> any delays in your work.

No, please ask any questions you may have. This is the longest mail I wrote 
about YALI's internals as far as I remember. It doesn't have a documentation 
(all my fault, I'll do it) to but currently you're the only one interested in 
it. Anyway, its good to spread the knowledge about it ;).

best regards,
-- 
Barış Metin



Gelistirici mesaj listesiyle ilgili daha fazla bilgi