Commit graph

906 commits

Author SHA1 Message Date
Chris Boot
a24c41247f apt_key: fix some whitespace issues 2015-03-15 22:47:15 +00:00
Chris Boot
42ab470d00 apt_key: fix parsing invalid dates when using GnuPG 2.x
If one should happen to have redirected /usr/bin/gpg to run GnuPG 2.x
rather than the more usual GnuPG 1.x, the apt_key provider fails with
the following error:

Could not prefetch apt_key provider 'apt_key': invalid date

This is because the output of "--with-colons" defaults to using
"fixed-list-mode" in 2.x but did not do so for 1.x. This new format
gives much more information about keys and also uses timestamps in
seconds from 1970-01-01 (UNIX epoch) rather than dates in the format
YYYY-MM-DD.

This patch adds "--fixed-list-mode" when calling apt-key, and adjusts
the code to parse the timestamps instead. This actually has several
advantages:

- Works the same with GnuPG 1.x and 2.x.
- More accurate expiry time tracking, not just entire days.
- No need to require 'date' any longer.
- Will allow the provider to expose more key information in future.

Tested on:
- Debian Wheezy (Puppet 2.7.23, Ruby 1.8.7p358)
- Debian Jessie (Puppet 3.7.2, Ruby 2.1.5p273)
2015-03-15 22:33:22 +00:00
Colleen Murphy
7c48eb2f0e Merge pull request #464 from mhaskel/README_cleanup
Update docs for unattended_upgrades
2015-03-13 15:33:12 -07:00
Morgan Haskel
399d3cae5a Update docs and test for $legacy_origin 2015-03-13 15:31:38 -07:00
Hunter Haugen
dbd1b0decb Merge pull request #463 from mhaskel/toggle-legacy-origin
Allow changing legacy_origin
2015-03-13 15:29:20 -07:00
Morgan Haskel
81bb96c898 Update docs and test for $legacy_origin 2015-03-13 14:56:53 -07:00
Mikko Pesari
3799e3a23c unattended_upgrades: Allow changing legacy_origin
This enables using Origins-Pattern in Ubuntu.
2015-03-13 14:50:16 -07:00
Morgan Haskel
97f70034c9 Merge pull request #459 from tphoney/modules-1675_check_gpg_version
initial commit for apt_key checking
2015-03-13 14:40:43 -07:00
Morgan Haskel
0f81525367 Merge pull request #456 from johanfleury/cleaning/template/unattended-upgrades
Cleaning 50unattended-upgrades.erb
2015-03-13 14:10:13 -07:00
Colleen Murphy
b67b91b53f Merge pull request #462 from mhaskel/optional_software_properties
Make installation of software-properties optional
2015-03-13 13:51:56 -07:00
Morgan Haskel
0c35704245 Make installation of software-properties optional
This is cherry-picked from the PPA cleanup happening for the 2.0.0 release.

Conflicts:
	manifests/params.pp
	manifests/ppa.pp
2015-03-13 13:38:38 -07:00
tphoney
f588f2651a initial commit for gpg key checking
better attempt at gpg version checking

adding in key length warning

removing version check, adding key check

adding tests

clean up the code

small changes

use commands

documentation updates
2015-03-12 18:25:26 +00:00
Daniele Sluijters
4fa28203b9 Merge pull request #461 from mhaskel/boo_inheritance
Inheritance of apt::params means it can't be private
2015-03-11 09:21:45 +01:00
Morgan Haskel
79db539f33 Inheritance of apt::params means it can't be private
Otherwise, if another module has `class { 'apt': }` in it everything
fails, as `$caller_module_name` will be the other module name.
2015-03-10 17:16:43 -07:00
Johan Fleury
31f732e789 Cleaning 50unattended-upgrades.erb 2015-03-09 00:01:57 +01:00
Morgan Haskel
481846b030 Merge pull request #453 from puppetlabs/daenney/location-required
apt::source: Make location required.
2015-03-06 10:08:02 -08:00
Daniele Sluijters
41a2725683 apt::source: Make location mostly required.
In what universe does it make sense to create a `sources.list.d` entry
for a repository **without** specifying where this repository is?
😖

😞 😩 😧 😱

Only when removing the resource should a location not be required.
2015-03-06 17:40:45 +01:00
TP Honey
b473af1ec5 Merge pull request #454 from LeslieCarr/MODULES-1827-add-cumulus-linux
MODULES-1827 adding Cumulus Linux detection
2015-03-06 12:13:49 +00:00
Leslie Carr
4802a6fc77 MODULES-1827 adding Cumulus Linux detection
the apt module did not correctly detect Cumulus Linux with lsbdistid.
This change adds several lines in params.pp to detect Cumulus Linux and
set $distid and $distcodename
2015-03-05 16:56:03 -08:00
Morgan Haskel
a8250aecfe Merge pull request #452 from puppetlabs/daenney/rename-trusted-source
apt::source: Rename `trusted_source`.
2015-03-05 16:49:23 -08:00
Daniele Sluijters
90bade9561 apt::source: Rename trusted_source.
It is weird that `trusted_source` would default to `false` as that would
imply that we normally don't trust our sources. This is opposite to the
truth, by default we trust them but only if the Releases file can be
verified (meaning it is signed by a GPG key known to apt).

What we were telling apt is that it should trust this source even if the
Releases file and the repository is unsigned. This is better captured
with `allow_unsigned` and better highlights the danger of what you're
doing, installing packages from a source we cannot authenticate.
2015-03-05 20:23:38 +01:00
Morgan Haskel
2a28938299 Merge pull request #451 from puppetlabs/daenney/consolidate-include
apt::source: Merge `include_*` options into hash.
2015-03-05 11:10:20 -08:00
Daniele Sluijters
a220dcf08c apt::source: Merge include_* options into hash.
This makes its behaviour similar to the `update`, `proxy` and `purge`
hashes on the main classes bringing its API more in line with the rest
of the module.
2015-03-05 17:37:51 +01:00
Morgan Haskel
acd280bce9 Merge pull request #450 from puppetlabs/daenney/guard-lsb-facts
apt::params: Complete $xfacts.
2015-03-03 09:38:29 -08:00
Daniele Sluijters
1c707c7d32 apt::params: Complete $xfacts.
`$xfacts` now contains and guards all `lsb*` facts. Looking up any
`lsb*`-related fact should now always be done through `$::apt::xfacts`
to ensure that the values are always set to either the value of the fact
or undef. This avoids all sorts of kerfuffles with strict variables.
2015-03-03 18:07:48 +01:00
Morgan Haskel
001e3a42b9 Merge pull request #449 from puppetlabs/daenney/fix-strict-vars
apt: Fix all strict variable cases.
2015-03-03 08:54:27 -08:00
Daniele Sluijters
c57d2dd5dd apt: Fix all strict variable cases.
A few of these fixes are absolutely horrendous but we have no choice as
we need to stay current- and future-parser compatible for now.

Once we can go Puppet 4 only we can use the `$facts` hash lookup instead
which will return undef/nil for things that aren't set instead of them
not being defined at all.
2015-03-03 17:33:14 +01:00
Morgan Haskel
d05e71238e Merge pull request #448 from puppetlabs/daenney/kill-file-perms
apt::setting: Remove file_perms.
2015-03-02 11:53:53 -08:00
Daniele Sluijters
7a35ea0355 apt::setting: Remove file_perms.
This was a great idea but is pretty pointless. It's also not being used
by anything and not exposed as a switch on the main class so it would
almost never affect any behaviour.
2015-03-02 20:37:01 +01:00
Morgan Haskel
396036892d Merge pull request #447 from puppetlabs/daenney/hulk-smash-2
It's been a long time - how have you been
2015-03-02 10:10:37 -08:00
Daniele Sluijters
0cb48b0c47 apt:🔑 Be explicit about the keyserver.
The behaviour of passing down undef through multiple layers gets fuzzy
so for now be explicit about the keyserver.

Once Puppet 4 is out and this behaviour has been crystallised and tested
we can revisit it.
2015-03-01 14:49:04 +01:00
Daniele Sluijters
061bc49463 apt:🔑 Rename $key to $id to match apt_key. 2015-03-01 14:40:17 +01:00
Daniele Sluijters
ea4f615735 apt::source: Allow passing in a complex key.
Turn `$key` into something that accepts a string or a hash of four keys
representing the different options that can be passed on to `apt::key`.
2015-03-01 14:40:17 +01:00
Daniele Sluijters
0f3bdcdf5a apt(::key|_key) Remove the key.*_ prefixes.
Remove a lot of the redundant `key_` prefixes on `apt::key` and the
`keyserver_` prefix on `apt_key`.
2015-03-01 14:20:46 +01:00
Daniele Sluijters
95ae9ab48f apt: Add settings, keys and ppas.
* Allow any configuration of apt to be done through data bindings by
  passing in hashes representing the resources.
* Switch apt::ppa to use `distid` as set in `apt::params. This makes
  `apt::ppa` also work for LinuxMint.
2015-03-01 14:20:45 +01:00
Daniele Sluijters
fe228435b1 apt: Change how update is managed.
* Instead of having 4 options controlling purging we now have a single
  hash with four possible keys.
* Include `apt::update` only _after_ we've assembled the `$_update`
  hash.
2015-03-01 13:17:47 +01:00
Daniele Sluijters
a1ce8bdea4 apt: Change how purging is managed.
* Instead of having 4 options controlling purging we now have a single
  hash with four possible keys.
* We purge everything by default.
* `/etc/apt/preferences` is now always managed.
* Add missing `mode` to some of the files.
2015-02-28 16:50:31 +01:00
Morgan Haskel
aae853b585 Merge pull request #446 from puppetlabs/daenney/apt-proxy
apt: Add proxy support on the class.
2015-02-27 13:09:07 -08:00
Daniele Sluijters
d81c3d9476 apt: Add proxy support on the class.
Re-introduce proxy support at the class level. Needing to configure a
proxy is such a common scenario that having it on the class is a
reasonable thing. It also affects `apt::ppa`.

Change `apt::ppa` to no longer have its own `proxy` parameter but use
the proxy as configured on the main `apt` class.
2015-02-27 21:14:24 +01:00
Daniele Sluijters
b53ea1b90c spec/(apt|ppa): Enough with all the strings.
Most options can and should be named through symbols, makes it much
easier to read too with syntax highlighting.
2015-02-27 12:20:41 +01:00
Daniele Sluijters
b6c70b70e7 Merge pull request #445 from mhaskel/updates_everywhere
Make apt::setting notify Exec['apt_update'] by default
2015-02-27 09:01:38 +01:00
Morgan Haskel
0475e50be8 Make apt::setting notify Exec['apt_update'] by default
Can be disabled by setting `notify_update => false`
2015-02-26 12:44:06 -08:00
Morgan Haskel
a21c183b72 Merge pull request #444 from puppetlabs/daenney/parse-setting-from-name
apt::setting: Parse type and name from title.
2015-02-26 11:27:38 -08:00
Daniele Sluijters
d261d8f11b apt::setting: Parse type and name from title.
Instead of having two additional parameters, `base_name` and
`setting_type` simply parse it from `title`.

We need to prefix most resources with `list-`, `conf-`, or `pref-` any
way to avoid duplicate resources so we might as well leverage that.
2015-02-26 20:15:42 +01:00
Daniele Sluijters
e588ab622b Merge pull request #443 from mhaskel/proxy_updates
proxy_* params were removed from class apt
2015-02-26 18:00:17 +01:00
Daniele Sluijters
a634fe2189 Merge pull request #441 from mhaskel/use_setting
Convert to use apt::setting instead of file resource
2015-02-26 18:00:02 +01:00
Morgan Haskel
351c8d5941 Convert to use apt::setting instead of file resources
This adds consistency across the module
2015-02-25 10:24:56 -08:00
Morgan Haskel
3e44b685d2 proxy_* params were removed from class apt
Add them to PPA since they were being used there, and add a placeholder
example for setting up the proxy files.
2015-02-25 09:56:24 -08:00
Daniele Sluijters
1c0c6f106a Merge pull request #442 from mhaskel/add_base_name
Add base_name parameter to apt::setting
2015-02-25 18:22:37 +01:00
Daniele Sluijters
fd71aedda7 Merge pull request #440 from mhaskel/fix_setting_validation
Allow priorities to be zero-padded
2015-02-25 18:22:04 +01:00