diff options
Diffstat (limited to 'perl-install')
-rw-r--r-- | perl-install/install2.pm | 30 | ||||
-rw-r--r-- | perl-install/install_any.pm | 3 | ||||
-rw-r--r-- | perl-install/install_steps.pm | 8 | ||||
-rw-r--r-- | perl-install/share/list | 4 |
4 files changed, 44 insertions, 1 deletions
diff --git a/perl-install/install2.pm b/perl-install/install2.pm index 8f93705dd..2ae492a9f 100644 --- a/perl-install/install2.pm +++ b/perl-install/install2.pm @@ -11,6 +11,7 @@ use steps; use common; use install_any qw(:all); use install_steps; +use install_any; use lang; use keyboard; use mouse; @@ -484,6 +485,15 @@ sub main { log::l("switching to newt install cuz not enough memory"); $o->{interactive} = "newt"; } + + if (my ($s) = cat_("/proc/cmdline") =~ /brltty=(\S*)/) { + my ($driver, $device, $table) = split(',', $s); + $table = "text.$table.tbl" if $table !~ /\.tbl$/; + log::l("brltty option $driver $device $table"); + $o->{brltty} = { driver => $driver, device => $device, table => $table }; + $o->{interactive} = 'newt'; + } + # perl_checker: require install_steps_gtk # perl_checker: require install_steps_newt # perl_checker: require install_steps_stdio @@ -506,6 +516,26 @@ sub main { #- needed very early for install_steps_gtk eval { $o->{mouse} = mouse::detect() } if !$o->{nomouseprobe} && !$o->{mouse} && !$::testing; + #- need to be after oo-izing $o + if ($o->{brltty}) { + symlink "/tmp/stage2/$_", $_ foreach "/etc/brltty"; + if (common::usingRamdisk()) { + install_any::remove_unused(0); + mkdir '/tmp/stage2/etc/brltty'; + mkdir '/lib/brltty'; + install_any::getAndSaveFile("/etc/brltty/$o->{brltty}{table}", "/tmp/stage2/etc/brltty/$o->{brltty}{table}") if $o->{brltty}{table}; + install_any::getAndSaveFile("/lib/brltty/libbrlttyb$o->{brltty}{driver}.so") or do { + warn("Braille driver $o->{brltty}{driver} for BRLTTY was not found.\n", + "Press ENTER to continue.\n"); + <STDIN>; + }; + install_any::getAndSaveFile("/usr/bin/brltty"); + chmod 0755, "/usr/bin/brltty"; + } + devices::make("vcsa"); + run_program::run("brltty"); + } + $o->{lang} = lang::set($o->{lang}) if $o->{lang} ne 'en_US'; #- mainly for defcfg start_i810fb(); diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index 2ba152c82..478769d8e 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -338,6 +338,7 @@ sub setDefaultPackages { delete $o->{$_} foreach qw(default_packages compssUsersChoice); #- clean modified variables. } + push @{$o->{default_packages}}, "brltty" if cat_("/proc/cmdline") =~ /brltty=/; push @{$o->{default_packages}}, "nfs-utils-clients" if $o->{method} eq "nfs"; push @{$o->{default_packages}}, "numlock" if $o->{miscellaneous}{numlock}; push @{$o->{default_packages}}, "kernel22" if !$::oem && c::kernel_version() =~ /^\Q2.2/; @@ -1114,7 +1115,7 @@ sub check_prog { sub remove_unused { $::testing and return; - if ($::o->isa('interactive::gtk')) { + if (@_ ? $_[0] : $::o->isa('interactive::gtk')) { unlink glob_("/lib/lib$_*") foreach qw(slang newt); unlink "/usr/bin/perl-install/auto/Newt/Newt.so"; } else { diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm index 8893780e5..724b5f99c 100644 --- a/perl-install/install_steps.pm +++ b/perl-install/install_steps.pm @@ -444,6 +444,14 @@ Consoles 1,3,4,7 may also contain interesting information"; "$o->{prefix}/etc/skel/Desktop/Autostart/kapm.kdelnk") }; } + if ($o->{brltty}) { + output("$o->{prefix}/etc/brltty.conf", <<EOF); +braille-driver $o->{brltty}{driver} +braille-device $o->{brltty}{device} +text-table $o->{brltty}{table} +EOF + } + $o->install_urpmi; if ($o->{lang} =~ /^(zh_TW|th|vi|be|bg)/) { diff --git a/perl-install/share/list b/perl-install/share/list index e2a2c367a..2eaceadb0 100644 --- a/perl-install/share/list +++ b/perl-install/share/list @@ -161,3 +161,7 @@ /sbin/lvextend /sbin/lvreduce /sbin/lvremove + +/bin/brltty +/etc/brltty/text.*.tbl +/lib/brltty/libbrlttyb*.so |