ruby.withPackages: init

Co-authored-by: Alyssa Ross <hi@alyssa.is>
This commit is contained in:
Michael Fellinger
2019-09-03 19:44:49 +00:00
committed by Alyssa Ross
co-authored by Alyssa Ross
parent 92665777fd
commit 1f49035aca
12 changed files with 3581 additions and 27 deletions
@@ -19,13 +19,13 @@
{ lib, fetchurl, writeScript, ruby, kerberos, libxml2, libxslt, python, stdenv, which
, libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick
, pkgconfig , ncurses, xapian_1_2_22, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
, pkgconfig , ncurses, xapian, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
, cmake, libssh2, openssl, mysql, darwin, git, perl, pcre, gecode_3, curl
, msgpack, qt59, libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, buildRubyGem
, cairo, re2, rake, gobject-introspection, gdk-pixbuf, zeromq, czmq, graphicsmagick, libcxx
, file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
, bison, flex, pango, python3, patchelf
, libselinux ? null, libsepol ? null
, bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk
, bundler, libsass, libselinux ? null, libsepol ? null
}@args:
let
@@ -42,8 +42,9 @@ in
{
atk = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gtk2 pcre rake ];
dependencies = attrs.dependencies ++ [ "gobject-introspection" ];
nativeBuildInputs = [ rake bundler pkgconfig ];
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook atk ];
};
bundler = attrs:
@@ -85,6 +86,38 @@ in
buildInputs = [ protobuf ];
};
cocoapods-acknowledgements = attrs: {
dependencies = attrs.dependencies ++ [ "cocoapods" ];
};
cocoapods-deploy = attrs: {
dependencies = [ "cocoapods" ];
};
cocoapods-disable-podfile-validations = attrs: {
dependencies = [ "cocoapods" ];
};
cocoapods-generate = attrs: {
dependencies = attrs.dependencies ++ [ "cocoapods" ];
};
cocoapods-git_url_rewriter = attrs: {
dependencies = [ "cocoapods" ];
};
cocoapods-keys = attrs: {
dependencies = attrs.dependencies ++ [ "cocoapods" ];
};
cocoapods-open = attrs: {
dependencies = [ "cocoapods" ];
};
cocoapods-try-release-fix = attrs: {
dependencies = [ "cocoapods" ];
};
curb = attrs: {
buildInputs = [ curl ];
};
@@ -113,12 +146,13 @@ in
'';
};
fog-dnsimple = attrs: {
postInstall = ''
cd $(cat $out/nix-support/gem-meta/install-path)
rm {$out/bin,bin,../../bin}/{setup,console}
'';
};
fog-dnsimple = attrs:
lib.optionalAttrs (lib.versionOlder attrs.version "1.0.1") {
postInstall = ''
cd $(cat $out/nix-support/gem-meta/install-path)
rm {$out/bin,bin,../../bin}/{setup,console}
'';
};
redis-rack = attrs: {
dontBuild = false;
@@ -158,8 +192,8 @@ in
};
gdk_pixbuf2 = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ rake gdk-pixbuf ];
nativeBuildInputs = [ pkgconfig bundler rake ];
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gdk-pixbuf ];
};
gpgme = attrs: {
@@ -179,8 +213,14 @@ in
};
gtk2 = attrs: {
nativeBuildInputs = [ pkgconfig ] ++ lib.optionals stdenv.isLinux [ utillinux libselinux libsepol ];
buildInputs = [
nativeBuildInputs = [
binutils pkgconfig
] ++ lib.optionals stdenv.isLinux [
utillinux libselinux libsepol
];
propagatedBuildInputs = [
atk
gdk-pixbuf
fribidi
gobject-introspection
gtk2
@@ -194,8 +234,8 @@ in
};
gobject-introspection = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gobject-introspection gtk2 pcre ];
nativeBuildInputs = [ pkgconfig pcre ];
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook glib ];
};
grpc = attrs: {
@@ -239,6 +279,10 @@ in
buildFlags = [ "--with-system-v8=true" ];
};
execjs = attrs: {
propagatedBuildInputs = [ v8 ];
};
libxml-ruby = attrs: {
buildFlags = [
"--with-xml2-lib=${libxml2.out}/lib"
@@ -333,16 +377,15 @@ in
};
pango = attrs: {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
nativeBuildInputs = [
pkgconfig
fribidi
gobject-introspection
gtk2
harfbuzz
pcre
xorg.libpthreadstubs
xorg.libXdmcp
];
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gtk2 ];
};
patron = attrs: {
@@ -380,7 +423,12 @@ in
"
'';
} else {
buildInputs = [ libsodium ];
dontBuild = false;
postPatch = ''
substituteInPlace lib/rbnacl/sodium.rb \
--replace 'ffi_lib ["sodium"' \
'ffi_lib ["${libsodium}/lib/libsodium${stdenv.hostPlatform.extensions.sharedLibrary}"'
'';
};
re2 = attrs: {
@@ -439,6 +487,12 @@ in
sassc = attrs: {
nativeBuildInputs = [ rake ];
dontBuild = false;
SASS_LIBSASS_PATH = "${libsass}";
postPatch = ''
substituteInPlace lib/sassc/native.rb \
--replace 'gem_root = spec.gem_dir' 'gem_root = File.join(__dir__, "../../")'
'';
};
scrypt = attrs:
@@ -471,7 +525,7 @@ in
sup = attrs: {
dontBuild = false;
# prevent sup from trying to dynamically install `xapian-ruby`.
nativeBuildInputs = [ rake ];
nativeBuildInputs = [ bundler rake ];
postPatch = ''
cp ${./mkrf_conf_xapian.rb} ext/mkrf_conf_xapian.rb
@@ -506,6 +560,7 @@ in
tiny_tds = attrs: {
nativeBuildInputs = [ pkgconfig openssl ];
buildInputs = [ freetds ];
};
therubyracer = attrs: {
@@ -541,13 +596,13 @@ in
xapian-ruby = attrs: {
# use the system xapian
dontBuild = false;
nativeBuildInputs = [ rake pkgconfig ];
buildInputs = [ xapian_1_2_22 zlib ];
nativeBuildInputs = [ rake pkgconfig bundler ];
buildInputs = [ xapian zlib ];
postPatch = ''
cp ${./xapian-Rakefile} Rakefile
'';
preInstall = ''
export XAPIAN_CONFIG=${xapian_1_2_22}/bin/xapian-config
export XAPIAN_CONFIG=${xapian}/bin/xapian-config
'';
};