From 707b6b12cc0b0399d1fe1c83b9110a4bab16b861 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Tue, 24 Oct 2017 17:14:24 +0800 Subject: [PATCH] minicom: 2.7 -> 2.7.1 --- pkgs/tools/misc/minicom/default.nix | 52 +++++++----- .../minicom/xminicom_terminal_paths.patch | 79 +++++++++++++++++++ 2 files changed, 112 insertions(+), 19 deletions(-) create mode 100644 pkgs/tools/misc/minicom/xminicom_terminal_paths.patch diff --git a/pkgs/tools/misc/minicom/default.nix b/pkgs/tools/misc/minicom/default.nix index d731e856790d..5796f6335c0b 100644 --- a/pkgs/tools/misc/minicom/default.nix +++ b/pkgs/tools/misc/minicom/default.nix @@ -1,32 +1,46 @@ -{ stdenv, fetchurl, ncurses }: +{ stdenv, fetchurl, autoreconfHook, pkgconfig +, ncurses }: stdenv.mkDerivation rec { - name = "minicom-2.7"; + name = "minicom-2.7.1"; src = fetchurl { - url = "http://alioth.debian.org/frs/download.php/file/3977/${name}.tar.gz"; - sha256 = "1x04m4k7c71j5cnhzpjrbz43dd96k4mpkd0l87v5skrgp1isdhws"; + url = "https://alioth.debian.org/frs/download.php/latestfile/3/${name}.tar.gz"; + sha256 = "1wa1l36fa4npd21xa9nz60yrqwkk5cq713fa3p5v0zk7g9mq6bsk"; }; - buildInputs = [ncurses]; + buildInputs = [ ncurses ]; - configureFlags = [ "--sysconfdir=/etc" "--enable-lock-dir=/var/lock" ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; - preConfigure = + enableParallelBuilding = true; + + configureFlags = [ + "--sysconfdir=/etc" + "--enable-lock-dir=/var/lock" + ]; + + patches = [ ./xminicom_terminal_paths.patch ]; + + preConfigure = '' # Have `configure' assume that the lock directory exists. - '' sed -i "configure" -e's/test -d \$UUCPLOCK/true/g' - ''; + substituteInPlace configure \ + --replace 'test -d $UUCPLOCK' true - meta = { + substituteInPlace src/rwconf.c \ + --replace /usr/bin/ascii-xfr $out/bin/ascii-xfr + ''; + + meta = with stdenv.lib; { description = "Modem control and terminal emulation program"; - homepage = http://alioth.debian.org/projects/minicom/; - - longDescription = - '' Minicom is a menu driven communications program. It emulates ANSI - and VT102 terminals. It has a dialing directory and auto zmodem - download. - ''; - - platforms = stdenv.lib.platforms.gnu; # arbitrary choice + homepage = https://alioth.debian.org/projects/minicom/; + license = licenses.gpl2; + longDescription = '' + Minicom is a menu driven communications program. It emulates ANSI + and VT102 terminals. It has a dialing directory and auto zmodem + download. + ''; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/misc/minicom/xminicom_terminal_paths.patch b/pkgs/tools/misc/minicom/xminicom_terminal_paths.patch new file mode 100644 index 000000000000..18535253d9f5 --- /dev/null +++ b/pkgs/tools/misc/minicom/xminicom_terminal_paths.patch @@ -0,0 +1,79 @@ +diff --git a/src/xminicom b/src/xminicom +index a59aa08..cef153b 100755 +--- a/src/xminicom ++++ b/src/xminicom +@@ -7,57 +7,39 @@ + # + # version $Id: xminicom,v 1.4 2008-06-09 20:48:35 al-guest Exp $ + +-findcmd() +-{ +- IFS=: +- for i in $PATH +- do +- if [ -x $i\/$1 ] +- then +- result=$i\/$1 +- IFS= +- return 0 +- fi +- done +- result= +- IFS= +- return 1 ++findcmd() { ++ result=$(command -v $1) + } + +-if findcmd x-terminal-emulator +-then ++if findcmd x-terminal-emulator ; then + exec $result -T minicom -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi" + exit 1 + fi + +-if findcmd color_xterm +-then ++if findcmd konsole ; then ++ exec $result -T minicom -geometry 80x25 -e minicom -m -c on "$@" ++ exit 1 ++fi ++ ++if findcmd gnome-terminal ; then ++ exec $result -T minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi" ++ exit 1 ++fi ++ ++if findcmd color_xterm ; then + exec $result -T minicom -bg black -fg grey -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi" + exit 1 + fi + +-if findcmd rxvt +-then ++if findcmd rxvt ; then + exec $result -bg black -fg grey -n minicom -T minicom -sl 0 -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi" + exit 1 + fi + +-if findcmd kterm +-then ++if findcmd xterm ; then + exec $result -T minicom -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi" + exit 1 + fi + +-if findcmd xterm +-then +- if [ -f /etc/debian_version ] +- then +- exec $result -T minicom -n minicom -bg black -fg grey -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi" +- else +- exec $result -T minicom -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi" +- fi +- exit 1 +-fi +- +-echo "xminicom: rxvt, color_xterm or xterm NOT found!" 1>&2 ++echo "xminicom: konsole, gnome-terminal, rxvt, color_xterm or xterm NOT found!" 1>&2 + exit 1