From 28faa080b83f0ab34a3f4c364b3cd3b0d1aad5bd Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 13 Aug 2013 21:58:26 +0200 Subject: [PATCH] Add recipe and patches for git 1.8.3.4 The user settings files have moved from $HOME to ~/config/settings/git/. --- dev-vcs/git/git-1.8.3.4.recipe | 231 +++++++++++++++++++++++ dev-vcs/git/patches/git-1.8.3.4.patchset | 78 ++++++++ 2 files changed, 309 insertions(+) create mode 100644 dev-vcs/git/git-1.8.3.4.recipe create mode 100644 dev-vcs/git/patches/git-1.8.3.4.patchset diff --git a/dev-vcs/git/git-1.8.3.4.recipe b/dev-vcs/git/git-1.8.3.4.recipe new file mode 100644 index 000000000..31e03ddab --- /dev/null +++ b/dev-vcs/git/git-1.8.3.4.recipe @@ -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 +} diff --git a/dev-vcs/git/patches/git-1.8.3.4.patchset b/dev-vcs/git/patches/git-1.8.3.4.patchset new file mode 100644 index 000000000..696703282 --- /dev/null +++ b/dev-vcs/git/patches/git-1.8.3.4.patchset @@ -0,0 +1,78 @@ +From c35cdc07a85b42e2c90b12dc6b824133ad2b6452 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +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 +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 ++# include ++#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 +