mirror of
https://git.yoctoproject.org/poky
synced 2026-09-20 03:49:32 +02:00
xtrans: Add patch from upstream to fix abstract socket handling
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4113 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
@@ -2,6 +2,4 @@ require xtrans_${PV}.bb
|
|||||||
|
|
||||||
DEPENDS = "util-macros-native"
|
DEPENDS = "util-macros-native"
|
||||||
|
|
||||||
SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2"
|
|
||||||
|
|
||||||
inherit native
|
inherit native
|
||||||
|
|||||||
@@ -2,6 +2,4 @@ require xtrans_${PV}.bb
|
|||||||
|
|
||||||
DEPENDS = "util-macros-sdk"
|
DEPENDS = "util-macros-sdk"
|
||||||
|
|
||||||
SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2"
|
|
||||||
|
|
||||||
inherit sdk
|
inherit sdk
|
||||||
|
|||||||
58
meta/packages/xorg-lib/xtrans/abstract_socket_fix.patch
Normal file
58
meta/packages/xorg-lib/xtrans/abstract_socket_fix.patch
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
From 556a351de83fc6f401b02213dae95731553c216d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Loïc Minier <lool@dooz.org>
|
||||||
|
Date: Mon, 24 Mar 2008 19:38:27 +0000
|
||||||
|
Subject: Bug #10489: Don't retry unix socket connect()s on ENOENT.
|
||||||
|
|
||||||
|
If the socket isn't there, it's not gonna magically appear. Either it's
|
||||||
|
a server socket and you should have just waited for the SIGUSR1 from the
|
||||||
|
server, or it's a stale reference to an ICE socket.
|
||||||
|
|
||||||
|
However, do retry once, so fallback from abstract to filesystem namespace
|
||||||
|
works.
|
||||||
|
|
||||||
|
Originally Debian bug #385976.
|
||||||
|
---
|
||||||
|
diff --git a/Xtranssock.c b/Xtranssock.c
|
||||||
|
index 8a7d2ec..da4afe9 100644
|
||||||
|
--- a/Xtranssock.c
|
||||||
|
+++ b/Xtranssock.c
|
||||||
|
@@ -2146,8 +2146,13 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
|
||||||
|
errno = olderrno;
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * If the error was ENOENT, the server may be starting up
|
||||||
|
- * and we should try again.
|
||||||
|
+ * If the error was ENOENT, the server may be starting up; we used
|
||||||
|
+ * to suggest to try again in this case with
|
||||||
|
+ * TRANS_TRY_CONNECT_AGAIN, but this introduced problems for
|
||||||
|
+ * processes still referencing stale sockets in their environment.
|
||||||
|
+ * Hence, we now return a hard error, TRANS_CONNECT_FAILED, and it
|
||||||
|
+ * is suggested that higher level stacks handle retries on their
|
||||||
|
+ * level when they face a slow starting server.
|
||||||
|
*
|
||||||
|
* If the error was EWOULDBLOCK or EINPROGRESS then the socket
|
||||||
|
* was non-blocking and we should poll using select
|
||||||
|
@@ -2161,14 +2166,14 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
|
||||||
|
else if (olderrno == EINTR)
|
||||||
|
return TRANS_TRY_CONNECT_AGAIN;
|
||||||
|
else if (olderrno == ENOENT) {
|
||||||
|
- /*
|
||||||
|
- * If opening as abstract socket failed, try again "normally"
|
||||||
|
- */
|
||||||
|
- if (abstract)
|
||||||
|
+ /* If opening as abstract socket failed, try again normally */
|
||||||
|
+ if (abstract) {
|
||||||
|
ciptr->transptr->flags &= ~(TRANS_ABSTRACT);
|
||||||
|
- return TRANS_TRY_CONNECT_AGAIN;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
+ return TRANS_TRY_CONNECT_AGAIN;
|
||||||
|
+ } else {
|
||||||
|
+ return TRANS_CONNECT_FAILED;
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
PRMSG (2,"SocketUNIXConnect: Can't connect: errno = %d\n",
|
||||||
|
EGET(),0, 0);
|
||||||
|
|
||||||
|
--
|
||||||
|
cgit v0.7.2-37-g538c
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
require xorg-lib-common.inc
|
require xorg-lib-common.inc
|
||||||
|
|
||||||
|
SRC_URI += "file://abstract_socket_fix.patch;patch=1"
|
||||||
|
|
||||||
|
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/xtrans"
|
||||||
|
|
||||||
DESCRIPTION = "network API translation layer to insulate X applications and \
|
DESCRIPTION = "network API translation layer to insulate X applications and \
|
||||||
libraries from OS network vageries."
|
libraries from OS network vageries."
|
||||||
PE = "1"
|
PE = "1"
|
||||||
PR = "r3"
|
PR = "r4"
|
||||||
|
|
||||||
RDEPENDS_${PN}-dev = ""
|
RDEPENDS_${PN}-dev = ""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user