summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)AuthorFilesLines
2014-10-24Imported Upstream version 3.7.2upstream/3.7.2Stig Sandbeck Mathisen6-14/+16
2014-10-10(maint) Update puppet_for_the_win for foss-3.7.x.yamlJosh Cooper1-1/+1
Update puppet_for_the_win dependency so dev builds use facter 2.2.0
2014-10-09Merge pull request #3074 from melissaanne/stableKylo Ginsberg1-0/+2
(PUP-3227) Address man page ownship conflicts
2014-10-01(PUP-3315) Update build_defaults for MSI builderRob Reynolds1-1/+1
This moves the sha1 to include the recent changes to the MSI that add more clarification on FQDN of Puppet master.
2014-09-30(PUP-3126) Bump vendored gem dependenciesJosh Cooper1-2/+2
Include win32-service 0.8.6 when building MSIs.
2014-09-29(PUP-3126) upgrade win32-service to 0.8.6Rob Reynolds1-2/+2
This upgrades the win32-service gem to at least 0.8.6 to take advantage of the fixes to the service gem. This change includes only the fixes that we have already applied patches to in puppet-win32-ruby.
2014-09-16Imported Upstream version 3.7.1upstream/3.7.1Stig Sandbeck Mathisen3-9/+9
2014-09-10(PUP-3227) Address man page ownship conflictsMelissa Stone1-0/+2
Prior to this commit, upgrading from puppet=2.7.23-1~deb7u3 and puppetmaster=2.7.23-1~deb7u3 to puppet=3.7.0.29-1puppetlabs1 and puppetmaster=3.7.0.29-1puppetlabs1 fails. I believe this problem is due to how Debian chose to package puppet-common, which owns `/usr/share/man/man8/puppet-master.8.gz`. This commit adds in a `Conflicts:` to the puppetmaster and puppetmaster-common packages to make sure that we can successfully upgrade from these older package versions. However, if a user has puppetmaster and puppet older than 3.3.0 installed on a machine, and only upgrades puppetmaster, this will uninstall the puppet package from the system.
2014-09-07Imported Upstream version 3.7.0upstream/3.7.0Stig Sandbeck Mathisen12-120/+205
2014-09-03Merge remote-tracking branch 'upstream/master' into stableJosh Partlow9-68/+98
* upstream/master: (767 commits) (maint) Namespace constant declaration in specs to prevent warnings (maint) Expect test to fail on windows ruby 2.0 x86 (PUP-3069) Fix path expansion for environment.conf test on Win (PUP-2349) Add windows specific expectation for deprecation_warning (PUP-2349) Add windows specific expectation for deprecation_warning (PUP-3069) Clear configuration_file for tests (PUP-3069) Test both future and current parser with default_manifest (PUP-3069) Update default_manifest setting descriptions (PUP-3069) Change restrict_environment_manifest name (PUP-3163) Create and manage the mode of $reportsdir (maint) Clear record of configured deprecated settings (PUP-3069) Add an integration spec for default_manifest (PUP-3069) Halt compile if environment has manifest conflict (PUP-3069) Add spec test for new default options (PUP-3069) Add default manifest settings PUP-3155 Improve spec tests around the PE puppet version (PUP-3153) Guard against nil when closing Uniquefiles (PUP-2984) Remove old installation directory when going from x64 to x86 (PUP-1884) Migrate MSI deps into puppet repo (PUP-3154) Create and manage the mode of $statedir on redhat ...
2014-08-29(PUP-3163) Create and manage the mode of $reportsdirMelissa Stone3-1/+6
For redhat and debian, we create and manage a $statedir with ownership set to puppet:puppet. Unfortuntely, we also create a $reportsdir that is owned by root. This means that other applications, even those in the puppet group, could not write to this directory. This commits adds the $reportsdir to both debian and redhat packaging to ensure it is created with the correct permissions (just at the $statedir is), to ensure a more consistent experience for users of our packages.
2014-08-28(PUP-2984) Remove old installation directory when going from x64 to x86Josh Cooper1-1/+1
Update dependency on puppet_for_the_win: https://github.com/puppetlabs/puppet_for_the_win/commit/c61dda253b09bd855488f7b6dd7332fdf84d3039
2014-08-28Merge pull request #3020 from melissaanne/ticket/master/pupet-1884Matthaus Owens1-0/+15
(PUP-1884) Migrate MSI deps into puppet repo
2014-08-28(PUP-1884) Migrate MSI deps into puppet repoMelissa Stone1-0/+15
We have this problem where it is very difficult to know what exactly is getting into the Puppet MSI when we build it. Previously, all that information was stored in the Jenkins job used to build the MSI. This proved difficult because there is no real way to audit changes made to Jenkins jobs, why those changes were made, or who made them. This commit moves that information into the Puppet Repo itself. This will help us make sure the correct version of each project is getting into the MSI, and allow us to build the MSI with the current checkout of the Puppet Repo. However, this means we have to make sure we do not forget to update the versions of the dependencies getting pulled into the MSI when a new release happens.
2014-08-28(PUP-3154) Create and manage the mode of $statedir on redhatMatthaus Owens1-0/+2
In debian, we create and manage the $statedir in the postinst of the puppet-common package. In redhat, $statedir would be created on service start, and owned by root. This means that other applications, even those in the puppet group, could not write to this directory. This commit adds $statedir to the directories created in the redhat package and sets the user and group ownership to puppet:puppet. This will ensure a more consistent experience for users of our packages.
2014-08-28Merge pull request #3001 from ↵shrug2-8/+7
haus/ticket/master/pup-3035-add-var-run-puppet-to-debian-packaging (PUP-3035) Add /var/run/puppet to debian packaging
2014-08-22(PUP-2914) Remove remaining rgen dependenciesMoses Mendoza2-2/+1
In 6a94700, the rgen 0.7.0 library was added to the vendor directory in puppet, and as such is no longer an external dependency. This commit removes the rgen package as a dependency of the puppet rpm and deb packages, so that it is not installed in addition to the vendored rgen (or worse even installed at a conflicting version). Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
2014-08-21Merge remote-tracking branch 'upstream/pr/2995'Josh Cooper1-1/+0
* upstream/pr/2995: (doc) Add Puppet Specific Documentation (PUP-2914) Remove rgen 0.7.0 dependency (PUP-2914) Add rgen 0.7.0 to vendored libraries
2014-08-21(PUP-3035) Refactor dpkg-statoverride calls in puppet-common.postinstMatthaus Owens1-12/+6
This commit does some simple refactoring int he puppet-common.postinst to avoid some unneeded repetition.
2014-08-21(PUP-3035) Add /var/run/puppet to debian packagingMatthaus Owens2-0/+5
Previously /var/run/puppet was created only during service start on debian for both puppet and puppetmaster services. However, as it is used in both of those services, it makes sense to have it owned and created by one of the puppet packages. puppet-common is a dependency of both the puppet and puppetmaster packages, so this commit adds /var/run/puppet to the puppet-common.dirs file so it will be created in that package. This also brings parity between redhat and debian packages in this respect, as redhat puppet packages create the /var/run/puppet directory already. This also adds a dpkg-statoverride call to manage permissions for the /var/run/puppet directory.
2014-08-20Merge pull request #2936 from ↵Josh Cooper1-22/+37
Iristyle/ticket/master/PUP-2987-windows-service-hangs (PUP-2987) Windows service hangs
2014-08-19(PUP-2914) Remove rgen 0.7.0 dependencyBritt Gresham1-1/+0
The library rgen was an unnecessary dependency since it was vendored. This commit removes unnecessary dependency.
2014-08-18(PUP-2889) Bump win32-eventlog dependency to ~> 0.6.1Josh Cooper1-1/+1
Previously, the x86 version of the puppet gem depended on win32-eventlog ~> 0.5.3 which is not ffi compatible. This was caused when eventlog changes were reverted in 35b1abc1, and then reimplemented in 537b0572, but the corresponding eventlog dependency was not bumped. This commit bumps the dependency to use ~> 0.6.1 for x86. The x64 version already correctly depends on ~> 0.6.1.
2014-08-14(PUP-2987) Restructure Windows service codeEthan J. Brown1-16/+25
- Move runinterval parsing and execution of the puppet agent to a new thread that maintains a busyloop until either: - the service is no longer running - an exception has occurred with parsing the runinterval - Rather than performing a wakeup against the main thread, simply kill this new thread on service_stop - Main service code will wait until the busyloop thread dies, then will exit - Note that this change is ultimately not responsible for the service hangs experienced in the service. Additional changes have been made to the win32-service gem to ensure events being waited on with WaitForSingleObject are always signaled properly, even in failure cases. Please see merged PR for more info: https://github.com/djberg96/win32-service/pull/21 https://github.com/puppetlabs/puppet-win32-ruby/pull/51
2014-08-13(PUP-3048) Remove saucy from build defaultsEric Timmerman1-1/+1
This commit removes Saucy from the build_defaults. It went EOL on July 17, 2014
2014-08-04(PUP-2987) Windows service runinterval parsingEthan J. Brown1-10/+16
- Refactor parsing code to a separate method to cleanup run loop
2014-07-22Merge branch 'stable'Adrien Thebo1-1/+2
2014-07-16Merge branch 'pr/2859'Josh Cooper1-4/+1
* pr/2859: (PUP-1471) Remove warning message about pausing Windows agent service
2014-07-16(PUP-1471) Remove warning message about pausing Windows agent serviceglenn.sarti1-4/+1
Puppet agent on windows now uses a win32-service gem which is 0.8.4 or greater[1,2]. The warning message and inline comments are no longer required now that the upstream bug was fixed[3]. [1] https://github.com/puppetlabs/puppet/commit/5a5e685bf835fb459d036d31f0078668f5802331 [2] https://github.com/puppetlabs/puppet/commit/784c3d17c4d3e666701559c529e46465e5dc417e [3] https://github.com/djberg96/win32-service/commit/38eba9f1edee41c9fb1d89fc3dea11da0768baf9
2014-07-16Merge pull request #2835 from ↵Rob Reynolds1-3/+0
Iristyle/ticket/master/PUP-2521-remove-windows-pr-gem (PUP-2521) Remove windows-pr gem
2014-07-15Merge branch 'ticket/master/PUP-2881-update-win32-taskscheduler'Rob Reynolds1-2/+0
* ticket/master/PUP-2881-update-win32-taskscheduler: (27 commits) (doc) task_scheduler failure on enabled/index in manifest (PUP-2881) Use COM UseInstance Helper for cleanup (PUP-2881) Don't Release TaskScheduler in save (PUP-2881) Refactor Task cleanup (PUP-2881) Use COM interface pointer helper (PUP-2881) Remove taskscheduler VERSION (PUP-2881) Taskscheduler COM initialization (PUP-2881) Remove taskscheduler S_OK constant (PUP-2881) Remove msvcrt/buffer from taskscheduler (PUP-2881) Refactor ITaskTrigger for FFI / COM (PUP-2881) Refactor IPersistFile for FFI / COM (PUP-2881) Remove CoTaskMemFree in windows/com.rb (PUP-2881) Refactor ITask for FFI / COM (PUP-2881) Setup Taskscheduler HRESULT constants (PUP-2881) Refactor IEnumWorkItems for FFI / COM (PUP-2881) Refactor ITaskScheduler for FFI / COM (PUP-2881) Fix Unknownr UseInstance helper (PUP-2881) Use Windows::Error for COM call fails (PUP-2881) Add Windows COM code from Unknownr (PUP-2881) Move COM FFI to file windows/com.rb ...
2014-07-08Merge branch 'ticket/master/PUP2889-eventlog'Rob Reynolds1-9/+8
* ticket/master/PUP2889-eventlog: (PUP-2889) Remove dependency on win32-eventlog constants
2014-07-07(PUP-2881) Move win32-taskscheduler gem into repoEthan J. Brown1-2/+0
- Remove win32-taskscheduler from gemspec through project_data.yaml - Update require statements where appropriate - All specs verified
2014-07-07Merge pull request #2840 from ↵Kylo Ginsberg1-2/+2
adrienthebo/issue/master/pup-2177-update-apache-ciphersuite (PUP-2177) Change Crypto Spec in accordance to bettercrypto.org
2014-07-07(PUP-2889) Remove dependency on win32-eventlog constantsJosh Cooper1-9/+8
Previously, we were referencing win32-eventlog constants. However, version 0.6.0 introduced a backwards incompatible change by renaming the event type constants[1]. As result, we can't simply upgrade to the latest ffi gem. This commit defines the constants in puppet, and removes our dependence on the gem. It also adds eventlog specs, in particular to ensure that Puppet.features.eventlog? is always true on windows. [1] https://github.com/djberg96/win32-eventlog/commit/99aeb4d854306a6db699550884f189cbd3c8928a
2014-07-03(PUP-2177) Change Crypto Spec in accordance to bettercrypto.orgAaron Zauner1-2/+2
We provide an Apache vhost configuration for users that want to run a Puppet master using Apache and Passenger. The configuration was added in d85d73c (five years ago, roughly) and set the SSLProtocol and SSLCipherSuite directives using the assumptions about cryptography at the time. As part of PUP-2582 commit 05af20b70 updated the SSL cipher suite and protocol settings to remove some of the most vulnerable ciphers, but still contained some relaxed settings to ensure compatibility with as many platforms as possible. -- Summary This commit updates the SSLProtocol and SSLCipherSuite directives to ensure we only use secure ciphers while continuing to function on all supported platforms. The most notable difference is that this change switches the cipher selection from a blacklist where all ciphers are added and then selectively removed, to a whitelist where only known safe ciphers are allowed. The cipher suite has been selected using the guidelines laid out by the Applied Crypto Hardening paper[0]. -- Overall cipher selection This cipher suite was chosen by selecting for the following criteria: * TLS 1.0, 1.1, 1.2 * Perfect forward secrecy/ephemeral Diffie Hellman where possible * Preferring strong MACs (SHA-2) where possible * GCM as the authenticated encryption scheme where possible * Always falling back to reasonably acceptable schemes for maximum platform compatibility The resulting cipher suite has the following implications: TLSv1.2 is preferred over TLSv1.0, but is still provides reasonable ciphers with TLSv1.0. -- Key exchange Ephemeral Diffie Hellman and Ephemeral Elliptic Curve Diffie Hellman are used for key exchange. EDH is preferred over EECDH due to ongoing concerns with potential weaknesses in elliptic curve cryptography, but EECDH is still included due to the performance benefits of EECDH over EDH.[1] Non-ephemeral Diffie Hellman is not used to ensure perfect forward secrecy. If EDH or EECDH are not available, key exchange will be done using RSA for compatibility with legacy SSL libraries. -- Authentication RSA is used for authentication as it works in most of today's setups and modern implementations are resistant to attack for the foreseeable future. -- Encryption AES256 and CAMELLIA256 count as very strong ciphers at the moment, but if these algorithms are not available then AES128 or CAMELLIA128 will be used as fallbacks since they are still reasonably strong. CAMELLIA is preferred over AES due to the decision by NSS to prefer CAMELLIA, with the following rationale: National ciphers such as Camellia are listed before international ciphers such as AES and RC4 to allow servers that prefer Camellia to be able to negotiate Camellia without having to disable AES and RC4, which are needed for interoperability with clients that don't yet implement Camellia.[2] -- Message Authentication (MAC) Message authentication prefers AEAD with GCM, and then falls back to SHA256. If ECDHE is used SHA384 will be used when available. If no better option is available SHA1 will be used. -- Fallback When no better cipher is available, CAMELLIA128-SHA and then AES128-SHA (with RSA for authentication) will be used, for cases such as OpenSSL 0.9.8 which does not provide support for ECC and TLSv1.1 or above. -- Blacklisted algorithms On top of the algorithms blacklisted in 05af20b7, ECDSA has been disabled due to outstanding concerns about weaknesses to cache timing attacks.[3] [0] "Applied Crypto Hardening": https://bettercrypto.org/static/applied-crypto-hardening.pdf [1] "A Note on Elliptic Curve Cryptography" "Applied Crypto Hardening section 3.7" [2] "Document the policy for the order of cipher suites in SSL_ImplementedCiphers.": https://bugzilla.mozilla.org/show_bug.cgi?id=430875 [3] "How to design an elliptic-curve signature system" http://blog.cr.yp.to/20140323-ecdsa.html Thanks to Aaron Zauner <azet@azet.org> and bettercrypto.org for generating and submitting the updated cipher suite. Commit message amended by Adrien Thebo <adrien@puppetlabs.com>
2014-07-03Revert "(PUP-392) update win32-eventlog"Rob Reynolds2-7/+7
This reverts commit cffa48679b20362b3a50403a7460c1400524d790. We need to revert win32-eventlog updates for now since it now has dependencies on a library that doesn't exist in Windows 2003.
2014-07-03(PUP-2521) Remove windows-prEthan J. Brown1-3/+0
- Windows::Error no longer exists and the ERROR_FILE_NOT_FOUND constant is part of the Puppet codebase now. - Catch appropriate error in package specs - Remove windows-pr, win32-api and windows-api from gemspec
2014-07-03Merge branch 'pr/2830'Josh Cooper2-10/+10
* pr/2830: (PUP-392) Upgrade win32-dir to 0.4.9 (PUP-392) Upgrade win32-process (PUP-392) update win32-eventlog
2014-07-02(PUP-392) Upgrade win32-dir to 0.4.9Rob Reynolds1-2/+2
This upgrades win32-dir from 0.4.3 to 0.4.9 (for both platforms).
2014-07-02(PUP-1283) Relax win32-service constraintJosh Cooper1-2/+2
Previously we were requiring an exact version match for the win32-service gem. However, the ffi version of the gem has a regression and we expect a new version of the gem to be released soon. This commit relaxes the dependency so that we don't have to revisit this issue in the near future.
2014-07-02(PUP-2878) file conflict upgrading from 2.7.26 to 3.6.2Melissa Stone1-1/+2
Currently, upgrades from 2.7.26 to 3.6.2 break because of a file conflict. It seems that as of Puppet 3.3.0, the manpages changed from being owned by the puppet package, to being owned by the puppet-common package. This change was initially done to allow upgrades from Debian packages to ours. However, changing which package owns a given file makes upgrades difficult. This commit adds in conflicts to allow smooth upgrades from puppet packages prior to the manpage change to the current version.
2014-07-02(PUP-392) Upgrade win32-processRob Reynolds1-1/+1
- This upgrades the win32-process gem from 0.6.5 to 0.7.4. - Win32::Process wil not return a custom error anymore, just SystemCallError. Since this can be used for amny things, limit down SystemCallError to be rescued only if we are on Windows.
2014-07-02(PUP-392) update win32-eventlogRob Reynolds2-7/+7
This brings eventlog up to the latest gem and fixes the constants it uses.
2014-07-01(PUP-1283) Upgrade win32-service gemRob Reynolds1-1/+1
This upgrades win32-service from 0.7.2 (native compiled gem) to 0.8.4 (FFI-ed gem), which is a step in getting puppet to run on x64 ruby.
2014-06-30(PUP-2777) Bundler Windows x64 workflowEthan J. Brown1-1/+12
- Ensure that Bundler loads proper gemset whether on x86 or x64, based on what is defined in project_data.yaml - Note that latest FFI compatible gems have been added to x64 out of necessity, but the code fails tests, and is not yet compatible with Ruby 2 changes / gem updates. - Gem versions for Ruby 1.9.x were kept the same*, and will be upgraded as part of verifying gem compatibility when updating 1.9.x branch to use latest FFI compatible gems. - * FFI required an update on Ruby 1.9.x to FFI 1.9.3 to satisfy Facter 2.1.0 which now requires FFI 1.9.3
2014-06-30(PUP-392) Remove sys-admin gemEthan J. Brown1-1/+0
- Update inline strings mentioning it as a dependency
2014-06-26(PUP-2521) Remove windows-pr mixins from daemonEthan J. Brown1-6/+0
- synchronize and handle appear to no longer be used
2014-06-26(PUP-2521) Define Process constants locallyEthan J. Brown1-2/+3
- Previously, Process constants were used in a few locations throughout the code. Capture the needed PRIORITY_CLASS constants in our local Windows Process class, and also define CREATE_NEW_CONSOLE. These constants have moved in new versions of the win32-process gem. - Note that ext/windows/service/daemon.rb doesn't load Puppet code. The daemon only loads what it explicitly needs, so ensure the CREATE_NEW_CONSOLE constant is defined there.
2014-06-25(RE-1497) Remove quantal from build_defaultsEric Timmerman1-1/+1
This commit removes quantal from all build defaults because it is end of life. It removes the defaults from the build_defaults yaml.