[packages] tmux: update to 1.5
authorJan Willies <loswillios@gmail.com>
Sun, 31 Jul 2011 15:19:51 +0000 (15:19 +0000)
committerJan Willies <loswillios@gmail.com>
Sun, 31 Jul 2011 15:19:51 +0000 (15:19 +0000)
SVN-Revision: 27847

utils/tmux/Makefile
utils/tmux/patches/010-backport-b64_ntop-fix.patch [new file with mode: 0644]

index eaa45bbd74f4dfe2a3533f8012e1a3b3a2a28d30..6f32539823c54057cd0edc59e0317998cec5ff65 100644 (file)
@@ -8,14 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tmux
-PKG_VERSION:=1.4
+PKG_VERSION:=1.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/tmux
-PKG_MD5SUM:=0bfc7dd9a5bab192406167589c716a21
+PKG_MD5SUM:=3d4b683572af34e83bc8b183a8285263
 
 PKG_INSTALL:=1
+PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
diff --git a/utils/tmux/patches/010-backport-b64_ntop-fix.patch b/utils/tmux/patches/010-backport-b64_ntop-fix.patch
new file mode 100644 (file)
index 0000000..92a7f6c
--- /dev/null
@@ -0,0 +1,316 @@
+Index: tmux-1.5/configure.ac
+===================================================================
+--- tmux-1.5.orig/configure.ac 2011-07-09 18:00:17.000000000 +0200
++++ tmux-1.5/configure.ac      2011-07-31 17:00:47.000000000 +0200
+@@ -12,6 +12,7 @@
+ # autoconf will automatically use CFLAGS="-O2 -g". Prevent that by using an
+ # empty default.
+ : ${CFLAGS=""}
++
+ # Set up the compiler in two different ways and say yes we may want to install.
+ AC_PROG_CC
+ AM_PROG_CC_C_O
+@@ -52,9 +53,8 @@
+ AC_ARG_ENABLE(
+        static,
+        AC_HELP_STRING(--enable-static, create a static build),
+-       [found_static=$enable_static]
++       [LDFLAGS="$LDFLAGS -static"]
+ )
+-AM_CONDITIONAL(IS_STATIC, test "x" = xyes)
+ # Is this gcc?
+ AM_CONDITIONAL(IS_GCC, test "x$GCC" = xyes)
+@@ -105,9 +105,14 @@
+ AC_CHECK_LIB(rt, clock_gettime)
+ # Look for libevent.
+-AC_SEARCH_LIBS(event_init, [event event-1.4 event2], found_libevent=yes, found_libevent=no)
++AC_SEARCH_LIBS(
++      event_init,
++      [event event-1.4 event2],
++      found_libevent=yes,
++      found_libevent=no
++)
+ if test "x$found_libevent" = xno; then
+-    AC_MSG_ERROR("libevent not found")
++      AC_MSG_ERROR("libevent not found")
+ fi
+ # Look for curses.
+@@ -121,9 +126,44 @@
+     AC_MSG_ERROR("curses not found")
+ fi
++# Check for b64_ntop.
++AC_MSG_CHECKING(for b64_ntop)
++AC_TRY_LINK(
++      [
++              #include <sys/types.h>
++              #include <netinet/in.h>
++              #include <resolv.h>
++      ],
++      [b64_ntop(NULL, 0, NULL, 0);],
++      found_b64_ntop=yes,
++      found_b64_ntop=no
++)
++if test "x$found_b64_ntop" = xno; then
++      AC_MSG_RESULT(no)
++
++      AC_MSG_CHECKING(for b64_ntop with -lresolv)
++      LIBS="$LIBS -lresolv"
++      AC_TRY_LINK(
++              [
++                      #include <sys/types.h>
++                      #include <netinet/in.h>
++                      #include <resolv.h>
++              ],
++              [b64_ntop(NULL, 0, NULL, 0);],
++              found_b64_ntop=yes,
++              found_b64_ntop=no
++      )
++      if test "x$found_b64_ntop" = xno; then
++              AC_MSG_RESULT(no)
++      fi
++fi
++if test "x$found_b64_ntop" = xyes; then
++      AC_DEFINE(HAVE_B64_NTOP)
++      AC_MSG_RESULT(yes)
++fi
++AM_CONDITIONAL(NO_B64_NTOP, [test "x$found_b64_ntop" = xno])
++
+ # Look for networking libraries.
+-AC_SEARCH_LIBS(b64_ntop, resolv)
+-AC_SEARCH_LIBS(__b64_ntop, resolv)
+ AC_SEARCH_LIBS(inet_ntoa, nsl)
+ AC_SEARCH_LIBS(socket, socket)
+ AC_CHECK_LIB(xnet, socket)
+Index: tmux-1.5/compat.h
+===================================================================
+--- tmux-1.5.orig/compat.h     2011-07-09 11:42:38.000000000 +0200
++++ tmux-1.5/compat.h  2011-07-31 17:00:24.000000000 +0200
+@@ -196,6 +196,11 @@
+ int            daemon(int, int);
+ #endif
++#ifndef HAVE_B64_NTOP
++/* b64_ntop.c */
++int            b64_ntop(const char *, size_t, char *, size_t);
++#endif
++
+ #ifndef HAVE_FORKPTY
+ /* forkpty.c */
+ #include <sys/ioctl.h>
+Index: tmux-1.5/Makefile.am
+===================================================================
+--- tmux-1.5.orig/Makefile.am  2011-07-09 15:45:24.000000000 +0200
++++ tmux-1.5/Makefile.am       2011-07-31 17:00:47.000000000 +0200
+@@ -43,11 +43,6 @@
+ endif
+ endif
+-# Set flags for static.
+-if IS_STATIC
+-LDFLAGS += -static
+-endif
+-
+ # Set flags for Solaris.
+ if IS_SUNOS
+ CPPFLAGS += -D_XPG4_2 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
+@@ -226,6 +221,9 @@
+ if NO_STRTONUM
+ nodist_tmux_SOURCES += compat/strtonum.c
+ endif
++if NO_B64_NTOP
++nodist_tmux_SOURCES += compat/b64_ntop.c
++endif
+ # Update SF web site.
+ upload-index.html: update-index.html
+Index: tmux-1.5/compat/b64_ntop.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ tmux-1.5/compat/b64_ntop.c 2011-07-31 17:04:03.000000000 +0200
+@@ -0,0 +1,182 @@
++/*
++ * Copyright (c) 1996, 1998 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/socket.h>
++
++#include <netinet/in.h>
++#include <arpa/inet.h>
++
++#include <ctype.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#define Assert(Cond) if (!(Cond)) abort()
++
++static const char Base64[] =
++      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++   The following encoding technique is taken from RFC 1521 by Borenstein
++   and Freed.  It is reproduced here in a slightly edited form for
++   convenience.
++
++   A 65-character subset of US-ASCII is used, enabling 6 bits to be
++   represented per printable character. (The extra 65th character, "=",
++   is used to signify a special processing function.)
++
++   The encoding process represents 24-bit groups of input bits as output
++   strings of 4 encoded characters. Proceeding from left to right, a
++   24-bit input group is formed by concatenating 3 8-bit input groups.
++   These 24 bits are then treated as 4 concatenated 6-bit groups, each
++   of which is translated into a single digit in the base64 alphabet.
++
++   Each 6-bit group is used as an index into an array of 64 printable
++   characters. The character referenced by the index is placed in the
++   output string.
++
++                         Table 1: The Base64 Alphabet
++
++      Value Encoding  Value Encoding  Value Encoding  Value Encoding
++          0 A            17 R            34 i            51 z
++          1 B            18 S            35 j            52 0
++          2 C            19 T            36 k            53 1
++          3 D            20 U            37 l            54 2
++          4 E            21 V            38 m            55 3
++          5 F            22 W            39 n            56 4
++          6 G            23 X            40 o            57 5
++          7 H            24 Y            41 p            58 6
++          8 I            25 Z            42 q            59 7
++          9 J            26 a            43 r            60 8
++         10 K            27 b            44 s            61 9
++         11 L            28 c            45 t            62 +
++         12 M            29 d            46 u            63 /
++         13 N            30 e            47 v
++         14 O            31 f            48 w         (pad) =
++         15 P            32 g            49 x
++         16 Q            33 h            50 y
++
++   Special processing is performed if fewer than 24 bits are available
++   at the end of the data being encoded.  A full encoding quantum is
++   always completed at the end of a quantity.  When fewer than 24 input
++   bits are available in an input group, zero bits are added (on the
++   right) to form an integral number of 6-bit groups.  Padding at the
++   end of the data is performed using the '=' character.
++
++   Since all base64 input is an integral number of octets, only the
++         -------------------------------------------------
++   following cases can arise:
++
++       (1) the final quantum of encoding input is an integral
++           multiple of 24 bits; here, the final unit of encoded
++         output will be an integral multiple of 4 characters
++         with no "=" padding,
++       (2) the final quantum of encoding input is exactly 8 bits;
++           here, the final unit of encoded output will be two
++         characters followed by two "=" padding characters, or
++       (3) the final quantum of encoding input is exactly 16 bits;
++           here, the final unit of encoded output will be three
++         characters followed by one "=" padding character.
++   */
++
++int
++b64_ntop(uint8_t const *src, size_t srclength, char *target, size_t targsize) {
++      size_t datalength = 0;
++      uint8_t input[3];
++      uint8_t output[4];
++      size_t i;
++
++      while (2 < srclength) {
++              input[0] = *src++;
++              input[1] = *src++;
++              input[2] = *src++;
++              srclength -= 3;
++
++              output[0] = input[0] >> 2;
++              output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++              output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++              output[3] = input[2] & 0x3f;
++              Assert(output[0] < 64);
++              Assert(output[1] < 64);
++              Assert(output[2] < 64);
++              Assert(output[3] < 64);
++
++              if (datalength + 4 > targsize)
++                      return (-1);
++              target[datalength++] = Base64[output[0]];
++              target[datalength++] = Base64[output[1]];
++              target[datalength++] = Base64[output[2]];
++              target[datalength++] = Base64[output[3]];
++      }
++
++      /* Now we worry about padding. */
++      if (0 != srclength) {
++              /* Get what's left. */
++              input[0] = input[1] = input[2] = '\0';
++              for (i = 0; i < srclength; i++)
++                      input[i] = *src++;
++
++              output[0] = input[0] >> 2;
++              output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++              output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++              Assert(output[0] < 64);
++              Assert(output[1] < 64);
++              Assert(output[2] < 64);
++
++              if (datalength + 4 > targsize)
++                      return (-1);
++              target[datalength++] = Base64[output[0]];
++              target[datalength++] = Base64[output[1]];
++              if (srclength == 1)
++                      target[datalength++] = Pad64;
++              else
++                      target[datalength++] = Base64[output[2]];
++              target[datalength++] = Pad64;
++      }
++      if (datalength >= targsize)
++              return (-1);
++      target[datalength] = '\0';      /* Returned value doesn't count \0. */
++      return (datalength);
++}