Opened 5 years ago
Closed 3 years ago
#58526 closed update (fixed)
gettext: update to 0.21
Reported by: | akimd (Akim Demaille) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | haspatch | Cc: | l2dy (Zero King), jmroot (Joshua Root), i0ntempest, fredowski, ShadSterling (Shad Sterling), mascguy (Christopher Nielsen), cooljeanius (Eric Gallager), miken32 (Michael Newton) |
Port: | gettext |
Description
Hi!
GNU Gettext 0.20.1 is out there. It now also includes libtextstyle, which is used by the latest release of Bison for instance.
Thanks!
Change History (37)
comment:1 Changed 5 years ago by jmroot (Joshua Root)
Cc: | ryandesign@… removed |
---|---|
Owner: | set to ryandesign |
Status: | new → assigned |
comment:2 follow-up: 3 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Status: | assigned → accepted |
---|
comment:3 Changed 5 years ago by akimd (Akim Demaille)
Replying to ryandesign:
Yes, but upstream recommends libtextstyle be packaged separately.
It makes sense. Thanks!
comment:5 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
When I last looked into it, I could not find a way to build and install the parts of gettext that we want in the main port (the parts that the 0.19.x port installs) without also building and installing the part we don't want (the libtextstyle part, which I want in a separate subport).
comment:6 Changed 5 years ago by l2dy (Zero King)
Cc: | l2dy added |
---|
comment:7 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Gettext developer Bruno Haible emailed me this:
In https://savannah.gnu.org/bugs/index.php?56333 you find a recipe for building libtextstyle and the rest of gettext separately:
1)
rm -rf gettext-0.20.1 tar xfz gettext-0.20.1.tar.gz cd gettext-0.20.1 cd libtextstyle ./configure --prefix=PREFIX CPPFLAGS=-Wall make [optionally] make check make install2)
rm -rf gettext-0.20.1 tar xfz gettext-0.20.1.tar.gz cd gettext-0.20.1 cd gettext-runtime ./configure --prefix=PREFIX CPPFLAGS=-Wall make [optionally] make check make install cd .. cp -a PREFIX/include/textstyle* gettext-tools/src cp -a PREFIX/lib/libtextstyle.* libtextstyle/lib cd gettext-tools ./configure --prefix=PREFIX CPPFLAGS=-Wall make [optionally] make check make installIn the next GNU gettext release, there will be an easier way for 2):
rm -rf gettext-0.20.1 tar xfz gettext-0.20.1.tar.gz cd gettext-0.20.1 cd gettext-runtime ./configure --prefix=PREFIX CPPFLAGS=-Wall make [optionally] make check make install cd .. cd gettext-tools ./configure --with-installed-libtextstyle --with-installed-csharp-dll --prefix=PREFIX CPPFLAGS=-Wall make [optionally] make check make install
comment:8 Changed 4 years ago by akimd (Akim Demaille)
Hi all!
Gentle reminder. I'm also very interested in getting a port for libtextstyle (and Bison would depend upon it). Maybe that would be easier to do?
Thanks for the efforts, cheers!
comment:9 follow-up: 10 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
I did look into this again recently but don't have anything ready to share yet.
libtextstyle will be a subport of gettext.
It may be necessary additionally to separate gettext into gettext-runtime and gettext-tools, as upstream recommends. We can keep the main gettext port as a placeholder that depends on both, and ports can transition over time to depending on gettext-runtime and/or gettext-tools as needed.
An additional complication is that there is now a gettext-bootstrap port. The need to properly handle that as well (do we need gettext-runtime-bootstrap and gettext-tools-bootstrap and libtextstyle-bootstrap?) is what caused me once again to put this update aside for the time being.
comment:10 follow-up: 11 Changed 4 years ago by akimd (Akim Demaille)
Hi Ryan, thanks for the feedback!
Replying to ryandesign:
An additional complication is that there is now a gettext-bootstrap port. The need to properly handle that as well (do we need gettext-runtime-bootstrap and gettext-tools-bootstrap and libtextstyle-bootstrap?)
I don't know what these -bootstrap ports are for. But maybe the question is rhetorical, not really meant for the reader :)
is what caused me once again to put this update aside for the time being.
comment:11 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | jmroot added |
---|
Replying to akimd:
I don't know what these -bootstrap ports are for.
We want to build everything using libc++ on Mac OS X 10.6 and later, but Mac OS X 10.6 does not provide libc++; we have to build it and install it. There is a chicken and egg problem: how could you build libc++'s dependencies using libc++ if there is no libc++ yet? The answer was to provide "bootstrap" versions of libc++'s dependencies that would use libstdc++ instead of libc++. gettext is one of those dependencies.
It could be argued that for the bootstrap ports we should disable as much optional functionality as possible, since they're just for us to use to build libc++ and are not intended for users to use directly, and that that might include natural language support provided by gettext. I wasn't involved with the creation of the bootstrap ports so I don't know why that wasn't done, but it would introduce additional complexity into the bootstrap ports. Maybe it was felt to be better to keep the bootstrap and non-bootstrap versions of the ports as similar as possible.
Joshua, do you recall whether it was considered to disable gettext support in the bootstrap ports so that we wouldn't need to have a gettext-bootstrap port?
comment:12 Changed 4 years ago by akimd (Akim Demaille)
Thanks a lot for the details! It makes a lot of sense. (Maybe "port info" for these packages should explain a bit their point, and possibly point to a page explaining all this?)
comment:13 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
That could certainly be done, but I'm not going to work on it myself as I have a lot of other things I'm working on.
comment:14 follow-up: 18 Changed 4 years ago by jmroot (Joshua Root)
If the dependency can be removed, then sure, that's a better option than having a bootstrap version of a port. But I'm not aware of a way to turn off python's use of gettext, nor am I sure the dependents of python27-bootstrap don't need that functionality. As far as I'm aware, python only uses libintl, so the other subports likely don't need -bootstrap flavours.
I didn't look at the possibility of disabling gettext in xz since python already needed it.
comment:15 Changed 4 years ago by akimd (Akim Demaille)
I have no idea how far these packages go into their use of gettext, but maybe a simple stub would do (#define _
). Besides, packages ought to offer a --disable-nls option to avoid all this mess when you don't need it. Packages that use Gettext's Autoconf macros support this by default.
comment:16 follow-up: 17 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
--disable-nls
is what I was naively assuming, but I don't see such an option for python's configure script. Josh is the maintainer of the python ports so he would know. :) Still, I feel there must be way to disable python's NLS, since macOS includes python but not gettext.
comment:17 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to ryandesign:
there must be a way to disable python's NLS
This at least compiles for me: https://github.com/macports/macports-ports/pull/7074
comment:18 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to jmroot:
I didn't look at the possibility of disabling gettext in xz since python already needed it.
comment:19 Changed 4 years ago by i0ntempest
Cc: | i0ntempest added |
---|
comment:20 Changed 4 years ago by fredowski
Hi everybody,
I created a pull request for the update to gettext 0.20.2 with the proposed split runtime and tools subports.
https://github.com/macports/macports-ports/pull/7399
I removed the bootstrap subport, so Ryans python2.7 update should be done together. I ran into the default language setting problem for the pspp application which is fixed in the 0.20.2 release.
https://savannah.gnu.org/bugs/?58537
So this update has some real benefit...
comment:21 follow-up: 22 Changed 4 years ago by akimd (Akim Demaille)
Hi all,
Is there anything that prevents using fredowski's work?
FWIW, gettext 0.21 was released. It contains an updated libtextstyle (which should be installed as a separate port), on which Bison should depend.
Cheers!
comment:22 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to akimd:
Is there anything that prevents using fredowski's work?
Yes, there is the license issue, and the removal of the gettext-bootstrap subport that is still being used; the other PRs that remove the use of gettext-bootstrap need to be tested and merged first.
FWIW, gettext 0.21 was released. It contains an updated libtextstyle (which should be installed as a separate port), on which Bison should depend.
Yes, it was. Yes, libtextstyle should be a separate subport; it already is in the PR. The PR should be updated to the new version.
comment:23 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | fredowski added |
---|---|
Keywords: | haspatch added |
Summary: | gettext: 0.20.1 was released → gettext: update to 0.21 |
Just a note that I haven't forgotten about this, and I know that the PR has been updated to 0.21; thank you fredowski.
comment:24 Changed 4 years ago by ShadSterling (Shad Sterling)
Cc: | ShadSterling added |
---|
comment:25 Changed 4 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy added |
---|
comment:26 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
comment:28 Changed 3 years ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
comment:29 follow-up: 31 Changed 3 years ago by miken32 (Michael Newton)
It's worth mentioning that this old version of gettext suffers from a bug that causes the wrong language to be displayed for users with more than one preferred language set in Language & Region prefs. My Bash is in French because of it! Looking forward to this update. https://savannah.gnu.org/bugs/?func=detailitem&item_id=49560
comment:30 Changed 3 years ago by miken32 (Michael Newton)
Cc: | miken32 added |
---|
comment:31 follow-up: 33 Changed 3 years ago by cooljeanius (Eric Gallager)
Replying to miken32:
It's worth mentioning that this old version of gettext suffers from a bug that causes the wrong language to be displayed for users with more than one preferred language set in Language & Region prefs. My Bash is in French because of it! Looking forward to this update. https://savannah.gnu.org/bugs/?func=detailitem&item_id=49560
Ah, so THAT'S why I've got so many GNOME apps launching in Japanese for whatever reason! I was wondering about that...
comment:32 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)
comment:33 Changed 3 years ago by mascguy (Christopher Nielsen)
Replying to cooljeanius:
Ah, so THAT'S why I've got so many GNOME apps launching in Japanese for whatever reason! I was wondering about that...
Personally, mine appear to be using some unholy combination of Vulcan and Klingon! LOL
Jokes aside, I've requested that folks provide final feedback on the PR for this update, as it can now move forward: Merging of the change for python27-bootstrap
, per comment:32, was the key prerequisite. So barring any last-minute objections, we should be good-to-go.
comment:34 Changed 3 years ago by fredowski
comment:35 Changed 3 years ago by mascguy (Christopher Nielsen)
Observers: Despite the commit message - and you can probably blame me, as that was overlooked - getext
was updated to 0.21. Sorry for any confusion, but the key is that it's finally been merged!
comment:36 Changed 3 years ago by akimd (Akim Demaille)
Congratulations! That particular change appears to require heroic endurance!
comment:37 Changed 3 years ago by mascguy (Christopher Nielsen)
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Yes, but upstream recommends libtextstyle be packaged separately.