Re: git: 525e857368c8 - main - sysutils/e2fsprogs: revert bogus qsort_r() patch.

From: Xin Li <delphij_at_delphij.net>
Date: Sat, 01 Oct 2022 08:30:42 UTC
First of all, thanks for connecting me with the upstream developer.

On 10/1/22 00:13, Matthias Andree wrote:
> The branch main has been updated by mandree:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=525e857368c8c2de355ca00b0c35008be6ee8a3c
> 
> commit 525e857368c8c2de355ca00b0c35008be6ee8a3c
> Author:     Matthias Andree <mandree@FreeBSD.org>
> AuthorDate: 2022-10-01 07:10:08 +0000
> Commit:     Matthias Andree <mandree@FreeBSD.org>
> CommitDate: 2022-10-01 07:13:09 +0000
> 
>      sysutils/e2fsprogs: revert bogus qsort_r() patch.

Which part of it was bogus?

It was a working fix, and the goal was to ensure that the upcoming 
2022Q4 branch will be working with -CURRENT, by the way.

>      delphij@ and the upstream maintainer were working on a autoconf-based
>      solution, and this patch was not approved.  Remove it and mark
>      port BROKEN on systems that changed qsort_r() for the GNU-like API.

I think I have made it pretty clear in our discussion with upstream 
maintainer that the current versions of e2fsprogs are NOT really using 
qsort_r at all, and it is always using sort_r_simple.

sort_r_simple is platform independent, there is no compelling to leave 
the port broken just because the sort_r author decided it was a good 
idea to redefine qsort_r (the maintainer also accepted my proposal to 
change qsort_r to (qsort_r) earlier this week: 
https://github.com/noporpoise/sort_r/blob/master/sort_r.h .

So based on the reasons above, my change shouldn't even affect the 
resulting binary.

And it's my believe that -CURRENT users deserves better treatment than 
marking a "trunk" port broken like this, just because a better solution 
is being worked on by the upstream.  The ports patching mechanism exists 
for a reason, and we can do better than this.

>      
>      PR:             266227
> ---
>   sysutils/e2fsprogs/Makefile                         |  6 +++++-
>   .../e2fsprogs/files/patch-lib_support_sort__r.h     | 21 ---------------------
>   2 files changed, 5 insertions(+), 22 deletions(-)
> 
> diff --git a/sysutils/e2fsprogs/Makefile b/sysutils/e2fsprogs/Makefile
> index 9a89d8de14f6..1205caa9179a 100644
> --- a/sysutils/e2fsprogs/Makefile
> +++ b/sysutils/e2fsprogs/Makefile
> @@ -13,7 +13,7 @@
>   
>   PORTNAME=	e2fsprogs
>   PORTVERSION=	1.46.5
> -PORTREVISION?=	2
> +PORTREVISION?=	3
>   CATEGORIES?=	sysutils
>   MASTER_SITES=	KERNEL_ORG/linux/kernel/people/tytso/${PORTNAME}/v${PORTVERSION}
>   
> @@ -142,6 +142,10 @@ USE_PERL5=	build
>   
>   .include <bsd.port.pre.mk>
>   
> +.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400072
> +BROKEN=		incompatible qsort_r() API. Upstream working on a autoconf-based fix.
> +.endif

This has unnecessarily broke all ports that uses sysutils/e2fsprogs as 
MASTERDIR, which includes misc/e2fsprogs-libuuid, which do not 
necessarily use sort_r.h, please fix or revert.

Cheers,