Files
nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
T

419 lines
11 KiB
Nix
Raw Normal View History

# The standard set of gems in nixpkgs including potential fixes.
#
# The gemset is derived from two points of entry:
# - An attrset describing a gem, including version, source and dependencies
# This is just meta data, most probably automatically generated by a tool
# like Bundix (https://github.com/aflatter/bundix).
# {
# name = "bundler";
# version = "1.6.5";
# sha256 = "1s4x0f5by9xs2y24jk6krq5ky7ffkzmxgr4z1nhdykdmpsi2zd0l";
# dependencies = [ "rake" ];
# }
# - An optional derivation that may override how the gem is built. For popular
# gems that don't behave correctly, fixes are already provided in the form of
# derivations.
#
# This seperates "what to build" (the exact gem versions) from "how to build"
# (to make gems behave if necessary).
2015-10-21 19:48:56 +02:00
{ lib, fetchurl, writeScript, ruby, kerberos, libxml2, libxslt, python, stdenv, which
2015-07-08 15:10:07 -07:00
, libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick
2017-03-06 20:23:02 +01:00
, pkgconfig , ncurses, xapian_1_2_22, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
2017-05-18 09:47:45 +09:00
, cmake, libssh2, openssl, mysql, darwin, git, perl, pcre, gecode_3, curl
2018-08-17 23:53:33 +00:00
, msgpack, qt48, libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, buildRubyGem
2018-07-25 17:28:24 +01:00
, cairo, re2, rake, gobjectIntrospection, gdk_pixbuf, zeromq, graphicsmagick, libcxx
2016-09-21 14:29:12 +02:00
}@args:
let
v8 = v8_3_16_14;
2017-05-12 08:52:18 -04:00
rainbow_rake = buildRubyGem {
name = "rake";
gemName = "rake";
source.sha256 = "01j8fc9bqjnrsxbppncai05h43315vmz9fwg28qdsgcjw9ck1d7n";
2017-05-12 08:52:18 -04:00
type = "gem";
version = "12.0.0";
};
2014-10-28 04:16:14 +00:00
in
2014-10-28 04:16:14 +00:00
{
atk = attrs: {
nativeBuildInputs = [ pkgconfig ];
2017-10-31 13:33:52 +09:00
buildInputs = [ gtk2 pcre rake ];
};
2017-05-18 09:47:45 +09:00
2016-08-26 14:08:39 +01:00
bundler = attrs:
let
templates = "${attrs.ruby.gemPath}/gems/${attrs.gemName}-${attrs.version}/lib/bundler/templates/";
in {
# patching shebangs would fail on the templates/Executable file, so we
# temporarily remove the executable flag.
preFixup = "chmod -x $out/${templates}/Executable";
postFixup = ''
chmod +x $out/${templates}/Executable
# Allows to load another bundler version
sed -i -e "s/activate_bin_path/bin_path/g" $out/bin/bundle
'';
};
2017-05-18 09:47:45 +09:00
cairo = attrs: {
nativeBuildInputs = [ pkgconfig ];
2018-03-13 10:16:03 +00:00
buildInputs = [ gtk2 pcre xorg.libpthreadstubs xorg.libXdmcp];
2017-05-18 09:47:45 +09:00
};
2017-10-31 13:33:52 +09:00
cairo-gobject = attrs: {
nativeBuildInputs = [ pkgconfig ];
2018-03-13 10:16:03 +00:00
buildInputs = [ cairo pcre xorg.libpthreadstubs xorg.libXdmcp ];
2017-10-31 13:33:52 +09:00
};
2016-03-21 12:01:37 +01:00
capybara-webkit = attrs: {
2018-07-25 17:28:24 +01:00
buildInputs = [ qt48 ] ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
2016-03-21 12:01:37 +01:00
};
2015-01-25 16:01:48 -05:00
charlock_holmes = attrs: {
2015-04-15 19:24:04 -04:00
buildInputs = [ which icu zlib ];
2015-01-25 16:01:48 -05:00
};
2017-10-31 13:33:52 +09:00
2017-09-20 23:53:25 -07:00
curb = attrs: {
buildInputs = [ curl ];
};
2015-01-25 16:01:48 -05:00
2018-08-15 15:32:50 +02:00
curses = attrs: {
buildInputs = [ ncurses ];
};
2015-11-14 21:17:29 -05:00
dep-selector-libgecode = attrs: {
USE_SYSTEM_GECODE = true;
postInstall = ''
installPath=$(cat $out/nix-support/gem-meta/install-path)
sed -i $installPath/lib/dep-selector-libgecode.rb -e 's@VENDORED_GECODE_DIR =.*@VENDORED_GECODE_DIR = "${gecode_3}"@'
'';
};
2018-03-13 10:16:03 +00:00
2018-02-19 22:56:17 +01:00
ethon = attrs: {
dontBuild = false;
postPatch = ''
substituteInPlace lib/ethon/curls/settings.rb \
2018-02-20 11:29:07 +01:00
--replace "libcurl" "${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary}"
2018-02-19 22:56:17 +01:00
'';
2018-03-13 10:16:03 +00:00
};
2015-11-14 21:17:29 -05:00
fog-dnsimple = attrs: {
postInstall = ''
cd $(cat $out/nix-support/gem-meta/install-path)
rm {$out/bin,bin,../../bin}/{setup,console}
'';
};
redis-rack = attrs: {
dontBuild = false;
preBuild = ''
exec 3>&1
output="$(gem build $gemspec | tee >(cat - >&3))"
exec 3>&-
sed -i 's!"rake".freeze!!' $gemspec
'';
};
ffi-rzmq-core = attrs: {
postInstall = ''
installPath=$(cat $out/nix-support/gem-meta/install-path)
sed -i $installPath/lib/ffi-rzmq-core/libzmq.rb -e 's@inside_gem =.*@inside_gem = "${zeromq}/lib"@'
'';
};
mini_magick = attrs: {
postInstall = ''
installPath=$(cat $out/nix-support/gem-meta/install-path)
echo -e "\nENV['PATH'] += ':${graphicsmagick}/bin'\n" >> $installPath/lib/mini_magick/configuration.rb
'';
};
2017-09-21 00:18:01 +02:00
do_sqlite3 = attrs: {
buildInputs = [ sqlite ];
};
2016-01-25 10:22:00 +00:00
eventmachine = attrs: {
buildInputs = [ openssl ];
};
2015-01-25 16:01:48 -05:00
ffi = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libffi ];
2015-01-25 16:01:48 -05:00
};
2017-10-31 13:33:52 +09:00
gdk_pixbuf2 = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ rake gdk_pixbuf ];
};
2015-01-21 20:33:19 -05:00
gpgme = attrs: {
buildInputs = [ gpgme ];
};
gio2 = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gtk2 pcre gobjectIntrospection ];
};
2017-05-18 09:47:45 +09:00
2017-09-03 15:38:28 +02:00
gitlab-markup = attrs: { meta.priority = 1; };
glib2 = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gtk2 pcre ];
};
2017-05-18 09:47:45 +09:00
gtk2 = attrs: {
nativeBuildInputs = [ pkgconfig ];
2018-03-13 10:16:03 +00:00
buildInputs = [ gtk2 pcre xorg.libpthreadstubs xorg.libXdmcp];
2017-05-18 09:47:45 +09:00
# CFLAGS must be set for this gem to detect gdkkeysyms.h correctly
CFLAGS = "-I${gtk2.dev}/include/gtk-2.0 -I/non-existent-path";
};
2017-10-31 13:33:52 +09:00
gobject-introspection = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gobjectIntrospection gtk2 pcre ];
};
2017-05-18 09:47:45 +09:00
2017-07-05 23:53:31 +02:00
grpc = attrs: {
2018-03-01 11:44:22 +01:00
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ openssl ];
2018-04-26 00:14:38 +02:00
hardeningDisable = [ "format" ];
2018-03-01 11:44:22 +01:00
NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-overflow" "-Wno-error=implicit-fallthrough" ];
2017-07-05 23:53:31 +02:00
};
2016-05-04 16:41:44 -06:00
hitimes = attrs: {
buildInputs =
stdenv.lib.optionals stdenv.isDarwin
[ darwin.apple_sdk.frameworks.CoreServices ];
};
2017-03-03 21:09:04 -05:00
# disable bundle install as it can't install anything in addition to what is
2017-03-03 23:05:37 -05:00
# specified in pkgs/applications/misc/jekyll/Gemfile anyway. Also do chmod_R
# to compensate for read-only files in site_template in nix store.
2017-03-03 21:09:04 -05:00
jekyll = attrs: {
postInstall = ''
installPath=$(cat $out/nix-support/gem-meta/install-path)
2017-03-03 23:05:37 -05:00
sed -i $installPath/lib/jekyll/commands/new.rb \
-e 's@Exec.run("bundle", "install"@Exec.run("true"@' \
-e 's@FileUtils.cp_r site_template + "/.", path@FileUtils.cp_r site_template + "/.", path; FileUtils.chmod_R "u+w", path@'
2017-03-03 21:09:04 -05:00
'';
};
2015-11-14 21:17:29 -05:00
# note that you need version >= v3.16.14.8,
# otherwise the gem will fail to link to the libv8 binary.
# see: https://github.com/cowboyd/libv8/pull/161
2014-10-28 04:16:14 +00:00
libv8 = attrs: {
buildInputs = [ which v8 python ];
2015-11-14 21:17:29 -05:00
buildFlags = [ "--with-system-v8=true" ];
2015-01-21 20:33:19 -05:00
};
2018-07-26 19:51:17 +02:00
libxml-ruby = attrs: {
buildFlags = [
"--with-xml2-lib=${libxml2.out}/lib"
"--with-xml2-include=${libxml2.dev}/include/libxml2"
];
};
2016-01-25 10:22:00 +00:00
msgpack = attrs: {
2018-08-17 23:53:33 +00:00
buildInputs = [ msgpack ];
2016-01-25 10:22:00 +00:00
};
2017-03-06 20:23:02 +01:00
2016-11-03 17:19:25 -07:00
mysql = attrs: {
2017-07-09 17:43:03 +02:00
buildInputs = [ mysql.connector-c zlib openssl ];
2016-11-03 17:19:25 -07:00
};
2016-01-25 10:22:00 +00:00
2015-01-25 16:01:48 -05:00
mysql2 = attrs: {
2017-07-09 17:43:03 +02:00
buildInputs = [ mysql.connector-c zlib openssl ];
2015-01-25 16:01:48 -05:00
};
2015-01-21 20:33:19 -05:00
ncursesw = attrs: {
buildInputs = [ ncurses ];
buildFlags = [
2015-10-05 20:32:54 +02:00
"--with-cflags=-I${ncurses.dev}/include"
2016-02-01 11:16:50 -06:00
"--with-ldflags=-L${ncurses.out}/lib"
2015-01-21 20:33:19 -05:00
];
2014-10-28 04:16:14 +00:00
};
nokogiri = attrs: {
buildFlags = [
"--use-system-libraries"
"--with-zlib-dir=${zlib.dev}"
"--with-xml2-lib=${libxml2.out}/lib"
"--with-xml2-include=${libxml2.dev}/include/libxml2"
"--with-xslt-lib=${libxslt.out}/lib"
"--with-xslt-include=${libxslt.dev}/include"
"--with-exslt-lib=${libxslt.out}/lib"
"--with-exslt-include=${libxslt.dev}/include"
2015-01-21 22:38:29 -05:00
] ++ lib.optional stdenv.isDarwin "--with-iconv-dir=${libiconv}";
2014-10-29 01:16:02 +00:00
};
2018-04-19 12:18:49 +02:00
oxidized = attrs: {
postInstall = ''
cd "$(cat "$out/nix-support/gem-meta/install-path")"
patch -p1 < ${../../../tools/admin/oxidized/temporary-x-series.patch}
'';
};
2017-05-18 09:47:45 +09:00
pango = attrs: {
nativeBuildInputs = [ pkgconfig ];
2018-03-13 10:16:03 +00:00
buildInputs = [ gtk2 xorg.libXdmcp pcre xorg.libpthreadstubs ];
2017-05-18 09:47:45 +09:00
};
2015-11-14 21:17:29 -05:00
patron = attrs: {
buildInputs = [ curl ];
};
2017-05-14 22:07:26 +01:00
pcaprub = attrs: {
buildInputs = [ libpcap ];
};
2014-10-29 01:16:02 +00:00
pg = attrs: {
buildFlags = [
"--with-pg-config=${postgresql}/bin/pg_config"
];
};
2015-11-14 21:17:29 -05:00
puma = attrs: {
buildInputs = [ openssl ];
};
2017-05-12 08:52:18 -04:00
rainbow = attrs: {
buildInputs = [ rainbow_rake ];
};
2016-06-16 19:33:12 +02:00
rbnacl = spec: {
postInstall = ''
sed -i $(cat $out/nix-support/gem-meta/install-path)/lib/rbnacl.rb -e "2a \
2017-09-12 15:36:41 -04:00
RBNACL_LIBSODIUM_GEM_LIB_PATH = '${libsodium.out}/lib/libsodium${stdenv.hostPlatform.extensions.sharedLibrary}'
2016-06-16 19:33:12 +02:00
"
'';
};
2017-08-06 16:27:54 +02:00
re2 = attrs: {
buildInputs = [ re2 ];
};
2014-10-29 01:16:02 +00:00
rmagick = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ imagemagick which ];
2014-10-29 01:16:02 +00:00
};
ruby-lxc = attrs: {
buildInputs = [ lxc ];
};
2015-10-16 04:20:38 +05:30
ruby-terminfo = attrs: {
buildInputs = [ ncurses ];
buildFlags = [
"--with-cflags=-I${ncurses.dev}/include"
"--with-ldflags=-L${ncurses.out}/lib"
];
};
2015-01-25 16:01:48 -05:00
rugged = attrs: {
2018-03-10 12:59:06 +01:00
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ cmake openssl libssh2 zlib ];
2018-03-10 12:59:06 +01:00
dontUseCmakeConfigure = true;
2015-01-25 16:01:48 -05:00
};
2018-10-11 21:04:29 +02:00
sassc = attrs: {
nativeBuildInputs = [ rake ];
};
scrypt = attrs:
if stdenv.isDarwin then {
dontBuild = false;
postPatch = ''
sed -i -e "s/-arch i386//" Rakefile ext/scrypt/Rakefile
'';
} else {};
sequel_pg = attrs: {
buildInputs = [ postgresql ];
};
2016-09-21 14:29:12 +02:00
snappy = attrs: {
buildInputs = [ args.snappy ];
};
2014-10-29 01:16:02 +00:00
sqlite3 = attrs: {
buildFlags = [
2015-10-13 22:30:30 +02:00
"--with-sqlite3-include=${sqlite.dev}/include"
"--with-sqlite3-lib=${sqlite.out}/lib"
2014-10-28 04:16:14 +00:00
];
};
2015-01-21 20:33:19 -05:00
sup = attrs: {
2015-11-14 21:17:29 -05:00
dontBuild = false;
2015-01-21 20:33:19 -05:00
# prevent sup from trying to dynamically install `xapian-ruby`.
postPatch = ''
cp ${./mkrf_conf_xapian.rb} ext/mkrf_conf_xapian.rb
substituteInPlace lib/sup/crypto.rb \
--replace 'which gpg2' \
2017-08-10 11:43:48 +02:00
'${which}/bin/which gpg'
2015-01-21 20:33:19 -05:00
'';
};
2017-05-14 22:13:55 +01:00
rb-readline = attrs: {
dontBuild = false;
postPatch = ''
substituteInPlace lib/rbreadline.rb \
--replace 'infocmp' '${ncurses.dev}/bin/infocmp'
'';
};
2015-10-21 19:48:56 +02:00
timfel-krb5-auth = attrs: {
buildInputs = [ kerberos ];
};
2018-06-27 03:56:18 -07:00
tiny_tds = attrs: {
nativeBuildInputs = [ pkgconfig openssl ];
};
2014-10-28 04:16:14 +00:00
therubyracer = attrs: {
buildFlags = [
2015-01-21 20:33:19 -05:00
"--with-v8-dir=${v8}"
"--with-v8-include=${v8}/include"
2014-10-28 04:16:14 +00:00
"--with-v8-lib=${v8}/lib"
];
};
2015-01-21 20:33:19 -05:00
2016-06-16 11:43:21 +02:00
typhoeus = attrs: {
buildInputs = [ curl ];
};
2017-04-06 16:14:45 +02:00
tzinfo = attrs: lib.optionalAttrs (lib.versionAtLeast attrs.version "1.0") {
2015-11-14 21:17:29 -05:00
dontBuild = false;
2015-01-24 17:59:01 -05:00
postPatch = ''
substituteInPlace lib/tzinfo/zoneinfo_data_source.rb \
2015-01-25 16:01:48 -05:00
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
2015-01-24 17:59:01 -05:00
'';
};
2017-03-06 20:23:02 +01:00
2016-11-21 13:41:05 +01:00
uuid4r = attrs: {
buildInputs = [ which libossp_uuid ];
};
2015-01-24 17:59:01 -05:00
2015-01-21 20:33:19 -05:00
xapian-ruby = attrs: {
# use the system xapian
2015-11-14 21:17:29 -05:00
dontBuild = false;
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ xapian_1_2_22 zlib ];
2015-01-21 20:33:19 -05:00
postPatch = ''
cp ${./xapian-Rakefile} Rakefile
'';
preInstall = ''
2017-03-06 20:23:02 +01:00
export XAPIAN_CONFIG=${xapian_1_2_22}/bin/xapian-config
2015-01-21 20:33:19 -05:00
'';
};
2016-04-17 22:36:40 +02:00
2018-07-26 19:50:42 +02:00
zookeeper = attrs: {
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.cctools ];
};
2014-10-28 04:16:14 +00:00
}