From 4fe22e28cb11898de63e0e0291bcb51fa567dde1 Mon Sep 17 00:00:00 2001 From: "Jason \"Don\" O'Conal" Date: Sun, 26 May 2013 18:07:28 +1000 Subject: [PATCH 1/7] Add sup expression --- .../networking/mailreaders/sup/default.nix | 45 +++++++++++++++++++ pkgs/lib/maintainers.nix | 1 + pkgs/top-level/all-packages.nix | 5 +++ 3 files changed, 51 insertions(+) create mode 100644 pkgs/applications/networking/mailreaders/sup/default.nix diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix new file mode 100644 index 000000000000..c657445617de --- /dev/null +++ b/pkgs/applications/networking/mailreaders/sup/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl, ncurses, ruby, rake, rubygems, makeWrapper }: + +stdenv.mkDerivation { + name = "sup-d21f027afcd6a4031de9619acd8dacbd2f2f4fd4"; + + meta = { + homepage = http://supmua.org; + description = "A curses threads-with-tags style email client"; + maintainers = with stdenv.lib.maintainers; [ lovek323 ]; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.unix; + }; + + dontStrip = true; + + src = fetchurl { + url = "https://github.com/sup-heliotrope/sup/archive/d21f027afcd6a4031de9619acd8dacbd2f2f4fd4.tar.gz"; + sha256 = "0syifva6pqrg3nyy7xx7nan9zswb4ls6bkk96vi9ki2ly1ymwcdp"; + }; + + configurePhase = ""; + + buildInputs = [ ncurses ruby rake rubygems makeWrapper ]; + + buildPhase = "rake gem"; + + installPhase = '' + export HOME=$TMP/home; mkdir -pv "$HOME" + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri pkg/sup-999.gem + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri gpgme --version 1.0.8 + + addToSearchPath GEM_PATH $out/${ruby.gemPath} + + for prog in $out/bin/*; do + wrapProgram "$prog" --prefix GEM_PATH : "$GEM_PATH" + done + + for prog in $out/gems/*/bin/*; do + [[ -e "$out/bin/$(basename $prog)" ]] + done + ''; +} + diff --git a/pkgs/lib/maintainers.nix b/pkgs/lib/maintainers.nix index e861203fb159..fd538069bb60 100644 --- a/pkgs/lib/maintainers.nix +++ b/pkgs/lib/maintainers.nix @@ -22,6 +22,7 @@ goibhniu = "Cillian de Róiste "; guibert = "David Guibert "; iElectric = "Domen Kozar "; + lovek323 = "Jason O'Conal "; jcumming = "Jack Cummings "; kkallio = "Karn Kallio "; ludo = "Ludovic Courtès "; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ae61d0502378..ab7121dc282a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7772,6 +7772,11 @@ let mutt = callPackage ../applications/networking/mailreaders/mutt { }; + sup = callPackage ../applications/networking/mailreaders/sup { + rake = rubyLibs.rake_10_0_4; + ruby = ruby19; + }; + msmtp = callPackage ../applications/networking/msmtp { }; imapfilter = callPackage ../applications/networking/mailreaders/imapfilter.nix { From 593228f18dea57fd5d538925fa79cec39ef4016d Mon Sep 17 00:00:00 2001 From: "Jason \"Don\" O'Conal" Date: Tue, 11 Jun 2013 17:30:36 +1000 Subject: [PATCH 2/7] Compile libusb with gccApple on darwin --- pkgs/top-level/all-packages.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ab7121dc282a..aa0aa0049306 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4636,7 +4636,11 @@ let libunique = callPackage ../development/libraries/libunique/default.nix { }; - libusb = callPackage ../development/libraries/libusb { }; + libusb = callPackage ../development/libraries/libusb { + stdenv = if stdenv.isDarwin + then overrideGCC stdenv gccApple + else stdenv; + }; libusb1 = callPackage ../development/libraries/libusb1 { }; From ee00c7aa4eab65f010328c11f196e870bf25a2bc Mon Sep 17 00:00:00 2001 From: "Jason \"Don\" O'Conal" Date: Tue, 11 Jun 2013 17:30:54 +1000 Subject: [PATCH 3/7] Add gpgme build input for sup --- .../networking/mailreaders/sup/default.nix | 4 ++-- pkgs/tools/security/gnupg/default.nix | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix index c657445617de..b1ef5dddda3a 100644 --- a/pkgs/applications/networking/mailreaders/sup/default.nix +++ b/pkgs/applications/networking/mailreaders/sup/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses, ruby, rake, rubygems, makeWrapper }: +{ stdenv, fetchurl, ncurses, ruby, rake, rubygems, makeWrapper, gpgme }: stdenv.mkDerivation { name = "sup-d21f027afcd6a4031de9619acd8dacbd2f2f4fd4"; @@ -20,7 +20,7 @@ stdenv.mkDerivation { configurePhase = ""; - buildInputs = [ ncurses ruby rake rubygems makeWrapper ]; + buildInputs = [ ncurses ruby rake rubygems makeWrapper gpgme ]; buildPhase = "rake gem"; diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix index b94e2e50a40c..90a08bba42a7 100644 --- a/pkgs/tools/security/gnupg/default.nix +++ b/pkgs/tools/security/gnupg/default.nix @@ -2,9 +2,9 @@ # 'echo "pinentry-program `which pinentry-gtk-2`" >> ~/.gnupg/gpg-agent.conf'. { fetchurl, stdenv, readline, zlib, libgpgerror, pth, libgcrypt, libassuan -, libksba, coreutils, useLdap ? true, openldap ? null -, useBzip2 ? true, bzip2 ? null, useUsb ? true, libusb ? null -, useCurl ? true, curl ? null +, libksba, coreutils, libiconv +, useLdap ? true, openldap ? null, useBzip2 ? true, bzip2 ? null +, useUsb ? true, libusb ? null, useCurl ? true, curl ? null }: assert useLdap -> (openldap != null); @@ -20,7 +20,8 @@ stdenv.mkDerivation rec { sha256 = "16mp0j5inrcqcb3fxbn0b3aamascy3n923wiy0y8marc0rzrp53f"; }; - buildInputs = [ readline zlib libgpgerror libgcrypt libassuan libksba pth ] + buildInputs + = [ readline zlib libgpgerror libgcrypt libassuan libksba pth libiconv ] ++ stdenv.lib.optional useLdap openldap ++ stdenv.lib.optional useBzip2 bzip2 ++ stdenv.lib.optional useUsb libusb @@ -28,6 +29,7 @@ stdenv.mkDerivation rec { patchPhase = '' find tests -type f | xargs sed -e 's@/bin/pwd@${coreutils}&@g' -i + find . -name pcsc-wrapper.c | xargs sed -i 's/typedef unsinged int pcsc_dword_t/typedef unsigned int pcsc_dword_t/' ''; checkPhase="GNUPGHOME=`pwd` ./agent/gpg-agent --daemon make check"; From a5e65e66b1ae9eb7f33c0bf6b8662166ea112b60 Mon Sep 17 00:00:00 2001 From: "Jason \"Don\" O'Conal" Date: Wed, 12 Jun 2013 12:24:04 +1000 Subject: [PATCH 4/7] sup: separate dependencies create separate expressions for gems requiring native extensions to be built: * gpgme * ncursesw_sup * xapian_full_alaveteli --- .../networking/mailreaders/sup/default.nix | 43 ++++++++++--- .../interpreters/ruby/generated.nix | 11 ++++ .../development/interpreters/ruby/patches.nix | 4 ++ .../libraries/ruby_gpgme/default.nix | 64 +++++++++++++++++++ .../libraries/ruby_ncursesw_sup/default.nix | 47 ++++++++++++++ pkgs/top-level/all-packages.nix | 10 +++ 6 files changed, 170 insertions(+), 9 deletions(-) create mode 100644 pkgs/development/libraries/ruby_gpgme/default.nix create mode 100644 pkgs/development/libraries/ruby_ncursesw_sup/default.nix diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix index b1ef5dddda3a..05313a348344 100644 --- a/pkgs/applications/networking/mailreaders/sup/default.nix +++ b/pkgs/applications/networking/mailreaders/sup/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchurl, ncurses, ruby, rake, rubygems, makeWrapper, gpgme }: +{ stdenv, fetchurl, ruby, rake, rubygems, makeWrapper, ncursesw_sup +, xapian_full_alaveteli, gpgme, libiconv }: stdenv.mkDerivation { name = "sup-d21f027afcd6a4031de9619acd8dacbd2f2f4fd4"; @@ -18,20 +19,44 @@ stdenv.mkDerivation { sha256 = "0syifva6pqrg3nyy7xx7nan9zswb4ls6bkk96vi9ki2ly1ymwcdp"; }; - configurePhase = ""; - - buildInputs = [ ncurses ruby rake rubygems makeWrapper gpgme ]; + buildInputs = + [ ruby rake rubygems makeWrapper gpgme ncursesw_sup xapian_full_alaveteli + libiconv ]; buildPhase = "rake gem"; + # TODO: Move gem dependencies out + installPhase = '' export HOME=$TMP/home; mkdir -pv "$HOME" - gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ - --bindir "$out/bin" --no-rdoc --no-ri pkg/sup-999.gem - gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ - --bindir "$out/bin" --no-rdoc --no-ri gpgme --version 1.0.8 - addToSearchPath GEM_PATH $out/${ruby.gemPath} + GEM_PATH="$GEM_PATH:$out/${ruby.gemPath}" + GEM_PATH="$GEM_PATH:${ncursesw_sup}/${ruby.gemPath}" + GEM_PATH="$GEM_PATH:${xapian_full_alaveteli}/${ruby.gemPath}" + GEM_PATH="$GEM_PATH:${gpgme}/${ruby.gemPath}" + + # Don't install some dependencies -- we have already installed + # ncursesw-sup, xapian-full-alaveteli and gpgme, but gem doesn't acknowledge + # this + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri pkg/sup-999.gem \ + --ignore-dependencies + + # Now install the dependencies that will work out of the box + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri rmail + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri trollop + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri lockfile + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri mime-types + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri gettext + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri chronic + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri iconv for prog in $out/bin/*; do wrapProgram "$prog" --prefix GEM_PATH : "$GEM_PATH" diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix index d4bb7fa4f2d1..3e9a3f198e83 100644 --- a/pkgs/development/interpreters/ruby/generated.nix +++ b/pkgs/development/interpreters/ruby/generated.nix @@ -97,6 +97,7 @@ g: # Get dependencies from patched gems uuid = g.uuid_2_3_7; uuidtools = g.uuidtools_2_1_3; websocket = g.websocket_1_0_7; + xapian_full_alaveteli = g.xapian_full_alaveteli_1_2_9_5; xml_simple = g.xml_simple_1_1_1; yajl_ruby = g.yajl_ruby_1_1_0; }; @@ -1467,6 +1468,16 @@ interpreters.''; requiredGems = [ ]; sha256 = ''1jrfz4295qbnjaxv37fw9jzxyxz61izp7c0683mnscacpx262zw0''; }; + xapian_full_alaveteli_1_2_9_5 = { + basename = ''xapian_full_alaveteli''; + meta = { + description = ''xapian-core + Ruby xapian-bindings''; + longDescription = ''Xapian bindings for Ruby without dependency on system Xapian library''; + }; + name = ''xapian-full-alaveteli-1.2.9.5''; + requiredGems = [ ]; + sha256 = ''0qg1jkx5lr4a5v7l3f9gq7f07al6qaxxzma230zrzs48bz3qnhxm''; + }; xml_simple_1_1_1 = { basename = ''xml_simple''; meta = { diff --git a/pkgs/development/interpreters/ruby/patches.nix b/pkgs/development/interpreters/ruby/patches.nix index c4da956b57c8..47b8864a635e 100644 --- a/pkgs/development/interpreters/ruby/patches.nix +++ b/pkgs/development/interpreters/ruby/patches.nix @@ -91,6 +91,10 @@ in gemFlags = "--no-rdoc --no-ri"; }; + xapian_full_alaveteli = { + buildInputs = [ zlib libuuid ]; + }; + rjb = { buildInputs = [ jdk ]; JAVA_HOME = jdk; diff --git a/pkgs/development/libraries/ruby_gpgme/default.nix b/pkgs/development/libraries/ruby_gpgme/default.nix new file mode 100644 index 000000000000..bbec073b5d26 --- /dev/null +++ b/pkgs/development/libraries/ruby_gpgme/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchurl, gpgme, ruby, rubygems, hoe }: + +stdenv.mkDerivation rec { + name = "gpgme-1.0.8"; + + src = fetchurl { + url = "https://github.com/ueno/ruby-gpgme/archive/1.0.8.tar.gz"; + sha256 = "1j7jkl9s8iqcmxf3x6c9kljm19hw1jg6yvwbndmkw43qacdr9nxb"; + }; + + meta = { + description = '' + Ruby-GPGME is a Ruby language binding of GPGME (GnuPG Made + Easy) + ''; + homepage = "http://rubyforge.org/projects/ruby-gpgme/"; + longDescription = '' + Ruby-GPGME is a Ruby language binding of GPGME (GnuPG Made Easy). + + GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG + easier for applications. It provides a High-Level Crypto API for + encryption, decryption, signing, signature verification and key + management. + ''; + }; + + buildInputs = [ gpgme rubygems hoe ruby ]; + + buildPhase = '' + ${ruby}/bin/ruby extconf.rb + rake gem + ''; + + installPhase = '' + export HOME=$TMP/home; mkdir -pv "$HOME" + + # For some reason, the installation phase doesn't work with the default + # make install command run by gem (we'll fix it and do it ourselves later) + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri pkg/gpgme-1.0.8.gem || true + + # Create a bare-bones gemspec file so that ruby will recognise the gem + cat <"$out/${ruby.gemPath}/specifications/gpgme.gemspec" + Gem::Specification.new do |s| + s.name = 'gpgme' + s.version = '1.0.8' + s.files = Dir['{lib,examples}/**/*'] + s.rubyforge_project = 'ruby-gpgme' + s.require_paths = ['lib'] + end + EOF + + cd "$out/${ruby.gemPath}/gems/${name}" + mkdir src + mv lib src + sed -i "s/srcdir = ./srcdir = src/" Makefile + make install + + mv lib lib.bak + mv src/lib lib + rmdir src + ''; +} + diff --git a/pkgs/development/libraries/ruby_ncursesw_sup/default.nix b/pkgs/development/libraries/ruby_ncursesw_sup/default.nix new file mode 100644 index 000000000000..67041ad06078 --- /dev/null +++ b/pkgs/development/libraries/ruby_ncursesw_sup/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, ncurses, ruby, rubygems }: + +stdenv.mkDerivation rec { + name = ''ncursesw-sup-afd962b9c06108ff0643e98593c5605314d76917''; + + src = fetchurl { + url = "https://github.com/sup-heliotrope/ncursesw-ruby/archive/afd962b9c06108ff0643e98593c5605314d76917.tar.gz"; + sha256 = "13i286p4bm8zqg9xh96a1dg7wkywj9m6975gbh3w43d3rmfc1h6a"; + }; + + meta = { + description = '' + Hacked up version of ncurses gem that supports wide characters for + supmua.org + ''; + homepage = ''http://github.com/sup-heliotrope/ncursesw-ruby''; + longDescription = '' + This wrapper provides access to the functions, macros, global variables + and constants of the ncurses library. These are mapped to a Ruby Module + named "Ncurses": Functions and external variables are implemented as + singleton functions of the Module Ncurses. + ''; + }; + + buildInputs = [ ncurses rubygems ]; + + buildPhase = "gem build ncursesw.gemspec"; + + installPhase = '' + export HOME=$TMP/home; mkdir -pv "$HOME" + + # For some reason, the installation phase doesn't work with the default + # make install command run by gem (we'll fix it and do it ourselves later) + gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \ + --bindir "$out/bin" --no-rdoc --no-ri ncursesw-sup-1.3.1.2.gem || true + + # Needed for ruby to recognise the gem + cp ncursesw.gemspec "$out/${ruby.gemPath}/specifications" + + cd "$out/${ruby.gemPath}/gems/ncursesw-sup-1.3.1.2" + mkdir src + mv lib src + sed -i "s/srcdir = ./srcdir = src/" Makefile + make install + ''; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aa0aa0049306..2db217ea5e3c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7776,9 +7776,19 @@ let mutt = callPackage ../applications/networking/mailreaders/mutt { }; + ruby_gpgme = callPackage ../development/libraries/ruby_gpgme { + ruby = ruby19; + hoe = rubyLibs.hoe; + }; + + ruby_ncursesw_sup = callPackage ../development/libraries/ruby_ncursesw_sup { }; + sup = callPackage ../applications/networking/mailreaders/sup { rake = rubyLibs.rake_10_0_4; ruby = ruby19; + xapian_full_alaveteli = rubyLibs.xapian_full_alaveteli_1_2_9_5; + gpgme = ruby_gpgme; + ncursesw_sup = ruby_ncursesw_sup; }; msmtp = callPackage ../applications/networking/msmtp { }; From 150a6a70637a7ffc51222d80dc7bd699720eafda Mon Sep 17 00:00:00 2001 From: "Jason \"Don\" O'Conal" Date: Thu, 13 Jun 2013 14:09:14 +1000 Subject: [PATCH 5/7] Rename ruby gpgme gem to ruby-gpgme --- pkgs/development/libraries/ruby_gpgme/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/ruby_gpgme/default.nix b/pkgs/development/libraries/ruby_gpgme/default.nix index bbec073b5d26..c5f2366bfa1c 100644 --- a/pkgs/development/libraries/ruby_gpgme/default.nix +++ b/pkgs/development/libraries/ruby_gpgme/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, gpgme, ruby, rubygems, hoe }: -stdenv.mkDerivation rec { - name = "gpgme-1.0.8"; +stdenv.mkDerivation { + name = "ruby-gpgme-1.0.8"; src = fetchurl { url = "https://github.com/ueno/ruby-gpgme/archive/1.0.8.tar.gz"; @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { end EOF - cd "$out/${ruby.gemPath}/gems/${name}" + cd "$out/${ruby.gemPath}/gems/gpgme-1.0.8" mkdir src mv lib src sed -i "s/srcdir = ./srcdir = src/" Makefile From b62aa175a2990e75ea1f964d17885390db136c16 Mon Sep 17 00:00:00 2001 From: "Jason \"Don\" O'Conal" Date: Thu, 13 Jun 2013 14:17:27 +1000 Subject: [PATCH 6/7] gnupg: use libiconvOrEmpty instead of libiconv (not required for glibc platforms) --- pkgs/tools/security/gnupg/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix index 90a08bba42a7..2cac2819c16d 100644 --- a/pkgs/tools/security/gnupg/default.nix +++ b/pkgs/tools/security/gnupg/default.nix @@ -2,7 +2,7 @@ # 'echo "pinentry-program `which pinentry-gtk-2`" >> ~/.gnupg/gpg-agent.conf'. { fetchurl, stdenv, readline, zlib, libgpgerror, pth, libgcrypt, libassuan -, libksba, coreutils, libiconv +, libksba, coreutils, libiconvOrEmpty , useLdap ? true, openldap ? null, useBzip2 ? true, bzip2 ? null , useUsb ? true, libusb ? null, useCurl ? true, curl ? null }: @@ -21,7 +21,8 @@ stdenv.mkDerivation rec { }; buildInputs - = [ readline zlib libgpgerror libgcrypt libassuan libksba pth libiconv ] + = [ readline zlib libgpgerror libgcrypt libassuan libksba pth ] + ++ libiconvOrEmpty ++ stdenv.lib.optional useLdap openldap ++ stdenv.lib.optional useBzip2 bzip2 ++ stdenv.lib.optional useUsb libusb From 6f50a9d4f07da9206de255975b969506bcaf2962 Mon Sep 17 00:00:00 2001 From: "Jason \"Don\" O'Conal" Date: Thu, 13 Jun 2013 14:21:20 +1000 Subject: [PATCH 7/7] sup: use libiconvOrEmpty instead of plain old libiconv --- pkgs/applications/networking/mailreaders/sup/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix index 05313a348344..163a32bfa88a 100644 --- a/pkgs/applications/networking/mailreaders/sup/default.nix +++ b/pkgs/applications/networking/mailreaders/sup/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, ruby, rake, rubygems, makeWrapper, ncursesw_sup -, xapian_full_alaveteli, gpgme, libiconv }: +, xapian_full_alaveteli, gpgme, libiconvOrEmpty }: stdenv.mkDerivation { name = "sup-d21f027afcd6a4031de9619acd8dacbd2f2f4fd4"; @@ -21,7 +21,7 @@ stdenv.mkDerivation { buildInputs = [ ruby rake rubygems makeWrapper gpgme ncursesw_sup xapian_full_alaveteli - libiconv ]; + libiconvOrEmpty ]; buildPhase = "rake gem";