255 lines
7.9 KiB
Diff
255 lines
7.9 KiB
Diff
|
From 473959141641b6779e6ff3c3c5b6ef326073bcd4 Mon Sep 17 00:00:00 2001
|
|||
|
From: Mike FABIAN <mfabian@redhat.com>
|
|||
|
Date: Tue, 07 Jun 2011 11:42:00 +0000
|
|||
|
Subject: Set up terminal before fork.
|
|||
|
|
|||
|
After the fork it is undefined wether parent or child runs
|
|||
|
first. So there can be a race: if the child runs before the
|
|||
|
terminal of the parent is set up correctly luit may hang.
|
|||
|
This patch sets up the terminal before forking and undoes
|
|||
|
the settings in the child.
|
|||
|
|
|||
|
Signed-off-by: Mike FABIAN <mfabian@redhat.com>
|
|||
|
Signed-off-by: Egbert Eich <eich@freedesktop.org>
|
|||
|
---
|
|||
|
diff --git a/luit.c b/luit.c
|
|||
|
index 0ece7b6..5cb3b8f 100644
|
|||
|
--- a/luit.c
|
|||
|
+++ b/luit.c
|
|||
|
@@ -577,6 +577,8 @@ condom(int argc, char **argv)
|
|||
|
IGNORE_RC(pipe(c2p_waitpipe));
|
|||
|
}
|
|||
|
|
|||
|
+ setup_io(pty);
|
|||
|
+
|
|||
|
pid = fork();
|
|||
|
if (pid < 0) {
|
|||
|
perror("Couldn't fork");
|
|||
|
@@ -584,6 +586,10 @@ condom(int argc, char **argv)
|
|||
|
}
|
|||
|
|
|||
|
if (pid == 0) {
|
|||
|
+#ifdef SIGWINCH
|
|||
|
+ installHandler(SIGWINCH, SIG_DFL);
|
|||
|
+#endif
|
|||
|
+ installHandler(SIGCHLD, SIG_DFL);
|
|||
|
close(pty);
|
|||
|
if (pipe_option) {
|
|||
|
close_waitpipe(1);
|
|||
|
@@ -661,7 +667,6 @@ parent(int pid GCC_UNUSED, int pty)
|
|||
|
if (verbose) {
|
|||
|
reportIso2022(outputState);
|
|||
|
}
|
|||
|
- setup_io(pty);
|
|||
|
|
|||
|
if (pipe_option) {
|
|||
|
write_waitpipe(p2c_waitpipe);
|
|||
|
--
|
|||
|
cgit v0.9.0.2-2-gbebe
|
|||
|
|
|||
|
From 09f4907e4ab4ba3654de829bf3ac2a4a02bb9ef4 Mon Sep 17 00:00:00 2001
|
|||
|
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
Date: Sat, 22 Jun 2013 04:11:43 +0000
|
|||
|
Subject: Fix GCC_UNUSED definition to actually work with -Wunused-parameter
|
|||
|
|
|||
|
Silences warnings of:
|
|||
|
charset.c: In function ‘IdentityRecode’:
|
|||
|
charset.c:42:51: warning: unused parameter ‘self’ [-Wunused-parameter]
|
|||
|
charset.c: In function ‘NullReverse’:
|
|||
|
charset.c:84:26: warning: unused parameter ‘n’ [-Wunused-parameter]
|
|||
|
charset.c:84:59: warning: unused parameter ‘self’ [-Wunused-parameter]
|
|||
|
other.c: In function ‘mapping_utf8’:
|
|||
|
other.c:108:44: warning: unused parameter ‘s’ [-Wunused-parameter]
|
|||
|
other.c: In function ‘reverse_utf8’:
|
|||
|
other.c:114:44: warning: unused parameter ‘s’ [-Wunused-parameter]
|
|||
|
luit.c: In function ‘sigwinchHandler’:
|
|||
|
luit.c:463:21: warning: unused parameter ‘sig’ [-Wunused-parameter]
|
|||
|
luit.c: In function ‘sigchldHandler’:
|
|||
|
luit.c:470:20: warning: unused parameter ‘sig’ [-Wunused-parameter]
|
|||
|
luit.c: In function ‘parent’:
|
|||
|
luit.c:657:12: warning: unused parameter ‘pid’ [-Wunused-parameter]
|
|||
|
|
|||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
---
|
|||
|
diff --git a/other.h b/other.h
|
|||
|
index 9d814a3..d18b586 100644
|
|||
|
--- a/other.h
|
|||
|
+++ b/other.h
|
|||
|
@@ -26,7 +26,11 @@ THE SOFTWARE.
|
|||
|
#include "config.h" /* include this, for self-contained headers */
|
|||
|
|
|||
|
#ifndef GCC_UNUSED
|
|||
|
-#define GCC_UNUSED /* ARGSUSED */
|
|||
|
+# if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)
|
|||
|
+# define GCC_UNUSED __attribute__((__unused__))
|
|||
|
+# else
|
|||
|
+# define GCC_UNUSED /* ARGSUSED */
|
|||
|
+# endif
|
|||
|
#endif
|
|||
|
|
|||
|
#include <X11/fonts/fontenc.h>
|
|||
|
--
|
|||
|
cgit v0.9.0.2-2-gbebe
|
|||
|
|
|||
|
From 445863f8b5059692ac7a4df785af6920849faa82 Mon Sep 17 00:00:00 2001
|
|||
|
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
Date: Sat, 13 Jul 2013 16:08:34 +0000
|
|||
|
Subject: config: Add missing AC_CONFIG_SRCDIR
|
|||
|
|
|||
|
Regroup AC statements under the Autoconf initialization section.
|
|||
|
Regroup AM statements under the Automake initialization section.
|
|||
|
|
|||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
|||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
|||
|
---
|
|||
|
diff --git a/configure.ac b/configure.ac
|
|||
|
index c214d85..946db23 100644
|
|||
|
--- a/configure.ac
|
|||
|
+++ b/configure.ac
|
|||
|
@@ -20,9 +20,14 @@ dnl PERFORMANCE OF THIS SOFTWARE.
|
|||
|
dnl
|
|||
|
dnl Process this file with autoconf to create configure.
|
|||
|
|
|||
|
+# Initialize Autoconf
|
|||
|
AC_PREREQ([2.60])
|
|||
|
AC_INIT([luit], [1.1.1],
|
|||
|
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [luit])
|
|||
|
+AC_CONFIG_SRCDIR([Makefile.am])
|
|||
|
+AC_CONFIG_HEADERS([config.h])
|
|||
|
+
|
|||
|
+# Initialize Automake
|
|||
|
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
|||
|
AM_MAINTAINER_MODE
|
|||
|
|
|||
|
@@ -32,8 +37,6 @@ m4_ifndef([XORG_MACROS_VERSION],
|
|||
|
XORG_MACROS_VERSION(1.8)
|
|||
|
XORG_DEFAULT_OPTIONS
|
|||
|
|
|||
|
-AC_CONFIG_HEADERS([config.h])
|
|||
|
-
|
|||
|
AC_CANONICAL_HOST
|
|||
|
|
|||
|
|
|||
|
--
|
|||
|
cgit v0.9.0.2-2-gbebe
|
|||
|
|
|||
|
From 800f55f8dcd195dd0cdfc1c4d7487d00bb7745f4 Mon Sep 17 00:00:00 2001
|
|||
|
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
Date: Sat, 13 Jul 2013 16:11:20 +0000
|
|||
|
Subject: Replace hardcoded _XOPEN_SOURCE=500 with AC_USE_SYSTEM_EXTENSIONS
|
|||
|
|
|||
|
-D_XOPEN_SOURCE was originally added for Linux in commit e751086392e837
|
|||
|
and then updated to -D_XOPEN_SOURCE=500 in commit e1a002217cabdb to
|
|||
|
expose strdup() in glibc headers.
|
|||
|
|
|||
|
As noted in bug 47792 though, the posix_openpt() function is not
|
|||
|
visible unless that's raised to 600.
|
|||
|
|
|||
|
Instead of continually chasing the standards ourselves, switch to letting
|
|||
|
autoconf handle that for us.
|
|||
|
|
|||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
|||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
|||
|
---
|
|||
|
diff --git a/Makefile.am b/Makefile.am
|
|||
|
index 8069670..ef042e3 100644
|
|||
|
--- a/Makefile.am
|
|||
|
+++ b/Makefile.am
|
|||
|
@@ -25,7 +25,6 @@ bin_PROGRAMS = luit
|
|||
|
AM_CFLAGS = \
|
|||
|
$(CWARNFLAGS) \
|
|||
|
$(LUIT_CFLAGS) \
|
|||
|
- $(OS_CFLAGS) \
|
|||
|
-DLOCALE_ALIAS_FILE=\"$(LOCALEALIASFILE)\"
|
|||
|
|
|||
|
luit_LDADD = $(LUIT_LIBS)
|
|||
|
diff --git a/configure.ac b/configure.ac
|
|||
|
index 946db23..0ec4664 100644
|
|||
|
--- a/configure.ac
|
|||
|
+++ b/configure.ac
|
|||
|
@@ -26,6 +26,7 @@ AC_INIT([luit], [1.1.1],
|
|||
|
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [luit])
|
|||
|
AC_CONFIG_SRCDIR([Makefile.am])
|
|||
|
AC_CONFIG_HEADERS([config.h])
|
|||
|
+AC_USE_SYSTEM_EXTENSIONS
|
|||
|
|
|||
|
# Initialize Automake
|
|||
|
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
|||
|
@@ -37,9 +38,6 @@ m4_ifndef([XORG_MACROS_VERSION],
|
|||
|
XORG_MACROS_VERSION(1.8)
|
|||
|
XORG_DEFAULT_OPTIONS
|
|||
|
|
|||
|
-AC_CANONICAL_HOST
|
|||
|
-
|
|||
|
-
|
|||
|
AC_CHECK_HEADERS([pty.h stropts.h sys/param.h sys/select.h])
|
|||
|
AC_CHECK_FUNCS([select grantpt posix_openpt])
|
|||
|
|
|||
|
@@ -57,23 +55,16 @@ PKG_CHECK_MODULES(LUIT, fontenc)
|
|||
|
PKG_CHECK_EXISTS(x11, [],
|
|||
|
[AC_MSG_WARN([libX11 not found. luit may not be able to find locale aliases without it.])])
|
|||
|
|
|||
|
+AC_CANONICAL_HOST
|
|||
|
case $host_os in
|
|||
|
# darwin has poll() but can't be used to poll character devices (atleast through SnowLeopard)
|
|||
|
darwin*)
|
|||
|
- OS_CFLAGS=
|
|||
|
- ;;
|
|||
|
- linux*)
|
|||
|
- AC_CHECK_HEADERS([poll.h])
|
|||
|
- AC_CHECK_FUNCS([poll])
|
|||
|
- OS_CFLAGS="-D_XOPEN_SOURCE=500"
|
|||
|
;;
|
|||
|
*)
|
|||
|
AC_CHECK_HEADERS([poll.h])
|
|||
|
AC_CHECK_FUNCS([poll])
|
|||
|
- OS_CFLAGS=
|
|||
|
;;
|
|||
|
esac
|
|||
|
-AC_SUBST(OS_CFLAGS)
|
|||
|
|
|||
|
AC_CHECK_HEADERS([pty.h stropts.h sys/ioctl.h sys/param.h sys/poll.h sys/select.h sys/time.h termios.h])
|
|||
|
AC_CHECK_FUNCS([grantpt putenv select strdup])
|
|||
|
--
|
|||
|
cgit v0.9.0.2-2-gbebe
|
|||
|
|
|||
|
From e1f495359a74342352c4d6641c0002c7c79327ba Mon Sep 17 00:00:00 2001
|
|||
|
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
Date: Sat, 13 Jul 2013 16:15:16 +0000
|
|||
|
Subject: Merge overlapping AC_CHECK_HEADERS & AC_CHECK_FUNCS calls into one set
|
|||
|
|
|||
|
Duplication introduced when merging in changes in commit fddfe30c3ff91c
|
|||
|
|
|||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|||
|
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
|||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
|||
|
---
|
|||
|
diff --git a/configure.ac b/configure.ac
|
|||
|
index 0ec4664..1c6f2c9 100644
|
|||
|
--- a/configure.ac
|
|||
|
+++ b/configure.ac
|
|||
|
@@ -38,9 +38,6 @@ m4_ifndef([XORG_MACROS_VERSION],
|
|||
|
XORG_MACROS_VERSION(1.8)
|
|||
|
XORG_DEFAULT_OPTIONS
|
|||
|
|
|||
|
-AC_CHECK_HEADERS([pty.h stropts.h sys/param.h sys/select.h])
|
|||
|
-AC_CHECK_FUNCS([select grantpt posix_openpt])
|
|||
|
-
|
|||
|
AC_ARG_WITH(localealiasfile,
|
|||
|
AS_HELP_STRING([--with-localealiasfile=<path>],
|
|||
|
[The locale alias file (default: ${datadir}/X11/locale/locale.alias)]),
|
|||
|
@@ -67,7 +64,7 @@ case $host_os in
|
|||
|
esac
|
|||
|
|
|||
|
AC_CHECK_HEADERS([pty.h stropts.h sys/ioctl.h sys/param.h sys/poll.h sys/select.h sys/time.h termios.h])
|
|||
|
-AC_CHECK_FUNCS([grantpt putenv select strdup])
|
|||
|
+AC_CHECK_FUNCS([grantpt posix_openpt putenv select strdup])
|
|||
|
|
|||
|
if test "x$ac_cv_func_grantpt" != "xyes" ; then
|
|||
|
AC_CHECK_LIB(util, openpty, [cf_have_openpty=yes],[cf_have_openpty=no])
|
|||
|
--
|
|||
|
cgit v0.9.0.2-2-gbebe
|
|||
|
|