pkgsrc/devel/git-base/Makefile
adam 29f4a8921d Changes 1.8.4.1:
* Some old versions of bash do not grok some constructs like
   'printf -v varname' which the prompt and completion code started
   to use recently.  The completion and prompt scripts have been
   adjusted to work better with these old versions of bash.

 * In FreeBSD's and NetBSD's "sh", a return in a dot script in a
   function returns from the function, not only in the dot script,
   breaking "git rebase" on these platforms (regression introduced
   in 1.8.4-rc1).

 * "git rebase -i" and other scripted commands were feeding a
   random, data dependant error message to 'echo' and expecting it
   to come out literally.

 * Setting the "submodule.<name>.path" variable to the empty
   "true" caused the configuration parser to segfault.

 * Output from "git log --full-diff -- <pathspec>" looked strange
   because comparison was done with the previous ancestor that
   touched the specified <pathspec>, causing the patches for paths
   outside the pathspec to show more than the single commit has
   changed.

 * The auto-tag-following code in "git fetch" tries to reuse the
   same transport twice when the serving end does not cooperate and
   does not give tags that point to commits that are asked for as
   part of the primary transfer.  Unfortunately, Git-aware transport
   helper interface is not designed to be used more than once, hence
   this did not work over smart-http transfer.  Fixed.

 * Send a large request to read(2)/write(2) as a smaller but still
   reasonably large chunks, which would improve the latency when the
   operation needs to be killed and incidentally works around broken
   64-bit systems that cannot take a 2GB write or read in one go.

 * A ".mailmap" file that ends with an incomplete line, when read
   from a blob, was not handled properly.

 * The recent "short-cut clone connectivity check" topic broke a
   shallow repository when a fetch operation tries to auto-follow
   tags.

 * When send-email comes up with an error message to die with upon
   failure to start an SSL session, it tried to read the error
   string from a wrong place.

 * A call to xread() was used without a loop to cope with short
   read in the codepath to stream large blobs to a pack.

 * On platforms with fgetc() and friends defined as macros, the
   configuration parser did not compile.

 * New versions of MediaWiki introduced a new API for returning
   more than 500 results in response to a query, which would cause
   the MediaWiki remote helper to go into an infinite loop.

 * Subversion's serf access method (the only one available in
   Subversion 1.8) for http and https URLs in skelta mode tells its
   caller to open multiple files at a time, which made "git svn
   fetch" complain that "Temp file with moniker 'svn_delta' already
   in use" instead of fetching.

Also contains a handful of trivial code clean-ups, documentation
updates, updates to the test suite, etc.
2013-10-18 19:48:48 +00:00

110 lines
3.5 KiB
Makefile

# $NetBSD: Makefile,v 1.5 2013/10/18 19:48:48 adam Exp $
.include "../../devel/git/Makefile.common"
PKGNAME= git-base-${GIT_VERSION}
COMMENT= GIT Tree History Storage Tool (base package)
CONFLICTS+= scmgit-base-[0-9]*
SUPERSEDES+= scmgit-base-[0-9]*
DEPENDS+= p5-Error>=0.17015:../../devel/p5-Error
# for git-send-email
DEPENDS+= 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
DEPENDS+= p5-Authen-SASL>=1.0:../../security/p5-Authen-SASL
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
CFLAGS.NetBSD+= -D_NETBSD_SOURCE
CONFIGURE_ARGS+= --with-curl=${BUILDLINK_PREFIX.curl}
CONFIGURE_ARGS+= --with-expat=${BUILDLINK_PREFIX.expat}
CONFIGURE_ARGS+= --with-iconv=${BUILDLINK_PREFIX.iconv}
CONFIGURE_ARGS+= --with-openssl=${SSLBASE}
CONFIGURE_ARGS+= --with-perl=${PERL5:Q}
CONFIGURE_ARGS+= --with-zlib=${BUILDLINK_PREFIX.zlib}
CONFIGURE_ARGS+= --without-tcltk
BUILD_TARGET= all
REPLACE_SH+= contrib/hooks/post-receive-email
REPLACE_SH+= contrib/hooks/pre-auto-gc-battery
EGDIR= ${PREFIX}/share/examples/git
GIT_COREDIR= git-core
GIT_TEMPLATEDIR= templates
GIT_TEMPLATES= description info/exclude
GIT_TEMPLATES+= hooks/applypatch-msg.sample hooks/commit-msg.sample
GIT_TEMPLATES+= hooks/post-update.sample hooks/pre-applypatch.sample
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}
MAKE_DIRS= ${GIT_CORE_TEMPLATEDIR}
MAKE_DIRS+= ${GIT_CORE_TEMPLATEDIR}/hooks
MAKE_DIRS+= ${GIT_CORE_TEMPLATEDIR}/info
REQD_FILES+= ${GIT_TEMPLATES:@.t.@\
${EGDIR}/${GIT_TEMPLATEDIR}/${.t.}\
${PREFIX}/${GIT_CORE_TEMPLATEDIR}/${.t.}\
@:M*}
CONFIGURE_ENV+= HOME=${PREFIX}
CONFIGURE_ENV+= gitexecdir=${GITCOREDIR}
MAKE_FLAGS+= INSTALL=${INSTALL:Q}
GIT_TEMPLATE_INSTDIR= ${EGDIR}/${GIT_TEMPLATEDIR}
MAKE_ENV+= GIT_TEMPLATE_INSTDIR=${GIT_TEMPLATE_INSTDIR}
MESSAGE_SUBST+= GIT_TEMPLATE_INSTDIR=${GIT_TEMPLATE_INSTDIR}
SUBST_CLASSES+= fix-paths
SUBST_FILES.fix-paths= templates/hooks--post-receive.sample
SUBST_MESSAGE.fix-paths=Fixing hard-coded pathnames
SUBST_STAGE.fix-paths= pre-build
SUBST_VARS.fix-paths= PREFIX
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "SunOS" || ${OPSYS} == "OSF1" || ${OPSYS} == "HPUX" || ${OPSYS} == "QNX" || ${OPSYS} == "UnixWare"
SUBST_CLASSES+= fix-cd-P
SUBST_FILES.fix-cd-P= git-sh-setup.sh
SUBST_FILES.fix-cd-P+= t/test-lib.sh
SUBST_MESSAGE.fix-cd-P= Fixing cd arguments.
SUBST_STAGE.fix-cd-P= pre-build
SUBST_SED.fix-cd-P= -e "s/cd -P/cd/g"
.endif
LDFLAGS.SunOS+= -lintl -lnsl
post-install:
${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR}
${INSTALL_DATA} ${WRKSRC}/contrib/completion/git-completion.bash \
${DESTDIR}${EGDIR}
${INSTALL_DATA} ${WRKSRC}/contrib/completion/git-prompt.sh \
${DESTDIR}${EGDIR}
.include "options.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../lang/perl5/module.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../www/curl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"