1{ lib, stdenv
2, fetchgit
3}:
4
5stdenv.mkDerivation rec {
6 pname = "PStreams";
7 version = "1.0.1";
8
9 src = fetchgit {
10 url = "https://git.code.sf.net/p/pstreams/code";
11 rev = let dot2Underscore = lib.strings.stringAsChars (c: if c == "." then "_" else c);
12 in "RELEASE_${dot2Underscore version}";
13 sha256 = "0r8aj0nh5mkf8cvnzl8bdy4nm7i74vs83axxfimcd74kjfn0irys";
14 };
15
16 makeFlags = [ "prefix=${placeholder "out"}" ];
17 dontBuild = true;
18 doCheck = true;
19
20 preInstall = "rm INSTALL";
21 # `make install` fails on case-insensitive file systems (e.g. APFS by
22 # default) because this target exists
23
24 meta = with lib; {
25 description = "POSIX Process Control in C++";
26 longDescription = ''
27 PStreams allows you to run another program from your C++ application and
28 to transfer data between the two programs similar to shell pipelines.
29
30 In the simplest case, a PStreams class is like a C++ wrapper for the
31 POSIX.2 functions popen(3) and pclose(3), using C++ iostreams instead of
32 C's stdio library.
33 '';
34 homepage = "https://pstreams.sourceforge.net/";
35 downloadPage = "https://pstreams.sourceforge.net/download/";
36 maintainers = with maintainers; [ arthur ];
37 license = licenses.boost;
38 platforms = platforms.all;
39 };
40}