rpms/vnc/devel vnc-allocate.patch, NONE, 1.1 vnc-mieq.patch, NONE, 1.1 vnc-noxkb.patch, NONE, 1.1 vnc-paint.patch, NONE, 1.1 vnc-privates.patch, NONE, 1.1 vnc-selections.patch, NONE, 1.1 .cvsignore, 1.23, 1.24 sources, 1.24, 1.25 vnc-autotools.patch, 1.2, 1.3 vnc-gcc43.patch, 1.1, 1.2 vnc-modular-xorg.patch, 1.12, 1.13 vnc.spec, 1.183, 1.184
Adam Tkac (atkac)
fedora-extras-commits at redhat.com
Tue Mar 11 12:51:11 UTC 2008
- Previous message (by thread): devel/vim 7.1.270, NONE, 1.1 README.patches, 1.99, 1.100 vim.spec, 1.197, 1.198 vimrc, 1.17, 1.18
- Next message (by thread): rpms/vnc/devel Makefile.am,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: atkac
Update of /cvs/pkgs/rpms/vnc/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18050
Modified Files:
.cvsignore sources vnc-autotools.patch vnc-gcc43.patch
vnc-modular-xorg.patch vnc.spec
Added Files:
vnc-allocate.patch vnc-mieq.patch vnc-noxkb.patch
vnc-paint.patch vnc-privates.patch vnc-selections.patch
Log Message:
- BuildRequires and Requires cleanup
- don't build java viewer (problems due new gcj)
- use xorg codebase from xorg-x11-server-source package again
- vnc-selection.patch - new xserver selection API/ABI
- vnc-xkb.patch - disable XKEYBOARD extension
- vnc-paint.patch - PaintWindow{Background,Border} hooks have been removed
- vnc-privates.patch - update devPrivates handling
- vnc-mieq.patch - use event queue to handle input events
vnc-allocate.patch:
--- NEW FILE vnc-allocate.patch ---
diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc.allocate vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc
--- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc.allocate 2008-02-25 16:38:37.000000000 +0100
+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc 2008-02-25 16:54:48.000000000 +0100
@@ -536,9 +536,9 @@ static void vfbInstallColormap(ColormapP
swapcopy32(pXWDHeader->bits_per_rgb, pVisual->bitsPerRGBValue);
swapcopy32(pXWDHeader->colormap_entries, pVisual->ColormapEntries);
- ppix = (Pixel *)ALLOCATE_LOCAL(entries * sizeof(Pixel));
- prgb = (xrgb *)ALLOCATE_LOCAL(entries * sizeof(xrgb));
- defs = (xColorItem *)ALLOCATE_LOCAL(entries * sizeof(xColorItem));
+ ppix = (Pixel *)xalloc(entries * sizeof(Pixel));
+ prgb = (xrgb *)xalloc(entries * sizeof(xrgb));
+ defs = (xColorItem *)xalloc(entries * sizeof(xColorItem));
for (i = 0; i < entries; i++) ppix[i] = i;
/* XXX truecolor */
@@ -553,9 +553,9 @@ static void vfbInstallColormap(ColormapP
}
(*pmap->pScreen->StoreColors)(pmap, entries, defs);
- DEALLOCATE_LOCAL(ppix);
- DEALLOCATE_LOCAL(prgb);
- DEALLOCATE_LOCAL(defs);
+ xfree(ppix);
+ xfree(prgb);
+ xfree(defs);
}
}
vnc-mieq.patch:
--- NEW FILE vnc-mieq.patch ---
diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc.mieq vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc
--- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc.mieq 2006-05-15 18:56:20.000000000 +0200
+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc 2008-03-05 12:25:06.000000000 +0100
@@ -50,12 +50,20 @@ extern char *display;
#include "resource.h"
#include "cursorstr.h"
#include "windowstr.h"
+#include "mi/mi.h"
#define XK_CYRILLIC
#include "keysym.h"
#undef public
#undef class
}
+static xEvent *eventq = NULL;
+static DeviceIntPtr vncKeyboard = NULL;
+static DeviceIntPtr vncMouse = NULL;
+
+static int vfbKeybdProc (DeviceIntPtr pDev, int onoff);
+static int vfbMouseProc (DeviceIntPtr pDev, int onoff);
+
using namespace rfb;
using namespace network;
@@ -202,6 +210,21 @@ XserverDesktop::XserverDesktop(ScreenPtr
if (httpListener)
httpServer = new FileHTTPServer(this);
+
+// XXX Memory leak here, eventq is not free()-d because it has to exist till server exits
+ if (!eventq)
+ eventq = (xEvent *) xcalloc(sizeof(xEvent), GetMaximumEventsNum());
+ if (!eventq)
+ FatalError("couldn't allocate room for events\n");
+
+ if (vncMouse == NULL) {
+ vncMouse = AddInputDevice(vfbMouseProc, TRUE);
+ RegisterPointerDevice (vncMouse);
+ }
+ if (vncKeyboard == NULL) {
+ vncKeyboard = AddInputDevice(vfbKeybdProc, TRUE);
+ RegisterKeyboardDevice (vncKeyboard);
+ }
}
XserverDesktop::~XserverDesktop()
@@ -495,7 +518,7 @@ void XserverDesktop::positionCursor()
{
if (!cursorPos.equals(oldCursorPos)) {
oldCursorPos = cursorPos;
- (*pScreen->SetCursorPosition) (pScreen, cursorPos.x, cursorPos.y, FALSE);
+// (*pScreen->SetCursorPosition) (pScreen, cursorPos.x, cursorPos.y, FALSE);
server->setCursorPos(cursorPos);
server->tryUpdate();
}
@@ -660,8 +683,8 @@ void XserverDesktop::approveConnection(v
void XserverDesktop::pointerEvent(const Point& pos, int buttonMask)
{
- xEvent ev;
- DevicePtr dev = LookupPointerDevice();
+ BYTE detail;
+ int i, j, n, valuators[2];
// SetCursorPosition seems to be very expensive (at least on XFree86 3.3.6
// for S3), so we delay calling it until positionCursor() is called at the
@@ -670,14 +693,14 @@ void XserverDesktop::pointerEvent(const
NewCurrentScreen(pScreen, pos.x, pos.y);
- ev.u.u.type = MotionNotify;
- ev.u.u.detail = 0;
- ev.u.keyButtonPointer.rootX = pos.x;
- ev.u.keyButtonPointer.rootY = pos.y;
- ev.u.keyButtonPointer.time = GetTimeInMillis();
-
- if (!pos.equals(cursorPos))
- (*dev->processInputProc)(&ev, (DeviceIntPtr)dev, 1);
+ if (!pos.equals(cursorPos)) {
+ valuators[0] = pos.x;
+ valuators[1] = pos.y;
+ n = GetPointerEvents (eventq, vncMouse, MotionNotify, 0,
+ POINTER_ABSOLUTE, 0, 2, valuators);
+ for (i = 0; i < n; i++)
+ mieqEnqueue (vncMouse, eventq + i);
+ }
for (int i = 0; i < 5; i++) {
if ((buttonMask ^ oldButtonMask) & (1<<i)) {
@@ -685,12 +708,15 @@ void XserverDesktop::pointerEvent(const
// God knows why but some idiot decided to conditionally move the pointer
// mapping out of DIX, so we guess here that if XINPUT is defined we have
// to do it ourselves...
- ev.u.u.detail = ((DeviceIntPtr)dev)->button->map[i + 1];
+ detail = vncMouse->button->map[i + 1];
#else
- ev.u.u.detail = i + 1;
+ detail = i + 1;
#endif
- ev.u.u.type = (buttonMask & (1<<i)) ? ButtonPress : ButtonRelease;
- (*dev->processInputProc)(&ev, (DeviceIntPtr)dev, 1);
+ n = GetPointerEvents (eventq, vncMouse, (buttonMask & (1<<i)) ?
+ ButtonPress : ButtonRelease,
+ detail, POINTER_RELATIVE, 0, 0, NULL);
+ for (j = 0; j < n; j++)
+ mieqEnqueue (vncMouse, eventq + j);
}
}
@@ -771,8 +797,8 @@ void XserverDesktop::lookup(int index, i
class ModifierState {
public:
- ModifierState(DeviceIntPtr dev_, int modIndex_)
- : dev(dev_), modIndex(modIndex_), nKeys(0), keys(0), pressed(false)
+ ModifierState(int modIndex_)
+ : modIndex(modIndex_), nKeys(0), keys(0), pressed(false)
{
}
~ModifierState() {
@@ -781,7 +807,7 @@ public:
delete [] keys;
}
void press() {
- KeyClassPtr keyc = dev->key;
+ KeyClassPtr keyc = vncKeyboard->key;
if (!(keyc->state & (1<<modIndex))) {
tempKeyEvent(keyc->modifierKeyMap[modIndex * keyc->maxKeysPerModifier],
true);
@@ -789,7 +815,7 @@ public:
}
}
void release() {
- KeyClassPtr keyc = dev->key;
+ KeyClassPtr keyc = vncKeyboard->key;
if (keyc->state & (1<<modIndex)) {
for (int k = 0; k < keyc->maxKeysPerModifier; k++) {
int keycode
@@ -802,20 +828,19 @@ public:
private:
void tempKeyEvent(int keycode, bool down) {
if (keycode) {
- if (!keys) keys = new int[dev->key->maxKeysPerModifier];
+ if (!keys) keys = new int[vncKeyboard->key->maxKeysPerModifier];
keys[nKeys++] = keycode;
generateXKeyEvent(keycode, down);
}
}
void generateXKeyEvent(int keycode, bool down) {
- xEvent ev;
- ev.u.u.type = down ? KeyPress : KeyRelease;
- ev.u.u.detail = keycode;
- ev.u.keyButtonPointer.time = GetTimeInMillis();
- (*dev->c_public.processInputProc)(&ev, dev, 1);
+ int i, n;
+ n = GetKeyboardEvents (eventq, vncKeyboard,
+ down ? KeyPress : KeyRelease, keycode);
+ for (i = 0; i < n; i++)
+ mieqEnqueue (vncKeyboard, eventq + i);
vlog.debug("fake keycode %d %s", keycode, down ? "down" : "up");
}
- DeviceIntPtr dev;
int modIndex;
int nKeys;
int* keys;
@@ -888,16 +913,16 @@ void XserverDesktop::keyEvent(rdr::U32 k
vlog.debug("Ignoring caps lock");
return;
}
- DeviceIntPtr dev = (DeviceIntPtr)LookupKeyboardDevice();
- KeyClassPtr keyc = dev->key;
+ KeyClassPtr keyc = vncKeyboard->key;
KeySymsPtr keymap = &keyc->curKeySyms;
+ int i, j, k, n;
// find which modifier Mode_switch is on.
int modeSwitchMapIndex = 0;
- for (int i = 3; i < 8; i++) {
- for (int k = 0; k < keyc->maxKeysPerModifier; k++) {
+ for (i = 3; i < 8; i++) {
+ for (k = 0; k < keyc->maxKeysPerModifier; k++) {
int keycode = keyc->modifierKeyMap[i * keyc->maxKeysPerModifier + k];
- for (int j = 0; j < keymap->mapWidth; j++) {
+ for (j = 0; j < keymap->mapWidth; j++) {
if (keycode != 0 &&
keymap->map[(keycode - keymap->minKeyCode)
* keymap->mapWidth + j] == XK_Mode_switch)
@@ -926,7 +951,7 @@ void XserverDesktop::keyEvent(rdr::U32 k
if (kc == 0) {
// Not a direct match in the local keyboard mapping. Check for alternative
// keysyms with the same meaning.
- for (int i = 0; i < sizeof(altKeysym) / sizeof(altKeysym_t); i++) {
+ for (i = 0; i < sizeof(altKeysym) / sizeof(altKeysym_t); i++) {
if (keysym == altKeysym[i].a)
kc = KeysymToKeycode(keymap, altKeysym[i].b, &col);
else if (keysym == altKeysym[i].b)
@@ -954,16 +979,16 @@ void XserverDesktop::keyEvent(rdr::U32 k
// See if it's a modifier key. If so, then don't do any auto-repeat, because
// the X server will translate each press into a release followed by a press.
- for (int i = 0; i < 8; i++) {
- for (int k = 0; k < keyc->maxKeysPerModifier; k++) {
+ for (i = 0; i < 8; i++) {
+ for (k = 0; k < keyc->maxKeysPerModifier; k++) {
if (kc == keyc->modifierKeyMap[i * keyc->maxKeysPerModifier + k] &&
IS_PRESSED(keyc,kc) && down)
return;
}
}
- ModifierState shift(dev, ShiftMapIndex);
- ModifierState modeSwitch(dev, modeSwitchMapIndex);
+ ModifierState shift(ShiftMapIndex);
+ ModifierState modeSwitch(modeSwitchMapIndex);
if (down) {
if (col & 1)
shift.press();
@@ -977,11 +1002,10 @@ void XserverDesktop::keyEvent(rdr::U32 k
}
}
vlog.debug("keycode %d %s", kc, down ? "down" : "up");
- xEvent ev;
- ev.u.u.type = down ? KeyPress : KeyRelease;
- ev.u.u.detail = kc;
- ev.u.keyButtonPointer.time = GetTimeInMillis();
- (*dev->c_public.processInputProc)(&ev, dev, 1);
+ n = GetKeyboardEvents (eventq, vncKeyboard, down ? KeyPress : KeyRelease,
+ kc);
+ for (i = 0; i < n; i++)
+ mieqEnqueue (vncKeyboard, eventq + i);
}
@@ -1150,3 +1174,208 @@ static KeyCode KeysymToKeycode(KeySymsPt
}
return 0;
}
+
+void vncRingBell(int percent, int pitch, int duration)
+{
+ if (percent > 0)
+ vncBell();
+}
+
+/* Fairly standard US PC Keyboard */
+
+#define VFB_MIN_KEY 8
+#define VFB_MAX_KEY 255
+#define VFB_MAP_LEN (VFB_MAX_KEY - VFB_MIN_KEY + 1)
+#define KEYSYMS_PER_KEY 2
+KeySym keyboardMap[VFB_MAP_LEN * KEYSYMS_PER_KEY] = {
+ NoSymbol, NoSymbol,
+ XK_Escape, NoSymbol,
+ XK_1, XK_exclam,
+ XK_2, XK_at,
+ XK_3, XK_numbersign,
+ XK_4, XK_dollar,
+ XK_5, XK_percent,
+ XK_6, XK_asciicircum,
+ XK_7, XK_ampersand,
+ XK_8, XK_asterisk,
+ XK_9, XK_parenleft,
+ XK_0, XK_parenright,
+ XK_minus, XK_underscore,
+ XK_equal, XK_plus,
+ XK_BackSpace, NoSymbol,
+ XK_Tab, NoSymbol,
+ XK_q, XK_Q,
+ XK_w, XK_W,
+ XK_e, XK_E,
+ XK_r, XK_R,
+ XK_t, XK_T,
+ XK_y, XK_Y,
+ XK_u, XK_U,
+ XK_i, XK_I,
+ XK_o, XK_O,
+ XK_p, XK_P,
+ XK_bracketleft, XK_braceleft,
+ XK_bracketright, XK_braceright,
+ XK_Return, NoSymbol,
+ XK_Control_L, NoSymbol,
+ XK_a, XK_A,
+ XK_s, XK_S,
+ XK_d, XK_D,
+ XK_f, XK_F,
+ XK_g, XK_G,
+ XK_h, XK_H,
+ XK_j, XK_J,
+ XK_k, XK_K,
+ XK_l, XK_L,
+ XK_semicolon, XK_colon,
+ XK_apostrophe, XK_quotedbl,
+ XK_grave, XK_asciitilde,
+ XK_Shift_L, NoSymbol,
+ XK_backslash, XK_bar,
+ XK_z, XK_Z,
+ XK_x, XK_X,
+ XK_c, XK_C,
+ XK_v, XK_V,
+ XK_b, XK_B,
+ XK_n, XK_N,
+ XK_m, XK_M,
+ XK_comma, XK_less,
+ XK_period, XK_greater,
+ XK_slash, XK_question,
+ XK_Shift_R, NoSymbol,
+ XK_KP_Multiply, NoSymbol,
+ XK_Alt_L, XK_Meta_L,
+ XK_space, NoSymbol,
+ /*XK_Caps_Lock*/ NoSymbol, NoSymbol,
+ XK_F1, NoSymbol,
+ XK_F2, NoSymbol,
+ XK_F3, NoSymbol,
+ XK_F4, NoSymbol,
+ XK_F5, NoSymbol,
+ XK_F6, NoSymbol,
+ XK_F7, NoSymbol,
+ XK_F8, NoSymbol,
+ XK_F9, NoSymbol,
+ XK_F10, NoSymbol,
+ XK_Num_Lock, XK_Pointer_EnableKeys,
+ XK_Scroll_Lock, NoSymbol,
+ XK_KP_Home, XK_KP_7,
+ XK_KP_Up, XK_KP_8,
+ XK_KP_Prior, XK_KP_9,
+ XK_KP_Subtract, NoSymbol,
+ XK_KP_Left, XK_KP_4,
+ XK_KP_Begin, XK_KP_5,
+ XK_KP_Right, XK_KP_6,
+ XK_KP_Add, NoSymbol,
+ XK_KP_End, XK_KP_1,
+ XK_KP_Down, XK_KP_2,
+ XK_KP_Next, XK_KP_3,
+ XK_KP_Insert, XK_KP_0,
+ XK_KP_Delete, XK_KP_Decimal,
+ NoSymbol, NoSymbol,
+ NoSymbol, NoSymbol,
+ NoSymbol, NoSymbol,
+ XK_F11, NoSymbol,
+ XK_F12, NoSymbol,
+ XK_Home, NoSymbol,
+ XK_Up, NoSymbol,
+ XK_Prior, NoSymbol,
+ XK_Left, NoSymbol,
+ NoSymbol, NoSymbol,
+ XK_Right, NoSymbol,
+ XK_End, NoSymbol,
+ XK_Down, NoSymbol,
+ XK_Next, NoSymbol,
+ XK_Insert, NoSymbol,
+ XK_Delete, NoSymbol,
+ XK_KP_Enter, NoSymbol,
+ XK_Control_R, NoSymbol,
+ XK_Pause, XK_Break,
+ XK_Print, XK_Execute,
+ XK_KP_Divide, NoSymbol,
+ XK_Alt_R, XK_Meta_R,
+};
+
+static Bool GetMappings(KeySymsPtr pKeySyms, CARD8 *pModMap)
+{
+ int i;
+
+ for (i = 0; i < MAP_LENGTH; i++)
+ pModMap[i] = NoSymbol;
+
+ for (i = 0; i < VFB_MAP_LEN; i++) {
+ if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Caps_Lock)
+ pModMap[i + VFB_MIN_KEY] = LockMask;
+ else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Shift_L ||
+ keyboardMap[i * KEYSYMS_PER_KEY] == XK_Shift_R)
+ pModMap[i + VFB_MIN_KEY] = ShiftMask;
+ else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Control_L ||
+ keyboardMap[i * KEYSYMS_PER_KEY] == XK_Control_R) {
+ pModMap[i + VFB_MIN_KEY] = ControlMask;
+ }
+ else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Alt_L ||
+ keyboardMap[i * KEYSYMS_PER_KEY] == XK_Alt_R)
+ pModMap[i + VFB_MIN_KEY] = Mod1Mask;
+ }
+
+ pKeySyms->minKeyCode = VFB_MIN_KEY;
+ pKeySyms->maxKeyCode = VFB_MAX_KEY;
+ pKeySyms->mapWidth = KEYSYMS_PER_KEY;
+ pKeySyms->map = keyboardMap;
+
+ return TRUE;
+}
+
+static int vfbKeybdProc(DeviceIntPtr pDev, int onoff)
+{
+ KeySymsRec keySyms;
+ CARD8 modMap[MAP_LENGTH];
+
+ switch (onoff)
+ {
+ case DEVICE_INIT:
+ GetMappings(&keySyms, modMap);
+ InitKeyboardDeviceStruct(&pDev->c_public, &keySyms, modMap,
+ (BellProcPtr)vncRingBell, (KbdCtrlProcPtr)NoopDDA);
+ break;
+ case DEVICE_ON:
+ pDev->c_public.on = TRUE;
+ break;
+ case DEVICE_OFF:
+ pDev->c_public.on = FALSE;
+ break;
+ case DEVICE_CLOSE:
+ break;
+ }
+ return Success;
+}
+
+static int vfbMouseProc(DeviceIntPtr pDev, int onoff)
+{
+ BYTE map[6];
+
+ switch (onoff)
+ {
+ case DEVICE_INIT:
+ map[1] = 1;
+ map[2] = 2;
+ map[3] = 3;
+ map[4] = 4;
+ map[5] = 5;
+ InitPointerDeviceStruct(&pDev->c_public, map, 5, GetMotionHistory,
+ (PtrCtrlProcPtr)NoopDDA, GetMotionHistorySize(), 2);
+ break;
+
+ case DEVICE_ON:
+ pDev->c_public.on = TRUE;
+ break;
+
+ case DEVICE_OFF:
+ pDev->c_public.on = FALSE;
+ break;
+
+ case DEVICE_CLOSE:
+ break;
+ }
+ return Success;
+}
diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc.mieq vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc
--- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc.mieq 2008-03-04 12:08:05.000000000 +0100
+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/xvnc.cc 2008-03-05 11:52:34.000000000 +0100
@@ -125,6 +125,8 @@ static bool displaySpecified = false;
static bool wellKnownSocketsCreated = false;
static char displayNumStr[16];
+extern void vncRingBell (int percent, int pitch, int duration);
+
#define swapcopy16(_dst, _src) \
if (needswap) { CARD16 _s = _src; cpswaps(_s, _dst); } \
else _dst = _src;
@@ -925,7 +927,7 @@ void InitOutput(ScreenInfo *screenInfo,
int SelectWaitTime = 10000; /* usec */
#endif
-Bool LegalModifier(unsigned int key, DevicePtr pDev)
+Bool LegalModifier(unsigned int key, DeviceIntPtr pDev)
{
return TRUE;
}
@@ -936,223 +938,14 @@ void ProcessInputEvents()
miPointerUpdate();
}
-/* Fairly standard US PC Keyboard */
-
-#define VFB_MIN_KEY 8
-#define VFB_MAX_KEY 255
-#define VFB_MAP_LEN (VFB_MAX_KEY - VFB_MIN_KEY + 1)
-#define KEYSYMS_PER_KEY 2
-KeySym keyboardMap[VFB_MAP_LEN * KEYSYMS_PER_KEY] = {
- NoSymbol, NoSymbol,
- XK_Escape, NoSymbol,
- XK_1, XK_exclam,
- XK_2, XK_at,
- XK_3, XK_numbersign,
- XK_4, XK_dollar,
- XK_5, XK_percent,
- XK_6, XK_asciicircum,
- XK_7, XK_ampersand,
- XK_8, XK_asterisk,
- XK_9, XK_parenleft,
- XK_0, XK_parenright,
- XK_minus, XK_underscore,
- XK_equal, XK_plus,
- XK_BackSpace, NoSymbol,
- XK_Tab, NoSymbol,
- XK_q, XK_Q,
- XK_w, XK_W,
- XK_e, XK_E,
- XK_r, XK_R,
- XK_t, XK_T,
- XK_y, XK_Y,
- XK_u, XK_U,
- XK_i, XK_I,
- XK_o, XK_O,
- XK_p, XK_P,
- XK_bracketleft, XK_braceleft,
- XK_bracketright, XK_braceright,
- XK_Return, NoSymbol,
- XK_Control_L, NoSymbol,
- XK_a, XK_A,
- XK_s, XK_S,
- XK_d, XK_D,
- XK_f, XK_F,
- XK_g, XK_G,
- XK_h, XK_H,
- XK_j, XK_J,
- XK_k, XK_K,
- XK_l, XK_L,
- XK_semicolon, XK_colon,
- XK_apostrophe, XK_quotedbl,
- XK_grave, XK_asciitilde,
- XK_Shift_L, NoSymbol,
- XK_backslash, XK_bar,
- XK_z, XK_Z,
- XK_x, XK_X,
- XK_c, XK_C,
- XK_v, XK_V,
- XK_b, XK_B,
- XK_n, XK_N,
- XK_m, XK_M,
- XK_comma, XK_less,
- XK_period, XK_greater,
- XK_slash, XK_question,
- XK_Shift_R, NoSymbol,
- XK_KP_Multiply, NoSymbol,
- XK_Alt_L, XK_Meta_L,
- XK_space, NoSymbol,
- /*XK_Caps_Lock*/ NoSymbol, NoSymbol,
- XK_F1, NoSymbol,
- XK_F2, NoSymbol,
- XK_F3, NoSymbol,
- XK_F4, NoSymbol,
- XK_F5, NoSymbol,
- XK_F6, NoSymbol,
- XK_F7, NoSymbol,
- XK_F8, NoSymbol,
- XK_F9, NoSymbol,
- XK_F10, NoSymbol,
- XK_Num_Lock, XK_Pointer_EnableKeys,
- XK_Scroll_Lock, NoSymbol,
- XK_KP_Home, XK_KP_7,
- XK_KP_Up, XK_KP_8,
- XK_KP_Prior, XK_KP_9,
- XK_KP_Subtract, NoSymbol,
- XK_KP_Left, XK_KP_4,
- XK_KP_Begin, XK_KP_5,
- XK_KP_Right, XK_KP_6,
- XK_KP_Add, NoSymbol,
- XK_KP_End, XK_KP_1,
- XK_KP_Down, XK_KP_2,
- XK_KP_Next, XK_KP_3,
- XK_KP_Insert, XK_KP_0,
- XK_KP_Delete, XK_KP_Decimal,
- NoSymbol, NoSymbol,
- NoSymbol, NoSymbol,
- NoSymbol, NoSymbol,
- XK_F11, NoSymbol,
- XK_F12, NoSymbol,
- XK_Home, NoSymbol,
- XK_Up, NoSymbol,
- XK_Prior, NoSymbol,
- XK_Left, NoSymbol,
- NoSymbol, NoSymbol,
- XK_Right, NoSymbol,
- XK_End, NoSymbol,
- XK_Down, NoSymbol,
- XK_Next, NoSymbol,
- XK_Insert, NoSymbol,
- XK_Delete, NoSymbol,
- XK_KP_Enter, NoSymbol,
- XK_Control_R, NoSymbol,
- XK_Pause, XK_Break,
- XK_Print, XK_Execute,
- XK_KP_Divide, NoSymbol,
- XK_Alt_R, XK_Meta_R,
-};
-
-static Bool GetMappings(KeySymsPtr pKeySyms, CARD8 *pModMap)
-{
- int i;
-
- for (i = 0; i < MAP_LENGTH; i++)
- pModMap[i] = NoSymbol;
-
- for (i = 0; i < VFB_MAP_LEN; i++) {
- if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Caps_Lock)
- pModMap[i + VFB_MIN_KEY] = LockMask;
- else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Shift_L ||
- keyboardMap[i * KEYSYMS_PER_KEY] == XK_Shift_R)
- pModMap[i + VFB_MIN_KEY] = ShiftMask;
- else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Control_L ||
- keyboardMap[i * KEYSYMS_PER_KEY] == XK_Control_R) {
- pModMap[i + VFB_MIN_KEY] = ControlMask;
- }
- else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Alt_L ||
- keyboardMap[i * KEYSYMS_PER_KEY] == XK_Alt_R)
- pModMap[i + VFB_MIN_KEY] = Mod1Mask;
- }
-
- pKeySyms->minKeyCode = VFB_MIN_KEY;
- pKeySyms->maxKeyCode = VFB_MAX_KEY;
- pKeySyms->mapWidth = KEYSYMS_PER_KEY;
- pKeySyms->map = keyboardMap;
-
- return TRUE;
-}
-
-static void vfbBell(int percent, DeviceIntPtr device, pointer ctrl, int class_)
-{
- if (percent > 0)
- vncBell();
-}
-
-static int vfbKeybdProc(DeviceIntPtr pDevice, int onoff)
-{
- KeySymsRec keySyms;
- CARD8 modMap[MAP_LENGTH];
- DevicePtr pDev = (DevicePtr)pDevice;
-
- switch (onoff)
- {
- case DEVICE_INIT:
- GetMappings(&keySyms, modMap);
- InitKeyboardDeviceStruct(pDev, &keySyms, modMap,
- (BellProcPtr)vfbBell, (KbdCtrlProcPtr)NoopDDA);
- break;
- case DEVICE_ON:
- pDev->on = TRUE;
- break;
- case DEVICE_OFF:
- pDev->on = FALSE;
- break;
- case DEVICE_CLOSE:
- break;
- }
- return Success;
-}
-
-static int vfbMouseProc(DeviceIntPtr pDevice, int onoff)
+void DDXRingBell(int percent, int pitch, int duration)
{
- BYTE map[6];
- DevicePtr pDev = (DevicePtr)pDevice;
-
- switch (onoff)
- {
- case DEVICE_INIT:
- map[1] = 1;
- map[2] = 2;
- map[3] = 3;
- map[4] = 4;
- map[5] = 5;
- InitPointerDeviceStruct(pDev, map, 5, miPointerGetMotionEvents,
- (PtrCtrlProcPtr)NoopDDA, miPointerGetMotionBufferSize());
- break;
-
- case DEVICE_ON:
- pDev->on = TRUE;
- break;
-
- case DEVICE_OFF:
- pDev->on = FALSE;
- break;
-
- case DEVICE_CLOSE:
- break;
- }
- return Success;
+ vncRingBell (percent, pitch, duration);
}
-
// InitInput is called after InitExtensions, so we're guaranteed that
// vncExtensionInit() has already been called.
void InitInput(int argc, char *argv[])
{
- DeviceIntPtr p, k;
- p = AddInputDevice(vfbMouseProc, TRUE);
- k = AddInputDevice(vfbKeybdProc, TRUE);
- RegisterPointerDevice(p);
- RegisterKeyboardDevice(k);
- miRegisterPointerDevice(screenInfo.screens[0], p);
- (void)mieqInit ((DevicePtr)k, (DevicePtr)p);
+ mieqInit ();
}
vnc-noxkb.patch:
--- NEW FILE vnc-noxkb.patch ---
diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/configure.ac.noxkb vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/configure.ac
--- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/configure.ac.noxkb 2008-03-05 13:02:23.000000000 +0100
+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/configure.ac 2008-03-05 13:02:41.000000000 +0100
@@ -1009,7 +1009,7 @@ AC_DEFINE(SHAPE, 1, [Support SHAPE exten
AC_DEFINE(XKB, 1, [Build XKB])
AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
+AC_DEFINE(XKB_DFLT_DISABLED, 1, [Disable XKB per default])
REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
XKB_LIB='$(top_builddir)/xkb/libxkb.la'
XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
vnc-paint.patch:
--- NEW FILE vnc-paint.patch ---
diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncHooks.cc.paint vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncHooks.cc
--- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncHooks.cc.paint 2008-03-06 14:54:52.000000000 +0100
+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncHooks.cc 2008-03-06 14:56:54.000000000 +0100
@@ -72,8 +72,6 @@ typedef struct {
CloseScreenProcPtr CloseScreen;
CreateGCProcPtr CreateGC;
- PaintWindowBackgroundProcPtr PaintWindowBackground;
- PaintWindowBorderProcPtr PaintWindowBorder;
CopyWindowProcPtr CopyWindow;
ClearToBackgroundProcPtr ClearToBackground;
RestoreAreasProcPtr RestoreAreas;
@@ -106,10 +104,6 @@ static DevPrivateKey vncHooksGCPrivateKe
static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen);
static Bool vncHooksCreateGC(GCPtr pGC);
-static void vncHooksPaintWindowBackground(WindowPtr pWin, RegionPtr pRegion,
- int what);
-static void vncHooksPaintWindowBorder(WindowPtr pWin, RegionPtr pRegion,
- int what);
static void vncHooksCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
RegionPtr pOldRegion);
static void vncHooksClearToBackground(WindowPtr pWin, int x, int y, int w,
@@ -231,8 +225,6 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
vncHooksScreen->CloseScreen = pScreen->CloseScreen;
vncHooksScreen->CreateGC = pScreen->CreateGC;
- vncHooksScreen->PaintWindowBackground = pScreen->PaintWindowBackground;
- vncHooksScreen->PaintWindowBorder = pScreen->PaintWindowBorder;
vncHooksScreen->CopyWindow = pScreen->CopyWindow;
vncHooksScreen->ClearToBackground = pScreen->ClearToBackground;
vncHooksScreen->RestoreAreas = pScreen->RestoreAreas;
@@ -253,8 +245,6 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
pScreen->CloseScreen = vncHooksCloseScreen;
pScreen->CreateGC = vncHooksCreateGC;
- pScreen->PaintWindowBackground = vncHooksPaintWindowBackground;
- pScreen->PaintWindowBorder = vncHooksPaintWindowBorder;
pScreen->CopyWindow = vncHooksCopyWindow;
pScreen->ClearToBackground = vncHooksClearToBackground;
pScreen->RestoreAreas = vncHooksRestoreAreas;
@@ -297,8 +287,6 @@ static Bool vncHooksCloseScreen(int i, S
SCREEN_UNWRAP(pScreen_, CloseScreen);
pScreen->CreateGC = vncHooksScreen->CreateGC;
- pScreen->PaintWindowBackground = vncHooksScreen->PaintWindowBackground;
- pScreen->PaintWindowBorder = vncHooksScreen->PaintWindowBorder;
pScreen->CopyWindow = vncHooksScreen->CopyWindow;
pScreen->ClearToBackground = vncHooksScreen->ClearToBackground;
pScreen->RestoreAreas = vncHooksScreen->RestoreAreas;
@@ -333,38 +321,6 @@ static Bool vncHooksCreateGC(GCPtr pGC)
return ret;
}
-// PaintWindowBackground - changed region is the given region
-
-static void vncHooksPaintWindowBackground(WindowPtr pWin, RegionPtr pRegion,
- int what)
-{
- SCREEN_UNWRAP(pWin->drawable.pScreen, PaintWindowBackground);
-
- RegionHelper changed(pScreen, pRegion);
-
- (*pScreen->PaintWindowBackground) (pWin, pRegion, what);
-
- vncHooksScreen->desktop->add_changed(changed.reg);
-
- SCREEN_REWRAP(PaintWindowBackground);
-}
-
-// PaintWindowBorder - changed region is the given region
-
-static void vncHooksPaintWindowBorder(WindowPtr pWin, RegionPtr pRegion,
- int what)
-{
- SCREEN_UNWRAP(pWin->drawable.pScreen, PaintWindowBorder);
-
- RegionHelper changed(pScreen, pRegion);
-
- (*pScreen->PaintWindowBorder) (pWin, pRegion, what);
-
- vncHooksScreen->desktop->add_changed(changed.reg);
-
- SCREEN_REWRAP(PaintWindowBorder);
-}
-
// CopyWindow - destination of the copy is the old region, clipped by
// borderClip, translated by the delta. This call only does the copy - it
// doesn't affect any other bits.
@@ -534,16 +490,9 @@ static void vncHooksValidateGC(GCPtr pGC
(*pGC->funcs->ValidateGC) (pGC, changes, pDrawable);
u.vncHooksGC->wrappedOps = 0;
- if (pDrawable->type == DRAWABLE_WINDOW && ((WindowPtr)pDrawable)->viewable) {
- WindowPtr pWin = (WindowPtr)pDrawable;
- RegionPtr pRegion = &pWin->clipList;
-
- if (pGC->subWindowMode == IncludeInferiors)
- pRegion = &pWin->borderClip;
- if (REGION_NOTEMPTY(pDrawable->pScreen, pRegion)) {
- u.vncHooksGC->wrappedOps = pGC->ops;
- DBGPRINT((stderr,"vncHooksValidateGC: wrapped GC ops\n"));
- }
+ if (pDrawable->type == DRAWABLE_WINDOW || pDrawable->type == DRAWABLE_PIXMAP) {
+ u.vncHooksGC->wrappedOps = pGC->ops;
+ DBGPRINT((stderr,"vncHooksValidateGC: wrapped GC ops\n"));
}
}
vnc-privates.patch:
--- NEW FILE vnc-privates.patch ---
--- a/bin/xorg/hw/vnc/vncHooks.cc Mon Jan 21 17:29:11 2008 +0100
+++ b/bin/xorg/hw/vnc/vncHooks.cc Thu Jan 24 09:50:48 2008 +0100
@@ -86,9 +86,15 @@ typedef struct {
GCOps *wrappedOps;
} vncHooksGCRec, *vncHooksGCPtr;
-static int vncHooksScreenIndex;
-static int vncHooksGCIndex;
+static DevPrivateKey vncHooksScrPrivateKey = &vncHooksScrPrivateKey;
+static DevPrivateKey vncHooksGCPrivateKey = &vncHooksGCPrivateKey;
+#define vncHooksScreenPrivate(scrn) \
+ (vncHooksScreenPtr) dixLookupPrivate (&(scrn)->devPrivates, \
+ vncHooksScrPrivateKey)
+#define vncHooksGCPrivate(pGC) \
+ (vncHooksGCPtr) dixLookupPrivate (&(pGC)->devPrivates, \
+ vncHooksGCPrivateKey)
// screen functions
@@ -209,26 +215,11 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
if (vncHooksGeneration != serverGeneration) {
vncHooksGeneration = serverGeneration;
- vncHooksScreenIndex = AllocateScreenPrivateIndex();
- if (vncHooksScreenIndex < 0) {
- ErrorF("vncHooksInit: AllocateScreenPrivateIndex failed\n");
- return FALSE;
- }
-
- vncHooksGCIndex = AllocateGCPrivateIndex();
- if (vncHooksGCIndex < 0) {
- ErrorF("vncHooksInit: AllocateGCPrivateIndex failed\n");
- return FALSE;
- }
- }
-
- if (!AllocateGCPrivate(pScreen, vncHooksGCIndex, sizeof(vncHooksGCRec))) {
- ErrorF("vncHooksInit: AllocateGCPrivate failed\n");
- return FALSE;
+ if (!dixRequestPrivate (vncHooksGCPrivateKey, sizeof (vncHooksGCRec)))
+ return FALSE;
}
vncHooksScreen = (vncHooksScreenPtr)xnfalloc(sizeof(vncHooksScreenRec));
- pScreen->devPrivates[vncHooksScreenIndex].ptr = (pointer)vncHooksScreen;
vncHooksScreen->desktop = desktop;
@@ -266,6 +257,8 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
pScreen->DisplayCursor = vncHooksDisplayCursor;
pScreen->BlockHandler = vncHooksBlockHandler;
+ dixSetPrivate (&pScreen->devPrivates, vncHooksScrPrivateKey, vncHooksScreen);
+
return TRUE;
}
@@ -281,11 +274,10 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
// distinct type, so it would have to use templates, and it's not worth that
// much pain.
-#define SCREEN_UNWRAP(scrn,field) \
- ScreenPtr pScreen = scrn; \
- vncHooksScreenPtr vncHooksScreen \
- = ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr); \
- pScreen->field = vncHooksScreen->field; \
+#define SCREEN_UNWRAP(scrn,field) \
+ ScreenPtr pScreen = scrn; \
+ vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (scrn); \
+ pScreen->field = vncHooksScreen->field; \
DBGPRINT((stderr,"vncHooks" #field " called\n"));
#define SCREEN_REWRAP(field) pScreen->field = vncHooks##field;
@@ -322,8 +314,7 @@ static Bool vncHooksCreateGC(GCPtr pGC)
{
SCREEN_UNWRAP(pGC->pScreen, CreateGC);
- vncHooksGCPtr vncHooksGC
- = (vncHooksGCPtr)pGC->devPrivates[vncHooksGCIndex].ptr;
+ vncHooksGCPtr vncHooksGC = vncHooksGCPrivate (pGC);
Bool ret = (*pScreen->CreateGC) (pGC);
@@ -507,7 +498,7 @@ class GCFuncUnwrapper {
class GCFuncUnwrapper {
public:
GCFuncUnwrapper(GCPtr pGC_) : pGC(pGC_) {
- vncHooksGC = (vncHooksGCPtr)pGC->devPrivates[vncHooksGCIndex].ptr;
+ vncHooksGC = vncHooksGCPrivate (pGC);
pGC->funcs = vncHooksGC->wrappedFuncs;
if (vncHooksGC->wrappedOps)
pGC->ops = vncHooksGC->wrappedOps;
@@ -592,7 +583,7 @@ public:
GCOpUnwrapper(DrawablePtr pDrawable, GCPtr pGC_)
: pGC(pGC_), pScreen(pDrawable->pScreen)
{
- vncHooksGC = (vncHooksGCPtr)pGC->devPrivates[vncHooksGCIndex].ptr;
+ vncHooksGC = vncHooksGCPrivate (pGC);
oldFuncs = pGC->funcs;
pGC->funcs = vncHooksGC->wrappedFuncs;
pGC->ops = vncHooksGC->wrappedOps;
@@ -611,8 +602,7 @@ public:
#define GC_OP_UNWRAPPER(pDrawable, pGC, name) \
GCOpUnwrapper u(pDrawable, pGC); \
ScreenPtr pScreen = (pDrawable)->pScreen; \
- vncHooksScreenPtr vncHooksScreen \
- = ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr); \
+ vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (pScreen); \
DBGPRINT((stderr,"vncHooks" #name " called\n"));
@@ -1511,8 +1501,7 @@ static void vncHooksComposite(CARD8 op,
INT16 xDst, INT16 yDst, CARD16 width, CARD16 height)
{
ScreenPtr pScreen = pDst->pDrawable->pScreen;
- vncHooksScreenPtr vncHooksScreen = \
- ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr);
+ vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (pScreen);
PictureScreenPtr ps = GetPictureScreen(pScreen);
BoxRec box;
@@ -1534,8 +1523,7 @@ static void vncHooksGlyphs(CARD8 op, Pic
GlyphListPtr list, GlyphPtr *glyphs)
{
ScreenPtr pScreen = pDst->pDrawable->pScreen;
- vncHooksScreenPtr vncHooksScreen = \
- ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr);
+ vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (pScreen);
PictureScreenPtr ps = GetPictureScreen(pScreen);
int x, y;
int n;
vnc-selections.patch:
--- NEW FILE vnc-selections.patch ---
diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc.selections vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc
--- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc.selections 2008-03-10 15:34:24.000000000 +0100
+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc 2008-03-11 10:55:44.000000000 +0100
@@ -62,11 +62,9 @@ extern "C" {
static void SendSelectionChangeEvent(Atom selection);
static int ProcVncExtDispatch(ClientPtr client);
static int SProcVncExtDispatch(ClientPtr client);
+ static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args);
extern char *display;
-
- extern Selection *CurrentSelections;
- extern int NumCurrentSelections;
}
using namespace rfb;
@@ -99,7 +97,6 @@ struct VncInputSelect {
VncInputSelect* next;
};
-static int nPrevSelections = 0;
static TimeStamp* prevSelectionTimes = 0;
static int vncErrorBase = 0;
@@ -147,6 +144,10 @@ void vncExtensionInit()
FatalError("AddCallback failed\n");
}
+ if (!AddCallback(&SelectionCallback, vncSelectionCallback, 0)) {
+ FatalError("Add selection callback failed\n");
+ }
+
try {
if (!initialised) {
rfb::initStdIOLoggers();
@@ -212,6 +213,14 @@ static void vncResetProc(ExtensionEntry*
{
}
+static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args)
+{
+ SelectionInfoRec *info = (SelectionInfoRec *) args;
+ Selection *selection = info->selection;
+
+ SendSelectionChangeEvent(selection->selection);
+}
+
//
// vncBlockHandler - called just before the X server goes into select(). Call
// on to the block handler for each desktop. Then check whether any of the
@@ -227,27 +236,6 @@ static void vncBlockHandler(pointer data
desktop[scr]->blockHandler(fds);
}
}
-
- if (nPrevSelections != NumCurrentSelections) {
- prevSelectionTimes
- = (TimeStamp*)xnfrealloc(prevSelectionTimes,
- NumCurrentSelections * sizeof(TimeStamp));
- for (int i = nPrevSelections; i < NumCurrentSelections; i++) {
- prevSelectionTimes[i].months = 0;
- prevSelectionTimes[i].milliseconds = 0;
- }
- nPrevSelections = NumCurrentSelections;
- }
- for (int i = 0; i < NumCurrentSelections; i++) {
- if (CurrentSelections[i].lastTimeChanged.months
- != prevSelectionTimes[i].months ||
- CurrentSelections[i].lastTimeChanged.milliseconds
- != prevSelectionTimes[i].milliseconds)
- {
- SendSelectionChangeEvent(CurrentSelections[i].selection);
- prevSelectionTimes[i] = CurrentSelections[i].lastTimeChanged;
- }
- }
}
static void vncWakeupHandler(pointer data, int nfds, pointer readmask)
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/vnc/devel/.cvsignore,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- .cvsignore 22 Jan 2008 17:16:12 -0000 1.23
+++ .cvsignore 11 Mar 2008 12:50:34 -0000 1.24
@@ -1,3 +1 @@
vnc-4_1_2-unixsrc.tar.gz
-vnc-4_1-javasrc.tar.gz
-xserver-1.3.0.0-37.fc8.tar.bz2
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/vnc/devel/sources,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- sources 22 Jan 2008 17:16:12 -0000 1.24
+++ sources 11 Mar 2008 12:50:34 -0000 1.25
@@ -1,3 +1 @@
cf9a6fe8f592286b5e0fdde686504ffb vnc-4_1_2-unixsrc.tar.gz
-9407ce1f215aefca77bef12670745280 vnc-4_1-javasrc.tar.gz
-db16d9f0e5b19a34ac5e6f353b79ec8d xserver-1.3.0.0-37.fc8.tar.bz2
vnc-autotools.patch:
Index: vnc-autotools.patch
===================================================================
RCS file: /cvs/pkgs/rpms/vnc/devel/vnc-autotools.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- vnc-autotools.patch 2 Mar 2007 15:33:54 -0000 1.2
+++ vnc-autotools.patch 11 Mar 2008 12:50:34 -0000 1.3
@@ -366,32 +366,6 @@
+ vncviewer/Makefile
+ x0vncserver/Makefile])
+AC_OUTPUT
---- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/Makefile.am.autotools 2007-02-16 09:52:43.000000000 +0100
-+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/Makefile.am 2007-02-16 09:53:24.000000000 +0100
-@@ -42,10 +42,7 @@
- ../xfree86/common/libcommon.la \
- -lX11 \
- libvnccommon.la \
-- ../../../../common/rfb/librfb.a \
-- ../../../../common/rdr/librdr.a \
-- ../../../../common/network/libnetwork.a \
-- ../../../../common/Xregion/libXregion.a
-+ ../../../../common/rfb/librfb.la
-
- Xvnc_CFLAGS = -DHAVE_DIX_CONFIG_H \
- -DNO_HW_ONLY_EXTS \
-@@ -68,10 +65,7 @@
- libvnc_la_SOURCES = xf86vncModule.cc
- libvnc_la_LIBADD = \
- libvnccommon.la \
-- ../../../../common/rfb/librfb.a \
-- ../../../../common/rdr/librdr.a \
-- ../../../../common/network/libnetwork.a \
-- ../../../../common/Xregion/libXregion.a
-+ ../../../../common/rfb/librfb.la
- libvnc_la_CXXFLAGS = \
- -I../../../../common \
- -I$(top_srcdir)/hw/xfree86/common \
--- /dev/null 2007-02-16 09:39:42.585819347 +0100
+++ vnc-4_1_2-unixsrc/unix/vncviewer/Makefile.am 2007-02-16 09:51:11.000000000 +0100
@@ -0,0 +1,24 @@
vnc-gcc43.patch:
Index: vnc-gcc43.patch
===================================================================
RCS file: /cvs/pkgs/rpms/vnc/devel/vnc-gcc43.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- vnc-gcc43.patch 22 Jan 2008 17:16:12 -0000 1.1
+++ vnc-gcc43.patch 11 Mar 2008 12:50:34 -0000 1.2
@@ -11,17 +11,6 @@
#include <network/TcpSocket.h>
#include <rfb/util.h>
#include <rfb/LogWriter.h>
-diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/render/picturestr.h.gcc43 vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/render/picturestr.h
---- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/render/picturestr.h.gcc43 2008-01-09 14:57:58.000000000 +0100
-+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/render/picturestr.h 2008-01-09 14:58:08.000000000 +0100
-@@ -26,6 +26,7 @@
- #ifndef _PICTURESTR_H_
- #define _PICTURESTR_H_
-
-+#include <X11/X.h>
- #include "glyphstr.h"
- #include "scrnintstr.h"
- #include "resource.h"
diff -up vnc-4_1_2-unixsrc/unix/tx/TXImage.cxx.gcc43 vnc-4_1_2-unixsrc/unix/tx/TXImage.cxx
--- vnc-4_1_2-unixsrc/unix/tx/TXImage.cxx.gcc43 2006-05-15 18:56:20.000000000 +0200
+++ vnc-4_1_2-unixsrc/unix/tx/TXImage.cxx 2008-01-09 14:51:54.000000000 +0100
vnc-modular-xorg.patch:
Index: vnc-modular-xorg.patch
===================================================================
RCS file: /cvs/pkgs/rpms/vnc/devel/vnc-modular-xorg.patch,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- vnc-modular-xorg.patch 2 Mar 2007 15:33:54 -0000 1.12
+++ vnc-modular-xorg.patch 11 Mar 2008 12:50:34 -0000 1.13
@@ -1,142 +1,3 @@
---- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/mi/miinitext.c.modular-xorg 2007-03-02 15:45:37.000000000 +0100
-+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/mi/miinitext.c 2007-03-02 15:45:38.000000000 +0100
-@@ -283,6 +283,9 @@
- #ifdef MITMISC
- extern void MITMiscExtensionInit(INITARGS);
- #endif
-+#ifdef VNCEXT
-+extern void vncExtensionInit(INITARGS);
-+#endif
- #ifdef XIDLE
- extern void XIdleExtensionInit(INITARGS);
- #endif
-@@ -561,6 +564,9 @@
- #ifdef MITMISC
- if (!noMITMiscExtension) MITMiscExtensionInit();
- #endif
-+#ifdef VNCEXT
-+ vncExtensionInit();
-+#endif
- #ifdef XIDLE
- if (!noXIdleExtension) XIdleExtensionInit();
- #endif
---- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/Makefile.am.modular-xorg 2007-03-02 15:45:38.000000000 +0100
-+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/Makefile.am 2007-03-02 15:47:10.000000000 +0100
-@@ -30,6 +30,8 @@
- XPRINT_SUBDIRS = xprint
- endif
-
-+XVNC_SUBDIRS = vnc
-+
- # need to add darwin support here
-
- SUBDIRS = \
-@@ -39,6 +41,7 @@
- $(XVFB_SUBDIRS) \
- $(XNEST_SUBDIRS) \
- $(DMX_SUBDIRS) \
-+ $(XVNC_SUBDIRS) \
- $(KDRIVE_SUBDIRS) \
- $(XPRINT_SUBDIRS)
-
---- /dev/null 2007-03-01 10:25:08.783929433 +0100
-+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/Makefile.am 2007-03-02 15:45:38.000000000 +0100
-@@ -0,0 +1,85 @@
-+noinst_LTLIBRARIES = libvnccommon.la
-+libvnccommon_la_SOURCES = \
-+ RegionHelper.h \
-+ vncExtInit.cc \
-+ vncExtInit.h \
-+ vncHooks.cc \
-+ vncHooks.h \
-+ XserverDesktop.cc \
-+ XserverDesktop.h
-+
-+libvnccommon_la_CXXFLAGS = \
-+ -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
-+ -DVENDOR_STRING="\"$(VENDOR_STRING)\"" \
-+ -DGC_HAS_COMPOSITE_CLIP \
-+ -DVNC_USE_FB \
-+ -I/usr/include/X11 \
-+ -I../../../../common \
-+ -I../../../vncconfig
-+
-+bin_PROGRAMS = Xvnc
-+
-+Xvnc_SOURCES = \
-+ xvnc.cc \
-+ $(top_srcdir)/Xext/dpmsstubs.c \
-+ $(top_srcdir)/Xi/stubs.c \
-+ $(top_srcdir)/mi/miinitext.c \
-+ $(top_srcdir)/fb/fbcmap.c
-+
-+Xvnc_LDADD = $(XORG_CORE_LIBS) \
-+ $(XORG_LIBS) \
-+ $(XSERVER_LIBS) \
-+ ../../fb/libfb.la \
-+ ../../mi/libminimi.la \
-+ ../../render/librender.la \
-+ ../../xkb/libxkbstubs.la \
-+ ../../dbe/libdbe.la \
-+ ../../Xext/libXext.la \
-+ ../../XTrap/libxtrap.la \
-+ ../../record/librecord.la \
-+ ../xfree86/os-support/libxorgos.la \
-+ ../../os/libos.la \
-+ ../xfree86/common/libcommon.la \
-+ -lX11 \
-+ libvnccommon.la \
-+ ../../../../common/rfb/librfb.a \
-+ ../../../../common/rdr/librdr.a \
-+ ../../../../common/network/libnetwork.a \
-+ ../../../../common/Xregion/libXregion.a
-+
-+Xvnc_CFLAGS = -DHAVE_DIX_CONFIG_H \
-+ -DNO_HW_ONLY_EXTS \
-+ -DNO_MODULE_EXTS \
-+ -DXFree86Server -DVNCEXT
-+
-+Xvnc_CXXFLAGS = $(Xvnc_CFLAGS) \
-+ -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
-+ -DVENDOR_STRING="\"$(VENDOR_STRING)\"" \
-+ -DVNC_USE_FB \
-+ -I../../../../common \
-+ -I../../../vncconfig \
-+ -I../../mi \
-+ -I ../../render \
-+ -I/usr/include/X11
-+
-+libvnc_la_LTLIBRARIES = libvnc.la
-+libvnc_la_LDFLAGS = -module -avoid-version
-+libvnc_ladir = $(moduledir)/extensions
-+libvnc_la_SOURCES = xf86vncModule.cc
-+libvnc_la_LIBADD = \
-+ libvnccommon.la \
-+ ../../../../common/rfb/librfb.a \
-+ ../../../../common/rdr/librdr.a \
-+ ../../../../common/network/libnetwork.a \
-+ ../../../../common/Xregion/libXregion.a
-+libvnc_la_CXXFLAGS = \
-+ -I../../../../common \
-+ -I$(top_srcdir)/hw/xfree86/common \
-+ -I$(top_srcdir)/hw/xfree86/os-support \
-+ -I$(top_srcdir)/hw/xfree86/os-support/bus \
-+ -DXFree86Module -DXFree86LOADER -DIN_MODULE
-+
-+AM_CXXFLAGS = $(CFLAGS) \
-+ -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
-+ -DVENDOR_STRING="\"$(VENDOR_STRING)\""
-+
---- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/configure.ac.modular-xorg 2007-03-02 15:45:38.000000000 +0100
-+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/configure.ac 2007-03-02 15:45:38.000000000 +0100
-@@ -1793,6 +1793,7 @@
- hw/xnest/Makefile
- hw/xwin/Makefile
- hw/darwin/Makefile
-+hw/vnc/Makefile
- hw/kdrive/Makefile
- hw/kdrive/ati/Makefile
- hw/kdrive/chips/Makefile
--- vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc.modular-xorg 2007-03-02 15:45:38.000000000 +0100
+++ vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc 2007-03-02 15:45:38.000000000 +0100
@@ -36,8 +36,6 @@
Index: vnc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/vnc/devel/vnc.spec,v
retrieving revision 1.183
retrieving revision 1.184
diff -u -r1.183 -r1.184
--- vnc.spec 18 Feb 2008 20:08:25 -0000 1.183
+++ vnc.spec 11 Mar 2008 12:50:34 -0000 1.184
@@ -1,21 +1,16 @@
%define vnc_version 4_1_2
-%define java_vnc_version 4_1
Summary: A remote display system
Name: vnc
Version: 4.1.2
-Release: 25%{?dist}
+Release: 25.3%{?dist}
URL: http://www.realvnc.com
Source0: http://www.realvnc.com/dist/vnc-%{vnc_version}-unixsrc.tar.gz
-Source1: http://www.realvnc.com/dist/vnc-%{java_vnc_version}-javasrc.tar.gz
Source2: vncserver.init
Source3: vnc-16x16.png
Source4: vnc-24x24.png
Source5: vnc-48x48.png
-
-# XXX Temporary build with F8 xserver due new Input events handling in 1.4.99
-Source6: xserver-1.3.0.0-37.fc8.tar.bz2
-
+Source1: Makefile.am
Patch0: vnc-cookie.patch
Patch1: vnc-gcc4.patch
Patch2: vnc-use-fb.patch
@@ -40,30 +35,33 @@
Patch33: vnc-always_use_fb.patch
Patch34: vnc-vsnprintf.patch
Patch36: vnc-24bit.patch
-Patch37: vnc-noxorg.patch
Patch38: vnc-gcc43.patch
-Patch39: vnc-F9mesa.patch
+Patch40: vnc-xorg.patch
+Patch41: vnc-privates.patch
+Patch42: vnc-mieq.patch
+Patch43: vnc-allocate.patch
+Patch44: vnc-noxkb.patch
+Patch45: vnc-paint.patch
+Patch46: vnc-selections.patch
License: GPLv2
Group: User Interface/Desktops
BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: perl
BuildRequires: zlib-devel libjpeg-devel
BuildRequires: desktop-file-utils >= 0.2.92
-BuildRequires: gcc-java
BuildRequires: autoconf, automake, libtool, flex, bison, pkgconfig, patchutils
BuildRequires: expat-devel, freetype-devel
BuildRequires: libX11-devel, xorg-x11-xtrans-devel, libXau-devel
BuildRequires: libXdmcp-devel, libxkbfile-devel, libXfont-devel
BuildRequires: xorg-x11-proto-devel, libXext-devel, tcp_wrappers-devel
BuildRequires: libXtst-devel, libfontenc-devel, xorg-x11-util-macros
-BuildRequires: libXt-devel
-BuildRequires: libstdc++-devel, gcc-c++, libselinux-devel
-#BuildRequires: xorg-x11-server-source
+BuildRequires: libXt-devel, libXv-devel, pixman-devel
+BuildRequires: libselinux-devel
+BuildRequires: xorg-x11-server-source
BuildRequires: mesa-libGL-devel >= 6.5.2, mesa-source >= 6.5.2, libdrm-devel
Requires: gtk2 >= 2.6
Requires: coreutils
-Requires: vnc-libs
%description
Virtual Network Computing (VNC) is a remote display system which
@@ -75,8 +73,7 @@
%package server
Summary: A VNC server
-Requires: bash >= 2.0, util-linux, xorg-x11-fonts-base, xorg-x11-xauth, chkconfig
-Requires: vnc-libs
+Requires: bash >= 2.0, util-linux, xorg-x11-xauth, chkconfig
Group: User Interface/X
%description server
@@ -93,12 +90,9 @@
%prep
%setup -q -n vnc-%{vnc_version}-unixsrc -a1
-
-# XXX - new event handling in 1.4.99 xserver
-#cp -r %{_datadir}/xorg-x11-server-source unix
-pushd unix; mkdir xorg-x11-server-source; cd xorg-x11-server-source
-tar xf %{SOURCE6}
-popd
+cp -r %{_datadir}/xorg-x11-server-source unix
+mkdir -p unix/xorg-x11-server-source/hw/vnc
+cp %{SOURCE1} unix/xorg-x11-server-source/hw/vnc/
%patch0 -p1 -b .cookie
%patch1 -p1 -b .gcc4
@@ -109,6 +103,9 @@
%patch8 -p1 -b .restart
%patch9 -p1 -b .vncpasswd
%patch11 -p1 -b .modular-xorg
+pushd unix/xorg-x11-server-source
+%patch40 -p1 -b .vnc
+popd
%patch12 -p1 -b .nohttpd
%patch15 -p1 -b .viewer-reparent
%patch16 -p1 -b .64bit
@@ -124,38 +121,42 @@
%patch33 -p1 -b .always_use_fb
%patch34 -p1 -b .vsnprintf
%patch36 -p1 -b .24bit
-%patch37 -p1 -b .nomodule
%patch38 -p1 -b .gcc43
-%patch39 -p1 -b .F9mesa
cp -a unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc \
unix/xc/programs/Xserver/Xvnc.man \
unix/xc/programs/Xserver/vnc/*.{h,cc} \
unix/xorg-x11-server-source/hw/vnc/
-cp -a unix/xorg-x11-server-source/{cfb/cfb.h,hw/vnc}
-cp -a unix/xorg-x11-server-source/{fb/fb.h,hw/vnc}
-cp -a unix/xorg-x11-server-source/{fb/fbrop.h,hw/vnc}
-sed -i -e 's,xor,c_xor,' -e 's,and,c_and,' \
- unix/xorg-x11-server-source/hw/vnc/{cfb,fb,fbrop}.h
+
+pushd unix/xorg-x11-server-source/hw/vnc
+%patch41 -p5 -b .privates
+popd
+%patch42 -p1 -b .mieq
+%patch43 -p1 -b .alloc
+%patch44 -p1 -b .noxkb
+%patch45 -p1 -b .paint
+%patch46 -p1 -b .selections
%build
-cd common
+export CFLAGS="$CFLAGS $RPM_OPT_FLAGS -O0"
+export CXXFLAGS="$CFLAGS"
+
+pushd common
autoreconf -fiv
%configure
make %{?_smp_mflags}
+popd
-cd ../vnc-%{java_vnc_version}-javasrc/java
-make JAVAC="gcj -C" JAR=fastjar %{?_smp_mflags}
-
-cd ../../unix
+pushd unix
autoreconf -fiv
%configure
make %{?_smp_mflags}
+popd
-cd xorg-x11-server-source
-aclocal; automake -a; autoconf
+pushd unix/xorg-x11-server-source
+autoreconf -fiv
%configure --disable-xorg \
- --disable-xnest --enable-xvfb \
+ --disable-xnest --disable-xvfb \
--disable-dmx --disable-xwin --disable-xephyr --disable-kdrive \
--with-pic \
--disable-xorgcfg \
@@ -174,9 +175,12 @@
--disable-xevie \
--disable-dri \
--enable-glx \
+ --disable-config-dbus \
+ --disable-config-hal \
--with-mesa-source=%{_datadir}/mesa/source
make %{?_smp_mflags}
+popd
%install
rm -rf $RPM_BUILD_ROOT
@@ -201,9 +205,6 @@
make install DESTDIR=$RPM_BUILD_ROOT
cd ../../../
-mkdir -p $RPM_BUILD_ROOT%{_datadir}/vnc/classes
-cp -a ../vnc-%{java_vnc_version}-javasrc/java/{index.vnc,logo150x150.gif,vncviewer.jar} $RPM_BUILD_ROOT%{_datadir}/vnc/classes
-
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
install -m755 %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vncserver
@@ -258,7 +259,7 @@
--add-category Application \
vncviewer.desktop
-# removing unwanted files
+# remove unwanted files
rm -f $RPM_BUILD_ROOT%{_libdir}/librfb.a
rm -f $RPM_BUILD_ROOT%{_libdir}/librfb.la
rm -f $RPM_BUILD_ROOT%{_libdir}/librfb.so
@@ -313,7 +314,6 @@
%{_bindir}/vncconfig
%{_bindir}/vncserver
%{_bindir}/x0vncserver
-%{_datadir}/vnc
%{_mandir}/man1/Xvnc.1*
%{_mandir}/man1/vncpasswd.1*
%{_mandir}/man1/vncconfig.1*
@@ -326,6 +326,16 @@
%{_libdir}/librfb.so.*
%changelog
+* Mon Mar 11 2008 Adam Tkac <atkac redhat com> 4.1.2-25.3
+- BuildRequires and Requires cleanup
+- don't build java viewer (problems due new gcj)
+- use xorg codebase from xorg-x11-server-source package again
+ - vnc-selection.patch - new xserver selection API/ABI
+ - vnc-xkb.patch - disable XKEYBOARD extension
+ - vnc-paint.patch - PaintWindow{Background,Border} hooks have been removed
+ - vnc-privates.patch - update devPrivates handling
+ - vnc-mieq.patch - use event queue to handle input events
+
* Mon Feb 18 2008 Fedora Release Engineering <rel-eng at fedoraproject.org> - 4.1.2-25
- Autorebuild for GCC 4.3
- Previous message (by thread): devel/vim 7.1.270, NONE, 1.1 README.patches, 1.99, 1.100 vim.spec, 1.197, 1.198 vimrc, 1.17, 1.18
- Next message (by thread): rpms/vnc/devel Makefile.am,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list