nixpkgs-suyu/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
Sergei Trofimovich 0ca93ef0e6 rtorrent: 0.9.8+date=2021-08-07 -> 0.9.8+date=2022-06-20
Pull in _FORTIFY_SOURCE=3 stack smashing fix. Without the change on
current `master` `rtorrent` crashes at start as:

*** buffer overflow detected ***: terminated
                                                                                        __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44      pthread_kill.c: No such file or directory.
(gdb) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
    #1  0x00007ffff7880af3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
    #2  0x00007ffff7831c86 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
    #3  0x00007ffff781b8ba in __GI_abort () at abort.c:79
    #4  0x00007ffff781c5f5 in __libc_message (fmt=fmt@entry=0x7ffff7992540 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150
    #5  0x00007ffff7910679 in __GI___fortify_fail (msg=msg@entry=0x7ffff79924e6 "buffer overflow detected") at fortify_fail.c:24
    #6  0x00007ffff790eea4 in __GI___chk_fail () at chk_fail.c:28
    #7  0x00007ffff790ea85 in ___snprintf_chk (s=<optimized out>, maxlen=<optimized out>, flag=<optimized out>, slen=<optimized out>, format=<optimized out>) at snprintf_chk.c:29
    #8  0x0000000000472acf in utils::Lockfile::try_lock() ()
    #9  0x000000000044b524 in core::DownloadStore::enable(bool) ()
    #10 0x00000000004b1f7b in Control::initialize() ()
    #11 0x000000000043000b in main ()
2023-08-04 19:14:03 +01:00

73 lines
1.4 KiB
Nix

{ 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=2022-06-20";
src = fetchFromGitHub {
owner = "rakshasa";
repo = "rtorrent";
rev = "92bec88d0904bfb31c808085c2fd0f22d0ec8db7";
hash = "sha256-er7UdIb+flhq0ye76UmomgfHV2ZSBROpXmfrNDHwTWw=";
};
passthru = {
inherit libtorrent;
};
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;
mainProgram = "rtorrent";
};
}