[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