Merge branch 'master' into staging-next

This commit is contained in:
Martin Weinelt 2021-04-20 02:06:07 +02:00 committed by GitHub
commit 6b34489f81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 1570 additions and 755 deletions

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

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

@ -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 = [

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

@ -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 = {

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

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

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

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

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

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

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

@ -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 = [

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