Skip to content
Commits on Source (7)
*~
build/
vroot/
[submodule "src/keycodemapdb"]
path = subprojects/keycodemapdb
url = https://gitlab.com/keycodemap/keycodemapdb.git
<dan@berrange.com> <berrange@redhat.com>
<anthony@codemonkey.ws> <anthony@rhesus>
<anthony@codemonkey.ws> <anthony@squirrel>
<marcandre.lureau@gmail.com> <marcandre.lureau@redhat.com>
<jwendell@gnome.org> <wendell@bani.com.br>
......@@ -13,7 +13,6 @@ GTK VNC is currently maintained by
Patches have been received from
A S Alam <aalam@users.sf.net>
Adam Jackson <ajax@redhat.com>
Akom Chotiphantawanon <knight2000@gmail.com>
Alban Browaeys <prahal@yahoo.com>
......@@ -22,17 +21,20 @@ Algimantas Margevičius <gymka@mail.ru>
Andika Triwidada <andika@gmail.com>
Andre Klapper <a9016009@gmx.de>
Anthony Liguori <anthony@codemonkey.ws>
anthony@rhesus <anthony@codemonkey.ws>
anthony@squirrel <anthony@codemonkey.ws>
António Lima <amrlima@gmail.com>
Artem Rusanov <artem.rusanov@gmail.com>
A S Alam <aalam@users.sf.net>
Atsushi SAKAI <sakaia@jp.fujitsu.com>
Aurimas Černius <aurisc4@gmail.com>
Bruce Cowan <bcowan@fastmail.co.uk>
Carles Ferrando <carles.ferrando@gmail.com>
Cédric Valmary <cvalmary@yahoo.fr>
Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Christophe Fergeau <cfergeau@redhat.com>
Claude Paroz <claude@2xlibre.net>
Cole Robinson <crobinso@redhat.com>
Cédric Valmary <cvalmary@yahoo.fr>
Daniel Korostil <ted.korostiled@gmail.com>
Daniel Nylander <po@danielnylander.se>
Daniel P. Berrange <dan@berrange.com>
......@@ -50,13 +52,15 @@ Fran Diéguez <fran.dieguez@glug.es>
Gabor Kelemen <kelemeng@gnome.hu>
George Stefanakis <george.stefanakis@gmail.com>
Gil Forcada <gforcada@gnome.org>
gogo <trebelnik2@gmail.com>
Guido Günther <agx@sigxcpu.org>
GunChleoc <fios@foramnagaidhlig.net>
Håkon Enger <hakon.enger@gmail.com>
Halton Huo <halton.huo@sun.com>
Henrique P. Machado <zehrique@gmail.com>
Hiroyuki Kaguchi <fj7025cf@aa.jp.fujitsu.com>
Håkon Enger <hakon.enger@gmail.com>
Inaki Larranaga <dooteo@zundan.com>
Ján Tomko <jtomko@redhat.com>
John Haxby <john.haxby@oracle.com>
Jonh Wendell <jwendell@gnome.org>
Jorge González <jorgegonz@svn.gnome.org>
......@@ -95,8 +99,9 @@ Rico Tzschichholz <ricotz@t-online.de>
Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Samir Ribic <samir.ribic@etf.unsa.ba>
Saori Fukuta <fukuta.saori@jp.fujitsu.com>
Sasi Bhushan <sasi@swecha.net>
Sasi Bhushan Boddepalli <sasi@swecha.net>
Sasi Bhushan <sasi@swecha.net>
Sébastien Granjoux <seb.sfo@free.fr>
Seong-ho, Cho <darkcircle.0426@gmail.com>
Shushi Kurose <md81bird@hitaki.net>
Simos Xenitellis <simos@gnome.org>
......@@ -104,15 +109,11 @@ Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Stanislav Petrek <stanislav.petrek@gmail.com>
Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Steven Carr <Steven.Carr@scaa-usa.com>
Sébastien Granjoux <seb.sfo@free.fr>
Takeshi AIHANA <takeshi.aihana@gmail.com>
Victor Ibragimov <victor.ibragimov@gmail.com>
Victor Toso <me@victortoso.com>
Yaron Shahrabani <sh.yaron@gmail.com>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
anthony@rhesus <anthony@codemonkey.ws>
anthony@squirrel <anthony@codemonkey.ws>
gogo <trebelnik2@gmail.com>
Мирослав Николић <miroslavnikolic@rocketmail.com>
...send patches to get your name here...
......
GTK VNC Authors
===============
GTK VNC was initially written by:
Anthony Liguori <anthony@codemonkey.ws>
Daniel Berrange <dan@berrange.com>
John Wendell <jwendell@gnome.org>
GTK VNC is currently maintained by
Daniel Berrange <dan@berrange.com>
Patches have been received from
#authorslist#
...send patches to get your name here...
-- End
2019-08-07 Daniel P. Berrangé <berrange@redhat.com>
Update NEWS for 1.0.0 release
rpm: make gtk3 sub-RPMs obsolete the gtk2 sub-RPMs
Adding Obsoletes: lines ensures the GTK2 version of gtk-vnc gets erased
during upgrade.
2019-08-06 Piotr Drąg <piotrdrag@gmail.com>
Update POTFILES.skip
2019-08-06 Daniel P. Berrangé <berrange@redhat.com>
build: drop autotools build recipes
build: switch to use meson for making releases
build: switch RPM spec builds to use meson instead of autotools
build: add initial meson build recipes
2019-08-05 Daniel P. Berrangé <berrange@redhat.com>
build: add missing vncpixelformat.c file to introspection
tests: annotate unused parameters
build: fix typo in gir package name
build: install the cairo header file
src: fix arg name consistency in gtk-doc comments
build: drop extra release tag from RPM specs
build: use #ifdef instead of #if for WITH_UCONTEXT check
build: remove checks for pwd.h and termios.h
Simply use a win32 platform check for these headers
build: rename included keycodemapdb files to have .h ext
These files are not headers, they are source that is included from other
source files.
build: remove long obsolete link-warning.h file
build: move keycodemapdb submodule
Move the submodule into the subprojects directory to match what meson
expects.
Drop support for libview in example program
The libview project is abandonware with no commit upstream since 2011
and no support for GTK3. Since we dropped GTK2 there's no reason to
keep libview support.
2019-05-03 Daniel P. Berrangé <berrange@redhat.com>
rpm: always build with vala enabled
rpm: always build with gir enabled
Delete support for GTK2
Refresh maint.mk from gnulib
Allow for writes to fail in server test
There is a race condition between the client and the server code. Once
the client has detected an error condition it might close the connection
before the server has finished writing its protocol message fully. Set a
flag to allow for some writes to fail.
Don't leak server object in tests
2019-05-02 Daniel P. Berrangé <berrange@redhat.com>
rpm: remove bogus mingw dep on iconv
rpm: switch to using autosetup macro
rpm: remove duplicate description entry
rpm: run make check during build
2019-01-12 Ján Tomko <jtomko@redhat.com>
configure: do not quote EXTRA_ARGS
Without this using ./autogen.sh --system results in a funny definition
of SYSCONFDIR:
Searching for certs in /usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64/etc/pki
vnc_connection_start_tls: set tls_session to NULL after deinit
Avoid a double free in case of a failure, e.g. when vnc_connection_tls_initialize_cert_cred
fails to read the certificate:
==1154== Invalid read of size 4
==1154== at 0x60870FB: gnutls_bye (record.c:288)
==1154== by 0x4A46B73: vnc_connection_close (vncconnection.c:5120)
==1154== by 0x4A4E6CA: vnc_connection_coroutine (vncconnection.c:5650)
==1154== by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
==1154== by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
==1154== by 0x175DB277: ???
==1154== Address 0x1847fcf0 is 384 bytes inside a block of size 6,496 free'd
==1154== at 0x4839A0C: free (vg_replace_malloc.c:540)
==1154== by 0x4A4B019: vnc_connection_start_tls (vncconnection.c:4466)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth_vencrypt (vncconnection.c:4708)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth (vncconnection.c:4818)
==1154== by 0x4A4CBE8: vnc_connection_initialize (vncconnection.c:5415)
==1154== by 0x4A4E50F: vnc_connection_coroutine (vncconnection.c:5639)
==1154== by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
==1154== by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
==1154== by 0x175DB277: ???
==1154== Block was alloc'd at
==1154== at 0x483AB1A: calloc (vg_replace_malloc.c:762)
==1154== by 0x60B6FDE: gnutls_init (state.c:465)
==1154== by 0x4A4AB28: vnc_connection_start_tls (vncconnection.c:4434)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth_vencrypt (vncconnection.c:4708)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth (vncconnection.c:4818)
==1154== by 0x4A4CBE8: vnc_connection_initialize (vncconnection.c:5415)
==1154== by 0x4A4E50F: vnc_connection_coroutine (vncconnection.c:5639)
==1154== by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
==1154== by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
==1154== by 0x175DB277: ???
vnc_connection_start_tls: add deinit label
Introduce a deinit label to unify cleanup paths which call gnutls_deinit.
2019-01-12 Christophe Fergeau <cfergeau@redhat.com>
conn: Use vnc_connection_has_error() extensively
It's better to call this helper rather than directly checking for
priv->coroutine_stop.
conn: Remove redundant vnc_connection_has_error() calls
No need to call it twice in:
if (vnc_connection_has_error(conn))
return !vnc_connection_has_error(conn);
and no need to call it after calling vnc_connection_set_error() as it
will always return TRUE in this scenario.
conn: Report error if vnc_connection_perform_auth_vnc fails
At the moment, when the various crypto operations that
vnc_connection_perform_auth_vnc performs fail, no error is reported to
the client application. This commit adds the emission of a vnc-error
signal when this happens. This is not reported as an auth failure as
these errors are not something which is recoverable, they indicate
system failures.
sasl: Emit vnc-auth-failure signal on SASL auth failures
When the SASL username or password are wrong, at the moment client
application will not get any specific notification for it, they will
just know that the remote connection was closed because of an error.
This commit adds the emission of the vnc-auth-failure signal when
vnc_connection_perform_auth_sasl() fails.
https://bugzilla.redhat.com/show_bug.cgi?id=1456175
sasl: Factor common code auth failure
The new vnc_connection_auth_failure() method will be reused in the
next commit.
2018-12-14 Andre Klapper <a9016009@gmx.de>
Replace Bugzilla by Gitlab URL in DOAP file
2018-09-05 Daniel P. Berrangé <berrange@redhat.com>
Initialize gcrypt before any auth method
The gcrypt APIs are now used in multiple auth methods, so we should
initialize them early, rather than only in the TLS codepath.
2018-08-30 Guido Günther <agx@sigxcpu.org>
gvnc-1.0.pc.in: Use GLIB_REQUIRED
GOBJECT_REQUIRED is no more
2018-08-24 Daniel P. Berrangé <berrange@redhat.com>
fix crash when connection fails early
When reading the initial greeting a timer is set in the background. If
the connection fails early, we can jump to cleanup code before the timer
is disable. The timer will later fire, read a coroutine context from
freed memory, and likely jump to somewhere awful with predictably crashy
results.
https://bugzilla.redhat.com/show_bug.cgi?id=1620203
coroutine: use MAP_ANON if MAP_ANONYMOUS does not exist
MAP_ANON is the old deprecated name for MAP_ANONYMOUS, but the latter
does not exist on at least some macOS 10 versions.
Resolves: issue #4
2018-08-24 Marc-André Lureau <marcandre.lureau@redhat.com>
build-sys: update gitignore
GITIGNORE_MAINTAINERCLEANFILES_* helpers, remove plugin files.
https://bugzilla.gnome.org/show_bug.cgi?id=780651
build-sys: remove .in files from EXTRA_DIST
They are already dist'ed by autotools.
https://bugzilla.gnome.org/show_bug.cgi?id=780651
build-sys: update git.mk
https://bugzilla.gnome.org/show_bug.cgi?id=780651
2018-08-22 Marc-André Lureau <marcandre.lureau@redhat.com>
build-sys: drop gnome-common dependency
As described in:
https://wiki.gnome.org/Projects/GnomeCommon/Migration
https://bugzilla.gnome.org/show_bug.cgi?id=780651
Tweaked autogen.sh to use 'test' instead of []
2018-08-22 Daniel P. Berrangé <berrange@redhat.com>
examples: remove extra parameter from init call in javascript demo
The bindings for JS have improved such that the init() can be invoked
sensibly.
Resolves: issue #6
examples: require specific versions before importing gi libs
Resolves: issue #6
2018-08-17 Daniel P. Berrangé <berrange@redhat.com>
Update NEWS for 0.9.0 release
......
# Having a separate GNUmakefile lets me `include' the dynamically
# Having a separate GNUmakefile lets me 'include' the dynamically
# generated rules created via cfg.mk (package-local configuration)
# as well as maint.mk (generic maintainer rules).
# This makefile is used only if you run GNU Make.
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
# Copyright (C) 2001, 2003, 2006-2011 Free Software Foundation, Inc.
# Copyright (C) 2001, 2003, 2006-2019 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -18,22 +18,10 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Systems where /bin/sh is not the default shell need this. The $(shell)
# command below won't work with e.g. stock DOS/Windows shells.
ifeq ($(wildcard /bin/s[h]),/bin/sh)
SHELL = /bin/sh
else
# will be used only with the next shell-test line, then overwritten
# by a configured-in value
SHELL = sh
endif
# If the user runs GNU make but has not yet run ./configure,
# give them a diagnostic.
_have-Makefile := $(shell test -f Makefile && echo yes)
ifeq ($(_have-Makefile),yes)
srcdir = .
top_srcdir = .
# Make tar archive easier to reproduce.
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
......@@ -41,8 +29,6 @@ export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
# Allow the user to add to this in the Makefile.
ALL_RECURSIVE_TARGETS =
include Makefile
# Some projects override e.g., _autoreconf here.
-include $(srcdir)/cfg.mk
......@@ -94,25 +80,6 @@ _version:
cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf)
$(MAKE) $(AM_MAKEFLAGS) Makefile
else
.DEFAULT_GOAL := abort-due-to-no-makefile
srcdir = .
# The package can override .DEFAULT_GOAL to run actions like autoreconf.
-include ./cfg.mk
include ./maint.mk
ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
$(MAKECMDGOALS): abort-due-to-no-makefile
endif
abort-due-to-no-makefile:
@echo There seems to be no Makefile in this directory. 1>&2
@echo "You must run ./configure before running \`make'." 1>&2
@exit 1
endif
# Tell version 3.79 and up of GNU make to not build goals in this
# directory in parallel, in case someone tries to build multiple
......
Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Briefly, the shell command './configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the 'README' file for
instructions specific to this package. Some packages provide this
'INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a 'Makefile' in each directory of the package.
It may also create one or more '.h' files containing system-dependent
definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a
file 'config.log' containing compiler output (useful mainly for
debugging 'configure').
It can also use an optional file (typically called 'config.cache' and
enabled with '--cache-file=config.cache' or simply '-C') that saves the
results of its tests to speed up reconfiguring. Caching is disabled by
default to prevent problems with accidental use of stale cache files.
If you need to do unusual things to compile the package, please try
to figure out how 'configure' could check whether to do them, and mail
diffs or instructions to the address given in the 'README' so they can
be considered for the next release. If you are using the cache, and at
some point 'config.cache' contains results you don't want to keep, you
may remove or edit it.
The file 'configure.ac' (or 'configure.in') is used to create
'configure' by a program called 'autoconf'. You need 'configure.ac' if
you want to change it or regenerate 'configure' using a newer version of
'autoconf'.
The simplest way to compile this package is:
1. 'cd' to the directory containing the package's source code and type
'./configure' to configure the package for your system.
Running 'configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type 'make' to compile the package.
3. Optionally, type 'make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type 'make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the 'make install' phase executed with root
privileges.
5. Optionally, type 'make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior 'make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing 'make clean'. To also remove the
files that 'configure' created (so you can compile the package for
a different kind of computer), type 'make distclean'. There is
also a 'make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type 'make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide 'make
distcheck', which can by used by developers to test that all other
targets like 'make install' and 'make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the 'configure' script does not know about. Run './configure --help'
for details on some of the pertinent environment variables.
You can give 'configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here is
an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU 'make'. 'cd' to the
directory where you want the object files and executables to go and run
the 'configure' script. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'. This is known
as a "VPATH" build.
With a non-GNU 'make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use 'make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple '-arch' options to the
compiler but only a single '-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the 'lipo' tool if you have problems.
Installation Names
==================
By default, 'make install' installs the package's commands under
'/usr/local/bin', include files under '/usr/local/include', etc. You
can specify an installation prefix other than '/usr/local' by giving
'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like '--bindir=DIR' to specify different values for particular
kinds of files. Run 'configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the default
for these options is expressed in terms of '${prefix}', so that
specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to 'configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
'make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, 'make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
'${prefix}'. Any directories that were specified during 'configure',
but not in terms of '${prefix}', must each be overridden at install time
for the entire installation to be relocated. The approach of makefile
variable overrides for each directory variable is required by the GNU
Coding Standards, and ideally causes no recompilation. However, some
platforms have known limitations with the semantics of shared libraries
that end up requiring recompilation when using this method, particularly
noticeable in packages that use GNU Libtool.
The second method involves providing the 'DESTDIR' variable. For
example, 'make install DESTDIR=/alternate/directory' will prepend
'/alternate/directory' before all installation names. The approach of
'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of '${prefix}'
at 'configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving 'configure' the
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Some packages pay attention to '--enable-FEATURE' options to
'configure', where FEATURE indicates an optional part of the package.
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
is something like 'gnu-as' or 'x' (for the X Window System). The
'README' should mention any '--enable-' and '--with-' options that the
package recognizes.
For packages that use the X Window System, 'configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the 'configure' options '--x-includes=DIR' and
'--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of 'make' will be. For these packages, running './configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with 'make V=1'; while running './configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with 'make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX 'make' updates targets which have the same time stamps as their
prerequisites, which makes it generally unusable when shipped generated
files such as 'configure' are involved. Use GNU 'make' instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
workaround. If GNU CC is not installed, it is therefore recommended to
try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
in your 'PATH', put it _after_ '/usr/bin'.
On Haiku, software installed for all users goes in '/boot/common',
not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features 'configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, 'configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
'--build=TYPE' option. TYPE can either be a short name for the system
type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file 'config.sub' for the possible values of each field. If
'config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option '--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with '--host=TYPE'.
Sharing Defaults
================
If you want to set default values for 'configure' scripts to share,
you can create a site shell script called 'config.site' that gives
default values for variables like 'CC', 'cache_file', and 'prefix'.
'configure' looks for 'PREFIX/share/config.site' if it exists, then
'PREFIX/etc/config.site' if it exists. Or, you can set the
'CONFIG_SITE' environment variable to the location of the site script.
A warning: not all 'configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to 'configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the 'configure' command line, using 'VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified 'gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
Autoconf limitation. Until the limitation is lifted, you can use this
workaround:
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
'configure' Invocation
======================
'configure' recognizes the following options to control how it
operates.
'--help'
'-h'
Print a summary of all of the options to 'configure', and exit.
'--help=short'
'--help=recursive'
Print a summary of the options unique to this package's
'configure', and exit. The 'short' variant lists options used only
in the top level, while the 'recursive' variant lists options also
present in any nested packages.
'--version'
'-V'
Print the version of Autoconf used to generate the 'configure'
script, and exit.
'--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally 'config.cache'. FILE defaults to '/dev/null' to
disable caching.
'--config-cache'
'-C'
Alias for '--cache-file=config.cache'.
'--quiet'
'--silent'
'-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to '/dev/null' (any error
messages will still be shown).
'--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
'configure' can determine that directory automatically.
'--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names:: for
more details, including other options available for fine-tuning the
installation locations.
'--no-create'
'-n'
Run the configure checks, but stop before creating any output
files.
'configure' also accepts some other, not widely useful, options. Run
'configure --help' for more details.
Jonh Wendell
E-mail: jwendell@gnome.org
Userid: jwendell
Daniel P. Berrange
E-mail: dan@berrange.com
Userid: dberrange
SUBDIRS = src tools examples po vapi
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
pkgconfig_DATA = $(PACKAGE)-$(GTK_VNC_API_VERSION).pc gvnc-1.0.pc
pkgconfigdir = $(libdir)/pkgconfig
if HAVE_PULSEAUDIO
pkgconfig_DATA += gvncpulse-1.0.pc
endif
EXTRA_DIST = \
gvnc-1.0.pc.in \
gvncpulse-1.0.pc.in \
$(PACKAGE)-1.0.pc.in \
$(PACKAGE)-2.0.pc.in \
$(PACKAGE).spec.in \
$(PACKAGE).spec \
mingw-$(PACKAGE).spec.in \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
cfg.mk \
GNUmakefile \
maint.mk \
AUTHORS.in \
ChangeLog-old \
$(NULL)
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update
MAINTAINERCLEANFILES = \
INSTALL \
compile \
aclocal.m4 \
config.guess \
config.h.in \
config.sub \
depcomp \
gtk-doc.make \
install-sh \
ltmain.sh \
missing \
mkinstalldirs \
omf.make \
py-compile \
xmldocs.make \
m4/libtool.m4 \
m4/lt~obsolete.m4 \
m4/ltoptions.m4 \
m4/ltsugar.m4 \
m4/ltversion.m4 \
build-aux/compile \
build-aux/config.guess \
build-aux/config.sub \
build-aux/depcomp \
build-aux/install-sh \
build-aux/ltmain.sh \
build-aux/missing \
build-aux/mkinstalldirs \
`find "$(srcdir)" -type f -name Makefile.in -print`
GITIGNOREFILES = plugin/gtk-vnc-plugin.la plugin/gtk-vnc-plugin.so
gen_start_date = 2008-12-07
dist-hook: gen-ChangeLog gen-AUTHORS
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d $(srcdir)/.git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
--since=$(gen_start_date) > $(distdir)/cl-t;\
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
.PHONY: gen-AUTHORS
gen-AUTHORS:
$(AM_V_GEN)if test -d $(srcdir)/.git; then \
out="`cd $(srcdir) && git log --pretty=format:'%aN <%aE>' | sort -u`" && \
perl -p -e "s/#authorslist#// and print '$$out'" \
< $(srcdir)/AUTHORS.in > $(distdir)/AUTHORS-tmp && \
mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS ; \
fi
-include $(top_srcdir)/git.mk
This diff is collapsed.
GTK VNC News
============
Aug 7, 2019: Release 1.0.0
==========================
o Autotools build system replaced with meson
o Support for GTK-2 is dropped. GTK-3 is mandatory
o Support for libview is dropped in example program
o Improvements to example demos
o Use MAP_ANON if MAP_ANONYMOUS doesn't exist to help
certai macOS versions
o Fix crash when connection attempt fails early
o Initialize gcrypt early in auth process
o Emit vnc-auth-failure signal when SASL auth fals
o Emit vnc-error signal when authentication fails
o Fix double free when failing to read certificates
o Run unit tests in RPM build
o Modernize RPM spec
o Fix race condition in unit tests
o Fix install of missing header for cairo framebuffer
o Fix typo in gir package name
o Add missing VncPixelFormat file to git data
Aug 17, 2018: Release 0.9.0
===========================
......
dnl a macro to check for ability to create python extensions
dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
dnl function also defines PYTHON_INCLUDES
AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
[AC_REQUIRE([AM_PATH_PYTHON])
AC_MSG_CHECKING(for headers required to compile python extensions)
dnl deduce PYTHON_INCLUDES
py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
if test "$py_prefix" != "$py_exec_prefix"; then
PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
fi
AC_SUBST(PYTHON_INCLUDES)
dnl check if the headers exist:
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
AC_TRY_CPP([#include <Python.h>],dnl
[AC_MSG_RESULT(found)
$1],dnl
[AC_MSG_RESULT(not found)
$2])
CPPFLAGS="$save_CPPFLAGS"
])
This diff is collapsed.
#!/bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2016-01-11.22; # UTC
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.