<feed xmlns='http://www.w3.org/2005/Atom'>
<title>drakx/perl-install/partition_table.pm, branch 18.71</title>
<subtitle>Mageia Installer and base platform for many utilities</subtitle>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/'/>
<entry>
<title>diskdrake: fix adding parts to extended partition on hybrid ISO (mga#27862)</title>
<updated>2020-12-18T21:43:03+00:00</updated>
<author>
<name>Martin Whitaker</name>
<email>mageia@martin-whitaker.me.uk</email>
</author>
<published>2020-12-18T21:43:03+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=f5c43e916dd6970bcc4f0ed28e222696aeec2355'/>
<id>f5c43e916dd6970bcc4f0ed28e222696aeec2355</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>diskdrake: fix a crash on whole disk filesystems (mga#26849)</title>
<updated>2020-06-23T20:52:19+00:00</updated>
<author>
<name>Pascal Terjan</name>
<email>pterjan@mageia.org</email>
</author>
<published>2020-06-23T20:46:55+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=429fded33a34ff63e37af5c32aa5f7f9b38e052c'/>
<id>429fded33a34ff63e37af5c32aa5f7f9b38e052c</id>
<content type='text'>
When a disk has a filesystem directly without a partition table,
libparted tells us the partition table is of type loop and we don't
have code to handle that, causing a crash:

Can't locate partition_table/loop.pm in @INC (you may need to install the partition_table::loop module) (@INC contains: /usr/lib/libDrakX /usr/local/lib64/perl5 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/lib/libDrakX/partition_table.pm line 287.
Perl's trace:
drakbug::bug_handler() called from /usr/lib/libDrakX/partition_table.pm:287
partition_table::initialize() called from /usr/lib/libDrakX/partition_table/raw.pm:227
partition_table::raw::zero_MBR() called from /usr/lib/libDrakX/fsedit.pm:265
fsedit::get_hds() called from /usr/libexec/diskdrake:74

We should probably be more generic and treat the same way any partition
table type name we don't know rather than crashing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a disk has a filesystem directly without a partition table,
libparted tells us the partition table is of type loop and we don't
have code to handle that, causing a crash:

Can't locate partition_table/loop.pm in @INC (you may need to install the partition_table::loop module) (@INC contains: /usr/lib/libDrakX /usr/local/lib64/perl5 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/lib/libDrakX/partition_table.pm line 287.
Perl's trace:
drakbug::bug_handler() called from /usr/lib/libDrakX/partition_table.pm:287
partition_table::initialize() called from /usr/lib/libDrakX/partition_table/raw.pm:227
partition_table::raw::zero_MBR() called from /usr/lib/libDrakX/fsedit.pm:265
fsedit::get_hds() called from /usr/libexec/diskdrake:74

We should probably be more generic and treat the same way any partition
table type name we don't know rather than crashing.
</pre>
</div>
</content>
</entry>
<entry>
<title>diskdrake: support adding partitions to Live ISOs on USB sticks (mga#25224)</title>
<updated>2020-02-29T15:01:28+00:00</updated>
<author>
<name>Martin Whitaker</name>
<email>mageia@martin-whitaker.me.uk</email>
</author>
<published>2019-08-10T19:40:46+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=e8f3026f210a8de175242658304c8fe83729cf5a'/>
<id>e8f3026f210a8de175242658304c8fe83729cf5a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>(_get_disk_type) factorize code after previous commits</title>
<updated>2019-04-21T17:16:59+00:00</updated>
<author>
<name>Thierry Vignaud</name>
<email>thierry.vignaud@gmail.com</email>
</author>
<published>2019-04-20T23:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=4347386dd56bd9de45eb6b393d2418c24142550b'/>
<id>4347386dd56bd9de45eb6b393d2418c24142550b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Minimise calls to ped_disk_probe() when writing partition tables.</title>
<updated>2019-04-20T20:35:26+00:00</updated>
<author>
<name>Martin Whitaker</name>
<email>mageia@martin-whitaker.me.uk</email>
</author>
<published>2019-04-20T10:20:01+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=9602565a6c602906acb96c3192d8ff168ef5ebea'/>
<id>9602565a6c602906acb96c3192d8ff168ef5ebea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove obsolete comment and fix indentation.</title>
<updated>2019-04-20T20:35:26+00:00</updated>
<author>
<name>Martin Whitaker</name>
<email>mageia@martin-whitaker.me.uk</email>
</author>
<published>2019-04-20T10:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=6bb20f31aafa5345a949f6439df330e06a8d29bd'/>
<id>6bb20f31aafa5345a949f6439df330e06a8d29bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Minimise calls to ped_disk_probe() when reading partition tables (mga#15752)</title>
<updated>2019-04-20T20:35:26+00:00</updated>
<author>
<name>Martin Whitaker</name>
<email>mageia@martin-whitaker.me.uk</email>
</author>
<published>2019-04-20T10:02:52+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=2fe536b25f66c52a75ed8c53cd5f14d9e795d6a3'/>
<id>2fe536b25f66c52a75ed8c53cd5f14d9e795d6a3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>enhance partition_table doc</title>
<updated>2018-11-22T15:04:19+00:00</updated>
<author>
<name>Thierry Vignaud</name>
<email>thierry.vignaud@gmail.com</email>
</author>
<published>2018-11-22T14:58:13+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=280850cbe303d140ae7733f73bcb17c5903b60ed'/>
<id>280850cbe303d140ae7733f73bcb17c5903b60ed</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>When writing a GPT partition table, merge all actions into a single commit.</title>
<updated>2017-03-14T22:22:31+00:00</updated>
<author>
<name>Martin Whitaker</name>
<email>mageia@martin-whitaker.me.uk</email>
</author>
<published>2017-03-05T19:08:06+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=679ea1e5ab5c570b461cf3dacfe0fb61a04e9d79'/>
<id>679ea1e5ab5c570b461cf3dacfe0fb61a04e9d79</id>
<content type='text'>
This avoids unnecessary udev events, which in some cases were causing
udevd to trigger a kernel partition table reread, causing the kernel
to get out of sync with drakx.

In order to do so, the libparted bindings are enhanced so that we
manipulate a 'ped_disk' object:
- disk_open() returns such an object
- set_disk_type() is removed
- disk_commit() writes back the partition table and tell the kernel
  about it
  if we fails to write the partition table, we let
  partition_table::write() fire an exceptionc
  if we only have succeed in writing the partition table, we let
  partition_table::write() try harder (umounting partitions before
  trying againt to tell the kernel again)
- need_to_tell_kernel() is overrided

The last change is needed because we now tell the kernel about the new
partition layout in partition_table::gpt::write() when calling
disk_commit() while previously we were deferring that to
partition_table::write() which after having called the gpt's write()
calls tell_kernel() -&gt; c::tell_kernel_to_reread_partition_table()

So we must tell partition_table::write() that telling the kernel to
reread the partition_table is not needed if we already succeeded in
that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids unnecessary udev events, which in some cases were causing
udevd to trigger a kernel partition table reread, causing the kernel
to get out of sync with drakx.

In order to do so, the libparted bindings are enhanced so that we
manipulate a 'ped_disk' object:
- disk_open() returns such an object
- set_disk_type() is removed
- disk_commit() writes back the partition table and tell the kernel
  about it
  if we fails to write the partition table, we let
  partition_table::write() fire an exceptionc
  if we only have succeed in writing the partition table, we let
  partition_table::write() try harder (umounting partitions before
  trying againt to tell the kernel again)
- need_to_tell_kernel() is overrided

The last change is needed because we now tell the kernel about the new
partition layout in partition_table::gpt::write() when calling
disk_commit() while previously we were deferring that to
partition_table::write() which after having called the gpt's write()
calls tell_kernel() -&gt; c::tell_kernel_to_reread_partition_table()

So we must tell partition_table::write() that telling the kernel to
reread the partition_table is not needed if we already succeeded in
that.
</pre>
</div>
</content>
</entry>
<entry>
<title>Record the partition table type when initialising a partition table.</title>
<updated>2017-03-14T22:22:31+00:00</updated>
<author>
<name>Martin Whitaker</name>
<email>mageia@martin-whitaker.me.uk</email>
</author>
<published>2017-03-04T12:19:55+00:00</published>
<link rel='alternate' type='text/html' href='https://gitweb.mageia.org/software/drakx/commit/?id=50256e67c037ccf31e76cce29a8db082dc8541c9'/>
<id>50256e67c037ccf31e76cce29a8db082dc8541c9</id>
<content type='text'>
When performing an automatic install that uses the clear or clearall
option, we don't read the current partition table, so the current
partition table type was not getting recorded in $hd-&gt;{pt_table_type}.
This information is needed to determine whether a BIOS boot partition
is required.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When performing an automatic install that uses the clear or clearall
option, we don't read the current partition table, so the current
partition table type was not getting recorded in $hd-&gt;{pt_table_type}.
This information is needed to determine whether a BIOS boot partition
is required.
</pre>
</div>
</content>
</entry>
</feed>
