diff --git a/README.md b/README.md index a487062..b60e657 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # x11vnc +LibVNCServer is ripped out of Xvnc to provide an easy API to write one's own vnc server. + diff --git a/x11vnc-0.9.10-fix_redeclared_pointer.patch b/x11vnc-0.9.10-fix_redeclared_pointer.patch new file mode 100644 index 0000000..57e2729 --- /dev/null +++ b/x11vnc-0.9.10-fix_redeclared_pointer.patch @@ -0,0 +1,196 @@ +diff -ru x11vnc-0.9.8/rfb/rfbconfig.h x11vnc-0.9.8.patched/rfb/rfbconfig.h +--- x11vnc-0.9.8/rfb/rfbconfig.h 2009-06-19 16:44:32.000000000 +0200 ++++ x11vnc-0.9.8.patched/rfb/rfbconfig.h 2009-07-22 21:23:46.000000000 +0200 +@@ -22,14 +22,13 @@ + #endif + + /* Avahi/mDNS client build environment present */ +-/* #undef LIBVNCSERVER_HAVE_AVAHI */ ++#ifndef LIBVNCSERVER_HAVE_AVAHI ++#define LIBVNCSERVER_HAVE_AVAHI 1 ++#endif + + /* Define to 1 if you have the `crypt' function. */ + /* #undef LIBVNCSERVER_HAVE_CRYPT */ + +-/* Define to 1 if you have the header file. */ +-/* #undef LIBVNCSERVER_HAVE_DLFCN_H */ +- + /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ + /* #undef LIBVNCSERVER_HAVE_DOPRNT */ + +@@ -156,10 +155,14 @@ + #endif + + /* XDAMAGE extension build environment present */ +-/* #undef LIBVNCSERVER_HAVE_LIBXDAMAGE */ ++#ifndef LIBVNCSERVER_HAVE_LIBXDAMAGE ++#define LIBVNCSERVER_HAVE_LIBXDAMAGE 1 ++#endif + + /* XFIXES extension build environment present */ +-/* #undef LIBVNCSERVER_HAVE_LIBXFIXES */ ++#ifndef LIBVNCSERVER_HAVE_LIBXFIXES ++#define LIBVNCSERVER_HAVE_LIBXFIXES 1 ++#endif + + /* XINERAMA extension build environment present */ + #ifndef LIBVNCSERVER_HAVE_LIBXINERAMA +@@ -362,7 +365,9 @@ + #endif + + /* Use the system libvncserver build environment for x11vnc. */ +-/* #undef LIBVNCSERVER_HAVE_SYSTEM_LIBVNCSERVER */ ++#ifndef LIBVNCSERVER_HAVE_SYSTEM_LIBVNCSERVER ++#define LIBVNCSERVER_HAVE_SYSTEM_LIBVNCSERVER 1 ++#endif + + /* Define to 1 if you have the header file. */ + #ifndef LIBVNCSERVER_HAVE_SYS_IOCTL_H +diff -ru x11vnc-0.9.8/x11vnc/pointer.c x11vnc-0.9.8.patched/x11vnc/pointer.c +--- x11vnc-0.9.8/x11vnc/pointer.c 2009-06-14 17:29:17.000000000 +0200 ++++ x11vnc-0.9.8.patched/x11vnc/pointer.c 2009-07-22 22:28:51.000000000 +0200 +@@ -54,7 +54,7 @@ + + void initialize_pointer_map(char *pointer_remap); + void do_button_mask_change(int mask, int button); +-void pointer(int mask, int x, int y, rfbClientPtr client); ++void _pointer(int mask, int x, int y, rfbClientPtr client); + void initialize_pipeinput(void); + int check_pipeinput(void); + void update_x11_pointer_position(int x, int y); +@@ -658,7 +658,7 @@ + * This may queue pointer events rather than sending them immediately + * to the X server. (see update_x11_pointer*()) + */ +-void pointer(int mask, int x, int y, rfbClientPtr client) { ++void _pointer(int mask, int x, int y, rfbClientPtr client) { + allowed_input_t input; + int sent = 0, buffer_it = 0; + double now; +@@ -684,7 +684,7 @@ + dt = tnow - last_pointer; + last_pointer = tnow; + if (show_motion) { +- rfbLog("# pointer(mask: 0x%x, x:%4d, y:%4d) " ++ rfbLog("# _pointer(mask: 0x%x, x:%4d, y:%4d) " + "dx: %3d dy: %3d dt: %.4f t: %.4f\n", mask, x, y, + x - last_x, y - last_y, dt, tnow); + } +diff -ru x11vnc-0.9.8/x11vnc/pointer.h x11vnc-0.9.8.patched/x11vnc/pointer.h +--- x11vnc-0.9.8/x11vnc/pointer.h 2009-06-14 17:29:17.000000000 +0200 ++++ x11vnc-0.9.8.patched/x11vnc/pointer.h 2009-07-22 22:26:59.000000000 +0200 +@@ -39,7 +39,7 @@ + + extern void initialize_pointer_map(char *pointer_remap); + extern void do_button_mask_change(int mask, int button); +-extern void pointer(int mask, int x, int y, rfbClientPtr client); ++extern void _pointer(int mask, int x, int y, rfbClientPtr client); + extern int check_pipeinput(void); + extern void initialize_pipeinput(void); + extern void update_x11_pointer_position(int x, int y); +diff -ru x11vnc-0.9.8/x11vnc/scan.c x11vnc-0.9.8.patched/x11vnc/scan.c +--- x11vnc-0.9.8/x11vnc/scan.c 2009-06-14 17:29:17.000000000 +0200 ++++ x11vnc-0.9.8.patched/x11vnc/scan.c 2009-07-22 22:29:16.000000000 +0200 +@@ -3547,7 +3547,7 @@ + fb_copy_in_progress = 0; + SCAN_FATAL(cs); + if (use_threads && pointer_mode != 1) { +- pointer(-1, 0, 0, NULL); ++ _pointer(-1, 0, 0, NULL); + } + nap_check(tile_count); + return tile_count; +@@ -3634,7 +3634,7 @@ + * tell the pointer handler it can process any queued + * pointer events: + */ +- pointer(-1, 0, 0, NULL); ++ _pointer(-1, 0, 0, NULL); + } + + if (blackouts) { +diff -ru x11vnc-0.9.8/x11vnc/screen.c x11vnc-0.9.8.patched/x11vnc/screen.c +--- x11vnc-0.9.8/x11vnc/screen.c 2009-06-14 17:29:17.000000000 +0200 ++++ x11vnc-0.9.8.patched/x11vnc/screen.c 2009-07-22 22:29:48.000000000 +0200 +@@ -3288,7 +3288,7 @@ + /* event callbacks: */ + screen->newClientHook = new_client; + screen->kbdAddEvent = keyboard; +- screen->ptrAddEvent = pointer; ++ screen->ptrAddEvent = _pointer; + screen->setXCutText = xcut_receive; + screen->setTranslateFunction = set_xlate_wrapper; + +diff -ru x11vnc-0.9.8/x11vnc/userinput.c x11vnc-0.9.8.patched/x11vnc/userinput.c +--- x11vnc-0.9.8/x11vnc/userinput.c 2009-06-14 17:29:17.000000000 +0200 ++++ x11vnc-0.9.8.patched/x11vnc/userinput.c 2009-07-22 22:30:31.000000000 +0200 +@@ -3006,7 +3006,7 @@ + pointer_queued_sent = 0; + last_x = cursor_x; + last_y = cursor_y; +- pointer(-1, 0, 0, NULL); ++ _pointer(-1, 0, 0, NULL); + pointer_flush_delay = 0.0; + + if (xrecording && pointer_queued_sent && button_mask_save && +@@ -4563,7 +4563,7 @@ + /* -threads support for check_wireframe() is rough... crash? */ + if (use_threads) { + /* purge any stored up pointer events: */ +- pointer(-1, 0, 0, NULL); ++ _pointer(-1, 0, 0, NULL); + } + + if (cursor_noshape_updates_clients(screen)) { +diff -ru x11vnc-0.9.10.orig//x11vnc/connections.c x11vnc-0.9.10/x11vnc/connections.c +--- x11vnc-0.9.10.orig//x11vnc/connections.c 2010-04-29 05:36:49.000000000 +0200 ++++ x11vnc-0.9.10/x11vnc/connections.c 2010-07-03 20:54:29.675017394 +0200 +@@ -3149,7 +3149,7 @@ + return; + } + rfbLog("pmove: x y: %d %d\n", x, y); +- pointer(0, x, y, NULL); ++ _pointer(0, x, y, NULL); + X_LOCK; + XFlush_wr(dpy); + X_UNLOCK; +diff -ru x11vnc-0.9.10.orig//x11vnc/remote.c x11vnc-0.9.10/x11vnc/remote.c +--- x11vnc-0.9.10.orig//x11vnc/remote.c 2010-04-29 05:36:49.000000000 +0200 ++++ x11vnc-0.9.10/x11vnc/remote.c 2010-07-03 20:55:23.137767351 +0200 +@@ -4426,9 +4426,9 @@ + p += strlen("ptr:"); + rfbLog("remote_cmd: insert pointer event: %s\n", p); + if (sscanf(p, "%d,%d,%d", &x, &y, &m) == 3) { +- pointer(m, x, y, NULL); ++ _pointer(m, x, y, NULL); + } else if (sscanf(p, "%d,%d", &x, &y) == 2) { +- pointer(m, x, y, NULL); ++ _pointer(m, x, y, NULL); + } else { + rfbLog("remote_cmd: bad ptr:x,y,mask\n"); + } +@@ -4593,7 +4593,7 @@ + } else if (strstr(res, "GRAB_FAIL") && try < max_tries) { + rfbLog("bcx_xattach: failed grab check for '%s': %s. Retrying[%d]...\n", p, res, try); + free(res); +- pointer(0, dpy_x/2 + try, dpy_y/2 + try, NULL); ++ _pointer(0, dpy_x/2 + try, dpy_y/2 + try, NULL); + #if !NO_X11 + X_LOCK; + XFlush_wr(dpy); +diff -Nru x11vnc-0.9.10.org//x11vnc/keyboard.c x11vnc-0.9.10/x11vnc/keyboard.c +--- x11vnc-0.9.10.org//x11vnc/keyboard.c 2010-04-29 05:36:49.000000000 +0200 ++++ x11vnc-0.9.10/x11vnc/keyboard.c 2010-07-03 21:02:17.906772861 +0200 +@@ -2898,9 +2898,9 @@ + t[1] = '\0'; + if (sscanf(t, "%d", &butt) == 1) { + mask = 1<<(butt-1); +- pointer(mask, x, y, client); ++ _pointer(mask, x, y, client); + mask = 0; +- pointer(mask, x, y, client); ++ _pointer(mask, x, y, client); + } + b++; + } diff --git a/x11vnc.spec b/x11vnc.spec new file mode 100644 index 0000000..4e51b16 --- /dev/null +++ b/x11vnc.spec @@ -0,0 +1,92 @@ +Name: x11vnc +Version: 0.9.13 +Release: 1mamba +Summary: LibVNCServer is ripped out of Xvnc to provide an easy API to write one's own vnc server +Group: System/Libraries +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://sourceforge.net/projects/libvncserver/ +Source: http://downloads.sourceforge.net/libvncserver/x11vnc-%{version}.tar.gz +Patch0: %{name}-0.9.10-fix_redeclared_pointer.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +%if "%{stage1}" != "1" +BuildRequires: libavahi-devel +%endif +BuildRequires: libjpeg-devel +BuildRequires: libopenssl-devel +BuildRequires: libvncserver-devel +BuildRequires: libX11-devel +BuildRequires: libXdamage-devel +BuildRequires: libXext-devel +BuildRequires: libXfixes-devel +BuildRequires: libXinerama-devel +BuildRequires: libXrandr-devel +BuildRequires: libXtst-devel +BuildRequires: libz-devel +## AUTOBUILDREQ-END +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +LibVNCServer is ripped out of Xvnc to provide an easy API to write one's own vnc server. + +%package devel +Group: Development/Libraries +Summary: Static libraries and headers for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +LibVNCServer is ripped out of Xvnc to provide an easy API to write one's own vnc server. +This package contains static libraries and header files need for development. + +%prep +%setup -q +#%patch0 -p1 + +%build +%configure \ + --with-system-libvncserver +%make + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_bindir}/x11vnc +%{_mandir}/man1/x11vnc.1.* +%dir %{_datadir}/x11vnc +%{_datadir}/applications/x11vnc.desktop +%{_datadir}/x11vnc/classes/* +%doc AUTHORS COPYING ChangeLog NEWS README TODO + +%changelog +* Sat Sep 17 2011 Automatic Build System 0.9.13-1mamba +- automatic version update by autodist + +* Wed Oct 27 2010 Automatic Build System 0.9.12-1mamba +- automatic update by autodist + +* Sat Jul 03 2010 Automatic Build System 0.9.10-1mamba +- automatic update by autodist + +* Tue Jul 28 2009 Automatic Build System 0.9.8-1mamba +- automatic update by autodist + +* Thu Apr 09 2009 Silvan Calarco 0.9.7-1mamba +- automatic update by autodist + +* Thu Jan 08 2009 Silvan Calarco 0.9.6-1mamba +- automatic update by autodist + +* Sat Dec 06 2008 Silvan Calarco 0.9.5-1mamba +- package created from libvncserver