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
-~----------~----~----~----~------~----~------~--~---

Reply via email to