pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkgsrc: git: updated to 2.17.0



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a7e554bb684c
branches:  trunk
changeset: 306162:a7e554bb684c
user:      adam <adam%pkgsrc.org@localhost>
date:      Wed Apr 11 19:39:34 2018 +0000
description:
git: updated to 2.17.0

Git 2.17:

UI, Workflows & Features
* "diff" family of commands learned "--find-object=<object-id>" option
  to limit the findings to changes that involve the named object.
* "git format-patch" learned to give 72-cols to diffstat, which is
  consistent with other line length limits the subcommand uses for
  its output meant for e-mails.
* The log from "git daemon" can be redirected with a new option; one
  relevant use case is to send the log to standard error (instead of
  syslog) when running it from inetd.
* "git rebase" learned to take "--allow-empty-message" option.
* "git am" has learned the "--quit" option, in addition to the
  existing "--abort" option; having the pair mirrors a few other
  commands like "rebase" and "cherry-pick".
* "git worktree add" learned to run the post-checkout hook, just like
  "git clone" runs it upon the initial checkout.
* "git tag" learned an explicit "--edit" option that allows the
  message given via "-m" and "-F" to be further edited.
* "git fetch --prune-tags" may be used as a handy short-hand for
  getting rid of stale tags that are locally held.
* The new "--show-current-patch" option gives an end-user facing way
  to get the diff being applied when "git rebase" (and "git am")
  stops with a conflict.
* "git add -p" used to offer "/" (look for a matching hunk) as a
  choice, even there was only one hunk, which has been corrected.
  Also the single-key help is now given only for keys that are
  enabled (e.g. help for '/' won't be shown when there is only one
  hunk).
* Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when
  the side branch being merged is a descendant of the current commit,
  create a merge commit instead of fast-forwarding) when merging a
  tag object.  This was appropriate default for integrators who pull
  signed tags from their downstream contributors, but caused an
  unnecessary merges when used by downstream contributors who
  habitually "catch up" their topic branches with tagged releases
  from the upstream.  Update "git merge" to default to --no-ff only
  when merging a tag object that does *not* sit at its usual place in
  refs/tags/ hierarchy, and allow fast-forwarding otherwise, to
  mitigate the problem.
* "git status" can spend a lot of cycles to compute the relation
  between the current branch and its upstream, which can now be
  disabled with "--no-ahead-behind" option.
* "git diff" and friends learned funcname patterns for Go language
  source files.
* "git send-email" learned "--reply-to=<address>" option.
* Funcname pattern used for C# now recognizes "async" keyword.
* In a way similar to how "git tag" learned to honor the pager
  setting only in the list mode, "git config" learned to ignore the
  pager setting when it is used for setting values (i.e. when the
  purpose of the operation is not to "show").

Performance, Internal Implementation, Development Support etc.
* More perf tests for threaded grep
* "perf" test output can be sent to codespeed server.
* The build procedure for perl/ part has been greatly simplified by
  weaning ourselves off of MakeMaker.
* Perl 5.8 or greater has been required since Git 1.7.4 released in
  2010, but we continued to assume some core modules may not exist and
  used a conditional "eval { require <<module>> }"; we no longer do
  this.  Some platforms (Fedora/RedHat/CentOS, for example) ship Perl
  without all core modules by default (e.g. Digest::MD5, File::Temp,
  File::Spec, Net::Domain, Net::SMTP).  Users on such platforms may
  need to install these additional modules.
* As a convenience, we install copies of Perl modules we require which
  are not part of the core Perl distribution (e.g. Error and
  Mail::Address).  Users and packagers whose operating system provides
  these modules can set NO_PERL_CPAN_FALLBACKS to avoid installing the
  bundled modules.
* In preparation for implementing narrow/partial clone, the machinery
  for checking object connectivity used by gc and fsck has been
  taught that a missing object is OK when it is referenced by a
  packfile specially marked as coming from trusted repository that
  promises to make them available on-demand and lazily.
* The machinery to clone & fetch, which in turn involves packing and
  unpacking objects, has been told how to omit certain objects using
  the filtering mechanism introduced by another topic.  It now knows
  to mark the resulting pack as a promisor pack to tolerate missing
  objects, laying foundation for "narrow" clones.
* The first step to getting rid of mru API and using the
  doubly-linked list API directly instead.
* Retire mru API as it does not give enough abstraction over
  underlying list API to be worth it.
* Rewrite two more "git submodule" subcommands in C.
* The tracing machinery learned to report tweaking of environment
  variables as well.
* Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str)
* Prevent "clang-format" from breaking line after function return type.
* The sequencer infrastructure is shared across "git cherry-pick",
  "git rebase -i", etc., and has always spawned "git commit" when it
  needs to create a commit.  It has been taught to do so internally,
  when able, by reusing the codepath "git commit" itself uses, which
  gives performance boost for a few tens of percents in some sample
  scenarios.
* Push the submodule version of collision-detecting SHA-1 hash
  implementation a bit harder on builders.
* Avoid mmapping small files while using packed refs (especially ones
  with zero size, which would cause later munmap() to fail).
* Conversion from uchar[20] to struct object_id continues.
* More tests for wildmatch functions.
* The code to binary search starting from a fan-out table (which is
  how the packfile is indexed with object names) has been refactored
  into a reusable helper.
* We now avoid using identifiers that clash with C++ keywords.  Even
  though it is not a goal to compile Git with C++ compilers, changes
  like this help use of code analysis tools that targets C++ on our
  codebase.
* The executable is now built in 'script' phase in Travis CI integration,
  to follow the established practice, rather than during 'before_script'
  phase.  This allows the CI categorize the failures better ('failed'
  is project's fault, 'errored' is build environment's).
* Writing out the index file when the only thing that changed in it
  is the untracked cache information is often wasteful, and this has
  been optimized out.
* Various pieces of Perl code we have have been cleaned up.
* Internal API clean-up to allow write_locked_index() optionally skip
  writing the in-core index when it is not modified.

diffstat:

 devel/git-base/Makefile                |  14 ++---
 devel/git-base/PLIST                   |   3 +-
 devel/git-base/distinfo                |  14 ++---
 devel/git-base/options.mk              |  24 +--------
 devel/git-base/patches/patch-Makefile  |  85 ++++++++++++++++++++++++++++++++++
 devel/git-base/patches/patch-aa        |  51 --------------------
 devel/git-base/patches/patch-ae        |  16 ------
 devel/git-base/patches/patch-wrapper.c |  18 -------
 devel/git-docs/Makefile                |   9 +--
 devel/git-docs/PLIST                   |   3 +-
 devel/git-gitk/Makefile                |   4 +-
 devel/git/Makefile.version             |   4 +-
 12 files changed, 110 insertions(+), 135 deletions(-)

diffs (truncated from 403 to 300 lines):

diff -r 39300f72c10b -r a7e554bb684c devel/git-base/Makefile
--- a/devel/git-base/Makefile   Wed Apr 11 15:39:02 2018 +0000
+++ b/devel/git-base/Makefile   Wed Apr 11 19:39:34 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.51 2018/02/20 09:26:56 adam Exp $
+# $NetBSD: Makefile,v 1.52 2018/04/11 19:39:34 adam Exp $
 
 .include "../../devel/git/Makefile.common"
 
@@ -9,8 +9,6 @@
 SUPERSEDES+=           scmgit-base-[0-9]*
 
 DEPENDS+=              p5-Error>=0.17015:../../devel/p5-Error
-# for git-send-email
-#DEPENDS+=             {perl>=5.13.8,p5-MIME-Base64>=3.13}:../../converters/p5-MIME-Base64
 DEPENDS+=              p5-Email-Valid>=0.190:../../mail/p5-Email-Valid
 DEPENDS+=              p5-MailTools>=2.11:../../mail/p5-MailTools
 DEPENDS+=              p5-Net-SMTP-SSL>=1.01:../../mail/p5-Net-SMTP-SSL
@@ -19,8 +17,6 @@
 USE_LANGUAGES=         c99
 USE_TOOLS+=            perl:run sh:run msgfmt
 
-PERL5_CONFIGURE=       no
-PERL5_PACKLIST=                auto/Git/.packlist
 REPLACE_PERL+=         *.perl */*.perl */*/*.perl
 REPLACE_PERL+=         contrib/hooks/update-paranoid
 
@@ -32,6 +28,7 @@
 CONFIGURE_ARGS+=       --with-libpcre2=${BUILDLINK_PREFIX.pcre2}
 CONFIGURE_ARGS+=       --with-perl=${PERL5:Q}
 CONFIGURE_ARGS+=       --with-zlib=${BUILDLINK_PREFIX.zlib}
+CONFIGURE_ARGS+=       --without-python # only needed for git-p4
 CONFIGURE_ARGS+=       --without-tcltk
 
 BUILD_TARGET=          all
@@ -52,8 +49,6 @@
 GIT_TEMPLATES+=                hooks/pre-commit.sample hooks/pre-rebase.sample
 GIT_TEMPLATES+=                hooks/prepare-commit-msg.sample hooks/update.sample
 
-# XXX unused as of now
-#GIT_CORE_EXECDIR=     libexec/${GIT_COREDIR}
 GIT_CORE_DATADIR=      share/${GIT_COREDIR}
 GIT_CORE_TEMPLATEDIR=  ${GIT_CORE_DATADIR}/${GIT_TEMPLATEDIR}
 
@@ -71,6 +66,10 @@
 
 MAKE_FLAGS+=           INSTALL=${INSTALL:Q}
 
+.include "../../lang/perl5//buildlink3.mk"
+PERLLIBDIR!=           ${PERL5} -MConfig -wle 'print substr $$Config{installvendorlib}, 1 + length $$Config{vendorprefixexp}'
+MAKE_ENV+=             PERLLIBDIR=${PERLLIBDIR}
+
 GIT_TEMPLATE_INSTDIR=  ${EGDIR}/${GIT_TEMPLATEDIR}
 MAKE_ENV+=             GIT_TEMPLATE_INSTDIR=${GIT_TEMPLATE_INSTDIR}
 MESSAGE_SUBST+=                GIT_TEMPLATE_INSTDIR=${GIT_TEMPLATE_INSTDIR}
@@ -117,7 +116,6 @@
 .include "../../devel/gettext-lib/buildlink3.mk"
 .include "../../devel/pcre2/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
-.include "../../lang/perl5/module.mk"
 .include "../../textproc/expat/buildlink3.mk"
 .include "../../www/curl/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
diff -r 39300f72c10b -r a7e554bb684c devel/git-base/PLIST
--- a/devel/git-base/PLIST      Wed Apr 11 15:39:02 2018 +0000
+++ b/devel/git-base/PLIST      Wed Apr 11 19:39:34 2018 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.18 2018/01/22 14:17:24 adam Exp $
+@comment $NetBSD: PLIST,v 1.19 2018/04/11 19:39:34 adam Exp $
 bin/git
 bin/git-cvsserver
 bin/git-receive-pack
@@ -97,7 +97,6 @@
 libexec/git-core/git-mv
 libexec/git-core/git-name-rev
 libexec/git-core/git-notes
-libexec/git-core/git-p4
 libexec/git-core/git-pack-objects
 libexec/git-core/git-pack-redundant
 libexec/git-core/git-pack-refs
diff -r 39300f72c10b -r a7e554bb684c devel/git-base/distinfo
--- a/devel/git-base/distinfo   Wed Apr 11 15:39:02 2018 +0000
+++ b/devel/git-base/distinfo   Wed Apr 11 19:39:34 2018 +0000
@@ -1,15 +1,13 @@
-$NetBSD: distinfo,v 1.78 2018/03/24 08:09:40 adam Exp $
+$NetBSD: distinfo,v 1.79 2018/04/11 19:39:34 adam Exp $
 
-SHA1 (git-2.16.3.tar.xz) = e54fbd04232e8b949764b414c46aea73cca16af0
-RMD160 (git-2.16.3.tar.xz) = 65229a65b041dc7cf0ee028b79f60f0eb424c1db
-SHA512 (git-2.16.3.tar.xz) = 73520cf3500b2d13b77eb1e5ec0d60263aad07732d25631732f0d986abd023f97b8a6db4abff64d342cb053018289b5f7a3e32f10b86bd9092a37ee0585adc8a
-Size (git-2.16.3.tar.xz) = 4966248 bytes
-SHA1 (patch-aa) = a58f3c2f45c1fbafd751d10b9ef34e6c9afc2c6f
+SHA1 (git-2.17.0.tar.xz) = f0d4139af75bfdbe306387358b2e40eb541ccc06
+RMD160 (git-2.17.0.tar.xz) = d419c1d8cb9aaf976853ae088e8b1a72cb5ddd38
+SHA512 (git-2.17.0.tar.xz) = dab1c1d5d384b36720abc049a66ba60631e17958b214cfbec467be7adc02e82190e5282554da71797892c16bfe52d65b6244a281f504385083125bcb98ec7ee9
+Size (git-2.17.0.tar.xz) = 5011556 bytes
+SHA1 (patch-Makefile) = 13b3e19ae7eec5612137a1e299f3efd3d3555874
 SHA1 (patch-ac) = e5d2112d158fe493a89b244a10d2e4b998a23d98
-SHA1 (patch-ae) = 9bc2e6c7f0a8fbc385b6ffda638d3245a62dc5ca
 SHA1 (patch-af) = 06460f220b4703a1ff98809006ec1aed5017bb23
 SHA1 (patch-ag) = 4f0b9a5745203ea7ef369c8272b3ea7c644762f0
 SHA1 (patch-ah) = f22a2160631fb624e9e20616c68ad1a4aa2bebc7
 SHA1 (patch-ai) = 56b63d4790a11f5eb128186ad5efdd1bcf102f2e
 SHA1 (patch-config.mak.uname) = 5316873147acf5b6ef29e426946280bb6441c886
-SHA1 (patch-wrapper.c) = 1fb629ec301d0431cb5bebd716b1c3a7ae45577f
diff -r 39300f72c10b -r a7e554bb684c devel/git-base/options.mk
--- a/devel/git-base/options.mk Wed Apr 11 15:39:02 2018 +0000
+++ b/devel/git-base/options.mk Wed Apr 11 19:39:34 2018 +0000
@@ -1,29 +1,11 @@
-# $NetBSD: options.mk,v 1.4 2016/04/11 04:22:33 dbj Exp $
-#
+# $NetBSD: options.mk,v 1.5 2018/04/11 19:39:34 adam Exp $
+
 PKG_OPTIONS_VAR=       PKG_OPTIONS.git
-PKG_SUPPORTED_OPTIONS= python apple-common-crypto
-# python is not suggested because upstream's INSTALL does not list python
-# as a dependency and because all it does is install a python module,
-# which does not seem worth the dependency for everyone else.
+PKG_SUPPORTED_OPTIONS= apple-common-crypto
 PKG_SUGGESTED_OPTIONS=
 
 .include "../../mk/bsd.options.mk"
 
-PLIST_VARS+=           python
-
-.if !empty(PKG_OPTIONS:Mpython)
-PY_PATCHPLIST= yes
-CONFIGURE_ARGS+=       --with-python=${PYTHONBIN}
-PLIST.python=          yes
-# not executable
-CHECK_INTERPRETER_SKIP+= ${PYSITELIB}/git_remote_helpers/*.py
-CHECK_INTERPRETER_SKIP+= ${PYSITELIB}/git_remote_helpers/git/*.py
-.include "../../lang/python/application.mk"
-.include "../../lang/python/extension.mk"
-.else
-CONFIGURE_ARGS+=       --without-python
-.endif
-
 .if !empty(PKG_OPTIONS:Mapple-common-crypto)
 .  if !empty(MACHINE_PLATFORM:MDarwin-[0-8].*-*)
 PKG_FAIL_REASON+=      "apple-common-crypto not available on this system"
diff -r 39300f72c10b -r a7e554bb684c devel/git-base/patches/patch-Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/git-base/patches/patch-Makefile     Wed Apr 11 19:39:34 2018 +0000
@@ -0,0 +1,85 @@
+$NetBSD: patch-Makefile,v 1.1 2018/04/11 19:39:35 adam Exp $
+
+Do not override compiler/linker flags.
+Provide proper path for Perl module.
+Do not install git-p4 (requires Python).
+Fix tar operations.
+
+--- Makefile.orig      2018-04-02 17:44:04.000000000 +0000
++++ Makefile
+@@ -452,8 +452,6 @@ DEVELOPER_CFLAGS = -Werror \
+       -Wunused \
+       -Wvla
+ LDFLAGS =
+-ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
+-ALL_LDFLAGS = $(LDFLAGS)
+ STRIP ?= strip
+ 
+ # Create as necessary, replace existing, make ranlib unneeded.
+@@ -482,7 +480,7 @@ gitexecdir = libexec/git-core
+ mergetoolsdir = $(gitexecdir)/mergetools
+ sharedir = $(prefix)/share
+ gitwebdir = $(sharedir)/gitweb
+-perllibdir = $(sharedir)/perl5
++perllibdir = $(prefix)${PERLLIBDIR}
+ localedir = $(sharedir)/locale
+ template_dir = share/git-core/templates
+ htmldir = $(prefix)/share/doc/git-doc
+@@ -498,13 +496,9 @@ htmldir_relative = $(patsubst $(prefix)/
+ 
+ export prefix bindir sharedir sysconfdir gitwebdir perllibdir localedir
+ 
+-CC = cc
+-AR = ar
+ RM = rm -f
+ DIFF = diff
+-TAR = tar
+ FIND = find
+-INSTALL = install
+ TCL_PATH = tclsh
+ TCLTK_PATH = wish
+ XGETTEXT = xgettext
+@@ -624,7 +618,6 @@ clean-python-script:
+ 
+ SCRIPTS = $(SCRIPT_SH_INS) \
+         $(SCRIPT_PERL_INS) \
+-        $(SCRIPT_PYTHON_INS) \
+         git-instaweb
+ 
+ ETAGS_TARGET = TAGS
+@@ -1807,8 +1800,8 @@ PAGER_ENV_CQ = "$(subst ",\",$(subst \,\
+ PAGER_ENV_CQ_SQ = $(subst ','\'',$(PAGER_ENV_CQ))
+ BASIC_CFLAGS += -DPAGER_ENV='$(PAGER_ENV_CQ_SQ)'
+ 
+-ALL_CFLAGS += $(BASIC_CFLAGS)
+-ALL_LDFLAGS += $(BASIC_LDFLAGS)
++ALL_CFLAGS = $(BASIC_CFLAGS) $(CPPFLAGS) $(CFLAGS)
++ALL_LDFLAGS = $(BASIC_LDFLAGS) $(LDFLAGS)
+ 
+ export DIFF TAR INSTALL DESTDIR SHELL_PATH
+ 
+@@ -2588,13 +2581,12 @@ install: all
+ ifndef NO_GETTEXT
+       $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(localedir_SQ)'
+       (cd po/build/locale && $(TAR) cf - .) | \
+-      (cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xof -)
++      (cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xf -)
+ endif
+ ifndef NO_PERL
+       $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perllibdir_SQ)'
+       (cd perl/build/lib && $(TAR) cf - .) | \
+-      (cd '$(DESTDIR_SQ)$(perllibdir_SQ)' && umask 022 && $(TAR) xof -)
+-      $(MAKE) -C gitweb install
++      (cd '$(DESTDIR_SQ)$(perllibdir_SQ)' && umask 022 && $(TAR) xf -)
+ endif
+ ifndef NO_TCLTK
+       $(MAKE) -C gitk-git install
+@@ -2652,7 +2644,7 @@ install-man: install-man-perl
+ install-man-perl: man-perl
+       $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mandir_SQ)/man3'
+       (cd perl/build/man/man3 && $(TAR) cf - .) | \
+-      (cd '$(DESTDIR_SQ)$(mandir_SQ)/man3' && umask 022 && $(TAR) xof -)
++      (cd '$(DESTDIR_SQ)$(mandir_SQ)/man3' && umask 022 && $(TAR) xf -)
+ 
+ install-html:
+       $(MAKE) -C Documentation install-html
diff -r 39300f72c10b -r a7e554bb684c devel/git-base/patches/patch-aa
--- a/devel/git-base/patches/patch-aa   Wed Apr 11 15:39:02 2018 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-$NetBSD: patch-aa,v 1.8 2016/09/07 08:56:33 adam Exp $
-
---- Makefile.orig      2016-09-03 01:59:09.000000000 +0000
-+++ Makefile
-@@ -396,8 +396,6 @@ DEVELOPER_CFLAGS = -Werror \
-       -Wunused \
-       -Wvla
- LDFLAGS =
--ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
--ALL_LDFLAGS = $(LDFLAGS)
- STRIP ?= strip
- 
- # Create as necessary, replace existing, make ranlib unneeded.
-@@ -441,13 +439,9 @@ htmldir_relative = $(patsubst $(prefix)/
- 
- export prefix bindir sharedir sysconfdir gitwebdir localedir
- 
--CC = cc
--AR = ar
- RM = rm -f
- DIFF = diff
--TAR = tar
- FIND = find
--INSTALL = install
- TCL_PATH = tclsh
- TCLTK_PATH = wish
- XGETTEXT = xgettext
-@@ -1647,8 +1641,8 @@ PAGER_ENV_CQ = "$(subst ",\",$(subst \,\
- PAGER_ENV_CQ_SQ = $(subst ','\'',$(PAGER_ENV_CQ))
- BASIC_CFLAGS += -DPAGER_ENV='$(PAGER_ENV_CQ_SQ)'
- 
--ALL_CFLAGS += $(BASIC_CFLAGS)
--ALL_LDFLAGS += $(BASIC_LDFLAGS)
-+ALL_CFLAGS = $(BASIC_CFLAGS) $(CPPFLAGS) $(CFLAGS)
-+ALL_LDFLAGS = $(BASIC_LDFLAGS) $(LDFLAGS)
- 
- export DIFF TAR INSTALL DESTDIR SHELL_PATH
- 
-@@ -2341,11 +2335,10 @@ install: all
- ifndef NO_GETTEXT
-       $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(localedir_SQ)'
-       (cd po/build/locale && $(TAR) cf - .) | \
--      (cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xof -)
-+      (cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xf -)
- endif
- ifndef NO_PERL
-       $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
--      $(MAKE) -C gitweb install
- endif
- ifndef NO_TCLTK
-       $(MAKE) -C gitk-git install
diff -r 39300f72c10b -r a7e554bb684c devel/git-base/patches/patch-ae
--- a/devel/git-base/patches/patch-ae   Wed Apr 11 15:39:02 2018 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-$NetBSD: patch-ae,v 1.1 2013/09/09 13:54:44 wiz Exp $
-
-In pkgsrc, all Perl modules are installed into vendor_perl, not
-site_perl.
-
---- perl/Makefile.orig 2008-08-17 16:43:06.000000000 -0400
-+++ perl/Makefile
-@@ -13,7 +13,7 @@ ifndef V
- endif
- 
- all install instlibdir: $(makfile)



Home | Main Index | Thread Index | Old Index