Add recipe and patches for git 1.8.3.4

The user settings files have moved from $HOME to
~/config/settings/git/.
This commit is contained in:
Ingo Weinhold
2013-08-13 21:58:26 +02:00
parent 089e141aeb
commit 28faa080b8
2 changed files with 309 additions and 0 deletions

View File

@@ -0,0 +1,231 @@
SUMMARY="Fast, scalable, distributed revision control system"
DESCRIPTION="
Git is a free and open source distributed version control system designed
to handle everything from small to very large projects with speed and
efficiency.
Git is easy to learn and has a tiny footprint with lightning fast
performance. It outclasses SCM tools like Subversion, CVS, Perforce,
and ClearCase with features like cheap local branching, convenient
staging areas, and multiple workflows.
"
HOMEPAGE="http://git-scm.com/"
LICENSE="GNU GPL v2"
COPYRIGHT="2005-2012 Git Authors (see git web site for list)"
SRC_URI="http://git-core.googlecode.com/files/git-1.8.3.4.tar.gz"
CHECKSUM_MD5="80eec3201a5d012913d287b85adaee8e"
SOURCE_DIR="$portVersionedName"
PATCHES="git-1.8.3.4.patchset"
SRC_URI_2="http://git-core.googlecode.com/files/git-manpages-1.8.3.4.tar.gz"
CHECKSUM_MD5_2="86fd812754d25201fd72c7476045dfec"
SRC_URI_3="http://git-core.googlecode.com/files/git-htmldocs-1.8.3.4.tar.gz"
CHECKSUM_MD5_3="be01cc4be1b946b053b69d12b422854a"
REVISION="1"
ARCHITECTURES="x86_gcc2 ?x86"
PROVIDES="
git = $portVersion compat >= 1.8
cmd:git = $portVersion compat >= 1.8
cmd:git_receive_pack = $portVersion compat >= 1.8
cmd:git_shell = $portVersion compat >= 1.8
cmd:git_upload_archive = $portVersion compat >= 1.8
cmd:git_upload_pack = $portVersion compat >= 1.8
"
PROVIDES_arch="
git_arch = $portVersion compat >= 1.8
cmd:git_archimport = $portVersion compat >= 1.8
"
PROVIDES_cvs="
git_cvs = $portVersion compat >= 1.8
cmd:git_cvsserver = $portVersion compat >= 1.8
"
PROVIDES_daemon="
git_daemon = $portVersion compat >= 1.8
cmd:git_daemon = $portVersion compat >= 1.8
"
PROVIDES_email="
git_email = $portVersion compat >= 1.8
cmd:git_send_email = $portVersion compat >= 1.8
"
PROVIDES_source="
git_source = $portVersion compat >= 1.8
"
PROVIDES_svn="
git_svn = $portVersion compat >= 1.8
cmd:git_svn = $portVersion compat >= 1.8
"
REQUIRES="
haiku >= $haikuVersion
cmd:man
cmd:nano
cmd:perl
cmd:python
lib:libcurl
lib:libexpat
lib:libiconv
lib:libintl
lib:libpcre
lib:libssl
lib:libz
"
REQUIRES_arch="
haiku >= $haikuVersion
git == $portVersion base
"
REQUIRES_cvs="
haiku >= $haikuVersion
git == $portVersion base
"
REQUIRES_daemon="
haiku >= $haikuVersion
git == $portVersion base
"
REQUIRES_email="
haiku >= $haikuVersion
git == $portVersion base
"
REQUIRES_svn="
haiku >= $haikuVersion
git == $portVersion base
"
BUILD_REQUIRES="
cmd:man
cmd:nano
cmd:perl
cmd:python
devel:libcurl
devel:libexpat
devel:libiconv
devel:libintl
devel:libpcre
devel:libssl
devel:libz
"
BUILD_PREREQUIRES="
haiku_devel >= $haikuVersion
cmd:autoconf
cmd:gcc
cmd:gettext
cmd:ld
cmd:make
cmd:msgfmt
cmd:sed
cmd:tar
"
makeGit()
{
make prefix=$prefix \
bindir_relative=$relativeBinDir \
mandir=$manDir \
infodir=$infoDir \
gitexecdir=$libDir/git-core \
sharedir=$dataDir \
template_dir=$dataDir/git-core/templates \
htmldir=$docDir \
sysconfdir=$sysconfDir \
PTHREAD_LIBS= \
USE_LIBPCRE=YesPlease \
NO_D_TYPE_IN_DIRENT=YesPlease \
NO_MEMMEM=YesPlease \
NO_MKSTEMPS=YesPlease \
NEEDS_LIBICONV=YesPlease \
NO_R_TO_GCC_LINKER=YesPlease \
GNU_ROFF=YesPlease \
PERL_PATH=$portPackageLinksDir/cmd~perl/bin/perl \
PYTHON_PATH=$portPackageLinksDir/cmd~python/bin/python \
NO_TCLTK=YesPlease \
OBJECT_CREATION_USES_RENAMES=YesPlease \
NO_CROSS_DIRECTORY_HARDLINKS=YesPlease \
NO_INSTALL_HARDLINKS=YesPlease \
HAVE_DEV_TTY=YesPlease \
DEFAULT_EDITOR=nano \
BASIC_LDFLAGS="-lnetwork -lbsd" \
"$@"
}
BUILD()
{
makeGit $jobArgs
makeGit strip
}
INSTALL()
{
makeGit install
# replace copies of git binaries with symlinks
cd $binDir
for program in git*; do
ln -sfn "../lib/git-core/$program" "$program"
done
# copy manpages
mkdir -p $manDir
cp -rd $sourceDir2/* $manDir/
# copy html documentation
htmlDir=$docDir/html
mkdir -p $htmlDir
cp -rd $sourceDir3/*.html $htmlDir/
rm $htmlDir/git-gui.html
# copy asciidoc documentation for which there isn't any corresponding html
asciidocDir=$docDir/asciidoc
mkdir -p $asciidocDir
for f in $sourceDir3/*.txt; do
html=$sourceDir3/$(basename $f .txt).html
if ! [ -e $html ]; then
cp -d $f $asciidocDir/
fi
done
packageEntries arch \
documentation/packages/git/html/git-archimport.html \
documentation/man/man1/git-archimport.1 \
lib/git-core/git-archimport
packageEntries cvs \
bin/git-cvsserver \
documentation/packages/git/html/git-cvsexportcommit.html \
documentation/packages/git/html/git-cvsimport.html \
documentation/packages/git/html/git-cvsserver.html \
documentation/man/man1/git-cvsexportcommit.1 \
documentation/man/man1/git-cvsimport.1 \
documentation/man/man1/git-cvsserver.1 \
documentation/man/man7/gitcvs-migration.7 \
lib/git-core/git-cvsexportcommit \
lib/git-core/git-cvsimport \
lib/git-core/git-cvsserver
packageEntries daemon \
documentation/packages/git/html/git-credential-cache--daemon.html \
documentation/packages/git/html/git-credential-cache.html \
documentation/packages/git/html/git-daemon.html \
documentation/man/man1/git-credential-cache--daemon.1 \
documentation/man/man1/git-credential-cache.1 \
documentation/man/man1/git-daemon.1 \
lib/git-core/git-credential-cache--daemon \
lib/git-core/git-credential-cache \
lib/git-core/git-daemon
packageEntries email \
documentation/packages/git/html/git-send-email.html \
documentation/man/man1/git-send-email.1 \
lib/git-core/git-send-email
packageEntries svn \
documentation/packages/git/html/git-svn.html \
documentation/man/man1/git-svn.1 \
lib/git-core/git-svn
}

View File

@@ -0,0 +1,78 @@
From c35cdc07a85b42e2c90b12dc6b824133ad2b6452 Mon Sep 17 00:00:00 2001
From: Ingo Weinhold <ingo_weinhold@gmx.de>
Date: Tue, 13 Aug 2013 08:07:25 +0200
Subject: git-web--browse.sh: use "open" on Haiku
diff --git a/git-web--browse.sh b/git-web--browse.sh
index 1d72ec7..e3f254c 100755
--- a/git-web--browse.sh
+++ b/git-web--browse.sh
@@ -132,6 +132,10 @@ if test -z "$browser" ; then
if test -x /usr/bin/cygstart; then
browser_candidates="cygstart $browser_candidates"
fi
+ # /boot/system/haiku_loader indicates Haiku
+ if test -f /boot/system/haiku_loader; then
+ browser_candidates="open $browser_candidates"
+ fi
for i in $browser_candidates; do
init_browser_path $i
--
1.8.3.4
From 4627da2e350c3bc0dcff780db2c8fdce1aedf52e Mon Sep 17 00:00:00 2001
From: Ingo Weinhold <ingo_weinhold@gmx.de>
Date: Tue, 13 Aug 2013 21:03:59 +0200
Subject: On Haiku use the user settings directory instead of HOME
diff --git a/path.c b/path.c
index 04ff148..8668534 100644
--- a/path.c
+++ b/path.c
@@ -5,6 +5,11 @@
#include "strbuf.h"
#include "string-list.h"
+#ifdef __HAIKU__
+# include <FindDirectory.h>
+# include <StorageDefs.h>
+#endif
+
#ifndef get_st_mode_bits
/*
* The replacement lstat(2) we use on Cygwin is incomplete and
@@ -139,6 +144,19 @@ char *git_path(const char *fmt, ...)
void home_config_paths(char **global, char **xdg, char *file)
{
+#ifdef __HAIKU__
+ char settingsPath[B_PATH_NAME_LENGTH];
+
+ *xdg = NULL;
+
+ if (global) {
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, true, settingsPath,
+ sizeof(settingsPath)) == B_OK) {
+ *global = mkpathdup("%s/git/%s", settingsPath, file);
+ } else
+ *global = NULL;
+ }
+#else
char *xdg_home = getenv("XDG_CONFIG_HOME");
char *home = getenv("HOME");
char *to_free = NULL;
@@ -161,6 +179,7 @@ void home_config_paths(char **global, char **xdg, char *file)
*xdg = mkpathdup("%s/git/%s", xdg_home, file);
free(to_free);
+#endif
}
char *git_path_submodule(const char *path, const char *fmt, ...)
--
1.8.3.4