[packages/libgit2] use system http-parser

draenog draenog at pld-linux.org
Fri Jun 7 00:29:55 CEST 2013


commit 3c0e613e736e693ef3478dbaf14a239cf190ac3e
Author: Kacper Kornet <draenog at pld-linux.org>
Date:   Thu Jun 6 23:15:44 2013 +0100

    use system http-parser

 libgit2-http-parser.patch | 91 +++++++++++++++++++++++++++++++++++++++++++++++
 libgit2.spec              |  3 ++
 2 files changed, 94 insertions(+)
---
diff --git a/libgit2.spec b/libgit2.spec
index 32cc603..d3cdc20 100644
--- a/libgit2.spec
+++ b/libgit2.spec
@@ -11,8 +11,10 @@ License:	GPL v2 with linking exception
 Group:		Libraries
 Source0:	https://github.com/libgit2/libgit2/archive/v%{version}.tar.gz?/%{name}-version.tgz
 # Source0-md5:	ce6845df0dd084ef2633a69dba64929c
+Patch0:	        %{name}-http-parser.patch
 URL:		http://libgit2.github.com/
 BuildRequires:	cmake >= 2.6
+BuildRequires:	http-parser-devel
 BuildRequires:	openssl-devel
 %{?with_tests:BuildRequires:	python}
 BuildRequires:	zlib-devel
@@ -46,6 +48,7 @@ Pliki nagłówkowe biblioteki libgit2.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 install -d build
diff --git a/libgit2-http-parser.patch b/libgit2-http-parser.patch
new file mode 100644
index 0000000..f8c98d1
--- /dev/null
+++ b/libgit2-http-parser.patch
@@ -0,0 +1,91 @@
+From 893373eaacf15f24c6d98e75d44833730c923f95 Mon Sep 17 00:00:00 2001
+From: Veeti Paananen <veeti.paananen at rojekti.fi>
+Date: Thu, 2 May 2013 14:07:22 +0300
+Subject: [PATCH] Build with the system's http-parser installation if available
+
+---
+ CMakeLists.txt                      | 15 +++++++++++---
+ cmake/Modules/FindHTTP_Parser.cmake | 39 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 51 insertions(+), 3 deletions(-)
+ create mode 100644 cmake/Modules/FindHTTP_Parser.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6bd25aa..10caa16 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,6 +14,8 @@
+ PROJECT(libgit2 C)
+ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+ 
++SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
++
+ # Build options
+ #
+ OPTION( SONAME				"Set the (SO)VERSION of the target"		ON  )
+@@ -97,8 +99,16 @@ ELSE ()
+ 	IF (NOT AMIGA)
+ 		FIND_PACKAGE(OpenSSL)
+ 	ENDIF ()
+-	FILE(GLOB SRC_HTTP deps/http-parser/*.c)
+-	INCLUDE_DIRECTORIES(deps/http-parser)
++
++	FIND_PACKAGE(HTTP_Parser QUIET)
++	IF (HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
++		INCLUDE_DIRECTORIES(${HTTP_PARSER_INCLUDE_DIRS})
++		LINK_LIBRARIES(${HTTP_PARSER_LIBRARIES})
++	ELSE()
++		MESSAGE("http-parser was not found or is too old; using bundled 3rd-party sources.")
++		INCLUDE_DIRECTORIES(deps/http-parser)
++		FILE(GLOB SRC_HTTP deps/http-parser/*.c)
++	ENDIF()
+ ENDIF()
+ 
+ # Specify sha1 implementation
+diff --git a/cmake/Modules/FindHTTP_Parser.cmake b/cmake/Modules/FindHTTP_Parser.cmake
+new file mode 100644
+index 0000000..d92bf75
+--- /dev/null
++++ b/cmake/Modules/FindHTTP_Parser.cmake
+@@ -0,0 +1,39 @@
++# - Try to find http-parser
++#
++# Defines the following variables:
++#
++# HTTP_PARSER_FOUND - system has http-parser
++# HTTP_PARSER_INCLUDE_DIR - the http-parser include directory
++# HTTP_PARSER_LIBRARIES - Link these to use http-parser
++# HTTP_PARSER_VERSION_MAJOR - major version
++# HTTP_PARSER_VERSION_MINOR - minor version
++# HTTP_PARSER_VERSION_STRING - the version of http-parser found
++
++# Find the header and library
++FIND_PATH(HTTP_PARSER_INCLUDE_DIR NAMES http_parser.h)
++FIND_LIBRARY(HTTP_PARSER_LIBRARY NAMES http_parser libhttp_parser)
++
++# Found the header, read version
++if (HTTP_PARSER_INCLUDE_DIR AND EXISTS "${HTTP_PARSER_INCLUDE_DIR}/http_parser.h")
++	FILE(READ "${HTTP_PARSER_INCLUDE_DIR}/http_parser.h" HTTP_PARSER_H)
++	IF (HTTP_PARSER_H)
++		STRING(REGEX REPLACE ".*#define[\t ]+HTTP_PARSER_VERSION_MAJOR[\t ]+([0-9]+).*" "\\1" HTTP_PARSER_VERSION_MAJOR "${HTTP_PARSER_H}")
++		STRING(REGEX REPLACE ".*#define[\t ]+HTTP_PARSER_VERSION_MINOR[\t ]+([0-9]+).*" "\\1" HTTP_PARSER_VERSION_MINOR "${HTTP_PARSER_H}")
++		SET(HTTP_PARSER_VERSION_STRING "${HTTP_PARSER_VERSION_MAJOR}.${HTTP_PARSER_VERSION_MINOR}")
++	ENDIF()
++	UNSET(HTTP_PARSER_H)
++ENDIF()
++
++# Handle the QUIETLY and REQUIRED arguments and set HTTP_PARSER_FOUND
++# to TRUE if all listed variables are TRUE
++INCLUDE(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(HTTP_Parser REQUIRED_VARS HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY)
++
++# Hide advanced variables
++MARK_AS_ADVANCED(HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY)
++
++# Set standard variables
++IF (HTTP_PARSER_FOUND)
++	SET(HTTP_PARSER_LIBRARIES ${HTTP_PARSER_LIBRARY})
++	set(HTTP_PARSER_INCLUDE_DIRS ${HTTP_PARSER_INCLUDE_DIR})
++ENDIF()
+-- 
+1.8.3
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libgit2.git/commitdiff/3c0e613e736e693ef3478dbaf14a239cf190ac3e



More information about the pld-cvs-commit mailing list