diff --git a/devel/git-cinnabar/Makefile b/devel/git-cinnabar/Makefile index 07c478761800..ecf36657ab35 100644 --- a/devel/git-cinnabar/Makefile +++ b/devel/git-cinnabar/Makefile @@ -1,46 +1,47 @@ PORTNAME= git-cinnabar DISTVERSION= 0.5.7 +PORTREVISION= 1 CATEGORIES= devel MAINTAINER= jbeich@FreeBSD.org COMMENT= Git remote helper to interact with Mercurial repositories LICENSE= GPLv2 BUILD_DEPENDS= ${NONEXISTENT}:devel/git:configure RUN_DEPENDS= git:devel/git USE_GITHUB= yes GH_ACCOUNT= glandium USES= gmake python:3.6+,run shebangfix TARGET_ORDER_OVERRIDE= 510:fix-shebang # after do-patch SHEBANG_FILES= ${PORTNAME} git-remote-hg ALL_TARGET= ${PORTNAME}-helper MAKE_ENV= ${:!${MAKE} -V MAKE_ENV -C ${.CURDIR:H}/git!} MAKE_ARGS= SUBMODULE_STATUS=dummy ${:!${MAKE} -V MAKE_ARGS -C ${.CURDIR:H}/git!} CFLAGS+= -ffunction-sections -fdata-sections LDFLAGS+= -Wl,--gc-sections .export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS # :configure DATADIR= ${PREFIX}/libexec/git-core PORTDATA= * PORTDOCS= README.md OPTIONS_DEFINE= DOCS post-configure: @${TAR} cf - -C$$(${MAKE} -V WRKSRC -C ${PORTSDIR}/devel/git) . | \ ${TAR} xof - -C${WRKSRC}/git-core do-install: ${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_SCRIPT} ${WRKSRC}/${PORTNAME} ${WRKSRC}/git-remote-hg \ ${STAGEDIR}${DATADIR} ${INSTALL_PROGRAM} ${WRKSRC}/git-core/${PORTNAME}-helper \ ${STAGEDIR}${DATADIR} (cd ${WRKSRC} && ${COPYTREE_SHARE} "${PORTNAME:S/git-//}" \ ${STAGEDIR}${DATADIR}/pythonlib) (cd ${WRKSRC} && ${COPYTREE_SHARE} \ "${PORTDOCS}" ${STAGEDIR}${DOCSDIR}) .include diff --git a/devel/git-cinnabar/files/patch-git-2.32 b/devel/git-cinnabar/files/patch-git-2.32 new file mode 100644 index 000000000000..fca900005564 --- /dev/null +++ b/devel/git-cinnabar/files/patch-git-2.32 @@ -0,0 +1,117 @@ +https://github.com/glandium/git-cinnabar/commit/1ffb93f88fea + +--- helper/GIT-VERSION.mk.orig 2021-03-31 21:58:42 UTC ++++ helper/GIT-VERSION.mk +@@ -1,2 +1,2 @@ +-GIT_VERSION ?= v2.31.1 ++GIT_VERSION ?= v2.32.0 + WINDOWS_GIT_VERSION ?= $(GIT_VERSION).windows.1 +--- helper/cinnabar-fast-import.c.orig 2021-03-31 21:58:42 UTC ++++ helper/cinnabar-fast-import.c +@@ -106,6 +106,7 @@ void *get_object_entry(const unsigned char *sha1) + { + struct object_id oid; + hashcpy(oid.hash, sha1); ++ oid.algo = GIT_HASH_SHA1; + return find_object(&oid); + } + +@@ -220,7 +221,7 @@ static void end_packfile() + const struct object_id empty_tree = { { + 0x4b, 0x82, 0x5d, 0xc6, 0x42, 0xcb, 0x6e, 0xb9, 0xa0, 0x60, + 0xe5, 0x4b, 0xf8, 0xd6, 0x92, 0x88, 0xfb, 0xee, 0x49, 0x04, +-} }; ++}, GIT_HASH_SHA1 }; + + /* Override fast-import.c's parse_mark_ref to allow a syntax for + * mercurial sha1s, resolved through hg2git. Hack: it uses a fixed +@@ -1285,7 +1286,7 @@ void store_git_commit(struct strbuf *commit_buf, struc + const struct object_id empty_blob = { { + 0xe6, 0x9d, 0xe2, 0x9b, 0xb2, 0xd1, 0xd6, 0x43, 0x4b, 0x8b, + 0x29, 0xae, 0x77, 0x5a, 0xd8, 0xc2, 0xe4, 0x8c, 0x53, 0x91, +-} }; ++}, GIT_HASH_SHA1 }; + + const struct object_id *ensure_empty_blob() { + struct object_entry *oe = find_object((struct object_id *)&empty_blob); +--- helper/cinnabar-helper.c.orig 2021-03-31 21:58:42 UTC ++++ helper/cinnabar-helper.c +@@ -253,8 +253,7 @@ struct ls_tree_context { + }; + + static int fill_ls_tree(const struct object_id *oid, struct strbuf *base, +- const char *pathname, unsigned mode, int stage, +- void *context) ++ const char *pathname, unsigned mode, void *context) + { + struct ls_tree_context *ctx = context; + struct strbuf *buf = &ctx->buf; +@@ -299,8 +298,7 @@ static void do_ls_tree(struct string_list *args) + goto not_found; + + memset(&match_all, 0, sizeof(match_all)); +- read_tree_recursive(the_repository, tree, "", 0, 0, &match_all, +- fill_ls_tree, &ctx); ++ read_tree(the_repository, tree, &match_all, fill_ls_tree, &ctx); + send_buffer(&ctx.buf); + strbuf_release(&ctx.buf); + +--- helper/cinnabar-notes.c.orig 2021-03-31 21:58:42 UTC ++++ helper/cinnabar-notes.c +@@ -145,7 +145,8 @@ int cinnabar_remove_note(struct cinnabar_notes_tree *t + if (!result) { + struct object_id oid; + hashcpy(oid.hash, object_sha1); +- add_note(&t->additions, &oid, &null_oid, NULL); ++ oid.algo = GIT_HASH_SHA1; ++ add_note(&t->additions, &oid, null_oid(), NULL); + } + return result && result2; + } +--- helper/csum-file.c.patch.orig 2021-03-31 21:58:42 UTC ++++ helper/csum-file.c.patch +@@ -1,5 +1,5 @@ + diff --git a/csum-file.c b/csum-file.c +-index 0f35fa5ee4..cee7bd5aeb 100644 ++index 7510950fa3..19d02e3a63 100644 + --- a/csum-file.c + +++ b/csum-file.c + @@ -86,7 +86,7 @@ int finalize_hashfile(struct hashfile *f, unsigned char *result, unsigned int fl +@@ -10,4 +10,4 @@ index 0f35fa5ee4..cee7bd5aeb 100644 + +void real_hashwrite(struct hashfile *f, const void *buf, unsigned int count) + { + while (count) { +- unsigned offset = f->offset; ++ unsigned left = sizeof(f->buffer) - f->offset; +--- helper/hg-data.h.orig 2021-03-31 21:58:42 UTC ++++ helper/hg-data.h +@@ -43,11 +43,13 @@ static inline void hg_oidcpy2git(struct object_id *dst + { + memcpy(dst->hash, src->hash, 20); + memset(dst->hash + 20, 0, the_hash_algo->rawsz - 20); ++ dst->algo = GIT_HASH_SHA1; + } + + static inline void oidcpy2hg(struct hg_object_id *dst, + const struct object_id *src) + { ++ assert(src->algo == GIT_HASH_SHA1); + memcpy(dst->hash, src->hash, 20); + } + +--- helper/tree-walk.c.patch.orig 2021-03-31 21:58:42 UTC ++++ helper/tree-walk.c.patch +@@ -1,5 +1,5 @@ + diff --git a/tree-walk.c b/tree-walk.c +-index d5a8e096a6..cace4fd6cf 100644 ++index 3a94959d64..70558d2964 100644 + --- a/tree-walk.c + +++ b/tree-walk.c + @@ -47,7 +47,7 @@ static int decode_tree_entry(struct tree_desc *desc, const char *buf, unsigned l +@@ -9,5 +9,5 @@ index d5a8e096a6..cace4fd6cf 100644 + - desc->entry.mode = canon_mode(mode); + + desc->entry.mode = mode; + desc->entry.pathlen = len - 1; +- hashcpy(desc->entry.oid.hash, (const unsigned char *)path + len); ++ oidread(&desc->entry.oid, (const unsigned char *)path + len); +