summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2008-10-29 00:10:13 +0000
committerOlivier Blin <oblin@mandriva.com>2008-10-29 00:10:13 +0000
commit85ff78d269cbd31ad2a6eeb952f3cce8a17fb330 (patch)
tree4cf43599d110c443c349acbb43d6ed175cd961a2
parentad0fa345dc453d2aaeaea17e62d6328ca398779a (diff)
downloaddraklive-85ff78d269cbd31ad2a6eeb952f3cce8a17fb330.tar
draklive-85ff78d269cbd31ad2a6eeb952f3cce8a17fb330.tar.gz
draklive-85ff78d269cbd31ad2a6eeb952f3cce8a17fb330.tar.bz2
draklive-85ff78d269cbd31ad2a6eeb952f3cce8a17fb330.tar.xz
draklive-85ff78d269cbd31ad2a6eeb952f3cce8a17fb330.zip
move overlay data in MDV::Draklive::Overlay
-rwxr-xr-xdraklive17
-rw-r--r--lib/MDV/Draklive/Initrd.pm5
-rw-r--r--lib/MDV/Draklive/Overlay.pm22
3 files changed, 25 insertions, 19 deletions
diff --git a/draklive b/draklive
index 2dd304f..3631b00 100755
--- a/draklive
+++ b/draklive
@@ -178,23 +178,6 @@ my %storage = (
},
);
-my %overlay = (
- unionfs => {
- modules => [ qw(unionfs) ],
- mount => sub {
- my ($live) = @_;
- #- build dirs list: "dir1=ro:dir2:ro:dir3=rw"
- my $dirs = join(':',
- map {
- $_->{list} ? "\$(cat $live->{prefix}{live}{mnt}/$_->{list})" :
- "$live->{prefix}{live}{mnt}$_->{mountpoint}=" .
- (!$loop_types{$_->{type}}{read_only} && !$_->{read_only} ? 'rw' : 'ro');
- } reverse grep { !$_->{fallback} } @{$live->{mount}{dirs} || []});
- "sh -c 'mount -o dirs=$dirs -t unionfs unionfs $live->{prefix}{live}{mnt}$live->{mount}{root}'";
- },
- },
-);
-
sub get_syslinux_path {
my ($media, $opts) = @_;
'/' . $media->{storage} . '/syslinux' . ($opts->{boot} && '-boot-' . $opts->{boot}) . '.cfg';
diff --git a/lib/MDV/Draklive/Initrd.pm b/lib/MDV/Draklive/Initrd.pm
index 95755b6..9d4bb0b 100644
--- a/lib/MDV/Draklive/Initrd.pm
+++ b/lib/MDV/Draklive/Initrd.pm
@@ -6,6 +6,7 @@ use list_modules;
use MDV::Draklive::Utils;
use MDV::Draklive::StorageFS;
use MDV::Draklive::Loopback;
+use MDV::Draklive::Overlay;
sub nls_modules {
my ($live) = @_;
@@ -122,7 +123,7 @@ sub create_initrd_for_media {
$media->get_media_fs_module,
@{$media->get_media_setting('extra_modules') || []},
(map { @{$loop_types{$_}{modules} || []} } uniq(map { $_->{type} } @{$live->{mount}{dirs} || []})),
- ($live->{mount}{overlay} ? @{$overlay{$live->{mount}{overlay}}{modules} || []} : ());
+ ($live->{mount}{overlay} ? @{$MDV::Draklive::Overlay::overlay{$live->{mount}{overlay}}{modules} || []} : ());
my @additional_modules = map { if_(m!([^/]+)\.ko(?:\.gz)?!, list_modules::filename2modname($1)) } @{$live->{system}{additional_modules}};
@$extra_modules = difference2($extra_modules, \@additional_modules);
@@ -200,7 +201,7 @@ sub create_initrd_scriptlet {
"showlabels --removable",
MDV::Draklive::StorageFS::get_mount($fs)->($live, $media),
(map { $loop_types{$_->{type}}{mount}->($live, $_) } @$mount_first, @$mount_last),
- ($live->{mount}{overlay} ? $overlay{$live->{mount}{overlay}}{mount}->($live) : ()),
+ ($live->{mount}{overlay} ? $MDV::Draklive::Overlay::overlay{$live->{mount}{overlay}}{mount}->($live) : ()),
if_($live->{system}{initrd_pre_pivot}, deref_array($live->{system}{initrd_pre_pivot})),
qq(splashy_update "chroot $target"),
"echo 0x0100 > /proc/sys/kernel/real-root-dev",
diff --git a/lib/MDV/Draklive/Overlay.pm b/lib/MDV/Draklive/Overlay.pm
new file mode 100644
index 0000000..50b9cdd
--- /dev/null
+++ b/lib/MDV/Draklive/Overlay.pm
@@ -0,0 +1,22 @@
+package MDV::Draklive::Overlay;
+
+use MDV::Draklive::Loopback;
+
+our %overlay = (
+ unionfs => {
+ modules => [ qw(unionfs) ],
+ mount => sub {
+ my ($live) = @_;
+ #- build dirs list: "dir1=ro:dir2:ro:dir3=rw"
+ my $dirs = join(':',
+ map {
+ $_->{list} ? "\$(cat $live->{prefix}{live}{mnt}/$_->{list})" :
+ "$live->{prefix}{live}{mnt}$_->{mountpoint}=" .
+ (!$loop_types{$_->{type}}{read_only} && !$_->{read_only} ? 'rw' : 'ro');
+ } reverse grep { !$_->{fallback} } @{$live->{mount}{dirs} || []});
+ "sh -c 'mount -o dirs=$dirs -t unionfs unionfs $live->{prefix}{live}{mnt}$live->{mount}{root}'";
+ },
+ },
+);
+
+1;