From ceaf873bb381961d0dc01b8c15a883a56b8aace4 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 10 May 2018 10:33:36 +0200 Subject: [PATCH] libgit2: fix gcc2 build. This is needed for the work on the Git Tracker add-on for GSoC. --- dev-libs/libgit2/libgit2-0.26.3.recipe | 12 +++- .../libgit2/patches/libgit2-0.26.3.patchset | 71 +++++++++++++++++++ 2 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 dev-libs/libgit2/patches/libgit2-0.26.3.patchset diff --git a/dev-libs/libgit2/libgit2-0.26.3.recipe b/dev-libs/libgit2/libgit2-0.26.3.recipe index 595d6bd25..35fe97406 100644 --- a/dev-libs/libgit2/libgit2-0.26.3.recipe +++ b/dev-libs/libgit2/libgit2-0.26.3.recipe @@ -15,12 +15,13 @@ DESCRIPTION="The library provides: HOMEPAGE="https://libgit2.github.com/" COPYRIGHT="2005-2018 libgit2 project" LICENSE="GNU LGPL v2" -REVISION="1" +REVISION="2" SOURCE_URI="https://github.com/libgit2/libgit2/archive/v$portVersion.tar.gz" CHECKSUM_SHA256="0da4e211dfb63c22e5f43f2a4a5373e86a140afa88a25ca6ba3cc2cae58263d2" SOURCE_FILENAME="libgit2-$portVersion.tar.gz" +PATCHES="libgit2-$portVersion.patchset" -ARCHITECTURES="!x86_gcc2 ?x86 x86_64" +ARCHITECTURES="x86_gcc2 ?x86 x86_64" SECONDARY_ARCHITECTURES="x86" libVersion="$portVersion" @@ -69,13 +70,18 @@ BUILD() { mkdir -p build && cd build + OPTIONS= + if [ $effectiveTargetArchitecture == x86_gcc2 ] ; then + OPTIONS=-DTHREADSAFE=OFF + fi + cmake .. \ -DCMAKE_INSTALL_PREFIX:PATH=$prefix \ -DBIN_INSTALL_DIR:PATH=$binDir \ -DINCLUDE_INSTALL_DIR:PATH=$includeDir \ -DLIB_INSTALL_DIR:PATH=$libDir \ -DBUILD_CLAR=OFF \ - -DBUILD_EXAMPLES=OFF + -DBUILD_EXAMPLES=OFF $OPTIONS make $jobArgs } diff --git a/dev-libs/libgit2/patches/libgit2-0.26.3.patchset b/dev-libs/libgit2/patches/libgit2-0.26.3.patchset new file mode 100644 index 000000000..8a35d5533 --- /dev/null +++ b/dev-libs/libgit2/patches/libgit2-0.26.3.patchset @@ -0,0 +1,71 @@ +From 4036019821be1f94bed724e2ebdb2a3b6ff41670 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 10 May 2018 10:21:34 +0200 +Subject: Reorder some includes to avoid conflicts between zlib and openssl + +zlib #defines free_func, but ssl headers use free_func in a parameter +name in some places. This ends up confusing gcc2. Make sure the ssl +headers are included before the define is set, so we can build libgit +with gcc2. + +diff --git a/src/fetch.c b/src/fetch.c +index f408a51..9bf58fc 100644 +--- a/src/fetch.c ++++ b/src/fetch.c +@@ -5,6 +5,8 @@ + * a Linking Exception. For full terms see the included COPYING file. + */ + ++#include "netops.h" ++ + #include "git2/oid.h" + #include "git2/refs.h" + #include "git2/revwalk.h" +@@ -15,7 +17,6 @@ + #include "refspec.h" + #include "pack.h" + #include "fetch.h" +-#include "netops.h" + #include "repository.h" + #include "refs.h" + +diff --git a/src/pack-objects.h b/src/pack-objects.h +index e1e0ee3..399a035 100644 +--- a/src/pack-objects.h ++++ b/src/pack-objects.h +@@ -8,12 +8,13 @@ + #ifndef INCLUDE_pack_objects_h__ + #define INCLUDE_pack_objects_h__ + ++#include "netops.h" ++ + #include "common.h" + + #include "buffer.h" + #include "hash.h" + #include "oidmap.h" +-#include "netops.h" + #include "zstream.h" + #include "pool.h" + #include "indexer.h" +diff --git a/src/push.c b/src/push.c +index 433cc06..a112fc1 100644 +--- a/src/push.c ++++ b/src/push.c +@@ -5,11 +5,12 @@ + * a Linking Exception. For full terms see the included COPYING file. + */ + ++#include "pack-objects.h" ++ + #include "git2.h" + + #include "common.h" + #include "pack.h" +-#include "pack-objects.h" + #include "remote.h" + #include "vector.h" + #include "push.h" +-- +2.16.2 +