fluffychat: 1.22.1 -> 1.23.0 (#364091)
[NixPkgs.git] / pkgs / by-name / sy / syncterm / package.nix
blob12aff4b8ccb22bbdb3450b74da815f8b32f1df65
2   lib,
3   stdenv,
4   fetchurl,
5   fetchpatch,
6   pkg-config,
7   perl,
8   unzip,
9   autoPatchelfHook,
10   ncurses,
11   SDL2,
12   alsa-lib,
15 stdenv.mkDerivation rec {
16   pname = "syncterm";
17   version = "1.1";
19   src = fetchurl {
20     url = "mirror://sourceforge/${pname}/${pname}-${version}-src.tgz";
21     sha256 = "19m76bisipp1h3bc8mbq83b851rx3lbysxb0azpbr5nbqr2f8xyi";
22   };
24   patches = [
25     # Cherry-picks from the upstream Synchronet tree, removing calls to `pthread_yield`.
26     # See upstream issue: https://gitlab.synchro.net/main/sbbs/-/issues/299
27     (fetchpatch {
28       url = "https://gitlab.synchro.net/main/sbbs/-/commit/851627df99f48d8eaad33d3a98ef309b4371f359.patch";
29       hash = "sha256-DbFAeJnrwFyfEpZgZFN8etqX6vQ3ca2TJwaqp0aHeo4=";
30     })
31     ./0001-use-sched-yield-53264f2b.patch
32   ];
33   # We can't use sourceRoot, as the cherry-picked patches apply to files outside of it.
34   postPatch = ''cd src/syncterm'';
36   CFLAGS =
37     [
38       "-DHAS_INTTYPES_H"
39       "-DXPDEV_DONT_DEFINE_INTTYPES"
41       "-Wno-unused-result"
42       "-Wformat-overflow=0"
43     ]
44     ++ (lib.optionals stdenv.hostPlatform.isLinux [
45       "-DUSE_ALSA_SOUND" # Don't use OSS for beeps.
46     ]);
47   makeFlags = [
48     "PREFIX=$(out)"
49     "RELEASE=1"
50     "USE_SDL_AUDIO=1"
51   ];
53   nativeBuildInputs = [
54     autoPatchelfHook
55     pkg-config
56     SDL2
57     perl
58     unzip
59   ]; # SDL2 for `sdl2-config`.
60   buildInputs = [
61     ncurses
62     SDL2
63   ] ++ (lib.optional stdenv.hostPlatform.isLinux alsa-lib);
64   runtimeDependencies = [
65     ncurses
66     SDL2
67   ]; # Both of these are dlopen()'ed at runtime.
69   meta = with lib; {
70     # error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin'
71     broken =
72       (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) || stdenv.hostPlatform.isDarwin;
73     homepage = "https://syncterm.bbsdev.net/";
74     description = "BBS terminal emulator";
75     mainProgram = "syncterm";
76     maintainers = with maintainers; [ embr ];
77     platforms = platforms.unix;
78     license = licenses.gpl2Plus;
79   };