about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/applications/networking/instant-messengers/mikutter
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/instant-messengers/mikutter')
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile40
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock109
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix374
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix18
10 files changed, 627 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile
new file mode 100644
index 000000000000..0eed9808ab4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile
@@ -0,0 +1,40 @@
+alias __source_distinct__ source
+def source(url)
+  @loaded ||= {}
+  unless @loaded[url]
+    @loaded[url] = true
+    __source_distinct__(url) end end
+
+source 'https://rubygems.org'
+
+group :default do
+  gem 'oauth', '>= 0.5.1'
+  gem 'json_pure', '~> 1.8'
+  gem 'addressable', '~> 2.3'
+  gem 'memoist', '>= 0.16', '< 0.17'
+  gem 'ruby-hmac', '~> 0.4'
+  gem 'typed-array', '~> 0.1'
+  gem 'delayer', '~> 0.0'
+  gem 'pluggaloid', '>= 1.1.1', '< 2.0'
+  gem 'delayer-deferred', '>= 1.0.4', '< 1.1'
+  gem 'twitter-text', '>= 1.14.6'
+end
+
+group :test do
+  gem 'test-unit', '~> 3.0'
+  gem 'rake', '~> 10.1'
+  gem 'watch', '~> 0.1'
+  gem 'mocha', '~> 0.14'
+  gem 'webmock', '~> 1.17'
+  gem 'ruby-prof'
+end
+
+
+group :plugin do
+  Dir.glob(File.expand_path(File.join(__dir__, 'core/plugin/*/Gemfile'))){ |path|
+    eval File.open(path).read
+  }
+  Dir.glob(File.join(File.expand_path(ENV['MIKUTTER_CONFROOT'] || '~/.mikutter'), 'plugin/*/Gemfile')){ |path|
+    eval File.open(path).read
+  }
+end
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock
new file mode 100644
index 000000000000..69530be4a446
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock
@@ -0,0 +1,109 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    atk (3.1.9)
+      glib2 (= 3.1.9)
+    cairo (1.15.10)
+      native-package-installer (>= 1.0.3)
+      pkg-config (>= 1.2.2)
+    cairo-gobject (3.1.9)
+      cairo
+      glib2 (= 3.1.9)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    delayer (0.0.2)
+    delayer-deferred (1.0.4)
+      delayer (>= 0.0.2, < 0.1)
+    gdk_pixbuf2 (3.1.9)
+      gio2 (= 3.1.9)
+    gettext (3.0.9)
+      locale (>= 2.0.5)
+      text
+    gio2 (3.1.9)
+      glib2 (= 3.1.9)
+      gobject-introspection (= 3.1.9)
+    glib2 (3.1.9)
+      native-package-installer (>= 1.0.3)
+      pkg-config (>= 1.2.2)
+    gobject-introspection (3.1.9)
+      glib2 (= 3.1.9)
+    gtk2 (3.1.9)
+      atk (= 3.1.9)
+      gdk_pixbuf2 (= 3.1.9)
+      pango (= 3.1.9)
+    hashdiff (0.3.7)
+    httpclient (2.8.3)
+    instance_storage (1.0.0)
+    json_pure (1.8.6)
+    locale (2.1.2)
+    memoist (0.16.0)
+    metaclass (0.0.4)
+    mini_portile2 (2.3.0)
+    mocha (0.14.0)
+      metaclass (~> 0.0.1)
+    moneta (1.0.0)
+    native-package-installer (1.0.4)
+    nokogiri (1.8.1)
+      mini_portile2 (~> 2.3.0)
+    oauth (0.5.3)
+    pango (3.1.9)
+      cairo (>= 1.14.0)
+      cairo-gobject (= 3.1.9)
+      gobject-introspection (= 3.1.9)
+    pkg-config (1.2.8)
+    pluggaloid (1.1.1)
+      delayer
+      instance_storage (>= 1.0.0, < 2.0.0)
+    power_assert (1.1.1)
+    public_suffix (3.0.0)
+    rake (10.5.0)
+    ruby-hmac (0.4.0)
+    ruby-prof (0.16.2)
+    safe_yaml (1.0.4)
+    test-unit (3.2.6)
+      power_assert
+    text (1.3.1)
+    totoridipjp (0.1.0)
+    twitter-text (1.14.7)
+      unf (~> 0.1.0)
+    typed-array (0.1.2)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.4)
+    watch (0.1.0)
+    webmock (1.24.6)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  addressable (~> 2.3)
+  delayer (~> 0.0)
+  delayer-deferred (>= 1.0.4, < 1.1)
+  gettext (~> 3.0.1)
+  gtk2 (= 3.1.9)
+  httpclient
+  json_pure (~> 1.8)
+  memoist (>= 0.16, < 0.17)
+  mocha (~> 0.14)
+  moneta
+  nokogiri
+  oauth (>= 0.5.1)
+  pluggaloid (>= 1.1.1, < 2.0)
+  rake (~> 10.1)
+  ruby-hmac (~> 0.4)
+  ruby-prof
+  test-unit (~> 3.0)
+  totoridipjp
+  twitter-text (>= 1.14.6)
+  typed-array (~> 0.1)
+  watch (~> 0.1)
+  webmock (~> 1.17)
+
+BUNDLED WITH
+   1.14.6
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile
new file mode 100644
index 000000000000..b7d19db37630
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'gtk2', '3.1.9'
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile
new file mode 100644
index 000000000000..f86005fef078
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile
@@ -0,0 +1 @@
+gem 'moneta'
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile
new file mode 100644
index 000000000000..ee2ecf52d42e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile
@@ -0,0 +1,5 @@
+source 'https://rubygems.org'
+
+gem 'nokogiri'
+gem 'httpclient'
+gem 'totoridipjp'
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile
new file mode 100644
index 000000000000..1625327f16dc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile
@@ -0,0 +1,5 @@
+source 'https://rubygems.org'
+
+group :default do
+  gem 'gettext', '~> 3.0.1'
+end
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
new file mode 100644
index 000000000000..3c267e612a68
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl
+, bundlerEnv, ruby
+, alsaUtils, libnotify, which, wrapGAppsHook, gtk2
+}:
+
+stdenv.mkDerivation rec {
+  name = "mikutter-${version}";
+  version = "3.5.13";
+
+  src = fetchurl {
+    url = "https://mikutter.hachune.net/bin/mikutter.${version}.tar.gz";
+    sha256 = "2e01cd6cfe0caad663a381e5263f6d8030f0fb7cd8d4f858d320166516c7c320";
+  };
+
+  env = bundlerEnv {
+    name = "mikutter-${version}-gems";
+    gemdir = ./.;
+
+    inherit ruby;
+  };
+
+  buildInputs = [ alsaUtils libnotify which gtk2 ruby ];
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  postUnpack = ''
+    rm -rf $sourceRoot/vendor
+  '';
+
+  installPhase = ''
+    install -v -D -m644 README $out/share/doc/mikutter/README
+    install -v -D -m644 LICENSE $out/share/doc/mikutter/LICENSE
+    rm -v README LICENSE
+
+    cp -rv . $out
+    mkdir $out/bin/
+    # hack wrapGAppsHook wants a file not a symlink
+    mv $out/mikutter.rb $out/bin/mikutter
+
+    gappsWrapperArgs+=(
+      --prefix PATH : "${ruby}/bin:${alsaUtils}/bin:${libnotify}/bin"
+      --prefix GEM_HOME : "${env}/${env.ruby.gemPath}"
+      --set DISABLE_BUNDLER_SETUP 1
+    )
+
+    mkdir -p $out/share/mikutter $out/share/applications
+    ln -sv $out/core/skin $out/share/mikutter/skin
+    substituteAll ${./mikutter.desktop} $out/share/applications/mikutter.desktop
+  '';
+
+  postFixup = ''
+    mv $out/bin/.mikutter-wrapped $out/mikutter.rb
+    substituteInPlace $out/bin/mikutter \
+      --replace "$out/bin/.mikutter-wrapped" "$out/mikutter.rb"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An extensible Twitter client";
+    homepage = https://mikutter.hachune.net;
+    maintainers = with maintainers; [ midchildan ];
+    platforms = ruby.meta.platforms;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix
new file mode 100644
index 000000000000..ef7091689b37
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix
@@ -0,0 +1,374 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  atk = {
+    dependencies = ["glib2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18l99gv6828rn59q8k6blxg146b025fj44klrcisffw6h9s9qqxm";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  cairo = {
+    dependencies = ["native-package-installer" "pkg-config"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f0n057cj6cjz7f38pwnflrkbwkl8pm3g9ssa51flyxr7lcpcw7c";
+      type = "gem";
+    };
+    version = "1.15.10";
+  };
+  cairo-gobject = {
+    dependencies = ["cairo" "glib2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qnsd9203qc6hl2i4hfzngr8v06rfk4vxfn6sbr8b4c1q4n0lq26";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  crack = {
+    dependencies = ["safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  delayer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "156vy4x1d2jgafkjaafzfz7g8ghl4p5zgbl859b8slp4wdxy3v1r";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  delayer-deferred = {
+    dependencies = ["delayer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rp2hpik8gs1kzwwq831jwj1iv5bhfwd3dmm9nvizy3nqpz1gvvb";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  gdk_pixbuf2 = {
+    dependencies = ["gio2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x7vna77qw26479dydzfs1sq7xmq31xfly2pn5fvh35wg0q4y07d";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  gettext = {
+    dependencies = ["locale" "text"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14vw306p46w2kyad3kp9vq56zw3ch6px30wkhl5x0qkx8d3ya3ir";
+      type = "gem";
+    };
+    version = "3.0.9";
+  };
+  gio2 = {
+    dependencies = ["glib2" "gobject-introspection"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dxyaxp32m19mynw20x39vkb50wa4jcxczwmbkq7pcg55j76wwhm";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  glib2 = {
+    dependencies = ["native-package-installer" "pkg-config"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y1ws895345a88wikqil1x87cpd7plmwfi635piam7il6vsb4h73";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  gobject-introspection = {
+    dependencies = ["glib2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04gla6z9y8g0d69wlwl0wr7pwyzqg132pfs1n9fq6fgkjb6l7sm3";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  gtk2 = {
+    dependencies = ["atk" "gdk_pixbuf2" "pango"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mshgsw2x0w5wfcp17qnsja50aafbjxy2g42kvk5sr19l0chkkkq";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  hashdiff = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yj5l2rw8i8jc725hbcpc4wks0qlaaimr3dpaqamfjkjkxl0hjp9";
+      type = "gem";
+    };
+    version = "0.3.7";
+  };
+  httpclient = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  instance_storage = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08nf5fhq9dckq9lmaklxydq0hrlfi7phk66gr3bggxg45zd687pl";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  json_pure = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vllrpm2hpsy5w1r7000mna2mhd7yfrmd8hi713lk0n9mv27bmam";
+      type = "gem";
+    };
+    version = "1.8.6";
+  };
+  locale = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  memoist = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  metaclass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  mocha = {
+    dependencies = ["metaclass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0id1x7g46fzy8f4jna20ys329ydaj3sad75qs9db2a6nd7f0zc2b";
+      type = "gem";
+    };
+    version = "0.14.0";
+  };
+  moneta = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pgwn6xnlh7vviy511mfgkv2j3sfihn5ic2zabmyrs2nh6kfa912";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  native-package-installer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0svj2sg7y7izl90qrvzd2fcb1rkq8bv3bd6lr9sh1ml18v3w882a";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "105xh2zkr8nsyfaj2izaisarpnkrrl9000y3nyflg9cbzrfxv021";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  oauth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a5cfg9pm3mxsmlk1slj652vza8nha2lpbpbmf3rrk0lh6zi4d0b";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  pango = {
+    dependencies = ["cairo" "cairo-gobject" "gobject-introspection"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0swld0s01djjlqrari0ib75703mb7qr4ydn00cqfhdr7xim66hjk";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  pkg-config = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "056qb6cwbw2l9riq376wazx4kwd67cdilyclpa6j38mfsswpmzws";
+      type = "gem";
+    };
+    version = "1.2.8";
+  };
+  pluggaloid = {
+    dependencies = ["delayer" "instance_storage"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p9s1bzw02jzjlpjpxsbfsy1cyfbqs10iqvhxqh4xgyh72nry9zr";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  power_assert = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h0s1clasynlbk3782801c61yx24pdv959fpw53g5yl8gxqj34iz";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0snaj1gxfib4ja1mvy3dzmi7am73i0mkqr0zkz045qv6509dhj5f";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b";
+      type = "gem";
+    };
+    version = "10.5.0";
+  };
+  ruby-hmac = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01zym41f8fqbmxfz8zv19627swi62ka3gp33bfbkc87v5k7mw954";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  ruby-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y13gdcdajfgrkx5rc9pvb7bwkyximwl5yrhq05gkmhflzdr7kag";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  test-unit = {
+    dependencies = ["power_assert"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gl5b2d6bysnm0a1zx54qn6iwd67f6gsjy0c7zb68ag0453rqcnv";
+      type = "gem";
+    };
+    version = "3.2.6";
+  };
+  text = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  totoridipjp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03ci9hbwc6xf4x0lkm6px4jgbmi37n8plsjhbf2ir5vka9f29lck";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  twitter-text = {
+    dependencies = ["unf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+      type = "gem";
+    };
+    version = "1.14.7";
+  };
+  typed-array = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qlv2rnkin9rwkgjx3k5qvc17m0m7jf5cdirw3wxbjnw5kga27w9";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14hr2dzqh33kqc0xchs8l05pf3kjcayvad4z1ip5rdjxrkfk8glb";
+      type = "gem";
+    };
+    version = "0.0.7.4";
+  };
+  watch = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02g4g6ynnldyjjzrh19r584gj4z6ksff7h0ajz5jdwhpp5y7cghx";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03vlr6axajz6c7xmlk0w1kvkxc92f8y2zp27wq1z6yk916ry25n5";
+      type = "gem";
+    };
+    version = "1.24.6";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop
new file mode 100644
index 000000000000..092f5f35cbf8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=mikutter
+Comment=Twitter Client
+Type=Application
+Exec=@out@/bin/mikutter
+Icon=@out@/core/skin/data/icon.png
+Terminal=false
+Categories=Network;
+Keywords=Twitter;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix
new file mode 100644
index 000000000000..bc83767af32a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix
@@ -0,0 +1,18 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+pkgs.stdenv.mkDerivation {
+  name = "mikutter-shell";
+  buildInputs = with pkgs; [
+    bundix
+    bundler
+  ];
+
+  shellHook = ''
+    export MIKUTTER_CONFROOT="/homeless-shelter"
+    truncate --size 0 Gemfile.lock
+    bundle lock
+    bundle package --path=vendor/bundle --no-install
+    rm -rf vendor .bundle
+    bundix -d
+  '';
+}