mikutter: 4.0.0 -> 4.1.4 (#119454)
This commit is contained in:
parent
ebcf1f92fe
commit
62806df678
@ -1,82 +1,160 @@
|
||||
{ lib, stdenv, fetchurl
|
||||
, bundlerEnv, ruby
|
||||
, alsaUtils, libnotify, which, wrapGAppsHook, gtk2, atk, gobject-introspection
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, bundlerEnv
|
||||
, alsaUtils
|
||||
, atk
|
||||
, copyDesktopItems
|
||||
, gobject-introspection
|
||||
, gtk2
|
||||
, ruby
|
||||
, libicns
|
||||
, libnotify
|
||||
, makeDesktopItem
|
||||
, which
|
||||
, wrapGAppsHook
|
||||
, writeText
|
||||
}:
|
||||
|
||||
# how to update:
|
||||
# find latest version at: http://mikutter.hachune.net/download#download
|
||||
# run these commands:
|
||||
#
|
||||
# wget http://mikutter.hachune.net/bin/mikutter.4.0.0.tar.gz
|
||||
# mkdir mikutter
|
||||
# cd mikutter
|
||||
# tar xvf ../mikutter.4.0.0.tar.gz
|
||||
# find . -not -name Gemfile -exec rm {} \;
|
||||
# find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \;
|
||||
# cd ..
|
||||
# mv mikutter/* .
|
||||
# rm mikutter.4.0.0.tar.gz
|
||||
# rm gemset.nix Gemfile.lock; nix-shell -p bundler bundix --run 'bundle lock && bundix'
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mikutter";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mikutter.hachune.net/bin/mikutter.${version}.tar.gz";
|
||||
sha256 = "0nx14vlp7p69m2vw0s6kbiyymsfq0r2jd4nm0v5c4xb9avkpgc8g";
|
||||
let
|
||||
# NOTE: $out may have different values depending on context
|
||||
mikutterPaths = rec {
|
||||
optPrefixDir = "$out/opt/mikutter";
|
||||
appPrefixDir = "$out/Applications/mikutter.app/Contents";
|
||||
appBinDir = "${appPrefixDir}/MacOS";
|
||||
appResourceDir = "${appPrefixDir}/Resources";
|
||||
iconPath = "${optPrefixDir}/core/skin/data/icon.png";
|
||||
};
|
||||
|
||||
buildInputs = [ alsaUtils libnotify which gtk2 ruby atk gobject-introspection ];
|
||||
nativeBuildInputs = [ wrapGAppsHook ];
|
||||
gems = bundlerEnv {
|
||||
name = "mikutter-gems"; # leave the version out to enable package reuse
|
||||
gemdir = ./deps;
|
||||
groups = [ "default" "plugin" ];
|
||||
inherit ruby;
|
||||
|
||||
unpackPhase = ''
|
||||
mkdir source
|
||||
cd source
|
||||
unpackFile $src
|
||||
# Avoid the following error:
|
||||
# > `<module:Moneta>': uninitialized constant Moneta::Builder (NameError)
|
||||
#
|
||||
# Related:
|
||||
# https://github.com/NixOS/nixpkgs/pull/76510
|
||||
# https://github.com/NixOS/nixpkgs/pull/76765
|
||||
# https://github.com/NixOS/nixpkgs/issues/83442
|
||||
# https://github.com/NixOS/nixpkgs/issues/106545
|
||||
copyGemFiles = true;
|
||||
};
|
||||
|
||||
mkDesktopItem = { description }:
|
||||
makeDesktopItem {
|
||||
name = "mikutter";
|
||||
desktopName = "mikutter";
|
||||
exec = "mikutter";
|
||||
icon = "mikutter";
|
||||
categories = "Network;";
|
||||
comment = description;
|
||||
extraDesktopEntries.Keywords = "Mastodon;";
|
||||
};
|
||||
|
||||
mkInfoPlist = { version }:
|
||||
writeText "Info.plist" (lib.generators.toPlist { } {
|
||||
CFBundleName = "mikutter";
|
||||
CFBundleDisplayName = "mikutter";
|
||||
CFBundleExecutable = "mikutter";
|
||||
CFBundleIconFile = "mikutter";
|
||||
CFBundleIdentifier = "net.hachune.mikutter";
|
||||
CFBundleInfoDictionaryVersion = "6.0";
|
||||
CFBundlePackageType = "APPL";
|
||||
CFBundleVersion = version;
|
||||
CFBundleShortVersionString = version;
|
||||
});
|
||||
|
||||
inherit (gems) wrappedRuby;
|
||||
in
|
||||
with mikutterPaths; stdenv.mkDerivation rec {
|
||||
pname = "mikutter";
|
||||
version = "4.1.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mikutter.hachune.net/bin/mikutter-${version}.tar.gz";
|
||||
sha256 = "05253nz4i1lmnq6czj48qdab2ny4vx2mznj6nsn2l1m2z6zqkwk3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ copyDesktopItems wrapGAppsHook ]
|
||||
++ lib.optionals stdenv.isDarwin [ libicns ];
|
||||
buildInputs = [
|
||||
atk
|
||||
gtk2
|
||||
gobject-introspection
|
||||
libnotify
|
||||
which # some plugins use it at runtime
|
||||
wrappedRuby
|
||||
] ++ lib.optionals stdenv.isLinux [ alsaUtils ];
|
||||
|
||||
scriptPath = lib.makeBinPath (
|
||||
[ wrappedRuby libnotify which ]
|
||||
++ lib.optionals stdenv.isLinux [ alsaUtils ]
|
||||
);
|
||||
|
||||
postUnpack = ''
|
||||
rm -rf vendor
|
||||
'';
|
||||
|
||||
installPhase = let
|
||||
env = bundlerEnv {
|
||||
name = "mikutter-${version}-gems";
|
||||
gemdir = ./.;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
inherit ruby;
|
||||
};
|
||||
in ''
|
||||
install -v -D -m644 README $out/share/doc/mikutter/README
|
||||
install -v -D -m644 LICENSE $out/share/doc/mikutter/LICENSE
|
||||
rm -v README LICENSE
|
||||
mkdir -p $out/bin ${optPrefixDir}
|
||||
|
||||
cp -rv . $out
|
||||
mkdir $out/bin/
|
||||
# hack wrapGAppsHook wants a file not a symlink
|
||||
mv $out/mikutter.rb $out/bin/mikutter
|
||||
install -Dm644 README $out/share/doc/mikutter/README
|
||||
install -Dm644 LICENSE $out/share/doc/mikutter/LICENSE
|
||||
rm -r README LICENSE deployment
|
||||
|
||||
gappsWrapperArgs+=(
|
||||
--prefix PATH : "${ruby}/bin:${alsaUtils}/bin:${libnotify}/bin"
|
||||
--prefix GEM_HOME : "${env}/${env.ruby.gemPath}"
|
||||
cp -r . ${optPrefixDir}
|
||||
|
||||
gappsWrapperArgsHook # FIXME: currently runs at preFixup
|
||||
wrapGApp ${optPrefixDir}/mikutter.rb \
|
||||
--prefix PATH : "${scriptPath}" \
|
||||
--set DISABLE_BUNDLER_SETUP 1
|
||||
)
|
||||
# --prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules"
|
||||
mv ${optPrefixDir}/mikutter.rb $out/bin/mikutter
|
||||
|
||||
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
|
||||
install -Dm644 ${iconPath} $out/share/icons/hicolor/256x256/apps/mikutter.png
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
mv $out/bin/.mikutter-wrapped $out/mikutter.rb
|
||||
substituteInPlace $out/bin/mikutter \
|
||||
--replace "$out/bin/.mikutter-wrapped" "$out/mikutter.rb"
|
||||
postInstall =
|
||||
let
|
||||
infoPlist = mkInfoPlist { inherit version; };
|
||||
in
|
||||
lib.optionalString stdenv.isDarwin ''
|
||||
mkdir -p ${appBinDir} ${appResourceDir}
|
||||
install -Dm644 ${infoPlist} ${appPrefixDir}/Info.plist
|
||||
ln -s $out/bin/mikutter ${appBinDir}/mikutter
|
||||
png2icns ${appResourceDir}/mikutter.icns ${iconPath}
|
||||
'';
|
||||
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
|
||||
testDir="$(mktemp -d)"
|
||||
install -Dm644 ${./test_plugin.rb} "$testDir/plugin/test_plugin/test_plugin.rb"
|
||||
|
||||
$out/bin/mikutter --confroot="$testDir" --plugin=test_plugin --debug
|
||||
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(mkDesktopItem { inherit (meta) description; })
|
||||
];
|
||||
|
||||
doInstallCheck = true;
|
||||
dontWrapGApps = true; # the target is placed outside of bin/
|
||||
|
||||
passthru.updateScript = [ ./update.sh version (toString ./.) ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An extensible Twitter client";
|
||||
description = "An extensible Mastodon client";
|
||||
homepage = "https://mikutter.hachune.net";
|
||||
platforms = ruby.meta.platforms;
|
||||
license = licenses.mit;
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
@ -11,12 +11,12 @@ ruby '>= 2.5.0'
|
||||
|
||||
group :default do
|
||||
gem 'addressable','>= 2.7.0', '< 2.8'
|
||||
gem 'delayer','>= 1.0.1', '< 1.1'
|
||||
gem 'delayer-deferred','>= 2.1.1', '< 2.2'
|
||||
gem 'diva','>= 1.0.1', '< 1.1'
|
||||
gem 'delayer','>= 1.1.2', '< 2.0'
|
||||
gem 'delayer-deferred','>= 2.2.0', '< 3.0'
|
||||
gem 'diva','>= 1.0.2', '< 2.0'
|
||||
gem 'memoist','>= 0.16.2', '< 0.17'
|
||||
gem 'oauth','>= 0.5.4'
|
||||
gem 'pluggaloid','>= 1.2.0', '< 1.3'
|
||||
gem 'pluggaloid','>= 1.5.0', '< 2.0'
|
||||
gem 'typed-array','>= 0.1.2', '< 0.2'
|
||||
end
|
||||
|
@ -5,22 +5,23 @@ GEM
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
atk (3.4.1)
|
||||
glib2 (= 3.4.1)
|
||||
cairo (1.16.4)
|
||||
cairo (1.17.5)
|
||||
native-package-installer (>= 1.0.3)
|
||||
pkg-config (>= 1.2.2)
|
||||
red-colors
|
||||
cairo-gobject (3.4.1)
|
||||
cairo (>= 1.16.2)
|
||||
glib2 (= 3.4.1)
|
||||
crack (0.4.3)
|
||||
safe_yaml (~> 1.0.0)
|
||||
delayer (1.0.1)
|
||||
delayer-deferred (2.1.1)
|
||||
delayer (>= 1.0, < 2.0)
|
||||
diva (1.0.1)
|
||||
crack (0.4.5)
|
||||
rexml
|
||||
delayer (1.2.0)
|
||||
delayer-deferred (2.2.0)
|
||||
delayer (>= 1.1.2, < 2.0)
|
||||
diva (1.0.2)
|
||||
addressable (>= 2.5.2, < 2.8)
|
||||
gdk_pixbuf2 (3.4.1)
|
||||
gio2 (= 3.4.1)
|
||||
gettext (3.2.9)
|
||||
gettext (3.3.7)
|
||||
locale (>= 2.0.5)
|
||||
text (>= 1.3.0)
|
||||
gio2 (3.4.1)
|
||||
@ -34,40 +35,38 @@ GEM
|
||||
atk (= 3.4.1)
|
||||
gdk_pixbuf2 (= 3.4.1)
|
||||
pango (= 3.4.1)
|
||||
hashdiff (1.0.0)
|
||||
hashdiff (1.0.1)
|
||||
httpclient (2.8.3)
|
||||
instance_storage (1.0.0)
|
||||
io-console (0.5.3)
|
||||
irb (1.2.1)
|
||||
reline (>= 0.0.1)
|
||||
locale (2.1.2)
|
||||
locale (2.1.3)
|
||||
memoist (0.16.2)
|
||||
mini_portile2 (2.4.0)
|
||||
mocha (1.11.1)
|
||||
moneta (1.2.1)
|
||||
native-package-installer (1.0.9)
|
||||
nokogiri (1.10.7)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
oauth (0.5.4)
|
||||
mini_portile2 (2.5.0)
|
||||
mocha (1.12.0)
|
||||
moneta (1.4.1)
|
||||
native-package-installer (1.1.1)
|
||||
nokogiri (1.11.3)
|
||||
mini_portile2 (~> 2.5.0)
|
||||
racc (~> 1.4)
|
||||
oauth (0.5.6)
|
||||
pango (3.4.1)
|
||||
cairo-gobject (= 3.4.1)
|
||||
gobject-introspection (= 3.4.1)
|
||||
pkg-config (1.4.0)
|
||||
pluggaloid (1.2.0)
|
||||
delayer (>= 1.0.0, < 2.0)
|
||||
pkg-config (1.4.6)
|
||||
pluggaloid (1.5.0)
|
||||
delayer (>= 1.1.0, < 2.0)
|
||||
instance_storage (>= 1.0.0, < 2.0.0)
|
||||
power_assert (1.1.5)
|
||||
public_suffix (4.0.1)
|
||||
rake (13.0.1)
|
||||
reline (0.1.2)
|
||||
io-console (~> 0.5)
|
||||
ruby-prof (1.1.0)
|
||||
safe_yaml (1.0.5)
|
||||
test-unit (3.3.4)
|
||||
power_assert (2.0.0)
|
||||
public_suffix (4.0.6)
|
||||
racc (1.5.2)
|
||||
rake (13.0.3)
|
||||
red-colors (0.1.1)
|
||||
rexml (3.2.5)
|
||||
ruby-prof (1.4.3)
|
||||
test-unit (3.4.0)
|
||||
power_assert
|
||||
text (1.3.1)
|
||||
typed-array (0.1.2)
|
||||
webmock (3.7.6)
|
||||
webmock (3.12.2)
|
||||
addressable (>= 2.3.6)
|
||||
crack (>= 0.3.2)
|
||||
hashdiff (>= 0.4.0, < 2.0.0)
|
||||
@ -77,19 +76,18 @@ PLATFORMS
|
||||
|
||||
DEPENDENCIES
|
||||
addressable (>= 2.7.0, < 2.8)
|
||||
delayer (>= 1.0.1, < 1.1)
|
||||
delayer-deferred (>= 2.1.1, < 2.2)
|
||||
diva (>= 1.0.1, < 1.1)
|
||||
gettext (>= 3.2.9, < 3.3)
|
||||
delayer (>= 1.1.2, < 2.0)
|
||||
delayer-deferred (>= 2.2.0, < 3.0)
|
||||
diva (>= 1.0.2, < 2.0)
|
||||
gettext (>= 3.3.5, < 3.4)
|
||||
gtk2 (= 3.4.1)
|
||||
httpclient
|
||||
irb (>= 1.2.0, < 1.3)
|
||||
memoist (>= 0.16.2, < 0.17)
|
||||
mocha (>= 1.11.1)
|
||||
moneta
|
||||
nokogiri
|
||||
oauth (>= 0.5.4)
|
||||
pluggaloid (>= 1.2.0, < 1.3)
|
||||
pluggaloid (>= 1.5.0, < 2.0)
|
||||
rake (>= 13.0.1)
|
||||
ruby-prof (>= 1.1.0)
|
||||
test-unit (>= 3.3.4, < 4.0)
|
||||
@ -97,7 +95,7 @@ DEPENDENCIES
|
||||
webmock (>= 3.7.6)
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.7.0p0
|
||||
ruby 2.6.6p146
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.2
|
||||
2.1.4
|
@ -22,15 +22,15 @@
|
||||
version = "3.4.1";
|
||||
};
|
||||
cairo = {
|
||||
dependencies = ["native-package-installer" "pkg-config"];
|
||||
dependencies = ["native-package-installer" "pkg-config" "red-colors"];
|
||||
groups = ["default" "plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0yvv2lcbsybzbw1nrmfivmln23da4rndrs3av6ymjh0x3ww5h7p8";
|
||||
sha256 = "0vbj9szp2xbnxqan8hppip8vm9fxpcmpx745y5fvg2scdh9f0p7s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.16.4";
|
||||
version = "1.17.5";
|
||||
};
|
||||
cairo-gobject = {
|
||||
dependencies = ["cairo" "glib2"];
|
||||
@ -44,25 +44,25 @@
|
||||
version = "3.4.1";
|
||||
};
|
||||
crack = {
|
||||
dependencies = ["safe_yaml"];
|
||||
dependencies = ["rexml"];
|
||||
groups = ["default" "test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
|
||||
sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.3";
|
||||
version = "0.4.5";
|
||||
};
|
||||
delayer = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "09p4rkh3dpdm1mhq721m4d6zvxqqp44kg7069s8l7kmaf7nv2nb3";
|
||||
sha256 = "0iqf4i18i8rk3x7qgvkhbiqskf0xzdf733fjimrq6xkag2mq60bl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
version = "1.2.0";
|
||||
};
|
||||
delayer-deferred = {
|
||||
dependencies = ["delayer"];
|
||||
@ -70,10 +70,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1mbdxn1hskjqf3zlj4waxl71ccvbj6lk81c99769paxw4fajwrgx";
|
||||
sha256 = "0i2das3ncssacpqdgaf4as77vrxm7jfiizaja884fqv4rzv6s2sv";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.1";
|
||||
version = "2.2.0";
|
||||
};
|
||||
diva = {
|
||||
dependencies = ["addressable"];
|
||||
@ -81,10 +81,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "182gws1zihhpl7r3m8jsf29maqg9xdhj46s9lidbldar8clpl23h";
|
||||
sha256 = "05wl4wg57vvng4nrp4lzjq148v908xzq092kq93phwvyxs7jnw2g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
version = "1.0.2";
|
||||
};
|
||||
gdk_pixbuf2 = {
|
||||
dependencies = ["gio2"];
|
||||
@ -103,10 +103,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
|
||||
sha256 = "1fqlwq7i8ck1fjyhn19q3skvgrbz44q7gq51mlr0qym5rkj5f6rn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.9";
|
||||
version = "3.3.7";
|
||||
};
|
||||
gio2 = {
|
||||
dependencies = ["gobject-introspection"];
|
||||
@ -157,10 +157,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "18jqpbvidrlnq3xf0hkdbs00607jgz35lry6gjw4bcxgh52am2mk";
|
||||
sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
version = "1.0.1";
|
||||
};
|
||||
httpclient = {
|
||||
groups = ["plugin"];
|
||||
@ -182,36 +182,15 @@
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
io-console = {
|
||||
groups = ["default" "plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0srn91ly4cc5qvyj3r87sc7v8dnm52qj1hczzxmysib6ffparngd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.5.3";
|
||||
};
|
||||
irb = {
|
||||
dependencies = ["reline"];
|
||||
groups = ["default" "plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1r1y8i46qd5izdszzzn5jxvwvq00m89rk0hm8cs8f21p7nlwmh5w";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.1";
|
||||
};
|
||||
locale = {
|
||||
groups = ["default" "plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
|
||||
sha256 = "0997465kxvpxm92fiwc2b16l49mngk7b68g5k35ify0m3q0yxpdn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.2";
|
||||
version = "2.1.3";
|
||||
};
|
||||
memoist = {
|
||||
groups = ["default"];
|
||||
@ -228,61 +207,61 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
|
||||
sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.4.0";
|
||||
version = "2.5.0";
|
||||
};
|
||||
mocha = {
|
||||
groups = ["test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "06i2q5qjr9mvjgjc8w41pdf3qalw340y33wjvzc0rp4a1cbbb7pp";
|
||||
sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.11.1";
|
||||
version = "1.12.0";
|
||||
};
|
||||
moneta = {
|
||||
groups = ["plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0q7fskfdc0h5dhl8aamg3ypybd6cyl4x0prh4803gj7hxr17jfm1";
|
||||
sha256 = "0z25b4yysvnf2hi9jxnsiv3fvnicnzr2m70ci231av5093jfknc6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.1";
|
||||
version = "1.4.1";
|
||||
};
|
||||
native-package-installer = {
|
||||
groups = ["default" "plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0piclgf6pw7hr10x57x0hn675djyna4sb3xc97yb9vh66wkx1fl0";
|
||||
sha256 = "1ww1mq41q7rda975byjmq5dk8k13v8dawvm33370pbkrymd8syp8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.9";
|
||||
version = "1.1.1";
|
||||
};
|
||||
nokogiri = {
|
||||
dependencies = ["mini_portile2"];
|
||||
dependencies = ["mini_portile2" "racc"];
|
||||
groups = ["plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln";
|
||||
sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.10.7";
|
||||
version = "1.11.3";
|
||||
};
|
||||
oauth = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
|
||||
sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.5.4";
|
||||
version = "0.5.6";
|
||||
};
|
||||
pango = {
|
||||
dependencies = ["cairo-gobject" "gobject-introspection"];
|
||||
@ -300,10 +279,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1cxdpr2wlz9b587avlq04a1da5fz1vdw8jvr6lx23mcq7mqh2xcx";
|
||||
sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.0";
|
||||
version = "1.4.6";
|
||||
};
|
||||
pluggaloid = {
|
||||
dependencies = ["delayer" "instance_storage"];
|
||||
@ -311,71 +290,80 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1gv0rjjdic8c41gfr3kyyphvf0fmv5rzcf6qd57zjdfcn6fvi3hh";
|
||||
sha256 = "0m3f940lf1bg01jin22by7hg9hs43y995isgcyqb6vbvlv51zj11";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
version = "1.5.0";
|
||||
};
|
||||
power_assert = {
|
||||
groups = ["default" "test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s";
|
||||
sha256 = "172qfmzwxdf82bmwgcb13hnz9i3p6i2s2nijxnx6r63kn3drjppr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.5";
|
||||
version = "2.0.0";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = ["default" "test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
|
||||
sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.1";
|
||||
version = "4.0.6";
|
||||
};
|
||||
racc = {
|
||||
groups = ["default" "plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.5.2";
|
||||
};
|
||||
rake = {
|
||||
groups = ["test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
|
||||
sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
|
||||
type = "gem";
|
||||
};
|
||||
version = "13.0.1";
|
||||
version = "13.0.3";
|
||||
};
|
||||
reline = {
|
||||
dependencies = ["io-console"];
|
||||
red-colors = {
|
||||
groups = ["default" "plugin"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0908ijrngc3wkn5iny7d0kxkp74w6ixk2nwzzngplplfla1vkp8x";
|
||||
sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.2";
|
||||
version = "0.1.1";
|
||||
};
|
||||
rexml = {
|
||||
groups = ["default" "test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.5";
|
||||
};
|
||||
ruby-prof = {
|
||||
groups = ["test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "18ga5f4h1fnwn0xh910kpnw4cg3lq3jqljd3h16bdw9pgc5ff7dn";
|
||||
sha256 = "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
safe_yaml = {
|
||||
groups = ["default" "test"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.5";
|
||||
version = "1.4.3";
|
||||
};
|
||||
test-unit = {
|
||||
dependencies = ["power_assert"];
|
||||
@ -383,10 +371,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0mrkpb6wz0cs1740kaca240k4ymmkbvb2v5xaxsy6vynqw8n0g6z";
|
||||
sha256 = "1h0c323zfn4hdida4g58h8wnlh4kax438gyxlw20dd78kcp01i8m";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.3.4";
|
||||
version = "3.4.0";
|
||||
};
|
||||
text = {
|
||||
groups = ["default" "plugin"];
|
||||
@ -414,9 +402,9 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19xvs7gdf8r75bmyb17w9g367qxzqnlrmbdda1y36cn1vrlnf2l8";
|
||||
sha256 = "038igpmkpmn0nw0k7s4db8x88af1nwcy7wzh9m9c9q4p74h7rii0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.7.6";
|
||||
version = "3.12.2";
|
||||
};
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
group :default do
|
||||
gem 'gettext', '>= 3.3.5', '< 3.4'
|
||||
end
|
@ -1,9 +0,0 @@
|
||||
[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;
|
@ -1,6 +0,0 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
group :default do
|
||||
gem 'gettext', '>= 3.2.9', '< 3.3'
|
||||
gem 'irb', '>= 1.2.0', '< 1.3'
|
||||
end
|
@ -0,0 +1,10 @@
|
||||
# Tests mikutter's event system.
|
||||
|
||||
Plugin.create(:test_plugin) do
|
||||
require 'logger'
|
||||
Delayer.new do
|
||||
log = Logger.new(STDOUT)
|
||||
log.info("loaded test_plugin")
|
||||
exit
|
||||
end
|
||||
end
|
51
pkgs/applications/networking/instant-messengers/mikutter/update.sh
Executable file
51
pkgs/applications/networking/instant-messengers/mikutter/update.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p bundler bundix curl jq common-updater-scripts
|
||||
# shellcheck shell=bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
main() {
|
||||
local currentVer="$1"
|
||||
local scriptDir="$2"
|
||||
local latestVer
|
||||
local srcDir
|
||||
|
||||
if [[ -z "$UPDATE_NIX_ATTR_PATH" ]]; then
|
||||
echo "[ERROR] Please run the following instead:" >&2
|
||||
echo >&2
|
||||
echo " % nix-shell maintainers/scripts/update.nix --argstr path mikutter" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
latestVer="$(queryLatestVersion)"
|
||||
if [[ "$currentVer" == "$latestVer" ]]; then
|
||||
echo "[INFO] mikutter is already up to date" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
update-source-version "$UPDATE_NIX_ATTR_PATH" "$latestVer"
|
||||
|
||||
cd "$scriptDir"
|
||||
|
||||
rm -rf deps
|
||||
mkdir deps
|
||||
cd deps
|
||||
|
||||
srcDir="$(nix-build ../../../../../.. --no-out-link -A mikutter.src)"
|
||||
tar xvf "$srcDir" --strip-components=1
|
||||
find . -not -name Gemfile -exec rm {} \;
|
||||
find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \; || true
|
||||
|
||||
bundle lock
|
||||
bundix
|
||||
}
|
||||
|
||||
queryLatestVersion() {
|
||||
curl -sS 'https://mikutter.hachune.net/download.json?count=1' \
|
||||
| jq -r '.[].version_string' \
|
||||
| head -n1
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
# vim:set ft=bash:
|
@ -20,12 +20,13 @@
|
||||
{ lib, fetchurl, writeScript, ruby, libkrb5, libxml2, libxslt, python, stdenv, which
|
||||
, libiconv, postgresql, v8, clang, sqlite, zlib, imagemagick, lasem
|
||||
, pkg-config , ncurses, xapian, gpgme, util-linux, tzdata, icu, libffi
|
||||
, cmake, libssh2, openssl, libmysqlclient, darwin, git, perl, pcre, gecode_3, curl
|
||||
, cmake, libssh2, openssl, libmysqlclient, git, perl, pcre, gecode_3, curl
|
||||
, msgpack, 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, binutils, freetds, wrapGAppsHook, atk
|
||||
, bundler, libsass, libselinux ? null, libsepol ? null, shared-mime-info
|
||||
, bundler, libsass, libselinux, libsepol, shared-mime-info, libthai, libdatrie
|
||||
, CoreServices, DarwinTools, cctools
|
||||
}@args:
|
||||
|
||||
let
|
||||
@ -41,7 +42,8 @@ in
|
||||
{
|
||||
atk = attrs: {
|
||||
dependencies = attrs.dependencies ++ [ "gobject-introspection" ];
|
||||
nativeBuildInputs = [ rake bundler pkg-config ];
|
||||
nativeBuildInputs = [ rake bundler pkg-config ]
|
||||
++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook atk ];
|
||||
};
|
||||
|
||||
@ -61,12 +63,14 @@ in
|
||||
};
|
||||
|
||||
cairo = attrs: {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config ]
|
||||
++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
buildInputs = [ gtk2 pcre xorg.libpthreadstubs xorg.libXdmcp];
|
||||
};
|
||||
|
||||
cairo-gobject = attrs: {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config ]
|
||||
++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
buildInputs = [ cairo pcre xorg.libpthreadstubs xorg.libXdmcp ];
|
||||
};
|
||||
|
||||
@ -189,7 +193,8 @@ in
|
||||
};
|
||||
|
||||
gdk_pixbuf2 = attrs: {
|
||||
nativeBuildInputs = [ pkg-config bundler rake ];
|
||||
nativeBuildInputs = [ pkg-config bundler rake ]
|
||||
++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gdk-pixbuf ];
|
||||
};
|
||||
|
||||
@ -199,7 +204,8 @@ in
|
||||
};
|
||||
|
||||
gio2 = attrs: {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config ]
|
||||
++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
buildInputs = [ gtk2 pcre gobject-introspection ] ++ lib.optionals stdenv.isLinux [ util-linux libselinux libsepol ];
|
||||
};
|
||||
|
||||
@ -235,7 +241,8 @@ in
|
||||
};
|
||||
|
||||
glib2 = attrs: {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config ]
|
||||
++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
buildInputs = [ gtk2 pcre ];
|
||||
};
|
||||
|
||||
@ -244,7 +251,7 @@ in
|
||||
binutils pkg-config
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
util-linux libselinux libsepol
|
||||
];
|
||||
] ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
propagatedBuildInputs = [
|
||||
atk
|
||||
gdk-pixbuf
|
||||
@ -252,16 +259,18 @@ in
|
||||
gobject-introspection
|
||||
gtk2
|
||||
harfbuzz
|
||||
libdatrie
|
||||
libthai
|
||||
pcre
|
||||
xorg.libpthreadstubs
|
||||
xorg.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";
|
||||
dontStrip = stdenv.isDarwin;
|
||||
};
|
||||
|
||||
gobject-introspection = attrs: {
|
||||
nativeBuildInputs = [ pkg-config pcre ];
|
||||
nativeBuildInputs = [ pkg-config pcre ]
|
||||
++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook glib ];
|
||||
};
|
||||
|
||||
@ -287,9 +296,7 @@ in
|
||||
};
|
||||
|
||||
hitimes = attrs: {
|
||||
buildInputs =
|
||||
lib.optionals stdenv.isDarwin
|
||||
[ darwin.apple_sdk.frameworks.CoreServices ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
|
||||
};
|
||||
|
||||
iconv = attrs: {
|
||||
@ -453,7 +460,9 @@ in
|
||||
pcre
|
||||
xorg.libpthreadstubs
|
||||
xorg.libXdmcp
|
||||
];
|
||||
] ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
|
||||
buildInputs = [ libdatrie libthai ]
|
||||
++ lib.optionals stdenv.isLinux [ libselinux libsepol util-linux ];
|
||||
propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gtk2 ];
|
||||
};
|
||||
|
||||
@ -661,7 +670,7 @@ in
|
||||
};
|
||||
|
||||
zookeeper = attrs: {
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ darwin.cctools ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ cctools ];
|
||||
dontBuild = false;
|
||||
postPatch = ''
|
||||
sed -i ext/extconf.rb -e "4a \
|
||||
|
@ -11986,7 +11986,10 @@ in
|
||||
dust = callPackage ../development/interpreters/pixie/dust.nix { };
|
||||
|
||||
buildRubyGem = callPackage ../development/ruby-modules/gem { };
|
||||
defaultGemConfig = callPackage ../development/ruby-modules/gem-config { };
|
||||
defaultGemConfig = callPackage ../development/ruby-modules/gem-config {
|
||||
inherit (darwin) DarwinTools cctools;
|
||||
inherit (darwin.apple_sdk.frameworks) CoreServices;
|
||||
};
|
||||
bundix = callPackage ../development/ruby-modules/bundix { };
|
||||
bundler = callPackage ../development/ruby-modules/bundler { };
|
||||
bundlerEnv = callPackage ../development/ruby-modules/bundler-env { };
|
||||
|
Loading…
Reference in New Issue
Block a user