Skip to content

Instantly share code, notes, and snippets.

@unxmaal
Created November 27, 2020 15:19
Show Gist options
  • Save unxmaal/210b83136c7c17250b4d9090bcd136ad to your computer and use it in GitHub Desktop.
Save unxmaal/210b83136c7c17250b4d9090bcd136ad to your computer and use it in GitHub Desktop.
/*
* Copyright (C) 2001,2002 Red Hat, Inc.
* Copyright © 2009, 2010 Christian Persch
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* SECTION: vte-pty
* @short_description: Functions for starting a new process on a new pseudo-terminal and for
* manipulating pseudo-terminals
*
* The terminal widget uses these functions to start commands with new controlling
* pseudo-terminals and to resize pseudo-terminals.
*/
#include <config.h>
#include <vte/vte.h>
#include "vtepty-private.h"
#include "vtetypes.hh"
#include "vtespawn.hh"
#include <assert.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#ifdef HAVE_SYS_TERMIOS_H
#include <sys/termios.h>
#endif
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#ifdef HAVE_SYS_SYSLIMITS_H
#include <sys/syslimits.h>
#endif
#include <signal.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_TERMIOS_H
#include <termios.h>
#endif
#include <unistd.h>
#ifdef HAVE_UTIL_H
#include <util.h>
#endif
#ifdef HAVE_PTY_H
#include <pty.h>
#endif
#if defined(__sun) && defined(HAVE_STROPTS_H)
#include <stropts.h>
#endif
#include <glib.h>
#include <gio/gio.h>
#include "debug.h"
#include <glib/gi18n-lib.h>
/* NSIG isn't in POSIX, so if it doesn't exist use this here. See bug #759196 */
#ifndef NSIG
#define NSIG (8 * sizeof(sigset_t))
#endif
#define VTE_VERSION_NUMERIC ((VTE_MAJOR_VERSION) * 10000 + (VTE_MINOR_VERSION) * 100 + (VTE_MICRO_VERSION))
#define VTE_TERMINFO_NAME "xterm-256color"
#if !GLIB_CHECK_VERSION(2, 42, 0)
#define G_PARAM_EXPLICIT_NOTIFY 0
#endif
#define I_(string) (g_intern_static_string(string))
/* stupid hackery */
#define SCM_RIGHTS 0x01
typedef struct _VtePtyPrivate VtePtyPrivate;
typedef struct {
GSpawnChildSetupFunc extra_child_setup;
gpointer extra_child_setup_data;
} VtePtyChildSetupData;
/**
* VtePty:
*/
struct _VtePty {
GObject parent_instance;
/* <private> */
VtePtyPrivate *priv;
};
struct _VtePtyPrivate {
VtePtyFlags flags;
int pty_fd;
VtePtyChildSetupData child_setup_data;
guint utf8 : 1;
guint foreign : 1;
};
struct _VtePtyClass {
GObjectClass parent_class;
};
/**
* vte_pty_child_setup:
* @pty: a #VtePty
*
* FIXMEchpe
*/
void
vte_pty_child_setup (VtePty *pty)
{
VtePtyPrivate *priv = pty->priv;
VtePtyChildSetupData *data = &priv->child_setup_data;
/* Unblock all signals */
sigset_t set;
sigemptyset(&set);
if (pthread_sigmask(SIG_SETMASK, &set, nullptr) == -1) {
_vte_debug_print(VTE_DEBUG_PTY, "Failed to unblock signals: %m");
_exit(127);
}
/* Reset the handlers for all signals to their defaults. The parent
* (or one of the libraries it links to) may have changed one to be ignored. */
for (int n = 1; n < NSIG; n++) {
if (n == SIGSTOP || n == SIGKILL)
continue;
signal(n, SIG_DFL);
}
auto masterfd = priv->pty_fd;
if (masterfd == -1)
_exit(127);
if (grantpt(masterfd) != 0) {
_vte_debug_print(VTE_DEBUG_PTY, "%s failed: %m", "grantpt");
_exit(127);
}
if (unlockpt(masterfd) != 0) {
_vte_debug_print(VTE_DEBUG_PTY, "%s failed: %m", "unlockpt");
_exit(127);
}
/* Note: *not* O_CLOEXEC! */
auto const fd_flags = int{O_RDWR | ((priv->flags & VTE_PTY_NO_CTTY) ? O_NOCTTY : 0)};
auto fd = int{-1};
#ifdef __linux__
fd = ioctl(masterfd, TIOCGPTPEER, fd_flags);
/* Note: According to the kernel's own tests (tools/testing/selftests/filesystems/devpts_pts.c),
* the error returned when the running kernel does not support this ioctl should be EINVAL.
* However it appears that the actual error returned is ENOTTY. So we check for both of them.
* See issue#182.
*/
if (fd == -1 &&
errno != EINVAL &&
errno != ENOTTY) {
_vte_debug_print(VTE_DEBUG_PTY, "%s failed: %m\n", "ioctl(TIOCGPTPEER)");
_exit(127);
}
/* Fall back to ptsname + open */
#endif
if (fd == -1) {
auto const name = ptsname(masterfd);
if (name == nullptr) {
_vte_debug_print(VTE_DEBUG_PTY, "%s failed: %m\n", "ptsname");
_exit(127);
}
_vte_debug_print (VTE_DEBUG_PTY,
"Setting up child pty: master FD = %d name = %s\n",
masterfd, name);
fd = open(name, fd_flags);
if (fd == -1) {
_vte_debug_print (VTE_DEBUG_PTY, "Failed to open PTY: %m\n");
_exit(127);
}
}
assert(fd != -1);
#if defined(HAVE_SETSID) && defined(HAVE_SETPGID)
if (!(priv->flags & VTE_PTY_NO_SESSION)) {
/* Start a new session and become process-group leader. */
_vte_debug_print (VTE_DEBUG_PTY, "Starting new session\n");
setsid();
setpgid(0, 0);
}
#endif
#ifdef TIOCSCTTY
if (!(priv->flags & VTE_PTY_NO_CTTY)) {
ioctl(fd, TIOCSCTTY, fd);
}
#endif
#if defined(__sun) && defined(HAVE_STROPTS_H)
if (isastream (fd) == 1) {
if ((ioctl(fd, I_FIND, "ptem") == 0) &&
(ioctl(fd, I_PUSH, "ptem") == -1)) {
_exit (127);
}
if ((ioctl(fd, I_FIND, "ldterm") == 0) &&
(ioctl(fd, I_PUSH, "ldterm") == -1)) {
_exit (127);
}
if ((ioctl(fd, I_FIND, "ttcompat") == 0) &&
(ioctl(fd, I_PUSH, "ttcompat") == -1)) {
perror ("ioctl (fd, I_PUSH, \"ttcompat\")");
_exit (127);
}
}
#endif
/* now setup child I/O through the tty */
if (fd != STDIN_FILENO) {
if (dup2(fd, STDIN_FILENO) != STDIN_FILENO){
_exit (127);
}
}
if (fd != STDOUT_FILENO) {
if (dup2(fd, STDOUT_FILENO) != STDOUT_FILENO){
_exit (127);
}
}
if (fd != STDERR_FILENO) {
if (dup2(fd, STDERR_FILENO) != STDERR_FILENO){
_exit (127);
}
}
/* Close the original FD, unless it's one of the stdio descriptors */
if (fd != STDIN_FILENO &&
fd != STDOUT_FILENO &&
fd != STDERR_FILENO) {
close(fd);
}
/* Now set the TERM environment variable */
/* FIXME: Setting environment here seems to have no effect, the merged envp2 will override on exec.
* By the way, we'd need to set the one from there, if any. */
g_setenv("TERM", VTE_TERMINFO_NAME, TRUE);
char version[7];
g_snprintf (version, sizeof (version), "%u", VTE_VERSION_NUMERIC);
g_setenv ("VTE_VERSION", version, TRUE);
/* Finally call an extra child setup */
if (data->extra_child_setup) {
data->extra_child_setup (data->extra_child_setup_data);
}
}
/* TODO: clean up the spawning
* - replace current env rather than adding!
*/
/*
* __vte_pty_merge_environ:
* @envp: environment vector
* @inherit: whether to use the parent environment
*
* Merges @envp to the parent environment, and returns a new environment vector.
*
* Returns: a newly allocated string array. Free using g_strfreev()
*/
static gchar **
__vte_pty_merge_environ (char **envp,
const char *directory,
gboolean inherit)
{
GHashTable *table;
GHashTableIter iter;
char *name, *value;
gchar **parent_environ;
GPtrArray *array;
gint i;
table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
if (inherit) {
parent_environ = g_listenv ();
for (i = 0; parent_environ[i] != NULL; i++) {
g_hash_table_replace (table,
g_strdup (parent_environ[i]),
g_strdup (g_getenv (parent_environ[i])));
}
g_strfreev (parent_environ);
}
/* Make sure the one in envp overrides the default. */
g_hash_table_replace (table, g_strdup ("TERM"), g_strdup (VTE_TERMINFO_NAME));
if (envp != NULL) {
for (i = 0; envp[i] != NULL; i++) {
name = g_strdup (envp[i]);
value = strchr (name, '=');
if (value) {
*value = '\0';
value = g_strdup (value + 1);
}
g_hash_table_replace (table, name, value);
}
}
g_hash_table_replace (table, g_strdup ("VTE_VERSION"), g_strdup_printf ("%u", VTE_VERSION_NUMERIC));
/* Always set this ourself, not allowing replacing from envp */
g_hash_table_replace(table, g_strdup("COLORTERM"), g_strdup("truecolor"));
/* We need to put the working directory also in PWD, so that
* e.g. bash starts in the right directory if @directory is a symlink.
* See bug #502146 and #758452.
*/
if (directory)
g_hash_table_replace(table, g_strdup("PWD"), g_strdup(directory));
array = g_ptr_array_sized_new (g_hash_table_size (table) + 1);
g_hash_table_iter_init(&iter, table);
while (g_hash_table_iter_next(&iter, (void**) &name, (void**) &value)) {
g_ptr_array_add (array, g_strconcat (name, "=", value, nullptr));
}
g_assert(g_hash_table_size(table) == array->len);
g_hash_table_destroy (table);
g_ptr_array_add (array, NULL);
return (gchar **) g_ptr_array_free (array, FALSE);
}
/*
* __vte_pty_spawn:
* @pty: a #VtePty
* @directory: the name of a directory the command should start in, or %NULL
* to use the cwd
* @argv: child's argument vector
* @envv: a list of environment variables to be added to the environment before
* starting the process, or %NULL
* @spawn_flags: flags from #GSpawnFlags
* @child_setup: function to run in the child just before exec()
* @child_setup_data: user data for @child_setup
* @child_pid: a location to store the child PID, or %NULL
* @timeout: a timeout value in ms, or %NULL
* @cancellable: a #GCancellable, or %NULL
* @error: return location for a #GError, or %NULL
*
* Uses g_spawn_async() to spawn the command in @argv. The child's environment will
* be the parent environment with the variables in @envv set afterwards.
*
* Enforces the vte_terminal_watch_child() requirements by adding
* %G_SPAWN_DO_NOT_REAP_CHILD to @spawn_flags.
*
* Note that the %G_SPAWN_LEAVE_DESCRIPTORS_OPEN flag is not supported;
* it will be cleared!
*
* If spawning the command in @working_directory fails because the child
* is unable to chdir() to it, falls back trying to spawn the command
* in the parent's working directory.
*
* Returns: %TRUE on success, or %FALSE on failure with @error filled in
*/
gboolean
__vte_pty_spawn (VtePty *pty,
const char *directory,
char **argv,
char **envv,
GSpawnFlags spawn_flags_,
GSpawnChildSetupFunc child_setup,
gpointer child_setup_data,
GPid *child_pid /* out */,
int timeout,
GCancellable *cancellable,
GError **error)
{
VtePtyPrivate *priv = pty->priv;
VtePtyChildSetupData *data = &priv->child_setup_data;
guint spawn_flags = (guint) spawn_flags_;
gboolean ret = TRUE;
gboolean inherit_envv;
char **envp2;
gint i;
GError *err = NULL;
GPollFD pollfd;
if (cancellable && !g_cancellable_make_pollfd(cancellable, &pollfd)) {
vte::util::restore_errno errsv;
g_set_error(error,
G_IO_ERROR,
g_io_error_from_errno(errsv),
"Failed to make cancellable pollfd: %s",
g_strerror(errsv));
return FALSE;
}
spawn_flags |= G_SPAWN_DO_NOT_REAP_CHILD;
/* FIXMEchpe: Enforce this until I've checked our code to make sure
* it doesn't leak out internal FDs into the child this way.
*/
spawn_flags &= ~G_SPAWN_LEAVE_DESCRIPTORS_OPEN;
inherit_envv = (spawn_flags & VTE_SPAWN_NO_PARENT_ENVV) == 0;
spawn_flags &= ~VTE_SPAWN_NO_PARENT_ENVV;
/* add the given environment to the childs */
envp2 = __vte_pty_merge_environ (envv, directory, inherit_envv);
_VTE_DEBUG_IF (VTE_DEBUG_MISC) {
g_printerr ("Spawning command:\n");
for (i = 0; argv[i] != NULL; i++) {
g_printerr (" argv[%d] = %s\n", i, argv[i]);
}
for (i = 0; envp2[i] != NULL; i++) {
g_printerr (" env[%d] = %s\n", i, envp2[i]);
}
g_printerr (" directory: %s\n",
directory ? directory : "(none)");
}
data->extra_child_setup = child_setup;
data->extra_child_setup_data = child_setup_data;
ret = vte_spawn_async_with_pipes_cancellable(directory,
argv, envp2,
(GSpawnFlags)spawn_flags,
(GSpawnChildSetupFunc)vte_pty_child_setup,
pty,
child_pid,
NULL, NULL, NULL,
timeout,
cancellable ? &pollfd : NULL,
&err);
if (!ret &&
directory != NULL &&
g_error_matches(err, G_SPAWN_ERROR, G_SPAWN_ERROR_CHDIR)) {
/* try spawning in our working directory */
g_clear_error(&err);
ret = vte_spawn_async_with_pipes_cancellable(NULL,
argv, envp2,
(GSpawnFlags)spawn_flags,
(GSpawnChildSetupFunc)vte_pty_child_setup,
pty,
child_pid,
NULL, NULL, NULL,
timeout,
cancellable ? &pollfd : NULL,
&err);
}
g_strfreev (envp2);
data->extra_child_setup = NULL;
data->extra_child_setup_data = NULL;
if (cancellable)
g_cancellable_release_fd(cancellable);
if (ret)
return TRUE;
g_propagate_error (error, err);
return FALSE;
}
/**
* vte_pty_set_size:
* @pty: a #VtePty
* @rows: the desired number of rows
* @columns: the desired number of columns
* @error: (allow-none): return location to store a #GError, or %NULL
*
* Attempts to resize the pseudo terminal's window size. If successful, the
* OS kernel will send #SIGWINCH to the child process group.
*
* If setting the window size failed, @error will be set to a #GIOError.
*
* Returns: %TRUE on success, %FALSE on failure with @error filled in
*/
gboolean
vte_pty_set_size(VtePty *pty,
int rows,
int columns,
GError **error)
{
struct winsize size;
int master;
int ret;
g_return_val_if_fail(VTE_IS_PTY(pty), FALSE);
master = vte_pty_get_fd(pty);
memset(&size, 0, sizeof(size));
size.ws_row = rows > 0 ? rows : 24;
size.ws_col = columns > 0 ? columns : 80;
_vte_debug_print(VTE_DEBUG_PTY,
"Setting size on fd %d to (%d,%d).\n",
master, columns, rows);
ret = ioctl(master, TIOCSWINSZ, &size);
if (ret != 0) {
vte::util::restore_errno errsv;
g_set_error(error, G_IO_ERROR,
g_io_error_from_errno(errsv),
"Failed to set window size: %s",
g_strerror(errsv));
_vte_debug_print(VTE_DEBUG_PTY,
"Failed to set size on %d: %s.\n",
master, g_strerror(errsv));
return FALSE;
}
return TRUE;
}
/**
* vte_pty_get_size:
* @pty: a #VtePty
* @rows: (out) (allow-none): a location to store the number of rows, or %NULL
* @columns: (out) (allow-none): a location to store the number of columns, or %NULL
* @error: return location to store a #GError, or %NULL
*
* Reads the pseudo terminal's window size.
*
* If getting the window size failed, @error will be set to a #GIOError.
*
* Returns: %TRUE on success, %FALSE on failure with @error filled in
*/
gboolean
vte_pty_get_size(VtePty *pty,
int *rows,
int *columns,
GError **error)
{
struct winsize size;
int master;
int ret;
g_return_val_if_fail(VTE_IS_PTY(pty), FALSE);
master = vte_pty_get_fd(pty);
memset(&size, 0, sizeof(size));
ret = ioctl(master, TIOCGWINSZ, &size);
if (ret == 0) {
if (columns != NULL) {
*columns = size.ws_col;
}
if (rows != NULL) {
*rows = size.ws_row;
}
_vte_debug_print(VTE_DEBUG_PTY,
"Size on fd %d is (%d,%d).\n",
master, size.ws_col, size.ws_row);
return TRUE;
} else {
vte::util::restore_errno errsv;
g_set_error(error, G_IO_ERROR,
g_io_error_from_errno(errsv),
"Failed to get window size: %s",
g_strerror(errsv));
_vte_debug_print(VTE_DEBUG_PTY,
"Failed to read size from fd %d: %s\n",
master, g_strerror(errsv));
return FALSE;
}
}
static int
fd_set_cloexec(int fd)
{
int flags = fcntl(fd, F_GETFD, 0);
if (flags < 0)
return flags;
return fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
}
static int
fd_set_nonblocking(int fd)
{
int flags = fcntl(fd, F_GETFL, 0);
if (flags < 0)
return -1;
if ((flags & O_NONBLOCK) != 0)
return 0;
return fcntl(fd, F_SETFL, flags | O_NONBLOCK);
}
static int
fd_set_cpkt(int fd)
{
/* tty_ioctl(4) -> every read() gives an extra byte at the beginning
* notifying us of stop/start (^S/^Q) events. */
int one = 1;
return ioctl(fd, TIOCPKT, &one);
}
static int
fd_setup(int fd)
{
if (fd_set_cloexec(fd) < 0) {
vte::util::restore_errno errsv;
_vte_debug_print(VTE_DEBUG_PTY,
"%s failed: %s", "Setting CLOEXEC flag", g_strerror(errsv));
return -1;
}
if (fd_set_nonblocking(fd) < 0) {
vte::util::restore_errno errsv;
_vte_debug_print(VTE_DEBUG_PTY,
"%s failed: %s", "Setting O_NONBLOCK flag", g_strerror(errsv));
return -1;
}
if (fd_set_cpkt(fd) < 0) {
vte::util::restore_errno errsv;
_vte_debug_print(VTE_DEBUG_PTY,
"%s failed: %s", "ioctl(TIOCPKT)", g_strerror(errsv));
return -1;
}
return 0;
}
/*
* _vte_pty_open_posix:
* @pty: a #VtePty
* @error: a location to store a #GError, or %NULL
*
* Opens a new file descriptor to a new PTY master.
*
* Returns: the new PTY's master FD, or -1
*/
static int
_vte_pty_open_posix(void)
{
/* Attempt to open the master. */
vte::util::smart_fd fd;
fd = posix_openpt(O_RDWR | O_NOCTTY | O_NONBLOCK | O_CLOEXEC);
#ifndef __linux__
/* Other kernels may not support CLOEXEC or NONBLOCK above, so try to fall back */
bool need_cloexec = false, need_nonblocking = false;
if (fd == -1 && errno == EINVAL) {
/* Try without NONBLOCK and apply the flag afterward */
need_nonblocking = true;
fd = posix_openpt(O_RDWR | O_NOCTTY | O_CLOEXEC);
if (fd == -1 && errno == EINVAL) {
/* Try without CLOEXEC and apply the flag afterwards */
need_cloexec = true;
fd = posix_openpt(O_RDWR | O_NOCTTY);
}
}
#endif /* !linux */
if (fd == -1) {
vte::util::restore_errno errsv;
_vte_debug_print(VTE_DEBUG_PTY,
"%s failed: %s", "posix_openpt", g_strerror(errsv));
return -1;
}
#ifndef __linux__
if (need_cloexec && fd_set_cloexec(fd) < 0) {
vte::util::restore_errno errsv;
_vte_debug_print(VTE_DEBUG_PTY,
"%s failed: %s", "Setting CLOEXEC flag", g_strerror(errsv));
return -1;
}
if (need_nonblocking && fd_set_nonblocking(fd) < 0) {
vte::util::restore_errno errsv;
_vte_debug_print(VTE_DEBUG_PTY,
"%s failed: %s", "Setting NONBLOCK flag", g_strerror(errsv));
return -1;
}
#endif /* !linux */
if (fd_set_cpkt(fd) < 0) {
vte::util::restore_errno errsv;
_vte_debug_print(VTE_DEBUG_PTY,
"%s failed: %s", "ioctl(TIOCPKT)", g_strerror(errsv));
return -1;
}
_vte_debug_print(VTE_DEBUG_PTY, "Allocated pty on fd %d.\n", (int)fd);
return fd.steal();
}
static int
_vte_pty_open_foreign(int masterfd /* consumed */)
{
vte::util::smart_fd fd(masterfd);
if (fd == -1) {
errno = EBADF;
return -1;
}
if (fd_setup(fd) < 0)
return -1;
return fd.steal();
}
/**
* vte_pty_set_utf8:
* @pty: a #VtePty
* @utf8: whether or not the pty is in UTF-8 mode
* @error: (allow-none): return location to store a #GError, or %NULL
*
* Tells the kernel whether the terminal is UTF-8 or not, in case it can make
* use of the info. Linux 2.6.5 or so defines IUTF8 to make the line
* discipline do multibyte backspace correctly.
*
* Returns: %TRUE on success, %FALSE on failure with @error filled in
*/
gboolean
vte_pty_set_utf8(VtePty *pty,
gboolean utf8,
GError **error)
{
#if defined(HAVE_TCSETATTR) && defined(IUTF8)
VtePtyPrivate *priv;
struct termios tio;
tcflag_t saved_cflag;
g_return_val_if_fail(VTE_IS_PTY(pty), FALSE);
priv = pty->priv;
g_return_val_if_fail (priv->pty_fd != -1, FALSE);
if (tcgetattr(priv->pty_fd, &tio) == -1) {
vte::util::restore_errno errsv;
g_set_error(error, G_IO_ERROR, g_io_error_from_errno(errsv),
"%s failed: %s", "tcgetattr", g_strerror(errsv));
return FALSE;
}
saved_cflag = tio.c_iflag;
if (utf8) {
tio.c_iflag |= IUTF8;
} else {
tio.c_iflag &= ~IUTF8;
}
/* Only set the flag if it changes */
if (saved_cflag != tio.c_iflag &&
tcsetattr(priv->pty_fd, TCSANOW, &tio) == -1) {
vte::util::restore_errno errsv;
g_set_error(error, G_IO_ERROR, g_io_error_from_errno(errsv),
"%s failed: %s", "tcgetattr", g_strerror(errsv));
return FALSE;
}
#endif
return TRUE;
}
/**
* vte_pty_close:
* @pty: a #VtePty
*
* Since 0.42 this is a no-op.
*
* Deprecated: 0.42
*/
void
vte_pty_close (VtePty *pty)
{
}
/* VTE PTY class */
enum {
PROP_0,
PROP_FLAGS,
PROP_FD,
};
/* GInitable impl */
static gboolean
vte_pty_initable_init (GInitable *initable,
GCancellable *cancellable,
GError **error)
{
VtePty *pty = VTE_PTY (initable);
VtePtyPrivate *priv = pty->priv;
if (cancellable != NULL) {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
"Cancellable initialisation not supported");
return FALSE;
}
if (priv->foreign) {
priv->pty_fd = _vte_pty_open_foreign(priv->pty_fd);
} else {
priv->pty_fd = _vte_pty_open_posix();
}
if (priv->pty_fd == -1) {
vte::util::restore_errno errsv;
g_set_error(error, G_IO_ERROR, g_io_error_from_errno(errsv),
"Failed to open PTY: %s", g_strerror(errsv));
return FALSE;
}
return TRUE;
}
static void
vte_pty_initable_iface_init (GInitableIface *iface)
{
iface->init = vte_pty_initable_init;
}
/* GObjectClass impl */
G_DEFINE_TYPE_WITH_CODE (VtePty, vte_pty, G_TYPE_OBJECT,
G_ADD_PRIVATE (VtePty)
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, vte_pty_initable_iface_init))
static void
vte_pty_init (VtePty *pty)
{
VtePtyPrivate *priv;
priv = pty->priv = (VtePtyPrivate *)vte_pty_get_instance_private (pty);
priv->flags = VTE_PTY_DEFAULT;
priv->pty_fd = -1;
priv->foreign = FALSE;
}
static void
vte_pty_finalize (GObject *object)
{
VtePty *pty = VTE_PTY (object);
VtePtyPrivate *priv = pty->priv;
/* Close the master FD */
if (priv->pty_fd != -1) {
close(priv->pty_fd);
}
G_OBJECT_CLASS (vte_pty_parent_class)->finalize (object);
}
static void
vte_pty_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
{
VtePty *pty = VTE_PTY (object);
VtePtyPrivate *priv = pty->priv;
switch (property_id) {
case PROP_FLAGS:
g_value_set_flags(value, priv->flags);
break;
case PROP_FD:
g_value_set_int(value, vte_pty_get_fd(pty));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
}
}
static void
vte_pty_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
VtePty *pty = VTE_PTY (object);
VtePtyPrivate *priv = pty->priv;
switch (property_id) {
case PROP_FLAGS:
priv->flags = (VtePtyFlags) g_value_get_flags(value);
break;
case PROP_FD:
priv->pty_fd = g_value_get_int(value);
priv->foreign = (priv->pty_fd != -1);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
}
static void
vte_pty_class_init (VtePtyClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->set_property = vte_pty_set_property;
object_class->get_property = vte_pty_get_property;
object_class->finalize = vte_pty_finalize;
/**
* VtePty:flags:
*
* Flags.
*/
g_object_class_install_property
(object_class,
PROP_FLAGS,
g_param_spec_flags ("flags", NULL, NULL,
VTE_TYPE_PTY_FLAGS,
VTE_PTY_DEFAULT,
(GParamFlags) (G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)));
/**
* VtePty:fd:
*
* The file descriptor of the PTY master.
*/
g_object_class_install_property
(object_class,
PROP_FD,
g_param_spec_int ("fd", NULL, NULL,
-1, G_MAXINT, -1,
(GParamFlags) (G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)));
}
/* public API */
/**
* vte_pty_error_quark:
*
* Error domain for VTE PTY errors. Errors in this domain will be from the #VtePtyError
* enumeration. See #GError for more information on error domains.
*
* Returns: the error domain for VTE PTY errors
*/
GQuark
vte_pty_error_quark(void)
{
static GQuark quark = 0;
if (G_UNLIKELY (quark == 0))
quark = g_quark_from_static_string("vte-pty-error");
return quark;
}
/**
* vte_pty_new_sync: (constructor)
* @flags: flags from #VtePtyFlags
* @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: (allow-none): return location for a #GError, or %NULL
*
* Allocates a new pseudo-terminal.
*
* You can later use fork() or the g_spawn_async() family of functions
* to start a process on the PTY.
*
* If using fork(), you MUST call vte_pty_child_setup() in the child.
*
* If using g_spawn_async() and friends, you MUST either use
* vte_pty_child_setup() directly as the child setup function, or call
* vte_pty_child_setup() from your own child setup function supplied.
*
* When using vte_terminal_spawn_sync() with a custom child setup
* function, vte_pty_child_setup() will be called before the supplied
* function; you must not call it again.
*
* Also, you MUST pass the %G_SPAWN_DO_NOT_REAP_CHILD flag.
*
* Returns: (transfer full): a new #VtePty, or %NULL on error with @error filled in
*/
VtePty *
vte_pty_new_sync (VtePtyFlags flags,
GCancellable *cancellable,
GError **error)
{
return (VtePty *) g_initable_new (VTE_TYPE_PTY,
cancellable,
error,
"flags", flags,
NULL);
}
/**
* vte_pty_new_foreign_sync: (constructor)
* @fd: a file descriptor to the PTY
* @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: (allow-none): return location for a #GError, or %NULL
*
* Creates a new #VtePty for the PTY master @fd.
*
* No entry will be made in the lastlog, utmp or wtmp system files.
*
* Note that the newly created #VtePty will take ownership of @fd
* and close it on finalize.
*
* Returns: (transfer full): a new #VtePty for @fd, or %NULL on error with @error filled in
*/
VtePty *
vte_pty_new_foreign_sync (int fd,
GCancellable *cancellable,
GError **error)
{
g_return_val_if_fail(fd >= 0, NULL);
return (VtePty *) g_initable_new (VTE_TYPE_PTY,
cancellable,
error,
"fd", fd,
NULL);
}
/**
* vte_pty_get_fd:
* @pty: a #VtePty
*
* Returns: the file descriptor of the PTY master in @pty. The
* file descriptor belongs to @pty and must not be closed of have
* its flags changed
*/
int
vte_pty_get_fd (VtePty *pty)
{
VtePtyPrivate *priv;
g_return_val_if_fail(VTE_IS_PTY(pty), -1);
priv = pty->priv;
g_return_val_if_fail(priv->pty_fd != -1, -1);
return priv->pty_fd;
}
typedef struct {
VtePty* m_pty;
char* m_working_directory;
char** m_argv;
char** m_envv;
GSpawnFlags m_spawn_flags;
GSpawnChildSetupFunc m_child_setup;
gpointer m_child_setup_data;
GDestroyNotify m_child_setup_data_destroy;
int m_timeout;
} AsyncSpawnData;
static AsyncSpawnData*
async_spawn_data_new (VtePty* pty,
char const* working_directory,
char** argv,
char** envv,
GSpawnFlags spawn_flags,
GSpawnChildSetupFunc child_setup,
gpointer child_setup_data,
GDestroyNotify child_setup_data_destroy,
int timeout)
{
auto data = g_new(AsyncSpawnData, 1);
data->m_pty = (VtePty*)g_object_ref(pty);
data->m_working_directory = g_strdup(working_directory);
data->m_argv = g_strdupv(argv);
data->m_envv = envv ? g_strdupv(envv) : nullptr;
data->m_spawn_flags = spawn_flags;
data->m_child_setup = child_setup;
data->m_child_setup_data = child_setup_data;
data->m_child_setup_data_destroy = child_setup_data_destroy;
data->m_timeout = timeout;
return data;
}
static void
async_spawn_data_free(gpointer data_)
{
AsyncSpawnData *data = reinterpret_cast<AsyncSpawnData*>(data_);
g_free(data->m_working_directory);
g_strfreev(data->m_argv);
g_strfreev(data->m_envv);
if (data->m_child_setup_data && data->m_child_setup_data_destroy)
data->m_child_setup_data_destroy(data->m_child_setup_data);
g_object_unref(data->m_pty);
g_free(data);
}
static void
async_spawn_run_in_thread(GTask *task,
gpointer object,
gpointer data_,
GCancellable *cancellable)
{
AsyncSpawnData *data = reinterpret_cast<AsyncSpawnData*>(data_);
GPid pid;
GError *error = NULL;
if (__vte_pty_spawn(data->m_pty,
data->m_working_directory,
data->m_argv,
data->m_envv,
(GSpawnFlags)data->m_spawn_flags,
data->m_child_setup, data->m_child_setup_data,
&pid,
data->m_timeout,
cancellable,
&error))
g_task_return_pointer(task, g_memdup(&pid, sizeof(pid)), g_free);
else
g_task_return_error(task, error);
}
/**
* vte_pty_spawn_async:
* @pty: a #VtePty
* @working_directory: (allow-none): the name of a directory the command should start
* in, or %NULL to use the current working directory
* @argv: (array zero-terminated=1) (element-type filename): child's argument vector
* @envv: (allow-none) (array zero-terminated=1) (element-type filename): a list of environment
* variables to be added to the environment before starting the process, or %NULL
* @spawn_flags: flags from #GSpawnFlags
* @child_setup: (allow-none) (scope async): an extra child setup function to run in the child just before exec(), or %NULL
* @child_setup_data: (closure child_setup): user data for @child_setup, or %NULL
* @child_setup_data_destroy: (destroy child_setup_data): a #GDestroyNotify for @child_setup_data, or %NULL
* @timeout: a timeout value in ms, or -1 to wait indefinitely
* @cancellable: (allow-none): a #GCancellable, or %NULL
*
* Starts the specified command under the pseudo-terminal @pty.
* The @argv and @envv lists should be %NULL-terminated.
* The "TERM" environment variable is automatically set to a default value,
* but can be overridden from @envv.
* @pty_flags controls logging the session to the specified system log files.
*
* Note that %G_SPAWN_DO_NOT_REAP_CHILD will always be added to @spawn_flags.
*
* Note that all open file descriptors will be closed in the child. If you want
* to keep some file descriptor open for use in the child process, you need to
* use a child setup function that unsets the FD_CLOEXEC flag on that file
* descriptor.
*
* See vte_pty_new(), g_spawn_async() and vte_terminal_watch_child() for more information.
*
* Since: 0.48
*/
void
vte_pty_spawn_async(VtePty *pty,
const char *working_directory,
char **argv,
char **envv,
GSpawnFlags spawn_flags,
GSpawnChildSetupFunc child_setup,
gpointer child_setup_data,
GDestroyNotify child_setup_data_destroy,
int timeout,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
g_return_if_fail(argv != nullptr);
g_return_if_fail(!child_setup_data || child_setup);
g_return_if_fail(!child_setup_data_destroy || child_setup_data);
g_return_if_fail(cancellable == nullptr || G_IS_CANCELLABLE (cancellable));
g_return_if_fail(callback);
auto data = async_spawn_data_new(pty,
working_directory, argv, envv,
spawn_flags,
child_setup, child_setup_data, child_setup_data_destroy,
timeout);
auto task = g_task_new(pty, cancellable, callback, user_data);
g_task_set_source_tag(task, (void*)vte_pty_spawn_async);
g_task_set_task_data(task, data, async_spawn_data_free);
g_task_run_in_thread(task, async_spawn_run_in_thread);
g_object_unref(task);
}
/**
* vte_pty_spawn_finish:
* @pty: a #VtePty
* @result: a #GAsyncResult
* @child_pid: (out) (allow-none) (transfer full): a location to store the child PID, or %NULL
* @error: (allow-none): return location for a #GError, or %NULL
*
* Returns: %TRUE on success, or %FALSE on error with @error filled in
*
* Since: 0.48
*/
gboolean
vte_pty_spawn_finish(VtePty *pty,
GAsyncResult *result,
GPid *child_pid /* out */,
GError **error)
{
g_return_val_if_fail (VTE_IS_PTY (pty), FALSE);
g_return_val_if_fail (G_IS_TASK (result), FALSE);
g_return_val_if_fail(error == nullptr || *error == nullptr, FALSE);
gpointer pidptr = g_task_propagate_pointer(G_TASK(result), error);
if (pidptr == nullptr) {
if (child_pid)
*child_pid = -1;
return FALSE;
}
if (child_pid)
*child_pid = *(GPid*)pidptr;
if (error)
*error = nullptr;
g_free(pidptr);
return TRUE;
}
Executing(%prep): /usr/sgug/bin/sh -e /usr/sgug/var/tmp/rpm-tmp.983322
Patch #100 (vte291-cntnr-precmd-preexec-scroll.patch):
patching file src/marshal.list
patching file src/vte.cc
patching file src/vte/vteterminal.h
patching file src/vtegtk.cc
patching file src/vtegtk.hh
patching file src/vteinternal.hh
patching file src/vteseq.cc
patching file src/vte.sh
patching file bindings/vala/app.vala
patching file src/app/app.cc
patching file doc/reference/vte-sections.txt
patching file src/vte.cc
patching file src/vte/vteterminal.h
patching file src/vtegtk.cc
patching file src/vtegtk.hh
patching file src/vteinternal.hh
patching file bindings/vala/app.vala
patching file src/app/app.cc
patching file src/vte.cc
patching file src/vte.sh
patching file src/vte/vteterminal.h
patching file src/vtegtk.cc
patching file src/vtegtk.hh
patching file src/vteinternal.hh
patching file src/vteseq.cc
patching file bindings/vala/app.vala
patching file src/app/app.cc
patching file src/vte.cc
patching file src/vte.sh
patching file src/vte/vteterminal.h
patching file src/vtegtk.cc
patching file src/vtegtk.hh
patching file src/vteinternal.hh
patching file src/vteseq.cc
patching file bindings/vala/app.vala
patching file src/app/app.cc
patching file src/vte.cc
patching file src/vte/vteterminal.h
patching file src/vtegtk.cc
patching file src/vtegtk.hh
patching file src/vteinternal.hh
patching file src/vteseq.cc
Patch #200 (vte291.sgifixes.patch):
patching file meson.build
patching file src/pty.cc
Executing(%build): /usr/sgug/bin/sh -e /usr/sgug/var/tmp/rpm-tmp.983322
The Meson build system
Version: 0.54.999
Source dir: /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3
Build dir: /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/mips-sgug-irix
Build type: native build
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Project name: vte
Project version: 0.58.3
Using 'CFLAGS' from environment with value: '-O0 -g3'
Using 'LDFLAGS' from environment with value: '-Wl,-z,relro -Wl,-z,now -Wl,-rpath -Wl,/usr/sgug/lib32 -Wl,-rpath -Wl,/usr/lib32'
Using 'CPPFLAGS' from environment with value: '-D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS'
Using 'CXXFLAGS' from environment with value: '-O3 -g'
Using 'LDFLAGS' from environment with value: '-Wl,-z,relro -Wl,-z,now -Wl,-rpath -Wl,/usr/sgug/lib32 -Wl,-rpath -Wl,/usr/lib32'
Using 'CPPFLAGS' from environment with value: '-D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS'
Using 'CFLAGS' from environment with value: '-O0 -g3'
Using 'LDFLAGS' from environment with value: '-Wl,-z,relro -Wl,-z,now -Wl,-rpath -Wl,/usr/sgug/lib32 -Wl,-rpath -Wl,/usr/lib32'
Using 'CPPFLAGS' from environment with value: '-D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS'
C compiler for the host machine: cc (gcc 9.2.0 "mips-sgi-irix6.5-gcc (GCC) 9.2.0 20190812 (sgugver-0.2.0-mips3-ng)")
C linker for the host machine: cc ld.bfd 2.23.2
Using 'CXXFLAGS' from environment with value: '-O3 -g'
Using 'LDFLAGS' from environment with value: '-Wl,-z,relro -Wl,-z,now -Wl,-rpath -Wl,/usr/sgug/lib32 -Wl,-rpath -Wl,/usr/lib32'
Using 'CPPFLAGS' from environment with value: '-D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS'
C++ compiler for the host machine: c++ (gcc 9.2.0 "c++ (GCC) 9.2.0 20190812 (sgugver-0.2.0-mips3-ng)")
C++ linker for the host machine: c++ ld.bfd 2.23.2
Host machine cpu family: mips
Host machine cpu: mips
Has header "locale.h" : YES
Has header "pty.h" : NO
Has header "stropts.h" : YES
Has header "sys/resource.h" : YES
Has header "sys/select.h" : YES
Has header "sys/syslimits.h" : NO
Has header "sys/termios.h" : YES
Has header "sys/types.h" : YES
Has header "sys/wait.h" : YES
Has header "termios.h" : YES
Has header "util.h" : NO
Has header "wchar.h" : YES
Header <sys/ioctl.h> has symbol "TIOCGWINSZ" : YES
Checking for function "fork" : YES
Checking for function "grantpt" : YES
Checking for function "ptsname" : YES
Checking for function "tcgetattr" : YES
Checking for function "unlockpt" : YES
Checking for function "cfmakeraw" : NO
Checking for function "getpgid" : YES
Checking for function "setpgid" : YES
Checking for function "setsid" : YES
Checking for function "tcsetattr" : YES
Checking for function "explicit_bzero" : NO
Checking for function "pread" : YES
Checking for function "pwrite" : YES
Checking for function "strchrnul" : NO
Checking for function "fdwalk" : NO
Library m found: YES
Checking for function "ceil" with dependency -lm: YES
Checking for function "floor" with dependency -lm: YES
Checking for function "round" with dependency -lm: YES
Compiler for C supports arguments -Wall: YES
Compiler for C supports arguments -Wextra: YES
Compiler for C supports arguments -Wcast-align: YES
Compiler for C supports arguments -Wcast-function-type: YES
Compiler for C supports arguments -Wclobbered: YES
Compiler for C supports arguments -Wempty-body: YES
Compiler for C supports arguments -Wendif-labels: YES
Compiler for C supports arguments -Werror=init-self: YES
Compiler for C supports arguments -Werror=missing-include-dirs: YES
Compiler for C supports arguments -Werror=pointer-arith: YES
Compiler for C supports arguments -Wfloat-equal: YES
Compiler for C supports arguments -Wignored-qualifiers: YES
Compiler for C supports arguments -Winvalid-pch: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmisleading-indentation: YES
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wmissing-field-initializers: YES
Compiler for C supports arguments -Wmissing-format-attribute: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wno-address-of-packed-member -Waddress-of-packed-member: YES
Compiler for C supports arguments -Wno-deprecated-declarations -Wdeprecated-declarations: YES
Compiler for C supports arguments -Wno-missing-field-initializers -Wmissing-field-initializers: YES
Compiler for C supports arguments -Wno-packed -Wpacked: YES
Compiler for C supports arguments -Wno-switch-enum -Wswitch-enum: YES
Compiler for C supports arguments -Wno-unused-parameter -Wunused-parameter: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wshift-negative-value: YES
Compiler for C supports arguments -Wsign-compare: YES
Compiler for C supports arguments -Wstrict-aliasing=2: YES
Compiler for C supports arguments -Wtype-limits: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wuninitialized: YES
Compiler for C supports arguments -Wuninitialized: YES
Compiler for C supports arguments -Wunsafe-loop-optimizations: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Wunused-but-set-parameter: YES
Compiler for C supports arguments -Wunused-but-set-variable: YES
Compiler for C supports arguments -Wunused-function: YES
Compiler for C supports arguments -Wunused-label: YES
Compiler for C supports arguments -Wunused-local-typedefs: YES
Compiler for C supports arguments -Wunused-value: YES
Compiler for C supports arguments -Wunused-variable: YES
Compiler for C supports arguments -Wvla: YES
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -fdiagnostics-show-option: YES
Compiler for C supports arguments -fno-common: YES
Compiler for C supports arguments -fno-semantic-interposition: YES
Compiler for C supports arguments -fstack-protector: YES
Compiler for C supports arguments -fstack-protector-strong: YES
Compiler for C supports arguments -fno-strict-aliasing: YES
Compiler for C supports arguments -Waggregate-return: YES
Compiler for C supports arguments -Werror=implicit-function-declaration: YES
Compiler for C supports arguments -Werror=missing-prototypes: YES
Compiler for C supports arguments -Wimplicit: YES
Compiler for C supports arguments -Wimplicit-fallthrough=3: YES
Compiler for C supports arguments -Wmissing-parameter-type: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wold-style-declaration: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Woverride-init: YES
Compiler for C supports arguments -Wsign-compare: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C++ supports arguments -Wall: YES
Compiler for C++ supports arguments -Wextra: YES
Compiler for C++ supports arguments -Wcast-align: YES
Compiler for C++ supports arguments -Wcast-function-type: YES
Compiler for C++ supports arguments -Wclobbered: YES
Compiler for C++ supports arguments -Wempty-body: YES
Compiler for C++ supports arguments -Wendif-labels: YES
Compiler for C++ supports arguments -Werror=init-self: YES
Compiler for C++ supports arguments -Werror=missing-include-dirs: YES
Compiler for C++ supports arguments -Werror=pointer-arith: YES
Compiler for C++ supports arguments -Wfloat-equal: YES
Compiler for C++ supports arguments -Wignored-qualifiers: YES
Compiler for C++ supports arguments -Winvalid-pch: YES
Compiler for C++ supports arguments -Wlogical-op: YES
Compiler for C++ supports arguments -Wmisleading-indentation: YES
Compiler for C++ supports arguments -Wmissing-declarations: YES
Compiler for C++ supports arguments -Wmissing-field-initializers: YES
Compiler for C++ supports arguments -Wmissing-format-attribute: YES
Compiler for C++ supports arguments -Wmissing-include-dirs: YES
Compiler for C++ supports arguments -Wmissing-noreturn: YES
Compiler for C++ supports arguments -Wno-address-of-packed-member -Waddress-of-packed-member: YES
Compiler for C++ supports arguments -Wno-deprecated-declarations -Wdeprecated-declarations: YES
Compiler for C++ supports arguments -Wno-missing-field-initializers -Wmissing-field-initializers: YES
Compiler for C++ supports arguments -Wno-packed -Wpacked: YES
Compiler for C++ supports arguments -Wno-switch-enum -Wswitch-enum: YES
Compiler for C++ supports arguments -Wno-unused-parameter -Wunused-parameter: YES
Compiler for C++ supports arguments -Wshadow: YES
Compiler for C++ supports arguments -Wshift-negative-value: YES
Compiler for C++ supports arguments -Wsign-compare: YES
Compiler for C++ supports arguments -Wstrict-aliasing=2: YES
Compiler for C++ supports arguments -Wtype-limits: YES
Compiler for C++ supports arguments -Wundef: YES
Compiler for C++ supports arguments -Wuninitialized: YES
Compiler for C++ supports arguments -Wuninitialized: YES
Compiler for C++ supports arguments -Wunsafe-loop-optimizations: YES
Compiler for C++ supports arguments -Wunused: YES
Compiler for C++ supports arguments -Wunused-but-set-parameter: YES
Compiler for C++ supports arguments -Wunused-but-set-variable: YES
Compiler for C++ supports arguments -Wunused-function: YES
Compiler for C++ supports arguments -Wunused-label: YES
Compiler for C++ supports arguments -Wunused-local-typedefs: YES
Compiler for C++ supports arguments -Wunused-value: YES
Compiler for C++ supports arguments -Wunused-variable: YES
Compiler for C++ supports arguments -Wvla: YES
Compiler for C++ supports arguments -Wwrite-strings: YES
Compiler for C++ supports arguments -fdiagnostics-show-option: YES
Compiler for C++ supports arguments -fno-common: YES
Compiler for C++ supports arguments -fno-semantic-interposition: YES
Compiler for C++ supports arguments -fstack-protector: YES
Compiler for C++ supports arguments -fstack-protector-strong: YES
Compiler for C++ supports arguments -fno-strict-aliasing: YES
Compiler for C++ supports arguments -Wimplicit-fallthrough=5: YES
Compiler for C++ supports arguments -Wnon-virtual-dtor: YES
Compiler for C++ supports arguments -Wstrict-null-sentinel: YES
Compiler for C++ supports arguments -fno-exceptions: YES
Compiler for C++ supports arguments -fno-rtti: YES
Compiler for C++ supports arguments -fvisibility-inlines-hidden: YES
Compiler for C++ supports arguments -fvisibility=hidden: YES
Compiler for C++ supports arguments -fno-exceptions: YES
Compiler for C++ supports arguments -fno-rtti: YES
Compiler for C++ supports arguments -fvisibility-inlines-hidden: YES
Compiler for C++ supports arguments -fvisibility=hidden: YES
meson.build:350: WARNING: Consider using the built-in warning_level option instead of using "-Wall".
meson.build:350: WARNING: Consider using the built-in warning_level option instead of using "-Wextra".
meson.build:351: WARNING: Consider using the built-in warning_level option instead of using "-Wall".
meson.build:351: WARNING: Consider using the built-in warning_level option instead of using "-Wextra".
Compiler for C supports link arguments -Wl,-Bsymbolic-functions: YES
Compiler for C++ supports link arguments -Wl,-Bsymbolic-functions: YES
Found pkg-config: /usr/sgug/bin/pkg-config (0.29.2)
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency gio-2.0 found: YES 2.62.6
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency glib-2.0 found: YES 2.62.6
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency gobject-2.0 found: YES 2.62.6
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency pango found: YES 1.43.0
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency libpcre2-8 found: YES 10.35
Run-time dependency threads found: YES
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency zlib found: YES 1.2.11
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency fribidi found: YES 1.0.5
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency gnutls found: YES 3.6.14
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency gtk+-3.0 found: YES 3.24.13
Configuring config.h using configuration
WARNING: Project targeting '>= 0.49.0' but tried to use feature introduced in '0.50.0': install arg in configure_file.
Configuring vteversion.h using configuration
Program box_drawing_generate.sh found: YES (/usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/src/box_drawing_generate.sh)
Found pkg-config: /usr/sgug/bin/pkg-config (0.29.2)
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Program check-doc-syntax.sh found: YES (/usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/src/check-doc-syntax.sh)
Program bash found: YES (/usr/sgug/bin/bash)
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Run-time dependency gobject-introspection-1.0 found: YES 1.62.0
Using 'PKG_CONFIG_PATH' from environment with value: ':/usr/sgug/lib32/pkgconfig:/usr/sgug/share/pkgconfig'
Build-time dependency gobject-introspection-1.0 found: YES 1.62.0
Program g_ir_scanner found: YES (/usr/sgug/bin/g-ir-scanner)
Program g_ir_compiler found: YES (/usr/sgug/bin/g-ir-compiler)
bindings/vala/meson.build:20: WARNING: add_languages is missing native:, assuming languages are wanted for both host and build.
Vala compiler for the host machine: valac (valac 0.46.10)
Library posix found: YES
Configuring Makefile using configuration
Configuring .gitignore with command
Message:
Configuration for VTE:
Version: 0.58.3
C compiler: gcc
C++ compiler: gcc
Coverage: false
Debug: false
Docs: false
FRIBIDI: true
GNUTLS: true
GTK+ 3.0: true
GTK+ 4.0: false
IConv: true
GIR: true
Vala: true
Prefix: /usr/sgug
Build targets in project: 35
WARNING: Project specifies a minimum meson_version '>= 0.49.0' but uses features which were added in newer versions:
* 0.50.0: {'install arg in configure_file'}
Option buildtype is: plain [default: release]
Found ninja-1.9.0 at /usr/sgug/bin/ninja
ninja: Entering directory `mips-sgug-irix'
[1/86] glib-compile-resources ../src/vte.gresource.xml --sourcedir ../src --c-name _vte --internal --generate --target src/vteresources.c --dependency-file src/vteresources.c.d
[2/86] glib-compile-resources ../src/vte.gresource.xml --sourcedir ../src --c-name _vte --internal --generate --target src/vteresources.h
[3/86] /usr/sgug/bin/glib-genmarshal --prefix _vte_marshal --internal --valist-marshallers --output src/marshal.c --body ../src/marshal.list --include-header marshal.h
INFO: Reading ../src/marshal.list...
[4/86] /usr/sgug/bin/glib-genmarshal --prefix _vte_marshal --internal --valist-marshallers --output src/marshal.h --pragma-once --header ../src/marshal.list
INFO: Reading ../src/marshal.list...
[5/86] /usr/sgug/bin/meson --internal exe --capture src/vte/vtetypebuiltins.h -- /usr/sgug/bin/glib-mkenums --template /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/mips-sgug-irix/../src/vte/../vtetypebuiltins.h.template /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/mips-sgug-irix/../src/vte/vtedeprecated.h /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/mips-sgug-irix/../src/vte/vteenums.h
[6/86] /usr/sgug/bin/meson --internal exe --capture src/box_drawing.h -- /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/src/box_drawing_generate.sh ../src/box_drawing.txt
[7/86] cc -Isrc/reflect-textview.p -Isrc -I../src -I. -I.. -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/gdk-pixbuf-2.0 -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu11 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Waggregate-return -Werror=implicit-function-declaration -Werror=missing-prototypes -Wimplicit -Wimplicit-fallthrough=3 -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Woverride-init -Wsign-compare -Wstrict-prototypes -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O0 -g3 -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -pthread -DUSE_TEXT_VIEW -MD -MQ src/reflect-textview.p/reflect.c.o -MF 'src/reflect-textview.p/reflect.c.o.d' -o src/reflect-textview.p/reflect.c.o -c ../src/reflect.c
[8/86] cc -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu11 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Waggregate-return -Werror=implicit-function-declaration -Werror=missing-prototypes -Wimplicit -Wimplicit-fallthrough=3 -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Woverride-init -Wsign-compare -Wstrict-prototypes -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O0 -g3 -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread -MD -MQ src/libvte-2.91.so.0.5800.3.p/meson-generated_.._marshal.c.o -MF 'src/libvte-2.91.so.0.5800.3.p/meson-generated_.._marshal.c.o.d' -o src/libvte-2.91.so.0.5800.3.p/meson-generated_.._marshal.c.o -c src/marshal.c
[9/86] cc -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu11 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Waggregate-return -Werror=implicit-function-declaration -Werror=missing-prototypes -Wimplicit -Wimplicit-fallthrough=3 -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Woverride-init -Wsign-compare -Wstrict-prototypes -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O0 -g3 -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread -MD -MQ src/libvte-2.91.so.0.5800.3.p/meson-generated_.._vteresources.c.o -MF 'src/libvte-2.91.so.0.5800.3.p/meson-generated_.._vteresources.c.o.d' -o src/libvte-2.91.so.0.5800.3.p/meson-generated_.._vteresources.c.o -c src/vteresources.c
[10/86] /usr/sgug/bin/meson --internal exe --capture src/vte/vtetypebuiltins.cc -- /usr/sgug/bin/glib-mkenums --template /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/mips-sgug-irix/../src/vte/../vtetypebuiltins.cc.template /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/mips-sgug-irix/../src/vte/vtedeprecated.h /usr/people/edodd/rpmbuild/BUILD/vte-0.58.3/mips-sgug-irix/../src/vte/vteenums.h
[11/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/debug.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/debug.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/debug.cc.o -c ../src/debug.cc
[12/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/utf8.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/utf8.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/utf8.cc.o -c ../src/utf8.cc
[13/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/parser.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/parser.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/parser.cc.o -c ../src/parser.cc
[14/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/chunk.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/chunk.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/chunk.cc.o -c ../src/chunk.cc
[15/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/meson-generated_.._vte_vtetypebuiltins.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/meson-generated_.._vte_vtetypebuiltins.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/meson-generated_.._vte_vtetypebuiltins.cc.o -c src/vte/vtetypebuiltins.cc
[16/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/keymap.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/keymap.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/keymap.cc.o -c ../src/keymap.cc
[17/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/bidi.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/bidi.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/bidi.cc.o -c ../src/bidi.cc
../src/bidi.cc: In member function 'void vte::base::BidiRow::set_width(vte::grid::column_t)':
../src/bidi.cc:85:30: warning: comparison of integer expressions of different signedness: 'vte::grid::column_t' {aka 'long int'} and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare]
../src/bidi.cc: In member function 'void vte::base::BidiRunner::explicit_line_shape(vte::grid::row_t)':
../src/bidi.cc:262:70: warning: cast from 'gchar*' {aka 'char*'} to 'FriBidiChar*' {aka 'unsigned int*'} increases required alignment of target type [-Wcast-align]
../src/bidi.cc: In member function 'bool vte::base::BidiRunner::implicit_paragraph(vte::grid::row_t, vte::grid::row_t, bool)':
../src/bidi.cc:562:62: warning: cast from 'gchar*' {aka 'char*'} to 'FriBidiChar*' {aka 'unsigned int*'} increases required alignment of target type [-Wcast-align]
../src/bidi.cc:563:62: warning: cast from 'gchar*' {aka 'char*'} to 'FriBidiStrIndex*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
../src/bidi.cc:564:70: warning: cast from 'gchar*' {aka 'char*'} to 'FriBidiStrIndex*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
[18/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/reaper.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/reaper.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/reaper.cc.o -c ../src/reaper.cc
[19/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/ringview.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/ringview.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/ringview.cc.o -c ../src/ringview.cc
[20/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/pty.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/pty.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/pty.cc.o -c ../src/pty.cc
FAILED: src/libvte-2.91.so.0.5800.3.p/pty.cc.o
c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/pty.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/pty.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/pty.cc.o -c ../src/pty.cc
distcc[1982616] ERROR: compile ../src/pty.cc on 192.168.0.107:3632 failed
distcc[1982616] (dcc_build_somewhere) Warning: remote compilation of '../src/pty.cc' failed, retrying locally
distcc[1982616] Warning: failed to distribute ../src/pty.cc to 192.168.0.107:3632, running locally instead
../src/pty.cc: In function 'gboolean vte_pty_set_size(VtePty*, int, int, GError**)':
../src/pty.cc:509:17: error: aggregate 'vte_pty_set_size(VtePty*, int, int, GError**)::winsize size' has incomplete type and cannot be defined
509 | struct winsize size;
| ^~~~
../src/pty.cc:523:22: error: 'TIOCSWINSZ' was not declared in this scope
523 | ret = ioctl(master, TIOCSWINSZ, &size);
| ^~~~~~~~~~
../src/pty.cc: In function 'gboolean vte_pty_get_size(VtePty*, int*, int*, GError**)':
../src/pty.cc:560:17: error: aggregate 'vte_pty_get_size(VtePty*, int*, int*, GError**)::winsize size' has incomplete type and cannot be defined
560 | struct winsize size;
| ^~~~
../src/pty.cc:569:22: error: 'TIOCGWINSZ' was not declared in this scope
569 | ret = ioctl(master, TIOCGWINSZ, &size);
| ^~~~~~~~~~
../src/pty.cc: In function 'int fd_set_cpkt(int)':
../src/pty.cc:623:26: error: 'TIOCPKT' was not declared in this scope; did you mean 'TICK'?
623 | return ioctl(fd, TIOCPKT, &one);
| ^~~~~~~
| TICK
../src/pty.cc: In function 'int _vte_pty_open_posix()':
../src/pty.cc:667:60: error: 'O_CLOEXEC' was not declared in this scope; did you mean 'FD_CLOEXEC'?
667 | fd = posix_openpt(O_RDWR | O_NOCTTY | O_NONBLOCK | O_CLOEXEC);
| ^~~~~~~~~
| FD_CLOEXEC
../src/pty.cc:667:14: error: 'posix_openpt' was not declared in this scope
667 | fd = posix_openpt(O_RDWR | O_NOCTTY | O_NONBLOCK | O_CLOEXEC);
| ^~~~~~~~~~~~
distcc[1982616] ERROR: compile ../src/pty.cc on localhost failed
[21/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/vteaccess.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/vteaccess.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/vteaccess.cc.o -c ../src/vteaccess.cc
[22/86] c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/vte.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/vte.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/vte.cc.o -c ../src/vte.cc
FAILED: src/libvte-2.91.so.0.5800.3.p/vte.cc.o
c++ -Isrc/libvte-2.91.so.0.5800.3.p -Isrc -I../src -I. -I.. -Isrc/vte -I../src/vte -I/usr/sgug/include/glib-2.0 -I/usr/sgug/lib32/glib-2.0/include -I/usr/sgug/include -I/usr/sgug/include/pango-1.0 -I/usr/sgug/include/fribidi -I/usr/sgug/include/harfbuzz -I/usr/sgug/include/cairo -I/usr/sgug/include/pixman-1 -I/usr/sgug/include/freetype2 -I/usr/sgug/include/libpng16 -I/usr/sgug/include/p11-kit-1 -I/usr/sgug/include/at-spi2-atk/2.0 -I/usr/sgug/include/at-spi-2.0 -I/usr/sgug/include/dbus-1.0 -I/usr/sgug/lib32/dbus-1.0/include -I/usr/sgug/include/gtk-3.0 -I/usr/sgug/include/gio-unix-2.0 -I/usr/sgug/include/atk-1.0 -I/usr/sgug/include/gdk-pixbuf-2.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu++17 -Wall -Wextra -Wcast-align -Wcast-function-type -Wclobbered -Wempty-body -Wendif-labels -Werror=init-self -Werror=missing-include-dirs -Werror=pointer-arith -Wfloat-equal -Wignored-qualifiers -Winvalid-pch -Wlogical-op -Wmisleading-indentation -Wmissing-declarations -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wno-address-of-packed-member -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-packed -Wno-switch-enum -Wno-unused-parameter -Wshadow -Wshift-negative-value -Wsign-compare -Wstrict-aliasing=2 -Wtype-limits -Wundef -Wuninitialized -Wuninitialized -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-value -Wunused-variable -Wvla -Wwrite-strings -fdiagnostics-show-option -fno-common -fno-semantic-interposition -fstack-protector -fstack-protector-strong -fno-strict-aliasing -Wimplicit-fallthrough=5 -Wnon-virtual-dtor -Wstrict-null-sentinel -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -fvisibility=hidden -Werror=format=2 -Werror=format-nonliteral -Werror=format-security -O3 -g -D_SGI_SOURCE -D_SGI_MP_SOURCE -D_SGI_REENTRANT_FUNCTIONS -fPIC -pthread '-DG_LOG_DOMAIN="VTE"' '-DLOCALEDIR="/usr/sgug/share/locale"' -DGLIB_DISABLE_DEPRECATION_WARNINGS -DVTE_COMPILATION -UPARSER_INCLUDE_NOP -MD -MQ src/libvte-2.91.so.0.5800.3.p/vte.cc.o -MF 'src/libvte-2.91.so.0.5800.3.p/vte.cc.o.d' -o src/libvte-2.91.so.0.5800.3.p/vte.cc.o -c ../src/vte.cc
distcc[1984022] ERROR: compile ../src/vte.cc on 192.168.0.107:3632 failed
distcc[1984022] (dcc_build_somewhere) Warning: remote compilation of '../src/vte.cc' failed, retrying locally
distcc[1984022] Warning: failed to distribute ../src/vte.cc to 192.168.0.107:3632, running locally instead
In file included from /usr/sgug/lib32/glib-2.0/include/glibconfig.h:9,
from /usr/sgug/include/glib-2.0/glib/gtypes.h:32,
from /usr/sgug/include/glib-2.0/glib/galloca.h:32,
from /usr/sgug/include/glib-2.0/glib.h:30,
from ../src/vte.cc:33:
../src/vte.cc: In member function 'void vte::terminal::Terminal::cleanup_fragments(long int, long int)':
../src/vte.cc:2803:59: warning: comparison of integer expressions of different signedness: 'uint32_t' {aka 'unsigned int'} and 'long int' [-Wsign-compare]
2803 | g_assert(cell_col->attr.columns() > end - col);
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/usr/sgug/include/glib-2.0/glib/gmacros.h:928:8: note: in definition of macro '_G_BOOLEAN_EXPR'
928 | if (expr) \
| ^~~~
/usr/sgug/include/glib-2.0/glib/gtestutils.h:164:49: note: in expansion of macro 'G_LIKELY'
164 | if G_LIKELY (expr) ; else \
| ^~~~~~~~
../src/vte.cc:2803:25: note: in expansion of macro 'g_assert'
2803 | g_assert(cell_col->attr.columns() > end - col);
| ^~~~~~~~
../src/vte.cc: In member function 'void vte::terminal::Terminal::child_watch_done(pid_t, int)':
../src/vte.cc:3292:37: error: format '%d' expects argument of type 'int', but argument 2 has type 'pid_t' {aka 'long int'} [-Werror=format=]
3292 | g_printerr ("Child[%d] exited with status %d\n",
| ~^
| |
| int
| %ld
3293 | pid, status);
| ~~~
| |
| pid_t {aka long int}
../src/vte.cc:3296:45: error: format '%d' expects argument of type 'int', but argument 2 has type 'pid_t' {aka 'long int'} [-Werror=format=]
3296 | g_printerr ("Child[%d] exit code %d.\n",
| ~^
| |
| int
| %ld
3297 | pid, WEXITSTATUS (status));
| ~~~
| |
| pid_t {aka long int}
../src/vte.cc:3299:45: error: format '%d' expects argument of type 'int', but argument 2 has type 'pid_t' {aka 'long int'} [-Werror=format=]
3299 | g_printerr ("Child[%d] dies with signal %d.\n",
| ~^
| |
| int
| %ld
3300 | pid, WTERMSIG (status));
| ~~~
| |
| pid_t {aka long int}
../src/vte.cc: In member function 'void vte::terminal::Terminal::process_incoming()':
../src/vte.cc:3860:77: error: format '%lc' expects argument of type 'wint_t', but argument 4 has type 'uint32_t' {aka 'unsigned int'} [-Werror=format=]
3860 | g_snprintf(c_buf, sizeof(c_buf), "%lc", c);
| ~~^ ~
| | |
| | uint32_t {aka unsigned int}
| long int
| %c
../src/vte.cc:3861:53: warning: unused variable 'wp_str' [-Wunused-variable]
3861 | char const* wp_str = g_unichar_isprint(c) ? c_buf : _vte_debug_sequence_to_string(c_buf, -1);
| ^~~~~~
../src/vte.cc: In member function 'bool vte::terminal::Terminal::pty_io_read(GIOChannel*, GIOCondition)':
../src/vte.cc:4130:66: error: 'TIOCPKT_STOP' was not declared in this scope; did you mean 'TIOCPKT_DOSTOP'?
4130 | if (pkt_header & TIOCPKT_STOP) {
| ^~~~~~~~~~~~
| TIOCPKT_DOSTOP
../src/vte.cc:4132:73: error: 'TIOCPKT_START' was not declared in this scope; did you mean 'TIOCPKT_DATA'?
4132 | } else if (pkt_header & TIOCPKT_START) {
| ^~~~~~~~~~~~~
| TIOCPKT_DATA
../src/vte.cc: In member function 'bool vte::terminal::Terminal::widget_key_press(GdkEventKey*)':
../src/vte.cc:4809:29: warning: cast from 'GdkEventKey*' {aka '_GdkEventKey*'} to 'GdkEvent*' {aka '_GdkEvent*'} increases required alignment of target type [-Wcast-align]
4809 | read_modifiers((GdkEvent*)event);
| ^~~~~
../src/vte.cc: In member function 'bool vte::terminal::Terminal::widget_key_release(GdkEventKey*)':
../src/vte.cc:5257:28: warning: cast from 'GdkEventKey*' {aka '_GdkEventKey*'} to 'GdkEvent*' {aka '_GdkEvent*'} increases required alignment of target type [-Wcast-align]
5257 | read_modifiers((GdkEvent*)event);
| ^~~~~
../src/vte.cc: In member function 'void vte::terminal::Terminal::widget_focus_in(GdkEventFocus*)':
../src/vte.cc:7426:28: warning: cast from 'GdkEventFocus*' {aka '_GdkEventFocus*'} to 'GdkEvent*' {aka '_GdkEvent*'} increases required alignment of target type [-Wcast-align]
7426 | read_modifiers((GdkEvent*)event);
| ^~~~~
../src/vte.cc: In member function 'void vte::terminal::Terminal::widget_focus_out(GdkEventFocus*)':
../src/vte.cc:7456:28: warning: cast from 'GdkEventFocus*' {aka '_GdkEventFocus*'} to 'GdkEvent*' {aka '_GdkEvent*'} increases required alignment of target type [-Wcast-align]
7456 | read_modifiers((GdkEvent*)event);
| ^~~~~
cc1plus: some warnings being treated as errors
distcc[1984022] ERROR: compile ../src/vte.cc on localhost failed
ninja: build stopped: subcommand failed.
RPM build errors:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment