mikutter: init at 3.5.7

fixes #25852
This commit is contained in:
midchildan 2017-05-18 09:47:45 +09:00 committed by Jörg Thalheim
parent bce69a0b1a
commit 2c393164c8
No known key found for this signature in database
GPG Key ID: CA4106B8D7CC79FA
13 changed files with 636 additions and 2 deletions

View File

@ -336,6 +336,7 @@
michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>";
michalrus = "Michal Rus <m@michalrus.com>";
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
midchildan = "midchildan <midchildan+nix@gmail.com>";
mikefaille = "Michaël Faille <michael@faille.io>";
miltador = "Vasiliy Solovey <miltador@yandex.ua>";
mimadrid = "Miguel Madrid <mimadrid@ucm.es>";

View File

@ -0,0 +1,37 @@
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.14'
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', '< 2.0'
gem 'twitter-text', '1.14.2'
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(File.dirname(__FILE__), "core/plugin/*/Gemfile"))){ |path|
eval File.open(path).read
}
end

View File

@ -0,0 +1,104 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.5.1)
public_suffix (~> 2.0, >= 2.0.2)
atk (3.1.1)
glib2 (= 3.1.1)
cairo (1.15.7)
native-package-installer
pkg-config (>= 1.1.5)
crack (0.4.3)
safe_yaml (~> 1.0.0)
delayer (0.0.2)
delayer-deferred (1.1.1)
delayer (>= 0.0.2, < 0.1)
gdk_pixbuf2 (3.1.1)
gio2 (= 3.1.1)
gettext (3.0.9)
locale (>= 2.0.5)
text
gio2 (3.1.1)
glib2 (= 3.1.1)
gobject-introspection (= 3.1.1)
glib2 (3.1.1)
pkg-config
gobject-introspection (3.1.1)
glib2 (= 3.1.1)
gtk2 (3.1.1)
atk (= 3.1.1)
gdk_pixbuf2 (= 3.1.1)
pango (= 3.1.1)
hashdiff (0.3.4)
httpclient (2.8.3)
instance_storage (1.0.0)
json_pure (1.8.6)
locale (2.1.2)
memoist (0.15.0)
metaclass (0.0.4)
mini_portile2 (2.1.0)
mocha (0.14.0)
metaclass (~> 0.0.1)
moneta (1.0.0)
native-package-installer (1.0.1)
nokogiri (1.7.2)
mini_portile2 (~> 2.1.0)
oauth (0.5.1)
pango (3.1.1)
cairo (>= 1.14.0)
glib2 (= 3.1.1)
pkg-config (1.2.0)
pluggaloid (1.1.1)
delayer
instance_storage (>= 1.0.0, < 2.0.0)
power_assert (1.0.2)
public_suffix (2.0.5)
rake (10.5.0)
ruby-hmac (0.4.0)
ruby-prof (0.16.2)
safe_yaml (1.0.4)
test-unit (3.2.3)
power_assert
text (1.3.1)
totoridipjp (0.1.0)
twitter-text (1.14.2)
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, < 2.0)
gettext (~> 3.0.1)
gtk2 (= 3.1.1)
httpclient
json_pure (~> 1.8)
memoist (~> 0.14)
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.2)
typed-array (~> 0.1)
watch (~> 0.1)
webmock (~> 1.17)
BUNDLED WITH
1.14.4

View File

@ -0,0 +1,3 @@
source 'https://rubygems.org'
gem 'gtk2', '3.1.1'

View File

@ -0,0 +1,5 @@
source 'https://rubygems.org'
gem 'nokogiri'
gem 'httpclient'
gem 'totoridipjp'

View File

@ -0,0 +1,5 @@
source 'https://rubygems.org'
group :default do
gem 'gettext', '~> 3.0.1'
end

View File

@ -0,0 +1,63 @@
{ stdenv, fetchurl
, bundlerEnv, ruby, pkgconfig
, alsaUtils, libnotify, which, wrapGAppsHook, gtk2
}:
stdenv.mkDerivation rec {
name = "mikutter-${version}";
version = "3.5.7";
src = fetchurl {
url = "https://mikutter.hachune.net/bin/mikutter.${version}.tar.gz";
sha256 = "1vh5ap92q869j69hmmbznailaflmdp0km4sqdv06cpq7v8pwm28w";
};
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;
};
}

View File

@ -0,0 +1,365 @@
{
addressable = {
dependencies = ["public_suffix"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1i8q32a4gr0zghxylpyy7jfqwxvwrivsxflg9mks6kx92frh75mh";
type = "gem";
};
version = "2.5.1";
};
atk = {
dependencies = ["glib2"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17x88g596s3pqfxplm5ia7anpcmd9kxs4nzmpf2h74bqwkbq2jrz";
type = "gem";
};
version = "3.1.1";
};
cairo = {
dependencies = ["native-package-installer" "pkg-config"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "115ksrswbs7pg7kdfi2w8bi9xxv9gzmfvcjj8qj4dxy8dkvp3k4d";
type = "gem";
};
version = "1.15.7";
};
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 = "1bw48i6qbxmjf2al4a0mw23nlkcrjrwsrdrabbwz62v8sdmdynpc";
type = "gem";
};
version = "1.1.1";
};
gdk_pixbuf2 = {
dependencies = ["gio2"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0x9fzsazfi6f3iq7zkqc0vjl6311876dvff0000vg41rajv3rhh1";
type = "gem";
};
version = "3.1.1";
};
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 = "0ki9yxp860xk5cf04hrgvh386n93bkr0pf4c0kl3fx6pnwr4w3v0";
type = "gem";
};
version = "3.1.1";
};
glib2 = {
dependencies = ["pkg-config"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "131jd26n2wwp2lrkyyfq5nb3qriasaym1zpygm991qzcaq79i444";
type = "gem";
};
version = "3.1.1";
};
gobject-introspection = {
dependencies = ["glib2"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fbi1pxyq73d674cwznya6kda38yjp4ahc2xgxi9shsdqmqcx3vs";
type = "gem";
};
version = "3.1.1";
};
gtk2 = {
dependencies = ["atk" "gdk_pixbuf2" "pango"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00cbfl306xkglk0cc758vsvv1saaa24gvwh0m2jnzwgfwxk7mc5w";
type = "gem";
};
version = "3.1.1";
};
hashdiff = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a";
type = "gem";
};
version = "0.3.4";
};
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 = "0yd3rd7bnbhn9n47qlhcii5z89liabdjhy3is3h6gq77gyfk4f5q";
type = "gem";
};
version = "0.15.0";
};
metaclass = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5";
type = "gem";
};
version = "0.0.4";
};
mini_portile2 = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb";
type = "gem";
};
version = "2.1.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 = "1zh5x87y9dr16ic7vif2c3rnpr5k5wfs6kihpy4dnb9s0mqyqhsj";
type = "gem";
};
version = "1.0.1";
};
nokogiri = {
dependencies = ["mini_portile2"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jd8q3pr5rkrxx1vklvhcqcgl8kmfv5c8ny36ni3z5mirw6cm70c";
type = "gem";
};
version = "1.7.2";
};
oauth = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1awhy8ddhixch44y68lail3h1d214rnl3y1yzk0msq5g4z2l62ky";
type = "gem";
};
version = "0.5.1";
};
pango = {
dependencies = ["cairo" "glib2"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18cc24lz4dmb7pavfspivbhbsypf40fhcbdzj8885zs0zr0dknby";
type = "gem";
};
version = "3.1.1";
};
pkg-config = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fklf2dnk354ahxma3iki5cx7b8yn9khby162pz17z6f1f3xk84g";
type = "gem";
};
version = "1.2.0";
};
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 = "168ac459nv45a2lhdf86zv35lv9nr569ny5nh3kfnglnxyzyx0kr";
type = "gem";
};
version = "1.0.2";
};
public_suffix = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
type = "gem";
};
version = "2.0.5";
};
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 = "1kngxp21sqbm7kv7wnxfqk99ik3wv1bjab519vcbj8xj30a5y4py";
type = "gem";
};
version = "3.2.3";
};
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 = "0lld6d8rzj1zrgs6b227mp675bn8ds56f1c9w9wvx321f6ibn6np";
type = "gem";
};
version = "1.14.2";
};
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";
};
}

View File

@ -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;

View File

@ -0,0 +1,17 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.stdenv.mkDerivation {
name = "mikutter-shell";
buildInputs = with pkgs; [
bundix
bundler
];
shellHook = ''
truncate --size 0 Gemfile.lock
bundle lock
bundle package --path=vendor/bundle --no-install
rm -rf vendor .bundle
bundix -d
'';
}

View File

@ -20,8 +20,8 @@
{ 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
, cmake, libssh2, openssl, mysql, darwin, git, perl, gecode_3, curl
, libmsgpack, qt48, libsodium, snappy, libossp_uuid, lxc, libpcap, buildRubyGem
, cmake, libssh2, openssl, mysql, darwin, git, perl, pcre, gecode_3, curl
, libmsgpack, qt48, libsodium, snappy, libossp_uuid, lxc, libpcap, xlibs, gtk2, buildRubyGem
}@args:
let
@ -38,6 +38,8 @@ let
in
{
atk = attrs: { buildInputs = [ gtk2 pcre pkgconfig ]; };
bundler = attrs:
let
templates = "${attrs.ruby.gemPath}/gems/${attrs.gemName}-${attrs.version}/lib/bundler/templates/";
@ -53,6 +55,10 @@ in
'';
};
cairo = attrs: {
buildInputs = [ gtk2 pcre pkgconfig xlibs.libpthreadstubs xlibs.libXdmcp];
};
capybara-webkit = attrs: {
buildInputs = [ qt48 ];
};
@ -81,6 +87,18 @@ in
buildInputs = [ gpgme ];
};
gio2 = attrs: { buildInputs = [ gtk2 pcre pkgconfig ]; };
glib2 = attrs: { buildInputs = [ gtk2 pcre pkgconfig ]; };
gtk2 = attrs: {
buildInputs = [ gtk2 pcre pkgconfig xlibs.libpthreadstubs xlibs.libXdmcp];
# CFLAGS must be set for this gem to detect gdkkeysyms.h correctly
CFLAGS = "-I${gtk2.dev}/include/gtk-2.0 -I/non-existent-path";
};
gobject-introspection = attrs: { buildInputs = [ gtk2 pcre pkgconfig ]; };
hitimes = attrs: {
buildInputs =
stdenv.lib.optionals stdenv.isDarwin
@ -140,6 +158,10 @@ in
] ++ lib.optional stdenv.isDarwin "--with-iconv-dir=${libiconv}";
};
pango = attrs: {
buildInputs = [ gtk2 xlibs.libXdmcp pcre pkgconfig xlibs.libpthreadstubs ];
};
patron = attrs: {
buildInputs = [ curl ];
};

View File

@ -3038,6 +3038,8 @@ with pkgs;
mgba = libsForQt5.callPackage ../misc/emulators/mgba { };
mikutter = callPackage ../applications/networking/instant-messengers/mikutter { };
mimeo = callPackage ../tools/misc/mimeo { };
mimetic = callPackage ../development/libraries/mimetic { };