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:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,72 @@
{ lib
, fetchurl
, fetchpatch
, intltool
, libtorrent-rasterbar
, pythonPackages
, gtk3
, glib
, gobject-introspection
, librsvg
, wrapGAppsHook
}:
pythonPackages.buildPythonPackage rec {
pname = "deluge";
version = "2.0.5";
src = fetchurl {
url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz";
sha256 = "sha256-xL0Eq/0hG2Uhi+A/PEbSb0QCSITeEOAYWfuFb91vJdg=";
};
propagatedBuildInputs = with pythonPackages; [
twisted
Mako
chardet
pyxdg
pyopenssl
service-identity
libtorrent-rasterbar.dev
libtorrent-rasterbar.python
setuptools
setproctitle
pillow
rencode
six
zope_interface
dbus-python
pygobject3
pycairo
gtk3
gobject-introspection
librsvg
];
nativeBuildInputs = [ intltool wrapGAppsHook glib ];
checkInputs = with pythonPackages; [
pytestCheckHook
pytest-twisted
pytest-cov
mock
mccabe
pylint
];
doCheck = false; # until pytest-twisted is packaged
postInstall = ''
mkdir -p $out/share
cp -R deluge/ui/data/{icons,pixmaps} $out/share/
install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop
'';
meta = with lib; {
homepage = "https://deluge-torrent.org";
description = "Torrent client";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ domenkozar ebzzry ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,24 @@
{ stdenv, lib, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "dht";
version = "0.25";
src = fetchFromGitHub {
# Use transmission fork from post-0.25-transmission branch
owner = "transmission";
repo = pname;
rev = "25e12bb39eea3d433602de6390796fec8a8f3620";
sha256 = "fksi8WBQPydgSlISaZMMnxzt4xN7/Hh7aN6QQ+g/L7s=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "BitTorrent DHT library";
homepage = "https://github.com/transmission/dht";
license = licenses.mit;
maintainers = with maintainers; [ emilytrau ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,52 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, libX11
, mkDerivation, qtbase, qttools, qtmultimedia, qtscript
, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext, perl }:
mkDerivation rec {
pname = "eiskaltdcpp";
version = "2.4.2";
src = fetchFromGitHub {
owner = "eiskaltdcpp";
repo = "eiskaltdcpp";
rev = "v${version}";
sha256 = "sha256-JmAopXFS6MkxW0wDQ1bC/ibRmWgOpzU0971hcqAehLU=";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ qtbase qttools qtmultimedia qtscript bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext
(perl.withPackages (p: with p; [
GetoptLong
TermShellUI
])) ]
++ lib.optional stdenv.isDarwin libiconv;
cmakeFlags = [
"-DDBUS_NOTIFY=ON"
"-DFREE_SPACE_BAR_C=ON"
"-DLUA_SCRIPT=ON"
"-DPERL_REGEX=ON"
"-DUSE_ASPELL=ON"
"-DUSE_CLI_JSONRPC=ON"
"-DUSE_MINIUPNP=ON"
"-DUSE_JS=ON"
"-DWITH_LUASCRIPTS=ON"
"-DWITH_SOUNDS=ON"
];
postInstall = ''
ln -s $out/bin/$pname-qt $out/bin/$pname
'';
preFixup = ''
substituteInPlace $out/bin/eiskaltdcpp-cli-jsonrpc \
--replace "/usr/local" "$out"
'';
meta = with lib; {
description = "A cross-platform program that uses the Direct Connect and ADC protocols";
homepage = "https://github.com/eiskaltdcpp/eiskaltdcpp";
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,91 @@
{ lib
, stdenv
, fetchFromGitLab
, fetchpatch
, appstream-glib
, dbus
, desktop-file-utils
, git
, glib
, gtk4
, libadwaita
, meson
, ninja
, openssl
, pkg-config
, python3
, rustPlatform
, sqlite
, transmission
, wrapGAppsHook4
}:
let
patchedTransmission = transmission.overrideAttrs (oldAttrs: {
patches = (oldAttrs.patches or []) ++ [
(fetchpatch {
url = "https://raw.githubusercontent.com/flathub/de.haeckerfelix.Fragments/2aee477c8e26a24570f8dbbdbd1c49e017ae32eb/transmission_pdeathsig.patch";
sha256 = "sha256-/rCoA566tMmzqcIfffC082Y56TwEyyQJ0knxymtscbA=";
})
];
});
in stdenv.mkDerivation rec {
pname = "fragments";
version = "2.0.2";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "Fragments";
rev = version;
sha256 = "sha256-CMa1yka0kOxMhxSuazlJxTk4fzxuuwKYLBpEMwHbBUE=";
};
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
'';
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-/rFZcbpITYkpSCEZp9XH253u90RGmuVLEBGIRNBgI/o=";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
git
meson
ninja
pkg-config
python3
wrapGAppsHook4
] ++ (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [
dbus
glib
gtk4
libadwaita
openssl
sqlite
];
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${lib.makeBinPath [ patchedTransmission ]}"
)
'';
meta = with lib; {
homepage = "https://gitlab.gnome.org/World/Fragments";
description = "Easy to use BitTorrent client for the GNOME desktop environment";
maintainers = with maintainers; [ emilytrau ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,81 @@
{ lib, stdenv, fetchurl, fetchFromGitHub, ant, jdk, bash, coreutils, substituteAll }:
let
freenet_ext = fetchurl {
url = "https://downloads.freenetproject.org/latest/freenet-ext.jar";
sha256 = "17ypljdvazgx2z6hhswny1lxfrknysz3x6igx8vl3xgdpvbb7wij";
};
bcprov_version = "jdk15on-154";
bcprov = fetchurl {
url = "https://www.bouncycastle.org/download/bcprov-ext-${bcprov_version}.jar";
sha256 = "0abmhg2h44g8c5p7skzqwfxj8xwcjh9vs84mc0hr78k1am0633jk";
};
seednodes = fetchurl {
url = "https://downloads.freenetproject.org/alpha/opennet/seednodes.fref";
sha256 = "08awwr8n80b4cdzzb3y8hf2fzkr1f2ly4nlq779d6pvi5jymqdvv";
};
version = "build01480";
freenet-jars = stdenv.mkDerivation {
pname = "freenet-jars";
inherit version;
src = fetchFromGitHub {
owner = "freenet";
repo = "fred";
rev = version;
sha256 = "0wddkfyhsgs7bcq9svicz6l0a35yv82yqzmji3c345hg4hbch3kb";
};
patchPhase = ''
cp ${freenet_ext} lib/freenet/freenet-ext.jar
cp ${bcprov} lib/bcprov-${bcprov_version}.jar
sed '/antcall.*-ext/d' -i build.xml
sed 's/@unknown@/${version}/g' -i build-clean.xml
'';
buildInputs = [ ant jdk ];
buildPhase = "ant package-only";
installPhase = ''
mkdir -p $out/share/freenet
cp lib/bcprov-${bcprov_version}.jar $out/share/freenet
cp lib/freenet/freenet-ext.jar $out/share/freenet
cp dist/freenet.jar $out/share/freenet
'';
};
in stdenv.mkDerivation {
name = "freenet-${version}";
inherit version;
src = substituteAll {
src = ./freenetWrapper;
inherit bash coreutils seednodes bcprov_version;
freenet = freenet-jars;
jre = jdk.jre;
};
jars = freenet-jars;
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/freenet
chmod +x $out/bin/freenet
ln -s ${freenet-jars}/share $out/share
'';
meta = {
description = "Decentralised and censorship-resistant network";
homepage = "https://freenetproject.org/";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = with lib.platforms; linux;
};
}

View file

@ -0,0 +1,18 @@
#! @bash@/bin/bash
PATH=@coreutils@/bin:$PATH
export FREENET_HOME="$HOME/.local/share/freenet"
if [ -n "$XDG_DATA_HOME" ]
then export FREENET_HOME="$XDG_DATA_HOME/freenet"
fi
if [ ! -d $FREENET_HOME ]; then
mkdir -p $FREENET_HOME
fi
cp -u @seednodes@ $FREENET_HOME/seednodes.fref
chmod u+rw $FREENET_HOME/seednodes.fref
cd $FREENET_HOME
@jre@/bin/java -cp @freenet@/share/freenet/bcprov-@bcprov_version@.jar:@freenet@/share/freenet/freenet-ext.jar:@freenet@/share/freenet/freenet.jar -Xmx1024M freenet.node.NodeStarter

View file

@ -0,0 +1,98 @@
{ lib, stdenv, fetchFromGitHub, gradle_6, perl, jre, makeWrapper, makeDesktopItem, mplayer }:
let
version = "6.6.7-build-529";
src = fetchFromGitHub {
owner = "frostwire";
repo = "frostwire";
rev = "frostwire-desktop-${version}";
sha256 = "03wdj2kr8akzx8m1scvg98132zbaxh81qjdsxn2645b3gahjwz0m";
};
desktopItem = makeDesktopItem {
name = "frostwire";
desktopName = "FrostWire";
genericName = "P2P Bittorrent client";
exec = "frostwire";
icon = "frostwire";
comment = "Search and explore all kinds of files on the Bittorrent network";
categories = [ "Network" "FileTransfer" "P2P" ];
};
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "frostwire-desktop-deps";
inherit version src;
buildInputs = [ gradle_6 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
( cd desktop
gradle --no-daemon build
)
'';
# perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
installPhase = ''
find $GRADLE_USER_HOME -type f -regex '.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-r6YSrbSJbM3063JrX4tCVKFrJxTaLN4Trc+33jzpwcE=";
};
in stdenv.mkDerivation {
pname = "frostwire-desktop";
inherit version src;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ gradle_6 ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
( cd desktop
# disable auto-update (anyway it won't update frostwire installed in nix store)
substituteInPlace src/com/frostwire/gui/updates/UpdateManager.java \
--replace 'um.checkForUpdates' '// um.checkForUpdates'
# fix path to mplayer
substituteInPlace src/com/frostwire/gui/player/MediaPlayerLinux.java \
--replace /usr/bin/mplayer ${mplayer}/bin/mplayer
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }'
gradle --offline --no-daemon build
)
'';
installPhase = ''
mkdir -p $out/lib $out/share/java
cp desktop/build/libs/frostwire.jar $out/share/java/frostwire.jar
cp ${ { x86_64-darwin = "desktop/lib/native/*.dylib";
x86_64-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}.so";
i686-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}X86.so";
}.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")
} $out/lib
cp -dpR ${desktopItem}/share $out
makeWrapper ${jre}/bin/java $out/bin/frostwire \
--add-flags "-Djava.library.path=$out/lib -jar $out/share/java/frostwire.jar"
'';
meta = with lib; {
homepage = "https://www.frostwire.com/";
description = "BitTorrent Client and Cloud File Downloader";
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # deps
];
license = licenses.gpl2;
maintainers = with maintainers; [ gavin ];
platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ];
};
}

View file

@ -0,0 +1,43 @@
{ lib, stdenv, fetchurl, jre, makeWrapper }:
stdenv.mkDerivation rec {
version = "6.9.7";
pname = "frostwire";
src = fetchurl {
url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
sha256 = "sha256-LsmDfNAj10x+txJ4PugyF3Irj/N1reb3ChTvFFIucdc=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/share/java
mv $(ls */*.jar) $out/share/java
makeWrapper $out/share/java/frostwire $out/bin/frostwire \
--prefix PATH : ${jre}/bin \
--prefix LD_LIBRARY_PATH : $out/share/java \
--set JAVA_HOME "${jre}"
substituteInPlace $out/share/java/frostwire \
--replace "export JAVA_PROGRAM_DIR=/usr/lib/frostwire/jre/bin" \
"export JAVA_PROGRAM_DIR=${jre}/bin/"
substituteInPlace $out/share/java/frostwire.desktop \
--replace "Exec=/usr/bin/frostwire %U" "Exec=${placeholder "out"}/bin/frostwire %U"
runHook postInstall
'';
meta = with lib; {
homepage = "https://www.frostwire.com/";
description = "BitTorrent Client and Cloud File Downloader";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl3Plus;
maintainers = with maintainers; [ gavin ];
platforms = [ "x86_64-linux"];
};
}

View file

@ -0,0 +1,74 @@
{ lib, stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor
, libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring
, makeWrapper, ncurses, pkg-config, libxml2, sqlite, zlib
, libpulseaudio, libopus, libogg, jansson, libsodium
, postgresqlSupport ? false, postgresql }:
stdenv.mkDerivation rec {
pname = "gnunet";
version = "0.16.3";
src = fetchurl {
url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
sha256 = "sha256-MjkFLxNTepqrqqZuxCh12+4vaDjF8Ys674VOa1Mew4o=";
};
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config libtool makeWrapper ];
buildInputs = [
adns curl gmp gnutls libextractor libgcrypt libgnurl libidn
libmicrohttpd libunistring libxml2 ncurses gettext libsodium
sqlite zlib libpulseaudio libopus libogg jansson
] ++ lib.optional postgresqlSupport postgresql;
preConfigure = ''
# Brute force: since nix-worker chroots don't provide
# /etc/{resolv.conf,hosts}, replace all references to `localhost'
# by their IPv4 equivalent.
find . \( -name \*.c -or -name \*.conf \) | \
xargs sed -ie 's|\<localhost\>|127.0.0.1|g'
# Make sure the tests don't rely on `/tmp', for the sake of chroot
# builds.
find . \( -iname \*test\*.c -or -name \*.conf \) | \
xargs sed -ie "s|/tmp|$TMPDIR|g"
sed -ie 's|@LDFLAGS@|@LDFLAGS@ $(Z_LIBS)|g' \
src/regex/Makefile.in \
src/fs/Makefile.in
'';
# unfortunately, there's still a few failures with impure tests
doCheck = false;
checkPhase = ''
export GNUNET_PREFIX="$out"
export PATH="$out/bin:$PATH"
make -k check
'';
meta = with lib; {
description = "GNU's decentralized anonymous and censorship-resistant P2P framework";
longDescription = ''
GNUnet is a framework for secure peer-to-peer networking that
does not use any centralized or otherwise trusted services. A
first service implemented on top of the networking layer
allows anonymous censorship-resistant file-sharing. Anonymity
is provided by making messages originating from a peer
indistinguishable from messages that the peer is routing. All
peers act as routers and use link-encrypted connections with
stable bandwidth utilization to communicate with each other.
GNUnet uses a simple, excess-based economic model to allocate
resources. Peers in GNUnet monitor each others behavior with
respect to resource usage; peers that contribute to the
network are rewarded with better service.
'';
homepage = "https://gnunet.org/";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ pstn vrthra ];
platforms = platforms.gnu ++ platforms.linux;
};
}

View file

@ -0,0 +1,47 @@
{ stdenv, fetchurl
, glade
, gnunet
, gnutls
, gtk3
, libextractor
, libgcrypt
, libsodium
, libxml2
, pkg-config
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "gnunet-gtk";
version = "0.15.0";
src = fetchurl {
url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
sha256 = "sha256-FLLlqpQ7Bf+oNRUvx7IniVxFusy/tPYxEP2T6VGF7h8=";
};
nativeBuildInputs= [
pkg-config
wrapGAppsHook
];
buildInputs = [
glade
gnunet
gnutls
gtk3
libextractor
libgcrypt
libsodium
libxml2
];
configureFlags = [ "--with-gnunet=${gnunet}" ];
patchPhase = "patchShebangs pixmaps/icon-theme-installer";
meta = gnunet.meta // {
description = "GNUnet GTK User Interface";
homepage = "https://git.gnunet.org/gnunet-gtk.git";
};
}

View file

@ -0,0 +1,65 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, curl
, gtest
, libtorrent
, ncurses
, jsonRpcSupport ? true, nlohmann_json
, xmlRpcSupport ? true, xmlrpc_c
}:
stdenv.mkDerivation rec {
pname = "jesec-rtorrent";
version = "0.9.8-r16";
src = fetchFromGitHub {
owner = "jesec";
repo = "rtorrent";
rev = "v${version}";
hash = "sha256-i7c1jSawHshj1kaXl8tdpelIKU24okeg9K5/+ht6t2k=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [
curl
libtorrent
ncurses
]
++ lib.optional jsonRpcSupport nlohmann_json
++ lib.optional xmlRpcSupport xmlrpc_c;
cmakeFlags = [
"-DUSE_RUNTIME_CA_DETECTION=NO"
]
++ lib.optional (!jsonRpcSupport) "-DUSE_JSONRPC=NO"
++ lib.optional (!xmlRpcSupport) "-DUSE_XMLRPC=NO";
doCheck = true;
checkInputs = [
gtest
];
prePatch = ''
substituteInPlace src/main.cc \
--replace "/etc/rtorrent/rtorrent.rc" "${placeholder "out"}/etc/rtorrent/rtorrent.rc"
'';
postFixup = ''
mkdir -p $out/etc/rtorrent
cp $src/doc/rtorrent.rc $out/etc/rtorrent/rtorrent.rc
'';
meta = with lib; {
description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach (jesec's fork)";
homepage = "https://github.com/jesec/rtorrent";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ winter AndersonTorres ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,48 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, gtest
, openssl
, zlib
}:
stdenv.mkDerivation rec {
pname = "jesec-libtorrent";
version = "0.13.8-r4";
src = fetchFromGitHub {
owner = "jesec";
repo = "libtorrent";
rev = "v${version}";
hash = "sha256-jC/hgGSi2qy+ToZgdxl1PhASLYbUL0O8trX0th2v5H0=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [
openssl
zlib
];
# Disabled because a test is flaky; see https://github.com/jesec/libtorrent/issues/4.
# doCheck = true;
preCheck = ''
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
'';
checkInputs = [
gtest
];
meta = with lib; {
homepage = "https://github.com/jesec/libtorrent";
description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ winter AndersonTorres ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,24 @@
{ stdenv, lib, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "libutp";
version = "unstable-2017-01-02";
src = fetchFromGitHub {
# Use transmission fork from post-3.3-transmission branch
owner = "transmission";
repo = pname;
rev = "fda9f4b3db97ccb243fcbed2ce280eb4135d705b";
sha256 = "CvuZLOBksIl/lS6LaqOIuzNvX3ihlIPjI3Eqwo7YJH0=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "uTorrent Transport Protocol library";
homepage = "https://github.com/transmission/libutp";
license = licenses.mit;
maintainers = with maintainers; [ emilytrau ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,32 @@
{ lib, fetchFromGitHub, buildGoModule, go-bindata }:
buildGoModule rec {
pname = "magnetico";
version = "0.12.0";
src = fetchFromGitHub {
owner = "boramalper";
repo = "magnetico";
rev = "v${version}";
sha256 = "1avqnfn4llmc9xmpsjfc9ivki0cfvd8sljfzd9yac94xcj581s83";
};
vendorSha256 = "087kikj6sjhjxqymnj7bpxawfmwckihi6mbmi39w0bn2040aflx5";
nativeBuildInputs = [ go-bindata ];
buildPhase = ''
make magneticow magneticod
'';
checkPhase = ''
make test
'';
meta = with lib; {
description = "Autonomous (self-hosted) BitTorrent DHT search engine suite";
homepage = "https://github.com/boramalper/magnetico";
license = licenses.agpl3;
badPlatforms = platforms.darwin;
maintainers = with maintainers; [ rnhmjoj ];
};
}

View file

@ -0,0 +1,40 @@
{ lib, stdenv, fetchurl, fetchpatch, ocamlPackages, zlib }:
stdenv.mkDerivation rec {
pname = "mldonkey";
version = "3.1.7-2";
src = fetchurl {
url = "https://ygrek.org/p/release/mldonkey/mldonkey-${version}.tar.bz2";
sha256 = "b926e7aa3de4b4525af73c88f1724d576b4add56ef070f025941dd51cb24a794";
};
patches = [
# Fixes C++17 compat
(fetchpatch {
url = "https://github.com/ygrek/mldonkey/pull/66/commits/20ff84c185396f3d759cf4ef46b9f0bd33a51060.patch";
hash = "sha256-MCqx0jVfOaLkZhhv0b1cTdO6BK2/f6TxTWmx+NZjXME=";
})
];
preConfigure = ''
substituteInPlace Makefile --replace '+camlp4' \
'${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4'
'';
buildInputs = (with ocamlPackages; [
ocaml
camlp4
num
]) ++ [
zlib
];
meta = {
broken = stdenv.isDarwin;
description = "Client for many p2p networks, with multiple frontends";
homepage = "http://mldonkey.sourceforge.net/";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.unix;
};
}

View file

@ -0,0 +1,25 @@
{ lib, stdenv, fetchurl, fetchpatch, ncurses, zlib, bzip2, sqlite, pkg-config
, glib, gnutls, perl, libmaxminddb }:
stdenv.mkDerivation rec {
pname = "ncdc";
version = "1.23";
src = fetchurl {
url = "https://dev.yorhel.nl/download/ncdc-${version}.tar.gz";
hash = "sha256-gEq65B/MqWnof2UEg65+OiN0Gdq70yCJfiX+iFHwoss=";
};
nativeBuildInputs = [ perl pkg-config ];
buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls libmaxminddb ];
configureFlags = [ "--with-geoip" ];
meta = with lib; {
description = "Modern and lightweight direct connect client with a friendly ncurses interface";
homepage = "https://dev.yorhel.nl/ncdc";
license = licenses.mit;
platforms = platforms.linux; # arbitrary
maintainers = with maintainers; [ ehmry ];
};
}

View file

@ -0,0 +1,38 @@
{ lib, stdenv, fetchgit, libowfat, zlib, nixosTests }:
stdenv.mkDerivation {
pname = "opentracker";
version = "unstable-2018-05-26";
src = fetchgit {
url = "https://erdgeist.org/gitweb/opentracker";
rev = "6411f1567f64248b0d145493c2e61004d2822623";
sha256 = "110nfb6n4clykwdzpk54iccsfjawq0krjfqhg114i1z0ri5dyl8j";
};
buildInputs = [ libowfat zlib ];
makeFlags = [
"LIBOWFAT_HEADERS=${libowfat}/include/libowfat"
"LIBOWFAT_LIBRARY=${libowfat}/lib"
];
installPhase = ''
runHook preInstall
install -D opentracker $out/bin/opentracker
install -D opentracker.conf.sample $out/share/doc/opentracker.conf.sample
runHook postInstall
'';
passthru.tests = {
bittorrent-integration = nixosTests.bittorrent;
};
meta = with lib; {
homepage = "https://erdgeist.org/arts/software/opentracker/";
license = licenses.beerware;
platforms = platforms.linux;
description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router";
maintainers = with maintainers; [ makefu ];
};
}

View file

@ -0,0 +1,53 @@
{ mkDerivation, lib, fetchFromGitHub, pkg-config
, boost, libtorrent-rasterbar, qtbase, qttools, qtsvg
, debugSupport ? false
, guiSupport ? true, dbus ? null # GUI (disable to run headless)
, webuiSupport ? true # WebUI
, trackerSearch ? true, python3 ? null
}:
assert guiSupport -> (dbus != null);
assert trackerSearch -> (python3 != null);
with lib;
mkDerivation rec {
pname = "qbittorrent";
version = "4.4.3";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qBittorrent";
rev = "release-${version}";
sha256 = "sha256-Gcjs7Yueuw76/4is4ZyvlVr6xZ8D+So1+PjZGg6Curk=";
};
enableParallelBuilding = true;
# NOTE: 2018-05-31: CMake is working but it is not officially supported
nativeBuildInputs = [ pkg-config ];
buildInputs = [ boost libtorrent-rasterbar qtbase qttools qtsvg ]
++ optional guiSupport dbus # D(esktop)-Bus depends on GUI support
++ optional trackerSearch python3;
# Otherwise qm_gen.pri assumes lrelease-qt5, which does not exist.
QMAKE_LRELEASE = "lrelease";
configureFlags = [
"--with-boost-libdir=${boost.out}/lib"
"--with-boost=${boost.dev}" ]
++ optionals (!guiSupport) [ "--disable-gui" "--enable-systemd" ] # Also place qbittorrent-nox systemd service files
++ optional (!webuiSupport) "--disable-webui"
++ optional debugSupport "--enable-debug";
qtWrapperArgs = optional trackerSearch "--prefix PATH : ${makeBinPath [ python3 ]}";
meta = {
description = "Featureful free software BitTorrent client";
homepage = "https://www.qbittorrent.org/";
changelog = "https://github.com/qbittorrent/qBittorrent/blob/release-${version}/Changelog";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ Anton-Latukha ];
};
}

View file

@ -0,0 +1,68 @@
{ lib
, stdenv
, fetchurl
, fetchFromGitHub
, autoreconfHook
, autoconf-archive
, cppunit
, curl
, libsigcxx
, libtool
, libtorrent
, ncurses
, openssl
, pkg-config
, xmlrpc_c
, zlib
}:
stdenv.mkDerivation rec {
pname = "rakshasa-rtorrent";
version = "0.9.8+date=2021-08-07";
src = fetchFromGitHub {
owner = "rakshasa";
repo = "rtorrent";
rev = "a6bc99bb821d86b3b0633552db3fbd0a22497657";
hash = "sha256-HTwAs8dfZVXfLRNiT6QpjKGnuahHfoMfYWqdKkedUL0=";
};
nativeBuildInputs = [
autoconf-archive
autoreconfHook
pkg-config
];
buildInputs = [
cppunit
curl
libsigcxx
libtool
libtorrent
ncurses
openssl
xmlrpc_c
zlib
];
configureFlags = [
"--with-xmlrpc-c"
"--with-posix-fallocate"
];
enableParallelBuilding = true;
postInstall = ''
mkdir -p $out/share/man/man1 $out/share/doc/rtorrent
mv doc/old/rtorrent.1 $out/share/man/man1/rtorrent.1
mv doc/rtorrent.rc $out/share/doc/rtorrent/rtorrent.rc
'';
meta = with lib; {
homepage = "https://rakshasa.github.io/rtorrent/";
description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ebzzry codyopel ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,48 @@
# Note: this is rakshasa's version of libtorrent, used mainly by rtorrent.
# *Do not* mistake it by libtorrent-rasterbar, used by Deluge, qbitttorent etc.
{ lib
, stdenv
, fetchFromGitHub
, autoconf-archive
, autoreconfHook
, cppunit
, libsigcxx
, openssl
, pkg-config
, zlib
}:
stdenv.mkDerivation rec {
pname = "rakshasa-libtorrent";
version = "0.13.8+date=2021-08-07";
src = fetchFromGitHub {
owner = "rakshasa";
repo = "libtorrent";
rev = "53596afc5fae275b3fb5753a4bb2a1a7f7cf6a51";
hash = "sha256-gyl/jfbptHz/gHkkVGWShhv1Z7o9fa9nJIz27U2A6wg=";
};
nativeBuildInputs = [
autoconf-archive
autoreconfHook
pkg-config
];
buildInputs = [
cppunit
libsigcxx
openssl
zlib
];
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://github.com/rakshasa/libtorrent";
description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ebzzry codyopel ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,53 @@
{ lib, mkDerivation, fetchFromGitHub, qmake, cmake, pkg-config, miniupnpc, bzip2
, speex, libmicrohttpd, libxml2, libxslt, sqlcipher, rapidjson, libXScrnSaver
, qtbase, qtx11extras, qtmultimedia, libgnome-keyring3
}:
mkDerivation rec {
pname = "retroshare";
version = "0.6.6";
src = fetchFromGitHub {
owner = "RetroShare";
repo = "RetroShare";
rev = "v${version}";
sha256 = "1hsymbhsfgycj39mdkrdp2hgq8irmvxa4a6jx2gg339m1fgf2xmh";
fetchSubmodules = true;
};
patches = [
# The build normally tries to get git sub-modules during build
# but we already have them checked out
./no-submodules.patch
];
nativeBuildInputs = [ pkg-config qmake cmake ];
buildInputs = [
speex miniupnpc qtmultimedia qtx11extras qtbase libgnome-keyring3
bzip2 libXScrnSaver libxml2 libxslt sqlcipher libmicrohttpd rapidjson
];
qmakeFlags = [
# Upnp library autodetection doesn't work
"RS_UPNP_LIB=miniupnpc"
# These values are normally found from the .git folder
"RS_MAJOR_VERSION=${lib.versions.major version}"
"RS_MINOR_VERSION=${lib.versions.minor version}"
"RS_MINI_VERSION=${lib.versions.patch version}"
"RS_EXTRA_VERSION="
];
postInstall = ''
# BT DHT bootstrap
cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare
'';
meta = with lib; {
description = "Decentralized peer to peer chat application.";
homepage = "https://retroshare.cc/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ StijnDW ];
};
}

View file

@ -0,0 +1,62 @@
diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro
index 84d18944e..71aeb67d2 100644
--- a/libretroshare/src/libretroshare.pro
+++ b/libretroshare/src/libretroshare.pro
@@ -870,20 +870,14 @@ rs_jsonapi {
genrestbedlib.variable_out = PRE_TARGETDEPS
win32-g++:isEmpty(QMAKE_SH) {
genrestbedlib.commands = \
- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/restbed || cd . $$escape_expand(\\n\\t) \
- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/asio || cd . $$escape_expand(\\n\\t) \
- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/catch || cd . $$escape_expand(\\n\\t )\
- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/kashmir || cd . $$escape_expand(\\n\\t) \
+ cd /D $$shell_path($${RS_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \
+ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \
+ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t )\
+ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \
$(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t)
} else {
genrestbedlib.commands = \
- cd $${RS_SRC_PATH} && ( \
- git submodule update --init supportlibs/restbed ; \
- cd $${RESTBED_SRC_PATH} ; \
- git submodule update --init dependency/asio ; \
- git submodule update --init dependency/catch ; \
- git submodule update --init dependency/kashmir ; \
- true ) && \
+ cd $${RS_SRC_PATH} && \
mkdir -p $${RESTBED_BUILD_PATH} &&
}
genrestbedlib.commands += \
@@ -991,14 +985,9 @@ rs_broadcast_discovery {
udpdiscoverycpplib.variable_out = PRE_TARGETDEPS
win32-g++:isEmpty(QMAKE_SH) {
udpdiscoverycpplib.commands = \
- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/udp-discovery-cpp || cd . $$escape_expand(\\n\\t) \
$(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t)
} else {
- udpdiscoverycpplib.commands = \
- cd $${RS_SRC_PATH} && ( \
- git submodule update --init supportlibs/udp-discovery-cpp || \
- true ) && \
- mkdir -p $${UDP_DISCOVERY_BUILD_PATH} &&
+ udpdiscoverycpplib.commands = mkdir -p $${UDP_DISCOVERY_BUILD_PATH} &&
}
udpdiscoverycpplib.commands += \
cd $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) && \
diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro
index 654efd170..06cba9ba3 100644
--- a/retroshare-gui/src/retroshare-gui.pro
+++ b/retroshare-gui/src/retroshare-gui.pro
@@ -66,10 +66,7 @@ rs_gui_cmark {
gencmarklib.CONFIG += target_predeps combine
gencmarklib.variable_out = PRE_TARGETDEPS
gencmarklib.commands = \
- cd $${RS_SRC_PATH} && ( \
- git submodule update --init supportlibs/cmark ; \
- cd $${CMARK_SRC_PATH} ; \
- true ) && \
+ cd $${RS_SRC_PATH} && \
mkdir -p $${CMARK_BUILD_PATH} && cd $${CMARK_BUILD_PATH} && \
cmake \
-DCMAKE_CXX_COMPILER=$$QMAKE_CXX \

View file

@ -0,0 +1,29 @@
{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
rustPlatform.buildRustPackage rec {
pname = "rqbit";
version = "2.1.4";
src = fetchFromGitHub {
owner = "ikatson";
repo = "rqbit";
rev = "v${version}";
sha256 = "sha256-PkU3QJvAK2b1KQC1o5md35iucjq+SYoKAGxqiojf4rw=";
};
cargoSha256 = "sha256-Jj2CK3nwktv2MU+EHXzQ/lKDUlC+4HkaItMTtoGF1Pw=";
nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
buildInputs = lib.optionals stdenv.isLinux [ openssl ]
++ lib.optionals stdenv.isDarwin [ Security ];
doCheck = false;
meta = with lib; {
description = "A bittorrent client in Rust";
homepage = "https://github.com/ikatson/rqbit";
license = licenses.asl20;
maintainers = with maintainers; [ marsam ];
};
}

View file

@ -0,0 +1,59 @@
{ stdenv, lib, fetchzip, mkDerivation
, appimageTools
, autoPatchelfHook
, desktop-file-utils
, imagemagick
, qtmultimedia
}:
mkDerivation rec {
pname = "soulseekqt";
version = "2018-1-30";
name="${pname}-${version}";
src = fetchzip {
url = "https://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-${version}-64bit-appimage.tgz";
sha256 = "16ncnvv8h33f161mgy7qc0wjvvqahsbwvby65qhgfh9pbbgb4xgg";
};
appextracted = appimageTools.extractType2 {
inherit name;
src="${src}/SoulseekQt-2018-1-30-64bit.AppImage";
};
dontBuild = true;
dontConfigure = true;
nativeBuildInputs = [ imagemagick autoPatchelfHook desktop-file-utils ];
buildInputs = [ qtmultimedia stdenv.cc.cc ];
installPhase = ''
# directory in /nix/store so readonly
cd $appextracted
binary="$(readlink AppRun)"
install -Dm755 $binary -t $out/bin
# fixup and install desktop file
desktop-file-install --dir $out/share/applications \
--set-key Exec --set-value $binary \
--set-key Comment --set-value "${meta.description}" \
--set-key Categories --set-value Network default.desktop
mv $out/share/applications/default.desktop $out/share/applications/SoulseekQt.desktop
#TODO: write generic code to read icon path from $binary.desktop
icon="$(readlink .DirIcon)"
for size in 16 32 48 64 72 96 128 192 256 512 1024; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
convert -resize "$size"x"$size" $icon $out/share/icons/hicolor/"$size"x"$size"/apps/$icon
done
'';
meta = with lib; {
description = "Official Qt SoulSeek client";
homepage = "https://www.slsknet.org";
license = licenses.unfree;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,59 @@
{ lib, stdenv
, fetchFromGitHub
, python3Packages
}:
python3Packages.buildPythonApplication rec {
pname = "stig";
# This project has a different concept for pre release / alpha,
# Read the project's README for details: https://github.com/rndusr/stig#stig
version = "0.12.2a0";
src = fetchFromGitHub {
owner = "rndusr";
repo = "stig";
rev = "v${version}";
sha256 = "0sk4vgj3cn75nyrng2d6q0pj1h968kcmbpr9sv1lj1g8fc7g0n4f";
};
propagatedBuildInputs = with python3Packages; [
urwid
urwidtrees
aiohttp
async-timeout
pyxdg
blinker
natsort
setproctitle
];
checkInputs = with python3Packages; [
asynctest
pytestCheckHook
];
dontUseSetuptoolsCheck = true;
preCheck = ''
export LC_ALL=C
'';
pytestFlagsArray = [
"tests"
# TestScrollBarWithScrollable.test_wrapping_bug fails
"--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug"
# https://github.com/rndusr/stig/issues/214
"--deselect=tests/completion_test/classes_test.py::TestCandidates::test_candidates_are_sorted_case_insensitively"
] ++ lib.optionals stdenv.isDarwin [
"--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
"--deselect=tests/client_test/aiotransmission_test/api_torrent_test.py"
"--deselect=tests/client_test/aiotransmission_test/rpc_test.py"
];
meta = with lib; {
description = "TUI and CLI for the BitTorrent client Transmission";
homepage = "https://github.com/rndusr/stig";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ doronbehar ];
};
}

View file

@ -0,0 +1,22 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "storrent-unstable";
version = "2021-10-10";
src = fetchFromGitHub {
owner = "jech";
repo = "storrent";
rev = "681733cf74de08bea251ada672ea8c666eb1b679";
sha256 = "0grrqgawswb44fahf40060jl691rlyccwlqkljvgy8mzzw1kjzj4";
};
vendorSha256 = "0sz2fz7bqgwd5i7sacyxs7bmb8ly6xrxrakqi9c446vzlkh898hj";
meta = with lib; {
homepage = "https://github.com/jech/storrent";
description = "An implementation of the BitTorrent protocol that is optimised for streaming media";
license = licenses.mit;
maintainers = [ maintainers.marsam ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, CoreServices, Security }:
rustPlatform.buildRustPackage rec {
pname = "synapse-bt";
version = "1.0";
src = fetchFromGitHub {
owner = "Luminarys";
repo = "synapse";
rev = version;
sha256 = "01npv3zwia5d534zdwisd9xfng507adv4qkljf8z0zm0khqqn71a";
};
cargoSha256 = "0sy0vlpkj967g9lyyh7ska8cpw5xh0g04kj071a32idrqc3dcjb1";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ]
++ lib.optionals stdenv.isDarwin [ CoreServices Security ];
cargoBuildFlags = [ "--all" ];
meta = with lib; {
description = "Flexible and fast BitTorrent daemon";
homepage = "https://synapse-bt.org/";
license = licenses.isc;
maintainers = with maintainers; [ dywedir ];
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchurl, glib, zlib, dbus, dbus-glib, gtk2, gdk-pixbuf, cairo, pango }:
stdenv.mkDerivation rec {
pname = "tixati";
version = "2.89";
src = fetchurl {
url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
sha256 = "sha256-fd7DMKoRxNmNjCxl2ViINjnCEXJrhJU4aaRT+NoB1vI=";
};
installPhase = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath ${lib.makeLibraryPath [ glib zlib dbus dbus-glib gtk2 gdk-pixbuf cairo pango ]} \
tixati
install -D tixati $out/bin/tixati
install -D tixati.desktop $out/share/applications/tixati.desktop
install -D tixati.png $out/share/icons/tixati.png
'';
dontStrip = true;
meta = with lib; {
description = "Torrent client";
homepage = "http://www.tixati.com";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ volth ];
};
}

View file

@ -0,0 +1,82 @@
{ lib, stdenv
, fetchFromGitHub
, nix-update-script
, desktop-file-utils
, meson
, ninja
, pkg-config
, python3
, vala
, wrapGAppsHook
, curl
, dht
, glib
, gtk3
, libb64
, libevent
, libgee
, libnatpmp
, libtransmission
, libutp
, miniupnpc
, openssl
, pantheon
}:
stdenv.mkDerivation rec {
pname = "torrential";
version = "2.0.1";
src = fetchFromGitHub {
owner = "davidmhewitt";
repo = "torrential";
rev = version;
sha256 = "sha256-W9Is6l8y5XSlPER2BLlf+cyMPPdEQuaP4xM59VhfDE0=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
curl
dht
glib
gtk3
libb64
libevent
libgee
libnatpmp
libtransmission
libutp
miniupnpc
openssl
pantheon.granite
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = pname;
};
};
meta = with lib; {
description = "Download torrents in style with this speedy, minimalist torrent client for elementary OS";
homepage = "https://github.com/davidmhewitt/torrential";
maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
platforms = platforms.linux;
license = licenses.gpl2Plus;
mainProgram = "com.github.davidmhewitt.torrential";
};
}

View file

@ -0,0 +1,78 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, makeDesktopItem, fetchpatch, unzip
, fpc, lazarus, libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }:
stdenv.mkDerivation rec {
pname = "transgui";
version = "unstable-2022-02-02";
src = fetchFromGitHub {
owner = "transmission-remote-gui";
repo = "transgui";
rev = "0e2c2a07c1b21b1704c0a4945a111a8aa1050a1a";
sha256 = "1x9wzii3q9zanpik4xc99jqsfrqch8vjmlx12jrvczxcfy51b1ba";
};
patches = [
# TDDO: remove when transgui updates for transmission-daemon v3 rpc protocol
(fetchpatch {
url = "https://github.com/transmission-remote-gui/transgui/commit/9275c3fb877dd753a1940d1b900630cdc09a0cc2.patch";
sha256 = "0w2x7gcxp5kqczdz7ckfqhdz9hhkm62k8gcws54d6km7x9vc1023";
})
];
nativeBuildInputs = [ pkg-config unzip ];
buildInputs = [
fpc lazarus stdenv.cc libX11 glib gtk2 gdk-pixbuf
pango atk cairo openssl
];
NIX_LDFLAGS = ''
-L${stdenv.cc.cc.lib}/lib -lX11 -lglib-2.0 -lgtk-x11-2.0
-lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpango-1.0 -latk-1.0 -lcairo
-lc -lcrypto
'';
postPatch = ''
substituteInPlace restranslator.pas --replace /usr/ $out/
'';
preBuild = ''
FPCDIR=${fpc}/lib/fpc/${fpc.version} fpcmake -w
lazbuild -B transgui.lpr --lazarusdir=${lazarus}/share/lazarus
'';
makeFlags = [ "FPC=fpc" "PP=fpc" "INSTALL_PREFIX=$(out)" ];
LCL_PLATFORM = "gtk2";
desktopItem = makeDesktopItem {
name = pname;
exec = "${pname} %U";
icon = pname;
type = "Application";
comment = meta.description;
desktopName = "Transmission Remote GUI";
genericName = "BitTorrent Client";
categories = [ "Network" "FileTransfer" "P2P" "GTK" ];
startupNotify = true;
mimeTypes = [ "application/x-bittorrent" "x-scheme-handler/magnet" ];
};
postInstall = ''
mkdir -p "$out/share/applications"
cp $desktopItem/share/applications/* $out/share/applications
mkdir -p "$out/share/icons/hicolor/48x48/apps"
cp transgui.png "$out/share/icons/hicolor/48x48/apps"
mkdir -p "$out/share/transgui"
cp -r "./lang" "$out/share/transgui"
'';
meta = {
description = "A cross platform front-end for the Transmission BitTorrent client";
homepage = "https://sourceforge.net/p/transgui";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ramkromberg ];
mainProgram = "transgui";
platforms = [ "x86_64-linux" "x86_64-darwin" ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, wrapGAppsHook, fetchFromGitHub, pkg-config, gtk3, json-glib, curl
, glib, appstream-glib, desktop-file-utils, meson, ninja, geoip, gettext
, libappindicator, libmrss, libproxy }:
stdenv.mkDerivation rec {
pname = "transmission-remote-gtk";
version = "1.5.1";
src = fetchFromGitHub {
owner = "transmission-remote-gtk";
repo = "transmission-remote-gtk";
rev = version;
sha256 = "4/ID12JukDDvJzWupc76r7W8Us5erwv8oXZhDnB6VDk=";
};
nativeBuildInputs =
[ desktop-file-utils wrapGAppsHook meson ninja pkg-config appstream-glib ];
buildInputs =
[ gtk3 json-glib curl glib gettext libmrss geoip libproxy libappindicator ];
doCheck = false; # Requires network access
meta = with lib; {
description = "GTK remote control for the Transmission BitTorrent client";
homepage =
"https://github.com/transmission-remote-gtk/transmission-remote-gtk";
license = licenses.gpl2;
maintainers = [ maintainers.ehmry ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,139 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, pkg-config
, openssl
, curl
, libevent
, inotify-tools
, systemd
, zlib
, pcre
, libb64
, libutp
, miniupnpc
, dht
, libnatpmp
# Build options
, enableGTK3 ? false
, gtk3
, xorg
, wrapGAppsHook
, enableQt ? false
, qt5
, nixosTests
, enableSystemd ? stdenv.isLinux
, enableDaemon ? true
, enableCli ? true
, installLib ? false
, apparmorRulesFromClosure
}:
let
version = "3.00";
in stdenv.mkDerivation {
pname = "transmission";
inherit version;
src = fetchFromGitHub {
owner = "transmission";
repo = "transmission";
rev = version;
sha256 = "0ccg0km54f700x9p0jsnncnwvfnxfnxf7kcm7pcx1cj0vw78924z";
fetchSubmodules = true;
};
outputs = [ "out" "apparmor" ];
cmakeFlags =
let
mkFlag = opt: if opt then "ON" else "OFF";
in
[
"-DENABLE_MAC=OFF" # requires xcodebuild
"-DENABLE_GTK=${mkFlag enableGTK3}"
"-DENABLE_QT=${mkFlag enableQt}"
"-DENABLE_DAEMON=${mkFlag enableDaemon}"
"-DENABLE_CLI=${mkFlag enableCli}"
"-DINSTALL_LIB=${mkFlag installLib}"
];
nativeBuildInputs = [
pkg-config
cmake
]
++ lib.optionals enableGTK3 [ wrapGAppsHook ]
++ lib.optionals enableQt [ qt5.wrapQtAppsHook ]
;
buildInputs = [
openssl
curl
libevent
zlib
pcre
libb64
libutp
miniupnpc
dht
libnatpmp
]
++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ]
++ lib.optionals enableSystemd [ systemd ]
++ lib.optionals stdenv.isLinux [ inotify-tools ]
;
postInstall = ''
mkdir $apparmor
cat >$apparmor/bin.transmission-daemon <<EOF
include <tunables/global>
$out/bin/transmission-daemon {
include <abstractions/base>
include <abstractions/nameservice>
include <abstractions/ssl_certs>
include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([
curl libevent openssl pcre zlib libnatpmp miniupnpc
] ++ lib.optionals enableSystemd [ systemd ]
++ lib.optionals stdenv.isLinux [ inotify-tools ]
)}"
r @{PROC}/sys/kernel/random/uuid,
r @{PROC}/sys/vm/overcommit_memory,
r @{PROC}/@{pid}/environ,
r @{PROC}/@{pid}/mounts,
rwk /tmp/tr_session_id_*,
r $out/share/transmission/web/**,
include <local/bin.transmission-daemon>
}
EOF
'';
passthru.tests = {
apparmor = nixosTests.transmission; # starts the service with apparmor enabled
smoke-test = nixosTests.bittorrent;
};
meta = {
description = "A fast, easy and free BitTorrent client";
longDescription = ''
Transmission is a BitTorrent client which features a simple interface
on top of a cross-platform back-end.
Feature spotlight:
* Uses fewer resources than other clients
* Native Mac, GTK and Qt GUI clients
* Daemon ideal for servers, embedded systems, and headless use
* All these can be remote controlled by Web and Terminal clients
* Bluetack (PeerGuardian) blocklists with automatic updates
* Full encryption, DHT, and PEX support
'';
homepage = "http://www.transmissionbt.com/";
license = lib.licenses.gpl2Plus; # parts are under MIT
maintainers = with lib.maintainers; [ astsmtl vcunat wizeman ];
platforms = lib.platforms.unix;
};
}

View file

@ -0,0 +1,59 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages
, x11Support ? !stdenv.isDarwin
, xclip ? null
, pbcopy ? null
, useGeoIP ? false # Require /var/lib/geoip-databases/GeoIP.dat
}:
let
wrapperPath = with lib; makeBinPath (
optional x11Support xclip ++
optional stdenv.isDarwin pbcopy
);
in
python3Packages.buildPythonApplication rec {
pname = "tremc";
version = "0.9.2";
src = fetchFromGitHub {
owner = "tremc";
repo = pname;
rev = version;
sha256 = "1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5";
};
patches = [
# Remove when version >0.9.2 is released
(fetchpatch {
url = "https://github.com/tremc/tremc/commit/bdffff2bd76186a4e3488b83f719fc7f7e3362b6.patch";
sha256 = "1zip2skh22v0yyv2hmszxn5jshp9m1jpw0fsyfvmqfxzq7m3czy5";
name = "replace-decodestring-with-decodebytes.patch";
})
];
buildInputs = with python3Packages; [
python
wrapPython
];
pythonPath = with python3Packages; [
ipy
pyperclip
] ++
lib.optional useGeoIP GeoIP;
dontBuild = true;
doCheck = false;
makeWrapperArgs = ["--prefix PATH : ${lib.escapeShellArg wrapperPath}"];
installPhase = ''
make DESTDIR=$out install
wrapPythonPrograms
'';
meta = with lib; {
description = "Curses interface for transmission";
homepage = "https://github.com/tremc/tremc";
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,102 @@
{ lib
, stdenv
, fetchurl
, python3
, makeWrapper
, libtorrent-rasterbar-1_2_x
, qt5
}:
let
libtorrent = (python3.pkgs.toPythonModule (
libtorrent-rasterbar-1_2_x.override { python = python3; })).python;
in
stdenv.mkDerivation rec {
pname = "tribler";
version = "7.11.0";
src = fetchurl {
url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz";
sha256 = "0ffh8chb47iaar8872gvalgm84fjzyxph16nixsxknnprqdxyrkx";
};
nativeBuildInputs = [
python3.pkgs.wrapPython
makeWrapper
];
buildInputs = [
python3.pkgs.python
];
pythonPath = [
libtorrent
] ++ (with python3.pkgs; [
aiohttp
aiohttp-apispec
asynctest
chardet
cherrypy
configobj
cryptography
decorator
faker
feedparser
libnacl
lz4
m2crypto
netifaces
networkx
pillow
pony
psutil
pyasn1
pycrypto
pyqt5
pyqtgraph
pytest-asyncio
pytest-timeout
pyyaml
requests
sentry-sdk
service-identity
twisted
yappi
pydantic
anyio
]);
installPhase = ''
mkdir -pv $out
# Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
wrapPythonPrograms
cp -prvd ./* $out/
makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \
--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
--set QT_PLUGIN_PATH "${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}" \
--set _TRIBLERPATH "$out/src" \
--set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
--set NO_AT_BRIDGE 1 \
--chdir "$out/src" \
--add-flags "-O $out/src/run_tribler.py"
mkdir -p $out/share/applications $out/share/icons
cp $out/build/debian/tribler/usr/share/applications/org.tribler.Tribler.desktop $out/share/applications/
cp $out/build/debian/tribler/usr/share/pixmaps/tribler_big.xpm $out/share/icons/tribler.xpm
'';
shellHook = ''
wrapPythonPrograms || true
export QT_QPA_PLATFORM_PLUGIN_PATH=$(echo ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms)
export PYTHONPATH=./tribler-core:./tribler-common:./tribler-gui:$program_PYTHONPATH
export QT_PLUGIN_PATH="${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}"
'';
meta = with lib; {
description = "Decentralised P2P filesharing client based on the Bittorrent protocol";
homepage = "https://www.tribler.org/";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ xvapx viric ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchsvn, jdk, jre, ant, swt, makeWrapper }:
stdenv.mkDerivation rec {
pname = "vuze";
version = "5750";
src = fetchsvn {
url = "http://svn.vuze.com/public/client/tags/RELEASE_${version}";
sha256 = "07w6ipyiy8hi88d6yxbbf3vkv26mj7dcz9yr8141hb2ig03v0h0p";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ jdk ant ];
buildPhase = "ant";
installPhase = ''
install -D dist/Vuze_0000-00.jar $out/share/java/Vuze_${version}-00.jar
makeWrapper ${jre}/bin/java $out/bin/vuze \
--add-flags "-Xmx256m -Djava.library.path=${swt}/lib -cp $out/share/java/Vuze_${version}-00.jar:${swt}/jars/swt.jar org.gudy.azureus2.ui.swt.Main"
'';
meta = with lib; {
description = "Torrent client";
homepage = "http://www.vuze.com";
license = licenses.unfree;
platforms = platforms.all;
maintainers = with maintainers; [ volth ];
};
}

View file

@ -0,0 +1,29 @@
{ pkgs, buildGoModule, fetchFromGitHub, lib, perl }:
buildGoModule rec {
pname = "XD";
version = "0.4.2";
src = fetchFromGitHub {
owner = "majestrate";
repo = "XD";
rev = "v${version}";
sha256 = "sha256-AavNiFZlpX6XZQLP1kl9igA833i0gxOTYGubo3MvpSU=";
};
vendorSha256 = "sha256-mJZRk3p+D3tCKIYggD5jVBXcKqJotEexljDzLKpn4/E=";
checkInputs = [ perl ];
postInstall = ''
ln -s $out/bin/XD $out/bin/XD-CLI
'';
meta = with lib; {
description = "i2p bittorrent client";
homepage = "https://xd-torrent.github.io";
maintainers = with maintainers; [ nixbitcoin ];
license = licenses.mit;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,50 @@
{ lib
, fetchFromGitHub
, python3Packages
}:
python3Packages.buildPythonApplication rec {
pname = "zeronet-conservancy";
version = "0.7.5";
format = "other";
src = fetchFromGitHub {
owner = "zeronet-conservancy";
repo = "zeronet-conservancy";
rev = "v${version}";
sha256 = "sha256-cq0q5hXEhazHPJODNJ8iL0qAB5DJW6ANST4r/rslvXk=";
};
propagatedBuildInputs = with python3Packages; [
gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket-client
gevent-websocket rencode bitcoinlib maxminddb pyopenssl rich
];
buildPhase = ''
${python3Packages.python.interpreter} -O -m compileall .
'';
installPhase = ''
mkdir -p $out/share
cp -r plugins src *.py $out/share/
'';
postFixup = ''
makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \
--set PYTHONPATH "$PYTHONPATH" \
--set PATH ${python3Packages.python}/bin
'';
meta = with lib; {
description = "A fork/continuation of the ZeroNet project";
longDescription = ''
zeronet-conservancy is a fork/continuation of ZeroNet project (that has
been abandoned by its creator) that is dedicated to sustaining existing
p2p network and developing its values of decentralization and freedom,
while gradually switching to a better designed network.
'';
homepage = "https://github.com/zeronet-conservancy/zeronet-conservancy";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fgaz ];
};
}

View file

@ -0,0 +1,45 @@
{ lib, fetchFromGitHub, python3Packages }:
python3Packages.buildPythonApplication rec {
pname = "zeronet";
version = "0.7.1";
format = "other";
src = fetchFromGitHub {
owner = "HelloZeroNet";
repo = "ZeroNet";
rev = "v${version}";
sha256 = "04prgicm0yjh2klcxdgwx1mvlsxxi2bdkzfcvysvixbgq20wjvdk";
};
propagatedBuildInputs = with python3Packages; [
gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket-client
gevent-websocket rencode bitcoinlib maxminddb pyopenssl
];
buildPhase = ''
${python3Packages.python.interpreter} -O -m compileall .
'';
installPhase = ''
mkdir -p $out/share
cp -r plugins src tools *.py $out/share/
'';
postFixup = ''
makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \
--set PYTHONPATH "$PYTHONPATH" \
--set PATH ${python3Packages.python}/bin
'';
meta = with lib; {
description = "Decentralized websites using Bitcoin crypto and BitTorrent network";
homepage = "https://zeronet.io/";
license = licenses.gpl2;
maintainers = with maintainers; [ fgaz ];
knownVulnerabilities = [ ''
Unmaintained. Probable XSS/code injection vulnerability.
Switching to the maintained zeronet-conservancy package is recommended
'' ];
};
}