Bug#886815: Help with libgit2 needed to strip code copy from r-cran-git2r

2018-01-10 Thread Andreas Tille
Hi Aaron,

On Wed, Jan 10, 2018 at 06:37:17PM -0500, Aaron M. Ucko wrote:
> Andreas Tille  writes:
> 
> > Hi,
> 
> Hi, Andreas.
> 
> > gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I. -I/usr/include/git2  
> > -DGIT_ARCH_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DGIT_OPENSSL 
> > -DLIBGIT2_NO_FEATURES_H -DGIT_SHA1_OPENSSL - DGIT_SSH -DGIT_CURL 
> > -DGIT_USE_STAT_MTIM -DGIT_USE_NSEC -DHAVE_FUTIMENS -DHAVE_QSORT_R  
> > -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.4.3=. 
> > -fstack-protector-strong -Wformat - Werror=format-security -Wdate-time 
> > -D_FORTIFY_SOURCE=2 -g  -c git2r.c -o git2r.o
> 
> Please try leaving off -I/usr/include/git2 to avoid this unwanted
> shadowing.  (git2.h includes the other headers as "git2/*.h", so you
> shouldn't need that flag.)

If I leave this of it ends up in a missing include refs.h (which is
in /usr/include/git2.

Kind regards

  Andreas.

PS: I also tried the other proposed solution - see my answer there.


-- 
http://fam-tille.de



Bug#886815: Help with libgit2 needed to strip code copy from r-cran-git2r

2018-01-10 Thread Aaron M. Ucko
Andreas Tille  writes:

> Hi,

Hi, Andreas.

> gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I. -I/usr/include/git2  
> -DGIT_ARCH_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DGIT_OPENSSL 
> -DLIBGIT2_NO_FEATURES_H -DGIT_SHA1_OPENSSL - DGIT_SSH -DGIT_CURL 
> -DGIT_USE_STAT_MTIM -DGIT_USE_NSEC -DHAVE_FUTIMENS -DHAVE_QSORT_R  -fpic  
> -g -O2 -fdebug-prefix-map=/build/r-base-3.4.3=. -fstack-protector-strong 
> -Wformat - Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c 
> git2r.c -o git2r.o

Please try leaving off -I/usr/include/git2 to avoid this unwanted
shadowing.  (git2.h includes the other headers as "git2/*.h", so you
shouldn't need that flag.)

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu



Bug#886815: Help with libgit2 needed to strip code copy from r-cran-git2r

2018-01-10 Thread Andreas Tille
Hi,

r-cran-git2r was rejected by ftpmaster[1] due to the code copy of
libgit2.  I intended to fix this by removing the code copy and linking
against the Debian packaged libgit2.  The attempt to do so can be found
in Git[2].  Unfortunately that seems to be not as simple as I was
hoping for since I'm running into:

...
configure: creating ./config.status
config.status: creating src/Makevars
** libs
make[1]: Entering directory '/build/r-cran-git2r-0.21.0+dfsg/src'
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I. -I/usr/include/git2  
-DGIT_ARCH_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DGIT_OPENSSL 
-DLIBGIT2_NO_FEATURES_H -DGIT_SHA1_OPENSSL - DGIT_SSH -DGIT_CURL 
-DGIT_USE_STAT_MTIM -DGIT_USE_NSEC -DHAVE_FUTIMENS -DHAVE_QSORT_R  -fpic  
-g -O2 -fdebug-prefix-map=/build/r-base-3.4.3=. -fstack-protector-strong 
-Wformat - Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c 
git2r.c -o git2r.o
In file included from /usr/include/git2/common.h:29:0,
 from /usr/include/git2/annotated_commit.h:10,
 from /usr/include/git2.h:11,
 from git2r.c:32:
/usr/include/git2/inttypes.h:33:2: error: #error "Use this header only with 
Microsoft Visual C++ compilers!"
 #error "Use this header only with Microsoft Visual C++ compilers!"
  ^
In file included from /usr/include/git2/inttypes.h:46:0,
 from /usr/include/git2/common.h:29,
 from /usr/include/git2/annotated_commit.h:10,
 from /usr/include/git2.h:11,
 from git2r.c:32:
/usr/include/git2/stdint.h:33:2: error: #error "Use this header only with 
Microsoft Visual C++ compilers!"
 #error "Use this header only with Microsoft Visual C++ compilers!"
  ^
In file included from /usr/include/git2/inttypes.h:46:0,
 from /usr/include/git2/common.h:29,
 from /usr/include/git2/annotated_commit.h:10,
 from /usr/include/git2.h:11,
 from git2r.c:32:
/usr/include/git2/stdint.h:89:30: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'int64_t'
 typedef signed __int64   int64_t;
  ^~~
/usr/include/git2/stdint.h:90:30: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'uint64_t'
 typedef unsigned __int64 uint64_t;
  ^~~~
/usr/include/git2/stdint.h:101:9: error: unknown type name 'uint64_t'
 typedef uint64_t  uint_least64_t;
 ^~~~
/usr/include/git2/stdint.h:111:9: error: unknown type name 'uint64_t'
 typedef uint64_t  uint_fast64_t;
 ^~~~
/usr/include/git2/stdint.h:124:9: error: unknown type name 'uint64_t'
 typedef uint64_t  uintmax_t;
 ^~~~
In file included from /usr/include/git2/common.h:29:0,
 from /usr/include/git2/annotated_commit.h:10,
 from /usr/include/git2.h:11,
 from git2r.c:32:
/usr/include/git2/inttypes.h:282:1: error: unknown type name '_inline'; did you 
mean '__nlink_t'?
 _inline
 ^~~
 __nlink_t
/usr/include/git2/inttypes.h:284:11: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before '__cdecl'
 imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
   ^~~
/usr/include/git2/inttypes.h:284:11: error: unknown type name '__cdecl'
/usr/lib/R/etc/Makeconf:159: recipe for target 'git2r.o' failed
make[1]: *** [git2r.o] Error 1
make[1]: Leaving directory '/build/r-cran-git2r-0.21.0+dfsg/src'
...


I admit I have no idea why the includes delivered by libgit2 do
not work here.  Any idea for a correct fix?

Kind regards

   Andreas.

[1] 
http://lists.alioth.debian.org/pipermail/debian-science-maintainers/2018-January/056928.html
[2] https://salsa.debian.org/r-pkg-team/r-cran-git2r.git

-- 
http://fam-tille.de