summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/package
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-06-18 20:10:35 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-06-18 20:10:35 +0000
commitf96ec6d7ab9d18d2068f388508d811c39973df1e (patch)
tree472b08a72b97aa44b688b60c3bbc332a7f772d36 /lib/puppet/provider/package
parent3f6c41334e3cd78c2323900d70fac519cccb3141 (diff)
downloadpuppet-f96ec6d7ab9d18d2068f388508d811c39973df1e.tar.gz
puppet-f96ec6d7ab9d18d2068f388508d811c39973df1e.tar.xz
puppet-f96ec6d7ab9d18d2068f388508d811c39973df1e.zip
Updating the has_version work that Matt did -- the only thing he missed was that the :versionable feature depends on the :latest method, and when that is present we can safely assume that a package is versionable. Also, created the :latest method on the dpkg provider, as requested in #647.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2615 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/provider/package')
-rwxr-xr-xlib/puppet/provider/package/apt.rb2
-rwxr-xr-xlib/puppet/provider/package/aptitude.rb2
-rw-r--r--lib/puppet/provider/package/aptrpm.rb2
-rwxr-xr-xlib/puppet/provider/package/dpkg.rb6
-rwxr-xr-xlib/puppet/provider/package/gem.rb2
-rw-r--r--lib/puppet/provider/package/portage.rb2
-rw-r--r--lib/puppet/provider/package/rug.rb2
-rw-r--r--lib/puppet/provider/package/urpmi.rb2
-rwxr-xr-xlib/puppet/provider/package/yum.rb2
9 files changed, 6 insertions, 16 deletions
diff --git a/lib/puppet/provider/package/apt.rb b/lib/puppet/provider/package/apt.rb
index d39ce01f4..0f8cc8e76 100755
--- a/lib/puppet/provider/package/apt.rb
+++ b/lib/puppet/provider/package/apt.rb
@@ -4,8 +4,6 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
desc "Package management via ``apt-get``."
- has_feature :versionable
-
commands :aptget => "/usr/bin/apt-get"
commands :aptcache => "/usr/bin/apt-cache"
commands :preseed => "/usr/bin/debconf-set-selections"
diff --git a/lib/puppet/provider/package/aptitude.rb b/lib/puppet/provider/package/aptitude.rb
index cad7449f4..d3ca7cde0 100755
--- a/lib/puppet/provider/package/aptitude.rb
+++ b/lib/puppet/provider/package/aptitude.rb
@@ -1,8 +1,6 @@
Puppet::Type.type(:package).provide :aptitude, :parent => :apt, :source => :dpkg do
desc "Package management via ``aptitude``."
- has_feature :versionable
-
commands :aptitude => "/usr/bin/aptitude"
commands :aptcache => "/usr/bin/apt-cache"
diff --git a/lib/puppet/provider/package/aptrpm.rb b/lib/puppet/provider/package/aptrpm.rb
index 00d60b236..e26da86bd 100644
--- a/lib/puppet/provider/package/aptrpm.rb
+++ b/lib/puppet/provider/package/aptrpm.rb
@@ -4,8 +4,6 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm, :source => :rpm do
desc "Package management via ``apt-get`` ported to ``rpm``."
- has_feature :versionable
-
commands :aptget => "/usr/bin/apt-get"
commands :aptcache => "/usr/bin/apt-cache"
commands :rpm => "/usr/bin/rpm"
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb
index 6756bee1b..67ee99fb7 100755
--- a/lib/puppet/provider/package/dpkg.rb
+++ b/lib/puppet/provider/package/dpkg.rb
@@ -6,6 +6,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
to manage."
commands :dpkg => "/usr/bin/dpkg"
+ commands :dpkg_deb => "/usr/bin/dpkg-deb"
commands :dpkgquery => "/usr/bin/dpkg-query"
def self.instances
@@ -49,6 +50,11 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
dpkg "-i", file
end
+ # Return the version from the package.
+ def latest
+ output = dpkg_deb "--show", @resource[:source]
+ end
+
def query
packages = []
diff --git a/lib/puppet/provider/package/gem.rb b/lib/puppet/provider/package/gem.rb
index f160adeb7..6bcc13187 100755
--- a/lib/puppet/provider/package/gem.rb
+++ b/lib/puppet/provider/package/gem.rb
@@ -5,8 +5,6 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package d
desc "Ruby Gem support. By default uses remote gems, but you can specify
the path to a local gem via ``source``."
- has_feature :versionable
-
commands :gemcmd => "gem"
def self.gemlist(hash)
diff --git a/lib/puppet/provider/package/portage.rb b/lib/puppet/provider/package/portage.rb
index bcfcfde2e..62bada1d3 100644
--- a/lib/puppet/provider/package/portage.rb
+++ b/lib/puppet/provider/package/portage.rb
@@ -3,8 +3,6 @@ require 'puppet/provider/package'
Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Package do
desc "Provides packaging support for Gentoo's portage system."
- has_feature :versionable
-
commands :emerge => "/usr/bin/emerge", :eix => "/usr/bin/eix", :update_eix => "/usr/bin/update-eix"
defaultfor :operatingsystem => :gentoo
diff --git a/lib/puppet/provider/package/rug.rb b/lib/puppet/provider/package/rug.rb
index 56cce70b7..dcdf54cf1 100644
--- a/lib/puppet/provider/package/rug.rb
+++ b/lib/puppet/provider/package/rug.rb
@@ -1,8 +1,6 @@
Puppet.type(:package).provide :rug, :parent => :rpm do
desc "Support for suse ``rug`` package manager."
- has_feature :versionable
-
commands :rug => "/usr/bin/rug"
defaultfor :operatingsystem => :suse
confine :operatingsystem => :suse
diff --git a/lib/puppet/provider/package/urpmi.rb b/lib/puppet/provider/package/urpmi.rb
index 4a7de233c..7ffeb2e2e 100644
--- a/lib/puppet/provider/package/urpmi.rb
+++ b/lib/puppet/provider/package/urpmi.rb
@@ -4,8 +4,6 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
defaultfor :operatingsystem => [:mandriva, :mandrake]
- has_feature :versionable
-
def install
should = @resource.should(:ensure)
self.debug "Ensuring => #{should}"
diff --git a/lib/puppet/provider/package/yum.rb b/lib/puppet/provider/package/yum.rb
index f6c5ec401..935402366 100755
--- a/lib/puppet/provider/package/yum.rb
+++ b/lib/puppet/provider/package/yum.rb
@@ -1,8 +1,6 @@
Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
desc "Support via ``yum``."
- has_feature :versionable
-
commands :yum => "yum", :rpm => "rpm"
defaultfor :operatingsystem => [:fedora, :centos, :redhat]