From c45733e63ed85104dec314ab38e26f60b552efad Mon Sep 17 00:00:00 2001 From: xeals Date: Thu, 15 Oct 2020 19:05:13 +1100 Subject: [PATCH] all: initial port from private config --- default.nix | 94 ++- pkgs/applications/audio/mopidy/subidy.nix | 30 + .../editors/jetbrains/build-plugin.nix | 30 + .../editors/jetbrains/builder.nix | 33 + .../editors/jetbrains/common-plugins.nix | 44 + .../editors/jetbrains/idea-plugins.nix | 15 + .../applications/misc/alacritty/ligatures.nix | 145 ++++ pkgs/applications/misc/polybar/9button.patch | 13 + .../networking/protonmail-bridge/default.nix | 135 +++ .../networking/protonmail-bridge/deps.nix | 768 ++++++++++++++++++ pkgs/development/go-modules/qt/default.nix | 59 ++ pkgs/development/go-modules/qt/deps.nix | 111 +++ pkgs/development/libraries/libhl/default.nix | 34 + .../libraries/libhl/fix-link.patch | 13 + .../python-modules/py-sonic/default.nix | 22 + pkgs/os-specific/linux/pam_gnupg/default.nix | 34 + pkgs/shells/zsh/zsh-z/default.nix | 34 + pkgs/tools/misc/amdgpu-fan/default.nix | 29 + .../misc/radeon-profile-daemon/default.nix | 35 + pkgs/tools/misc/samrewritten/default.nix | 59 ++ pkgs/tools/misc/spotify-ripper/default.nix | 100 +++ .../tools/misc/spotify-ripper/fix-setup.patch | 28 + 22 files changed, 1863 insertions(+), 2 deletions(-) create mode 100644 pkgs/applications/audio/mopidy/subidy.nix create mode 100644 pkgs/applications/editors/jetbrains/build-plugin.nix create mode 100644 pkgs/applications/editors/jetbrains/builder.nix create mode 100644 pkgs/applications/editors/jetbrains/common-plugins.nix create mode 100644 pkgs/applications/editors/jetbrains/idea-plugins.nix create mode 100644 pkgs/applications/misc/alacritty/ligatures.nix create mode 100644 pkgs/applications/misc/polybar/9button.patch create mode 100644 pkgs/applications/networking/protonmail-bridge/default.nix create mode 100644 pkgs/applications/networking/protonmail-bridge/deps.nix create mode 100644 pkgs/development/go-modules/qt/default.nix create mode 100644 pkgs/development/go-modules/qt/deps.nix create mode 100644 pkgs/development/libraries/libhl/default.nix create mode 100644 pkgs/development/libraries/libhl/fix-link.patch create mode 100644 pkgs/development/python-modules/py-sonic/default.nix create mode 100644 pkgs/os-specific/linux/pam_gnupg/default.nix create mode 100644 pkgs/shells/zsh/zsh-z/default.nix create mode 100644 pkgs/tools/misc/amdgpu-fan/default.nix create mode 100644 pkgs/tools/misc/radeon-profile-daemon/default.nix create mode 100644 pkgs/tools/misc/samrewritten/default.nix create mode 100644 pkgs/tools/misc/spotify-ripper/default.nix create mode 100644 pkgs/tools/misc/spotify-ripper/fix-setup.patch diff --git a/default.nix b/default.nix index 81b6b7a..6d3aa1d 100644 --- a/default.nix +++ b/default.nix @@ -6,13 +6,103 @@ # commands such as: # nix-build -A mypackage -{ pkgs ? import {} }: +{ pkgs ? import { } }: -{ +rec { # The `lib`, `modules`, and `overlay` names are special lib = import ./lib { inherit pkgs; }; # functions modules = import ./modules; # NixOS modules overlays = import ./overlays; # nixpkgs overlays + # Alacritty with the unmerged ligature patches applied. + alacritty-ligatures = pkgs.callPackage ./pkgs/applications/misc/alacritty/ligatures.nix { + inherit (pkgs.rustPackages_1_44) rustPlatform; + inherit (pkgs.xorg) libXcursor libXxf86vm libXi; + inherit (pkgs.darwin.appls_sdk.frameworks) AppKit CoreGraphics CoreServices CoreText Foundation OpenGL; + }; + amdgpu-fan = pkgs.callPackage ./pkgs/tools/misc/amdgpu-fan { }; + + go-qt = pkgs.libsForQt512.callPackage ./pkgs/development/go-modules/qt { }; + + # A functional Jetbrains IDE-with-plugins package set. + jetbrains = + let + mkJetbrainsPlugins = import ./pkgs/applications/editors/jetbrains/common-plugins.nix { + inherit (pkgs) callPackage; + }; + mkIdeaPlugins = import ./pkgs/applications/editors/jetbrains/idea-plugins.nix { + inherit (pkgs) callPackage; + }; + + builder = import ./pkgs/applications/editors/jetbrains/builder.nix { + inherit (pkgs) lib; + }; + + jbScope = pkgs.lib.makeScope pkgs.newScope (self: pkgs.lib.makeOverridable + ({ jetbrainsPlugins ? mkJetbrainsPlugins + , ideaPlugins ? mkIdeaPlugins + }: ({ } + // jetbrainsPlugins // { inherit jetbrainsPlugins; } + // ideaPlugins // { inherit ideaPlugins; } + // { + jetbrainsWithPlugins = builder self; + })) + { }); + in + rec { + inherit (jbScope) jetbrainsWithPlugins; + clionWithPlugins = jetbrainsWithPlugins pkgs.jetbrains.clion; + ideaCommunityWithPlugins = jetbrainsWithPlugins pkgs.jetbrains.idea-community; + ideaUltimateWithPlugins = jetbrainsWithPlugins pkgs.jetbrains.idea-ultimate; + plugins = jbScope; + }; + + libhl = pkgs.callPackage ./pkgs/development/libraries/libhl { }; + + mopidy-subidy = pkgs.callPackage ./pkgs/applications/audio/mopidy/subidy.nix { + inherit (python3Packages) py-sonic; + }; + + pam_gnupg = pkgs.callPackage ./pkgs/os-specific/linux/pam_gnupg { }; + + picom-animations = pkgs.picom.overrideAttrs (oldAttrs: { + pname = "picom-animations"; + src = pkgs.fetchFromGitHub { + owner = "jonaburg"; + repo = "picom"; + rev = "d718c94"; + sha256 = "165mc53ryyxn2ybkhikmk51ay3k18mvlsym3am3mgr8cpivmf2rm"; + }; + }); + + polybar = pkgs.polybar.overrideAttrs (oldAttrs: { + # Enables an extra button in formatting, indirectly allowing the use of + # the mouse forward and backward buttons. + patches = (oldAttrs.patches or [ ]) ++ [ ./pkgs/applications/misc/polybar/9button.patch ]; + }); + + python3Packages = pkgs.recurseIntoAttrs { + py-sonic = pkgs.python3.pkgs.callPackage ./pkgs/development/python-modules/py-sonic { }; + }; + + # The one in Nixpkgs still extracts the pre-built Debian package instead + # of building from source. + protonmailBridgePackages = pkgs.libsForQt512.callPackage ./pkgs/applications/networking/protonmail-bridge { + inherit go-qt; + }; + inherit (protonmailBridgePackages) + protonmail-bridge + protonmail-bridge-headless; + + radeon-profile-daemon = pkgs.libsForQt5.callPackage ./pkgs/tools/misc/radeon-profile-daemon { }; + + samrewritten = pkgs.callPackage ./pkgs/tools/misc/samrewritten { }; + + spotify-ripper = pkgs.callPackage ./pkgs/tools/misc/spotify-ripper { + # NOTE: Not available in 20.03. + inherit (pkgs) fdk-aac-encoder; + }; + + zsh-z = pkgs.callPackage ./pkgs/shells/zsh/zsh-z { }; } diff --git a/pkgs/applications/audio/mopidy/subidy.nix b/pkgs/applications/audio/mopidy/subidy.nix new file mode 100644 index 0000000..8858b7e --- /dev/null +++ b/pkgs/applications/audio/mopidy/subidy.nix @@ -0,0 +1,30 @@ +{ stdenv +, fetchFromGitHub +, python3Packages + +, mopidy +, py-sonic +}: + +python3Packages.buildPythonApplication rec { + pname = "mopidy-subidy"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "Prior99"; + repo = pname; + rev = version; + sha256 = "0c5ghhhrj5v3yp4zmll9ari6r5c6ha8c1izwqshvadn40b02q7xz"; + }; + + propagatedBuildInputs = [ mopidy py-sonic ]; + + doCheck = false; + + meta = with stdenv.lib; { + homepage = "https://github.com/Prior99/mopidy-subidy"; + description = "Mopidy extension for playing music from Subsonic servers"; + license = licenses.bsd3; + maintainers = [ ]; + }; +} diff --git a/pkgs/applications/editors/jetbrains/build-plugin.nix b/pkgs/applications/editors/jetbrains/build-plugin.nix new file mode 100644 index 0000000..171b774 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/build-plugin.nix @@ -0,0 +1,30 @@ +{ stdenv +, fetchzip +, jetbrainsPlatforms +}: + +{ pluginId +, pname +, version +, versionId +, sha256 +, filename ? "${pname}-${version}.zip" +}: + +stdenv.mkDerivation { + inherit pname version jetbrainsPlatforms; + + src = fetchzip { + inherit sha256; + url = "https://plugins.jetbrains.com/files/${toString pluginId}/${toString versionId}/${filename}"; + }; + + installPhase = '' + mkdir $out + cp -r * $out/ + ''; + + meta = { + homepage = "https://plugins.jetbrains.com/plugin/${pluginId}-${stdenv.lib.toLower pname}"; + }; +} diff --git a/pkgs/applications/editors/jetbrains/builder.nix b/pkgs/applications/editors/jetbrains/builder.nix new file mode 100644 index 0000000..6ceb418 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/builder.nix @@ -0,0 +1,33 @@ +{ lib +}: self: + +with lib; + +package: +pluginsFun: + +let + plugins = + if isFunction pluginsFun + then pluginsFun self + else pluginsFun; + + info = builtins.parseDrvName package.name; + + badPlugins = filter (p: ! elem info.name p.jetbrainsPlatforms) plugins; + errorMsg = "plugins [ ${toString (map (p: p.name) badPlugins)} ] are not available for platform ${info.name}"; +in + +assert assertMsg (length badPlugins == 0) errorMsg; + +package.overrideAttrs (oldAttrs: { + # FIXME: versioning: could just expose upstream + name = "${info.name}-with-plugins-${info.version}"; + + inherit plugins; + installPhase = oldAttrs.installPhase + '' + for plugin in $plugins; do + ln -s "$plugin" "$out/$name/plugins/$(basename $plugin)" + done + ''; +}) diff --git a/pkgs/applications/editors/jetbrains/common-plugins.nix b/pkgs/applications/editors/jetbrains/common-plugins.nix new file mode 100644 index 0000000..f6f05f8 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/common-plugins.nix @@ -0,0 +1,44 @@ +{ callPackage }: +let + mkPlugin = callPackage ./build-plugin.nix { + jetbrainsPlatforms = [ + "clion" + "datagrip" + "goland" + "idea-community" + "idea-ultimate" + "phpstorm" + "pycharm-community" + "pycharm-professional" + "rider" + "ruby-mine" + "webstorm" + ]; + }; +in +{ + ideavim = mkPlugin { + pname = "IdeaVim"; + version = "0.57"; + pluginId = 164; + versionId = 85009; + sha256 = "1rwfwj0b0nwi7jxhzxk1r0xc190nf4i3b59i0zknpmgb4yc5clzw"; + }; + + checkstyle-idea = mkPlugin { + pname = "CheckStyle-IDEA"; + version = "5.42.0"; + pluginId = 1065; + versionId = 95757; + sha256 = "0sji3649n5zz84dlidqaklipq6vaiafxsvg0gzy3j59mvkz6dk14"; + }; + + google-java-format = mkPlugin rec { + pname = "google-java-format"; + version = "1.7.0.4"; + pluginId = 8527; + versionId = 83164; + sha256 = "1pmnn1ksiv44kdga53gi3psrm2sva4bqrxizagbr0if2n0rrvgii"; + filename = "${pname}.zip"; + }; +} diff --git a/pkgs/applications/editors/jetbrains/idea-plugins.nix b/pkgs/applications/editors/jetbrains/idea-plugins.nix new file mode 100644 index 0000000..a29616c --- /dev/null +++ b/pkgs/applications/editors/jetbrains/idea-plugins.nix @@ -0,0 +1,15 @@ +{ callPackage }: +let + mkPlugin = callPackage ./build-plugin.nix { + jetbrainsPlatforms = [ "idea-community" "idea-ultimate" ]; + }; +in +{ + spring-assistant = mkPlugin { + pname = "intellij-spring-assistant"; + version = "0.12.0"; + pluginId = 10229; + versionId = 44968; + sha256 = "13cglywzhb4j0qj0bs2jwaz2k8pxrxalv35wgkmgkxr635bxmwsj"; + }; +} diff --git a/pkgs/applications/misc/alacritty/ligatures.nix b/pkgs/applications/misc/alacritty/ligatures.nix new file mode 100644 index 0000000..19e6b94 --- /dev/null +++ b/pkgs/applications/misc/alacritty/ligatures.nix @@ -0,0 +1,145 @@ +{ stdenv +, lib +, fetchFromGitHub +, rustPlatform + +, cmake +, gzip +, installShellFiles +, makeWrapper +, ncurses +, pkgconfig +, python3 + +, expat +, fontconfig +, freetype +, libGL +, libX11 +, libXcursor +, libXi +, libXrandr +, libXxf86vm +, libxcb +, libxkbcommon +, wayland +, xdg_utils + + # Darwin Frameworks +, AppKit +, CoreGraphics +, CoreServices +, CoreText +, Foundation +, OpenGL +}: +let + rpathLibs = [ + expat + fontconfig + freetype + stdenv.cc.cc.lib # libstdc++.so.6 + libGL + libX11 + libXcursor + libXi + libXrandr + libXxf86vm + libxcb + ] ++ lib.optionals stdenv.isLinux [ + libxkbcommon + wayland + ]; + triple = + if stdenv.isLinux + then "${stdenv.platform.kernelArch}-unknown-linux-gnu" + else "x86_64-apple-darwin"; +in + +# https://github.com/alacritty/alacritty/issues/4049#issuecomment-665664761 +assert builtins.compareVersions rustPlatform.rust.rustc.version "1.43.0" >= 0; + +rustPlatform.buildRustPackage rec { + pname = "alacritty-ligatures"; + version = "0.5.0.20200908"; + + src = fetchFromGitHub { + owner = "zenixls2"; + repo = "alacritty"; + fetchSubmodules = true; + rev = "693de26a9fe9bc1252a721a6ba50ef4b34500d33"; + sha256 = "0ybmn6fjn59nnk94bwr19d3rasf5x4c7wp2fynw9s69mm4ryz0n4"; + }; + + cargoSha256 = "10ma465wy2n39l5pl3a9mz0lfxwgqbgla6s7dskzj1i1vnq2n2dy"; + + nativeBuildInputs = [ + cmake + gzip + installShellFiles + makeWrapper + ncurses + pkgconfig + python3 + ]; + + buildInputs = rpathLibs + ++ lib.optionals stdenv.isDarwin [ + AppKit + CoreGraphics + CoreServices + CoreText + Foundation + OpenGL + ]; + + outputs = [ "out" "terminfo" ]; + + postPatch = '' + substituteInPlace alacritty/src/config/mouse.rs \ + --replace xdg-open ${xdg_utils}/bin/xdg-open + ''; + + postBuild = lib.optionalString stdenv.isDarwin "make app"; + + installPhase = '' + runHook preInstall + + install -D target/${triple}/release/alacritty $out/bin/alacritty + + '' + ( + if stdenv.isDarwin then '' + mkdir $out/Applications + cp -r target/${triple}/release/osx/Alacritty.app $out/Applications/Alacritty.app + '' else '' + install -D extra/linux/Alacritty.desktop -t $out/share/applications/ + install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg + patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty + '' + ) + '' + + installShellCompletion --zsh extra/completions/_alacritty + installShellCompletion --bash extra/completions/alacritty.bash + installShellCompletion --fish extra/completions/alacritty.fish + + install -dm 755 "$out/share/man/man1" + gzip -c extra/alacritty.man > "$out/share/man/man1/alacritty.1.gz" + + install -dm 755 "$terminfo/share/terminfo/a/" + tic -xe alacritty,alacritty-direct -o "$terminfo/share/terminfo" extra/alacritty.info + mkdir -p $out/nix-support + echo "$terminfo" >> $out/nix-support/propagated-user-env-packages + + runHook postInstall + ''; + + dontPatchELF = true; + + meta = with lib; { + description = "A cross-platform, GPU-accelerated terminal emulator"; + homepage = "https://github.com/alacritty/alacritty"; + license = licenses.asl20; + maintainers = with maintainers; [ filalex77 mic92 cole-h ma27 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/misc/polybar/9button.patch b/pkgs/applications/misc/polybar/9button.patch new file mode 100644 index 0000000..1a32f45 --- /dev/null +++ b/pkgs/applications/misc/polybar/9button.patch @@ -0,0 +1,13 @@ +diff --git a/include/components/types.hpp b/include/components/types.hpp +index 8125d4b..c435f4a 100644 +--- a/include/components/types.hpp ++++ b/include/components/types.hpp +@@ -57,7 +57,7 @@ enum class controltag { + R, // Reset all open tags (B, F, T, o, u). Used at module edges + }; + +-enum class mousebtn { NONE = 0, LEFT, MIDDLE, RIGHT, SCROLL_UP, SCROLL_DOWN, DOUBLE_LEFT, DOUBLE_MIDDLE, DOUBLE_RIGHT }; ++enum class mousebtn { NONE = 0, LEFT, MIDDLE, RIGHT, SCROLL_UP, SCROLL_DOWN, DOUBLE_LEFT, DOUBLE_MIDDLE, DOUBLE_RIGHT, EXTRA }; + + enum class strut { + LEFT = 0, diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix new file mode 100644 index 0000000..5086f3c --- /dev/null +++ b/pkgs/applications/networking/protonmail-bridge/default.nix @@ -0,0 +1,135 @@ +{ stdenv +, lib +, fetchFromGitHub +, buildGoModule + +, go +, go-qt +, libsecret +, pkg-config +, qtbase +, qtdoc +}: + +let + + common = + { pname + , tags + , ... + }@args: + buildGoModule (lib.recursiveUpdate args rec { + inherit pname; + version = "1.3.2"; + + src = fetchFromGitHub { + owner = "ProtonMail"; + repo = "proton-bridge"; + rev = "v${version}"; + sha256 = "05nj8hxr7ay0r2r46k1pxjb96swzkd67k1n0kz9203sjgax5y6bw"; + }; + + vendorSha256 = "14grhpxld9ajg28b0zwc39kwmikxqy9pm42nfdc04g6fmaxvi5c9"; + + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ + pkg-config + libsecret + ]; + + buildFlagsArray = + let + t = "github.com/ProtonMail/proton-bridge/pkg/constants"; + in + [ + "-tags=${tags}" + '' + -ldflags= + -X ${t}.Version=${version} + -X ${t}.Revision=unknown + -X ${t}.BuildDate=unknown + '' + ]; + + meta = with lib; { + description = "Integrate ProtonMail paid account with any program that supports IMAP and SMTP"; + homepage = "https://protonmail.com"; + license = licenses.gpl3; + plaforms = platforms.x86_64; + }; + }); + +in + +{ + protonmail-bridge = common { + pname = "protonmail-bridge"; + + tags = "pmapi_prod"; + + QT_PKG_CONFIG = "true"; + QT_VERSION = qtbase.version; + + nativeBuildInputs = [ + go-qt + qtbase + ]; + + buildPhase = '' + cp cmd/Desktop-Bridge/main.go . + + ## Enable writable vendor + GOMODULE=gomodule + mv vendor $GOMODULE-vendor + mkdir vendor + readarray -t files < <(find $GOMODULE-vendor/ -type f | grep -v github.com/therecipe/qt | sed "s/$GOMODULE-//") + for f in "''${files[@]}"; do + mkdir -p $(dirname $f) + cp -s $PWD/$GOMODULE-$f $f + done + unset GOMODULE + + ## + mkdir -p vendor/github.com/therecipe + cp -r gomodule-vendor/github.com/therecipe/qt vendor/github.com/therecipe/qt + chmod -R a+w vendor/github.com/therecipe/qt + + # Add vendor to GOPATH because fuck + mkdir -p $GOPATH + ln -s $PWD/vendor $GOPATH/src + + qtsetup check + GOROOT=${go}/share/go qtdeploy "''${buildFlagsArray[@]}" build desktop + ''; + + meta.broken = true; + }; + + protonmail-bridge-headless = common rec { + pname = "protonmail-bridge-headless"; + + tags = "pmapi_prod nogui"; + + # FIXME: There's something fucky going on in the buildFlagsArray + # substitution. I shouldn't need to do this. + buildPhase = + let + t = "github.com/ProtonMail/proton-bridge/pkg/constants"; + in + '' + runHook preBuild + + go install \ + -tags="${tags}" \ + -ldflags="-X ${t}.Version=1.3.2 -X ${t}.Revision=unknown -X ${t}.BuildDate=unknown" \ + cmd/Desktop-Bridge/main.go + mv $GOPATH/bin/main $GOPATH/bin/Desktop-Bridge + + runHook postBuild + ''; + + # Fix up name. + postInstall = '' + mv $out/bin/Desktop-Bridge $out/bin/protonmail-bridge + ''; + }; +} diff --git a/pkgs/applications/networking/protonmail-bridge/deps.nix b/pkgs/applications/networking/protonmail-bridge/deps.nix new file mode 100644 index 0000000..7ae392d --- /dev/null +++ b/pkgs/applications/networking/protonmail-bridge/deps.nix @@ -0,0 +1,768 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/0xAX/notificator"; + fetch = { + type = "git"; + url = "https://github.com/0xAX/notificator"; + rev = "3962a5ea8da1"; + sha256 = "1lkn6mmghsd4a2h3na8x0r5xgckjn3c0v5vsp6bzhl2k1zxb640p"; + }; + } + { + goPackagePath = "github.com/BurntSushi/toml"; + fetch = { + type = "git"; + url = "https://github.com/BurntSushi/toml"; + rev = "v0.3.1"; + sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"; + }; + } + { + goPackagePath = "github.com/ProtonMail/go-appdir"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-appdir"; + rev = "v1.1.0"; + sha256 = "1pl43h5f79g2r0z98glrxasbb69yzigpd85csl7zmyhg63vzbkqw"; + }; + } + { + goPackagePath = "github.com/ProtonMail/go-apple-mobileconfig"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-apple-mobileconfig"; + rev = "7ea9927a11f6"; + sha256 = "1vlm9m54xmq0r8bhgwzdmxnxf97sz01lgi6lw8pcjbljmzb9l75f"; + }; + } + { + goPackagePath = "github.com/ProtonMail/go-autostart"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-autostart"; + rev = "c5272053443a"; + sha256 = "0cjnsbqrkhlapma2070cqcxr4wkvv55is3byqn8zmkzi0l3217nf"; + }; + } + { + goPackagePath = "github.com/ProtonMail/go-imap-id"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-imap-id"; + rev = "ed0baee567ee"; + sha256 = "1kljw64pi3kabbd3gi7zy9wqzaypsxrdi5mfwf6akl438bq44jm4"; + }; + } + { + goPackagePath = "github.com/ProtonMail/go-mime"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-mime"; + rev = "09454e3dbe72"; + sha256 = "1ncca6191nf0lsfhhhdxdbhxg3b2q1cmvjhq2428g0b50dlfkrnn"; + }; + } + { + goPackagePath = "github.com/ProtonMail/go-vcard"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-vcard"; + rev = "33aaa0a0c8a5"; + sha256 = "19cify6lxd2yirqc92yfgzvn5qlc8a01a2kxjdg83jv0lx6ps26q"; + }; + } + { + goPackagePath = "github.com/ProtonMail/gopenpgp"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/gopenpgp"; + rev = "d398098113ed"; + sha256 = "0ry69mymb6q00g4khdbzllrz7b44zhxvdzavhz6936n9dzsay13v"; + }; + } + { + goPackagePath = "github.com/abiosoft/ishell"; + fetch = { + type = "git"; + url = "https://github.com/abiosoft/ishell"; + rev = "v2.0.0"; + sha256 = "11r6l133aaz6khm60x0a410ckpzvqzv2az7z5b088c2vddnp538r"; + }; + } + { + goPackagePath = "github.com/abiosoft/readline"; + fetch = { + type = "git"; + url = "https://github.com/abiosoft/readline"; + rev = "155bce2042db"; + sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r"; + }; + } + { + goPackagePath = "github.com/allan-simon/go-singleinstance"; + fetch = { + type = "git"; + url = "https://github.com/allan-simon/go-singleinstance"; + rev = "79edcfdc2dfc"; + sha256 = "06xrxifz5cd98iji7v46zq9xf63zf77sqbr72w1ics3s2hyfkpjz"; + }; + } + { + goPackagePath = "github.com/andybalholm/cascadia"; + fetch = { + type = "git"; + url = "https://github.com/andybalholm/cascadia"; + rev = "v1.1.0"; + sha256 = "1slh68ysbixc21gbni4msrgq971n59gnn2x3ys196jd413a6qf0f"; + }; + } + { + goPackagePath = "github.com/cention-sany/utf7"; + fetch = { + type = "git"; + url = "https://github.com/cention-sany/utf7"; + rev = "26cad61bd60a"; + sha256 = "1jy15ryfcln1iwchrksqyrnyfy41gisymm4f9sr1d73ja029bznm"; + }; + } + { + goPackagePath = "github.com/certifi/gocertifi"; + fetch = { + type = "git"; + url = "https://github.com/certifi/gocertifi"; + rev = "c7c1fbc02894"; + sha256 = "018bsy1vclsdk2kns9f37giabibg3kggk3vpj0yr3dv0k72gzybk"; + }; + } + { + goPackagePath = "github.com/chzyer/logex"; + fetch = { + type = "git"; + url = "https://github.com/chzyer/logex"; + rev = "v1.1.10"; + sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4"; + }; + } + { + goPackagePath = "github.com/chzyer/test"; + fetch = { + type = "git"; + url = "https://github.com/chzyer/test"; + rev = "a1ea475d72b1"; + sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k"; + }; + } + { + goPackagePath = "github.com/cpuguy83/go-md2man"; + fetch = { + type = "git"; + url = "https://github.com/cpuguy83/go-md2man"; + rev = "f79a8a8ca69d"; + sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"; + }; + } + { + goPackagePath = "github.com/cucumber/godog"; + fetch = { + type = "git"; + url = "https://github.com/cucumber/godog"; + rev = "v0.8.1"; + sha256 = "00bplmx3r7mjaxyf1ky1mh9ps17p78656xjpkqf3wkfhchssm3ny"; + }; + } + { + goPackagePath = "github.com/danieljoos/wincred"; + fetch = { + type = "git"; + url = "https://github.com/danieljoos/wincred"; + rev = "v1.0.2"; + sha256 = "1ym8mygjrf3rw1qka9irw76b2yisr2l5pq2w581s40yldnbfq4lc"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/docker/docker-credential-helpers"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/docker-credential-helpers"; + rev = "0326642117d8"; + sha256 = "02qfw1w6v14kfjlc6slg7hvv2raan5263ivymdn2pjm3hdcgs7lh"; + }; + } + { + goPackagePath = "github.com/emersion/go-imap"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-imap"; + rev = "0e686f0e855f"; + sha256 = "1gijqy3wq6lbqbrljl4l12w5snji3c9fpvywhk9wyd56mdsy7wyr"; + }; + } + { + goPackagePath = "github.com/emersion/go-imap-appendlimit"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-imap-appendlimit"; + rev = "beeb382f2a42"; + sha256 = "089kgnryvignl9z5c3fi5bxyc3jl7jgmz6ykhk73n8nqp8kgi43b"; + }; + } + { + goPackagePath = "github.com/emersion/go-imap-idle"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-imap-idle"; + rev = "e03ba1e0ed89"; + sha256 = "0yavndwl9g3q4j97659kq1mpyc22q27vq0lg0f7v704irmbbkanp"; + }; + } + { + goPackagePath = "github.com/emersion/go-imap-move"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-imap-move"; + rev = "88aef42b0f1d"; + sha256 = "006l76qxkf7gnb0kc7r9xmxg7nmmwfw8sf5lsg05093rwcg232f4"; + }; + } + { + goPackagePath = "github.com/emersion/go-imap-quota"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-imap-quota"; + rev = "20f0ba8904de"; + sha256 = "1qvhzsm0wjg0ndk963l9wcmdiyacbrmslhvmg1zhj3k9np41ravv"; + }; + } + { + goPackagePath = "github.com/emersion/go-imap-specialuse"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-imap-specialuse"; + rev = "ba031ced6a62"; + sha256 = "0f8rxgr4z5a7nphhz6vnsqgjr04wwrvdcnsxp5rl2lh60yvj3wig"; + }; + } + { + goPackagePath = "github.com/emersion/go-imap-unselect"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-imap-unselect"; + rev = "1e6dc73ac8fe"; + sha256 = "0higgjn41ksgsl11zphljbz690i17swzhfkij51dghjnj9q287ff"; + }; + } + { + goPackagePath = "github.com/emersion/go-sasl"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-sasl"; + rev = "430746ea8b9b"; + sha256 = "11rhbayr1w3zhpl3q7gd6i15qz97pk0k4xs0n39m91hrgl1fj03c"; + }; + } + { + goPackagePath = "github.com/emersion/go-smtp"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/go-smtp"; + rev = "8261df20d309"; + sha256 = "0n6k7xbffzsxfjcc74q21nh8dp5s44v3xh9hrsi7a147n8qm83iq"; + }; + } + { + goPackagePath = "github.com/emersion/go-textwrapper"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-textwrapper"; + rev = "d0e65e56babe"; + sha256 = "1nw8qpjjbpkz49wd19yg2qsln1dmdfxi83wp2aa819cv6xxf2y7l"; + }; + } + { + goPackagePath = "github.com/emersion/go-vcard"; + fetch = { + type = "git"; + url = "https://github.com/emersion/go-vcard"; + rev = "8856043f13c5"; + sha256 = "1dzw5awqbkf2nc09ynmn3zlylj4n1na96rziv5z8p42b1bmbklwk"; + }; + } + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "v1.9.0"; + sha256 = "086z8ssmr1fn9ba4mqnw7pnccfpys6l5yfhvycv1gdrsk7n27mvs"; + }; + } + { + goPackagePath = "github.com/flynn-archive/go-shlex"; + fetch = { + type = "git"; + url = "https://github.com/flynn-archive/go-shlex"; + rev = "3f9db97f8568"; + sha256 = "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia"; + }; + } + { + goPackagePath = "github.com/getsentry/raven-go"; + fetch = { + type = "git"; + url = "https://github.com/getsentry/raven-go"; + rev = "v0.2.0"; + sha256 = "0imfwmsb72168fqandf2lxhzhngf2flxhzaar8hcnnfjv2a291lf"; + }; + } + { + goPackagePath = "github.com/go-resty/resty"; + fetch = { + type = "git"; + url = "https://github.com/go-resty/resty"; + rev = "v2.2.0"; + sha256 = "0khfcq07kq6z2vq0i42an8fd16pl1rc980rlf7c1x4szsf8qcajm"; + }; + } + { + goPackagePath = "github.com/go-test/deep"; + fetch = { + type = "git"; + url = "https://github.com/go-test/deep"; + rev = "v1.0.2"; + sha256 = "1dax5bbp95lvkns0jjwf6l3rqj5q4xxd37whpqa8nyyjcakdxnqd"; + }; + } + { + goPackagePath = "github.com/gogs/chardet"; + fetch = { + type = "git"; + url = "https://github.com/gogs/chardet"; + rev = "2404f7772561"; + sha256 = "1dki2pqhnzcmzlqrq4d4jwknnjxm82xqnmizjjdblb6h98ans1cd"; + }; + } + { + goPackagePath = "github.com/golang/mock"; + fetch = { + type = "git"; + url = "https://github.com/golang/mock"; + rev = "v1.4.3"; + sha256 = "1p37xnja1dgq5ykx24n7wincwz2gahjh71b95p8vpw7ss2g8j8wx"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "v0.4.0"; + sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2"; + }; + } + { + goPackagePath = "github.com/gopherjs/gopherjs"; + fetch = { + type = "git"; + url = "https://github.com/gopherjs/gopherjs"; + rev = "3e4dfb77656c"; + sha256 = "0bmapn4dskpr4a79kcr5irkw19px4a71ls5gspffxiva7sapgyvw"; + }; + } + { + goPackagePath = "github.com/hashicorp/errwrap"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/errwrap"; + rev = "v1.0.0"; + sha256 = "0slfb6w3b61xz04r32bi0a1bygc82rjzhqkxj2si2074wynqnr1c"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-multierror"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-multierror"; + rev = "v1.0.0"; + sha256 = "00nyn8llqzbfm8aflr9kwsvpzi4kv8v45c141v88xskxp5xf6z49"; + }; + } + { + goPackagePath = "github.com/jameskeane/bcrypt"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/bcrypt"; + rev = "7509ea014998"; + sha256 = "12xi8i4sb6q4h4wd6w1phqpzxpff5c629ard8cnkjp7qmznvcc20"; + }; + } + { + goPackagePath = "github.com/jaytaylor/html2text"; + fetch = { + type = "git"; + url = "https://github.com/jaytaylor/html2text"; + rev = "61d9dc4d7195"; + sha256 = "19cn6k8anx8w2ar8kwza6vlijim2xbj4hqxy1m79y0m386b2hapl"; + }; + } + { + goPackagePath = "github.com/jhillyerd/enmime"; + fetch = { + type = "git"; + url = "https://github.com/jhillyerd/enmime"; + rev = "v0.8.0"; + sha256 = "1wzz3hzf8bnn0wbxznzrfdrs4x7qxdgqpf1xirlsisq8z0r8hn9z"; + }; + } + { + goPackagePath = "github.com/kardianos/osext"; + fetch = { + type = "git"; + url = "https://github.com/kardianos/osext"; + rev = "2bc1f35cddc0"; + sha256 = "1pvrbrvmrf4mx0fxbfaphbzgqgwn8v6lkfk2vyrs0znxrs1xyc5r"; + }; + } + { + goPackagePath = "github.com/keybase/go-keychain"; + fetch = { + type = "git"; + url = "https://github.com/keybase/go-keychain"; + rev = "86d4642e4ce2"; + sha256 = "05prxx2bbcqwk5lwk1gdqsrwy256mp4k4im316h9ar3sh42frha6"; + }; + } + { + goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; + fetch = { + type = "git"; + url = "https://github.com/konsorten/go-windows-terminal-sequences"; + rev = "v1.0.2"; + sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7"; + }; + } + { + goPackagePath = "github.com/logrusorgru/aurora"; + fetch = { + type = "git"; + url = "https://github.com/logrusorgru/aurora"; + rev = "e9ef32dff381"; + sha256 = "19laya9dav84miw3d0c9vgiv577wzrhydv5mdiii59sgbd780hhq"; + }; + } + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "v0.1.4"; + sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "v0.0.11"; + sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "v0.0.4"; + sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs"; + }; + } + { + goPackagePath = "github.com/miekg/dns"; + fetch = { + type = "git"; + url = "https://github.com/miekg/dns"; + rev = "v1.1.29"; + sha256 = "1bkk930cg46w1akii60bqqkgy9h9axlcfnqk252r6w8qqpf4z5hh"; + }; + } + { + goPackagePath = "github.com/myesui/uuid"; + fetch = { + type = "git"; + url = "https://github.com/myesui/uuid"; + rev = "v1.0.0"; + sha256 = "1si8cfjin9dyzprnyvfk8pckbsvg97hzs9hffz91505lpidlb9bc"; + }; + } + { + goPackagePath = "github.com/nsf/jsondiff"; + fetch = { + type = "git"; + url = "https://github.com/nsf/jsondiff"; + rev = "8443391ee9b6"; + sha256 = "1zxk0mzil5x197zaqjld403f3vvzilgvciq1z62zl1c1vbwbpwch"; + }; + } + { + goPackagePath = "github.com/olekukonko/tablewriter"; + fetch = { + type = "git"; + url = "https://github.com/olekukonko/tablewriter"; + rev = "v0.0.1"; + sha256 = "0hh95glg7d2md185r03wn52j2r33jc4zil0qvcrs66ka7bdxi7vj"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.9.1"; + sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/russross/blackfriday"; + fetch = { + type = "git"; + url = "https://github.com/russross/blackfriday"; + rev = "v2.0.1"; + sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"; + }; + } + { + goPackagePath = "github.com/saintfish/chardet"; + fetch = { + type = "git"; + url = "https://github.com/saintfish/chardet"; + rev = "3af4cd4741ca"; + sha256 = "0czh50md64k9lbllayq0asir3174saxb88yzxrh640yhfxd98pcb"; + }; + } + { + goPackagePath = "github.com/shurcooL/sanitized_anchor_name"; + fetch = { + type = "git"; + url = "https://github.com/shurcooL/sanitized_anchor_name"; + rev = "v1.0.0"; + sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "v1.4.2"; + sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x"; + }; + } + { + goPackagePath = "github.com/skratchdot/open-golang"; + fetch = { + type = "git"; + url = "https://github.com/skratchdot/open-golang"; + rev = "eef842397966"; + sha256 = "0n6387csjn024db8wldadsiy8ljz7lk7szl6ls28fcbkax7rw86y"; + }; + } + { + goPackagePath = "github.com/ssor/bom"; + fetch = { + type = "git"; + url = "https://github.com/ssor/bom"; + rev = "6386211fdfcf"; + sha256 = "09g5496ifwqxqclh2iw58plcwcz0sczlnxwqxzwmnl4shdl371ld"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.2.0"; + sha256 = "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.5.1"; + sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"; + }; + } + { + goPackagePath = "github.com/therecipe/qt"; + fetch = { + type = "git"; + url = "https://github.com/therecipe/qt"; + rev = "5074eb6d8c41"; + sha256 = "1zpil531gjravag76p1032c7wizpskzanymdpc74rs8ixckws9zi"; + }; + } + { + goPackagePath = "github.com/twinj/uuid"; + fetch = { + type = "git"; + url = "https://github.com/twinj/uuid"; + rev = "v1.0.0"; + sha256 = "1si8cfjin9dyzprnyvfk8pckbsvg97hzs9hffz91505lpidlb9bc"; + }; + } + { + goPackagePath = "github.com/urfave/cli"; + fetch = { + type = "git"; + url = "https://github.com/urfave/cli"; + rev = "v1.22.3"; + sha256 = "1lz6i6h4mcb4zqclj2lgy34hwpj1bpkxwzkgrqikfsd8pp9wyq9q"; + }; + } + { + goPackagePath = "go.etcd.io/bbolt"; + fetch = { + type = "git"; + url = "https://github.com/etcd-io/bbolt"; + rev = "v1.3.3"; + sha256 = "0dn0zngks9xiz0rrrb3911f73ghl64z84jsmzai2yfmzqr7cdkqc"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://github.com/ProtonMail/crypto"; + rev = "d3d8a14a4d4f"; + sha256 = "1w5q5snw1nqsdwqffvk0rlmsqx5b6mpfi45adr2j4lzzpw1ab03a"; + }; + } + { + goPackagePath = "golang.org/x/mod"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/mod"; + rev = "c90efee705ee"; + sha256 = "0i5md645rmcy5z5ij9ng428k9rz4g3k1kjy3blsq1264rn426gdf"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "244492dfa37a"; + sha256 = "0vm2q44phz4vjnzq9428rjk58c82fxf003whczp7c9ryn9fazh7s"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "112230192c58"; + sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "33540a1f6037"; + sha256 = "0fjcv0vzvi6za0b4xmnk3932pr9f9gczzf03y0kgq3ry9rqg169y"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.2"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "49a3e744a425"; + sha256 = "0xx4gv9wpv36crk7gv7imf5vzzs2mz7zla2q2jkck3xnzff8fw3v"; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/xerrors"; + rev = "9bdfabe68543"; + sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c"; + }; + } + { + goPackagePath = "gopkg.in/check.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/check.v1"; + rev = "20d25e280405"; + sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"; + }; + } + { + goPackagePath = "gopkg.in/stretchr/testify.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/stretchr/testify.v1"; + rev = "v1.2.2"; + sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "v2.2.2"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } + { + goPackagePath = "rsc.io/quote"; + fetch = { + type = "git"; + url = "https://github.com/rsc/quote"; + rev = "v3.1.0"; + sha256 = "0nvv97hwwrl1mx5gzsbdm1ndnwpg3m7i2jb10ig9wily7zmvki0i"; + }; + } + { + goPackagePath = "rsc.io/sampler"; + fetch = { + type = "git"; + url = "https://github.com/rsc/sampler"; + rev = "v1.3.0"; + sha256 = "0byxk2ynba50py805kcvbvjzh59l1r308i1xgyzpw6lff4xx9xjh"; + }; + } +] diff --git a/pkgs/development/go-modules/qt/default.nix b/pkgs/development/go-modules/qt/default.nix new file mode 100644 index 0000000..e291bc8 --- /dev/null +++ b/pkgs/development/go-modules/qt/default.nix @@ -0,0 +1,59 @@ +{ stdenv +, fetchFromGitHub +, buildGoModule +, makeWrapper + +, pkg-config +, qmake +}: + +buildGoModule rec { + pname = "go-qt"; + version = "20200701"; + + src = fetchFromGitHub { + owner = "therecipe"; + repo = "qt"; + rev = "7f61353ee73e225efd0b08dacf0ef32f41285c71"; + sha256 = "1qwyi3rr6x49w2cbxhsyg3sbyxib7l08g6j6z1mb5w22bdgmcy7c"; + }; + + vendorSha256 = "0g1qn73amcrk669614wrqbgzjqg0jhp61rwy3a2pl3z74j3536b9"; + subPackages = [ "cmd/..." ]; + + nativeBuildInputs = [ makeWrapper ]; + + # Fixes inconsistent vendoring. + postPatch = '' + cat <>go.mod + require ( + github.com/therecipe/env_darwin_amd64_513 v0.0.0-20190626001412-d8e92e8db4d0 + github.com/therecipe/env_linux_amd64_513 v0.0.0-20190626000307-e137a3934da6 + github.com/therecipe/env_windows_amd64_513 v0.0.0-20190626000028-79ec8bd06fb2 + github.com/therecipe/env_windows_amd64_513/Tools v0.0.0-20190626000028-79ec8bd06fb2 + github.com/therecipe/qt/internal/binding/files/docs/5.12.0 v0.0.0-20200701200531-7f61353ee73e + github.com/therecipe/qt/internal/binding/files/docs/5.13.0 v0.0.0-20200701200531-7f61353ee73e + ) + EOM + ''; + + doCheck = true; + checkPhase = '' + $GOPATH/bin/qtsetup test + ''; + + postFixup = '' + for bin in $out/bin/*; do + wrapProgram $bin \ + --set QT_PKG_CONFIG true \ + --prefix PATH : ${pkg-config}/bin \ + --prefix PATH : ${qmake}/bin + done + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/therecipe/qt"; + description = "Qt bindings for Go"; + license = licenses.lgpl3; + }; +} diff --git a/pkgs/development/go-modules/qt/deps.nix b/pkgs/development/go-modules/qt/deps.nix new file mode 100644 index 0000000..f85db3f --- /dev/null +++ b/pkgs/development/go-modules/qt/deps.nix @@ -0,0 +1,111 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/gopherjs/gopherjs"; + fetch = { + type = "git"; + url = "https://github.com/gopherjs/gopherjs"; + rev = "bd77b112433e"; + sha256 = "0bsj69jb0glfvqhqld4c78840iagd0iy2b92878i5w4sgp40k7i1"; + }; + } + { + goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; + fetch = { + type = "git"; + url = "https://github.com/konsorten/go-windows-terminal-sequences"; + rev = "v1.0.2"; + sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "v1.4.1"; + sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.2.0"; + sha256 = "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.3.0"; + sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://github.com/golang/crypto"; + rev = "df01cb2cc480549d72034218dd98bf97671450ac"; + sha256 = "1fhz0rym06j0fds0wg8xf6i9mm37m6qgdv83qxfh3nh0mgzf19qs"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://github.com/golang/net"; + rev = "afa5a82059c6356159f699d81beff22a81842231"; + sha256 = "1zhcr1m7n550m0lqjqg1rl2qrnghkl3a25vcm6cgpiqvk89f8lba"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://github.com/golang/sys"; + rev = "e8e3143a4f4a00f1fafef0dd82ba78223281b01b"; + sha256 = "02pdj4gr658r99kqwxy6v4lb8w2h0zaiqq1jyqrsxqiyapijhw87"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://github.com/golang/text"; + rev = "f4905fbd45b6790792202848439271c74074bbfd"; + sha256 = "184d6ap2g92jvx0532lymdqbnx9vi9ips4dq5lnqbby0caccc6r1"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://github.com/golang/tools"; + rev = "aa740d4807891cb493e9f727901baf334b9fabce"; + sha256 = "0431y2xw39dss0ldxhbmm7ip4d2cr2w9km2a5psgwan6v481kz0a"; + }; + } +] diff --git a/pkgs/development/libraries/libhl/default.nix b/pkgs/development/libraries/libhl/default.nix new file mode 100644 index 0000000..d75faf7 --- /dev/null +++ b/pkgs/development/libraries/libhl/default.nix @@ -0,0 +1,34 @@ +{ stdenv +, fetchFromGitHub + +, coreutils +, autoreconfHook +}: + +stdenv.mkDerivation rec { + pname = "libhl"; + version = "3.1"; + + src = fetchFromGitHub { + owner = "xant"; + repo = pname; + rev = "${pname}-${version}"; + sha256 = "05mrp5rmki0wghdpmcgvsi8lqhfshifbmhp1qlkd89fb2srq91lf"; + }; + + nativeBuildInputs = [ + autoreconfHook + ]; + + patches = [ ./fix-link.patch ]; + + preInstall = '' + mkdir -p $out/include $out/lib + ''; + + meta = { + homepage = "https://github.com/xant/libhl"; + description = "Simple and fast C library implementing a thread-safe API to manage hash-tables, linked lists, lock-free ring buffers and queues "; + license = stdenv.lib.licenses.lgpl3; + }; +} diff --git a/pkgs/development/libraries/libhl/fix-link.patch b/pkgs/development/libraries/libhl/fix-link.patch new file mode 100644 index 0000000..ca88661 --- /dev/null +++ b/pkgs/development/libraries/libhl/fix-link.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile.in b/Makefile.in +index 97b3901..4191da6 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -69,7 +69,7 @@ static: objects + + .PHONY: shared + shared: objects +- ./libtool --mode=link $(CC) $(LIBS) $(LDFLAGS) -Wc,$(SHAREDFLAGS) -o $(builddir)/libhl.$(SHAREDEXT) $(builddir)/*.o ++ ./libtool --mode=link $(CC) $(LIBS) $(LDFLAGS) -Wc,$(SHAREDFLAGS) -o $(builddir)/libhl.$(SHAREDEXT) .libs/*.o + + %.o : $(srcdir)/src/%.c + ./libtool --mode=compile $(CC) -c $(CFLAGS) $< -o $(builddir)/$@ diff --git a/pkgs/development/python-modules/py-sonic/default.nix b/pkgs/development/python-modules/py-sonic/default.nix new file mode 100644 index 0000000..8624755 --- /dev/null +++ b/pkgs/development/python-modules/py-sonic/default.nix @@ -0,0 +1,22 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +}: + +buildPythonPackage rec { + pname = "py-sonic"; + version = "0.7.7"; + + src = fetchPypi { + inherit pname version; + sha256 = "0wh2phg8h02a6vlpqd0widd6g8ng142vzmk8hpyx0bnwn2i45sjc"; + }; + + doCheck = false; + + meta = { + homepage = "https://stuffivelearned.org/doku.php?id=programming:python:py-sonic"; + license = stdenv.lib.licenses.gpl3; + description = "A python wrapper library for the Subsonic REST API"; + }; +} diff --git a/pkgs/os-specific/linux/pam_gnupg/default.nix b/pkgs/os-specific/linux/pam_gnupg/default.nix new file mode 100644 index 0000000..80aea76 --- /dev/null +++ b/pkgs/os-specific/linux/pam_gnupg/default.nix @@ -0,0 +1,34 @@ +{ stdenv +, fetchFromGitHub + +, autoreconfHook +, gnupg +, pam +}: + +stdenv.mkDerivation rec { + pname = "pam-gnupg"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "cruegge"; + repo = "pam-gnupg"; + rev = "v${version}"; + sha256 = "0b70mazyvcbg6xyqllm62rwhbz0y94pcy202db1qyy4w8466bhsw"; + }; + + nativeBuildInputs = [ + autoreconfHook + gnupg + ]; + buildInputs = [ pam ]; + + configureFlags = [ "--with-moduledir=\${out}/lib/security" ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/cruegge/pam-gnupg"; + description = "Unlock GnuPG keys on login"; + license = licenses.gpl3; + inherit (pam.meta) platforms; + }; +} diff --git a/pkgs/shells/zsh/zsh-z/default.nix b/pkgs/shells/zsh/zsh-z/default.nix new file mode 100644 index 0000000..aaebaae --- /dev/null +++ b/pkgs/shells/zsh/zsh-z/default.nix @@ -0,0 +1,34 @@ +{ stdenv +, fetchFromGitHub +, installShellFiles + +, zsh +}: + +stdenv.mkDerivation { + pname = "zsh-z"; + version = "2020.06.30.ae71aab"; + + src = fetchFromGitHub { + owner = "agkozak"; + repo = "zsh-z"; + rev = "ae71aabec5472095b01d25b4c341adb349c277f4"; + sha256 = "1b3ad39l90jqzvfym6xl7lxsmab0anmjs7viiz8ldxddad9106b0"; + }; + + nativeBuildInputs = [ installShellFiles ]; + + propogatedBuildInputs = [ zsh ]; + + installPhase = '' + install -D zsh-z.plugin.zsh \ + $out/share/zsh-z/zsh-z.zsh + installShellCompletion --zsh _zshz + ''; + + meta = { + description = ''Jump quickly to directories that you have visited "frecently." A native ZSH port of z.sh.''; + homepage = "https://github.com/agkozak/zsh-z"; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/pkgs/tools/misc/amdgpu-fan/default.nix b/pkgs/tools/misc/amdgpu-fan/default.nix new file mode 100644 index 0000000..37a7742 --- /dev/null +++ b/pkgs/tools/misc/amdgpu-fan/default.nix @@ -0,0 +1,29 @@ +{ stdenv +, fetchFromGitHub + +, python3Packages +}: + +python3Packages.buildPythonApplication rec { + pname = "amdgpu-fan"; + version = "0.0.6"; + + src = fetchFromGitHub { + repo = pname; + owner = "chestm007"; + rev = version; + sha256 = "1ngfrk6agk8wz0q9426lwrqhbgxc98hrsv0kn6wgz25j1rv9332b"; + }; + + propagatedBuildInputs = with python3Packages; [ + numpy + pyyaml + ]; + + meta = with stdenv.lib; { + description = "Fan controller for AMD graphics cards running the amdgpu driver on Linux"; + homepage = "https://github.com/chestm007/amdgpu-fan"; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/misc/radeon-profile-daemon/default.nix b/pkgs/tools/misc/radeon-profile-daemon/default.nix new file mode 100644 index 0000000..7e31175 --- /dev/null +++ b/pkgs/tools/misc/radeon-profile-daemon/default.nix @@ -0,0 +1,35 @@ +{ stdenv +, fetchFromGitHub + +, qtbase +, qmake +}: + +stdenv.mkDerivation rec { + pname = "radeon-profile-daemon"; + version = "20190603"; + + nativeBuildInputs = [ qmake ]; + buildInputs = [ qtbase ]; + + src = ( + fetchFromGitHub { + owner = "marazmista"; + repo = "radeon-profile-daemon"; + rev = version; + sha256 = "06qxq2hv3l9shna8x5d9awbdm9pbwlc6vckcr63kf37rrs8ykk0j"; + } + ) + "/radeon-profile-daemon"; + + preConfigure = '' + substituteInPlace radeon-profile-daemon.pro \ + --replace "/usr/" "$out/" + ''; + + meta = with stdenv.lib; { + description = "System daemon for reading current clocks of AMD Radeon cards"; + homepage = "https://github.com/marazmista/radeon-profile-daemon"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/misc/samrewritten/default.nix b/pkgs/tools/misc/samrewritten/default.nix new file mode 100644 index 0000000..c756b3c --- /dev/null +++ b/pkgs/tools/misc/samrewritten/default.nix @@ -0,0 +1,59 @@ +{ stdenv +, fetchFromGitHub +, makeWrapper + +, curl +, gnumake +, gnutls +, gtk3 +, gtkmm3 +, pkg-config +, yajl +}: + +stdenv.mkDerivation rec { + pname = "SamRewritten"; + version = "2.0"; + + src = fetchFromGitHub { + owner = "PaulCombal"; + repo = pname; + rev = "202005"; + sha256 = "0zcb6cmzk4fvbf0rkyyfvlnh9mhi0wz89parprkz6vxrj65ph1f6"; + }; + + nativeBuildInputs = [ gnumake pkg-config ]; + buildInputs = [ + curl + gnutls + gtk3 + gtkmm3 + yajl + ]; + + NIX_CFLAGS_LINK = "-pthread"; + + # FIXME: Use `make install` after the next release + # FIXME: Get `substituteInPlace` working + installPhase = '' + mkdir -p $out/lib/SamRewritten/{bin,glade,assets} + mkdir -p $out/share/icons/hicolor/{64x64,256x256}/apps + mkdir -p $out/share/applications + mkdir -p $out/bin + cp bin/launch.sh bin/samrewritten bin/libsteam_api.so $out/lib/SamRewritten/bin/ + ln -s $out/lib/SamRewritten/bin/launch.sh $out/bin/samrewritten + cp glade/main_window.glade $out/lib/SamRewritten/glade/main_window.glade + cp assets/icon_64.png $out/share/icons/hicolor/64x64/apps/samrewritten.png + cp assets/icon_256.png $out/share/icons/hicolor/256x256/apps/samrewritten.png + cp assets/icon_256.png $out/lib/SamRewritten/assets/ + + substitute package/samrewritten.desktop $out/share/applications/samrewritten.desktop \ + --replace /usr/bin/samrewritten $out/bin/samrewritten + ''; + + meta = with stdenv.lib; { + description = "Steam Achievement Manager For Linux"; + homepage = "https://github.com/PaulCombal/SamRewritten"; + license = licenses.gpl3; + }; +} diff --git a/pkgs/tools/misc/spotify-ripper/default.nix b/pkgs/tools/misc/spotify-ripper/default.nix new file mode 100644 index 0000000..fc75681 --- /dev/null +++ b/pkgs/tools/misc/spotify-ripper/default.nix @@ -0,0 +1,100 @@ +{ stdenv +, fetchFromGitHub + +, python2Packages + +, aacSupport ? false, faac +, alacSupport ? false, libav +, flacSupport ? false, flac +, m4aSupport ? false, mp4Support ? false, fdk-aac-encoder +, oggSupport ? false, vorbisTools +, opusSupport ? false, opusTools +}: + +assert aacSupport -> faac.meta.available; +assert alacSupport -> libav.meta.available; +assert flacSupport -> flac.meta.available; +assert m4aSupport || mp4Support -> fdk-aac-encoder.meta.available; +assert oggSupport -> vorbisTools.meta.available; +assert opusSupport -> opusTools.meta.available; + +let + + lockPackage = + { package + , version + , sha256 + , extra ? (oldAttrs: { }) + }: package.overrideAttrs (oldAttrs: rec { + inherit version; + src = python2Packages.fetchPypi { + inherit (oldAttrs) pname; + inherit version sha256; + }; + } // extra oldAttrs); + + colorama = lockPackage { + package = python2Packages.colorama; + version = "0.3.3"; + sha256 = "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb"; + }; + + mutagen = lockPackage { + package = python2Packages.mutagen; + version = "1.30"; + sha256 = "0kv2gjnzbj1w0bswmxm7wi05x6ypi7jk52s0lb8gw8s459j41gyd"; + extra = oldAttrs: { + patches = [ ]; + }; + }; + + pyspotify = lockPackage { + package = python2Packages.pyspotify; + version = "2.0.5"; + sha256 = "0y16c024rrvbvfdqj1n0k4b25b1nbza3i7kspg5b0ci2src1rm7v"; + }; + +in + +python2Packages.buildPythonApplication rec { + pname = "spotify-ripper"; + version = "2016.12.31"; + + src = fetchFromGitHub { + owner = "hbashton"; + repo = pname; + rev = "d0464193dead7bd3ac7580e98bde86a0f323acae"; + sha256 = "003d6br20f1cf4qvmpl62bk0k4h4v66ib76wn36c23bnh9x5q806"; + }; + + propagatedBuildInputs = [ + colorama + mutagen + pyspotify + python2Packages.requests + python2Packages.schedule + python2Packages.setuptools + + (if flacSupport then flac else null) + (if alacSupport then libav else null) + (if aacSupport then faac else null) + (if (m4aSupport || mp4Support) then fdk-aac-encoder else null) + (if oggSupport then vorbisTools else null) + (if opusSupport then opusTools else null) + ]; + + # Remove impure executables. + patches = [ ./fix-setup.patch ]; + + meta = { + description = "Rip Spotify URIs to audio files, including ID3 tags and cover art"; + longDescription = '' + Spotify-ripper is a small ripper script for Spotify that rips Spotify URIs + to audio files and includes ID3 tags and cover art. By default + spotify-ripper will encode to MP3 files, but includes the ability to rip + to WAV, FLAC, Ogg Vorbis, Opus, AAC, and MP4/M4A. + ''; + homepage = "https://github.com/hbashton/spotify-ripper"; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/pkgs/tools/misc/spotify-ripper/fix-setup.patch b/pkgs/tools/misc/spotify-ripper/fix-setup.patch new file mode 100644 index 0000000..38fdc04 --- /dev/null +++ b/pkgs/tools/misc/spotify-ripper/fix-setup.patch @@ -0,0 +1,28 @@ +diff --git a/setup.py b/setup.py +index a800b3b..8967921 100755 +--- a/setup.py ++++ b/setup.py +@@ -22,14 +22,13 @@ setup( + name='spotify-ripper', + version='2.9.1', + packages=find_packages(exclude=["tests"]), +- scripts=['spotify_ripper/main.py'], + include_package_data=True, + zip_safe=False, + + # Executable + entry_points={ + 'console_scripts': [ +- 'spotify-ripper = main:main', ++ 'spotify-ripper = spotify_ripper.main:main', + ], + }, + +@@ -67,7 +66,5 @@ setup( + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.4', + ], +- long_description=_read('README.rst'), + ) + +-create_default_dir()