949e2afb86
libvirtd would fail to successfully run on Mac OS X. With these two upstream changes that is resolved. It can be tested by running 'virsh version'. Closes Homebrew/homebrew#23141. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
87 lines
2.7 KiB
Ruby
87 lines
2.7 KiB
Ruby
require 'formula'
|
|
|
|
class Libvirt < Formula
|
|
homepage 'http://www.libvirt.org'
|
|
url 'http://libvirt.org/sources/libvirt-1.1.3.tar.gz'
|
|
sha256 'af83e65b4b26520662ddd183c1358be0d05138dba3e66745419f06441eff5a7c'
|
|
|
|
option 'without-libvirtd', 'Build only the virsh client and development libraries'
|
|
|
|
depends_on 'pkg-config' => :build
|
|
depends_on 'gnutls'
|
|
depends_on 'libgcrypt'
|
|
depends_on 'yajl'
|
|
depends_on :python => :recommended
|
|
|
|
if MacOS.version <= :leopard
|
|
# Definitely needed on Leopard, but not on Snow Leopard.
|
|
depends_on "readline"
|
|
depends_on "libxml2"
|
|
end
|
|
|
|
fails_with :llvm do
|
|
build 2326
|
|
cause "Undefined symbols when linking"
|
|
end
|
|
|
|
def patches
|
|
{
|
|
:p1 => [
|
|
# getsockopt() on Mac OS X requires using SOL_LOCAL instead of
|
|
# SOL_SOCKET for LOCAL_PEERCRED. This corrects that for Mac OS X
|
|
"http://libvirt.org/git/?p=libvirt.git;a=commitdiff_plain;h=5a468b38b6b9ac66c1db5d8ed5d5a122a9cf01cd",
|
|
# sysctlbyname() requires a different name on Mac OS X for CPU
|
|
# frequency than FreeBSD does. This patch corrects the name.
|
|
"http://libvirt.org/git/?p=libvirt.git;a=commitdiff_plain;h=2d74822a9eb4856c7f5216bb92bcb76630660f72",
|
|
# Fix Snow Leopard and lower broken by the 1st patch
|
|
"http://libvirt.org/git/?p=libvirt.git;a=commitdiff_plain;h=2f776d49796fe34dcf5a876f4c4e34f79b66f705",
|
|
]
|
|
}
|
|
end
|
|
|
|
def install
|
|
args = ["--prefix=#{prefix}",
|
|
"--localstatedir=#{var}",
|
|
"--mandir=#{man}",
|
|
"--sysconfdir=#{etc}",
|
|
"--with-esx",
|
|
"--with-init-script=none",
|
|
"--with-remote",
|
|
"--with-test",
|
|
"--with-vbox",
|
|
"--with-vmware",
|
|
"--with-yajl",
|
|
"--without-qemu"]
|
|
|
|
args << "--without-libvirtd" if build.without? 'libvirtd'
|
|
args << "--without-python" if build.without? 'python'
|
|
|
|
system "./configure", *args
|
|
|
|
# Compilation of docs doesn't get done if we jump straight to "make install"
|
|
system "make"
|
|
system "make install"
|
|
|
|
# Update the SASL config file with the Homebrew prefix
|
|
inreplace "#{etc}/sasl2/libvirt.conf" do |s|
|
|
s.gsub! "/etc/", "#{HOMEBREW_PREFIX}/etc/"
|
|
end
|
|
|
|
# If the libvirt daemon is built, update its config file to reflect
|
|
# the Homebrew prefix
|
|
unless build.include? 'without-libvirtd'
|
|
inreplace "#{etc}/libvirt/libvirtd.conf" do |s|
|
|
s.gsub! "/etc/", "#{HOMEBREW_PREFIX}/etc/"
|
|
s.gsub! "/var/", "#{HOMEBREW_PREFIX}/var/"
|
|
end
|
|
end
|
|
end
|
|
|
|
test do
|
|
python do
|
|
# Testing to import the mod because that is a .so file where linking
|
|
# can break.
|
|
system python, '-c', "import libvirtmod"
|
|
end
|
|
end
|
|
end
|