diff --git a/pkgs/applications/editors/jed/default.nix b/pkgs/applications/editors/jed/default.nix new file mode 100644 index 00000000000..e3be0139abf --- /dev/null +++ b/pkgs/applications/editors/jed/default.nix @@ -0,0 +1,95 @@ +{ stdenv, fetchzip +, pkg-config +, gpm +, libXext +, libXft +, libXt +, ncurses5 +, slang +} : + +stdenv.mkDerivation rec { + pname = "jed"; + version = "0.99-19"; + + src = fetchzip { + url = "https://www.jedsoft.org/releases/${pname}/${pname}-${version}.tar.bz2"; + sha256 = "sha256-vzeX0P+2+IuKtrX+2lQDeJj7VMDS6XurD2pb2jhxy2Q="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + gpm + libXext + libXft + libXt + ncurses5 + slang + ]; + + configureFlags = [ + "CC=cc" + "--with-slang=${slang}" + "JED_ROOT=${placeholder "out"}/share/jed" + ]; + + makeFlags = [ + "jed" "xjed" "rgrep" + ]; + + postPatch = '' + for i in autoconf/Makefile autoconf/Makefile.in \ + doc/tm/Makefile src/Makefile.in; do + sed -e 's|/bin/cp|cp|' -i $i + done + for i in autoconf/aclocal.m4 configure; do + sed -e 's|ncurses5|ncurses|' -i $i + done + ''; + + postInstall = '' + install -D src/objs/rgrep $out/bin + ''; + + meta = with stdenv.lib; { + description = "A programmable text editor written around S-Lang"; + longDescription = '' + JED is a freely available text editor for Unix, VMS, MSDOS, OS/2, BeOS, + QNX, and win9X/NT platforms. Although it is a powerful editor designed for + use by programmers, its drop-down menu facility make it one of the + friendliest text editors around. Hence it is ideal for composing simple + email messages as well as editing complex programs in a variety of + computer languages. + + JED makes extensive use of the S-Lang library, which endows it with the + powerful S-Lang scripting language. Some of its features are: + + - Color syntax highlighting on color terminals, e.g., Linux console or a + remote color terminal via dialup (as well as Xjed) + - Folding support + - Drop-down menus on _ALL_ terminals/platforms + - Emulation of Emacs, EDT, Wordstar, Borland, and Brief editors + - Extensible in the C-like S-Lang language making the editor completely + customizable. + - Capable of reading GNU info files from within JED's info browser + - A variety of programming modes (with syntax highlighting) are available + including C, C++, FORTRAN, TeX, HTML, SH, python, IDL, DCL, NROFF... + - Edit TeX files with AUC-TeX style editing (BiBTeX support too) + - Asynchronous subprocess support allowing one to compile from within the + editor + - Built-in support for the GPM mouse driver on Linux console + - Abbreviation mode and Dynamic abbreviation mode + - 8 bit clean with mute/dead key support + - Supported on most Unix, VMS, OS/2, MSDOS (386+), win9X/NT, QNX, and BeOS + systems + - Rectangular cut/paste; regular expressions; incremental searches; search + replace across multiple files; multiple windows; multiple buffers; shell + modes; directory editor (dired); mail; rmail; ispell; and much, much + more + ''; + homepage = "https://www.jedsoft.org/jed/index.html"; + license = licenses.gpl2Plus; + platforms = slang.meta.platforms; + }; +} +# TODO: build tex documentation diff --git a/pkgs/applications/editors/jove/default.nix b/pkgs/applications/editors/jove/default.nix new file mode 100644 index 00000000000..4a22c4d4d95 --- /dev/null +++ b/pkgs/applications/editors/jove/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub +, groff +, ncurses +, makeWrapper +} : + +stdenv.mkDerivation rec { + pname = "jove"; + version = "4.17.3.6"; + + src = fetchFromGitHub { + owner = "jonmacs"; + repo = "jove"; + rev = version; + sha256 = "sha256-uQRNKV06ipOHrOsvsceqIFGGlRv5qOQy18q0tFkR6Kg="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ + groff + ncurses + ]; + + dontConfigure = true; + + preBuild = '' + makeFlagsArray+=(SYSDEFS="-DSYSVR4 -D_XOPEN_SOURCE=500" \ + TERMCAPLIB=-lncurses JOVEHOME=${placeholder "out"}) + ''; + + postInstall = '' + wrapProgram $out/bin/teachjove \ + --prefix PATH ":" "$out/bin" + ''; + + meta = with stdenv.lib; { + description = "Jonathan's Own Version or Emacs"; + homepage = "https://github.com/jonmacs/jove"; + license = licenses.bsd2; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/libraries/slang/default.nix b/pkgs/development/libraries/slang/default.nix index 9b7905c180a..010590b0fcd 100644 --- a/pkgs/development/libraries/slang/default.nix +++ b/pkgs/development/libraries/slang/default.nix @@ -1,10 +1,19 @@ -{ stdenv, fetchurl, ncurses, pcre, libpng, zlib, readline, libiconv }: +{ stdenv, fetchurl +, libiconv +, libpng +, ncurses +, pcre +, readline +, zlib +}: stdenv.mkDerivation rec { - name = "slang-2.3.2"; + pname = "slang"; + version = "2.3.2"; + src = fetchurl { - url = "https://www.jedsoft.org/releases/slang/${name}.tar.bz2"; - sha256 = "06p379fqn6w38rdpqi98irxi2bf4llb0rja3dlgkqz7nqh7kp7pw"; + url = "https://www.jedsoft.org/releases/slang/${pname}-${version}.tar.bz2"; + sha256 = "sha256-/J47D8T2fDwfbUPJDBalxC0Re44oRXxbRoMbi1064xo="; }; outputs = [ "out" "dev" "man" "doc" ]; @@ -13,21 +22,24 @@ stdenv.mkDerivation rec { # Fix some wrong hardcoded paths preConfigure = '' - sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" configure - sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" src/sltermin.c - sed -i -e "s|/bin/ln|ln|" src/Makefile.in - sed -i -e "s|-ltermcap|-lncurses|" ./configure + 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-png=${libpng.dev}" - "--with-z=${zlib.dev}" "--with-pcre=${pcre.dev}" + "--with-png=${libpng.dev}" "--with-readline=${readline.dev}" + "--with-z=${zlib.dev}" ]; buildInputs = [ - pcre libpng zlib readline + libpng + pcre + readline + zlib ] ++ stdenv.lib.optionals (stdenv.isDarwin) [ libiconv ]; propagatedBuildInputs = [ ncurses ]; @@ -41,10 +53,30 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "A multi-platform programmer's library designed to allow a developer to create robust software"; + 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; [ ]; + maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; }; } diff --git a/pkgs/development/tools/misc/dialog/default.nix b/pkgs/development/tools/misc/dialog/default.nix index ead10577978..c56620e3105 100644 --- a/pkgs/development/tools/misc/dialog/default.nix +++ b/pkgs/development/tools/misc/dialog/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchurl, ncurses +{ stdenv, fetchurl +, ncurses , withLibrary ? false, libtool , unicodeSupport ? true , enableShared ? !stdenv.isDarwin @@ -9,14 +10,14 @@ assert unicodeSupport -> ncurses.unicode && ncurses != null; stdenv.mkDerivation rec { pname = "dialog"; - version = "1.3-20190211"; + version = "1.3-20201126"; src = fetchurl { urls = [ "ftp://ftp.invisible-island.net/dialog/${pname}-${version}.tgz" "https://invisible-mirror.net/archives/dialog/${pname}-${version}.tgz" ]; - sha256 = "1lx0bvradzx1zl7znlrsnyljcs596r7wamkhyq37ikbxsy4y5h29"; + sha256 = "sha256-ySM6bI6jOlniN45RRq4r0TtRl0TP22R690IK2sWtOGY="; }; buildInputs = [ ncurses ]; @@ -30,11 +31,11 @@ stdenv.mkDerivation rec { installTargets = [ "install${stdenv.lib.optionalString withLibrary "-full"}" ]; - meta = { + meta = with stdenv.lib; { homepage = "https://invisible-island.net/dialog/dialog.html"; description = "Display dialog boxes from shell"; - license = stdenv.lib.licenses.lgpl21Plus; - maintainers = [ stdenv.lib.maintainers.spacefrogg ]; - platforms = stdenv.lib.platforms.all; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ AndersonTorres spacefrogg ]; + platforms = ncurses.meta.platforms; }; } diff --git a/pkgs/tools/networking/wifish/default.nix b/pkgs/tools/networking/wifish/default.nix new file mode 100644 index 00000000000..f502a2fb0d5 --- /dev/null +++ b/pkgs/tools/networking/wifish/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub +, dialog +, gawk +, wpa_supplicant +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "wifish"; + version = "1.1.4"; + + src = fetchFromGitHub{ + owner = "bougyman"; + repo = "wifish"; + rev = version; + sha256 = "sha256-eTErN6CfKDey/wV+9o9cBVaG5FzCRBiA9UicrMz3KBc="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + postPatch = '' + sed -ie 's|/var/lib/wifish|${placeholder "out"}/var/lib/wifish|' wifish + ''; + + dontConfigure = true; + + installPhase = '' + install -D -m0644 awk/wscanparse.awk ${placeholder "out"}/var/lib/wifish/wscanparse.awk + install -D -m0644 awk/wlistparse.awk ${placeholder "out"}/var/lib/wifish/wlistparse.awk + install -D -m0644 awk/wscan2menu.awk ${placeholder "out"}/var/lib/wifish/wscan2menu.awk + install -D -m0644 awk/iwparse.awk ${placeholder "out"}/var/lib/wifish/iwparse.awk + install -D -m0755 wifish ${placeholder "out"}/bin/wifish + ''; + + postFixup = '' + wrapProgram ${placeholder "out"}/bin/wifish \ + --prefix PATH ":" ${stdenv.lib.makeBinPath [ dialog gawk wpa_supplicant ]} + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/bougyman/wifish"; + description = "Simple wifi shell script for linux"; + license = licenses.wtfpl; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 898eb4c7bf4..f031ef939a0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5080,6 +5080,8 @@ in jumpapp = callPackage ../tools/X11/jumpapp {}; + jove = callPackage ../applications/editors/jove {}; + jucipp = callPackage ../applications/editors/jucipp { }; jugglinglab = callPackage ../tools/misc/jugglinglab { }; @@ -8296,6 +8298,8 @@ in whois = callPackage ../tools/networking/whois { }; + wifish = callPackage ../tools/networking/wifish { }; + wifite2 = callPackage ../tools/networking/wifite2 { }; wimboot = callPackage ../tools/misc/wimboot { }; @@ -22481,6 +22485,8 @@ in jdupes = callPackage ../tools/misc/jdupes { }; + jed = callPackage ../applications/editors/jed { }; + jedit = callPackage ../applications/editors/jedit { }; jgmenu = callPackage ../applications/misc/jgmenu { };