Author: pebender
Date: Tue May 19 12:48:27 2009
New Revision: 4792
Modified:
trunk/gar-minimyth/html/minimyth/document-changelog.txt
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LCDPROC.pm
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/x.pm
trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums
trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm
Log:
- Switched to using persistent device symlinks rather than device names
for LCDproc, LIRC and event devices when possible.
Modified: trunk/gar-minimyth/html/minimyth/document-changelog.txt
==============================================================================
--- trunk/gar-minimyth/html/minimyth/document-changelog.txt (original)
+++ trunk/gar-minimyth/html/minimyth/document-changelog.txt Tue May 19
12:48:27 2009
@@ -43,6 +43,8 @@
- Changed splash screen so that it starts on an otherwise empty screen.
- Changed init binary so that it does not print messages when it starts
and ends.
+ - Switched to using persistent device symlinks rather than device names
+ for LCDproc, LIRC and event devices when possible.
Improved MythV slave backend support.
- Added support for DVB USB devices that make use of the
dvb-usb-dib0700
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LCDPROC.pm
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LCDPROC.pm
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LCDPROC.pm
Tue May 19 12:48:27 2009
@@ -28,6 +28,7 @@
{
my $driver = $minimyth->detect_state_get('lcdproc',
0, 'driver') || '';
my $device = $minimyth->detect_state_get('lcdproc',
0, 'device') || '';
+ $device = $minimyth->device_canonicalize($device);
$minimyth->var_set('MM_LCDPROC_DRIVER', $driver);
$minimyth->var_set('MM_LCDPROC_DEVICE', $device);
}
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
Tue May 19 12:48:27 2009
@@ -176,24 +176,6 @@
my $minimyth = shift;
my $name = shift;
- my $device_canonicalize = sub
- {
- my $device = shift;
-
- if (($device) && (-e $device) && (open(FILE, '-|',
qq(/sbin/udevadm info --query name --root --name='$device'))))
- {
- while (<FILE>)
- {
- chomp;
- $device = $_;
- last;
- }
- close(FILE);
- }
-
- return $device;
- };
-
my @device_list;
# If the manual LIRC driver is not 'irtrans',
@@ -203,7 +185,7 @@
# so no LIRC device list is created.
if ($minimyth->var_get('MM_LIRC_DRIVER') ne 'irtrans')
{
- my $device =
&{$device_canonicalize}($minimyth->var_get('MM_LIRC_DEVICE'));
+ my $device =
$minimyth->device_canonicalize($minimyth->var_get('MM_LIRC_DEVICE'));
my $driver = $minimyth->var_get('MM_LIRC_DRIVER');
my $lircd_conf = q(/etc/lircd.conf);
if (($device) && ($driver))
@@ -214,7 +196,7 @@
{
foreach my $item (@{$minimyth->detect_state_get('lirc')})
{
- my $device =
&{$device_canonicalize}($item->{'device'});
+ my $device =
$minimyth->device_canonicalize($item->{'device'});
my $driver = $item->{'driver'};
my $lircd_conf = $item->{'lircd_conf'};
if ((! $lircd_conf) ||
($minimyth->var_get('MM_LIRC_FETCH_LIRCD_CONF') eq 'yes'))
@@ -241,7 +223,7 @@
{
if ($item)
{
- push(@blacklist, &{$device_canonicalize}($item));
+ push(@blacklist,
$minimyth->device_canonicalize($item));
}
}
my $blacklist_filter = join('|', @blacklist);
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
Tue May 19 12:48:27 2009
@@ -28,6 +28,54 @@
},
value_valid => '.+'
};
+$var_list{'MM_X_EVENT_DEVICE_LIST'} =
+{
+ prerequisite => ['MM_LIRC_DEVICE_LIST'],
+ value_default => 'auto',
+ value_valid => 'auto|.+',
+ value_auto => sub
+ {
+ my $minimyth = shift;
+ my $name = shift;
+
+ my @device_list;
+
+ # Get all udev detected event devices.
+ foreach my $item (@{$minimyth->detect_state_get('event')})
+ {
+ my $device = $minimyth->device_canonicalize($item->{'device'});
+ if ($device)
+ {
+ push(@device_list, "$device");
+ }
+ }
+
+ # Remove any duplicates.
+ {
+ my $prev = '';
+ @device_list = grep($_ ne $prev && (($prev) = $_),
sort(@device_list));
+ }
+
+ # Remove any devices claimed by LIRC.
+ if ($minimyth->var_get('MM_LIRC_DEVICE_LIST'))
+ {
+ my @blacklist = ();
+ foreach my $item (split(/ +/,
$minimyth->var_get('MM_LIRC_DEVICE_LIST')))
+ {
+ if ($item)
+ {
+ my @item = split(/,/, $item);
+ my $device = $minimyth->device_canonicalize($item[0]);
+ push(@blacklist, $device);
+ }
+ }
+ my $blacklist_filter = join('|', @blacklist);
+ @device_list = grep(! /^($blacklist_filter)$/, @device_list);
+ }
+
+ return join(' ', @device_list);
+ }
+};
#===============================================================================
#
#===============================================================================
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
Tue May 19 12:48:27 2009
@@ -318,19 +318,6 @@
# Start daemon.
my $daemon = '';
my $instance = $device;
- if (($device) && (open(FILE, '-|', qq(/sbin/udevadm info
--query=symlink --root --name='$device'))))
- {
- while (<FILE>)
- {
- chomp;
- if (/^\/dev\/persistent\//)
- {
- $instance = $_;
- last;
- }
- }
- close(FILE);
- }
$instance =~ s/\/+/~/g;
$instance =~ s/^~dev~//;
if ($daemon_master)
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/x.pm
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/x.pm
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/x.pm
Tue May 19 12:48:27 2009
@@ -305,68 +305,11 @@
my $inputdevice_event = '';
my $serverlayout_event = '';
{
- # Determine event device list.
- # The list is all udev detected event devices that are not claimed
by LIRC.
- my @device_list;
- {
- my $device_canonicalize = sub
- {
- my $device = shift;
-
- if (($device) && (-e $device) && (open(FILE, '-|',
qq(/sbin/udevadm info --query name --root --name='$device'))))
- {
- while (<FILE>)
- {
- chomp;
- $device = $_;
- last;
- }
- close(FILE);
- }
-
- return $device;
- };
-
- # Get all udev detected event devices.
- foreach my $item (@{$minimyth->detect_state_get('event')})
- {
- my $device = &{$device_canonicalize}($item->{'device'});
- if ($device)
- {
- push(@device_list, "$device");
- }
- }
-
- # Remove any duplicates.
- {
- my $prev = '';
- @device_list = grep($_ ne $prev && (($prev) = $_),
sort(@device_list));
- }
-
- # Remove any devices claimed by LIRC.
- if ($minimyth->var_get('MM_LIRC_DEVICE_LIST'))
- {
- my @blacklist = ();
- foreach my $item (split(/ +/,
$minimyth->var_get('MM_LIRC_DEVICE_LIST')))
- {
- if ($item)
- {
- my @item = split(/,/, $item);
- my $device = &{$device_canonicalize}($item[0]);
- push(@blacklist, $device);
- }
- }
- my $blacklist_filter = join('|', @blacklist);
- @device_list = grep(! /^($blacklist_filter)$/,
@device_list);
- }
- }
-
my @inputdevice = ();
my @serverlayout = ();
- foreach my $device (@device_list)
+ foreach my $device (split(/ +/,
$minimyth->var_get('MM_X_EVENT_DEVICE_LIST')))
{
my $identifier = $device;
- $identifier =~ s/.*\///;
push(@inputdevice, qq(Section "InputDevice"));
push(@inputdevice, qq( Identifier "$identifier"));
Modified: trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums
==============================================================================
--- trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums (original)
+++ trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums Tue May 19
12:48:27 2009
@@ -1 +1 @@
-980764a623d6ba2b2d2dcf3f0ea98fdb download/MiniMyth.pm
+262292d05195bd4ee1cb0f21d3f19711 download/MiniMyth.pm
Modified: trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm
==============================================================================
--- trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm
(original)
+++ trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm Tue May
19 12:48:27 2009
@@ -381,7 +381,7 @@
}
#===============================================================================
-# Hardware autodetection functions.
+# hardware autodetection functions.
#===============================================================================
sub detect_state_get
{
@@ -455,6 +455,45 @@
}
#===============================================================================
+# device functions.
+#===============================================================================
+sub device_canonicalize
+{
+ my $self = shift;
+ my $device = shift;
+
+ # If possible, covert the device name to its real name.
+ if (($device) && (-e $device) && (open(FILE, '-|', qq(/sbin/udevadm
info --query=name --root --name='$device'))))
+ {
+ while (<FILE>)
+ {
+ chomp;
+ $device = $_;
+ last;
+ }
+ close(FILE);
+ }
+ # If possible, covert the device name to its persistent link name.
+ if (($device) && (-e $device) && (open(FILE, '-|', qq(/sbin/udevadm
info --query=symlink --root --name='$device'))))
+ {
+ while (<FILE>)
+ {
+ chomp;
+ if (/^\/dev\/persistent\/.*$/)
+ {
+ chomp;
+ $device = $_;
+ last;
+ }
+ }
+ close(FILE);
+ }
+
+ return $device;
+};
+
+
+#===============================================================================
# splash screen functions
#===============================================================================
my $var_splash_command = '/usr/sbin/fbsplashd';
@@ -2451,6 +2490,9 @@
return 1;
}
+#===============================================================================
+# Perl package functions.
+#===============================================================================
sub package_member_require
{
my $self = shift;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"minimyth-commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/minimyth-commits?hl=en
-~----------~----~----~----~------~----~------~--~---