]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
agetty: fixing FTBFS on !linux (Debian util-linux 2.20.1-1.2)
authorChristoph Egger <christoph@debian.org>
Sun, 24 Aug 2014 16:04:43 +0000 (18:04 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 17 Sep 2014 08:14:50 +0000 (10:14 +0200)
Handle vc flags missing on FreeBSD
Fix tty creation on kFreeBSD taking patch from 2.19

Addresses-Debian-Bug: #650185

include/ttyutils.h
term-utils/Makemodule.am
term-utils/agetty.c

index 4f2fd884865da997af311f4473f2d88439154d7d..e842f9f0d0e2998eb6ee75dca273269ea08c9a61 100644 (file)
@@ -74,6 +74,46 @@ static inline void reset_virtual_console(struct termios *tp, int flags)
        /* Sane setting, allow eight bit characters, no carriage return delay
         * the same result as `stty sane cr0 pass8'
         */
+#ifndef IUCLC
+# define IUCLC 0
+#endif
+#ifndef NL0
+# define NL0 0
+#endif
+#ifndef CR0
+# define CR0 0
+#endif
+#ifndef BS0
+# define BS0 0
+#endif
+#ifndef VT0
+# define VT0 0
+#endif
+#ifndef FF0
+# define FF0 0
+#endif
+#ifndef OLCUC
+# define OLCUC 0
+#endif
+#ifndef OFILL
+# define OFILL 0
+#endif
+#ifndef NLDLY
+# define NLDLY 0
+#endif
+#ifndef CRDLY
+# define CRDLY 0
+#endif
+#ifndef BSDLY
+# define BSDLY 0
+#endif
+#ifndef VTDLY
+# define VTDLY 0
+#endif
+#ifndef FFDLY
+# define FFDLY 0
+#endif
+
        tp->c_iflag |=  (BRKINT | ICRNL | IMAXBEL);
        tp->c_iflag &= ~(IGNBRK | INLCR | IGNCR | IXOFF | IUCLC | IXANY | ISTRIP);
        tp->c_oflag |=  (OPOST | ONLCR | NL0 | CR0 | TAB0 | BS0 | VT0 | FF0);
index 5c73f3e5e54d0d497efd289e99cf7210bab1c11a..627aca04949253919fbc2c19c958dd6d38aa19b8 100644 (file)
@@ -23,6 +23,7 @@ sbin_PROGRAMS += agetty
 dist_man_MANS += term-utils/agetty.8
 agetty_SOURCES = term-utils/agetty.c
 agetty_LDADD = $(LDADD) libcommon.la
+agetty_LDADD += -lutil
 endif # BUILD_AGETTY
 
 
index 3c30a5fef8f094be90536bace71c35a961b41a4e..a7044f0ff238071d50059cc33a8c36fe4340b43f 100644 (file)
@@ -10,6 +10,7 @@
  *
  * This program is freely distributable.
  */
+
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include "widechar.h"
 #include "ttyutils.h"
 
+#if defined(__FreeBSD_kernel__)
+#include <pty.h>
+#include <sys/param.h>
+#endif
+
+
 #ifdef __linux__
 #  include <sys/kd.h>
 #  include <sys/param.h>
 #  endif
 #endif
 
+#ifdef __FreeBSD_kernel__
+#define USE_SYSLOG
+#endif
+
 /* If USE_SYSLOG is undefined all diagnostics go to /dev/console. */
 #ifdef USE_SYSLOG
 #  include <syslog.h>
@@ -1110,6 +1121,11 @@ static void open_tty(char *tty, struct termios *tp, struct options *op)
                        op->term = DEFAULT_TTYS1;
        }
 #endif
+
+#if defined(__FreeBSD_kernel__)
+       login_tty (0);
+#endif
+
        /*
         * Detect if this is a virtual console or serial/modem line.
         * In case of a virtual console the ioctl KDGKBMODE succeeds