From 0ea92507f215e93148ae5eea0fec150f6ce52c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Wed, 21 Dec 2016 22:03:33 +0100 Subject: [PATCH] git: add recipe for version 2.11.0. --- dev-vcs/git/git-2.11.0.recipe | 241 ++++++++++++++++++++++++ dev-vcs/git/patches/git-2.11.0.patchset | 128 +++++++++++++ 2 files changed, 369 insertions(+) create mode 100644 dev-vcs/git/git-2.11.0.recipe create mode 100644 dev-vcs/git/patches/git-2.11.0.patchset diff --git a/dev-vcs/git/git-2.11.0.recipe b/dev-vcs/git/git-2.11.0.recipe new file mode 100644 index 000000000..540ae0680 --- /dev/null +++ b/dev-vcs/git/git-2.11.0.recipe @@ -0,0 +1,241 @@ +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="https://git-scm.com/" +COPYRIGHT="2005-2016 Git Authors (see git web site for list)" +LICENSE="GNU GPL v2" +REVISION="1" + +SOURCE_URI="https://www.kernel.org/pub/software/scm/git/git-$portVersion.tar.xz" +CHECKSUM_SHA256="7e7e8d69d494892373b87007674be5820a4bc1ef596a0117d03ea3169119fd0b" + +SOURCE_URI_2="https://www.kernel.org/pub/software/scm/git/git-manpages-$portVersion.tar.xz" +CHECKSUM_SHA256_2="b3d3e78829c0b69b727aaca407ecfe239a46db3f354f16189f7a7c10af9528d8" + +SOURCE_URI_3="https://www.kernel.org/pub/software/scm/git/git-htmldocs-$portVersion.tar.xz" +CHECKSUM_SHA256_3="3975399f1be3d959edf0fded03eab8fbf94787bfd0318b7644c77cf61e4a7b48" + +PATCHES="git-$portVersion.patchset" + +ARCHITECTURES="?x86_gcc2 x86 x86_64" + +PROVIDES=" + git = $portVersion compat >= 2.2 + cmd:git = $portVersion compat >= 2.2 + cmd:git_receive_pack = $portVersion compat >= 2.2 + cmd:git_shell = $portVersion compat >= 2.2 + cmd:git_upload_archive = $portVersion compat >= 2.2 + cmd:git_upload_pack = $portVersion compat >= 2.2 + " +PROVIDES_arch=" + git_arch = $portVersion compat >= 2.2 + cmd:git_archimport = $portVersion compat >= 2.2 + " +PROVIDES_cvs=" + git_cvs = $portVersion compat >= 2.2 + cmd:git_cvsimport = $portVersion compat >= 2.2 + cmd:git_cvsserver = $portVersion compat >= 2.2 + " +PROVIDES_daemon=" + git_daemon = $portVersion compat >= 2.2 + cmd:git_daemon = $portVersion compat >= 2.2 + " +PROVIDES_email=" + git_email = $portVersion compat >= 2.2 + cmd:git_send_email = $portVersion compat >= 2.2 + " +PROVIDES_source=" + git_source = $portVersion compat >= 2.2 + " +PROVIDES_svn=" + git_svn = $portVersion compat >= 2.2 + cmd:git_svn = $portVersion compat >= 2.2 + " + +REQUIRES=" + haiku + cmd:man + cmd:nano + cmd:perl >= 5 + cmd:python + lib:libcurl + lib:libexpat + lib:libiconv + lib:libintl + lib:libpcre + lib:libssl + lib:libz + vendor_perl + " +REQUIRES_arch=" + haiku + git == $portVersion base + " +REQUIRES_cvs=" + haiku + git == $portVersion base + cmd:cvsps + " +REQUIRES_daemon=" + haiku + git == $portVersion base + " +REQUIRES_email=" + haiku + git == $portVersion base + " +REQUIRES_svn=" + haiku + git == $portVersion base + " + +BUILD_REQUIRES=" + cmd:man + cmd:nano + cmd:perl + devel:libcurl + devel:libexpat + devel:libiconv + devel:libintl + devel:libpcre + devel:libssl + devel:libz + " + +BUILD_PREREQUIRES=" + haiku_devel + cmd:find + cmd:gcc + cmd:gettext + cmd:ld + cmd:make + cmd:msgfmt + cmd:sed + cmd:tar + " + +USER_SETTINGS_FILES=" + settings/git directory + " + +GLOBAL_WRITABLE_FILES=" + settings/gitconfig keep-old + " + +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=/bin/perl \ + NO_PYTHON=YesPlease \ + NO_TCLTK=YesPlease \ + OBJECT_CREATION_USES_RENAMES=YesPlease \ + NO_CROSS_DIRECTORY_HARDLINKS=YesPlease \ + NO_INSTALL_HARDLINKS=YesPlease \ + HAVE_DEV_TTY=YesPlease \ + DEFAULT_EDITOR=nano \ + DEFAULT_HELP_FORMAT=web \ + BASIC_LDFLAGS="-lnetwork -lbsd" \ + "$@" +} + +BUILD() +{ + makeGit $jobArgs + makeGit strip +} + +INSTALL() +{ + makeGit install + + # copy manpages + mkdir -p $manDir + cp -rd $sourceDir2/* $manDir/ + + # copy html documentation + htmlDir=$docDir + mkdir -p $htmlDir + cp -rd $sourceDir3/*.html $htmlDir/ + rm $htmlDir/git-gui.html + + # Default system-wide gitconfig. Settings in this file are only used + # if they are unset both for the repository and globally (global options + # are saved in the user settings file). + # core.untrackedCache caches enumeration of untracked files and uses an + # efficient method of determining whether the cache is out of date. This + # is filesystem-dependent, but supported on BeFS. + mkdir -p $sysconfDir + printf "[core]\n untrackedCache = true" > $sysconfDir/gitconfig + + # replace copies of git binaries with symlinks + cd $binDir + for program in git*; do + ln -sfn "../lib/git-core/$program" "$program" + done + + packageEntries arch \ + documentation/packages/git/git-archimport.html \ + documentation/man/man1/git-archimport.1 \ + lib/git-core/git-archimport + + packageEntries cvs \ + bin/git-cvsserver \ + documentation/packages/git/git-cvsexportcommit.html \ + documentation/packages/git/git-cvsimport.html \ + documentation/packages/git/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/git-credential-cache--daemon.html \ + documentation/packages/git/git-credential-cache.html \ + documentation/packages/git/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/git-send-email.html \ + documentation/man/man1/git-send-email.1 \ + lib/git-core/git-send-email + + packageEntries svn \ + documentation/packages/git/git-svn.html \ + documentation/man/man1/git-svn.1 \ + lib/git-core/git-svn +} + +TEST() +{ + makeGit test +} diff --git a/dev-vcs/git/patches/git-2.11.0.patchset b/dev-vcs/git/patches/git-2.11.0.patchset new file mode 100644 index 000000000..bebd7951a --- /dev/null +++ b/dev-vcs/git/patches/git-2.11.0.patchset @@ -0,0 +1,128 @@ +From 2d096b055bfc6b4ce12f780d7944f7639d9f00e0 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 ae15253..1f6e306 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 +-- +2.10.2 + + +From d29dc93eb523f18e41bdb56f2383998913e0a340 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Mon, 19 Jan 2015 15:37:16 -0500 +Subject: On Haiku use the user settings directory instead of HOME + + +diff --git a/path.c b/path.c +index 52d889c..fc5a2ff 100644 +--- a/path.c ++++ b/path.c +@@ -8,6 +8,11 @@ + #include "worktree.h" + #include "submodule-config.h" + ++#ifdef __HAIKU__ ++#include ++#include ++#endif ++ + static int get_st_mode_bits(const char *path, int *mode) + { + struct stat st; +@@ -1256,10 +1261,18 @@ char *xdg_config_home(const char *filename) + { + const char *home, *config_home; + ++#ifdef __HAIKU__ ++ char settingsPath[B_PATH_NAME_LENGTH]; + assert(filename); ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, true, settingsPath, ++ sizeof(settingsPath)) == B_OK) ++ return mkpathdup("%s/git/%s", settingsPath, filename); ++#else + config_home = getenv("XDG_CONFIG_HOME"); ++ assert(filename); + if (config_home && *config_home) + return mkpathdup("%s/git/%s", config_home, filename); ++#endif + + home = getenv("HOME"); + if (home) +-- +2.10.2 + + +From 231ca400b0392ead1a17255f4257a28f90bfc8c1 Mon Sep 17 00:00:00 2001 +From: Oliver Tappe +Date: Mon, 19 Jan 2015 15:50:09 -0500 +Subject: Ensure config-directory exists before using it. + + +diff --git a/config.c b/config.c +index 83fdecb..6c9fca1 100644 +--- a/config.c ++++ b/config.c +@@ -2083,6 +2083,7 @@ int git_config_set_multivar_in_file_gently(const char *config_filename, + int ret; + struct lock_file *lock = NULL; + char *filename_buf = NULL; ++ char *config_dir = NULL; + char *contents = NULL; + size_t contents_sz; + +@@ -2096,6 +2097,12 @@ int git_config_set_multivar_in_file_gently(const char *config_filename, + if (!config_filename) + config_filename = filename_buf = git_pathdup("config"); + ++ config_dir = xstrdup(config_filename); ++ * find_last_dir_sep(config_dir) = '\0'; ++ if (access(config_dir, F_OK) != 0) ++ mkdir(config_dir, 0755); ++ free(config_dir); ++ + /* + * The lock serves a purpose in addition to locking: the new + * contents of .git/config will be written into it. +-- +2.10.2 + + +From 7044a4e19c25312ee6c69da23acfa4cedbe51887 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 14 Feb 2016 10:32:12 +0100 +Subject: Move credential cache to the config directory. + +Do not clutter the home dir. + +diff --git a/credential-cache.c b/credential-cache.c +index cc8a6ee..4a672f9 100644 +--- a/credential-cache.c ++++ b/credential-cache.c +@@ -106,7 +106,7 @@ int cmd_main(int argc, const char **argv) + op = argv[0]; + + if (!socket_path) +- socket_path = expand_user_path("~/.git-credential-cache/socket"); ++ socket_path = xdg_config_home("credential-cache/socket"); + if (!socket_path) + die("unable to find a suitable socket path; use --socket"); + +-- +2.10.2 +