| 1 | | [[TOC]] |
| 2 | | |
| 3 | | = PortLog: [wiki:dev-util]/git = |
| 4 | | |
| 5 | | http://www.git.or.cz/ |
| 6 | | |
| 7 | | == version 1.5.5 / git master == |
| 8 | | |
| 9 | | ||R5||untested|| |
| 10 | | ||BONE||untested|| |
| 11 | | ||Haiku||unstable|| |
| 12 | | |
| 13 | | Dependencies: |
| 14 | | |
| 15 | | * [wiki:dev-libs/expat] (optional) |
| 16 | | * [wiki:dev-libs/openssl] (optional) |
| 17 | | * [wiki:net-misc/curl] (optional) |
| 18 | | * [wiki:dev-lang/tk] (optional) |
| 19 | | * [wiki:sys-devel/sparse] (for testing) |
| 20 | | |
| 21 | | === work-in-progress (andreasf) - [Haiku] === |
| 22 | | |
| 23 | | Compilation now fails with: |
| 24 | | {{{ |
| 25 | | /boot/home/git-1.5.5/connect.c: In function `ai_name': |
| 26 | | /boot/home/git-1.5.5/connect.c:164: `INET_ADDRSTRLEN' undeclared (first use in this function) |
| 27 | | /boot/home/git-1.5.5/connect.c:164: (Each undeclared identifier is reported only once |
| 28 | | /boot/home/git-1.5.5/connect.c:164: for each function it appears in.) |
| 29 | | make: *** [connect.o] Error 1 |
| 30 | | }}} |
| 31 | | This is not currently defined by Haiku. Haiku's tcpdump defines it in [http://dev.haiku-os.org/browser/haiku/trunk/src/bin/network/tcpdump/tcpdump-stdinc.h tcpdump-stdinc.h] to 16. Defining it in {{{git-compat-util.h}}} resolves this error. |
| 32 | | |
| 33 | | Next, compilation fails in {{{builtin-count-objects.c}}}:46 due to {{{st_blocks}}}: |
| 34 | | {{{ |
| 35 | | (*loose_size) += xsize_t(st.st_blocks); |
| 36 | | }}} |
| 37 | | For now, I've replaced it with: |
| 38 | | {{{ |
| 39 | | (*loose_size) += ceil(st.st_size / 512.0); |
| 40 | | }}} |
| 41 | | (In a [http://ussg.iu.edu/hypermail/linux/kernel/0310.1/1125.html Linux kernel ML post] I read the unit of {{{st_blocks}}} were 512 byte.) |
| 42 | | |
| 43 | | Next, for {{{git-fetch-pack}}} a hardlink is being created, which fails on Haiku. Changing the {{{$(BUILT_INS)}}} target to use {{{ln -s}}} resolves this. |
| 44 | | |
| 45 | | Next, {{{git-imap-send}}} fails to link due to an undefined reference to {{{getpass}}}. {{{getpass}}} is only defined in the BSD compatibility headers. Adding a prototype to {{{imap-send.c}}} resolves an assignment warning. Compiling with {{{make LDFLAGS=-lbsd}}} resolves the linker error. |
| 46 | | |
| 47 | | Next, build fails due to {{{/usr/bin/perl}}}. Use {{{make PERL_PATH=/boot/home/config/bin/perl}}} to continue. (Or configure with {{{--with-perl=/boot/home/config/bin/perl}}}.) |
| 48 | | |
| 49 | | To get git to prepare the templates, in {{{templates/Makefile}}} change {{{ls}}} to {{{ls -1}}}. |
| 50 | | |
| 51 | | To avoid warnings on {{{-R}}}, supply {{{NO_R_TO_GCC_LINKER=YesPlease}}} to {{{make}}}. |
| 52 | | |
| 53 | | In {{{Makefile}}} for the {{{install}}} target change another instance of {{{ln}}} to {{{ln -s}}}. |
| 54 | | |
| 55 | | [source:BePorts/trunk/dev-util/git/git-1.5.5.diff Patch] and [source:BePorts/trunk/dev-util/git/git-master.diff Patch against master] |
| 56 | | |
| 57 | | Checking out multiple {{{git://}}} and {{{http://}}} repositories works fine. {{{make check}}} fails due to lack of [wiki:sys-devel/sparse sparse]. |
| 58 | | |
| 59 | | === external (Niels Reedijk, James Woodcock) - [Haiku] === |
| 60 | | |
| 61 | | [http://www.haiku-os.org/blog/nielx/2008-04-21/git_for_haiku_1 Blog entry] |