Issue #6648 has been updated by James Turnbull.

Status changed from Tests Insufficient to Duplicate

Duplicate of #8489.
----------------------------------------
Bug #6648: Windows: including any file fails due to absolute / relative path 
issue
https://projects.puppetlabs.com/issues/6648

Author: Rohan McGovern
Status: Duplicate
Priority: Normal
Assignee: 
Category: windows
Target version: 
Affected Puppet version: 2.6.5
Keywords: 
Branch: 


To reproduce with puppet 2.6.5 on Windows:

Make test1.pp containing:

<pre>
warning("In test1.pp")
import "test2.pp"
</pre>

Make test2.pp containing:

<pre>
warning("In test2.pp")
</pre>

Run from command prompt:

`puppet --vardir=%cd% --confdir=%cd% --debug --verbose --color=false test1.pp`

Expected output:

<pre>
debug: importing 'c:/Users/rmcgover/depot/sysadmin/puppet/test2.pp' in 
environment production
warning: Scope(Class[main]): in test2.pp
warning: Scope(Class[main]): In test1.pp
(... other stuff)
</pre>

Actual output:

<pre>
debug: importing 
'c:/Users/rmcgover/depot/sysadmin/puppet/c:/Users/rmcgover/depot/sysadmin/puppet/test2.pp'
 in environment production
Could not parse for environment production: Could not find file 
c:/Users/rmcgover/depot/sysadmin/puppet/c:/Users/rmcgover/depot/sysadmin/puppet/test2.pp
 at c:/Users/rmcgover/depot/sysadmin/puppet/test1.pp:3 on node ...
</pre>

It seems to be because the puppet code assumes that all absolute paths match 
`/^#{File::SEPARATOR}/` which is not true on Windows.

I have been able to fix this particular instance of the problem with a patch 
like this, but a quick grep shows there may be many places in the code with 
this problem.

<pre>
From: Rohan McGovern <[email protected]>
Date: Wed, 9 Mar 2011 15:35:38 +1000
Subject: [PATCH] Windows: fix inclusion of files on Windows

Checking if a path begins with the directory separator character
is not a valid way to check if a path is absolute on Windows.
---
 .../puppet-2.6.5/lib/puppet/parser/type_loader.rb  |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git 
a/ruby/lib/ruby/gems/1.8/gems/puppet-2.6.5/lib/puppet/parser/type_loader.rb 
b/ruby/lib/ruby/gems/1.8/gems/puppet-2.6.5/lib/puppet/parser/type_loader.rb
index bae5603..a7f99b0 100644
--- a/ruby/lib/ruby/gems/1.8/gems/puppet-2.6.5/lib/puppet/parser/type_loader.rb
+++ b/ruby/lib/ruby/gems/1.8/gems/puppet-2.6.5/lib/puppet/parser/type_loader.rb
@@ -79,9 +79,7 @@ class Puppet::Parser::TypeLoader
     end
 
     files.each do |file|
-      unless file =~ /^#{File::SEPARATOR}/
-        file = File.join(dir, file)
-      end
+      file = File.expand_path(file, dir)
       @loading_helper.do_once(file) do
         parse_file(file)
       end
-- 
1.7.3.1.msysgit.0
</pre>


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" 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/puppet-bugs?hl=en.

Reply via email to