lib/phusion_passenger/dependencies.rb in passenger-2.1.3 vs lib/phusion_passenger/dependencies.rb in passenger-2.2.0

- old
+ new

@@ -1,22 +1,27 @@ # Phusion Passenger - http://www.modrails.com/ -# Copyright (C) 2008 Phusion +# Copyright (c) 2008, 2009 Phusion # -# Phusion Passenger is a trademark of Hongli Lai & Ninh Bui. +# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui. # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. # -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. require 'phusion_passenger/platform_info' module PhusionPassenger # Represents a dependency software that Passenger requires. It's used by the @@ -325,9 +330,39 @@ rescue LoadError result.not_found end end dep.install_instructions = "Please install RubyGems first, then run <b>#{PlatformInfo::GEM || "gem"} install rack</b>" + end + + Zlib_Dev = Dependency.new do |dep| + dep.name = "Zlib development headers" + dep.define_checker do |result| + begin + File.open('/tmp/r8ee-check.c', 'w') do |f| + f.write("#include <zlib.h>") + end + Dir.chdir('/tmp') do + if system("(g++ -c r8ee-check.c) >/dev/null 2>/dev/null") + result.found + else + result.not_found + end + end + ensure + File.unlink('/tmp/r8ee-check.c') rescue nil + File.unlink('/tmp/r8ee-check.o') rescue nil + end + end + if RUBY_PLATFORM =~ /linux/ + case PlatformInfo.linux_distro + when :ubuntu, :debian + dep.install_command = "apt-get install zlib1g-dev" + when :rhel, :fedora, :centos + dep.install_command = "yum install zlib-devel" + end + end + dep.website = "http://www.zlib.net/" end end end # module PhusionPassenger