Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 Oct 2022 11:50:17 +0200
From:      Matthias Andree <mandree@FreeBSD.org>
To:        d@delphij.net, ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   Re: git: 525e857368c8 - main - sysutils/e2fsprogs: revert bogus qsort_r() patch.
Message-ID:  <e026e87b-6d27-ae3b-aa7a-1058272391d8@FreeBSD.org>
In-Reply-To: <eaa1a01a-f52b-70c6-e506-d7efb7345464@delphij.net>
References:  <202210010713.2917DPgq077535@gitrepo.freebsd.org> <eaa1a01a-f52b-70c6-e506-d7efb7345464@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help

Am 01.10.22 um 10:30 schrieb Xin Li:
> First of all, thanks for connecting me with the upstream developer.


Thanks for going in so much detail with him.


> 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?

Xin,

Applying it was, in spite of the discussion and better approaches in the 
pipeline -- and the patch that got committed here also is not the one 
that got into sort_r.

Look, it's not as if FreeBSD 14-CURRENT were datacenter production 
ready, and -CURRENT isn't Tier #1 for ports either. It does not matter 
if it breaks for a few days.

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

Well, we can MFH the fix any time.

>
>>      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.

Then the proper fix is to remove the unused ballast if it is getting in 
the way.

(Having to parenthesize a function name is an abomination I have not 
seen in 32 years of dealing with C and C++ code.)

>
> 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.

I am compiling 14-CURRENT from Git as we speak so I have a test bed. But 
this takes a while, even with a 8-core 16-thread CPU.

>
> 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.
>
Oops. I will fix that first.

Regards,
Matthias




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e026e87b-6d27-ae3b-aa7a-1058272391d8>