notmuch 0.9~rc1 install on OS X Lion using homebrew
authorToni Janz <toni@forlackofawittyname.com>
Sun, 2 Oct 2011 21:29:55 +0000 (17:29 +2000)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:39:32 +0000 (09:39 -0800)
73/fcdd7432077798a2b563b7a033181f4aa94a36 [new file with mode: 0644]

diff --git a/73/fcdd7432077798a2b563b7a033181f4aa94a36 b/73/fcdd7432077798a2b563b7a033181f4aa94a36
new file mode 100644 (file)
index 0000000..908c19e
--- /dev/null
@@ -0,0 +1,251 @@
+Return-Path: <egg@only-an-egg.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 6869E429E25\r
+       for <notmuch@notmuchmail.org>; Sun,  2 Oct 2011 14:30:33 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+       autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id KWyO60eTRO7Z for <notmuch@notmuchmail.org>;\r
+       Sun,  2 Oct 2011 14:30:32 -0700 (PDT)\r
+Received: from mail.forlackofawittyname.com (forlackofawittyname.com\r
+       [173.203.194.240])\r
+       by olra.theworths.org (Postfix) with ESMTP id 08512431FB6\r
+       for <notmuch@notmuchmail.org>; Sun,  2 Oct 2011 14:30:32 -0700 (PDT)\r
+Received: from localhost (cpe-071-070-245-238.nc.res.rr.com [71.70.245.238])\r
+       by mail.forlackofawittyname.com (Postfix) with ESMTPSA id E322312801C\r
+       for <notmuch@notmuchmail.org>; Sun,  2 Oct 2011 14:30:20 -0700 (PDT)\r
+Date: Sun, 2 Oct 2011 17:29:55 -0400\r
+From: Toni Janz <toni@forlackofawittyname.com>\r
+To: notmuch@notmuchmail.org\r
+Subject: notmuch 0.9~rc1 install on OS X Lion using homebrew\r
+Message-ID: <20111002212955.GB70670@argentum>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+Content-Disposition: inline\r
+Organization: Cthulhu Caos Club  FNORD!!\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+Reply-To: Toni Janz <toni@forlackofawittyname.com>\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Sun, 02 Oct 2011 21:30:33 -0000\r
+\r
+tldr; I got notmuch running on OS X 10.7.1 (Lion) and have posted the\r
+homebrew formulas below.\r
+\r
+If you are on OS X and don't know what Homebrew is then http://mxcl.github.com/homebrew/\r
+may be worth your time.\r
+\r
+I thought I'd post on this list in the hopes that some other people find\r
+it useful and ends up saving them time.\r
+\r
+\r
+Short Dependency Version Summary:\r
+talloc: 2.0.7\r
+gmime:  2.4.24\r
+xapian: 1.2.7 \r
+notmuch: 0.9~rc1\r
+\r
+The Homebrew formulas for these are below\r
+\r
+Talloc caused my problems because OS X can't deal with relative pathing\r
+so I changed the formula to include an "--disable-rpath" to configure.\r
+\r
+Gmime caused me problems with homebrew because the current formula in\r
+homebrew git compiles it with "--disable-dependancy-checking" which\r
+leads to the error below.\r
+\r
+dyld: Symbol not found: _url_addrspec_end\r
+  Referenced from: /usr/local/Cellar/gmime/2.4.24/lib/libgmime-2.4.2.dylib\r
+  Expected in: flat namespace\r
+ in /usr/local/Cellar/gmime/2.4.24/lib/libgmime-2.4.2.dylib\r
+[1]    66350 trace trap  ./notmuch-shared\r
+\r
+\r
+The formulas begin below. (I may go ahead and submit them to the\r
+homebrew repo as well, but I figure having this in the mailing archive\r
+shouldn't hurt).\r
+\r
+Now, I'm posting it here because "It Works For Me", and "It *might* work\r
+for you"--but, again, YMMV. \r
+\r
+\r
+## begin homebrew formula for 0.9~rc1 (current Head and subject to change)\r
+require 'formula'\r
+\r
+class Notmuch < Formula\r
+  head 'git://notmuchmail.org/git/notmuch'\r
+  homepage 'http://notmuchmail.org'\r
+  md5 '983cd907a7bf5ee0d12ebfb54cff784f'\r
+\r
+  depends_on 'xapian'\r
+  depends_on 'talloc'\r
+  depends_on 'gmime'\r
+\r
+  def install\r
+    system "./configure", "--prefix=#{prefix}"\r
+\r
+    # notmuch requires a newer emacs than macosx provides. So we either\r
+    # disable the emacs bindings or make notmuch depend on the homebrew\r
+    # emacs package.\r
+    # And there is a race condition in the makefile, so we have to either\r
+    # deparallelize the process or run make and make install separately.\r
+\r
+    system "make HAVE_EMACS=0"\r
+    system "make install HAVE_EMACS=0"\r
+  end\r
+end\r
+\r
+\r
+## Begin homebrew formula for gmime 2.4.24\r
+require 'formula'\r
+\r
+class Gmime < Formula\r
+  homepage 'http://spruce.sourceforge.net/gmime/'\r
+  url 'ftp://ftp.gnome.org/pub/GNOME/sources/gmime/2.4/gmime-2.4.24.tar.bz2'\r
+  sha256 'e1255dc565416b65e6f8e7b207074b86d955897169eb19a975e90b34ae660c14'\r
+\r
+  depends_on 'pkg-config' => :build\r
+  depends_on 'glib'\r
+\r
+  def install\r
+    system "./configure", "--prefix=#{prefix}",\r
+                          "--enable-largefile",\r
+                          "--disable-mono"\r
+    system "make install"\r
+  end\r
+end\r
+\r
+## Begin Homebrew formula for talloc\r
+require 'formula'\r
+\r
+class Talloc < Formula\r
+  url 'http://www.samba.org/ftp/talloc/talloc-2.0.7.tar.gz'\r
+  homepage 'http://talloc.samba.org/'\r
+  md5 'dbfb3146f4cc47054e13b8a2988299f9'\r
+\r
+\r
+  def install\r
+    system "./configure", "--prefix=#{prefix}", "--disable-rpath"\r
+    # See https://bugzilla.samba.org/show_bug.cgi?id=7000\r
+    # It seems that the patch included there is not enough\r
+    inreplace 'Makefile', 'SONAMEFLAG = #', 'SONAMEFLAG = -install_name'\r
+\r
+    system "make install"\r
+  end\r
+end\r
+\r
+\r
+## Begin homebrew formula for Xapian\r
+require 'formula'\r
+\r
+class XapianBindings < Formula\r
+  url 'http://oligarchy.co.uk/xapian/1.2.7/xapian-bindings-1.2.7.tar.gz'\r
+  homepage 'http://xapian.org'\r
+  md5 '44b83efe4b025c3b5ea3eff4e0f17a9a'\r
+end\r
+\r
+class Xapian < Formula\r
+  url 'http://oligarchy.co.uk/xapian/1.2.7/xapian-core-1.2.7.tar.gz'\r
+  homepage 'http://xapian.org'\r
+  md5 '6684eb7a990b9cedf4257f41bfddb584'\r
+\r
+  def options\r
+    [\r
+      ["--ruby", "Ruby bindings"],\r
+      ["--python", "Python bindings"],\r
+      ["--php", "PHP bindings"],\r
+      ["--java", "Java bindings"],\r
+    ]\r
+  end\r
+\r
+  def skip_clean? path\r
+    path.extname == '.la'\r
+  end\r
+\r
+  def build_any_bindings?\r
+    ARGV.include? '--ruby' or ARGV.include? '--python' or ARGV.include? '--java' or ARGV.include? '--php'\r
+  end\r
+\r
+  def arg_for_lang lang\r
+    (ARGV.include? "--#{lang}") ? "--with-#{lang}" : "--without-#{lang}"\r
+  end\r
+\r
+  def install\r
+    ENV.O3 # takes forever otherwise\r
+\r
+    system "./configure", "--prefix=#{prefix}", "--disable-assertions",\r
+                          "--disable-dependency-tracking"\r
+    system "make install"\r
+\r
+    if build_any_bindings?\r
+      XapianBindings.new.brew do\r
+        args = [\r
+          "XAPIAN_CONFIG=#{bin}/xapian-config",\r
+          "--prefix=#{prefix}",\r
+          "--disable-debug",\r
+          "--disable-dependency-tracking",\r
+          "--without-csharp",\r
+          "--without-tcl"\r
+        ]\r
+\r
+        args << arg_for_lang('ruby')\r
+        args << arg_for_lang('java')\r
+\r
+        if ARGV.include? '--python'\r
+          python_lib = lib + "python"\r
+          ENV.append 'PYTHONPATH', python_lib\r
+          python_lib.mkpath\r
+          ENV['OVERRIDE_MACOSX_DEPLOYMENT_TARGET'] = '10.4'\r
+          ENV['PYTHON_LIB'] = "#{python_lib}"\r
+          args << "--with-python"\r
+        else\r
+          args << "--without-python"\r
+        end\r
+\r
+        if ARGV.include? '--php'\r
+          extension_dir = lib+'php/extensions'\r
+          extension_dir.mkpath\r
+          args << "--with-php PHP_EXTENSION_DIR=#{extension_dir}"\r
+        else\r
+          args << "--without-php"\r
+        end\r
+\r
+        system "./configure", *args\r
+        system "make install"\r
+      end\r
+    end\r
+  end\r
+\r
+  def caveats\r
+    s = ""\r
+    if ARGV.include? "--python"\r
+      s += <<-EOS.undent\r
+        The Python bindings won't function until you amend your PYTHONPATH like so:\r
+          export PYTHONPATH=#{HOMEBREW_PREFIX}/lib/python:$PYTHONPATH\r
+      EOS\r
+    end\r
+  end\r
+end\r
+\r
+-- \r
+ __\r
+(oO) \r
+/||\...   Toni \r
+\r