{"thread":{"id":"57222","subject":"[BUG] Re: Git 2.35.0-rc0","startedAt":"2022-01-11T02:20:23Z","lastAt":"2022-01-13T18:03:08Z","messageCount":13,"participants":["rsbecker@nexbridge.com","Taylor Blau","Junio C Hamano","Ævar Arnfjörð Bjarmason"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"445895","messageId":"00fd01d80691$c87e3ad0$597ab070$@nexbridge.com","threadId":"57222","inReplyTo":null,"subject":"[BUG] Re: Git 2.35.0-rc0","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2022-01-11T02:20:15Z","receivedAt":"2022-01-11T02:20:23Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"Hi All,\n\nGit 2.35.0-rc0 is not portable:\n\nuncompress2(uncompressed + block_header_skip, &dst_len,\n                   ^\n\"/home/ituglib/randall/jenkins/.jenkins/workspace/Git_Pipeline/reftable/bloc\nk.c\", line 213: error(114):\n          identifier \"uncompress2\" is undefined\n\nThis is not a POSIX compliant call.\n\n--Randall\n\n"},{"id":"445897","messageId":"Ydzw+RqR6IfbT/oM@nand.local","threadId":"57222","inReplyTo":"00fd01d80691$c87e3ad0$597ab070$@nexbridge.com","subject":"Re: [BUG] Re: Git 2.35.0-rc0","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2022-01-11T02:52:41Z","receivedAt":"2022-01-11T02:52:48Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Mon, Jan 10, 2022 at 09:20:15PM -0500, rsbecker@nexbridge.com wrote:\n> Hi All,\n>\n> Git 2.35.0-rc0 is not portable:\n>\n> uncompress2(uncompressed + block_header_skip, &dst_len,\n>                    ^\n> \"/home/ituglib/randall/jenkins/.jenkins/workspace/Git_Pipeline/reftable/bloc\n> k.c\", line 213: error(114):\n>           identifier \"uncompress2\" is undefined\n>\n> This is not a POSIX compliant call.\n\nuncompress2() isn't a POSIX thing, it's part of zlib IIUC. The new\ncaller is in the reftable code, which provides a build knob\nNO_UNCOMPRESS2 that you can use if your version of zlib does not have\nuncompress2().\n\nuncompress2() was added to zlib back in 37281ac (Add uncompress2()\nfunction, which returns the input size used., 2016-11-15), which first\nappeared in version 1.2.9.\n\nIf your system doesn't have a modern-ish zlib, you may try building with\nthat knob, or upgrading your system's copy of zlib. And if NonStop\ndoesn't have a modern zlib available at all, we should modify the\nNonStop section of config.mak.uname.\n\nThanks,\nTaylor\n"},{"id":"445898","messageId":"010b01d80697$0c848770$258d9650$@nexbridge.com","threadId":"57222","inReplyTo":"Ydzw+RqR6IfbT/oM@nand.local","subject":"RE: [BUG] Re: Git 2.35.0-rc0","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2022-01-11T02:57:57Z","receivedAt":"2022-01-11T02:58:05Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On January 10, 2022 9:53 PM, Taylor Blau wrote:\n> On Mon, Jan 10, 2022 at 09:20:15PM -0500, rsbecker@nexbridge.com\n> wrote:\n> > Hi All,\n> >\n> > Git 2.35.0-rc0 is not portable:\n> >\n> > uncompress2(uncompressed + block_header_skip, &dst_len,\n> >                    ^\n> > \"/home/ituglib/randall/jenkins/.jenkins/workspace/Git_Pipeline/reftabl\n> > e/bloc\n> > k.c\", line 213: error(114):\n> >           identifier \"uncompress2\" is undefined\n> >\n> > This is not a POSIX compliant call.\n> \n> uncompress2() isn't a POSIX thing, it's part of zlib IIUC. The new caller is in the\n> reftable code, which provides a build knob\n> NO_UNCOMPRESS2 that you can use if your version of zlib does not have\n> uncompress2().\n> \n> uncompress2() was added to zlib back in 37281ac (Add uncompress2()\n> function, which returns the input size used., 2016-11-15), which first\n> appeared in version 1.2.9.\n> \n> If your system doesn't have a modern-ish zlib, you may try building with that\n> knob, or upgrading your system's copy of zlib. And if NonStop doesn't have a\n> modern zlib available at all, we should modify the NonStop section of\n> config.mak.uname.\n\nThere is no provision in reftable/block.c to avoid using uncompress2, so the knob will not help. Our zlibc is not that recent (as in it does not have uncompress2) and we cannot make the 2.35.0 timeframe to upgrade it. The current zlib seems to require gcc and is very difficult to port at this stage. This is a blocker situation.\n\n--Randall\n\n"},{"id":"445899","messageId":"Ydzyv8ZCEpDDRBXT@nand.local","threadId":"57222","inReplyTo":"010b01d80697$0c848770$258d9650$@nexbridge.com","subject":"Re: [BUG] Re: Git 2.35.0-rc0","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2022-01-11T03:00:15Z","receivedAt":"2022-01-11T03:00:18Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Mon, Jan 10, 2022 at 09:57:57PM -0500, rsbecker@nexbridge.com wrote:\n> > If your system doesn't have a modern-ish zlib, you may try building with that\n> > knob, or upgrading your system's copy of zlib. And if NonStop doesn't have a\n> > modern zlib available at all, we should modify the NonStop section of\n> > config.mak.uname.\n>\n> There is no provision in reftable/block.c to avoid using uncompress2,\n> so the knob will not help. Our zlibc is not that recent (as in it does\n> not have uncompress2) and we cannot make the 2.35.0 timeframe to\n> upgrade it. The current zlib seems to require gcc and is very\n> difficult to port at this stage. This is a blocker situation.\n\nNO_UNCOMPRESS2 does not avoid calling uncompress2, but instead compiles\na copy-and-pasted implementation in compat/ so that the function is\navailable.\n\nLooking through it, I can't imagine that it wouldn't compile just fine\neven on NonStop.\n\nHave you tried building with NO_UNCOMPRESS2?\n\nThanks,\nTaylor\n"},{"id":"445900","messageId":"010c01d80697$e3324320$a996c960$@nexbridge.com","threadId":"57222","inReplyTo":"Ydzyv8ZCEpDDRBXT@nand.local","subject":"RE: [BUG] Re: Git 2.35.0-rc0","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2022-01-11T03:03:57Z","receivedAt":"2022-01-11T03:04:06Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On January 10, 2022 10:00 PM, Taylor Blau wrote:\n> To: rsbecker@nexbridge.com\n> On Mon, Jan 10, 2022 at 09:57:57PM -0500, rsbecker@nexbridge.com\n> wrote:\n> > > If your system doesn't have a modern-ish zlib, you may try building\n> > > with that knob, or upgrading your system's copy of zlib. And if\n> > > NonStop doesn't have a modern zlib available at all, we should\n> > > modify the NonStop section of config.mak.uname.\n> >\n> > There is no provision in reftable/block.c to avoid using uncompress2,\n> > so the knob will not help. Our zlibc is not that recent (as in it does\n> > not have uncompress2) and we cannot make the 2.35.0 timeframe to\n> > upgrade it. The current zlib seems to require gcc and is very\n> > difficult to port at this stage. This is a blocker situation.\n> \n> NO_UNCOMPRESS2 does not avoid calling uncompress2, but instead compiles\n> a copy-and-pasted implementation in compat/ so that the function is available.\n> \n> Looking through it, I can't imagine that it wouldn't compile just fine even on\n> NonStop.\n> \n> Have you tried building with NO_UNCOMPRESS2?\n\nI'm starting a build with that now. Will report back tomorrow.\n--R\n\n"},{"id":"445902","messageId":"010d01d8069e$8d330480$a7990d80$@nexbridge.com","threadId":"57222","inReplyTo":"Ydzyv8ZCEpDDRBXT@nand.local","subject":"RE: [BUG] Re: Git 2.35.0-rc0","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2022-01-11T03:51:39Z","receivedAt":"2022-01-11T03:51:47Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On January 10, 2022 10:00 PM, Taylor Blau wrote:\n> On Mon, Jan 10, 2022 at 09:57:57PM -0500, rsbecker@nexbridge.com\n> wrote:\n> > > If your system doesn't have a modern-ish zlib, you may try building\n> > > with that knob, or upgrading your system's copy of zlib. And if\n> > > NonStop doesn't have a modern zlib available at all, we should\n> > > modify the NonStop section of config.mak.uname.\n> >\n> > There is no provision in reftable/block.c to avoid using uncompress2,\n> > so the knob will not help. Our zlibc is not that recent (as in it does\n> > not have uncompress2) and we cannot make the 2.35.0 timeframe to\n> > upgrade it. The current zlib seems to require gcc and is very\n> > difficult to port at this stage. This is a blocker situation.\n> \n> NO_UNCOMPRESS2 does not avoid calling uncompress2, but instead compiles\n> a copy-and-pasted implementation in compat/ so that the function is available.\n> \n> Looking through it, I can't imagine that it wouldn't compile just fine even on\n> NonStop.\n> \n> Have you tried building with NO_UNCOMPRESS2?\n\nThe patch for NonStop to make this compile is as follows. Test is running - will be 2 days:\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex a3a779327f..9b3e9bff5f 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -576,6 +576,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n        NO_SETENV = YesPlease\n        NO_UNSETENV = YesPlease\n        NO_MKDTEMP = YesPlease\n+       NO_UNCOMPRESS2 = YesPlease\n        # Currently libiconv-1.9.1.\n        OLD_ICONV = UnfortunatelyYes\n        NO_REGEX = NeedsStartEnd\n\nCould we get that into rc1?\n\nI now have a different issue:\n\nmake -C t/ all\nmake[1]: Entering directory '/home/git/git/t'\nrm -f -r 'test-results'\n/usr/coreutils/bin/bash: /usr/bin/perl: Argument list too long\n\nIs there anyway to move to xargs? I am not sure why /usr/bin/perl is having issues with the build.\n\nRegards,\nRandall\n\n\n"},{"id":"445919","messageId":"011a01d806e9$ec33e440$c49bacc0$@nexbridge.com","threadId":"57222","inReplyTo":"010d01d8069e$8d330480$a7990d80$@nexbridge.com","subject":"RE: [BUG] Re: Git 2.35.0-rc0","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2022-01-11T12:51:11Z","receivedAt":"2022-01-11T12:51:27Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On January 10, 2022 10:52 PM, Taylor Blau wrote:\n> On January 10, 2022 10:00 PM, Taylor Blau wrote:\n> > On Mon, Jan 10, 2022 at 09:57:57PM -0500, rsbecker@nexbridge.com\n> > wrote:\n> > > > If your system doesn't have a modern-ish zlib, you may try\n> > > > building with that knob, or upgrading your system's copy of zlib.\n> > > > And if NonStop doesn't have a modern zlib available at all, we\n> > > > should modify the NonStop section of config.mak.uname.\n> > >\n> > > There is no provision in reftable/block.c to avoid using\n> > > uncompress2, so the knob will not help. Our zlibc is not that recent\n> > > (as in it does not have uncompress2) and we cannot make the 2.35.0\n> > > timeframe to upgrade it. The current zlib seems to require gcc and\n> > > is very difficult to port at this stage. This is a blocker situation.\n> >\n> > NO_UNCOMPRESS2 does not avoid calling uncompress2, but instead\n> > compiles a copy-and-pasted implementation in compat/ so that the function\n> is available.\n> >\n> > Looking through it, I can't imagine that it wouldn't compile just fine\n> > even on NonStop.\n> >\n> > Have you tried building with NO_UNCOMPRESS2?\n> \n> The patch for NonStop to make this compile is as follows. Test is running - will\n> be 2 days:\n> \n> diff --git a/config.mak.uname b/config.mak.uname index\n> a3a779327f..9b3e9bff5f 100644\n> --- a/config.mak.uname\n> +++ b/config.mak.uname\n> @@ -576,6 +576,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n>         NO_SETENV = YesPlease\n>         NO_UNSETENV = YesPlease\n>         NO_MKDTEMP = YesPlease\n> +       NO_UNCOMPRESS2 = YesPlease\n>         # Currently libiconv-1.9.1.\n>         OLD_ICONV = UnfortunatelyYes\n>         NO_REGEX = NeedsStartEnd\n> \n> Could we get that into rc1?\n\nThe above is working. We're at t2015 right now. Much relieved.\n--Randall\n\n"},{"id":"445961","messageId":"Yd3gJ6C3jU7ZZskc@nand.local","threadId":"57222","inReplyTo":"010d01d8069e$8d330480$a7990d80$@nexbridge.com","subject":"Re: [BUG] Re: Git 2.35.0-rc0","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2022-01-11T19:53:11Z","receivedAt":"2022-01-11T19:53:14Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Mon, Jan 10, 2022 at 10:51:39PM -0500, rsbecker@nexbridge.com wrote:\n> I now have a different issue:\n>\n> make -C t/ all\n> make[1]: Entering directory '/home/git/git/t'\n> rm -f -r 'test-results'\n> /usr/coreutils/bin/bash: /usr/bin/perl: Argument list too long\n>\n> Is there anyway to move to xargs? I am not sure why /usr/bin/perl is\n> having issues with the build.\n\nTracing through t/Makefile, I am _pretty_ sure that this Perl invocation\ncomes from the test-lint-shell-syntax recipe.\n\nI wonder if something like this would do the trick?\n\n--- 8< ---\n\ndiff --git a/t/Makefile b/t/Makefile\nindex 46cd5fc527..d959119133 100644\n--- a/t/Makefile\n+++ b/t/Makefile\n@@ -90,7 +90,7 @@ test-lint-executable:\n \t\techo >&2 \"non-executable tests:\" $$bad; exit 1; }\n\n test-lint-shell-syntax:\n-\t@'$(PERL_PATH_SQ)' check-non-portable-shell.pl $(T) $(THELPERS) $(TPERF)\n+\t@echo $(T) $(THELPERS) $(TPERF) | xargs '$(PERL_PATH_SQ)' check-non-portable-shell.pl\n\n test-lint-filenames:\n \t@# We do *not* pass a glob to ls-files but use grep instead, to catch\n\n--- >8 ---\n\nThanks,\nTaylor\n"},{"id":"445970","messageId":"013e01d8072b$47fbc4a0$d7f34de0$@nexbridge.com","threadId":"57222","inReplyTo":"Yd3gJ6C3jU7ZZskc@nand.local","subject":"RE: [BUG] Re: Git 2.35.0-rc0","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2022-01-11T20:39:02Z","receivedAt":"2022-01-11T20:39:09Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On January 11, 2022 2:53 PM, Taylor Blau wrote:\n> On Mon, Jan 10, 2022 at 10:51:39PM -0500, rsbecker@nexbridge.com\n> wrote:\n> > I now have a different issue:\n> >\n> > make -C t/ all\n> > make[1]: Entering directory '/home/git/git/t'\n> > rm -f -r 'test-results'\n> > /usr/coreutils/bin/bash: /usr/bin/perl: Argument list too long\n> >\n> > Is there anyway to move to xargs? I am not sure why /usr/bin/perl is\n> > having issues with the build.\n> \n> Tracing through t/Makefile, I am _pretty_ sure that this Perl invocation comes\n> from the test-lint-shell-syntax recipe.\n> \n> I wonder if something like this would do the trick?\n> \n> --- 8< ---\n> \n> diff --git a/t/Makefile b/t/Makefile\n> index 46cd5fc527..d959119133 100644\n> --- a/t/Makefile\n> +++ b/t/Makefile\n> @@ -90,7 +90,7 @@ test-lint-executable:\n>  \t\techo >&2 \"non-executable tests:\" $$bad; exit 1; }\n> \n>  test-lint-shell-syntax:\n> -\t@'$(PERL_PATH_SQ)' check-non-portable-shell.pl $(T) $(THELPERS)\n> $(TPERF)\n> +\t@echo $(T) $(THELPERS) $(TPERF) | xargs '$(PERL_PATH_SQ)'\n> +check-non-portable-shell.pl\n> \n>  test-lint-filenames:\n>  \t@# We do *not* pass a glob to ls-files but use grep instead, to catch\n> \n> --- >8 ---\n\nI think we don't need this yet. My CI/CD system is a bit more robust and does not get stuck here.\n--Randall\n\n"},{"id":"446053","messageId":"xmqqzgo0u5j7.fsf@gitster.g","threadId":"57222","inReplyTo":"010d01d8069e$8d330480$a7990d80$@nexbridge.com","subject":"Re: [BUG] Re: Git 2.35.0-rc0","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-01-12T19:18:20Z","receivedAt":"2022-01-12T19:18:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"<rsbecker@nexbridge.com> writes:\n\n> diff --git a/config.mak.uname b/config.mak.uname\n> index a3a779327f..9b3e9bff5f 100644\n> --- a/config.mak.uname\n> +++ b/config.mak.uname\n> @@ -576,6 +576,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n>         NO_SETENV = YesPlease\n>         NO_UNSETENV = YesPlease\n>         NO_MKDTEMP = YesPlease\n> +       NO_UNCOMPRESS2 = YesPlease\n>         # Currently libiconv-1.9.1.\n>         OLD_ICONV = UnfortunatelyYes\n>         NO_REGEX = NeedsStartEnd\n>\n> Could we get that into rc1?\n\nSure, with an appliable patch that is properly signed off.\n\n----- >8 --------- >8 --------- >8 --------- >8 --------- >8 -----\nDate: Mon, 10 Jan 2022 22:51:39 -0500\nFrom: \"Randall S. Becker\" <rsbecker@nexbridge.com>\nSubject: [PATCH] build: NonStop ships with an older zlib\n\nNotably, it lacks uncompress2(); use the fallback we ship in our\ntree instead.\n\nnot-Signed-off-yet-by: Randall S. Becker <rsbecker@nexbridge.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n config.mak.uname | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex a3a779327f..9b3e9bff5f 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -576,6 +576,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n \tNO_SETENV = YesPlease\n \tNO_UNSETENV = YesPlease\n \tNO_MKDTEMP = YesPlease\n+\tNO_UNCOMPRESS2 = YesPlease\n \t# Currently libiconv-1.9.1.\n \tOLD_ICONV = UnfortunatelyYes\n \tNO_REGEX = NeedsStartEnd\n"},{"id":"446056","messageId":"Yd8qP75AO0ZJyQJZ@nand.local","threadId":"57222","inReplyTo":"xmqqzgo0u5j7.fsf@gitster.g","subject":"Re: [BUG] Re: Git 2.35.0-rc0","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2022-01-12T19:21:35Z","receivedAt":"2022-01-12T19:22:28Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Wed, Jan 12, 2022 at 11:18:20AM -0800, Junio C Hamano wrote:\n> <rsbecker@nexbridge.com> writes:\n>\n> > diff --git a/config.mak.uname b/config.mak.uname\n> > index a3a779327f..9b3e9bff5f 100644\n> > --- a/config.mak.uname\n> > +++ b/config.mak.uname\n> > @@ -576,6 +576,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n> >         NO_SETENV = YesPlease\n> >         NO_UNSETENV = YesPlease\n> >         NO_MKDTEMP = YesPlease\n> > +       NO_UNCOMPRESS2 = YesPlease\n> >         # Currently libiconv-1.9.1.\n> >         OLD_ICONV = UnfortunatelyYes\n> >         NO_REGEX = NeedsStartEnd\n> >\n> > Could we get that into rc1?\n>\n> Sure, with an appliable patch that is properly signed off.\n\nI'm happy to attach my s-o-b to the below as well (and in general, that\nit's safe to assume my sign-off is provided to everything I post to the\nlist, unless I explicitly say otherwise), since I originally suggested\nthe diff.\n\nThanks,\nTaylor\n"},{"id":"446127","messageId":"220113.864k67vkea.gmgdl@evledraar.gmail.com","threadId":"57222","inReplyTo":"xmqqzgo0u5j7.fsf@gitster.g","subject":"Re: [BUG] Re: Git 2.35.0-rc0","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2022-01-13T13:21:44Z","receivedAt":"2022-01-13T13:24:18Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Wed, Jan 12 2022, Junio C Hamano wrote:\n\n> <rsbecker@nexbridge.com> writes:\n>\n>> diff --git a/config.mak.uname b/config.mak.uname\n>> index a3a779327f..9b3e9bff5f 100644\n>> --- a/config.mak.uname\n>> +++ b/config.mak.uname\n>> @@ -576,6 +576,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n>>         NO_SETENV = YesPlease\n>>         NO_UNSETENV = YesPlease\n>>         NO_MKDTEMP = YesPlease\n>> +       NO_UNCOMPRESS2 = YesPlease\n>>         # Currently libiconv-1.9.1.\n>>         OLD_ICONV = UnfortunatelyYes\n>>         NO_REGEX = NeedsStartEnd\n>>\n>> Could we get that into rc1?\n>\n> Sure, with an appliable patch that is properly signed off.\n>\n> ----- >8 --------- >8 --------- >8 --------- >8 --------- >8 -----\n> Date: Mon, 10 Jan 2022 22:51:39 -0500\n> From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\n> Subject: [PATCH] build: NonStop ships with an older zlib\n>\n> Notably, it lacks uncompress2(); use the fallback we ship in our\n> tree instead.\n>\n> not-Signed-off-yet-by: Randall S. Becker <rsbecker@nexbridge.com>\n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> ---\n>  config.mak.uname | 1 +\n>  1 file changed, 1 insertion(+)\n>\n> diff --git a/config.mak.uname b/config.mak.uname\n> index a3a779327f..9b3e9bff5f 100644\n> --- a/config.mak.uname\n> +++ b/config.mak.uname\n> @@ -576,6 +576,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n>  \tNO_SETENV = YesPlease\n>  \tNO_UNSETENV = YesPlease\n>  \tNO_MKDTEMP = YesPlease\n> +\tNO_UNCOMPRESS2 = YesPlease\n>  \t# Currently libiconv-1.9.1.\n>  \tOLD_ICONV = UnfortunatelyYes\n>  \tNO_REGEX = NeedsStartEnd\n\nI've run into some other cases on testing on platforms hwere the\nNO_UNCOMPRESS2 is now needed.\n\nIt's a bit of an annoyance, as git would previously compile cleanly on\nalmost any system with NO_CURL=Y NO_OPENSSL=Y, most of those with a C\ncompiler have a libz, even if it's ancient.\n\nAs I noted in\nhttps://lore.kernel.org/git/87wnn62nhp.fsf@evledraar.gmail.com/ this use\nof uncompress2() is just saving a few lines of boilerplate instead of\nusing the underlying zlib functions, which every other in-tree user\nuses.\n\nSo I think it would be most welcome if someone wanted to work on moving\nto that API use, and IMO such a change could even happen before the\nfinal release. After all we don't use reftable for anything except the\ntests it runs, so as long as those pass it IMO outweighs the new\nannyonce in compiling git on those platforms.\n"},{"id":"446170","messageId":"xmqqv8ynikdm.fsf@gitster.g","threadId":"57222","inReplyTo":"220113.864k67vkea.gmgdl@evledraar.gmail.com","subject":"Re: [BUG] Re: Git 2.35.0-rc0","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-01-13T18:03:01Z","receivedAt":"2022-01-13T18:03:08Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n> https://lore.kernel.org/git/87wnn62nhp.fsf@evledraar.gmail.com/ this use\n> of uncompress2() is just saving a few lines of boilerplate instead of\n> using the underlying zlib functions, which every other in-tree user\n> uses.\n\nI looked at the source of uncompress2(), and I tend to agree that,\nwe do NOT HAVE TO add dependency on it.  You should be able to\nrewrite the new caller without using it.\n\nBut this is a 5-year old API function, that first appeared how many\nyears ago in their public release?  In a few years, I would say that\nwe would be laughed at if we avoid it with \"it is not available\neverywhere\".\n\nAnd in the meantime, we ship a copy lifted from upstream, so those\nwith older zlib would be OK with it, too.\n\nThat is how I view what we have today.  To me, the logical\nconclusion of the observation is that, we do not have good reason\nto avoid it.\n\nWhen we are adding a new piece of code that drives inflate(), we\nshould remember that we now have uncompress2() available in the\ncodebase, and see if we can simplify it by using uncompress2().  The\nsame is true for a case where we refactor existing code that can\nbecome simpler with uncompress2().\n\nThanks.\n"}]}