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.3 #21372

Closed
wants to merge 1 commit into from
Closed

gettext: Update to version 0.22.3 #21372

wants to merge 1 commit into from

Conversation

tifrueh
Copy link
Contributor

@tifrueh tifrueh commented Nov 13, 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 build dependency to 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 15A240d

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 Nov 13, 2023

Note: This Portfile builds the whole of the gettext package when building the port gettext and gettext-tools-libs. This is due to the impossibility to build anything in the 0.22.3 tarball's subdirectory gettext-tools without having first built gettext-runtime in its respective subdirectory.

This isn't ideal, as it lengthens compile times considerably, but I currently do not see any other possibility to make gettext-0.22.3 build and install correctly, unfortunately.

See:

In the next release, only the copy under gettext-runtime/intl/ will be built; the other one is gone. Note that this will have the drawback that you can't build gettext-tools/ without having built gettext-runtime/ first.

https://savannah.gnu.org/bugs/?58669

and:

The 'gettext-tools' binary package can be installed by building 'gettext-runtime' first, and then [...]

gettext-0.22.3/PACKAGING

@ryandesign
Copy link
Contributor

it lengthens compile times considerably

Then this doesn't seem like the correct solution. If you'll read my bug report:

https://savannah.gnu.org/bugs/?58669

the whole point was that the build took longer because it built libintl twice. They solved that bug, therefore my assumption is that the new version should build quicker than the old one.

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

Don't you mean Closes https://trac.macports.org/ticket/68030? It needs to go in the commit message also, not just in the PR description.

* 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 build dependency to 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
@tifrueh
Copy link
Contributor Author

tifrueh commented Nov 17, 2023

You are of course right about the trac reference, I've changed it to Closes ...

About the libintl thing: It seems that instead of not building libintl in gettext-tools and using the one in gettext-runtime or an installed version, autotools uses exclusively the libintl previously built in in gettext-runtime during the build.

While tinkering with the build system I was able to get it not to use the libintl from gettext-runtime but then the build failed because of some missing header. Therefore, I assume that when libintl is built, some headers are generated which are needed for building gettext-tools but are not installed when installing gettext-runtime.

I believe that's also what they meant with

Note that this will have the drawback that you can't build gettext-tools/ without having built gettext-runtime/ first.

when commenting on your bug report.

This would mean that now that libintl is only built once, compile time does indeed decrease, but only if you build gettext all at once. If you want to build all the subpackages separately and in isolation from each other, you still have to build libintl twice. I have not found a possibility to build only libintl and gettext-runtime yet, so what we're left with is compiling the whole of gettext-runtime (and libtextstyle, too, unfortunately) twice.

And the separation of gettext and gettext-tools-libs in the portfile makes the situation even worse, requiring us to do this recompilation of gettext-runtime and libtextstyle twice.

@cooljeanius
Copy link
Contributor

Note that it's up to 0.22.4 now:

$ port -v livecheck gettext
gettext seems to have been updated (port version: 0.21.1, new version: 0.22.4)

(the GCC project has recently been switching from an old copy of libintl that had been vendored in-tree to a new one that's downloaded as a prerequisite separately, which uncovered a few bugs in gettext, and thus prompted a new gettext release)

@tifrueh
Copy link
Contributor Author

tifrueh commented Nov 23, 2023

Oh yeah, I see. The release notes of version 0.22.4 include the following bullet point:

AM_GNU_GETTEXT now recognizes a statically built libintl on macOS and AIX

This seems to address exactly the problem I was struggling with in version 0.22.3.

I'll close this PR and open a new one for version 0.22.4 if I find the time before someone else does.

@tifrueh tifrueh closed this Nov 23, 2023
@tifrueh tifrueh mentioned this pull request Dec 3, 2023
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
4 participants