[PATCH] Extended for Darwin OS, includeing osdep support via MacPorts

Matthias Goldhoorn matthias.goldhoorn at dfki.de
Fri Sep 14 11:44:51 CEST 2012


---
 lib/autoproj/default.osdeps |   21 +++++++++++++++++++--
 lib/autoproj/osdeps.rb      |   17 ++++++++++++++++-
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/lib/autoproj/default.osdeps b/lib/autoproj/default.osdeps
index 37398a4..92b0187 100644
--- a/lib/autoproj/default.osdeps
+++ b/lib/autoproj/default.osdeps
@@ -12,6 +12,9 @@ ruby18:
     gentoo:
         - dev-lang/ruby:1.8
         - rake
+    darwin:
+        - ruby
+        - rb-rake 
 
 ruby19:
     debian:
@@ -33,25 +36,31 @@ ruby19:
     arch:
         - ruby
         - rake
+    darwin:
+        - ruby19
+        - rake
 
 build-essential:
     debian,ubuntu: build-essential
     gentoo: ignore
     arch: ignore
+    darwin: ignore
 
 libxml2:
     debian,ubuntu: libxml2-dev
     gentoo: dev-libs/libxml2
     arch: libxml2
+    darwin: libxml2
 
 libxslt:
     debian,ubuntu: libxslt1-dev
     gentoo: dev-libs/libxslt
     arch: libxslt
+    darwin: libxslt
 
 zlib:
     debian,ubuntu: zlib1g-dev
-
+    darwin: zlib
 
 autobuild: gem
 autoproj: gem
@@ -65,32 +74,40 @@ git:
     ubuntu: git-core
     gentoo: dev-vcs/git
     arch: git
+    darwin: git-core
 svn:
     debian,ubuntu: subversion
     gentoo: dev-util/subversion
     arch: subversion
+    darwin: subversion
 cmake:
     debian,ubuntu: cmake
     gentoo: dev-util/cmake
     arch: cmake
+    darwin: cmake
 
 autotools:
     debian,ubuntu: ["automake1.9", autoconf]
     gentoo: ["sys-devel/automake:1.9", sys-devel/autoconf]
     arch: automake autoconf
+    darwin: 
+        - automake 
+        - autoconf
 
 lsb_release:
     debian,ubuntu: lsb-release
     gentoo: sys-apps/lsb-release
     arch: ignore
+    darwin: ignore
     
 archive:
     debian,ubuntu: [tar, unzip]
     gentoo: [app-arch/tar, app-arch/unzip]
     arch: [tar, unzip]
+    darwin: [gnutar, unzip]
 
 cvs:
     debian,ubuntu: cvs
-
+    darwin: cvs
 # vim: expandtab
 
diff --git a/lib/autoproj/osdeps.rb b/lib/autoproj/osdeps.rb
index a0288bc..72bd9ad 100644
--- a/lib/autoproj/osdeps.rb
+++ b/lib/autoproj/osdeps.rb
@@ -167,6 +167,16 @@ def install(packages)
             end
         end
 
+        # Package manager interface for systems that use port (i.e. MacPorts/Darwin) as
+        # their package manager
+        class PortManager < ShellScriptManager
+            def initialize
+                super(['port'], true,
+                        "port '%s'",
+                        "port '%s'")
+            end
+        end
+
         # Package manager interface for systems that use pacman (i.e. arch) as
         # their package manager
         class PacmanManager < ShellScriptManager
@@ -475,11 +485,13 @@ def self.load_default
         PACKAGE_HANDLERS = [PackageManagers::AptDpkgManager,
             PackageManagers::GemManager,
             PackageManagers::EmergeManager,
-            PackageManagers::PacmanManager]
+            PackageManagers::PacmanManager,
+            PackageManagers::PortManager]
         OS_PACKAGE_HANDLERS = {
             'debian' => 'apt-dpkg',
             'gentoo' => 'emerge',
             'arch' => 'pacman'
+            'darwin' => 'port'
         }
 
         # The information contained in the OSdeps files, as a hash
@@ -692,6 +704,9 @@ def self.operating_system(options = Hash.new)
                         [['gentoo'], [version]]
                     elsif File.exists?('/etc/arch-release')
                         [['arch'], []]
+                    elseif `uname`.chomp == "Darwin"
+                        version=`sw_vers | head -2 | tail -1`.split(":")[1]
+                        [['darwin'], [version.strip]]
                     end
             end
 
-- 
1.7.10.4


--------------020000030508070909090903--


More information about the Rock-dev mailing list