aboutsummaryrefslogtreecommitdiff
path: root/libs/libssh
diff options
context:
space:
mode:
authorMislav Novakovic <mislav.novakovic@sartura.hr>2017-05-10 17:36:39 +0200
committerMislav Novakovic <mislav.novakovic@sartura.hr>2017-05-11 19:46:58 +0200
commit0faddbbb47fe54cf196499f8bc2442a7cd5b5764 (patch)
treee50645d9c19695372036f84ca91fe429ee8fef85 /libs/libssh
parent588284218a5989f369c51a456a3b924f50d71eb7 (diff)
add libssh
Signed-off-by: Mislav Novakovic <mislav.novakovic@sartura.hr>
Diffstat (limited to 'libs/libssh')
-rw-r--r--libs/libssh/Makefile85
-rw-r--r--libs/libssh/patches/001-compile.patch35
-rw-r--r--libs/libssh/patches/002-disable-libssp.patch22
3 files changed, 142 insertions, 0 deletions
diff --git a/libs/libssh/Makefile b/libs/libssh/Makefile
new file mode 100644
index 000000000..77d5267c2
--- /dev/null
+++ b/libs/libssh/Makefile
@@ -0,0 +1,85 @@
+#
+# Copyright (C) 2017 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_LICENSE:=LGPL-2.1+ BSD-2-Clause
+PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
+
+PKG_NAME:=libssh
+PKG_VERSION:=0.7.5
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=0588cbf9d43e7819e453c8b35c1b5e515d815473
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_URL:=git://git.libssh.org/projects/libssh.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+
+CMAKE_INSTALL:=1
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+PKG_USE_MIPS16:=0
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libssh
+ SECTION:=lib
+ CATEGORY:=Libraries
+ URL:=$(PKG_SOURCE_URL)
+ TITLE:=SSH library
+ DEPENDS:=+libpthread +librt +zlib +libopenssl
+endef
+
+define Package/libssh/description
+ libssh is a mulitplatform C library implementing the SSHv2 and SSHv1 protocol
+ for client and server implementations.
+endef
+
+CMAKE_OPTIONS = \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DCMAKE_BUILD_TYPE:STRING=Release \
+ -DHAVE_STRTOULL=1 \
+ -DHAVE_GETADDRINFO=1 \
+ -DHAVE_TERMIOS_H=1 \
+ -DWITH_EXAMPLES:BOOL=OFF \
+ -DWITH_GCRYPT:BOOL=OFF \
+ -DWITH_GSSAPI:BOOL=OFF \
+ -DWITH_LIBZ:BOOL=ON \
+ -DWITH_NACL:BOOL=OFF \
+ -DWITH_PCAP:BOOL=OFF \
+ -DWITH_SERVER:BOOL=ON \
+ -DWITH_SFTP:BOOL=ON \
+ -DWITH_SSH1:BOOL=OFF \
+ -DWITH_TESTING:BOOL=OFF \
+
+ifeq ($(CONFIG_BIG_ENDIAN),y)
+CMAKE_OPTIONS += -DWITH_BIG_ENDIAN=ON
+else
+CMAKE_OPTIONS += -DWITH_BIG_ENDIAN=OFF
+endif
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include/libssh/
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/libssh/* $(1)/usr/include/libssh/
+
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libssh* $(1)/usr/lib/
+
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libssh/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libssh* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libssh))
diff --git a/libs/libssh/patches/001-compile.patch b/libs/libssh/patches/001-compile.patch
new file mode 100644
index 000000000..bbc994ba6
--- /dev/null
+++ b/libs/libssh/patches/001-compile.patch
@@ -0,0 +1,35 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,10 +35,6 @@ include(DefineInstallationPaths)
+ include(DefineOptions.cmake)
+ include(CPackConfig.cmake)
+
+-# disallow in-source build
+-include(MacroEnsureOutOfSourceBuild)
+-macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")
+-
+ # search for libraries
+ if (WITH_ZLIB)
+ find_package(ZLIB REQUIRED)
+--- a/ConfigureChecks.cmake
++++ b/ConfigureChecks.cmake
+@@ -5,7 +5,6 @@ include(CheckFunctionExists)
+ include(CheckLibraryExists)
+ include(CheckTypeSize)
+ include(CheckCXXSourceCompiles)
+-include(TestBigEndian)
+
+ set(PACKAGE ${APPLICATION_NAME})
+ set(VERSION ${APPLICATION_VERSION})
+@@ -270,6 +269,8 @@ if (WITH_GSSAPI AND NOT GSSAPI_FOUND)
+ endif (WITH_GSSAPI AND NOT GSSAPI_FOUND)
+
+ # ENDIAN
+-if (NOT WIN32)
+- test_big_endian(WORDS_BIGENDIAN)
+-endif (NOT WIN32)
++if (WITH_BIG_ENDIAN)
++ set(WORDS_BIGENDIAN 1)
++else (WITH_BIG_ENDIAN)
++ set(WORDS_BIGENDIAN 0)
++endif (WITH_BIG_ENDIAN)
diff --git a/libs/libssh/patches/002-disable-libssp.patch b/libs/libssh/patches/002-disable-libssp.patch
new file mode 100644
index 000000000..a4d9221c1
--- /dev/null
+++ b/libs/libssh/patches/002-disable-libssp.patch
@@ -0,0 +1,22 @@
+--- a/cmake/Modules/DefineCompilerFlags.cmake
++++ b/cmake/Modules/DefineCompilerFlags.cmake
+@@ -1,7 +1,6 @@
+ # define system dependent compiler flags
+
+ include(CheckCCompilerFlag)
+-include(CheckCCompilerFlagSSP)
+
+ if (UNIX AND NOT WIN32)
+ #
+@@ -21,11 +20,6 @@ if (UNIX AND NOT WIN32)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+ endif (WITH_FPIC)
+
+- check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
+- if (WITH_STACK_PROTECTOR)
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
+- endif (WITH_STACK_PROTECTOR)
+-
+ if (CMAKE_BUILD_TYPE)
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
+ if (CMAKE_BUILD_TYPE_LOWER MATCHES (release|relwithdebinfo|minsizerel))