Merge branch 'master' into staging-next
This commit is contained in:
commit
6b34489f81
@ -7241,6 +7241,16 @@
|
||||
github = "obsidian-systems-maintenance";
|
||||
githubId = 80847921;
|
||||
};
|
||||
obfusk = {
|
||||
email = "flx@obfusk.net";
|
||||
github = "obfusk";
|
||||
githubId = 1260687;
|
||||
name = "Felix C. Stegerman";
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0x2F9607F09B360F2D";
|
||||
fingerprint = "D5E4 A51D F8D2 55B9 FAC6 A9BB 2F96 07F0 9B36 0F2D";
|
||||
}];
|
||||
};
|
||||
odi = {
|
||||
email = "oliver.dunkl@gmail.com";
|
||||
github = "odi";
|
||||
|
@ -56,6 +56,15 @@ with lib.maintainers; {
|
||||
scope = "Group registration for D. E. Shaw employees who collectively maintain packages.";
|
||||
};
|
||||
|
||||
determinatesystems = {
|
||||
# Verify additions to this team with at least one already existing member of the team.
|
||||
members = [
|
||||
cole-h
|
||||
grahamc
|
||||
];
|
||||
scope = "Group registration for packages maintained by Determinate Systems.";
|
||||
};
|
||||
|
||||
freedesktop = {
|
||||
members = [ jtojnar worldofpeace ];
|
||||
scope = "Maintain Freedesktop.org packages for graphical desktop.";
|
||||
|
@ -29,7 +29,7 @@ in
|
||||
options.i18n = {
|
||||
inputMethod = {
|
||||
enabled = mkOption {
|
||||
type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" ]);
|
||||
type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" "kime" ]);
|
||||
default = null;
|
||||
example = "fcitx";
|
||||
description = ''
|
||||
@ -46,6 +46,7 @@ in
|
||||
<listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>
|
||||
<listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>
|
||||
<listitem><para>hime: An extremely easy-to-use input method framework.</para></listitem>
|
||||
<listitem><para>kime: Koream IME.</para></listitem>
|
||||
</itemizedlist>
|
||||
'';
|
||||
};
|
||||
|
@ -40,6 +40,11 @@
|
||||
Hime: An extremely easy-to-use input method framework.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Kime: Korean IME
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<section xml:id="module-services-input-methods-ibus">
|
||||
<title>IBus</title>
|
||||
@ -264,6 +269,23 @@ i18n.inputMethod = {
|
||||
i18n.inputMethod = {
|
||||
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "hime";
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
<section xml:id="module-services-input-methods-kime">
|
||||
<title>Kime</title>
|
||||
|
||||
<para>
|
||||
Kime is Korean IME. it's built with Rust language and let you get simple, safe, fast Korean typing
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The following snippet can be used to configure Kime:
|
||||
</para>
|
||||
|
||||
<programlisting>
|
||||
i18n.inputMethod = {
|
||||
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "kime";
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
</chapter>
|
||||
|
49
nixos/modules/i18n/input-method/kime.nix
Normal file
49
nixos/modules/i18n/input-method/kime.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{ config, pkgs, lib, generators, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.i18n.inputMethod.kime;
|
||||
yamlFormat = pkgs.formats.yaml { };
|
||||
in
|
||||
{
|
||||
options = {
|
||||
i18n.inputMethod.kime = {
|
||||
config = mkOption {
|
||||
type = yamlFormat.type;
|
||||
default = { };
|
||||
example = literalExample ''
|
||||
{
|
||||
daemon = {
|
||||
modules = ["Xim" "Indicator"];
|
||||
};
|
||||
|
||||
indicator = {
|
||||
icon_color = "White";
|
||||
};
|
||||
|
||||
engine = {
|
||||
hangul = {
|
||||
layout = "dubeolsik";
|
||||
};
|
||||
};
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
kime configuration. Refer to <link xlink:href="https://github.com/Riey/kime/blob/v${pkgs.kime.version}/docs/CONFIGURATION.md"/> for details on supported values.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf (config.i18n.inputMethod.enabled == "kime") {
|
||||
i18n.inputMethod.package = pkgs.kime;
|
||||
|
||||
environment.variables = {
|
||||
GTK_IM_MODULE = "kime";
|
||||
QT_IM_MODULE = "kime";
|
||||
XMODIFIERS = "@im=kime";
|
||||
};
|
||||
|
||||
environment.etc."xdg/kime/config.yaml".text = replaceStrings [ "\\\\" ] [ "\\" ] (builtins.toJSON cfg.config);
|
||||
};
|
||||
}
|
||||
|
@ -92,6 +92,7 @@
|
||||
./i18n/input-method/ibus.nix
|
||||
./i18n/input-method/nabi.nix
|
||||
./i18n/input-method/uim.nix
|
||||
./i18n/input-method/kime.nix
|
||||
./installer/tools/tools.nix
|
||||
./misc/assertions.nix
|
||||
./misc/crashdump.nix
|
||||
|
38
pkgs/applications/audio/myxer/default.nix
Normal file
38
pkgs/applications/audio/myxer/default.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, libpulseaudio
|
||||
, glib
|
||||
, pango
|
||||
, gtk3
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "myxer";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Aurailus";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "10m5qkys96n4v6qiffdiy0w660yq7b5sa70ww2zskc8d0gbmxp6x";
|
||||
};
|
||||
|
||||
cargoSha256 = "0nsscdjl5fh24sg87vdmijjmlihc0zk0p3vac701v60xlz55qipn";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ libpulseaudio glib pango gtk3 ];
|
||||
|
||||
# Currently no tests are implemented, so we avoid building the package twice
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A modern Volume Mixer for PulseAudio";
|
||||
homepage = "https://github.com/Aurailus/Myxer";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ erin ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -19,11 +19,11 @@ let
|
||||
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "poke";
|
||||
version = "1.1";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
|
||||
hash = "sha256-zWjfY8dBtBYLEsvqAvJ8RxWCeUZuNEOTDSU1pFLAatY=";
|
||||
hash = "sha256-9hz42ltkwBoTWTc3JarRyiV/NcHJJp5NUN0GZBg932I=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -11,16 +11,15 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brscan4";
|
||||
version = "0.4.9-1";
|
||||
version = "0.4.10-1";
|
||||
src = {
|
||||
"i686-linux" = fetchurl {
|
||||
url = "http://download.brother.com/welcome/dlf006646/${pname}-${version}.i386.deb";
|
||||
sha256 = "0pkg9aqvnkpjnb9cgzf7lxw2g4jqrf2w98irkv22r0gfsfs3nwma";
|
||||
sha256 = "sha256-ymIAg+rfSYP5uzsAM1hUYZacJ0PXmKEoljNtb0pgGMw=";
|
||||
};
|
||||
"x86_64-linux" = fetchurl {
|
||||
|
||||
url = "https://download.brother.com/welcome/dlf006645/${pname}-${version}.amd64.deb";
|
||||
sha256 = "0kakkl8rmsi2yr3f8vd1kk8vsl9g2ijhqil1cvvbwrhwgi0b7ai7";
|
||||
sha256 = "sha256-Gpr5456MCNpyam3g2qPo7S3aEZFMaUGR8bu7YmRY8xk=";
|
||||
};
|
||||
}."${stdenv.hostPlatform.system}";
|
||||
|
||||
@ -33,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ libusb-compat-0_1 ];
|
||||
dontBuild = true;
|
||||
|
||||
patchPhase = ''
|
||||
postPatch = ''
|
||||
${myPatchElf "opt/brother/scanner/brscan4/brsaneconfig4"}
|
||||
|
||||
RPATH=${libusb-compat-0_1.out}/lib
|
||||
@ -45,6 +44,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
installPhase = with lib; ''
|
||||
runHook preInstall
|
||||
PATH_TO_BRSCAN4="opt/brother/scanner/brscan4"
|
||||
mkdir -p $out/$PATH_TO_BRSCAN4
|
||||
cp -rp $PATH_TO_BRSCAN4/* $out/$PATH_TO_BRSCAN4
|
||||
@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
|
||||
mkdir -p $out/etc/udev/rules.d
|
||||
cp -p ${udevRules}/etc/udev/rules.d/*.rules \
|
||||
$out/etc/udev/rules.d
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
@ -26,11 +26,11 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "calibre";
|
||||
version = "5.13.0";
|
||||
version = "5.16.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-GDFAZxZmkio7e7kVjhYqhNdhXIlUPJF0iMWVl0uWVCM=";
|
||||
hash = "sha256-lTXCW0MGNOezecaGO9c2JGU4ylwpPmBaMXTY3nLNcrE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -62,8 +62,6 @@ mkDerivation rec {
|
||||
|
||||
dontUseQmakeConfigure = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [ pkg-config qmake removeReferencesTo ];
|
||||
|
||||
buildInputs = [
|
||||
|
91
pkgs/applications/misc/jiten/default.nix
Normal file
91
pkgs/applications/misc/jiten/default.nix
Normal file
@ -0,0 +1,91 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, python3Packages
|
||||
, makeWrapper
|
||||
, pcre
|
||||
, sqlite
|
||||
, nodejs
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "jiten";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "obfusk";
|
||||
repo = "jiten";
|
||||
rev = "v${version}";
|
||||
sha256 = "1lg1n7f4383jdlkbma0q65yl6l159wgh886admcq7l7ap26zpqd2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ pcre sqlite ];
|
||||
propagatedBuildInputs = with python3Packages; [ click flask ];
|
||||
checkInputs = [ nodejs ];
|
||||
|
||||
preBuild = ''
|
||||
export JITEN_VERSION=${version} # override `git describe`
|
||||
export JITEN_FINAL=yes # build & package *.sqlite3
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile --replace /bin/bash "$(command -v bash)"
|
||||
substituteInPlace jiten/res/jmdict/Makefile --replace /bin/bash "$(command -v bash)"
|
||||
'';
|
||||
|
||||
checkPhase = "make test";
|
||||
|
||||
postInstall = ''
|
||||
# requires pywebview
|
||||
rm $out/bin/jiten-gui
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Japanese android/cli/web dictionary based on jmdict/kanjidic";
|
||||
longDescription = ''
|
||||
Jiten is a Japanese dictionary based on JMDict/Kanjidic
|
||||
|
||||
Fine-grained search using regexes (regular expressions)
|
||||
• simple searches don't require knowledge of regexes
|
||||
• quick reference available in the web interface and android app
|
||||
|
||||
JMDict multilingual japanese dictionary
|
||||
• kanji, readings (romaji optional), meanings & more
|
||||
• meanings in english, dutch, german, french and/or spanish
|
||||
• pitch accent (from Wadoku)
|
||||
• browse by frequency/jlpt
|
||||
|
||||
Kanji dictionary
|
||||
• readings (romaji optional), meanings (english), jmdict entries, radicals & more
|
||||
• search using SKIP codes
|
||||
• search by radical
|
||||
• browse by frequency/level/jlpt
|
||||
|
||||
Example sentences (from Tatoeba)
|
||||
• with english, dutch, german, french and/or spanish translation
|
||||
• some with audio
|
||||
|
||||
Stroke order
|
||||
• input a word or sentence and see how it's written
|
||||
|
||||
Web interface
|
||||
• available online at https://jiten.obfusk.dev
|
||||
• light/dark mode
|
||||
• search history (stored locally)
|
||||
• tooltips to quickly see meanings and readings for kanji and words
|
||||
• use long press for tooltips on mobile
|
||||
• converts romaji to hiragana and between hiragana and katakana
|
||||
• can be run on your own computer
|
||||
|
||||
Command-line interface
|
||||
'';
|
||||
homepage = "https://github.com/obfusk/jiten";
|
||||
license = with licenses; [
|
||||
agpl3Plus # code
|
||||
cc-by-sa-30 # jmdict/kanjidic
|
||||
unfreeRedistributable # pitch data from wadoku is non-commercial :(
|
||||
];
|
||||
maintainers = [ maintainers.obfusk ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -7,10 +7,10 @@ in
|
||||
rec {
|
||||
firefox = common rec {
|
||||
pname = "firefox";
|
||||
ffversion = "87.0";
|
||||
ffversion = "88.0";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
||||
sha512 = "c1c08be2283e7a162c8be2f2647ec2bb85cab592738dc45e4b4ffb72969229cc0019a30782a4cb27f09a13b088c63841071dd202b3543dfba295140a7d6246a4";
|
||||
sha512 = "f58f44f2f0d0f54eae5ab4fa439205feb8b9209b1bf2ea2ae0c9691e9e583bae2cbd4033edb5bdf4e37eda5b95fca688499bed000fe26ced8ff4bbc49347ce31";
|
||||
};
|
||||
|
||||
meta = {
|
||||
@ -32,10 +32,10 @@ rec {
|
||||
|
||||
firefox-esr-78 = common rec {
|
||||
pname = "firefox-esr";
|
||||
ffversion = "78.9.0esr";
|
||||
ffversion = "78.10.0esr";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
||||
sha512 = "28582fc0a03fb50c0a817deb1083817bb7f2f5d38e98439bf655ed4ee18c83568b3002a59ef76edf357bfb11f55832a221d14130f116aac19d850768fba3ac8b";
|
||||
sha512 = "5e2cf137dc781855542c29df6152fa74ba749801640ade3cf01487ce993786b87a4f603d25c0af9323e67c7e15c75655523428c1c1426527b8623c7ded9f5946";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
43
pkgs/applications/video/giph/default.nix
Normal file
43
pkgs/applications/video/giph/default.nix
Normal file
@ -0,0 +1,43 @@
|
||||
{ stdenvNoCC
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, ffmpeg
|
||||
, xdotool
|
||||
, slop
|
||||
, libnotify
|
||||
, procps
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "giph";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phisch";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "19l46m1f32b3bagzrhaqsfnl5n3wbrmg3sdy6fdss4y1yf6nqayk";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/giph \
|
||||
--prefix PATH : ${lib.makeBinPath [ ffmpeg xdotool libnotify slop procps ]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/phisch/giph";
|
||||
description = "Simple gif recorder";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.legendofmiracles ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -1,18 +1,27 @@
|
||||
{ lib, stdenv, fetchFromGitHub,
|
||||
meson, ninja, pkg-config, scdoc,
|
||||
wayland, wayland-protocols, libxkbcommon,
|
||||
cairo, gdk-pixbuf, pam
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, scdoc
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, libxkbcommon
|
||||
, cairo
|
||||
, gdk-pixbuf
|
||||
, pam
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "swaylock-effects";
|
||||
version = "v1.6-2";
|
||||
version = "1.6-3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mortie";
|
||||
repo = "swaylock-effects";
|
||||
rev = version;
|
||||
sha256 = "0fs3c4liajgkax0a2pdc7117v1g9k73nv87g3kyv9wsnkfbbz534";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-71IX0fC4xCPP6pK63KtvDMb3KoP1rw/Iz3S7BgiLSpg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -23,7 +32,9 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dpam=enabled" "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled"
|
||||
"-Dpam=enabled"
|
||||
"-Dgdk-pixbuf=enabled"
|
||||
"-Dman-pages=enabled"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "intel-media-sdk";
|
||||
version = "20.4.1";
|
||||
version = "20.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Intel-Media-SDK";
|
||||
repo = "MediaSDK";
|
||||
rev = "intel-mediasdk-${version}";
|
||||
sha256 = "0qnq43qjcmzkn6v2aymzi3kycndk9xw6m5f5g5sz5x53nz556bp0";
|
||||
sha256 = "0l5m7r8585ycifbbi5i0bs63c9sb8rsmk43ik97mhfl1ivswf1mv";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
35
pkgs/development/ocaml-modules/dap/default.nix
Normal file
35
pkgs/development/ocaml-modules/dap/default.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ lib, buildDunePackage, fetchurl
|
||||
, angstrom-lwt-unix, lwt, logs, lwt_ppx, ppx_deriving_yojson, ppx_expect, ppx_here, react
|
||||
}:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "dap";
|
||||
version = "1.0.6";
|
||||
useDune2 = true;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/hackwaly/ocaml-dap/releases/download/${version}/dap-${version}.tbz";
|
||||
sha256 = "1zq0f8429m38a4x3h9n3rv7n1vsfjbs72pfi5902a89qwyilkcp0";
|
||||
};
|
||||
|
||||
minimumOCamlVersion = "4.08";
|
||||
|
||||
buildInputs = [
|
||||
lwt_ppx
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
angstrom-lwt-unix
|
||||
logs
|
||||
lwt
|
||||
ppx_deriving_yojson
|
||||
ppx_expect
|
||||
ppx_here
|
||||
react
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Debug adapter protocol";
|
||||
homepage = "https://github.com/hackwaly/ocaml-dap";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
@ -1,25 +1,25 @@
|
||||
{ lib, fetchurl, ocaml, buildDunePackage, angstrom, angstrom-lwt-unix,
|
||||
batteries, cmdliner, lwt_ppx, ocaml_lwt, ppx_deriving_yojson,
|
||||
ppx_tools_versioned, yojson }:
|
||||
{ lib, fetchurl, ocaml, buildDunePackage
|
||||
, cmdliner, dap, fmt, iter, logs, lru, lwt_ppx, lwt_react, menhir, path_glob, ppx_deriving_yojson
|
||||
}:
|
||||
|
||||
if lib.versionAtLeast ocaml.version "4.08"
|
||||
if lib.versionAtLeast ocaml.version "4.13"
|
||||
then throw "earlybird is not available for OCaml ${ocaml.version}"
|
||||
else
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "earlybird";
|
||||
version = "0.1.5";
|
||||
version = "1.1.0";
|
||||
|
||||
useDune2 = true;
|
||||
|
||||
minimumOCamlVersion = "4.04";
|
||||
minimumOCamlVersion = "4.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/hackwaly/ocamlearlybird/releases/download/${version}/${pname}-${version}.tbz";
|
||||
sha256 = "10yflmsicw4sdmm075zjpbmxpwm9fvibnl3sl18zjpwnm6l9sv7d";
|
||||
sha256 = "1pwzhcr3pw24ra4j4d23vz71h0psz4xkyp7b12l2wl1slxzjbrxa";
|
||||
};
|
||||
|
||||
buildInputs = [ angstrom angstrom-lwt-unix batteries cmdliner lwt_ppx ocaml_lwt ppx_deriving_yojson ppx_tools_versioned yojson ];
|
||||
buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhir path_glob ppx_deriving_yojson ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/hackwaly/ocamlearlybird";
|
||||
|
17
pkgs/development/ocaml-modules/path_glob/default.nix
Normal file
17
pkgs/development/ocaml-modules/path_glob/default.nix
Normal file
@ -0,0 +1,17 @@
|
||||
{ lib, buildDunePackage, fetchurl }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "path_glob";
|
||||
version = "0.2";
|
||||
useDune2 = true;
|
||||
src = fetchurl {
|
||||
url = "https://gasche.gitlab.io/path_glob/releases/path_glob-${version}.tbz";
|
||||
sha256 = "01ra20bzjiihbgma74axsp70gqmid6x7jmiizg48mdkni0aa42ay";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.com/gasche/path_glob";
|
||||
description = "Checking glob patterns on paths";
|
||||
license = lib.licenses.lgpl2Only;
|
||||
};
|
||||
}
|
@ -7,14 +7,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ailment";
|
||||
version = "9.0.5903";
|
||||
version = "9.0.6281";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "angr";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-75Ul9JfMFYv3AfBlgmer6IDyfgOAS4AdXexznoxi35Y=";
|
||||
sha256 = "sha256-IFUGtTO+DY8FIxLgvmwM/y/RQr42T9sABPpnJMILkqg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pyvex ];
|
||||
|
93
pkgs/development/python-modules/angr/default.nix
Normal file
93
pkgs/development/python-modules/angr/default.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{ lib
|
||||
, ailment
|
||||
, archinfo
|
||||
, buildPythonPackage
|
||||
, cachetools
|
||||
, capstone
|
||||
, cffi
|
||||
, claripy
|
||||
, cle
|
||||
, cppheaderparser
|
||||
, dpkt
|
||||
, fetchFromGitHub
|
||||
, GitPython
|
||||
, itanium_demangler
|
||||
, mulpyplexer
|
||||
, networkx
|
||||
, progressbar2
|
||||
, protobuf
|
||||
, psutil
|
||||
, pycparser
|
||||
, pkgs
|
||||
, pythonOlder
|
||||
, pyvex
|
||||
, sqlalchemy
|
||||
, rpyc
|
||||
, sortedcontainers
|
||||
, unicorn
|
||||
}:
|
||||
|
||||
let
|
||||
# Only the pinned release in setup.py works properly
|
||||
unicorn' = unicorn.overridePythonAttrs (old: rec {
|
||||
pname = "unicorn";
|
||||
version = "1.0.2-rc4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "unicorn-engine";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "17nyccgk7hpc4hab24yn57f1xnmr7kq4px98zbp2bkwcrxny8gwy";
|
||||
};
|
||||
});
|
||||
in
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "angr";
|
||||
version = "9.0.6281";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "10i4qdk8f342gzxiwy0pjdc35lc4q5ab7l5q420ca61cgdvxkk4r";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
ailment
|
||||
archinfo
|
||||
cachetools
|
||||
capstone
|
||||
cffi
|
||||
claripy
|
||||
cle
|
||||
cppheaderparser
|
||||
dpkt
|
||||
GitPython
|
||||
itanium_demangler
|
||||
mulpyplexer
|
||||
networkx
|
||||
progressbar2
|
||||
protobuf
|
||||
psutil
|
||||
sqlalchemy
|
||||
pycparser
|
||||
pyvex
|
||||
sqlalchemy
|
||||
rpyc
|
||||
sortedcontainers
|
||||
unicorn'
|
||||
];
|
||||
|
||||
# Tests have additional requirements, e.g., pypcode and angr binaries
|
||||
# cle is executing the tests with the angr binaries
|
||||
doCheck = false;
|
||||
pythonImportsCheck = [ "angr" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Powerful and user-friendly binary analysis platform";
|
||||
homepage = "https://angr.io/";
|
||||
license = with licenses; [ bsd2 ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -7,13 +7,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "archinfo";
|
||||
version = "9.0.5903";
|
||||
version = "9.0.6281";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "angr";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-4e+ZGIt/ouZj5rsmaVxUrz8gAq4Yq2+Qx4jdOojB4Sw=";
|
||||
sha256 = "sha256-ZO2P53RdR3cYhDbtrdGJnadFZgKkBdDi5gR/CB7YTpI=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "claripy";
|
||||
version = "9.0.5903";
|
||||
version = "9.0.6281";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "angr";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-NIKWUx1VT5TjnuqppuT6VzwNRwcBLc0xI5k3F2Nmj8A=";
|
||||
sha256 = "sha256-gvo8I6LQRAEUa7QiV5Sugrt+e2SmGkkKfsGn/IKz+Mk=";
|
||||
};
|
||||
|
||||
# Use upstream z3 implementation
|
||||
|
77
pkgs/development/python-modules/cle/default.nix
Normal file
77
pkgs/development/python-modules/cle/default.nix
Normal file
@ -0,0 +1,77 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, cffi
|
||||
, fetchFromGitHub
|
||||
, minidump
|
||||
, nose
|
||||
, pefile
|
||||
, pyelftools
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, pyvex
|
||||
, pyxbe
|
||||
, sortedcontainers
|
||||
}:
|
||||
|
||||
let
|
||||
# The binaries are following the argr projects release cycle
|
||||
version = "9.0.6281";
|
||||
|
||||
# Binary files from https://github.com/angr/binaries (only used for testing and only here)
|
||||
binaries = fetchFromGitHub {
|
||||
owner = "angr";
|
||||
repo = "binaries";
|
||||
rev = "v${version}";
|
||||
sha256 = "1qlrxfj1n34xvwkac6mbcc7zmixxbp34fj7lkf0fvp7zcz1rpla1";
|
||||
};
|
||||
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "cle";
|
||||
inherit version;
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "angr";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0f2zc02dljmgp6ny6ja6917j08kqhwckncan860dq4xv93g61rmg";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cffi
|
||||
minidump
|
||||
pefile
|
||||
pyelftools
|
||||
pyvex
|
||||
pyxbe
|
||||
sortedcontainers
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
nose
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
# Place test binaries in the right location (location is hard-coded in the tests)
|
||||
preCheck = ''
|
||||
export HOME=$TMPDIR
|
||||
cp -r ${binaries} $HOME/binaries
|
||||
'';
|
||||
|
||||
disabledTests = [
|
||||
# PPC tests seems to fails
|
||||
"test_ppc_rel24_relocation"
|
||||
"test_ppc_addr16_ha_relocation"
|
||||
"test_ppc_addr16_lo_relocation"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "cle" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python loader for many binary formats";
|
||||
homepage = "https://github.com/angr/cle";
|
||||
license = with licenses; [ bsd2 ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -2,9 +2,9 @@
|
||||
, stdenv
|
||||
, archinfo
|
||||
, bitstring
|
||||
, fetchPypi
|
||||
, cffi
|
||||
, buildPythonPackage
|
||||
, cffi
|
||||
, fetchPypi
|
||||
, future
|
||||
, pycparser
|
||||
}:
|
||||
@ -26,6 +26,11 @@ buildPythonPackage rec {
|
||||
pycparser
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyvex_c/Makefile \
|
||||
--replace "CC=gcc" "CC=${stdenv.cc.targetPrefix}cc"
|
||||
'';
|
||||
|
||||
# No tests are available on PyPI, GitHub release has tests
|
||||
# Switch to GitHub release after all angr parts are present
|
||||
doCheck = false;
|
||||
|
36
pkgs/development/python-modules/pyxbe/default.nix
Normal file
36
pkgs/development/python-modules/pyxbe/default.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyxbe";
|
||||
version = "unstable-2021-01-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mborgerson";
|
||||
repo = pname;
|
||||
rev = "a7ae1bb21b02a57783831eb080c1edbafaad1d5d";
|
||||
sha256 = "1cp9a5f41z8j7bzip6nhka8qnxs12v75cdf80sk2nzgf1k15wi2p";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
# Update location for run with pytest
|
||||
preCheck = ''
|
||||
substituteInPlace tests/test_load.py \
|
||||
--replace "'xbefiles'" "'tests/xbefiles'"
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "xbe" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library to work with XBE files";
|
||||
homepage = "https://github.com/mborgerson/pyxbe";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
17
pkgs/development/tools/godot/export-templates.nix
Normal file
17
pkgs/development/tools/godot/export-templates.nix
Normal file
@ -0,0 +1,17 @@
|
||||
{ godot, lib }:
|
||||
|
||||
# https://docs.godotengine.org/en/stable/development/compiling/compiling_for_x11.html#building-export-templates
|
||||
godot.overrideAttrs (oldAttrs: rec {
|
||||
pname = "godot-export-templates";
|
||||
sconsFlags = "target=release platform=x11 tools=no";
|
||||
installPhase = ''
|
||||
# The godot export command expects the export templates at
|
||||
# .../share/godot/templates/3.2.3.stable with 3.2.3 being the godot version.
|
||||
mkdir -p "$out/share/godot/templates/${oldAttrs.version}.stable"
|
||||
cp bin/godot.x11.opt.64 $out/share/godot/templates/${oldAttrs.version}.stable/linux_x11_64_release
|
||||
'';
|
||||
outputs = [ "out" ];
|
||||
meta.description =
|
||||
"Free and Open Source 2D and 3D game engine (export templates)";
|
||||
meta.maintainers = with lib.maintainers; [ twey jojosch ];
|
||||
})
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gopls";
|
||||
version = "0.6.2";
|
||||
version = "0.6.10";
|
||||
|
||||
src = fetchgit {
|
||||
rev = "gopls/v${version}";
|
||||
url = "https://go.googlesource.com/tools";
|
||||
sha256 = "0hbfxdsbfz044vw8zp223ni6m7gcwqpff4xpjiqmihhgga5849lf";
|
||||
sha256 = "13mv6rvqlmgn1shx0hnlqxgqiiiz1ij37j30jz1jkr9kcrbxpacr";
|
||||
};
|
||||
|
||||
modRoot = "gopls";
|
||||
vendorSha256 = "0r9bffgi9ainqrl4kraqy71rgwdfcbqmv3srs12h3xvj0w5ya5rz";
|
||||
vendorSha256 = "01apsvkds8f3m88inb37z4lgalrbjp12xr2jikwx7n10hjddgbqi";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-crev";
|
||||
version = "0.19.1";
|
||||
version = "0.19.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crev-dev";
|
||||
repo = "cargo-crev";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-/TROCaguzIdXnkQ4BpVR1W14ppGODGQ0MQAjJExMGVw=";
|
||||
sha256 = "sha256-aqvdAljAJsYtmxz/WtMrrnmJJRXDpqDjUn1LusoM8ns=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-3uIf6vyeDeww8+dqrzOG4J/T9QbXAnKQKXRbeujeqSo=";
|
||||
cargoSha256 = "sha256-KwnZmehh0vdR1eSPBrY6yHJR6r7mhIEgfN4soEBDTjU=";
|
||||
|
||||
nativeBuildInputs = [ perl pkg-config ];
|
||||
|
||||
|
@ -33,14 +33,14 @@ let
|
||||
|
||||
in env.mkDerivation rec {
|
||||
pname = "katago";
|
||||
version = "1.8.1";
|
||||
githash = "73bc3e38b3490cbe00179c9c37f5385dfd60c6bc";
|
||||
version = "1.8.2";
|
||||
githash = "b846bddd88fbc5353e4a93fa514f6cbf45358362";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lightvector";
|
||||
repo = "katago";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Rj6fgj1ZQgYhz6TrZk5b8dCMsCPk5N3qN3kgqV+UEDc=";
|
||||
sha256 = "sha256-kL+y2rsEiC5GGDlWrbzxlJvLxHDCuvVT6CDOlUtXpDk=";
|
||||
};
|
||||
|
||||
fakegit = writeShellScriptBin "git" "echo ${githash}";
|
||||
|
115
pkgs/games/oh-my-git/default.nix
Normal file
115
pkgs/games/oh-my-git/default.nix
Normal file
@ -0,0 +1,115 @@
|
||||
{ lib
|
||||
, copyDesktopItems
|
||||
, fetchFromGitHub
|
||||
, makeDesktopItem
|
||||
, stdenv
|
||||
, alsaLib
|
||||
, gcc-unwrapped
|
||||
, git
|
||||
, godot-export-templates
|
||||
, godot-headless
|
||||
, libGLU
|
||||
, libX11
|
||||
, libXcursor
|
||||
, libXext
|
||||
, libXfixes
|
||||
, libXi
|
||||
, libXinerama
|
||||
, libXrandr
|
||||
, libXrender
|
||||
, libglvnd
|
||||
, libpulseaudio
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "oh-my-git";
|
||||
version = "0.6.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "git-learning-game";
|
||||
repo = "oh-my-git";
|
||||
rev = version;
|
||||
sha256 = "sha256-GQLHyBUXF+yqEZ/LYutAn6TBCXFX8ViOaERQEm2J6CY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
godot-headless
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsaLib
|
||||
gcc-unwrapped.lib
|
||||
git
|
||||
libGLU
|
||||
libX11
|
||||
libXcursor
|
||||
libXext
|
||||
libXfixes
|
||||
libXi
|
||||
libXinerama
|
||||
libXrandr
|
||||
libXrender
|
||||
libglvnd
|
||||
libpulseaudio
|
||||
zlib
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "oh-my-git";
|
||||
exec = "oh-my-git";
|
||||
icon = "oh-my-git";
|
||||
desktopName = "oh-my-git";
|
||||
comment = "An interactive Git learning game!";
|
||||
genericName = "An interactive Git learning game!";
|
||||
categories = "Game;";
|
||||
})
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
# Cannot create file '/homeless-shelter/.config/godot/projects/...'
|
||||
export HOME=$TMPDIR
|
||||
|
||||
# Link the export-templates to the expected location. The --export commands
|
||||
# expects the template-file at .../templates/3.2.3.stable/linux_x11_64_release
|
||||
# with 3.2.3 being the version of godot.
|
||||
mkdir -p $HOME/.local/share/godot
|
||||
ln -s ${godot-export-templates}/share/godot/templates $HOME/.local/share/godot
|
||||
|
||||
mkdir -p $out/share/oh-my-git
|
||||
godot-headless --export "Linux" $out/share/oh-my-git/oh-my-git
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/share/oh-my-git/oh-my-git $out/bin
|
||||
|
||||
# Patch binaries.
|
||||
interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
|
||||
patchelf \
|
||||
--set-interpreter $interpreter \
|
||||
--set-rpath ${lib.makeLibraryPath buildInputs} \
|
||||
$out/share/oh-my-git/oh-my-git
|
||||
|
||||
mkdir -p $out/share/pixmaps
|
||||
cp images/oh-my-git.png $out/share/pixmaps/oh-my-git.png
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://ohmygit.org/";
|
||||
description = "An interactive Git learning game";
|
||||
license = with licenses; [ blueOak100 ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ jojosch ];
|
||||
};
|
||||
}
|
@ -136,6 +136,13 @@ in buildFHSUserEnv rec {
|
||||
libbsd
|
||||
alsaLib
|
||||
|
||||
# Loop Hero
|
||||
libidn2
|
||||
libpsl
|
||||
nghttp2.lib
|
||||
openssl_1_1
|
||||
rtmpdump
|
||||
|
||||
# needed by getcap for vr startup
|
||||
libcap
|
||||
|
||||
@ -202,7 +209,6 @@ in buildFHSUserEnv rec {
|
||||
SDL
|
||||
SDL2_image
|
||||
glew110
|
||||
openssl
|
||||
libidn
|
||||
tbb
|
||||
wayland
|
||||
|
@ -1,146 +1,91 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, python
|
||||
, cmake
|
||||
, meson
|
||||
, vim
|
||||
, ruby
|
||||
, which
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, llvmPackages
|
||||
, rustPlatform
|
||||
|
||||
# nixpkgs functions
|
||||
, buildGoModule
|
||||
, pkg-config
|
||||
, curl
|
||||
, openssl
|
||||
, libgit2
|
||||
, libiconv
|
||||
, xkb-switch
|
||||
, fzf
|
||||
, skim
|
||||
, stylish-haskell
|
||||
, buildVimPluginFrom2Nix
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
|
||||
# Language dependencies
|
||||
, python
|
||||
, python3
|
||||
, rustPlatform
|
||||
|
||||
# Misc dependencies
|
||||
, Cocoa
|
||||
, code-minimap
|
||||
, dasht
|
||||
, direnv
|
||||
, fzf
|
||||
, gnome3
|
||||
, khard
|
||||
, languagetool
|
||||
, llvmPackages
|
||||
, meson
|
||||
, nim
|
||||
, nodePackages
|
||||
, skim
|
||||
, sqlite
|
||||
, stylish-haskell
|
||||
, tabnine
|
||||
, vim
|
||||
, which
|
||||
, xkb-switch
|
||||
, ycmd
|
||||
|
||||
# command-t dependencies
|
||||
, rake
|
||||
, ruby
|
||||
|
||||
# cpsm dependencies
|
||||
, boost
|
||||
, cmake
|
||||
, icu
|
||||
, ncurses
|
||||
, ycmd
|
||||
, rake
|
||||
, gobject-introspection
|
||||
, glib
|
||||
, wrapGAppsHook
|
||||
, substituteAll
|
||||
, languagetool
|
||||
, tabnine
|
||||
|
||||
, Cocoa
|
||||
# LanguageClient-neovim dependencies
|
||||
, CoreFoundation
|
||||
, CoreServices
|
||||
|
||||
, buildVimPluginFrom2Nix
|
||||
, nodePackages
|
||||
, dasht
|
||||
, sqlite
|
||||
, code-minimap
|
||||
# sved dependencies
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook
|
||||
|
||||
# deoplete-khard dependency
|
||||
, khard
|
||||
# vim-clap dependencies
|
||||
, curl
|
||||
, libgit2
|
||||
, libiconv
|
||||
, openssl
|
||||
, pkg-config
|
||||
|
||||
# vim-go dependencies
|
||||
# vim-go dependencies
|
||||
, asmfmt
|
||||
, delve
|
||||
, errcheck
|
||||
, godef
|
||||
, golint
|
||||
, gomodifytags
|
||||
, gotags
|
||||
, gotools
|
||||
, go-motion
|
||||
, gnused
|
||||
, reftools
|
||||
, gogetdoc
|
||||
, golangci-lint
|
||||
, impl
|
||||
, iferr
|
||||
, go-motion
|
||||
, go-tools
|
||||
, gocode
|
||||
, gocode-gomod
|
||||
, go-tools
|
||||
, godef
|
||||
, gogetdoc
|
||||
, golangci-lint
|
||||
, golint
|
||||
, gomodifytags
|
||||
, gopls
|
||||
|
||||
# direnv-vim dependencies
|
||||
, direnv
|
||||
|
||||
# vCoolor dependency
|
||||
, gnome3
|
||||
|
||||
# fruzzy dependency
|
||||
, nim
|
||||
, gotags
|
||||
, gotools
|
||||
, iferr
|
||||
, impl
|
||||
, reftools
|
||||
}:
|
||||
|
||||
self: super: {
|
||||
|
||||
vim2nix = buildVimPluginFrom2Nix {
|
||||
pname = "vim2nix";
|
||||
version = "1.0";
|
||||
src = ./vim2nix;
|
||||
dependencies = with super; [ vim-addon-manager ];
|
||||
};
|
||||
|
||||
# Mainly used as a dependency for fzf-vim. Wraps the fzf program as a vim
|
||||
# plugin, since part of the fzf vim plugin is included in the main fzf
|
||||
# program.
|
||||
fzfWrapper = buildVimPluginFrom2Nix {
|
||||
inherit (fzf) src version;
|
||||
pname = "fzf";
|
||||
postInstall = ''
|
||||
ln -s ${fzf}/bin/fzf $target/bin/fzf
|
||||
'';
|
||||
};
|
||||
|
||||
skim = buildVimPluginFrom2Nix {
|
||||
pname = "skim";
|
||||
version = skim.version;
|
||||
src = skim.vim;
|
||||
};
|
||||
|
||||
LanguageClient-neovim =
|
||||
let
|
||||
version = "0.1.161";
|
||||
LanguageClient-neovim-src = fetchFromGitHub {
|
||||
owner = "autozimu";
|
||||
repo = "LanguageClient-neovim";
|
||||
rev = version;
|
||||
sha256 = "Z9S2ie9RxJCIbmjSV/Tto4lK04cZfWmK3IAy8YaySVI=";
|
||||
};
|
||||
LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
|
||||
pname = "LanguageClient-neovim-bin";
|
||||
inherit version;
|
||||
src = LanguageClient-neovim-src;
|
||||
|
||||
cargoSha256 = "H34UqJ6JOwuSABdOup5yKeIwFrGc83TUnw1ggJEx9o4=";
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
|
||||
|
||||
# FIXME: Use impure version of CoreFoundation because of missing symbols.
|
||||
# Undefined symbols for architecture x86_64: "_CFURLResourceIsReachable"
|
||||
preConfigure = lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS="-F${CoreFoundation}/Library/Frameworks -framework CoreFoundation $NIX_LDFLAGS"
|
||||
'';
|
||||
};
|
||||
in
|
||||
buildVimPluginFrom2Nix {
|
||||
pname = "LanguageClient-neovim";
|
||||
inherit version;
|
||||
src = LanguageClient-neovim-src;
|
||||
|
||||
propagatedBuildInputs = [ LanguageClient-neovim-bin ];
|
||||
|
||||
preFixup = ''
|
||||
substituteInPlace "$out"/share/vim-plugins/LanguageClient-neovim/autoload/LanguageClient.vim \
|
||||
--replace "let l:path = s:root . '/bin/'" "let l:path = '${LanguageClient-neovim-bin}' . '/bin/'"
|
||||
'';
|
||||
};
|
||||
|
||||
clang_complete = super.clang_complete.overrideAttrs (old: {
|
||||
# In addition to the arguments you pass to your compiler, you also need to
|
||||
# specify the path of the C++ std header (if you are using C++).
|
||||
@ -156,14 +101,6 @@ self: super: {
|
||||
'';
|
||||
});
|
||||
|
||||
direnv-vim = super.direnv-vim.overrideAttrs (oa: {
|
||||
preFixup = oa.preFixup or "" + ''
|
||||
substituteInPlace $out/share/vim-plugins/direnv-vim/autoload/direnv.vim \
|
||||
--replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
|
||||
"let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
|
||||
'';
|
||||
});
|
||||
|
||||
clighter8 = super.clighter8.overrideAttrs (old: {
|
||||
preFixup = ''
|
||||
sed "/^let g:clighter8_libclang_path/s|')$|${llvmPackages.clang.cc.lib}/lib/libclang.so')|" \
|
||||
@ -179,6 +116,24 @@ self: super: {
|
||||
'';
|
||||
});
|
||||
|
||||
compe-tabnine = super.compe-tabnine.overrideAttrs (old: {
|
||||
buildInputs = [ tabnine ];
|
||||
|
||||
postFixup = ''
|
||||
mkdir $target/binaries
|
||||
ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
|
||||
'';
|
||||
});
|
||||
|
||||
completion-tabnine = super.completion-tabnine.overrideAttrs (old: {
|
||||
buildInputs = [ tabnine ];
|
||||
|
||||
postFixup = ''
|
||||
mkdir $target/binaries
|
||||
ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
|
||||
'';
|
||||
});
|
||||
|
||||
cpsm = super.cpsm.overrideAttrs (old: {
|
||||
buildInputs = [
|
||||
python3
|
||||
@ -232,6 +187,14 @@ self: super: {
|
||||
};
|
||||
});
|
||||
|
||||
direnv-vim = super.direnv-vim.overrideAttrs (oa: {
|
||||
preFixup = oa.preFixup or "" + ''
|
||||
substituteInPlace $out/share/vim-plugins/direnv-vim/autoload/direnv.vim \
|
||||
--replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
|
||||
"let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
|
||||
'';
|
||||
});
|
||||
|
||||
ensime-vim = super.ensime-vim.overrideAttrs (old: {
|
||||
passthru.python3Dependencies = ps: with ps; [ sexpdata websocket_client ];
|
||||
dependencies = with super; [ vimproc-vim vimshell-vim super.self forms ];
|
||||
@ -276,22 +239,93 @@ self: super: {
|
||||
'';
|
||||
});
|
||||
|
||||
fzf-vim = super.fzf-vim.overrideAttrs (old: {
|
||||
dependencies = [ self.fzfWrapper ];
|
||||
});
|
||||
|
||||
# Mainly used as a dependency for fzf-vim. Wraps the fzf program as a vim
|
||||
# plugin, since part of the fzf vim plugin is included in the main fzf
|
||||
# program.
|
||||
fzfWrapper = buildVimPluginFrom2Nix {
|
||||
inherit (fzf) src version;
|
||||
pname = "fzf";
|
||||
postInstall = ''
|
||||
ln -s ${fzf}/bin/fzf $target/bin/fzf
|
||||
'';
|
||||
};
|
||||
|
||||
ghcid = super.ghcid.overrideAttrs (old: {
|
||||
configurePhase = "cd plugins/nvim";
|
||||
});
|
||||
|
||||
vimsence = super.vimsence.overrideAttrs (old: {
|
||||
meta = with lib; {
|
||||
description = "Discord rich presence for Vim";
|
||||
homepage = "https://github.com/hugolgst/vimsence";
|
||||
maintainers = with lib.maintainers; [ hugolgst ];
|
||||
jedi-vim = super.jedi-vim.overrideAttrs (old: {
|
||||
# checking for python3 support in vim would be neat, too, but nobody else seems to care
|
||||
buildInputs = [ python3.pkgs.jedi ];
|
||||
meta = {
|
||||
description = "code-completion for python using python-jedi";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
});
|
||||
|
||||
vim-gist = super.vim-gist.overrideAttrs (old: {
|
||||
dependencies = with super; [ webapi-vim ];
|
||||
LanguageClient-neovim =
|
||||
let
|
||||
version = "0.1.161";
|
||||
LanguageClient-neovim-src = fetchFromGitHub {
|
||||
owner = "autozimu";
|
||||
repo = "LanguageClient-neovim";
|
||||
rev = version;
|
||||
sha256 = "Z9S2ie9RxJCIbmjSV/Tto4lK04cZfWmK3IAy8YaySVI=";
|
||||
};
|
||||
LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
|
||||
pname = "LanguageClient-neovim-bin";
|
||||
inherit version;
|
||||
src = LanguageClient-neovim-src;
|
||||
|
||||
cargoSha256 = "H34UqJ6JOwuSABdOup5yKeIwFrGc83TUnw1ggJEx9o4=";
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
|
||||
|
||||
# FIXME: Use impure version of CoreFoundation because of missing symbols.
|
||||
# Undefined symbols for architecture x86_64: "_CFURLResourceIsReachable"
|
||||
preConfigure = lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS="-F${CoreFoundation}/Library/Frameworks -framework CoreFoundation $NIX_LDFLAGS"
|
||||
'';
|
||||
};
|
||||
in
|
||||
buildVimPluginFrom2Nix {
|
||||
pname = "LanguageClient-neovim";
|
||||
inherit version;
|
||||
src = LanguageClient-neovim-src;
|
||||
|
||||
propagatedBuildInputs = [ LanguageClient-neovim-bin ];
|
||||
|
||||
preFixup = ''
|
||||
substituteInPlace "$out"/share/vim-plugins/LanguageClient-neovim/autoload/LanguageClient.vim \
|
||||
--replace "let l:path = s:root . '/bin/'" "let l:path = '${LanguageClient-neovim-bin}' . '/bin/'"
|
||||
'';
|
||||
};
|
||||
|
||||
lens-vim = super.lens-vim.overrideAttrs (old: {
|
||||
# remove duplicate g:lens#animate in doc/lens.txt
|
||||
# https://github.com/NixOS/nixpkgs/pull/105810#issuecomment-740007985
|
||||
# https://github.com/camspiers/lens.vim/pull/40/files
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/lens-vim/remove_duplicate_g_lens_animate.patch;
|
||||
inherit languagetool;
|
||||
})
|
||||
];
|
||||
});
|
||||
|
||||
lf-vim = super.lf-vim.overrideAttrs (old: {
|
||||
dependencies = with super; [ vim-floaterm ];
|
||||
});
|
||||
|
||||
meson = buildVimPluginFrom2Nix {
|
||||
inherit (meson) pname version src;
|
||||
preInstall = "cd data/syntax-highlighting/vim";
|
||||
meta.maintainers = with lib.maintainers; [ vcunat ];
|
||||
};
|
||||
|
||||
minimap-vim = super.minimap-vim.overrideAttrs (old: {
|
||||
preFixup = ''
|
||||
substituteInPlace $out/share/vim-plugins/minimap-vim/plugin/minimap.vim \
|
||||
@ -301,12 +335,6 @@ self: super: {
|
||||
'';
|
||||
});
|
||||
|
||||
meson = buildVimPluginFrom2Nix {
|
||||
inherit (meson) pname version src;
|
||||
preInstall = "cd data/syntax-highlighting/vim";
|
||||
meta.maintainers = with lib.maintainers; [ vcunat ];
|
||||
};
|
||||
|
||||
ncm2 = super.ncm2.overrideAttrs (old: {
|
||||
dependencies = with super; [ nvim-yarp ];
|
||||
});
|
||||
@ -336,14 +364,16 @@ self: super: {
|
||||
dependencies = with super; [ popfix ];
|
||||
});
|
||||
|
||||
fzf-vim = super.fzf-vim.overrideAttrs (old: {
|
||||
dependencies = [ self.fzfWrapper ];
|
||||
});
|
||||
|
||||
onehalf = super.onehalf.overrideAttrs (old: {
|
||||
configurePhase = "cd vim";
|
||||
});
|
||||
|
||||
skim = buildVimPluginFrom2Nix {
|
||||
pname = "skim";
|
||||
version = skim.version;
|
||||
src = skim.vim;
|
||||
};
|
||||
|
||||
skim-vim = super.skim-vim.overrideAttrs (old: {
|
||||
dependencies = [ self.skim ];
|
||||
});
|
||||
@ -384,30 +414,60 @@ self: super: {
|
||||
};
|
||||
});
|
||||
|
||||
vimacs = super.vimacs.overrideAttrs (old: {
|
||||
buildPhase = ''
|
||||
substituteInPlace bin/vim \
|
||||
--replace '/usr/bin/vim' 'vim' \
|
||||
--replace '/usr/bin/gvim' 'gvim'
|
||||
# remove unnecessary duplicated bin wrapper script
|
||||
rm -r plugin/vimacs
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "Vim-Improved eMACS: Emacs emulation plugin for Vim";
|
||||
homepage = "http://algorithm.com.au/code/vimacs";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ millerjason ];
|
||||
telescope-frecency-nvim = super.telescope-frecency-nvim.overrideAttrs (old: {
|
||||
dependencies = [ self.sql-nvim ];
|
||||
});
|
||||
|
||||
telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
|
||||
preFixup =
|
||||
let
|
||||
fzy-lua-native-path = "deps/fzy-lua-native";
|
||||
fzy-lua-native =
|
||||
stdenv.mkDerivation {
|
||||
name = "fzy-lua-native";
|
||||
src = "${old.src}/${fzy-lua-native-path}";
|
||||
# remove pre-compiled binaries
|
||||
preBuild = "rm -rf static/*";
|
||||
installPhase = ''
|
||||
install -Dm 444 -t $out/static static/*
|
||||
install -Dm 444 -t $out/lua lua/*
|
||||
'';
|
||||
};
|
||||
in
|
||||
''
|
||||
rm -rf $target/${fzy-lua-native-path}/*
|
||||
ln -s ${fzy-lua-native}/static $target/${fzy-lua-native-path}/static
|
||||
ln -s ${fzy-lua-native}/lua $target/${fzy-lua-native-path}/lua
|
||||
'';
|
||||
meta.platforms = lib.platforms.all;
|
||||
});
|
||||
|
||||
unicode-vim =
|
||||
let
|
||||
unicode-data = fetchurl {
|
||||
url = "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt";
|
||||
sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9";
|
||||
};
|
||||
in
|
||||
super.unicode-vim.overrideAttrs (old: {
|
||||
|
||||
# redirect to /dev/null else changes terminal color
|
||||
buildPhase = ''
|
||||
cp "${unicode-data}" autoload/unicode/UnicodeData.txt
|
||||
echo "Building unicode cache"
|
||||
${vim}/bin/vim --cmd ":set rtp^=$PWD" -c 'ru plugin/unicode.vim' -c 'UnicodeCache' -c ':echohl Normal' -c ':q' > /dev/null
|
||||
'';
|
||||
});
|
||||
|
||||
vCoolor-vim = super.vCoolor-vim.overrideAttrs (old: {
|
||||
# on linux can use either Zenity or Yad.
|
||||
propagatedBuildInputs = [ gnome3.zenity ];
|
||||
meta = {
|
||||
description = "Simple color selector/picker plugin";
|
||||
license = lib.licenses.publicDomain;
|
||||
};
|
||||
});
|
||||
|
||||
vimshell-vim = super.vimshell-vim.overrideAttrs (old: {
|
||||
dependencies = with super; [ vimproc-vim ];
|
||||
});
|
||||
|
||||
vim-addon-manager = super.vim-addon-manager.overrideAttrs (old: {
|
||||
buildInputs = lib.optional stdenv.isDarwin Cocoa;
|
||||
});
|
||||
|
||||
vim-addon-actions = super.vim-addon-actions.overrideAttrs (old: {
|
||||
dependencies = with super; [ vim-addon-mw-utils tlib_vim ];
|
||||
});
|
||||
@ -428,6 +488,10 @@ self: super: {
|
||||
dependencies = with super; [ tlib_vim ];
|
||||
});
|
||||
|
||||
vim-addon-manager = super.vim-addon-manager.overrideAttrs (old: {
|
||||
buildInputs = lib.optional stdenv.isDarwin Cocoa;
|
||||
});
|
||||
|
||||
vim-addon-mru = super.vim-addon-mru.overrideAttrs (old: {
|
||||
dependencies = with super; [ vim-addon-other vim-addon-mw-utils ];
|
||||
});
|
||||
@ -467,6 +531,36 @@ self: super: {
|
||||
passthru.python3Dependencies = ps: with ps; [ beancount ];
|
||||
});
|
||||
|
||||
vim-clap = super.vim-clap.overrideAttrs (old: {
|
||||
preFixup =
|
||||
let
|
||||
maple-bin = rustPlatform.buildRustPackage {
|
||||
name = "maple";
|
||||
src = old.src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openssl
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
CoreServices
|
||||
curl
|
||||
libgit2
|
||||
libiconv
|
||||
];
|
||||
|
||||
cargoSha256 = "25UkYKhlGmlDg4fz1jZHjpQn5s4k5FKlFK0MU8YM5SE=";
|
||||
};
|
||||
in
|
||||
''
|
||||
ln -s ${maple-bin}/bin/maple $target/bin/maple
|
||||
'';
|
||||
|
||||
meta.platforms = lib.platforms.all;
|
||||
});
|
||||
|
||||
vim-closer = super.vim-closer.overrideAttrs (old: {
|
||||
patches = [
|
||||
# Fix duplicate tag in doc
|
||||
@ -533,6 +627,10 @@ self: super: {
|
||||
'';
|
||||
});
|
||||
|
||||
vim-gist = super.vim-gist.overrideAttrs (old: {
|
||||
dependencies = with super; [ webapi-vim ];
|
||||
});
|
||||
|
||||
vim-grammarous = super.vim-grammarous.overrideAttrs (old: {
|
||||
# use `:GrammarousCheck` to initialize checking
|
||||
# In neovim, you also want to use set
|
||||
@ -546,16 +644,20 @@ self: super: {
|
||||
];
|
||||
});
|
||||
|
||||
lens-vim = super.lens-vim.overrideAttrs (old: {
|
||||
# remove duplicate g:lens#animate in doc/lens.txt
|
||||
# https://github.com/NixOS/nixpkgs/pull/105810#issuecomment-740007985
|
||||
# https://github.com/camspiers/lens.vim/pull/40/files
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/lens-vim/remove_duplicate_g_lens_animate.patch;
|
||||
inherit languagetool;
|
||||
})
|
||||
];
|
||||
vim-hexokinase = super.vim-hexokinase.overrideAttrs (old: {
|
||||
preFixup =
|
||||
let
|
||||
hexokinase = buildGoModule {
|
||||
name = "hexokinase";
|
||||
src = old.src + "/hexokinase";
|
||||
vendorSha256 = "pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
|
||||
};
|
||||
in
|
||||
''
|
||||
ln -s ${hexokinase}/bin/hexokinase $target/hexokinase/hexokinase
|
||||
'';
|
||||
|
||||
meta.platforms = lib.platforms.all;
|
||||
});
|
||||
|
||||
vim-hier = super.vim-hier.overrideAttrs (old: {
|
||||
@ -593,6 +695,13 @@ self: super: {
|
||||
dependencies = with super; [ vim-addon-mw-utils tlib_vim ];
|
||||
});
|
||||
|
||||
vim-stylish-haskell = super.vim-stylish-haskell.overrideAttrs (old: {
|
||||
postPatch = old.postPatch or "" + ''
|
||||
substituteInPlace ftplugin/haskell/stylish-haskell.vim --replace \
|
||||
'g:stylish_haskell_command = "stylish-haskell"' \
|
||||
'g:stylish_haskell_command = "${stylish-haskell}/bin/stylish-haskell"'
|
||||
'';
|
||||
});
|
||||
|
||||
vim-wakatime = super.vim-wakatime.overrideAttrs (old: {
|
||||
buildInputs = [ python ];
|
||||
@ -617,6 +726,37 @@ self: super: {
|
||||
'';
|
||||
});
|
||||
|
||||
vim2nix = buildVimPluginFrom2Nix {
|
||||
pname = "vim2nix";
|
||||
version = "1.0";
|
||||
src = ./vim2nix;
|
||||
dependencies = with super; [ vim-addon-manager ];
|
||||
};
|
||||
|
||||
vimacs = super.vimacs.overrideAttrs (old: {
|
||||
buildPhase = ''
|
||||
substituteInPlace bin/vim \
|
||||
--replace '/usr/bin/vim' 'vim' \
|
||||
--replace '/usr/bin/gvim' 'gvim'
|
||||
# remove unnecessary duplicated bin wrapper script
|
||||
rm -r plugin/vimacs
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "Vim-Improved eMACS: Emacs emulation plugin for Vim";
|
||||
homepage = "http://algorithm.com.au/code/vimacs";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ millerjason ];
|
||||
};
|
||||
});
|
||||
|
||||
vimsence = super.vimsence.overrideAttrs (old: {
|
||||
meta = with lib; {
|
||||
description = "Discord rich presence for Vim";
|
||||
homepage = "https://github.com/hugolgst/vimsence";
|
||||
maintainers = with lib.maintainers; [ hugolgst ];
|
||||
};
|
||||
});
|
||||
|
||||
vimproc-vim = super.vimproc-vim.overrideAttrs (old: {
|
||||
buildInputs = [ which ];
|
||||
|
||||
@ -629,6 +769,10 @@ self: super: {
|
||||
'';
|
||||
});
|
||||
|
||||
vimshell-vim = super.vimshell-vim.overrideAttrs (old: {
|
||||
dependencies = with super; [ vimproc-vim ];
|
||||
});
|
||||
|
||||
YankRing-vim = super.YankRing-vim.overrideAttrs (old: {
|
||||
sourceRoot = ".";
|
||||
});
|
||||
@ -652,145 +796,6 @@ self: super: {
|
||||
};
|
||||
});
|
||||
|
||||
jedi-vim = super.jedi-vim.overrideAttrs (old: {
|
||||
# checking for python3 support in vim would be neat, too, but nobody else seems to care
|
||||
buildInputs = [ python3.pkgs.jedi ];
|
||||
meta = {
|
||||
description = "code-completion for python using python-jedi";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
});
|
||||
|
||||
lf-vim = super.lf-vim.overrideAttrs (old: {
|
||||
dependencies = with super; [ vim-floaterm ];
|
||||
});
|
||||
|
||||
vim-stylish-haskell = super.vim-stylish-haskell.overrideAttrs (old: {
|
||||
postPatch = old.postPatch or "" + ''
|
||||
substituteInPlace ftplugin/haskell/stylish-haskell.vim --replace \
|
||||
'g:stylish_haskell_command = "stylish-haskell"' \
|
||||
'g:stylish_haskell_command = "${stylish-haskell}/bin/stylish-haskell"'
|
||||
'';
|
||||
});
|
||||
|
||||
vCoolor-vim = super.vCoolor-vim.overrideAttrs (old: {
|
||||
# on linux can use either Zenity or Yad.
|
||||
propagatedBuildInputs = [ gnome3.zenity ];
|
||||
meta = {
|
||||
description = "Simple color selector/picker plugin";
|
||||
license = lib.licenses.publicDomain;
|
||||
};
|
||||
});
|
||||
|
||||
unicode-vim =
|
||||
let
|
||||
unicode-data = fetchurl {
|
||||
url = "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt";
|
||||
sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9";
|
||||
};
|
||||
in
|
||||
super.unicode-vim.overrideAttrs (old: {
|
||||
|
||||
# redirect to /dev/null else changes terminal color
|
||||
buildPhase = ''
|
||||
cp "${unicode-data}" autoload/unicode/UnicodeData.txt
|
||||
echo "Building unicode cache"
|
||||
${vim}/bin/vim --cmd ":set rtp^=$PWD" -c 'ru plugin/unicode.vim' -c 'UnicodeCache' -c ':echohl Normal' -c ':q' > /dev/null
|
||||
'';
|
||||
});
|
||||
|
||||
vim-hexokinase = super.vim-hexokinase.overrideAttrs (old: {
|
||||
preFixup =
|
||||
let
|
||||
hexokinase = buildGoModule {
|
||||
name = "hexokinase";
|
||||
src = old.src + "/hexokinase";
|
||||
vendorSha256 = "pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
|
||||
};
|
||||
in
|
||||
''
|
||||
ln -s ${hexokinase}/bin/hexokinase $target/hexokinase/hexokinase
|
||||
'';
|
||||
|
||||
meta.platforms = lib.platforms.all;
|
||||
});
|
||||
|
||||
vim-clap = super.vim-clap.overrideAttrs (old: {
|
||||
preFixup =
|
||||
let
|
||||
maple-bin = rustPlatform.buildRustPackage {
|
||||
name = "maple";
|
||||
src = old.src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openssl
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
CoreServices
|
||||
curl
|
||||
libgit2
|
||||
libiconv
|
||||
];
|
||||
|
||||
cargoSha256 = "25UkYKhlGmlDg4fz1jZHjpQn5s4k5FKlFK0MU8YM5SE=";
|
||||
};
|
||||
in
|
||||
''
|
||||
ln -s ${maple-bin}/bin/maple $target/bin/maple
|
||||
'';
|
||||
|
||||
meta.platforms = lib.platforms.all;
|
||||
});
|
||||
|
||||
compe-tabnine = super.compe-tabnine.overrideAttrs (old: {
|
||||
buildInputs = [ tabnine ];
|
||||
|
||||
postFixup = ''
|
||||
mkdir $target/binaries
|
||||
ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
|
||||
'';
|
||||
});
|
||||
|
||||
completion-tabnine = super.completion-tabnine.overrideAttrs (old: {
|
||||
buildInputs = [ tabnine ];
|
||||
|
||||
postFixup = ''
|
||||
mkdir $target/binaries
|
||||
ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
|
||||
'';
|
||||
});
|
||||
|
||||
telescope-frecency-nvim = super.telescope-frecency-nvim.overrideAttrs (old: {
|
||||
dependencies = [ self.sql-nvim ];
|
||||
});
|
||||
|
||||
telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
|
||||
preFixup =
|
||||
let
|
||||
fzy-lua-native-path = "deps/fzy-lua-native";
|
||||
fzy-lua-native =
|
||||
stdenv.mkDerivation {
|
||||
name = "fzy-lua-native";
|
||||
src = "${old.src}/${fzy-lua-native-path}";
|
||||
# remove pre-compiled binaries
|
||||
preBuild = "rm -rf static/*";
|
||||
installPhase = ''
|
||||
install -Dm 444 -t $out/static static/*
|
||||
install -Dm 444 -t $out/lua lua/*
|
||||
'';
|
||||
};
|
||||
in
|
||||
''
|
||||
rm -rf $target/${fzy-lua-native-path}/*
|
||||
ln -s ${fzy-lua-native}/static $target/${fzy-lua-native-path}/static
|
||||
ln -s ${fzy-lua-native}/lua $target/${fzy-lua-native-path}/lua
|
||||
'';
|
||||
meta.platforms = lib.platforms.all;
|
||||
});
|
||||
|
||||
} // (
|
||||
let
|
||||
nodePackageNames = [
|
||||
|
113
pkgs/tools/inputmethods/kime/default.nix
Normal file
113
pkgs/tools/inputmethods/kime/default.nix
Normal file
@ -0,0 +1,113 @@
|
||||
{ lib, stdenv, rustPlatform, rustc, cargo, fetchFromGitHub, pkg-config, cmake, extra-cmake-modules, llvmPackages
|
||||
, withWayland ? true
|
||||
, withIndicator ? true, dbus, libdbusmenu
|
||||
, withXim ? true, xorg, cairo
|
||||
, withGtk2 ? true, gtk2
|
||||
, withGtk3 ? true, gtk3
|
||||
, withQt5 ? true, qt5
|
||||
}:
|
||||
|
||||
let
|
||||
cmake_args = lib.optionals withGtk2 ["-DENABLE_GTK2=ON"]
|
||||
++ lib.optionals withGtk3 ["-DENABLE_GTK3=ON"]
|
||||
++ lib.optionals withQt5 ["-DENABLE_QT5=ON"];
|
||||
|
||||
optFlag = w: (if w then "1" else "0");
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kime";
|
||||
version = "2.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Riey";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "10zd4yrqxzxf4nj3b5bsblcmlbqssxqq9pac0misa1g61jdbszj8";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
sha256 = "1bimi7020m7v287bh7via7zm9m7y13d13kqpd772xmpdbwrj8nrl";
|
||||
};
|
||||
|
||||
# Replace autostart path
|
||||
postPatch = ''
|
||||
substituteInPlace res/kime.desktop --replace "/usr/bin/kime" "$out/bin/kime"
|
||||
'';
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
dontWrapQtApps = true;
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
export KIME_BUILD_CHECK=1
|
||||
export KIME_BUILD_INDICATOR=${optFlag withIndicator}
|
||||
export KIME_BUILD_XIM=${optFlag withXim}
|
||||
export KIME_BUILD_WAYLAND=${optFlag withWayland}
|
||||
export KIME_BUILD_KIME=1
|
||||
export KIME_CARGO_ARGS="-j$NIX_BUILD_CORES --frozen"
|
||||
export KIME_MAKE_ARGS="-j$NIX_BUILD_CORES"
|
||||
export KIME_CMAKE_ARGS="${lib.concatStringsSep " " cmake_args}"
|
||||
bash scripts/build.sh -r
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
cargo test --release --frozen
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
export KIME_BIN_DIR=bin
|
||||
export KIME_INSTALL_HEADER=1
|
||||
export KIME_INSTALL_DOC=1
|
||||
export KIME_INCLUDE_DIR=include
|
||||
export KIME_DOC_DIR=share/doc/kime
|
||||
export KIME_ICON_DIR=share/icons
|
||||
export KIME_LIB_DIR=lib
|
||||
export KIME_QT5_DIR=lib/qt-${qt5.qtbase.version}
|
||||
bash scripts/install.sh "$out"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
# Don't pipe output to head directly it will cause broken pipe error https://github.com/rust-lang/rust/issues/46016
|
||||
kimeVersion=$(echo "$($out/bin/kime --version)" | head -n1)
|
||||
echo "'kime --version | head -n1' returns: $kimeVersion"
|
||||
[[ "$kimeVersion" == "kime ${version}" ]]
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
|
||||
buildInputs = lib.optionals withIndicator [ dbus libdbusmenu ]
|
||||
++ lib.optionals withXim [ xorg.libxcb cairo ]
|
||||
++ lib.optionals withGtk2 [ gtk2 ]
|
||||
++ lib.optionals withGtk3 [ gtk3 ]
|
||||
++ lib.optionals withQt5 [ qt5.qtbase ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
llvmPackages.clang
|
||||
llvmPackages.libclang
|
||||
llvmPackages.bintools
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
rustPlatform.cargoSetupHook
|
||||
rustc
|
||||
cargo
|
||||
];
|
||||
|
||||
RUST_BACKTRACE = 1;
|
||||
LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Riey/kime";
|
||||
description = "Korean IME";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.riey ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -2542,6 +2542,8 @@ in
|
||||
|
||||
gif-for-cli = callPackage ../tools/misc/gif-for-cli { };
|
||||
|
||||
giph = callPackage ../applications/video/giph { };
|
||||
|
||||
gir-rs = callPackage ../development/tools/gir { };
|
||||
|
||||
gist = callPackage ../tools/text/gist { };
|
||||
@ -2667,6 +2669,8 @@ in
|
||||
|
||||
jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
|
||||
|
||||
jiten = callPackage ../applications/misc/jiten { };
|
||||
|
||||
jotta-cli = callPackage ../applications/misc/jotta-cli { };
|
||||
|
||||
joycond = callPackage ../os-specific/linux/joycond { };
|
||||
@ -2759,6 +2763,8 @@ in
|
||||
|
||||
meritous = callPackage ../games/meritous { };
|
||||
|
||||
oh-my-git = callPackage ../games/oh-my-git { };
|
||||
|
||||
opendune = callPackage ../games/opendune { };
|
||||
|
||||
merriweather = callPackage ../data/fonts/merriweather { };
|
||||
@ -3465,6 +3471,8 @@ in
|
||||
|
||||
gebaar-libinput = callPackage ../tools/inputmethods/gebaar-libinput { };
|
||||
|
||||
kime = callPackage ../tools/inputmethods/kime { };
|
||||
|
||||
libpinyin = callPackage ../development/libraries/libpinyin { };
|
||||
|
||||
libskk = callPackage ../development/libraries/libskk {
|
||||
@ -5047,6 +5055,8 @@ in
|
||||
|
||||
godot = callPackage ../development/tools/godot {};
|
||||
|
||||
godot-export-templates = callPackage ../development/tools/godot/export-templates.nix { };
|
||||
|
||||
godot-headless = callPackage ../development/tools/godot/headless.nix { };
|
||||
|
||||
godot-server = callPackage ../development/tools/godot/server.nix { };
|
||||
@ -25111,6 +25121,8 @@ in
|
||||
|
||||
pamixer = callPackage ../applications/audio/pamixer { };
|
||||
|
||||
myxer = callPackage ../applications/audio/myxer { };
|
||||
|
||||
ncpamixer = callPackage ../applications/audio/ncpamixer { };
|
||||
|
||||
pan = callPackage ../applications/networking/newsreaders/pan { };
|
||||
|
@ -236,6 +236,8 @@ let
|
||||
|
||||
ctypes = callPackage ../development/ocaml-modules/ctypes { };
|
||||
|
||||
dap = callPackage ../development/ocaml-modules/dap { };
|
||||
|
||||
decompress = callPackage ../development/ocaml-modules/decompress { };
|
||||
|
||||
diet = callPackage ../development/ocaml-modules/diet { };
|
||||
@ -930,6 +932,8 @@ let
|
||||
|
||||
parse-argv = callPackage ../development/ocaml-modules/parse-argv { };
|
||||
|
||||
path_glob = callPackage ../development/ocaml-modules/path_glob { };
|
||||
|
||||
pbkdf = callPackage ../development/ocaml-modules/pbkdf { };
|
||||
|
||||
pcap-format = callPackage ../development/ocaml-modules/pcap-format { };
|
||||
|
@ -391,6 +391,8 @@ in {
|
||||
|
||||
androguard = callPackage ../development/python-modules/androguard { };
|
||||
|
||||
angr = callPackage ../development/python-modules/angr { };
|
||||
|
||||
aniso8601 = callPackage ../development/python-modules/aniso8601 { };
|
||||
|
||||
annexremote = callPackage ../development/python-modules/annexremote { };
|
||||
@ -1341,6 +1343,8 @@ in {
|
||||
|
||||
cld2-cffi = callPackage ../development/python-modules/cld2-cffi { };
|
||||
|
||||
cle = callPackage ../development/python-modules/cle { };
|
||||
|
||||
cleo = callPackage ../development/python-modules/cleo { };
|
||||
|
||||
clevercsv = callPackage ../development/python-modules/clevercsv { };
|
||||
@ -6669,6 +6673,8 @@ in {
|
||||
|
||||
pyx = callPackage ../development/python-modules/pyx { };
|
||||
|
||||
pyxbe = callPackage ../development/python-modules/pyxbe { };
|
||||
|
||||
pyxdg = callPackage ../development/python-modules/pyxdg { };
|
||||
|
||||
pyxeoma = callPackage ../development/python-modules/pyxeoma { };
|
||||
|
Loading…
Reference in New Issue
Block a user