-
Notifications
You must be signed in to change notification settings - Fork 75
Updates to bootstrap and build on macOS 14-15 / Xcode 16 #267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
How does your iconv pointer fix compare to Apple's upstream ? |
| cd .. | ||
| cd gettext-tools | ||
| pushd ../gettext-runtime | ||
| env PATH=../bin:%b/localtree/bin:$PATH ./configure %c |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to make sure in this ./configure call that no utils from %p are used (SED, AWK, GREP, etc), like we do with the other subdirectories (libtextstyle and gettext-tools) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I copied this from the existing call for gettext-tools (below), which did not set any of the ac_cv_path_*, no idea if it would be required for safety there or in the new gettext-runtime build. Normally there should be no pre-existing %p in a bootstrap, but I take your point that those paths could still be left over from an existing Fink installation.
10.9-libcxx/gettext-tools.info
Outdated
| #!/bin/sh -ev | ||
| cd gettext-tools | ||
| LC_ALL=C /usr/bin/make -w -k check || echo "Checking for expected failures in test suites" | ||
| grep ^FAIL */test-suite.log | egrep -v 'lang-perl-1|lang-perl-2' && exit 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any chance that system-egrep (BSD) may behave differently from fink-egrep (GNU) ? If so, egrep here should be /usr/bin/egrep.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see any difference either in the manpages or my experience – the regex is of the most basic type, and -v is also one of the fundamental options.
They are using Tested bootstrap now on 15.1, too, and 14.6, which indeed has 5.34 as |
|
I believe (but not certain) 14.x had perl5.30 earlier and now it has 5.34 Both at least are in /usr/bin now. |
|
dpkg doesn't need to have its internal gettext bumped? |
|
Building into an installed tree for comparison, libintl.8.dylib has bumped its compatibility version to 13.0.0 with %v=0.22.5 |
|
Good catch, forgot the bootstrap builds are all run without --validate. |
The one in fink-distributions? Would probably make sense for consistency, but I have never installed that over the bootstrapped one – as it is still at 1.10.21 vs. 1.19.7, it would almost definitely not build on any arm64 system. |
|
Oops about the dpkg note. I had forgotten that new dpkg no longer has an internal gettext. I've created a PR for the same updates to fink-distributions. |
perlmod/Fink/PkgVersion.pm
Outdated
| # 12.0/13.0 system-perl is 5.30.3, but the only supplied | ||
| # interpreter is /usr/bin/perl5.30 (not perl5.30.3) | ||
| $perlcmd = "/usr/bin/arch -%m perl5.30"; | ||
| } elsif ((&version_cmp($perlversion, '=', "5.34.1")) and Fink::Services::get_kernel_vers() == '24') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ugh. this part never got updated with macOS 14 and perl 5.30.3, but at least it still gets caught by the Fink::Services::get_kernel_vers() >= '21' elsif.
2ccf1e5 to
e95aba2
Compare
|
Added a patch for Sonoma 14.7 and tested there too, but still only on the Sequoia 15.1 beta, since I can't seem to be able to downgrade that installation to the released 15.0. |
|
I just created #269 which has a small subset of these changes to get bootstrap to "work" on 10.7; however I don't have the libcxx and other changes, so things end up running into issues with libiconv etc. I'll patch your version in and see if that fixes things This is my first time contributing to Fink so I'm not sure what the community norms are; but if we have multiple folks working on this, wouldn't it be better to set up a development branch for this? (so we can more easily incorporate all contributions, and then merge into the main branch once it's ready to go) |
|
I just tried this PR on macos14.7 and all the basic setup[1] seems to work without error; in particular libiconv appears to compile fine. There are still a bunch of warnings, but most of them are future-proofing things that should be handled upstream instead (sprintf deprecated, missing prototypes, etc). The only two warnings that seem particularly relevant to us are:
However, after the basic setup, when I try installing things I get the error [1]: That is, |
|
Yes, I encountered the same issues testing the bootstrap again on 14.7, though I don't recall seeing it in my first attempt on Sonoma. I was hesitating to set |
|
where is this I'm in a position to test this today as I no longer have fink now :\ |
|
I'm just adding a fix to Bootstrapping for inject to force new perl, and I'll commit the core parts of this PR, I'm not testing a full bootstrapping so I can't comment on the package changes yet. |
|
part of this PR was added, I haven't bootstrapped I only did an update via inject so I can't approve the info file changes yet. |
|
Made a fresh bootstrap from elsif ((&version_cmp($perlversion, '=', "5.34.1")) and Fink::Services::get_kernel_vers() == '24') {will still make it fail on current 14.x when called with |
|
MAIN also fails bootstrap on Sonoma now (having Xcode 16.1 as well) without the gettext + libiconv patches. NB it does not properly fail though; despite bootstrap proceeds to tell me (despite a missing In fact at this point all there is in With just the updates in 10.9-libcxx from this PR libiconv and dpkg build, completing bootstrap, but then the next installation attempt fails at So I think this confirms the above change to allow |
|
EDIT: nvm reading the code it'll work fine since it matches perl version first. Updating it now. |
|
Yep, and can't know for sure what system perl 25 or 26 will have anyway – at least there is a hypothetical chance they may still have 5341. |
|
totally, I thought this was a different section of code is why. This is perfectly fine and is now committed to main. The package changes still haven't been added yet as I haven't had a chance to attempt to bootstrap fresh. Which I need to do for fink/fink-distributions#1031 at some point anyhow. |
ebf561f to
e061733
Compare
I have rebased and pulled in the updates from fink/fink-distributions#1158 for those (bootstrap last tested under 15.1.1). |
|
Now that fink/fink-distributions#1158 has been merged, I synced the changes from that into bootstrap. I didn't notice this PR until after I pushed that though, so now this here is a mess. But it seems by eye that it includes most of the changes here. I'm stuck in the land of 10.x so I can't test...if there are still changes needed to bootstrap on 14 or 15, let's see if we can get them into both here and stable-distro. |
|
I think the only substantial change is how utf8mac.h deals with NULL in utf8_decodestr(). stable-distro changes NULL to '/' because that's how it was here originally, but Apple changes NULL to The other conflicts are patch MD5s changing from the patch headers, and the versioning on an shlibs field for libgettext |
|
Since rebasing my local version of this PR (only rebasing over fc1943f and 90d5f3b; it was already up-to-date on everything else), bootstrap is now giving the error:
This looks like an issue with fc1943f rather than with the current PR, since trying to bootstrap without the current PR leads to the same issue. |
e061733 to
699a254
Compare
|
Rebased including those two commits and bootstrapped this successfully on 15.3.1. |
|
Just tried the latest version on {aarch64, OSX 14.7, Darwin 23.6.0, Perl 5.34.1}, and the bootstrap goes through okay (yay!), however when trying to install something I get I'm guessing that's because fink isn't choosing the right perl version? I'd offer to patch it, but I'm not quite sure where that code is (is it |
|
You do have |
|
I do have The dependency chain looks something like |
|
But if your system correctly had
That's strange; what does |
|
There could be intermediate levels of dependencies in the graph. Possible culprits include flex and libtool2: they have dependencies on help2man and are themselves dependencies of many other packages possibly including those that ghostscript-esp lists as dependencies. I just pushed a commit that removes the flex->help2man dependency (wasn't actually used). I'm working on a similar fix for libtool2. |
|
Yes, probably libtool2 via e.g. libidn. |
|
fink/fink-distributions#1224 will remove libtool2:builddepends:help2man |
Fwiw, looking through some older buildlogs (for earlier versions of this PR), I found a message saying that
|
|
Ugh, I just noticed that the branch I was working on hadn't pulled in the #277 stuff like it should've. Sorry about that. I just started over again with a clean branch: starting at d2a2290, then applying #277, then applying #267. So now the bootstrap correctly gets I never did track down the root of the $ver warnings in #277. Just now on the new branch I ran And the uninitialized $ver error messages show up around |
|
Could you verify if fink/fink-distributions/pull/1224 allows you to successfully build libtool2? If so, that will be one whole level of mess cleared up (and generally make things better even for older platforms). |
It seems to build okay with that PR. It has a bunch of However, despite it appearing to build fine I'm not entirely sure if it has or not. When trying to install |
|
Can you post the actual command and error message about symbols and libX11 ? The Xquartz installer 2.8.5 (latest stable) should be arm64 compatible: And what's the output of |
|
The fragment of the error log: The requested command output: |
|
For X11, it looks like you have an older version of XQuartz installed that doesn't have arm64. Release 2.8.0 from 2021 was the first one to have Apple Silicon support and current release is 2.8.5. For libtool2, that looks fine. Not sure what happened during the build and I don't know now dpkg-gensymbols works |
Been playing around a bit with the Sequoia public beta, these are patches I needed to bootstrap Fink using either the supplied command line tools or Xcode 16 beta 3.
Updates to recognise kernel version 24 etc. are fairly straightforward; the only system-perl is 5.34.1, set accordingly – this may raise the question which one to use on macOS 14, which has both 5.30 and 5.34, but I don't recall which is the default, or if they have been always available from 14.0.
The base packages bring in updates to libiconv, which however still ftbfs with Xcode 16 with incompatible pointer errors like
patched here by calling with a string
'/'instead ofNULL(which should be the default, though I don't seealtslashactually used at all in thisutf8_encodestrimplementation).gettext 0.20 also failed on various missing type declarations etc.; the update to 0.22 still had some strange failures not installing libintl.la, worked around that rather manually, but grateful for better suggestions.
Tested bootstrap and inject.pl under macOS 15 beta 3 and Xcode 16 beta 3 on arm64 and Rosetta-x86_64, and on Big Sur 11.7.10 x86_64.