Files
buildroot/package/libgit2/libgit2.mk
Nicolas Cavallari 6701a91e69 package/libgit2: bump version to 1.8.1
Upstream notes that libhttp-parser is unmaintained and suggest llhttp
as a replacement.  This version bundles llhttp (and includes its license
in COPYING) but still allows to use a system-provided libhttp-parser.

llhttp (https://github.com/nodejs/llhttp) is a C library that depends on
a nodejs interpreter and more than 10 npm dependencies to generate its
parser code.  The bundled version contains the generated sources and
could be built without nodejs.  But distributing this generated code
as part of libgit2 would probably be legally dubious because of the
GPL's original source code provision, even if llhttp is MIT-licensed.

Packaging llhttp would be a daunting task and its build will require
considerable time and space, so for now, keep using libhttp-parser.

Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-06-21 23:14:57 +02:00

72 lines
1.9 KiB
Makefile

################################################################################
#
# libgit2
#
################################################################################
LIBGIT2_VERSION = 1.8.1
LIBGIT2_SITE = $(call github,libgit2,libgit2,v$(LIBGIT2_VERSION))
LIBGIT2_LICENSE = \
GPL-2.0 with linking exception, \
MIT (sha1), \
BSD-3-Clause (sha256), \
wildmatch license (wildmatch), \
CC0-1.0 (xoroshiro256), \
BSD-2-Clause (basename_r), \
LGPL-2.1+ (libxdiff)
LIBGIT2_LICENSE_FILES = COPYING
LIBGIT2_CPE_ID_VALID = YES
LIBGIT2_INSTALL_STAGING = YES
LIBGIT2_CONF_OPTS = \
-DUSE_GSSAPI=OFF \
-DUSE_ICONV=ON \
-DREGEX_BACKEND=regcomp \
-DUSE_HTTP_PARSER=http-parser \
-DUSE_NTLMCLIENT=OFF \
-DUSE_XDIFF=builtin \
-DUSE_THREADS=$(if $(BR2_TOOLCHAIN_HAS_THREADS),ON,OFF)
LIBGIT2_SUPPORTS_IN_SOURCE_BUILD = NO
LIBGIT2_DEPENDENCIES = zlib libhttpparser
# If libiconv is available (for !locale toolchains), then we can use
# it for iconv support. Note that USE_ICONV=ON is still correct even
# without libiconv because (1) most toolchain have iconv support
# without libiconv and (2) even if USE_ICONV=ON but iconv support is
# not available, libgit2 simply avoids using iconv.
ifeq ($(BR2_PACKAGE_LIBICONV),y)
LIBGIT2_DEPENDENCIES += libiconv
endif
ifeq ($(BR2_PACKAGE_LIBSSH2),y)
LIBGIT2_DEPENDENCIES += libssh2
LIBGIT2_CONF_OPTS += -DUSE_SSH=libssh2
else ifeq ($(BR2_PACKAGE_OPENSSH_CLIENT),y)
LIBGIT2_CONF_OPTS += -DUSE_SSH=exec
else
LIBGIT2_CONF_OPTS += -DUSE_SSH=OFF
endif
ifeq ($(BR2_PACKAGE_OPENSSL),y)
LIBGIT2_DEPENDENCIES += openssl
LIBGIT2_CONF_OPTS += -DUSE_HTTPS=OpenSSL
else
LIBGIT2_CONF_OPTS += -DUSE_HTTPS=OFF
endif
ifeq ($(BR2_PACKAGE_LIBGIT2_CLI),y)
LIBGIT2_CONF_OPTS += -DBUILD_CLI=ON
else
LIBGIT2_CONF_OPTS += -DBUILD_CLI=OFF
endif
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
LIBGIT2_CONF_OPTS += \
-DCMAKE_EXE_LINKER_FLAGS=-latomic \
-DCMAKE_SHARED_LINKER_FLAGS=-latomic
endif
$(eval $(cmake-package))