From 962bd9fdb8f32226b9a7783ee2a0bda6076ffa41 Mon Sep 17 00:00:00 2001 From: John Hixson Date: Thu, 31 Jan 2019 04:55:59 +0000 Subject: [New port] sysutils/conman - serial console manager - ConMan is a serial console management program designed to support a large number of console devices and simultaneous users. Approved by: araujo (mentor) Differential Revision: https://reviews.freebsd.org/D18978 --- sysutils/Makefile | 1 + sysutils/conman/Makefile | 44 +++++++++++++++++++++++++++++++++ sysutils/conman/distinfo | 3 +++ sysutils/conman/files/conmand.in | 29 ++++++++++++++++++++++ sysutils/conman/files/patch-Makefile.in | 39 +++++++++++++++++++++++++++++ sysutils/conman/pkg-descr | 12 +++++++++ sysutils/conman/pkg-plist | 32 ++++++++++++++++++++++++ 7 files changed, 160 insertions(+) create mode 100644 sysutils/conman/Makefile create mode 100644 sysutils/conman/distinfo create mode 100644 sysutils/conman/files/conmand.in create mode 100644 sysutils/conman/files/patch-Makefile.in create mode 100644 sysutils/conman/pkg-descr create mode 100644 sysutils/conman/pkg-plist diff --git a/sysutils/Makefile b/sysutils/Makefile index adbcfeb7a13a..5d2ee481203b 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -194,6 +194,7 @@ SUBDIR += confman SUBDIR += conky SUBDIR += conky-awesome + SUBDIR += conman SUBDIR += consolehm SUBDIR += consolekit2 SUBDIR += consul diff --git a/sysutils/conman/Makefile b/sysutils/conman/Makefile new file mode 100644 index 000000000000..e67d7f705dac --- /dev/null +++ b/sysutils/conman/Makefile @@ -0,0 +1,44 @@ +# Created by: John Hixson +# $FreeBSD$ + +PORTNAME= conman +PORTVERSION= 0.3.0 +DISTVERSIONPREFIX= conman- +CATEGORIES= sysutils + +MAINTAINER= jhixson@FreeBSD.org +COMMENT= Serial Console Management Program + +LICENSE= GPLv3+ +LICENSE_FILE= ${WRKSRC}/COPYING + +LIB_DEPENDS= libinotify.so:devel/libinotify +RUN_DEPENDS= expect>0:lang/expect \ + freeipmi>1.0.4:sysutils/freeipmi + +USES= autoreconf gmake shebangfix perl5 + +USE_RC_SUBR= conmand + +USE_GITHUB= yes +GH_ACCOUNT= dun + +GNU_CONFIGURE= yes + +ETCDIR= ${PREFIX}/etc +CONFIGURE_ARGS= --sysconfdir=${ETCDIR} + +SHEBANG_GLOB= *.exp conmen +SHEBANG_LANG= expect + +MAKE_ARGS+= CC="${CC}" PREFIX="${PREFIX}" + +CFLAGS+= -I${LOCALBASE}/include -std=c99 +LDFLAGS+= -L${LOCALBASE}/lib -linotify + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/conman + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/conmand + ${MKDIR} ${STAGEDIR}${ETCDIR} + +.include diff --git a/sysutils/conman/distinfo b/sysutils/conman/distinfo new file mode 100644 index 000000000000..d7dd01f73644 --- /dev/null +++ b/sysutils/conman/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1548451915 +SHA256 (dun-conman-conman-0.3.0_GH0.tar.gz) = 51d379187028317784305588ce3770e66d56c201c3d98afbf823eac039f4583c +SIZE (dun-conman-conman-0.3.0_GH0.tar.gz) = 240855 diff --git a/sysutils/conman/files/conmand.in b/sysutils/conman/files/conmand.in new file mode 100644 index 000000000000..522766fb4b74 --- /dev/null +++ b/sysutils/conman/files/conmand.in @@ -0,0 +1,29 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: conmand +# REQUIRE: NETWORKING +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable conman: +# conman_enable="YES" +# conman_args="" + +. /etc/rc.subr + +name=conmand +rcvar=conmand_enable + +load_rc_config $name + +pidfile=/var/run/conmand.pid +procname="%%PREFIX%%/sbin/conmand" + +: ${conmand_enable:="NO"} +: ${conmand_args:="-P ${pidfile}"} + +command="${procname}" +command_args="${conmand_args}" + +run_rc_command "$1" diff --git a/sysutils/conman/files/patch-Makefile.in b/sysutils/conman/files/patch-Makefile.in new file mode 100644 index 000000000000..d03af0dbb8ea --- /dev/null +++ b/sysutils/conman/files/patch-Makefile.in @@ -0,0 +1,39 @@ +--- Makefile.in.orig 2018-09-15 15:51:34 UTC ++++ Makefile.in +@@ -90,13 +90,13 @@ install: $(PROGS) + $(INSTALL) -m 755 -d $(DESTDIR)$(sbindir) + $(INSTALL) -m 755 conmand $(DESTDIR)$(sbindir)/ + $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir) +- @ test ! -f $(DESTDIR)$(sysconfdir)/conman.conf \ +- || cmp etc/conman.conf $(DESTDIR)$(sysconfdir)/conman.conf \ ++ @ test ! -f $(DESTDIR)$(sysconfdir)/conman.conf.sample \ ++ || cmp etc/conman.conf $(DESTDIR)$(sysconfdir)/conman.conf.sample \ + 1>/dev/null 2>&1 || new=".new"; \ + echo $(INSTALL) -m 600 etc/conman.conf \ +- $(DESTDIR)$(sysconfdir)/conman.conf$${new}; \ ++ $(DESTDIR)$(sysconfdir)/conman.conf$${new}.sample; \ + $(INSTALL) -m 600 etc/conman.conf \ +- $(DESTDIR)$(sysconfdir)/conman.conf$${new} ++ $(DESTDIR)$(sysconfdir)/conman.conf$${new}.sample + @ if test -d $(prefix)/lib/systemd/system; then \ + echo $(INSTALL) -m 755 -d $(DESTDIR)$(prefix)/lib/systemd/system; \ + $(INSTALL) -m 755 -d $(DESTDIR)$(prefix)/lib/systemd/system; \ +@@ -114,14 +114,14 @@ install: $(PROGS) + $(INSTALL) -m 755 etc/conman.init \ + $(DESTDIR)$(sysconfdir)/init.d/conman$${new} + $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)/logrotate.d +- @ test ! -f $(DESTDIR)$(sysconfdir)/logrotate.d/conman \ ++ @ test ! -f $(DESTDIR)$(sysconfdir)/logrotate.d/conman.sample \ + || cmp etc/conman.logrotate \ +- $(DESTDIR)$(sysconfdir)/logrotate.d/conman \ ++ $(DESTDIR)$(sysconfdir)/logrotate.d/conman.sample \ + 1>/dev/null 2>&1 || new=".new"; \ + echo $(INSTALL) -m 644 etc/conman.logrotate \ +- $(DESTDIR)$(sysconfdir)/logrotate.d/conman$${new}; \ ++ $(DESTDIR)$(sysconfdir)/logrotate.d/conman$${new}.sample; \ + $(INSTALL) -m 644 etc/conman.logrotate \ +- $(DESTDIR)$(sysconfdir)/logrotate.d/conman$${new} ++ $(DESTDIR)$(sysconfdir)/logrotate.d/conman$${new}.sample + @ test -d /etc/sysconfig && d=sysconfig || d=default; \ + echo $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)/$$d; \ + $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)/$$d; \ diff --git a/sysutils/conman/pkg-descr b/sysutils/conman/pkg-descr new file mode 100644 index 000000000000..f09359b6897f --- /dev/null +++ b/sysutils/conman/pkg-descr @@ -0,0 +1,12 @@ +ConMan is a serial console management program designed to support a +large number of console devices and simultaneous users. + +Supported console types: + + - Local serial devices + - Remote terminal servers (via the telnet protocol) + - IPMI Serial-Over-LAN (via FreeIPMI's libipmiconsole) + - External processes (e.g., Expect) + - Unix domain sockets + +WWW: https://dun.github.io/conman/ diff --git a/sysutils/conman/pkg-plist b/sysutils/conman/pkg-plist new file mode 100644 index 000000000000..8eddabda463d --- /dev/null +++ b/sysutils/conman/pkg-plist @@ -0,0 +1,32 @@ +bin/conman +bin/conmen +%%ETCDIR%%/default/conman +%%ETCDIR%%/init.d/conman +@sample %%ETCDIR%%/conman.conf.sample +@sample %%ETCDIR%%/logrotate.d/conman.sample +lib/conman/alpha.exp +lib/conman/conman.exp +lib/conman/examples/README +lib/conman/examples/boot_alpha.exp +lib/conman/examples/mac.exp +lib/conman/examples/rmc.exp +lib/conman/examples/shell_cmd_1.exp +lib/conman/examples/shell_cmd_n.exp +lib/conman/examples/srm.exp +lib/conman/examples/wtf.exp +lib/conman/exec/README +lib/conman/exec/cyclades-ssh.exp +lib/conman/exec/cyclades-telnet.exp +lib/conman/exec/hp-ilo.exp +lib/conman/exec/hp-lo100.exp +lib/conman/exec/ibm-bc.exp +lib/conman/exec/ipmiconsole.exp +lib/conman/exec/ipmitool.exp +lib/conman/exec/ssh.exp +lib/conman/exec/sun-elom.exp +lib/conman/exec/sun-ilom.exp +lib/conman/exec/sun-v20z-v40z.exp +man/man1/conman.1.gz +man/man5/conman.conf.5.gz +man/man8/conmand.8.gz +sbin/conmand -- cgit v1.2.3