socat: fix termios stuff, closes #1407
authorBastian Ballmann <balle@chaostal.de>
Wed, 13 Sep 2006 21:06:11 +0000 (21:06 +0000)
committerKoen Kooi <koen@openembedded.org>
Wed, 13 Sep 2006 21:06:11 +0000 (21:06 +0000)
packages/socat/socat-1.3.2.1/xioinitialize.patch [new file with mode: 0644]
packages/socat/socat-1.3.2.1/xioopen.patch [new file with mode: 0644]
packages/socat/socat_1.3.2.1.bb

diff --git a/packages/socat/socat-1.3.2.1/xioinitialize.patch b/packages/socat/socat-1.3.2.1/xioinitialize.patch
new file mode 100644 (file)
index 0000000..24e816c
--- /dev/null
@@ -0,0 +1,52 @@
+diff -Naur socat-1.3/xioinitialize.c socat-1.3_patched/xioinitialize.c
+--- socat-1.3/xioinitialize.c  2003-05-23 08:24:53.000000000 +0200
++++ socat-1.3_patched/xioinitialize.c  2006-09-09 18:18:19.000000000 +0200
+@@ -19,48 +19,10 @@
+    assert(O_WRONLY==1);
+    assert(O_RDWR==2);
+-   /* some assertions about termios */
+-#if WITH_TERMIOS
+-#ifdef CRDLY
+-   assert(3 << opt_crdly.arg3  == CRDLY);
+-#endif
+-#ifdef TABDLY
+-   assert(3 << opt_tabdly.arg3 == TABDLY);
+-#endif
+-   assert(3 << opt_csize.arg3  == CSIZE);
+-   {
+-      union {
+-       struct termios termarg;
+-       tcflag_t flags[4];
+-#if HAVE_TERMIOS_ISPEED
+-       speed_t speeds[sizeof(struct termios)/sizeof(speed_t)];
+-#endif
+-      } tdata;
+-      tdata.termarg.c_iflag = 0x12345678;
+-      tdata.termarg.c_oflag = 0x23456789;
+-      tdata.termarg.c_cflag = 0x3456789a;
+-      tdata.termarg.c_lflag = 0x456789ab;
+-      assert(tdata.termarg.c_iflag == tdata.flags[0]);
+-      assert(tdata.termarg.c_oflag == tdata.flags[1]);
+-      assert(tdata.termarg.c_cflag == tdata.flags[2]);
+-      assert(tdata.termarg.c_lflag == tdata.flags[3]);
+-#if HAVE_TERMIOS_ISPEED
+-      tdata.termarg.c_ispeed = 0x56789abc;
+-      tdata.termarg.c_ospeed = 0x6789abcd;
+-      assert(tdata.termarg.c_ispeed == tdata.speeds[ISPEED_OFFSET]);
+-      assert(tdata.termarg.c_ospeed == tdata.speeds[OSPEED_OFFSET]);
+-#endif
+-   }
+-#endif
+-
+    /* these dependencies required in applyopts() for OFUNC_FCNTL */
+    assert(F_GETFD == F_SETFD-1);
+    assert(F_GETFL == F_SETFL-1);
+-   if (Atexit(xioexit) < 0) {
+-      Error("atexit(xioexit) failed");
+-      return -1;
+-   }
+    xioinitialized = 1;
+    return 0;
+ }
diff --git a/packages/socat/socat-1.3.2.1/xioopen.patch b/packages/socat/socat-1.3.2.1/xioopen.patch
new file mode 100644 (file)
index 0000000..4568626
--- /dev/null
@@ -0,0 +1,11 @@
+diff -Naur socat-1.3/xioopen.h socat-1.3_patched/xioopen.h
+--- socat-1.3/xioopen.h        2003-02-15 15:26:22.000000000 +0100
++++ socat-1.3_patched/xioopen.h        2006-09-05 10:49:15.000000000 +0200
+@@ -42,7 +42,6 @@
+ extern const char *ddirection[];
+ extern const char *filetypenames[];
+ extern const struct addrname addressnames[];
+-extern const char *addressgroupnames[];
+ extern const struct optname optionnames[];
+ extern int xioopen_makedual(xiofile_t *file);
index 378ea60..41ea3a8 100644 (file)
@@ -3,12 +3,18 @@ DEPENDS = "openssl"
 DESCRIPTION = "Socat is a relay for bidirectional data \
 transfer between two independent data channels."
 LICENSE = "GPL"
+PR="r1"
+
 SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \
-          file://ldflags.patch;patch=1"
+           file://xioopen.patch;patch=1 \ 
+           file://ldflags.patch;patch=1 \
+           file://xioinitialize.patch;patch=1"
+
 S = "${WORKDIR}/socat-1.3"
 
 inherit autotools
 
 do_install_prepend () {
+        mkdir -p ${D}${bindir}
        install -d ${D}${bindir} ${D}${mandir}/man1
 }