about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/slang/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/slang/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/slang/default.nix82
1 files changed, 82 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/slang/default.nix b/nixpkgs/pkgs/development/libraries/slang/default.nix
new file mode 100644
index 000000000000..a3db5ce0d3be
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/slang/default.nix
@@ -0,0 +1,82 @@
+{ lib, stdenv, fetchurl
+, libiconv
+, libpng
+, ncurses
+, pcre
+, readline
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "slang";
+  version = "2.3.2";
+
+  src = fetchurl {
+    url = "https://www.jedsoft.org/releases/slang/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-/J47D8T2fDwfbUPJDBalxC0Re44oRXxbRoMbi1064xo=";
+  };
+
+  outputs = [ "out" "dev" "man" "doc" ];
+
+  patches = [ ./terminfo-dirs.patch ];
+
+  # Fix some wrong hardcoded paths
+  preConfigure = ''
+    sed -ie "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" configure
+    sed -ie "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" src/sltermin.c
+    sed -ie "s|/bin/ln|ln|" src/Makefile.in
+    sed -ie "s|-ltermcap|-lncurses|" ./configure
+  '';
+
+  configureFlags = [
+    "--with-pcre=${pcre.dev}"
+    "--with-png=${libpng.dev}"
+    "--with-readline=${readline.dev}"
+    "--with-z=${zlib.dev}"
+  ];
+
+  buildInputs = [
+    libpng
+    pcre
+    readline
+    zlib
+  ] ++ lib.optionals (stdenv.isDarwin) [ libiconv ];
+
+  propagatedBuildInputs = [ ncurses ];
+
+  # slang 2.3.2 does not support parallel building
+  enableParallelBuilding = false;
+
+  postInstall = ''
+    find "$out"/lib/ -name '*.so' -exec chmod +x "{}" \;
+    sed '/^Libs:/s/$/ -lncurses/' -i "$dev"/lib/pkgconfig/slang.pc
+  '';
+
+  meta = with lib; {
+    description = "A small, embeddable multi-platform programming library";
+    longDescription = ''
+      S-Lang is an interpreted language that was designed from the start to be
+      easily embedded into a program to provide it with a powerful extension
+      language. Examples of programs that use S-Lang as an extension language
+      include the jed text editor and the slrn newsreader. Although S-Lang does
+      not exist as a separate application, it is distributed with a quite
+      capable program called slsh ("slang-shell") that embeds the interpreter
+      and allows one to execute S-Lang scripts, or simply experiment with S-Lang
+      at an interactive prompt. Many of the the examples in this document are
+      presented in the context of one of the above applications.
+
+      S-Lang is also a programmer's library that permits a programmer to develop
+      sophisticated platform-independent software. In addition to providing the
+      S-Lang interpreter, the library provides facilities for screen management,
+      keymaps, low-level terminal I/O, etc. However, this document is concerned
+      only with the extension language and does not address these other features
+      of the S-Lang library. For information about the other components of the
+      library, the reader is referred to the S-Lang Library C Programmer's
+      Guide.
+    '';
+    homepage = "http://www.jedsoft.org/slang/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}