(FM-2752) Add sync and update .travis yml files
- Updated to add 4.0 to travis-ci configs - Add .sync.yml for modulesync usage
Merge pull request #81 from cyberious/modsync
(FM-2752) Add/update travis with modulesync
(maint) Add beaker-puppet_install_helper
Merge pull request #83 from cyberious/master
(maint) Add beaker-puppet_install_helper
(maint) win32console only need for Ruby < 2
- When running against current versions of Puppet that use Ruby 2.x, this causes issues installing the bundle. Guard for backward compat with Ruby 1.9.x / Puppet 3.7 x86
(maint) remove simplecov gems from Gemfile
- 'simplecov' requires the 'json' gem, which requires native build tools to be installed. Current Windows CI spec boxes intentionally do not install these build tools. Since 'simplecov' is unused, it can be removed.
Merge pull request #84 from Iristyle/maint/master/Gemfile-Windows-spe…
…c-box-compatibility Maint/master/gemfile windows spec box compatibility
(FM-2978) Update beaker setting log_level => debug
Merge pull request #86 from cyberious/FM-2978
(FM-2978) Update beaker setting log_level => debug
(maint) Relax gem dependencies for Windows
The version of Puppet/Facter/Hiera will determine the versions of dependencies, namely the Windows gem dependencies, so relax the versioning at bit to allow for a wider range of gems to be pulled in across many versions of Puppet that may be supported by the module. We fully support specifying Puppet, Facter, and Hiera versions as environment variables, and Bundler should "do the right thing" when resolving dependencies. This comes with the following considerations: * Explicitly require Windows gems when we are using a git or file location for Puppet, or are requiring a Puppet version less than `3.5.0` (the first version of Puppet that had a Windows platform-specific gem). * The resolution for versions less than `3.5.0` is very naive and will only match on the version being specified as a version (e.g. '3.4.3') and not a version spec (e.g. `~> 3.4`). * These versions may be file:// for Puppet, Facter, OR Hiera, or All of them to support the scenario of making changes to Puppet in concert with local module changes. Other things to note: * Bundler behaves better when omitting a dependency that is not necessary to explicitly include. For instance, adding `Hiera >= 0`, when it was not specified in an environment variable, resulted in some rather surprising Bundler behavior. Namely it resolved an odd Hiera version, which caused a cascading effect of incorrect dependency resolution for other gems (namely win32-security) including Puppet. * Right now, TravisCI exhibits some weird behavior with installing Facter `1.7.6` for `Puppet ~> 3.0` (presently `3.8.1`) because it appears to be looking at the universal-darwin Facter gem. Beaker transitively requires `CFPropertyList ~> 2.2`, which installs `2.3.1`. This later conflicts with the `CFPropertyList ~> 2.2.6` requirement that newer Facter versions have. Bundler works backward to find a Facter gem that doesn't use CFPropertyList, and ends up resolving `1.7.6`. * If you need to better understand Bundlers resolution mechanism, set the `DEBUG_RESOLVER` environment variable to `1`.
Merge pull request #85 from ferventcoder/maint/master/gemfile-windows…
…-relax-compatibility (maint) Relax gem dependencies for Windows
- Setup a matrix with:
- Ruby 2.1 and Puppet 4.x (latest) and
- Ruby 2.0 x64 / Ruby 1.9.3 x86 + Puppet 3.x (latest)
- Ruby 1.9.3 x86 + Puppet 3.3.2 (oldest supported)Merge pull request #87 from Iristyle/maint/master/appveyor
(maint) add AppVeyor support
(MODULES-2207) Update Modulesync
This ensures the following items are under moduleysnc: .gitignore .travis.yml CONTRIBUTING.md Gemfile appveyor.yml spec/spec.opts Most importantly - this ensures that acl has up to date Gemfile, Travis CI and AppVeyor configurations that allow it to be tested properly.
Merge pull request #88 from ferventcoder/maint/master/modsync-changes
(MODULES-2207) Update Modulesync
(maint) fix registry_value provider spec fail
- As it turns out, the previous test for a well known value would fail under Windows 2003, because the value is SYSTEM instead of System. We could adjust the case, but instead perform a match of a given key to an environment variable that should match it to rule out OS specific casing issues.
Merge pull request #90 from Iristyle/maint/master/fix-2003-test-fail
(maint) fix registry_value provider spec fail
(MODULES-2207) Gem restrictions for Older puppet versions
Further restrict down the restrictions on windows dependencies when using older Puppet versions, such that it works with Puppet 3.0.0 - 3.7.0. It does require a bit more logic in selecting gems but it allows for testing older platforms without any additional known issues for Puppet versions under 3.4.0.
There is an issue with rspec 2.14.0 - it doesn't have `any_instance_recorder_for` which rspec-puppet uses. The fix is simply to move the dependency to `~> 2.14.1` which does have `any_instance_recorder_for`.
Merge pull request #89 from ferventcoder/maint/master/modsync-changes
(MODULES-2207) Gem restrictions for Older puppet versions
(maint) puppetlabs_spec_helper ~>0.10.3
Using PSH with versions lower than 0.9.0 results in issues attempting to symlink on Windows. We'll take the latest version as the dependency since it has the best fixes available for cross platform testing.
Merge pull request #92 from ferventcoder/maint/master/modsync-changes
(maint) puppetlabs_spec_helper ~>0.10.3
(FM-3089) Prepare 1.1.1 release
(maint) Multiple node acceptance fixes
- Beakers shell function always uses the default node, which is undesirable for installing stdlib - The x64? check in should_manage_values should be using the bitness of the node under test, not the default node
(MODULES-1921) Ruby registry writes corrupt string
- The Ruby implementation of write is buggy at : https://github.com/ruby/ruby/blob/v2_1_6/ext/win32/lib/win32/registry.rb#L727-L748 When writing a REG_MULTI_SZ, the MSDN documentation for RegSetValueEx https://msdn.microsoft.com/en-us/library/windows/desktop/ms724923(v=vs.85).aspx states that for the lpData parameter that "With the REG_MULTI_SZ data type, the string must be terminated with two null characters." It further states for the cbData parameter that "The size of the information pointed to by the lpData parameter, in bytes. If the data is of type REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ, cbData must include the size of the terminating null character or characters." Looking at the implementation, we can see that the length for a REG_MULTI_SZ is calculated properly, but the second terminating NULL is never written to the string. The REG_SZ and REG_EXPAND_SZ handling is affected by the same issue as the length calculation takes into account a terminator that is not present. This can lead to intermittent memory corruption based on what's present in the last 2 bytes of a given buffer. There is no guarantee that this memory is zeroed out prior to use. Unfortunately, the only way to work around this issue is to do a reimplementation of write that terminates the array of bytes properly (with a double NULL terminator that is UTF16-LE). Note that the end of the byte array should be 4 NULL bytes like [0, 0, 0, 0] - Add additional specs for writing and destroying all of the supported registry types. - Note: No support has been added for REG_DWORD_BIG_ENDIAN
Merge pull request #93 from Iristyle/ticket/master/MODULES-1921-Ruby-…
…registry-write-corruption (MODULES-1921) Ruby registry writes corrupt string
Merge pull request #91 from cyberious/FM3089
(FM-3089) Prepare 1.1.1 release