Skip to content
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

gettext: Update to version 0.22.4 #21649

Merged
merged 3 commits into from
Jan 29, 2024
Merged

Conversation

tifrueh
Copy link
Contributor

@tifrueh tifrueh commented Dec 3, 2023

  • Update version number
  • Update checksums
  • Update to new build process
    • Build the whole of gettext in gettext and gettext-tools-libs, but only install the correct files for either port
    • This is due to 'gettext-tools' not being buildable without building 'gettext-runtime' first
    • Add ncurses as build dependency for gettext and gettext-tools-libs because libtextstyle is built again when building gettext and gettext-tools-libs
  • Remove deactivate hack

Closes: https://trac.macports.org/ticket/68030

Description

Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 14.1.1 23B81 arm64
Xcode 15.0.1 15A507

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL?
  • checked your Portfile with port lint --nitpick?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?
  • checked that the Portfile's most important variants haven't been broken?

@macportsbot
Copy link

Notifying maintainers:
@ryandesign for port gettext.

@tifrueh
Copy link
Contributor Author

tifrueh commented Dec 3, 2023

See #21372

Unfortunately, the less-than-optimal build behaviour persists in version 0.22.4.

tifrueh added a commit to tifrueh/ports that referenced this pull request Dec 3, 2023
@ryandesign
Copy link
Contributor

It would have been better to update #21372 so that the conversation is not split into multiple places.

@tifrueh
Copy link
Contributor Author

tifrueh commented Dec 5, 2023

Oh, I'm sorry. I thought I'd have to open a new one for a different version.
What are the preferred next steps from here on out?

Copy link
Contributor

@ryandesign ryandesign left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is of course critical that we update to gettext 0.22.x since it fixes crashes on Sonoma. I have not tested this PR. I am annoyed that, if I understand correctly, the changes that had to be made to the portfile increase the build time. I have voiced my annoyance with the developers of gettext and they are uninterested and I have no remaining energy to argue with them further.

devel/gettext/Portfile Outdated Show resolved Hide resolved
devel/gettext/Portfile Outdated Show resolved Hide resolved
devel/gettext/Portfile Outdated Show resolved Hide resolved
@tifrueh
Copy link
Contributor Author

tifrueh commented Dec 28, 2023

Damn. I just read your update on https://savannah.gnu.org/bugs/?58669 and the developer's response to it. It really seems to me that building some parts multiple times is the only way to do it in our case; The developer suggests building the whole package once and then distributing all the different files to their corresponding package, which (to my knowledge) can't be accomplished with macports. For cases where this method is not possible, he says:

For distros that are not of this type, I have documented the instructions and restrictions in the PACKAGING files. In this case, gettext-runtime needs to be built twice. But it is a relatively small package.

and

In your first comment, you wrote:

> I want gettext-tools to use the libintl that I already built and installed previously via gettext-runtime.

But this will not be done. It would be too complicated and too fragile.

So using the same libintl twice really does seem out of the question.

And because we split gettext-tools into gettext-tools-libs and gettext (I'm still a tad confused about that, what is the reason for it again?) we need to build gettext-runtime an additional time.

@tifrueh
Copy link
Contributor Author

tifrueh commented Dec 28, 2023

Oh, and I just noticed that I probably made a mistake when updating which files should be deleted in the post-destroot section of one or more subports, some of them might be missing as a result. I'll fix that as soon as possible and I'll incorporate your reviews on the comments as well.

@pmetzger
Copy link
Member

pmetzger commented Jan 2, 2024

@ryandesign Any opinion on the latest version?

@pmetzger
Copy link
Member

Howdy, all. If @ryandesign has an opinion that he expresses soon, we'll of course follow his requests. If he does not, then I think we should simply commit this as is.

@ryandesign
Copy link
Contributor

And because we split gettext-tools into gettext-tools-libs and gettext (I'm still a tad confused about that, what is the reason for it again?)

Explained in this commit message: baf0c8b

@ryandesign
Copy link
Contributor

ryandesign commented Jan 26, 2024

Any opinion on the latest version?

First, thank you so much to @tifrueh for doing this and sorry it's taking so long.

What has delayed me is that since there have been changes in the build system, I wanted to verify that each subport still installs the files it's supposed to. What I need to do is build each subport on my system and diff the file list against the old 0.21.1 subports. And I've been putting off doing that since I know it'll take awhile.

And as with any gettext update, it's critical that it builds on all systems and is correct. Everything depends on gettext so if we commit something broken, that will cause buildbot builds of most subsequent ports to fail, and rescheduling those builds once the gettext problem is fixed is extra work that I want to avoid. Since GitHub CI only checks recent macOS versions, I should at least try to build it on a couple older systems like 10.5 and 10.7 or whichever one uses the oldest Xcode clang. And whenever this PR is merged, it should be done when all or at least most of the buildbot workers are idle, and the buildbot progress should be monitored to verify that all builds succeed so that if they fail, the problem can be investigated and fixed ASAP. (I would probably do a graceful shutdown on any worker where a gettext build failed, to prevent other builds from running until the problem is fixed.) At the moment, there are long backlogs on at least some of the workers.

I'll want to include a fix for https://trac.macports.org/ticket/69195 too, which I need to verify first also, which means I'll be testing on 10.9 too.

tifrueh and others added 3 commits January 29, 2024 04:55
* Update version number
* Update checksums
* Update to new build process
  * Build the whole of gettext in gettext and gettext-tools-libs, but
    only install the correct files for either port
  * This is due to 'gettext-tools' not being buildable without building
    'gettext-runtime' first
  * Add ncurses as build dependency for gettext and gettext-tools-libs
    because libtextstyle is built again when building gettext and
    gettext-tools-libs
* Remove deactivate hack

Closes: https://trac.macports.org/ticket/68030
@ryandesign
Copy link
Contributor

I built gettext and all the subports successfully on macOS 12, 10.11, 10.10, 10.9, 10.8, 10.7, and 10.5 without the universal variant and on macOS 12 with the universal variant, all on x86_64.

I verified that the problem with clang 6xx remains on 10.9 when the blacklist is removed and that my patch fixes it.

I diff'd the file list of the 0.21.1 and 0.22.4 versions of all the (sub)ports on 10.9 and I'm happy with them; I don't see any files missing from any of them.

So thank you again! I'll merge this in a minute.

@ryandesign ryandesign merged commit 0f47aa4 into macports:master Jan 29, 2024
3 checks passed
@tifrueh
Copy link
Contributor Author

tifrueh commented Jan 29, 2024

My pleasure, I'm glad to have been of help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
4 participants