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