Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-09 Thread Sergey Fedorov
To conclude gperftools topic:

The following commit drops local rosetta patch, as well as another patch,
since both issues are fixed in upstream.
It also fixes a broken tests target and updates the port to 2.15.
https://github.com/macports/macports-ports/pull/22097/commits/005cd16fae819210578ac2ccdc9b9775dbc06b95

CMake build system does not work nicely for tests with this port, but
with makefiles build of 2.15 release results are:
14.2.1 arm64: PASS:  43 FAIL:  3
10.6 ppc: PASS:  39 FAIL:  7

Looks like I did not cause any “wreckage” after all, and 10.6 ppc with
makefiles (which was the system I used back then, when added support for
tests for this port) performs better than Sonoma with CMake. (No
exaggeration, it is literally the case: with CMake 12 tests fail on 14.2.1.)

On Tue, Jan 9, 2024 at 8:34 PM Sergey Fedorov  wrote:

> So, to Ken’s claim re gperftools.
>
> > And now there it sits in the ports tree, a useless MacPorts-only patch,
> just waiting to break something.
>
> To begin with, this is a false statement. The patch is NOT MacPorts-only
> but backported from the upstream. Of course, Ken did not bother to take a
> look.
> Here it is in the master:
> https://github.com/gperftools/gperftools/blob/365060c4213a48adb27f63d5dfad41b3dfbdd62e/src/libc_override_osx.h#L274-L283
>
> > Would it still work properly on 10.6 Intel?
>
> Ironically, since the build system was switched to experimental CMake (not
> by me), tests target is just broken. Apparently no one ever tried to run
> tests for it, despite such a great concern that my fix for PPC could have
> broken something.
> This commit switched the build system:
>
> https://github.com/macports/macports-ports/commit/7375653e34deb7d53d4223fcb81cf1aaadf8f963
>
> I ran tests on 10.6.8 x86_64 (default clang etc.) now from makefiles
> build, with and without my patch. Some tests fail, but regardless of adding
> the patch (that is, same tests fail).
> I also tried to run tests with CMake build system after fixing the target,
> and nearly same failures happen, though tcmalloc_unittest fails with CMake
> but passes with makefiles.
> In all three cases getpc_test either freezes or gonna take forever, and I
> have no time to wait right now.
>
> So far I can see that a move to CMake did break some stuff, but my patch
> is inconsequential.
>
> > Does it work at all on 10.6 for PPC? Who can tell?
>
> Certainly you could try running tests and tell us, since you somehow find
> sufficient time to discourage supporting PPC.
> But anyway, this is from makefiles build on 10.6.8 Rosetta:
>
> :info:test /usr/bin/make  pprof_unittest
> :info:test ./src/pprof -test
> :info:test AddressAdd 32-bit tests: 5 passes, 0 failures
> :info:test AddressAdd 64-bit tests: 10 passes, 0 failures
> :info:test AddressSub 32-bit tests: 5 passes, 0 failures
> :info:test AddressSub 64-bit tests: 10 passes, 0 failures
> :info:test AddressInc 32-bit tests: 5 passes, 0 failures
> :info:test AddressInc 64-bit tests: 10 passes, 0 failures
> :info:test PASS
> :info:test /usr/bin/make  check-TESTS
> :info:test ./src/pprof -test
> :info:test AddressAdd 32-bit tests: 5 passes, 0 failures
> :info:test AddressAdd 64-bit tests: 10 passes, 0 failures
> :info:test AddressSub 32-bit tests: 5 passes, 0 failures
> :info:test AddressSub 64-bit tests: 10 passes, 0 failures
> :info:test AddressInc 32-bit tests: 5 passes, 0 failures
> :info:test AddressInc 64-bit tests: 10 passes, 0 failures
> :info:test PASS
> :info:test PASS: low_level_alloc_unittest
> :info:test PASS: atomicops_unittest
> :info:test ./test-driver: line 112: 40951 Abort trap  "$@" >>
> "$log_file" 2>&1
> :info:test FAIL: stacktrace_unittest
> :info:test PASS: tcmalloc_minimal_unittest
> :info:test PASS: tcm_min_asserts_unittest
> :info:test PASS: tcmalloc_minimal_large_unittest
> :info:test PASS: tcmalloc_minimal_large_heap_fragmentation_unittest
> :info:test PASS: addressmap_unittest
> :info:test PASS: system_alloc_unittest
> :info:test PASS: packed_cache_test
> :info:test PASS: frag_unittest
> :info:test PASS: markidle_unittest
> :info:test PASS: current_allocated_bytes_test
> :info:test PASS: malloc_hook_test
> :info:test PASS: malloc_extension_test
> :info:test PASS: malloc_extension_c_test
> :info:test PASS: page_heap_test
> :info:test PASS: pagemap_unittest
> :info:test PASS: realloc_unittest
> :info:test PASS: stack_trace_table_test
> :info:test PASS: thread_dealloc_unittest
> :info:test PASS: tcmalloc_minimal_debug_unittest
> :info:test PASS: malloc_extension_debug_test
> :info:test PASS: realloc_debug_unittest
> :info:test rm -f debugallocation_test.sh
> :info:test cp -p ./src/tests/debugallocation_test.sh
> debugallocation_test.sh
> :info:test FAIL: debugallocation_test.sh
> :info:test rm -f tcmalloc_unittest.sh
> :info:test cp -p ./src/tests/tcmalloc_unittest.sh tcmalloc_unittest.sh
> :info:test FAIL: tcmalloc_unittest.sh
> :info:test PASS: tcm_asserts_unittest
> :info:test PASS: tcmalloc_large_unittest
> :info:test PASS: tc

Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-09 Thread Sergey Fedorov
So, to Ken’s claim re gperftools.

> And now there it sits in the ports tree, a useless MacPorts-only patch,
just waiting to break something.

To begin with, this is a false statement. The patch is NOT MacPorts-only
but backported from the upstream. Of course, Ken did not bother to take a
look.
Here it is in the master:
https://github.com/gperftools/gperftools/blob/365060c4213a48adb27f63d5dfad41b3dfbdd62e/src/libc_override_osx.h#L274-L283

> Would it still work properly on 10.6 Intel?

Ironically, since the build system was switched to experimental CMake (not
by me), tests target is just broken. Apparently no one ever tried to run
tests for it, despite such a great concern that my fix for PPC could have
broken something.
This commit switched the build system:
https://github.com/macports/macports-ports/commit/7375653e34deb7d53d4223fcb81cf1aaadf8f963

I ran tests on 10.6.8 x86_64 (default clang etc.) now from makefiles build,
with and without my patch. Some tests fail, but regardless of adding the
patch (that is, same tests fail).
I also tried to run tests with CMake build system after fixing the target,
and nearly same failures happen, though tcmalloc_unittest fails with CMake
but passes with makefiles.
In all three cases getpc_test either freezes or gonna take forever, and I
have no time to wait right now.

So far I can see that a move to CMake did break some stuff, but my patch is
inconsequential.

> Does it work at all on 10.6 for PPC? Who can tell?

Certainly you could try running tests and tell us, since you somehow find
sufficient time to discourage supporting PPC.
But anyway, this is from makefiles build on 10.6.8 Rosetta:

:info:test /usr/bin/make  pprof_unittest
:info:test ./src/pprof -test
:info:test AddressAdd 32-bit tests: 5 passes, 0 failures
:info:test AddressAdd 64-bit tests: 10 passes, 0 failures
:info:test AddressSub 32-bit tests: 5 passes, 0 failures
:info:test AddressSub 64-bit tests: 10 passes, 0 failures
:info:test AddressInc 32-bit tests: 5 passes, 0 failures
:info:test AddressInc 64-bit tests: 10 passes, 0 failures
:info:test PASS
:info:test /usr/bin/make  check-TESTS
:info:test ./src/pprof -test
:info:test AddressAdd 32-bit tests: 5 passes, 0 failures
:info:test AddressAdd 64-bit tests: 10 passes, 0 failures
:info:test AddressSub 32-bit tests: 5 passes, 0 failures
:info:test AddressSub 64-bit tests: 10 passes, 0 failures
:info:test AddressInc 32-bit tests: 5 passes, 0 failures
:info:test AddressInc 64-bit tests: 10 passes, 0 failures
:info:test PASS
:info:test PASS: low_level_alloc_unittest
:info:test PASS: atomicops_unittest
:info:test ./test-driver: line 112: 40951 Abort trap  "$@" >>
"$log_file" 2>&1
:info:test FAIL: stacktrace_unittest
:info:test PASS: tcmalloc_minimal_unittest
:info:test PASS: tcm_min_asserts_unittest
:info:test PASS: tcmalloc_minimal_large_unittest
:info:test PASS: tcmalloc_minimal_large_heap_fragmentation_unittest
:info:test PASS: addressmap_unittest
:info:test PASS: system_alloc_unittest
:info:test PASS: packed_cache_test
:info:test PASS: frag_unittest
:info:test PASS: markidle_unittest
:info:test PASS: current_allocated_bytes_test
:info:test PASS: malloc_hook_test
:info:test PASS: malloc_extension_test
:info:test PASS: malloc_extension_c_test
:info:test PASS: page_heap_test
:info:test PASS: pagemap_unittest
:info:test PASS: realloc_unittest
:info:test PASS: stack_trace_table_test
:info:test PASS: thread_dealloc_unittest
:info:test PASS: tcmalloc_minimal_debug_unittest
:info:test PASS: malloc_extension_debug_test
:info:test PASS: realloc_debug_unittest
:info:test rm -f debugallocation_test.sh
:info:test cp -p ./src/tests/debugallocation_test.sh debugallocation_test.sh
:info:test FAIL: debugallocation_test.sh
:info:test rm -f tcmalloc_unittest.sh
:info:test cp -p ./src/tests/tcmalloc_unittest.sh tcmalloc_unittest.sh
:info:test FAIL: tcmalloc_unittest.sh
:info:test PASS: tcm_asserts_unittest
:info:test PASS: tcmalloc_large_unittest
:info:test PASS: tcmalloc_large_heap_fragmentation_unittest
:info:test PASS: raw_printer_test
:info:test PASS: sampler_test
:info:test rm -f sampling_test.sh
:info:test cp -p ./src/tests/sampling_test.sh sampling_test.sh
:info:test FAIL: sampling_test.sh
:info:test rm -f heap-profiler_unittest.sh
:info:test cp -p ./src/tests/heap-profiler_unittest.sh
heap-profiler_unittest.sh
:info:test FAIL: heap-profiler_unittest.sh
:info:test PASS: simple_compat_test
:info:test PASS: tcmalloc_debug_unittest
:info:test PASS: sampler_debug_test
:info:test rm -f sampling_debug_test.sh
:info:test cp -p ./src/tests/sampling_test.sh sampling_debug_test.sh
:info:test FAIL: sampling_debug_test.sh
:info:test rm -f heap-profiler_debug_unittest.sh
:info:test cp -p ./src/tests/heap-profiler_unittest.sh
heap-profiler_debug_unittest.sh
:info:test FAIL: heap-profiler_debug_unittest.sh

This is on 10.6.8 x86_64:

:info:test /usr/bin/make  pprof_unittest

:info:test ./src/pprof -test

:info:test AddressAdd 32-bit tests: 5 passes, 0 failures

:info:test

Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-09 Thread Sergio Had
On Jan 9, 2024 at 03:37 +0800, Joshua Root , wrote:
> On 9/1/2024 05:26, Perry E. Metzger wrote:
> > On 1/8/24 12:50, Sergey Fedorov wrote:
> > > 2. Standard 10.6.8 release from Apple does support building and
> > > running ppc binaries via Rosetta.
> >
> > Why would one want to spend time and effort on doing that, though?
>
> You wouldn't, if you were running a public release of 10.6. The ppc libs
> were put there to support existing ppc binaries, which will have been
> built targeting 10.5 or older. With MacPorts, native x86_64 or i386
> builds would be far preferable. Unless, of course, you're running on a
> CPU that can't run those archs, which can only be the case if you are
> running an early development version of the OS.

Yet gcc supports 10.6.8 Rosetta in the master. Current gcc. (And no, it is not 
me who brought it there.)
> > So far as I can tell, the project's primary goal is to provide support
> > for the millions of people who run MacOS on current hardware and
> > operating systems and want up to date software for their machine. The
> > goal is not (primarily) to assist in running PPC binaries on Rosetta on
> > 20 year old hardware for the couple of people for whom that is
> > interesting. Certainly there's nothing wrong with supporting that to the
> > extent that it does not interfere with the primary goal.
>
> As a reminder, the project policy is (and has been virtually since the
> beginning) to support the versions of macOS that are still getting
> updates from Apple. That is the expectation for maintainers. Maintainers
> can voluntarily support older stuff, but they are under no obligation to
> so so.

There is no obligation, obviously, no one claims there is, I believe.

As for the policy, I can see that Macports offers distributives for older OS 
which do not get updates from Apple for years. This is much more than not 
prohibiting such builds. I did not dig through the whole of documentation, but 
I believe that if an installable binary for the specific OS is provided, there 
is an implication it should actually work.

There is also no obligation to break something which a maintainer is not 
personally interested in.


Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-09 Thread Sergio Had
It is quite a jump from one to hundreds. I stand by my statement: you 
deliberately mislead everyone claiming that there are numerous 10a190-specific 
hacks.

From memory I recall one merged fix which was not required on standard 10.6.8 
but was on 10a190. There are perhaps a dozen which are not required on 10a190 
but required on standard 10.6.8 Rosetta, for the reason I pointed earlier: arch 
gets misdetected.

tcmalloc stuff, as I recall, is common and not 10a190-specific. I will check 
that.

If the specific case is wrong (I need to look into the thing), it should be 
made correct, of course; I never claimed that my code is a priori flawless.

Unlike some, at least I don’t commit it straight into the master without even 
trying to build the thing ;)
On Jan 9, 2024 at 12:31 +0800, Ken Cunningham 
, wrote:
> I think you just don't realize the wreckage you've done.
>
> Here is one of hundreds of your typical commits, although this is a simpler 
> one than most, to be honest.
>
> The commit below has no purpose other than to allow the port to build as PPC 
> on 10.6. And as that is really only of interest on 10.6-for-PPC, it is 
> specifically for that. You say you want to support "Rosetta" but nobody 
> builds for PPC on 10.6.
>
> Here, you've reordered a few instructions, and blocked out some code from 
> running on PPC (presumably because the instructions don't exist on 
> 10.6-for-PPC so it wouldn't compile).
>
> However, this changes the code. And it's not simple code, it is complicated 
> code. Does this change the function of the code? Would it still work properly 
> on 10.6 Intel? Does it work at all on 10.6 for PPC? Who can tell? I certainly 
> don't think you have the experience to know. I can't eyeball it as being fine.
>
> It used to say:
>
> tcmalloc_zone.version = 6;
> tcmalloc_zone.free_definite_size = &mz_free_definite_size;
> tcmalloc_zone.memalign = &mz_memalign;
> tcmalloc_introspection.zone_locked = &mi_zone_locked;
>
> and now it says (I think) on Intel:
>
> tcmalloc_zone.version = 6;
> tcmalloc_zone.memalign = &mz_memalign;
> tcmalloc_zone.free_definite_size = &mz_free_definite_size;
> tcmalloc_introspection.zone_locked = &mi_zone_locked;
>
> and on 10.6-PPC you just get this:
>
> tcmalloc_zone.version = 6;
> tcmalloc_zone.memalign = &mz_memalign;
>
> Does reordering those statements change the function? Does it work at all 
> with the two statements removed? It would take me considerable reading to 
> find out. It took me 10 minutes just to figure out what your patch did.
>
> And now there it sits in the ports tree, a useless MacPorts-only patch, just 
> waiting to break something. Some poor sot might bring an issue to upstream 
> about this, having no idea that this is not even upstream's code any more.
>
> And there are HUNDREDS of these all throughout the codebase that need to be 
> all stripped out.
>
> This is unfortunately a huge mess now.
>
> K
>
>
>
>
> https://github.com/macports/macports-ports/commit/418232ebb3d0e68579364c6246de4464f8f494c9
>
> ==
> --- src/libc_override_osx.h.orig 2021-12-13 14:28:06.0 +0800
> +++ src/libc_override_osx.h 2023-01-19 20:14:36.0 +0800
> @@ -276,9 +276,11 @@
> MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
> // Switch to version 6 on OSX 10.6 to support memalign.
> tcmalloc_zone.version = 6;
> - tcmalloc_zone.free_definite_size = &mz_free_definite_size;
> tcmalloc_zone.memalign = &mz_memalign;
> +#ifndef __POWERPC__
> + tcmalloc_zone.free_definite_size = &mz_free_definite_size;
> tcmalloc_introspection.zone_locked = &mi_zone_locked;
> +#endif
>
> // Request the default purgable zone to force its creation. The
> // current default zone is registered with the purgable zone for
> =
>
>
>
> > On Jan 8, 2024, at 9:50 AM, Sergey Fedorov  wrote:
> >
> > Here we go again.
> >
> > 1. To begin with, nobody is submitting 10A190-specific fixes to Macports. 
> > They are sitting in my local repo. Please, do not mislead people who are 
> > unaware of the matter.
> >
> > 2. Standard 10.6.8 release from Apple does support building and running ppc 
> > binaries via Rosetta. Nothing unreleased or, as you [mis]frame, “stolen”.
> > While I think your opposition is completely unjustified, there has been no 
> > demands or even active discussion about supporting pre-released builds on 
> > 10.6. The point is supporting officially released 10.6.8.
> >
> > 3. If anyone did wonder, the whole issue with 10A190 is literally ~20 ports 
> > altogether, and those fixes amount to a few lines of code to adjust a few 
> > assumptions re SDK. Despite it being portrayed as something like half of 
> > the Macports tree is broken and needs tailored hacks which gonna break 
> > everything. This is nowhere the case.
> > However, as I said above, nobody demanded 10A190 being supported in the 
> > master. Nobody commits 10A190-specific fixups.
> >
> > 4. > “The problem was that there were many fragile and sharply increasing 
> > *specific* workaroun

Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-08 Thread Ken Cunningham
I think you just don't realize the wreckage you've done.

Here is one of hundreds of your typical commits, although this is a simpler one 
than most, to be honest.

The commit below has no purpose other than to allow the port to build as PPC on 
10.6. And as that is really only of interest on 10.6-for-PPC, it is 
specifically for that. You say you want to support "Rosetta" but nobody builds 
for PPC on 10.6.

Here, you've reordered a few instructions, and blocked out some code from 
running on PPC (presumably because the instructions don't exist on 10.6-for-PPC 
so it wouldn't compile). 

However, this changes the code. And it's not simple code, it is complicated 
code. Does this change the function of the code? Would it still work properly 
on 10.6 Intel? Does it work at all on 10.6 for PPC? Who can tell? I certainly 
don't think you have the experience to know. I can't eyeball it as being fine.

It used to say:

tcmalloc_zone.version = 6;
tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_zone.memalign = &mz_memalign;
tcmalloc_introspection.zone_locked = &mi_zone_locked;

and now it says (I think) on Intel:

tcmalloc_zone.version = 6;
tcmalloc_zone.memalign = &mz_memalign;
tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_introspection.zone_locked = &mi_zone_locked;

and on 10.6-PPC you just get this:

tcmalloc_zone.version = 6;
tcmalloc_zone.memalign = &mz_memalign;

Does reordering those statements change the function? Does it work at all with 
the two statements removed? It would take me considerable reading to find out. 
It took me 10 minutes just to figure out what your patch did.

And now there it sits in the ports tree, a useless MacPorts-only patch, just 
waiting to break something. Some poor sot might bring an issue to upstream 
about this, having no idea that this is not even upstream's code any more.

And there are HUNDREDS of these all throughout the codebase that need to be all 
stripped out.

This is unfortunately a huge mess now.

K




https://github.com/macports/macports-ports/commit/418232ebb3d0e68579364c6246de4464f8f494c9

==
--- src/libc_override_osx.h.orig 2021-12-13 14:28:06.0 +0800
+++ src/libc_override_osx.h 2023-01-19 20:14:36.0 +0800
@@ -276,9 +276,11 @@
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
// Switch to version 6 on OSX 10.6 to support memalign.
tcmalloc_zone.version = 6;
- tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_zone.memalign = &mz_memalign;
+#ifndef __POWERPC__
+ tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_introspection.zone_locked = &mi_zone_locked;
+#endif

// Request the default purgable zone to force its creation. The
// current default zone is registered with the purgable zone for
=



> On Jan 8, 2024, at 9:50 AM, Sergey Fedorov  wrote:
> 
> Here we go again.
> 
> 1. To begin with, nobody is submitting 10A190-specific fixes to Macports. 
> They are sitting in my local repo. Please, do not mislead people who are 
> unaware of the matter.
> 
> 2. Standard 10.6.8 release from Apple does support building and running ppc 
> binaries via Rosetta. Nothing unreleased or, as you [mis]frame, “stolen”.
> While I think your opposition is completely unjustified, there has been no 
> demands or even active discussion about supporting pre-released builds on 
> 10.6. The point is supporting officially released 10.6.8.
> 
> 3. If anyone did wonder, the whole issue with 10A190 is literally ~20 ports 
> altogether, and those fixes amount to a few lines of code to adjust a few 
> assumptions re SDK. Despite it being portrayed as something like half of the 
> Macports tree is broken and needs tailored hacks which gonna break 
> everything. This is nowhere the case.
> However, as I said above, nobody demanded 10A190 being supported in the 
> master. Nobody commits 10A190-specific fixups.
> 
> 4. > “The problem was that there were many fragile and sharply increasing 
> *specific* workarounds added into the ports tree solely to support running 
> this PowerPC beta on MacPorts”.
> 
> This accusation keeps being repeated, but it is simply not true. You will not 
> be able to show multiple specific workarounds for 10A190 in Macports master. 
> They are not there.
> There were a few specific fixes for standard 10.6.8 Rosetta, largely because 
> the makefile build system misdetects the arch. They are not numerous either, 
> and verily not sharply increasing.
> 
> It will be great not to keep repeating false statements targeting those who 
> are unaware of the facts.
> 



Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-08 Thread Joshua Root

On 9/1/2024 05:26, Perry E. Metzger wrote:

On 1/8/24 12:50, Sergey Fedorov wrote:
2. Standard 10.6.8 release from Apple does support building and 
running ppc binaries via Rosetta.


Why would one want to spend time and effort on doing that, though?


You wouldn't, if you were running a public release of 10.6. The ppc libs 
were put there to support existing ppc binaries, which will have been 
built targeting 10.5 or older. With MacPorts, native x86_64 or i386 
builds would be far preferable. Unless, of course, you're running on a 
CPU that can't run those archs, which can only be the case if you are 
running an early development version of the OS.


So far as I can tell, the project's primary goal is to provide support 
for the millions of people who run MacOS on current hardware and 
operating systems and want up to date software for their machine. The 
goal is not (primarily) to assist in running PPC binaries on Rosetta on 
20 year old hardware for the couple of people for whom that is 
interesting. Certainly there's nothing wrong with supporting that to the 
extent that it does not interfere with the primary goal.


As a reminder, the project policy is (and has been virtually since the 
beginning) to support the versions of macOS that are still getting 
updates from Apple. That is the expectation for maintainers. Maintainers 
can voluntarily support older stuff, but they are under no obligation to 
so so.


- Josh


Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-08 Thread Sergey Fedorov
To begin with, it is not up to me to decide what Macports should or should
not do, it is not my project.

However solution, if you ask me, if not to dump some users, who may be few,
but interested to contribute (I think no one can honestly accuse me of
fixing only PowerPC stuff – well, Ken may, but commit history is public),
and not to give up on one major competitive advantage over Homebrew, but
rather optimize how committing is done.

Give commit access to others, and no one will need to waste time approving
commits.

For a note, I still think that PowerPC impact is overexaggerated, and
mostly because there are some members who just hate the stuff, so every
once in a while we get huge threads.
I did not count, of course, but I think PPC-exclusive commits are not
numerous, and when PPC fixes are done, they normally are done together with
fixes for Intel or together with updates, so they should not take more time
to merge.

There is also not much problem to maintain ppc-specific code: if it is
there at all, do not touch it, and it gonna work. PPC does not change much
nowadays ;)

On Tue, Jan 9, 2024 at 2:26 AM Perry E. Metzger  wrote:

> On 1/8/24 12:50, Sergey Fedorov wrote:
> > 2. Standard 10.6.8 release from Apple does support building and
> > running ppc binaries via Rosetta.
>
> Why would one want to spend time and effort on doing that, though?
>
> Just to be clear about my position on almost everything here:
>
> I don't mind people spending lots of time and effort making old things
> stay working provided it doesn't cost anyone else anything. However,
> there's a lot of stuff in our tree now devoted to patching modern
> software to make it work on certain old versions of MacOS. There's a
> cost to that in that other people have to think about it, read through
> Portfiles trying to assure themselves that they don't need to think
> about certain patches, etc. It adds complexity and time to the process
> of maintaining stuff that runs for most people.
>
> So far as I can tell, the project's primary goal is to provide support
> for the millions of people who run MacOS on current hardware and
> operating systems and want up to date software for their machine. The
> goal is not (primarily) to assist in running PPC binaries on Rosetta on
> 20 year old hardware for the couple of people for whom that is
> interesting. Certainly there's nothing wrong with supporting that to the
> extent that it does not interfere with the primary goal.
>
> I worry that the interest of a small minority in their hobby of making
> certain very old and specific configurations work is taking time away
> from the rest of the project. Most of the people running on Macs use
> Sonoma with ARM or Intel hardware.
>
> Perry
>
>
>


Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-08 Thread Perry E. Metzger

On 1/8/24 12:50, Sergey Fedorov wrote:
2. Standard 10.6.8 release from Apple does support building and 
running ppc binaries via Rosetta.


Why would one want to spend time and effort on doing that, though?

Just to be clear about my position on almost everything here:

I don't mind people spending lots of time and effort making old things 
stay working provided it doesn't cost anyone else anything. However, 
there's a lot of stuff in our tree now devoted to patching modern 
software to make it work on certain old versions of MacOS. There's a 
cost to that in that other people have to think about it, read through 
Portfiles trying to assure themselves that they don't need to think 
about certain patches, etc. It adds complexity and time to the process 
of maintaining stuff that runs for most people.


So far as I can tell, the project's primary goal is to provide support 
for the millions of people who run MacOS on current hardware and 
operating systems and want up to date software for their machine. The 
goal is not (primarily) to assist in running PPC binaries on Rosetta on 
20 year old hardware for the couple of people for whom that is 
interesting. Certainly there's nothing wrong with supporting that to the 
extent that it does not interfere with the primary goal.


I worry that the interest of a small minority in their hobby of making 
certain very old and specific configurations work is taking time away 
from the rest of the project. Most of the people running on Macs use 
Sonoma with ARM or Intel hardware.


Perry




Re: Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-08 Thread Sergey Fedorov
Here we go again.

1. To begin with, nobody is submitting 10A190-specific fixes to Macports.
They are sitting in my local repo. Please, do not mislead people who are
unaware of the matter.

2. Standard 10.6.8 release from Apple does support building and running ppc
binaries via Rosetta. Nothing unreleased or, as you [mis]frame, “stolen”.
While I think your opposition is completely unjustified, there has been no
demands or even active discussion about supporting pre-released builds on
10.6. The point is supporting officially released 10.6.8.

3. If anyone did wonder, the whole issue with 10A190 is literally ~20 ports
altogether, and those fixes amount to a few lines of code to adjust a few
assumptions re SDK. Despite it being portrayed as something like half of
the Macports tree is broken and needs tailored hacks which gonna break
everything. This is nowhere the case.
However, as I said above, nobody demanded 10A190 being supported in the
master. Nobody commits 10A190-specific fixups.

4. > “The problem was that there were many fragile and sharply increasing
*specific* workarounds added into the ports tree solely to support running
this PowerPC beta on MacPorts”.

This accusation keeps being repeated, but it is simply not true. You will
not be able to show multiple specific workarounds for 10A190 in Macports
master. They are not there.
There were a few specific fixes *for standard 10.6.8* Rosetta, largely
because the makefile build system misdetects the arch. They are not
numerous either, and verily not sharply increasing.

It will be great not to keep repeating false statements targeting those who
are unaware of the facts.


Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

2024-01-08 Thread Ken Cunningham
There is no hiccup in MacPorts support for PowerPC systems, despite the 
dramatic title of the PR.

Also there is no hiccup in support for older released Apple operating systems. 
10.4 and 10.5 remain fully supported by MacPorts (although 10.4 might be on 
last legs).

There is also no need (IMHO) for a fork of MacPorts to support older Apple 
operating systems.

What there was a difference of opinion about was whether MacPorts should 
provide *specific* and rather extensive support for an unreleased early PowerPC 
beta of an Apple operating system that was a stepping stone to what became 
MacOSX 10.6 that had been found in an old developer's drawer and released into 
the wild through various websites.

The problem was that there were many fragile and sharply increasing *specific* 
workarounds added into the ports tree solely to support running this PowerPC 
beta on MacPorts. 

These were kludgy and hard to eyeball debug. Nobody could test them very well, 
as the number of users of this unreleased beta PowerPC SnowLeopard OS were 
extremely few. They were scattered throughout the ports tree and patches in 
ways that made them very difficult, and time consuming, to properly vet.

MacPorts has always considered 10.6 as supporting i386 and x86_64, and a great 
many ports and portgroups were written with this in mind. That fits very nicely 
into the support MacPorts provides up to 10.13, that also support i386 and 
x86_64, so that whole block of systems can be managed often one unit. Once 
legacysupport came out, the number of changes in Portfiles that were needed to 
support 10.6 was actually very minimal, and that was the whole idea. 

However, to support a 10.6 PPC beta meant redoing a large number of these 
assumptions to accommodate cross-compiling PowerPC code. Different compilers, 
different universal options -- an entire redo. In addition, the 10.6 beta is 
missing a number functions and capabilities that 10.6.8 Intel has, and to 
10.5.8 PowerPC has further fixups and enhancements added to it by Apple that 
never made it into the unreleased 10.6 beta.

There is no reason anyone needs to use 10.6-for-PowerPC. Of course, you can if 
you want, and go ahead and make some changes in ports to support that if you 
care to. That is a reason for someone to fork MacPorts ports tree, but there is 
certainly no reason those changes need to be distributed to every MacPorts user.


To be honest, I can't really believe we're even having the conversation about 
whether we support a specific unreleased stolen Apple OS from a developer's 
drawer that doesn't fit into the existing structure and requires hundreds or 
more additions to the ports tree. It was just nuts from the beginning to allow 
this into MacPorts.

Ken