From 98473f68d9bd577d9f11ba6071b9229883daaa74 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Thu, 20 Feb 2020 05:52:13 +0800 Subject: [PATCH] tmate/msgpack-c: add packages --- package/ctcgfw/msgpack-c/Makefile | 71 +++++++++++++++++++ package/ctcgfw/tmate/Makefile | 51 +++++++++++++ .../010-fix-forkpty-linux-not-found.patch | 67 +++++++++++++++++ .../020-fix-setenv-unknown-unused.patch | 11 +++ 4 files changed, 200 insertions(+) create mode 100644 package/ctcgfw/msgpack-c/Makefile create mode 100644 package/ctcgfw/tmate/Makefile create mode 100644 package/ctcgfw/tmate/patches/010-fix-forkpty-linux-not-found.patch create mode 100644 package/ctcgfw/tmate/patches/020-fix-setenv-unknown-unused.patch diff --git a/package/ctcgfw/msgpack-c/Makefile b/package/ctcgfw/msgpack-c/Makefile new file mode 100644 index 0000000000..0080c6c708 --- /dev/null +++ b/package/ctcgfw/msgpack-c/Makefile @@ -0,0 +1,71 @@ +# +# Copyright (C) 2019 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_NAME:=msgpack-c +PKG_VERSION:=3.2.1 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/msgpack/msgpack-c.git +PKG_SOURCE_VERSION:=8085ab8721090a447cf98bb802d1406ad7afe420 +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz +PKG_HASH:=464f46744a6be778626d11452c4db3c2d09461080c6db42e358e21af19d542f6 + +PKG_LICENSE:=GPLv3 +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=[CTCGFW]Project OpenWrt + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +PKG_INSTALL:=1 +PKG_FIXUP:=autoreconf +PKG_USE_MIPS16:=0 +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/$(PKG_NAME) + SECTION:=lib + CATEGORY:=Libraries + URL:=https://github.com/msgpack/msgpack-c + TITLE:=MessagePack implementation for C and C++ / msgpack.org[C/C++] +endef + +define Package/lib$(PKG_NAME) + $(call Package/$(PKG_NAME)) + TITLE+= (Libraries) + VARIANT:=lib +endef + +define Package/$(PKG_NAME)/description + MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller. Small integers are encoded into a single byte and short strings require only one extra byte in addition to the strings themselves. +endef + +define Package/lib$(PKG_NAME)/description + $(call Package/$(PKG_NAME)/description) +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include $(1)/usr/lib/pkgconfig $(1)/usr/lib/cmake + $(INSTALL_BIN) $(PKG_BUILD_DIR)/libmsgpackc.* $(1)/usr/lib/ + $(INSTALL_DATA) $(PKG_BUILD_DIR)/include/msgpack.h $(1)/usr/include/msgpack.h + $(INSTALL_DATA) $(PKG_BUILD_DIR)/include/msgpack.hpp $(1)/usr/include/msgpack.hpp + $(INSTALL_DATA) $(PKG_BUILD_DIR)/msgpack.pc $(1)/usr/lib/pkgconfig/msgpack.pc + $(CP) $(PKG_BUILD_DIR)/include/msgpack $(1)/usr/include/msgpack + $(CP) $(PKG_BUILD_DIR)/CMakeFiles/Export/lib/cmake/msgpack $(1)/usr/lib/cmake/msgpack +endef + +define Package/lib$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/libmsgpackc.* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) +$(eval $(call BuildPackage,lib$(PKG_NAME))) diff --git a/package/ctcgfw/tmate/Makefile b/package/ctcgfw/tmate/Makefile new file mode 100644 index 0000000000..ba2702f1c5 --- /dev/null +++ b/package/ctcgfw/tmate/Makefile @@ -0,0 +1,51 @@ +# +# Copyright (C) 2019 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_NAME:=tmate +PKG_VERSION:=2.4.0 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/tmate-io/tmate.git +PKG_SOURCE_VERSION:=5e00bfa5e137e76c81888727712ced2b3fd99f5b +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz +PKG_HASH:=62b61eb12ab394012c861f6b48ba0bc04ac8765abca13bdde5a4d9105cb16138 + +PKG_LICENSE:=GPLv3 +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=[CTCGFW]Project OpenWrt + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +PKG_INSTALL:=1 +PKG_FIXUP:=autoreconf +PKG_USE_MIPS16:=0 +PKG_BUILD_PARALLEL:=1 +PKG_BUILD_DEPENDS:=msgpack-c ncurses + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=net + CATEGORY:=Network + TITLE:=Instant Terminal Sharing + URL:=https://tmate.io + DEPENDS:=+libpthread +libevent2 +libssh +libmsgpack-c +libncurses +endef + +define Package/$(PKG_NAME)/description + Instant Terminal Sharing. +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/tmate $(1)/usr/bin/tmate +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) \ No newline at end of file diff --git a/package/ctcgfw/tmate/patches/010-fix-forkpty-linux-not-found.patch b/package/ctcgfw/tmate/patches/010-fix-forkpty-linux-not-found.patch new file mode 100644 index 0000000000..763d547a0e --- /dev/null +++ b/package/ctcgfw/tmate/patches/010-fix-forkpty-linux-not-found.patch @@ -0,0 +1,67 @@ +diff -Naur /dev/null b/compat/forkpty-linux.c +--- /dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ b/compat/forkpty-linux.c 2014-01-08 12:44:00.885192436 +0100 +@@ -0,0 +1,63 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int login_tty(int fd) ++{ ++ setsid(); ++ if (ioctl(fd, TIOCSCTTY, NULL) == -1) return -1; ++ dup2(fd, 0); ++ dup2(fd, 1); ++ dup2(fd, 2); ++ if (fd > 2) close(fd); ++ return 0; ++} ++ ++int openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize *winp) ++{ ++ char buf[512]; ++ int master, slave; ++ ++ master = open("/dev/ptmx", O_RDWR); ++ if (master == -1) return -1; ++ if (grantpt(master) || unlockpt(master) || ptsname_r(master, buf, sizeof buf)) goto fail; ++ ++ slave = open(buf, O_RDWR | O_NOCTTY); ++ if (slave == -1) goto fail; ++ ++ /* XXX Should we ignore errors here? */ ++ if (termp) tcsetattr(slave, TCSAFLUSH, termp); ++ if (winp) ioctl(slave, TIOCSWINSZ, winp); ++ ++ *amaster = master; ++ *aslave = slave; ++ if (name != NULL) strcpy(name, buf); ++ return 0; ++ ++fail: ++ close(master); ++ return -1; ++} ++ ++ ++int forkpty(int *amaster, char *name, struct termios *termp, struct winsize *winp) ++{ ++ int master, slave, pid; ++ if (openpty(&master, &slave, name, termp, winp) == -1) return -1; ++ switch (pid = fork()) { ++ case -1: ++ return -1; ++ case 0: ++ close(master); ++ if (login_tty (slave)) _exit (1); ++ return 0; ++ default: ++ *amaster = master; ++ close (slave); ++ return pid; ++ } ++} diff --git a/package/ctcgfw/tmate/patches/020-fix-setenv-unknown-unused.patch b/package/ctcgfw/tmate/patches/020-fix-setenv-unknown-unused.patch new file mode 100644 index 0000000000..f82fbd2cc7 --- /dev/null +++ b/package/ctcgfw/tmate/patches/020-fix-setenv-unknown-unused.patch @@ -0,0 +1,11 @@ +--- a/compat/setenv.c 2019-11-17 06:09:38.000000000 +0800 ++++ b/compat/setenv.c 2020-02-20 05:36:25.183144203 +0800 +@@ -21,7 +21,7 @@ + #include "tmux.h" + + int +-setenv(const char *name, const char *value, unused int overwrite) ++setenv(const char *name, const char *value, int overwrite) + { + char *newval; +