uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
50
pkgs/applications/networking/irc/bip/default.nix
Normal file
50
pkgs/applications/networking/irc/bip/default.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, bison, flex, autoconf, automake, openssl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bip";
|
||||
version = "0.8.9";
|
||||
|
||||
# fetch sources from debian, because the creator's website provides
|
||||
# the files only via https but with an untrusted certificate.
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/b/bip/bip_${version}.orig.tar.gz";
|
||||
sha256 = "0q942g9lyd8pjvqimv547n6vik5759r9npw3ws3bdj4ixxqhz59w";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoconf automake ];
|
||||
buildInputs = [ bison flex openssl ];
|
||||
|
||||
# includes an important security patch
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "mirror://gentoo/../gentoo-portage/net-irc/bip/files/bip-freenode.patch";
|
||||
sha256 = "05qy7a62p16f5knrsdv2lkhc07al18qq32ciq3k4r0lq1wbahj2y";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://projects.duckcorp.org/projects/bip/repository/revisions/39414f8ff9df63c8bc2e4eee34f09f829a5bf8f5/diff/src/connection.c?format=diff";
|
||||
sha256 = "1hvg58vci6invh0z19wf04jjvnm8w6f6v4c4nk1j5hc3ymxdp1rb";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/87192685f55856d2c28021963ab2c308e21faddc/diff?format=diff";
|
||||
sha256 = "0rspzp7q1lq8v0cl0c35xxpgisfk264i648vslgsjax2s0g9svx0";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/814d54c676d5827f6ea37c1cd2d6e846d080c13c/diff?format=diff";
|
||||
sha256 = "137l77kmm6p9p4c4kvw2zc4xkr10ayyc9z5rlpwn67574h47v55i";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/d2dcb0adb1aa8c2c4526aa6ad650483b0e02ab7d/diff?format=diff";
|
||||
sha256 = "1pvywaljdkmy4870xs6gvsk4qwg69h47qr0yjywbcdsfycrgp8aq";
|
||||
})
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=unused-result -Wno-error=duplicate-decl-specifier";
|
||||
|
||||
meta = {
|
||||
description = "An IRC proxy (bouncer)";
|
||||
homepage = "http://bip.milkypond.org/";
|
||||
license = lib.licenses.gpl2;
|
||||
downloadPage = "https://projects.duckcorp.org/projects/bip/files";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
35
pkgs/applications/networking/irc/catgirl/default.nix
Normal file
35
pkgs/applications/networking/irc/catgirl/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ ctags, fetchurl, lib, libressl, ncurses, pkg-config, stdenv }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "catgirl";
|
||||
version = "2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-pov7gvYlvN97xbem4VKP41Wbze1B8NPJcvi36Ri87o4=";
|
||||
};
|
||||
|
||||
# catgirl's configure script uses pkg-config --variable exec_prefix openssl
|
||||
# to discover the install location of the openssl(1) utility. exec_prefix
|
||||
# is the "out" output of libressl in our case (where the libraries are
|
||||
# installed), so we need to fix this up.
|
||||
postConfigure = ''
|
||||
substituteInPlace config.mk --replace \
|
||||
"$($PKG_CONFIG --variable exec_prefix openssl)" \
|
||||
"${lib.getBin libressl}"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ ctags pkg-config ];
|
||||
buildInputs = [ libressl ncurses ];
|
||||
strictDeps = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.causal.agency/catgirl/about/";
|
||||
license = licenses.gpl3Plus;
|
||||
description = "A TLS-only terminal IRC client";
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ xfnw ];
|
||||
};
|
||||
}
|
||||
58
pkgs/applications/networking/irc/communi/default.nix
Normal file
58
pkgs/applications/networking/irc/communi/default.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{ fetchFromGitHub, libcommuni, qtbase, qmake, lib, stdenv, wrapQtAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "communi";
|
||||
version = "3.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "communi";
|
||||
repo = "communi-desktop";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Ua5uXs2mEDrljvtIcdn1Kb+l5NJtRpB0AAbBz+DU+YE=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake ]
|
||||
++ lib.optional stdenv.isDarwin wrapQtAppsHook;
|
||||
|
||||
buildInputs = [ libcommuni qtbase ];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
preConfigure = ''
|
||||
export QMAKEFEATURES=${libcommuni}/features
|
||||
'';
|
||||
|
||||
qmakeFlags = [
|
||||
"COMMUNI_INSTALL_PREFIX=${placeholder "out"}"
|
||||
"COMMUNI_INSTALL_PLUGINS=${placeholder "out"}/lib/communi/plugins"
|
||||
"COMMUNI_INSTALL_ICONS=${placeholder "out"}/share/icons/hicolor"
|
||||
"COMMUNI_INSTALL_DESKTOP=${placeholder "out"}/share/applications"
|
||||
"COMMUNI_INSTALL_THEMES=${placeholder "out"}/share/communi/themes"
|
||||
(if stdenv.isDarwin
|
||||
then [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/Applications" ]
|
||||
else [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin" ])
|
||||
];
|
||||
|
||||
postInstall = if stdenv.isDarwin then ''
|
||||
# Nix qmake does not add the bundle rpath by default.
|
||||
install_name_tool \
|
||||
-add_rpath @executable_path/../Frameworks \
|
||||
$out/Applications/Communi.app/Contents/MacOS/Communi
|
||||
'' else ''
|
||||
substituteInPlace "$out/share/applications/communi.desktop" \
|
||||
--replace "/usr/bin" "$out/bin"
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
rm -rf lib
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple and elegant cross-platform IRC client";
|
||||
homepage = "https://github.com/communi/communi-desktop";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ hrdinka ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
92
pkgs/applications/networking/irc/convos/default.nix
Normal file
92
pkgs/applications/networking/irc/convos/default.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{ lib, stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, shortenPerlShebang, openssl
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
perlPackages.buildPerlPackage rec {
|
||||
pname = "convos";
|
||||
version = "6.42";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "convos-chat";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-W7ZVZUCNllpFIQpNz2m/8VFOXDZfuppB+g3qibY6wt8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ optional stdenv.isDarwin [ shortenPerlShebang ];
|
||||
|
||||
buildInputs = with perlPackages; [
|
||||
CryptPassphrase CryptPassphraseArgon2 CryptPassphraseBcrypt
|
||||
FileHomeDir FileReadBackwards HTTPAcceptLanguage
|
||||
IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
|
||||
Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginSyslog MojoliciousPluginWebpack
|
||||
ParseIRC TextMarkdownHoedown TimePiece UnicodeUTF8
|
||||
CpanelJSONXS EV
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ openssl ];
|
||||
|
||||
checkInputs = with perlPackages; [ TestDeep ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs script/convos
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
# Remove online test
|
||||
#
|
||||
rm t/web-pwa.t
|
||||
|
||||
# A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in
|
||||
# the sandbox, we replace the this out from a substitution expression
|
||||
#
|
||||
substituteInPlace t/web-register-open-to-public.t \
|
||||
--replace '!127.0.0.1!' '!localhost!'
|
||||
|
||||
# A webirc test fails to resolve "localhost" likely due to sandboxing, we
|
||||
# remove this test.
|
||||
#
|
||||
rm t/irc-webirc.t
|
||||
|
||||
# A web-user test fails on Darwin, we remove it.
|
||||
#
|
||||
rm t/web-user.t
|
||||
|
||||
# Another web test fails, so we also remove this.
|
||||
rm t/web-login.t
|
||||
|
||||
# Module::Install is a runtime dependency not covered by the tests, so we add
|
||||
# a test for it.
|
||||
#
|
||||
echo "use Test::More tests => 1;require_ok('Module::Install')" \
|
||||
> t/00_nixpkgs_module_install.t
|
||||
'';
|
||||
|
||||
# Convos expects to find assets in both auto/share/dist/Convos, and $MOJO_HOME
|
||||
# which is set to $out
|
||||
#
|
||||
postInstall = ''
|
||||
AUTO_SHARE_PATH=$out/${perl.libPrefix}/auto/share/dist/Convos
|
||||
mkdir -p $AUTO_SHARE_PATH
|
||||
cp -vR public assets $AUTO_SHARE_PATH/
|
||||
ln -s $AUTO_SHARE_PATH/public/asset $out/asset
|
||||
cp -vR templates $out/templates
|
||||
cp cpanfile $out/cpanfile
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
shortenPerlShebang $out/bin/convos
|
||||
'' + ''
|
||||
wrapProgram $out/bin/convos --set MOJO_HOME $out
|
||||
'';
|
||||
|
||||
passthru.tests = nixosTests.convos;
|
||||
|
||||
meta = {
|
||||
homepage = "https://convos.chat";
|
||||
description = "Convos is the simplest way to use IRC in your browser";
|
||||
license = lib.licenses.artistic2;
|
||||
maintainers = with maintainers; [ sgo ];
|
||||
};
|
||||
}
|
||||
41
pkgs/applications/networking/irc/epic5/default.nix
Normal file
41
pkgs/applications/networking/irc/epic5/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, stdenv, fetchurl, openssl, ncurses, libiconv, tcl, coreutils, fetchpatch }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "epic5";
|
||||
version = "2.0.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/${pname}-${version}.tar.xz";
|
||||
sha256 = "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm";
|
||||
};
|
||||
|
||||
# Darwin needs libiconv, tcl; while Linux build don't
|
||||
buildInputs = [ openssl ncurses ]
|
||||
++ lib.optionals stdenv.isDarwin [ libiconv tcl ];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://sources.debian.net/data/main/e/epic5/2.0.1-1/debian/patches/openssl-1.1.patch";
|
||||
sha256 = "03bpsyv1sr5icajs2qkdvv8nnn6rz6yvvj7pgiq8gz9sbp6siyfv";
|
||||
})
|
||||
];
|
||||
|
||||
configureFlags = [ "--disable-debug" "--with-ipv6" ];
|
||||
|
||||
postConfigure = ''
|
||||
substituteInPlace bsdinstall \
|
||||
--replace /bin/cp ${coreutils}/bin/cp \
|
||||
--replace /bin/rm ${coreutils}/bin/rm \
|
||||
--replace /bin/chmod ${coreutils}/bin/chmod \
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://epicsol.org";
|
||||
description = "A IRC client that offers a great ircII interface";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
27
pkgs/applications/networking/irc/glowing-bear/default.nix
Normal file
27
pkgs/applications/networking/irc/glowing-bear/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ fetchFromGitHub, lib, stdenv }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "glowing-bear";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = version;
|
||||
owner = "glowing-bear";
|
||||
repo = "glowing-bear";
|
||||
sha256 = "0lf0j72m6rwlgqssdxf0m9si99lah08lww7q7i08p5i5lpv6zh2s";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp index.html serviceworker.js webapp.manifest.json $out
|
||||
cp -R 3rdparty assets css directives js $out
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A web client for Weechat";
|
||||
homepage = "https://github.com/glowing-bear/glowing-bear";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ delroth ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
55
pkgs/applications/networking/irc/hexchat/default.nix
Normal file
55
pkgs/applications/networking/irc/hexchat/default.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, gtk2, lua, perl, python3Packages
|
||||
, pciutils, dbus-glib, libcanberra-gtk2, libproxy
|
||||
, enchant2, libnotify, openssl, isocodes
|
||||
, desktop-file-utils
|
||||
, meson, ninja, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hexchat";
|
||||
version = "2.16.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hexchat";
|
||||
repo = "hexchat";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-2IUlNUTL3TOJnDNMds2EWwkfn5NUOQ1ids96Ddo196E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config makeWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
gtk2 lua perl python3Packages.python python3Packages.cffi pciutils dbus-glib libcanberra-gtk2 libproxy
|
||||
libnotify openssl desktop-file-utils
|
||||
isocodes
|
||||
];
|
||||
|
||||
#hexchat and hexchat-text loads enchant spell checking library at run time and so it needs to have route to the path
|
||||
postPatch = ''
|
||||
sed -i "s,libenchant-2.so.2,${enchant2}/lib/libenchant-2.so.2,g" src/fe-gtk/sexy-spell-entry.c
|
||||
sed -i "/flag.startswith('-I')/i if flag.contains('no-such-path')\ncontinue\nendif" plugins/perl/meson.build
|
||||
chmod +x meson_post_install.py
|
||||
for f in meson_post_install.py \
|
||||
plugins/perl/generate_header.py \
|
||||
plugins/python/generate_plugin.py \
|
||||
po/validate-textevent-translations \
|
||||
src/common/make-te.py
|
||||
do
|
||||
patchShebangs $f
|
||||
done
|
||||
'';
|
||||
|
||||
mesonFlags = [ "-Dwith-lua=lua" "-Dtext-frontend=true" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/hexchat --prefix PYTHONPATH : "$PYTHONPATH"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A popular and easy to use graphical IRC (chat) client";
|
||||
homepage = "https://hexchat.github.io/";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ romildo ];
|
||||
};
|
||||
}
|
||||
22
pkgs/applications/networking/irc/ii/default.nix
Normal file
22
pkgs/applications/networking/irc/ii/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{lib, stdenv, fetchurl}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ii";
|
||||
version = "1.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.suckless.org/tools/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-hQyzI7WD0mG1G9qZk+5zMzQ1Ko5soeLwK1fBVL9WjBc=";
|
||||
};
|
||||
|
||||
makeFlags = [ "CC:=$(CC)" ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://tools.suckless.org/ii/";
|
||||
license = lib.licenses.mit;
|
||||
description = "Irc it, simple FIFO based irc client";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
38
pkgs/applications/networking/irc/irccloud/default.nix
Normal file
38
pkgs/applications/networking/irc/irccloud/default.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ appimageTools, fetchurl, lib }:
|
||||
|
||||
let
|
||||
pname = "irccloud";
|
||||
version = "0.13.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage";
|
||||
sha256 = "0ff69m5jav2c90918avsr5wvik2gds3klij3dzhkb352fgrd1s0l";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit name src;
|
||||
};
|
||||
|
||||
in appimageTools.wrapType2 {
|
||||
inherit name src;
|
||||
|
||||
extraPkgs = pkgs: with pkgs; [ at-spi2-core ];
|
||||
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/${name} $out/bin/${pname}
|
||||
install -m 444 -D ${appimageContents}/irccloud.desktop $out/share/applications/irccloud.desktop
|
||||
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/irccloud.png \
|
||||
$out/share/icons/hicolor/512x512/apps/irccloud.png
|
||||
substituteInPlace $out/share/applications/irccloud.desktop \
|
||||
--replace 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A desktop client for IRCCloud";
|
||||
homepage = "https://www.irccloud.com";
|
||||
license = licenses.asl20;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ lightbulbjim ];
|
||||
};
|
||||
}
|
||||
28
pkgs/applications/networking/irc/ircdog/default.nix
Normal file
28
pkgs/applications/networking/irc/ircdog/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ircdog";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "goshuirc";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-x3ihWLgVYu17vG1xQTgIr4TSkeZ467TZBV1fPTPnZgw=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
vendorSha256 = null;
|
||||
|
||||
meta = with lib; {
|
||||
description = "ircdog is a simple wrapper over the raw IRC protocol that can respond to pings, and interprets formatting codes";
|
||||
homepage = "https://github.com/ergochat/ircdog";
|
||||
changelog = "https://github.com/ergochat/ircdog/releases/tag/v${version}";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
40
pkgs/applications/networking/irc/irssi/default.nix
Normal file
40
pkgs/applications/networking/irc/irssi/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr, git }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "irssi";
|
||||
version = "1.2.3";
|
||||
|
||||
|
||||
src = fetchFromGitHub {
|
||||
"owner" = "irssi";
|
||||
"repo" = "irssi";
|
||||
"rev" = "91dc3e4dfa1a9558c5a7fe0ea982cb9df0e2de65";
|
||||
"sha256" = "efnE4vuDd7TnOBxMPduiV0/nez1jVhTjbJ0vzN4ZMcg=";
|
||||
"leaveDotGit" = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config autoconf automake libtool git ];
|
||||
buildInputs = [ ncurses glib openssl perl libintl libgcrypt libotr ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-proxy"
|
||||
"--with-bot"
|
||||
"--with-perl=yes"
|
||||
"--with-otr=yes"
|
||||
"--enable-true-color"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://irssi.org";
|
||||
description = "A terminal based IRC client";
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ lovek323 ];
|
||||
license = lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
34
pkgs/applications/networking/irc/irssi/fish/default.nix
Normal file
34
pkgs/applications/networking/irc/irssi/fish/default.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv, fetchFromGitHub, irssi, gmp, automake, autoconf, libtool, openssl, glib, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fish-irssi";
|
||||
version = "unstable-2013-04-13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "falsovsky";
|
||||
repo = "FiSH-irssi";
|
||||
rev = "e98156bebd8c150bf100b3a0356e7103bb5c20e6";
|
||||
sha256 = "0mqq7q3rnkzx4j352g1l8sv3g687d76ikjl9c7g6xw96y91kqvdp";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
cp -a "${irssi.src}" "./${irssi.name}"
|
||||
configureFlags="$configureFlags --with-irssi-source=`pwd`/${irssi.name}"
|
||||
|
||||
./regen.sh
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/irssi/modules
|
||||
cp src/.libs/libfish.so $out/lib/irssi/modules
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkg-config autoconf automake ];
|
||||
buildInputs = [ gmp libtool openssl glib ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/falsovsky/FiSH-irssi";
|
||||
license = lib.licenses.unfree; # I can't find any mention of license
|
||||
maintainers = with lib.maintainers; [viric];
|
||||
};
|
||||
}
|
||||
44
pkgs/applications/networking/irc/kirc/default.nix
Normal file
44
pkgs/applications/networking/irc/kirc/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kirc";
|
||||
version = "0.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mcpcpc";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-bLBrkbW/Iv1v9z5NOiMAA/dH5/9FlqusRV5rSqjdlPw=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://kirc.io/";
|
||||
description = "Tiny IRC client written in C99";
|
||||
longDescription = ''
|
||||
kirc is a tiny open-source Internet Relay Chat (IRC) client designed with
|
||||
usability and cross-platform compatibility in mind.
|
||||
|
||||
It features:
|
||||
- No dependencies other than a C99 compiler.
|
||||
- Simple Authentication and Security Layer (SASL) procotol support.
|
||||
- Client-to-client (CTCP) protocol support.
|
||||
- Transport Layer Security (TLS) protocol support (via external
|
||||
utilities).
|
||||
- Simple chat history logging.
|
||||
- Asynchronous message handling.
|
||||
- Multi-channel joining at server connection.
|
||||
- Full support for all RFC 2812 commands.
|
||||
- Easy customized color scheme definition.
|
||||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
77
pkgs/applications/networking/irc/konversation/default.nix
Normal file
77
pkgs/applications/networking/irc/konversation/default.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{ mkDerivation
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, extra-cmake-modules
|
||||
, kdoctools
|
||||
, kbookmarks
|
||||
, karchive
|
||||
, kconfig
|
||||
, kconfigwidgets
|
||||
, kcoreaddons
|
||||
, kcrash
|
||||
, kdbusaddons
|
||||
, kemoticons
|
||||
, kglobalaccel
|
||||
, ki18n
|
||||
, kiconthemes
|
||||
, kidletime
|
||||
, kitemviews
|
||||
, knotifications
|
||||
, knotifyconfig
|
||||
, kwindowsystem
|
||||
, kio
|
||||
, kparts
|
||||
, kwallet
|
||||
, solid
|
||||
, sonnet
|
||||
, phonon
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "konversation";
|
||||
version = "1.7.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
|
||||
sha256 = "R+wWHBOFmBqLmdKMQZ6Iskgj3AG2j7FiOJSBiXTCGKc=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
kbookmarks
|
||||
karchive
|
||||
kconfig
|
||||
kconfigwidgets
|
||||
kcoreaddons
|
||||
kcrash
|
||||
kdbusaddons
|
||||
kdoctools
|
||||
kemoticons
|
||||
kglobalaccel
|
||||
ki18n
|
||||
kiconthemes
|
||||
kidletime
|
||||
kitemviews
|
||||
knotifications
|
||||
knotifyconfig
|
||||
kwindowsystem
|
||||
kio
|
||||
kparts
|
||||
kwallet
|
||||
solid
|
||||
sonnet
|
||||
phonon
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Integrated IRC client for KDE";
|
||||
license = with lib.licenses; [ gpl2 ];
|
||||
maintainers = with lib.maintainers; [ fridh ];
|
||||
homepage = "https://konversation.kde.org";
|
||||
};
|
||||
}
|
||||
32
pkgs/applications/networking/irc/kvirc/default.nix
Normal file
32
pkgs/applications/networking/irc/kvirc/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, mkDerivation, fetchFromGitHub
|
||||
, qtbase, qtmultimedia, qtsvg, qtx11extras
|
||||
, pkg-config, cmake, gettext
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "kvirc";
|
||||
version = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kvirc";
|
||||
repo = "KVIrc";
|
||||
rev = version;
|
||||
sha256 = "1dq7v6djw0gz56rvghs4r5gfhzx4sfg60rnv6b9zprw0vlvcxbn4";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
qtbase qtmultimedia qtsvg qtx11extras
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config cmake gettext
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Advanced IRC Client";
|
||||
homepage = "http://www.kvirc.net/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.suhr ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
93
pkgs/applications/networking/irc/quassel/default.nix
Normal file
93
pkgs/applications/networking/irc/quassel/default.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
{ monolithic ? true # build monolithic Quassel
|
||||
, enableDaemon ? false # build Quassel daemon
|
||||
, client ? false # build Quassel client
|
||||
, tag ? "-kf5" # tag added to the package name
|
||||
, static ? false # link statically
|
||||
|
||||
, lib, stdenv, fetchFromGitHub, cmake, makeWrapper, dconf
|
||||
, mkDerivation, qtbase, boost, zlib, qtscript
|
||||
, phonon, libdbusmenu, qca-qt5
|
||||
|
||||
, withKDE ? true # enable KDE integration
|
||||
, extra-cmake-modules
|
||||
, kconfigwidgets
|
||||
, kcoreaddons
|
||||
, knotifications
|
||||
, knotifyconfig
|
||||
, ktextwidgets
|
||||
, kwidgetsaddons
|
||||
, kxmlgui
|
||||
}:
|
||||
|
||||
let
|
||||
buildClient = monolithic || client;
|
||||
buildCore = monolithic || enableDaemon;
|
||||
in
|
||||
|
||||
assert monolithic -> !client && !enableDaemon;
|
||||
assert client || enableDaemon -> !monolithic;
|
||||
assert !buildClient -> !withKDE; # KDE is used by the client only
|
||||
|
||||
let
|
||||
edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
|
||||
|
||||
in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
|
||||
pname = "quassel${tag}";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "quassel";
|
||||
repo = "quassel";
|
||||
rev = version;
|
||||
sha256 = "sha256-eulhNcyCmy9ryietOhT2yVJeJH+MMZRbTUo2XuTy9qU=";
|
||||
};
|
||||
|
||||
# Prevent ``undefined reference to `qt_version_tag''' in SSL check
|
||||
NIX_CFLAGS_COMPILE = "-DQT_NO_VERSION_TAGGING=1";
|
||||
|
||||
nativeBuildInputs = [ cmake makeWrapper ];
|
||||
buildInputs = [ qtbase boost zlib ]
|
||||
++ lib.optionals buildCore [qtscript qca-qt5 ]
|
||||
++ lib.optionals buildClient [libdbusmenu phonon]
|
||||
++ lib.optionals (buildClient && withKDE) [
|
||||
extra-cmake-modules kconfigwidgets kcoreaddons
|
||||
knotifications knotifyconfig ktextwidgets kwidgetsaddons
|
||||
kxmlgui
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DEMBED_DATA=OFF"
|
||||
"-DUSE_QT5=ON"
|
||||
]
|
||||
++ edf static "STATIC"
|
||||
++ edf monolithic "WANT_MONO"
|
||||
++ edf enableDaemon "WANT_CORE"
|
||||
++ edf client "WANT_QTCLIENT"
|
||||
++ edf withKDE "WITH_KDE";
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postFixup =
|
||||
lib.optionalString enableDaemon ''
|
||||
wrapProgram "$out/bin/quasselcore" --suffix PATH : "${qtbase.bin}/bin"
|
||||
'' +
|
||||
lib.optionalString buildClient ''
|
||||
wrapQtApp "$out/bin/quassel${lib.optionalString client "client"}" \
|
||||
--prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://quassel-irc.org/";
|
||||
description = "Qt/KDE distributed IRC client suppporting a remote daemon";
|
||||
longDescription = ''
|
||||
Quassel IRC is a cross-platform, distributed IRC client,
|
||||
meaning that one (or multiple) client(s) can attach to
|
||||
and detach from a central core -- much like the popular
|
||||
combination of screen and a text-based IRC client such
|
||||
as WeeChat, but graphical (based on Qt4/KDE4 or Qt5/KF5).
|
||||
'';
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ ttuegel ];
|
||||
inherit (qtbase.meta) platforms;
|
||||
};
|
||||
}
|
||||
37
pkgs/applications/networking/irc/senpai/default.nix
Normal file
37
pkgs/applications/networking/irc/senpai/default.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ lib, buildGoModule, fetchFromSourcehut, installShellFiles, scdoc }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "senpai";
|
||||
version = "unstable-2022-05-10";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~taiite";
|
||||
repo = "senpai";
|
||||
rev = "7a9fe74fdfb3f334b97434df0aa74b2b32e3582e";
|
||||
sha256 = "sha256-uagdJG+YVryzsaZfkg5W2F8mQSc1bpflL77tqMHp1Ck=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-hgojB1D0/SZWLEzJ48EBoT/InYYmqD/1qoTknfk/aTo=";
|
||||
|
||||
subPackages = [
|
||||
"cmd/senpai"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
scdoc
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
scdoc < doc/senpai.1.scd > doc/senpai.1
|
||||
scdoc < doc/senpai.5.scd > doc/senpai.5
|
||||
installManPage doc/senpai.*
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Your everyday IRC student";
|
||||
homepage = "https://ellidri.org/senpai";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ malvo ];
|
||||
};
|
||||
}
|
||||
22
pkgs/applications/networking/irc/sic/default.nix
Normal file
22
pkgs/applications/networking/irc/sic/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sic";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.suckless.org/tools/sic-${version}.tar.gz";
|
||||
sha256 = "ac07f905995e13ba2c43912d7a035fbbe78a628d7ba1c256f4ca1372fb565185";
|
||||
};
|
||||
|
||||
makeFlags = [ "CC:=$(CC)" ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = {
|
||||
description = "Simple IRC client";
|
||||
homepage = "https://tools.suckless.org/sic/";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
60
pkgs/applications/networking/irc/srain/default.nix
Normal file
60
pkgs/applications/networking/irc/srain/default.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, libconfig
|
||||
, libsoup
|
||||
, libsecret
|
||||
, openssl
|
||||
, gettext
|
||||
, glib
|
||||
, glib-networking
|
||||
, appstream-glib
|
||||
, dbus-glib
|
||||
, python3Packages
|
||||
, meson
|
||||
, ninja
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "srain";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SrainApp";
|
||||
repo = "srain";
|
||||
rev = version;
|
||||
sha256 = "sha256-oeC0zyDyh0lW1IMIJ9bjqryqz3Km4JJzRUxkO6LadoQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
appstream-glib
|
||||
wrapGAppsHook
|
||||
python3Packages.sphinx
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
glib-networking
|
||||
dbus-glib
|
||||
libconfig
|
||||
libsoup
|
||||
libsecret
|
||||
openssl
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Modern IRC client written in GTK";
|
||||
homepage = "https://srain.im";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ rewine ];
|
||||
};
|
||||
}
|
||||
40
pkgs/applications/networking/irc/tiny/default.nix
Normal file
40
pkgs/applications/networking/irc/tiny/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, Foundation
|
||||
, dbusSupport ? stdenv.isLinux, dbus
|
||||
# rustls will be used for TLS if useOpenSSL=false
|
||||
, useOpenSSL ? stdenv.isLinux, openssl
|
||||
, notificationSupport ? stdenv.isLinux
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "tiny";
|
||||
version = "0.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osa1";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "177d1x4z0mh0p7c5ldq70cn1j3pac50d8cil2ni50hl49c3x6yy1";
|
||||
};
|
||||
|
||||
cargoSha256 = "05q3f1wp48mwkz8n0102rwb6jzrgpx3dlbxzf3zcw8r1mblgzim1";
|
||||
|
||||
nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
|
||||
buildInputs = lib.optionals dbusSupport [ dbus ]
|
||||
++ lib.optionals useOpenSSL [ openssl ]
|
||||
++ lib.optional stdenv.isDarwin Foundation;
|
||||
|
||||
buildFeatures = lib.optional notificationSupport "desktop-notifications";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A console IRC client";
|
||||
homepage = "https://github.com/osa1/tiny";
|
||||
changelog = "https://github.com/osa1/tiny/raw/v${version}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ Br1ght0ne vyp ];
|
||||
};
|
||||
}
|
||||
91
pkgs/applications/networking/irc/weechat/default.nix
Normal file
91
pkgs/applications/networking/irc/weechat/default.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
{ stdenv, fetchurl, lib
|
||||
, ncurses, openssl, aspell, gnutls, gettext
|
||||
, zlib, curl, pkg-config, libgcrypt
|
||||
, cmake, makeWrapper, libobjc, libresolv, libiconv
|
||||
, asciidoctor # manpages
|
||||
, guileSupport ? true, guile
|
||||
, luaSupport ? true, lua5
|
||||
, perlSupport ? true, perl
|
||||
, pythonSupport ? true, python3Packages
|
||||
, rubySupport ? true, ruby
|
||||
, tclSupport ? true, tcl
|
||||
, extraBuildInputs ? []
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (python3Packages) python;
|
||||
plugins = [
|
||||
{ name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; }
|
||||
{ name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; }
|
||||
{ name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; }
|
||||
{ name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; }
|
||||
{ name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; }
|
||||
{ name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON3"; buildInputs = [ python ]; }
|
||||
];
|
||||
enabledPlugins = builtins.filter (p: p.enabled) plugins;
|
||||
|
||||
in
|
||||
assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.5";
|
||||
pname = "weechat";
|
||||
|
||||
hardeningEnable = [ "pie" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
|
||||
sha256 = "sha256-8ZSa2dQPTiChGW00T5OASHmd0C2PatUtTu9Gr4CF4Oc=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
|
||||
|
||||
cmakeFlags = with lib; [
|
||||
"-DENABLE_MAN=ON"
|
||||
"-DENABLE_DOC=OFF" # TODO: Documentation fails to build, was deactivated to push through security update
|
||||
"-DENABLE_JAVASCRIPT=OFF" # Requires v8 <= 3.24.3, https://github.com/weechat/weechat/issues/360
|
||||
"-DENABLE_PHP=OFF"
|
||||
]
|
||||
++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib"]
|
||||
++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins
|
||||
;
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config makeWrapper asciidoctor ];
|
||||
buildInputs = with lib; [
|
||||
ncurses openssl aspell gnutls gettext zlib curl
|
||||
libgcrypt ]
|
||||
++ optionals stdenv.isDarwin [ libobjc libresolv ]
|
||||
++ concatMap (p: p.buildInputs) enabledPlugins
|
||||
++ extraBuildInputs;
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}"
|
||||
# Fix '_res_9_init: undefined symbol' error
|
||||
+ (lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv");
|
||||
|
||||
postInstall = with lib; ''
|
||||
for p in ${concatMapStringsSep " " (p: p.name) enabledPlugins}; do
|
||||
from=$out/lib/weechat/plugins/$p.so
|
||||
to=''${!p}/lib/weechat/plugins/$p.so
|
||||
mkdir -p $(dirname $to)
|
||||
mv $from $to
|
||||
done
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
$out/bin/weechat --version
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.weechat.org/";
|
||||
description = "A fast, light and extensible chat client";
|
||||
longDescription = ''
|
||||
You can find more documentation as to how to customize this package
|
||||
(eg. adding python modules for scripts that would require them, etc.)
|
||||
on https://nixos.org/nixpkgs/manual/#sec-weechat .
|
||||
'';
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ lovek323 lheckemann ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchurl, weechat }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "buffer_autoset";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/weechat/scripts/2b308b44df39ba6563d02b2bcd40c384ec2777dc/python/buffer_autoset.py";
|
||||
sha256 = "0csl3sfpijdbq1j6wabx347lvn91a24a2jfx5b5pspfxz7gixli1";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
passthru.scripts = [ "buffer_autoset.py" ];
|
||||
|
||||
installPhase = ''
|
||||
install -D $src $out/share/buffer_autoset.py
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (weechat.meta) platforms;
|
||||
description = "buffer_autoset.py is a weechat script which auto-set buffer properties when a buffer is opened.";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ govanify ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
{ stdenv, lib, fetchurl, weechat }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "weechat-colorize_nicks";
|
||||
version = "27";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/weechat/scripts/raw/bc8a9051800779a036ba11689a277cd5f03657b2/python/colorize_nicks.py";
|
||||
sha256 = "0hiay88vvy171jiq6ahflm0ipb7sslfxwhmmm8psv6qk19rv2sxs";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
cp $src $out/share/colorize_nicks.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
scripts = [ "colorize_nicks.py" ];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
inherit (weechat.meta) platforms;
|
||||
description = "Use the weechat nick colors in the chat area";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ qyliss ];
|
||||
};
|
||||
}
|
||||
35
pkgs/applications/networking/irc/weechat/scripts/default.nix
Normal file
35
pkgs/applications/networking/irc/weechat/scripts/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ callPackage, luaPackages, perlPackages, python3Packages }:
|
||||
|
||||
{
|
||||
colorize_nicks = callPackage ./colorize_nicks { };
|
||||
|
||||
edit = callPackage ./edit { };
|
||||
|
||||
multiline = callPackage ./multiline {
|
||||
inherit (perlPackages) PodParser;
|
||||
};
|
||||
|
||||
url_hint = callPackage ./url_hint { };
|
||||
|
||||
weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
|
||||
inherit (luaPackages) cjson luaffi;
|
||||
};
|
||||
|
||||
weechat-matrix = python3Packages.callPackage ./weechat-matrix { };
|
||||
|
||||
weechat-notify-send = python3Packages.callPackage ./weechat-notify-send { };
|
||||
|
||||
wee-slack = callPackage ./wee-slack { };
|
||||
|
||||
weechat-autosort = callPackage ./weechat-autosort { };
|
||||
|
||||
weechat-otr = callPackage ./weechat-otr { };
|
||||
|
||||
weechat-go = callPackage ./weechat-go { };
|
||||
|
||||
buffer_autoset = callPackage ./buffer_autoset { };
|
||||
|
||||
highmon = callPackage ./highmon { };
|
||||
|
||||
zncplayback = callPackage ./zncplayback { };
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchFromGitHub, weechat }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "edit-weechat";
|
||||
version = "1.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "keith";
|
||||
repo = "edit-weechat";
|
||||
rev = version;
|
||||
sha256 = "1s42r0l0xkhlp6rbc23cm4vlda91il6cg53w33hqfhd2wz91s66w";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
passthru.scripts = [ "edit.py" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D edit.py $out/share/edit.py
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (weechat.meta) platforms;
|
||||
description = "This simple weechat plugin allows you to compose messages in your $EDITOR.";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ eraserhd ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv, fetchurl, weechat }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "highmon";
|
||||
version = "2.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/KenjiE20/highmon/182e67d070c75efc81999e68c2ac7fdfe44d2872/highmon.pl";
|
||||
sha256 = "1vvgzscb12l3cp2nq954fx6j3awvpjsb0nqylal51ps9cq9a3wir";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
passthru.scripts = [ "highmon.pl" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D $src $out/share/highmon.pl
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (weechat.meta) platforms;
|
||||
homepage = "https://github.com/KenjiE20/highmon/";
|
||||
description = "highmon.pl is a weechat script that adds 'Highlight Monitor'.";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ govanify ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
{ stdenv, lib, fetchurl, substituteAll, PodParser }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "multiline";
|
||||
version = "0.6.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/weechat/scripts/945315bed4bc2beaf1e47f9b946ffe8f638f77fe/perl/multiline.pl";
|
||||
sha256 = "1smialb21ny7brhij4sbw46xvsmrdv6ig2da0ip63ga2afngwsy4";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
prePatch = ''
|
||||
cp $src multiline.pl
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# The script requires a special Perl environment.
|
||||
(substituteAll {
|
||||
src = ./libpath.patch;
|
||||
env = PodParser;
|
||||
})
|
||||
];
|
||||
|
||||
passthru.scripts = [ "multiline.pl" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D multiline.pl $out/share/multiline.pl
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Multi-line edit box";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ oxzi ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
diff --git a/multiline.pl b/multiline.pl
|
||||
index 54474d4..42fbef8 100644
|
||||
--- a/multiline.pl
|
||||
+++ b/multiline.pl
|
||||
@@ -1,3 +1,4 @@
|
||||
+use lib '@env@/lib/perl5/site_perl';
|
||||
use strict; use warnings;
|
||||
$INC{'Encode/ConfigLocal.pm'}=1;
|
||||
require Encode;
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, stdenv, fetchurl, weechat }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "url_hint";
|
||||
version = "0.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/weechat/scripts/10671d785ea3f9619d0afd0d7a1158bfa4ee3938/python/url_hint.py";
|
||||
sha256 = "0aw59kq74yqh0qbdkldfl6l83d0bz833232xr2w4741szck43kss";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
passthru.scripts = [ "url_hint.py" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D $src $out/share/url_hint.py
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (weechat.meta) platforms;
|
||||
description = "url_hint.py is a URL opening script.";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ eraserhd ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
{ lib, stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wee-slack";
|
||||
version = "2.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "wee-slack";
|
||||
owner = "wee-slack";
|
||||
rev = "v${version}";
|
||||
sha256 = "0xfklr0gsc9jgxfyrrb2j756lclz9g8imcb0pk0xgyj8mhsw23zk";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./libpath.patch;
|
||||
env = "${buildEnv {
|
||||
name = "wee-slack-env";
|
||||
paths = with python3Packages; [
|
||||
websocket-client
|
||||
six
|
||||
];
|
||||
}}/${python3Packages.python.sitePackages}";
|
||||
})
|
||||
./load_weemoji_path.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace wee_slack.py --subst-var out
|
||||
'';
|
||||
|
||||
passthru.scripts = [ "wee_slack.py" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
cp wee_slack.py $out/share/wee_slack.py
|
||||
install -D -m 0444 weemoji.json $out/share/wee-slack/weemoji.json
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/wee-slack/wee-slack";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ willibutz ];
|
||||
description = ''
|
||||
A WeeChat plugin for Slack.com. Synchronizes read markers, provides typing notification, search, etc..
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/wee_slack.py b/wee_slack.py
|
||||
index e4716b4..f673b7c 100644
|
||||
--- a/wee_slack.py
|
||||
+++ b/wee_slack.py
|
||||
@@ -31,6 +31,8 @@ import string
|
||||
# See https://github.com/numpy/numpy/issues/11925
|
||||
sys.modules["numpy"] = None
|
||||
|
||||
+sys.path.append('@env@')
|
||||
+
|
||||
from websocket import ( # noqa: E402
|
||||
ABNF,
|
||||
create_connection,
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
diff --git a/wee_slack.py b/wee_slack.py
|
||||
index e4716b4..ffd122d 100644
|
||||
--- a/wee_slack.py
|
||||
+++ b/wee_slack.py
|
||||
@@ -6092,19 +6092,7 @@ def create_slack_debug_buffer():
|
||||
|
||||
def load_emoji():
|
||||
try:
|
||||
- weechat_dir = w.info_get("weechat_data_dir", "") or w.info_get(
|
||||
- "weechat_dir", ""
|
||||
- )
|
||||
- weechat_sharedir = w.info_get("weechat_sharedir", "")
|
||||
- local_weemoji, global_weemoji = (
|
||||
- "{}/weemoji.json".format(path) for path in (weechat_dir, weechat_sharedir)
|
||||
- )
|
||||
- path = (
|
||||
- global_weemoji
|
||||
- if os.path.exists(global_weemoji) and not os.path.exists(local_weemoji)
|
||||
- else local_weemoji
|
||||
- )
|
||||
- with open(path, "r") as ef:
|
||||
+ with open("@out@/share/wee-slack/weemoji.json", "r") as ef:
|
||||
emojis = json.loads(ef.read())
|
||||
if "emoji" in emojis:
|
||||
print_error(
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "weechat-autosort";
|
||||
version = "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "de-vri-es";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0a2gc8nhklvlivradhqy2pkymsqyy01pvzrmwg60cln8snmcqpd5";
|
||||
};
|
||||
|
||||
passthru.scripts = [ "autosort.py" ];
|
||||
installPhase = ''
|
||||
install -D autosort.py $out/share/autosort.py
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Autosort is a weechat script to automatically or manually keep your buffers sorted";
|
||||
homepage = "https://github.com/de-vri-es/weechat-autosort";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ emily ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchurl, weechat }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "weechat-go";
|
||||
version = "2.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/weechat/scripts/raw/414cff3ee605ba204b607742430a21443c035b08/python/go.py";
|
||||
sha256 = "0bnbfpj1qg4yzwbikh1aw5ajc8l44lkb0y0m6mz8grpf5bxk5cwm";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
passthru.scripts = [ "go.py" ];
|
||||
|
||||
installPhase = ''
|
||||
install -D $src $out/share/go.py
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (weechat.meta) platforms;
|
||||
description = "go.py is a weechat script to quickly jump to different buffers";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ govanify ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{ lib, stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "weechat-matrix-bridge";
|
||||
version = "unstable-2018-11-19";
|
||||
src = fetchFromGitHub {
|
||||
owner = "torhve";
|
||||
repo = "weechat-matrix-protocol-script";
|
||||
rev = "8d32e90d864a8f3f09ecc2857cd5dd6e39a8c3f7";
|
||||
sha256 = "0qqd6qmkrdc0r3rnl53c3yp93fbcz7d3mdw3vq5gmdqxyym4s9lj";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./library-path.patch
|
||||
];
|
||||
|
||||
buildInputs = [ curl cjson olm luaffi ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace matrix.lua \
|
||||
--replace "/usr/bin/curl" "${curl}/bin/curl" \
|
||||
--replace "__NIX_LIB_PATH__" "$out/lib/?.so" \
|
||||
--replace "__NIX_OLM_PATH__" "$out/share/?.lua"
|
||||
|
||||
substituteInPlace olm.lua \
|
||||
--replace "__NIX_LIB_PATH__" "$out/lib/?.so"
|
||||
'';
|
||||
|
||||
passthru.scripts = [ "matrix.lua" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{share,lib}
|
||||
|
||||
cp {matrix.lua,olm.lua} $out/share
|
||||
cp ${cjson}/lib/lua/${cjson.lua.luaversion}/cjson.so $out/lib/cjson.so
|
||||
cp ${olm}/lib/libolm.so $out/lib/libolm.so
|
||||
cp ${luaffi}/lib/lua/${luaffi.lua.luaversion}/ffi.so $out/lib/ffi.so
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A WeeChat script in Lua that implements the matrix.org chat protocol";
|
||||
homepage = "https://github.com/torhve/weechat-matrix-protocol-script";
|
||||
maintainers = with maintainers; [ ];
|
||||
license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53
|
||||
platforms = platforms.unix;
|
||||
|
||||
# As of 2019-06-30, all of the dependencies are available on macOS but the
|
||||
# package itself does not build.
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
diff --git a/matrix.lua b/matrix.lua
|
||||
index b79f500..32b37a2 100644
|
||||
--- a/matrix.lua
|
||||
+++ b/matrix.lua
|
||||
@@ -43,6 +43,9 @@ This script maps this as follows:
|
||||
|
||||
]]
|
||||
|
||||
+package.cpath = package.cpath .. ";__NIX_LIB_PATH__"
|
||||
+package.path = package.path .. ";__NIX_OLM_PATH__"
|
||||
+
|
||||
local json = require 'cjson' -- apt-get install lua-cjson
|
||||
local olmstatus, olm = pcall(require, 'olm') -- LuaJIT olm FFI binding ln -s ~/olm/olm.lua /usr/local/share/lua/5.1
|
||||
local w = weechat
|
||||
diff --git a/olm.lua b/olm.lua
|
||||
index 114649c..4828371 100644
|
||||
--- a/olm.lua
|
||||
+++ b/olm.lua
|
||||
@@ -17,6 +17,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
--]]
|
||||
+
|
||||
+package.cpath = package.cpath .. ";__NIX_LIB_PATH__"
|
||||
+
|
||||
local ffi = require'ffi'
|
||||
|
||||
ffi.cdef[[
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
{ buildPythonPackage
|
||||
, lib
|
||||
, python
|
||||
, fetchFromGitHub
|
||||
, pyopenssl
|
||||
, webcolors
|
||||
, future
|
||||
, atomicwrites
|
||||
, attrs
|
||||
, Logbook
|
||||
, pygments
|
||||
, matrix-nio
|
||||
, aiohttp
|
||||
, requests
|
||||
}:
|
||||
|
||||
let
|
||||
scriptPython = python.withPackages (ps: with ps; [
|
||||
aiohttp
|
||||
requests
|
||||
python-magic
|
||||
]);
|
||||
|
||||
version = "0.3.0";
|
||||
in buildPythonPackage {
|
||||
pname = "weechat-matrix";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "poljar";
|
||||
repo = "weechat-matrix";
|
||||
rev = version;
|
||||
hash = "sha256-o4kgneszVLENG167nWnk2FxM+PsMzi+PSyMUMIktZcc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pyopenssl
|
||||
webcolors
|
||||
future
|
||||
atomicwrites
|
||||
attrs
|
||||
Logbook
|
||||
pygments
|
||||
matrix-nio
|
||||
aiohttp
|
||||
requests
|
||||
];
|
||||
|
||||
passthru.scripts = [ "matrix.py" ];
|
||||
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share $out/bin
|
||||
cp main.py $out/share/matrix.py
|
||||
|
||||
cp contrib/matrix_upload.py $out/bin/matrix_upload
|
||||
cp contrib/matrix_decrypt.py $out/bin/matrix_decrypt
|
||||
cp contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper
|
||||
substituteInPlace $out/bin/matrix_upload \
|
||||
--replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
|
||||
substituteInPlace $out/bin/matrix_sso_helper \
|
||||
--replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
|
||||
substituteInPlace $out/bin/matrix_decrypt \
|
||||
--replace '/usr/bin/env python3' '${scriptPython}/bin/python'
|
||||
|
||||
mkdir -p $out/${python.sitePackages}
|
||||
cp -r matrix $out/${python.sitePackages}/matrix
|
||||
'';
|
||||
|
||||
dontPatchShebangs = true;
|
||||
postFixup = ''
|
||||
addToSearchPath program_PYTHONPATH $out/${python.sitePackages}
|
||||
patchPythonScript $out/share/matrix.py
|
||||
substituteInPlace $out/${python.sitePackages}/matrix/server.py --replace \"matrix_sso_helper\" \"$out/bin/matrix_sso_helper\"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol";
|
||||
homepage = "https://github.com/poljar/weechat-matrix";
|
||||
license = licenses.isc;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ tilpner emily ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libnotify }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "weechat-notify-send";
|
||||
version = "0.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "s3rvac";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a";
|
||||
};
|
||||
|
||||
passthru.scripts = [ "notify_send.py" ];
|
||||
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
install -D notify_send.py $out/share/notify_send.py
|
||||
substituteInPlace $out/share/notify_send.py \
|
||||
--replace "'notify-send'" "'${libnotify}/bin/notify-send'"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A WeeChat script that sends highlight and message notifications through notify-send";
|
||||
homepage = "https://github.com/s3rvac/weechat-notify-send";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ tobim ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
{ lib, stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, python3Packages, gmp }:
|
||||
|
||||
let
|
||||
# pure-python-otr (potr) requires an older version of pycrypto, which is
|
||||
# not compatible with pycryptodome. Therefore, the latest patched version
|
||||
# of pycrypto will be fetched from the Debian project.
|
||||
# https://security-tracker.debian.org/tracker/source-package/python-crypto
|
||||
|
||||
pycrypto = python3Packages.buildPythonPackage rec {
|
||||
pname = "pycrypto";
|
||||
version = "2.6.1-13.1";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://salsa.debian.org/sramacher/python-crypto.git";
|
||||
rev = "debian/${version}";
|
||||
sha256 = "1mahqmlgilgk0rn5hfkhza7kscfm7agdakkb6rqnif9g0qp3s52f";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
for p in debian/patches/*.patch; do
|
||||
patch -p1 < "$p"
|
||||
done
|
||||
'';
|
||||
|
||||
buildInputs = [ gmp ];
|
||||
|
||||
# Tests are relying on old Python 2 modules.
|
||||
doCheck = false;
|
||||
|
||||
preConfigure = ''
|
||||
sed -i 's,/usr/include,/no-such-dir,' configure
|
||||
sed -i "s!,'/usr/include/'!!" setup.py
|
||||
'';
|
||||
};
|
||||
|
||||
potr = python3Packages.potr.overridePythonAttrs (oldAttrs: {
|
||||
propagatedBuildInputs = [ pycrypto ];
|
||||
});
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "weechat-otr";
|
||||
version = "1.9.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = pname;
|
||||
owner = "mmb";
|
||||
rev = "v${version}";
|
||||
sha256 = "1lngv98y6883vk8z2628cl4d5y8jxy39w8245gjdvshl8g18k5s2";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./libpath.patch;
|
||||
env = "${buildEnv {
|
||||
name = "weechat-otr-env";
|
||||
paths = [ potr pycrypto ];
|
||||
}}/${python3Packages.python.sitePackages}";
|
||||
})
|
||||
];
|
||||
|
||||
passthru.scripts = [ "weechat_otr.py" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
cp weechat_otr.py $out/share/weechat_otr.py
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/mmb/weechat-otr";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ oxzi ];
|
||||
description = "WeeChat script for Off-the-Record messaging";
|
||||
knownVulnerabilities = [
|
||||
"There is no upstream release since 2018-03."
|
||||
"Utilizes deprecated and vulnerable pycrypto library with Debian patches from 2020-04."
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/weechat_otr.py b/weechat_otr.py
|
||||
index 0ccfb35..c42bebf 100644
|
||||
--- a/weechat_otr.py
|
||||
+++ b/weechat_otr.py
|
||||
@@ -41,6 +41,8 @@ import shlex
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
+sys.path.append('@env@')
|
||||
+
|
||||
import potr
|
||||
import weechat
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "weechat-zncplayback";
|
||||
version = "0.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/weechat/scripts/raw/bcc9643136addd2cd68ac957dd64e336e4f88aa1/python/zncplayback.py";
|
||||
sha256 = "1k32p6naxg40g664ip48zvm61xza7l9az3v3rawmjw97i0mwz7y3";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
cp $src $out/share/zncplayback.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
scripts = [ "zncplayback.py" ];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Add support for the ZNC Playback module";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ qyliss ];
|
||||
};
|
||||
}
|
||||
91
pkgs/applications/networking/irc/weechat/wrapper.nix
Normal file
91
pkgs/applications/networking/irc/weechat/wrapper.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
{ lib, runCommand, writeScriptBin, buildEnv
|
||||
, python3Packages, perlPackages, runtimeShell
|
||||
}:
|
||||
|
||||
weechat:
|
||||
|
||||
let
|
||||
wrapper = {
|
||||
installManPages ? true
|
||||
, configure ? { availablePlugins, ... }: { plugins = builtins.attrValues availablePlugins; }
|
||||
}:
|
||||
|
||||
let
|
||||
perlInterpreter = perlPackages.perl;
|
||||
availablePlugins = let
|
||||
simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";};
|
||||
in rec {
|
||||
python = (simplePlugin "python") // {
|
||||
extraEnv = ''
|
||||
export PATH="${python3Packages.python}/bin:$PATH"
|
||||
'';
|
||||
withPackages = pkgsFun: (python // {
|
||||
extraEnv = ''
|
||||
export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}"
|
||||
'';
|
||||
});
|
||||
};
|
||||
perl = (simplePlugin "perl") // {
|
||||
extraEnv = ''
|
||||
export PATH="${perlInterpreter}/bin:$PATH"
|
||||
'';
|
||||
withPackages = pkgsFun: (perl // {
|
||||
extraEnv = ''
|
||||
${perl.extraEnv}
|
||||
export PERL5LIB=${perlPackages.makeFullPerlPath (pkgsFun perlPackages)}
|
||||
'';
|
||||
});
|
||||
};
|
||||
tcl = simplePlugin "tcl";
|
||||
ruby = simplePlugin "ruby";
|
||||
guile = simplePlugin "guile";
|
||||
lua = simplePlugin "lua";
|
||||
};
|
||||
|
||||
config = configure { inherit availablePlugins; };
|
||||
|
||||
plugins = config.plugins or (builtins.attrValues availablePlugins);
|
||||
|
||||
pluginsDir = runCommand "weechat-plugins" {} ''
|
||||
mkdir -p $out/plugins
|
||||
for plugin in ${lib.concatMapStringsSep " " (p: p.pluginFile) plugins} ; do
|
||||
ln -s $plugin $out/plugins
|
||||
done
|
||||
'';
|
||||
|
||||
init = let
|
||||
init = builtins.replaceStrings [ "\n" ] [ ";" ] (config.init or "");
|
||||
|
||||
mkScript = drv: lib.forEach drv.scripts (script: "/script load ${drv}/share/${script}");
|
||||
|
||||
scripts = builtins.concatStringsSep ";" (lib.foldl (scripts: drv: scripts ++ mkScript drv)
|
||||
[ ] (config.scripts or []));
|
||||
in "${scripts};${init}";
|
||||
|
||||
mkWeechat = bin: (writeScriptBin bin ''
|
||||
#!${runtimeShell}
|
||||
export WEECHAT_EXTRA_LIBDIR=${pluginsDir}
|
||||
${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins}
|
||||
exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init}
|
||||
'') // {
|
||||
inherit (weechat) name man;
|
||||
unwrapped = weechat;
|
||||
outputs = [ "out" "man" ];
|
||||
};
|
||||
in buildEnv {
|
||||
name = "weechat-bin-env-${weechat.version}";
|
||||
extraOutputsToInstall = lib.optionals installManPages [ "man" ];
|
||||
paths = [
|
||||
(mkWeechat "weechat")
|
||||
(mkWeechat "weechat-headless")
|
||||
(runCommand "weechat-out-except-bin" { } ''
|
||||
mkdir $out
|
||||
ln -sf ${weechat}/include $out/include
|
||||
ln -sf ${weechat}/lib $out/lib
|
||||
ln -sf ${weechat}/share $out/share
|
||||
'')
|
||||
];
|
||||
meta = builtins.removeAttrs weechat.meta [ "outputsToInstall" ];
|
||||
};
|
||||
|
||||
in lib.makeOverridable wrapper
|
||||
58
pkgs/applications/networking/irc/wraith/configure.patch
Normal file
58
pkgs/applications/networking/irc/wraith/configure.patch
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6143,53 +6143,8 @@ rm -f confcache
|
||||
#AC_CHECK_HEADERS(openssl/ssl.h openssl/crypto.h)
|
||||
#AC_CHECK_HEADERS(zlib.h)
|
||||
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for path to OpenSSL" >&5
|
||||
-$as_echo_n "checking for path to OpenSSL... " >&6; }
|
||||
-
|
||||
-
|
||||
-# Check whether --with-openssl was given.
|
||||
-if test "${with_openssl+set}" = set; then :
|
||||
- withval=$with_openssl; with_openssl_path=$withval
|
||||
-else
|
||||
- with_openssl_path=auto
|
||||
-fi
|
||||
-
|
||||
-
|
||||
-
|
||||
-cf_openssl_basedir=""
|
||||
-if test "$with_openssl_path" != "auto"; then
|
||||
- cf_openssl_basedir="`echo ${with_openssl_path} | sed 's/\/$//'`"
|
||||
-else
|
||||
- for dirs in /usr/local/ssl /usr/pkg /usr/local /usr/local/openssl; do
|
||||
- if test -f "${dirs}/include/openssl/opensslv.h" && test -f "${dirs}/lib/libssl.so"; then
|
||||
- cf_openssl_basedir="${dirs}"
|
||||
- break
|
||||
- fi
|
||||
- done
|
||||
- unset dirs
|
||||
-fi
|
||||
-if test ! -z "$cf_openssl_basedir"; then
|
||||
- if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" && test -f "${cf_openssl_basedir}/lib/libssl.so"; then
|
||||
- SSL_INCLUDES="-I${cf_openssl_basedir}/include"
|
||||
- SSL_LIBS="-L${cf_openssl_basedir}/lib"
|
||||
- else
|
||||
- cf_openssl_basedir=""
|
||||
- fi
|
||||
-else
|
||||
- if test -f "/usr/include/openssl/opensslv.h" ; then
|
||||
- cf_openssl_basedir="/usr"
|
||||
- fi
|
||||
-fi
|
||||
-
|
||||
-if test ! -z "$cf_openssl_basedir"; then
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_openssl_basedir" >&5
|
||||
-$as_echo "$cf_openssl_basedir" >&6; }
|
||||
-else
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||
-$as_echo "not found" >&6; }
|
||||
- as_fn_error 1 "OpenSSL is required." "$LINENO" 5
|
||||
-fi
|
||||
-unset cf_openssl_basedir
|
||||
+SSL_INCLUDES="-I@openssl.dev@/include"
|
||||
+SSL_LIBS="-L@openssl-lib@/lib"
|
||||
|
||||
save_CXX="$CXX"
|
||||
CXX="$CXX $SSL_INCLUDES"
|
||||
46
pkgs/applications/networking/irc/wraith/default.nix
Normal file
46
pkgs/applications/networking/irc/wraith/default.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{ lib, stdenv, fetchurl, openssl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wraith";
|
||||
version = "1.4.10";
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/wraithbotpack/wraith-v${version}.tar.gz";
|
||||
sha256 = "1h8159g6wh1hi69cnhqkgwwwa95fa6z1zrzjl219mynbf6vjjzkw";
|
||||
};
|
||||
hardeningDisable = [ "format" ];
|
||||
buildInputs = [ openssl ];
|
||||
patches = [ ./configure.patch ./dlopen.patch ];
|
||||
postPatch = ''
|
||||
substituteInPlace configure --subst-var-by openssl.dev ${openssl.dev} \
|
||||
--subst-var-by openssl-lib ${lib.getLib openssl}
|
||||
substituteInPlace src/libssl.cc --subst-var-by openssl ${lib.getLib openssl}
|
||||
substituteInPlace src/libcrypto.cc --subst-var-by openssl ${lib.getLib openssl}
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -a wraith $out/bin/wraith
|
||||
ln -s wraith $out/bin/hub
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
broken = (stdenv.isLinux && stdenv.isAarch64);
|
||||
description = "An IRC channel management bot written purely in C/C++";
|
||||
longDescription = ''
|
||||
Wraith is an IRC channel management bot written purely in C/C++. It has
|
||||
been in development since late 2003. It is based on Eggdrop 1.6.12 but has
|
||||
since evolved into something much different at its core. TCL and loadable
|
||||
modules are currently not supported.
|
||||
|
||||
Maintainer's Notes:
|
||||
Copy the binary out of the store before running it with the -C option to
|
||||
configure it. See https://github.com/wraith/wraith/wiki/GettingStarted .
|
||||
|
||||
The binary will not run when moved onto non-NixOS systems; use patchelf
|
||||
to fix its runtime dependenices.
|
||||
'';
|
||||
homepage = "https://wraith.botpack.net/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ elitak ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
48
pkgs/applications/networking/irc/wraith/dlopen.patch
Normal file
48
pkgs/applications/networking/irc/wraith/dlopen.patch
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
diff --git a/src/libcrypto.cc b/src/libcrypto.cc
|
||||
index 5139f66..517103f 100644
|
||||
--- a/src/libcrypto.cc
|
||||
+++ b/src/libcrypto.cc
|
||||
@@ -100,17 +100,9 @@ int load_libcrypto() {
|
||||
}
|
||||
|
||||
sdprintf("Loading libcrypto");
|
||||
+ dlerror(); // Clear Errors
|
||||
+ libcrypto_handle = dlopen("@openssl@/lib/libcrypto.so", RTLD_LAZY|RTLD_GLOBAL);
|
||||
|
||||
- bd::Array<bd::String> libs_list(bd::String("libcrypto.so." SHLIB_VERSION_NUMBER " libcrypto.so libcrypto.so.1.1 libcrypto.so.1.0.0 libcrypto.so.0.9.8 libcrypto.so.10 libcrypto.so.9 libcrypto.so.8 libcrypto.so.7 libcrypto.so.6").split(' '));
|
||||
-
|
||||
- for (size_t i = 0; i < libs_list.length(); ++i) {
|
||||
- dlerror(); // Clear Errors
|
||||
- libcrypto_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY|RTLD_GLOBAL);
|
||||
- if (libcrypto_handle) {
|
||||
- sdprintf("Found libcrypto: %s", bd::String(libs_list[i]).c_str());
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
if (!libcrypto_handle) {
|
||||
fprintf(stderr, STR("Unable to find libcrypto\n"));
|
||||
return(1);
|
||||
diff --git a/src/libssl.cc b/src/libssl.cc
|
||||
index 6010abc..86e29fc 100644
|
||||
--- a/src/libssl.cc
|
||||
+++ b/src/libssl.cc
|
||||
@@ -78,17 +78,9 @@ int load_libssl() {
|
||||
}
|
||||
|
||||
sdprintf("Loading libssl");
|
||||
+ dlerror(); // Clear Errors
|
||||
+ libssl_handle = dlopen("@openssl@/lib/libssl.so", RTLD_LAZY);
|
||||
|
||||
- bd::Array<bd::String> libs_list(bd::String("libssl.so." SHLIB_VERSION_NUMBER " libssl.so libssl.so.1.1 libssl.so.1.0.0 libssl.so.0.9.8 libssl.so.10 libssl.so.9 libssl.so.8 libssl.so.7 libssl.so.6").split(' '));
|
||||
-
|
||||
- for (size_t i = 0; i < libs_list.length(); ++i) {
|
||||
- dlerror(); // Clear Errors
|
||||
- libssl_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY);
|
||||
- if (libssl_handle) {
|
||||
- sdprintf("Found libssl: %s", bd::String(libs_list[i]).c_str());
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
if (!libssl_handle) {
|
||||
fprintf(stderr, STR("Unable to find libssl\n"));
|
||||
return(1);
|
||||
Loading…
Add table
Add a link
Reference in a new issue