Author: pebender
Date: Thu Nov 13 16:54:48 2008
New Revision: 3952

Modified:
    trunk/gar-minimyth/html/minimyth/document-changelog.txt
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm

Log:
- Fixed perl init bugs that caused some variables to not be initialized  
correctly.



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     Thu Nov 13  
16:54:48 2008
@@ -1,7 +1,7 @@
  MiniMyth Changelog

   
--------------------------------------------------------------------------------
-Changes since 59 (2008-11-12):
+Changes since 59 (2008-11-13):

  Current MythTV versions
      MythTV 0.20-softpad: version 0.20.2.softpad, release-0-20-fixes branch  
svn 16082,
@@ -59,6 +59,8 @@
        invalid variable value is encountered.
      - Fixed perl init bug that would cause init to say that some variables
        were valid when they are not.
+    - Fixed perl init bugs that caused some variables to not be initialized
+      correctly.

  Modified build system
      - Removed unneeded static libraries from the build system.

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm
        
Thu Nov 13 16:54:48 2008
@@ -22,23 +22,14 @@
      unlink('/etc/conf.d/dhcp.override') if  
(-e '/etc/conf.d/dhcp.override');
      unlink('/etc/conf.d/minimyth')      if (-e '/etc/conf.d/minimyth');

-    # Clear configuration variables.
+    # Read core and dhcp configuration files, which are included  
in '/etc/conf'.
      $minimyth->var_clear();
-
-    # Read core and dhcp configuration files.
-    $minimyth->var_load({ 'file' => '/etc/conf.d/core'}) if  
(-e '/etc/conf.d/core');
-    $minimyth->var_load({ 'file' => '/etc/conf.d/dhcp'}) if  
(-e '/etc/conf.d/dhcp');
+    $minimyth->var_load({ 'file' => '/etc/conf' });

      $minimyth->message_output('info', "fetching configuration file  ...");

      # Determine current boot directory location.
-    {
-        my $group = __PACKAGE__ . '::' . 'MM_MINIMYTH';
-        eval "require $group";
-        my $group_var_list = $group->var_list();
-        $self->_run_var($minimyth,  
$group_var_list, 'MM_MINIMYTH_BOOT_URL');
-        $minimyth->var_save({ 'file' => '/etc/conf.d/minimyth.raw' });
-    }
+    $self->_run($minimyth, 'MM_MINIMYTH_BOOT_URL');

      # Using local configuration files, so there should be a '/minimyth'  
directory.
      if ($minimyth->var_get('MM_MINIMYTH_BOOT_URL') eq 'file:/minimyth/')
@@ -65,11 +56,19 @@
          return 0;
      }

+    # Save the current boot directory location so that it is available to  
the
+    # 'mm_minimyth_conf_include shell' shell function that might be called  
from
+    # within '/etc/minimyth.d/minimyth.conf' when it is read.
+    $minimyth->var_save({ 'file' => '/etc/conf.d/minimyth.raw', 'filter'  
=> 'MM_MINIMYTH_BOOT_URL' });
+
      # Read MiniMyth configuration file variables.
+    $minimyth->var_clear();
      $minimyth->var_load({ 'file' => '/etc/minimyth.d/minimyth.conf' });

+    unlink('/etc/conf.d/minimyth.raw');
+
      $minimyth->message_output('info', "checking for obsolete  
variables ...");
-    if (open(FILE, '<', "$dir/conf.d/obsolete"))
+    if (open(FILE, '<', "$dir/conf/obsolete"))
      {
          while (<FILE>)
          {
@@ -83,12 +82,7 @@
      }

      # Fetch and run 'minimyth.pm'.
-    {
-        my $group = __PACKAGE__ . '::' . 'MM_MINIMYTH';
-        eval "require $group";
-        my $group_var_list = $group->var_list();
-        $self->_run_var($minimyth,  
$group_var_list, 'MM_MINIMYTH_FETCH_MINIMYTH_PM');
-    }
+    $self->_run($minimyth, 'MM_MINIMYTH_FETCH_MINIMYTH_PM');
      if ($minimyth->var_get('MM_MINIMYTH_FETCH_MINIMYTH_PM') eq 'yes')
      {
          $minimyth->message_output('info', "fetching configuration  
package ...");
@@ -130,15 +124,7 @@

      # Process the DHCP override configuration variables
      # so that they are available to the DHCP client.
-    {
-        my $group = __PACKAGE__ . '::' . 'MM_DHCP';
-        eval "require $group";
-        my $group_var_list = $group->var_list();
-        foreach (keys %{$group_var_list})
-        {
-            $self->_run_var($minimyth, $group_var_list, $_);
-        }
-    }
+    $self->_run($minimyth, 'MM_DHCP_.*');
      $minimyth->var_save({ 'file' => '/etc/conf.d/dhcp.override', 'filter'  
=> 'MM_DHCP_.*' });

      # Restart the DHCP client in order to pick up the processed DHCP  
override variables.
@@ -146,9 +132,10 @@
      init::dhcp->start($minimyth);

      $minimyth->message_output('info', "processing configuration file ...");
+    $minimyth->var_clear();
+    $minimyth->var_load({ 'file' => '/etc/minimyth.d/minimyth.conf' });
      $self->_run($minimyth);
      $minimyth->var_save();
-    unlink('/etc/conf.d/minimyth.raw');

      # If there are any errors, then do not continue
      if ((-e '/var/log/minimyth.err.log') &&  
(open(FILE, '<', '/var/log/minimyth.err.log')))
@@ -218,7 +205,16 @@
          closedir(DIR);
      }

-    # Run the variable handlers for each variable.
+    # Make sure that all variables (re)initialize.
+    foreach (keys %var_list)
+    {
+        $var_list{$_}->{'complete'} = 0;
+    }
+
+    # Run variable initialization handler for MM_MINIMYTH_BOOT_URL because  
it is needed when fetching files.
+    $self->_run_var($minimyth, \%var_list, 'MM_MINIMYTH_BOOT_URL');
+
+    # Run the variable initialization handlers for each variable.
      foreach (keys %var_list)
      {
          $self->_run_var($minimyth, \%var_list, $_);

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