New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #24915 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

gtk1 build fails with gettext 0.18

Reported by: benjamin.kremer@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc: ryandesign@…, msmoulton@…
Port: gtk1

Description (last modified by jmr@…) (diff)

--->  Building gtk1
DEBUG: Executing org.macports.build (gtk1)
DEBUG: Environment: MACOSX_DEPLOYMENT_TARGET='10.6'
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_x11_gtk1/work/gtk+-1.2.10" && /usr/bin/make -j2 all'
/usr/bin/make  all-recursive
Making all in po
make[2]: Nothing to be done for `all'.
Making all in gdk
make[2]: Nothing to be done for `all'.
Making all in gtk
/bin/sh ../libtool --mode=compile /usr/bin/gcc-4.2 -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_DISABLE_COMPAT_H -DGTK_LIBDIR=\"/opt/local/lib\" -DGTK_DATA_PREFIX=\"/opt/local\" -DGTK_SYSCONFDIR=\"/opt/local/etc\" -DGTK_LOCALEDIR=\"/opt/local/share/locale\" -I.. -DGTK_NO_CHECK_CASTS -DUSE_XIM -DX_LOCALE -I/opt/local/include/glib-1.2 -I/opt/local/lib/glib/include -D_REENTRANT  -I/opt/local/include  -O2 -arch x86_64 -Wall -c gtkmain.c
/bin/sh ../libtool --mode=compile /usr/bin/gcc-4.2 -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_DISABLE_COMPAT_H -DGTK_LIBDIR=\"/opt/local/lib\" -DGTK_DATA_PREFIX=\"/opt/local\" -DGTK_SYSCONFDIR=\"/opt/local/etc\" -DGTK_LOCALEDIR=\"/opt/local/share/locale\" -I.. -DGTK_NO_CHECK_CASTS -DUSE_XIM -DX_LOCALE -I/opt/local/include/glib-1.2 -I/opt/local/lib/glib/include -D_REENTRANT  -I/opt/local/include  -O2 -arch x86_64 -Wall -c gtkmenushell.c
rm -f .libs/gtkmenushell.lo
/usr/bin/gcc-4.2 -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_DISABLE_COMPAT_H -DGTK_LIBDIR=\"/opt/local/lib\" -DGTK_DATA_PREFIX=\"/opt/local\" -DGTK_SYSCONFDIR=\"/opt/local/etc\" -DGTK_LOCALEDIR=\"/opt/local/share/locale\" -I.. -DGTK_NO_CHECK_CASTS -DUSE_XIM -DX_LOCALE -I/opt/local/include/glib-1.2 -I/opt/local/lib/glib/include -D_REENTRANT -I/opt/local/include -O2 -arch x86_64 -Wall -c gtkmenushell.c  -fno-common -DPIC -o .libs/gtkmenushell.lo
rm -f .libs/gtkmain.lo
/usr/bin/gcc-4.2 -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_DISABLE_COMPAT_H -DGTK_LIBDIR=\"/opt/local/lib\" -DGTK_DATA_PREFIX=\"/opt/local\" -DGTK_SYSCONFDIR=\"/opt/local/etc\" -DGTK_LOCALEDIR=\"/opt/local/share/locale\" -I.. -DGTK_NO_CHECK_CASTS -DUSE_XIM -DX_LOCALE -I/opt/local/include/glib-1.2 -I/opt/local/lib/glib/include -D_REENTRANT -I/opt/local/include -O2 -arch x86_64 -Wall -c gtkmain.c  -fno-common -DPIC -o .libs/gtkmain.lo
gtkmenushell.c: In function 'gtk_menu_shell_class_init':
gtkmenushell.c:195: warning: cast from pointer to integer of different size
gtkmenushell.c:202: warning: cast from pointer to integer of different size
gtkmenushell.c:209: warning: cast from pointer to integer of different size
gtkmenushell.c:217: warning: cast from pointer to integer of different size
gtkmenushell.c:225: warning: cast from pointer to integer of different size
In file included from gtkintl.h:7,
                 from gtkmain.c:56:
/opt/local/include/libintl.h:434: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'libintl_newlocale'
make[2]: *** [gtkmain.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
/usr/bin/gcc-4.2 -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_DISABLE_COMPAT_H -DGTK_LIBDIR=\"/opt/local/lib\" -DGTK_DATA_PREFIX=\"/opt/local\" -DGTK_SYSCONFDIR=\"/opt/local/etc\" -DGTK_LOCALEDIR=\"/opt/local/share/locale\" -I.. -DGTK_NO_CHECK_CASTS -DUSE_XIM -DX_LOCALE -I/opt/local/include/glib-1.2 -I/opt/local/lib/glib/include -D_REENTRANT -I/opt/local/include -O2 -arch x86_64 -Wall -c gtkmenushell.c -o gtkmenushell.o >/dev/null 2>&1
mv -f .libs/gtkmenushell.lo gtkmenushell.lo
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive-am] Error 2
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_x11_gtk1/work/gtk+-1.2.10" && /usr/bin/make -j2 all " returned error 2
DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_x11_gtk1/work/gtk+-1.2.10" && /usr/bin/make -j2 all " returned error 2
    while executing
"command_exec build"
    (procedure "portbuild::build_main" line 9)
    invoked from within
"$procedure $targetname"
Warning: the following items did not execute (for gtk1): org.macports.activate org.macports.build org.macports.destroot org.macports.install
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

Change History

comment:1 Changed 3 years ago by jmr@…

  • Description modified (diff)
  • Port set to gtk1

Please remember to preview and use WikiFormatting, and to fill in the Port field.

comment:2 follow-up: ↓ 6 Changed 3 years ago by ryandesign@…

  • Cc ryandesign@… added
  • Summary changed from Error installing GTK1 on Mac OS 10.6.4 to gtk1 build fails with gettext 0.18

Confirmed, and it's gettext 0.18 that brought this about. If you need gtk1 immediately, downgrade gettext to 0.17, clean gtk1 and it should build. gtk 2.20.x doesn't seem to be affected. I'm not sure what we should do about this since the developers of gtk probably don't care to go back and fix anything in gtk 1.x anymore.

comment:3 Changed 3 years ago by msmoulton@…

  • Cc msmoulton@… added

Cc Me!

comment:4 Changed 3 years ago by ryandesign@…

Has duplicate #25061.

comment:5 Changed 3 years ago by ryandesign@…

Has duplicate #25119. Also mentioned in #25076.

comment:6 in reply to: ↑ 2 Changed 3 years ago by tty7@…

Replying to ryandesign@…: Could someone explain the downgrade process here?

I ran into this at 9:40 today. Traced the issue to gtk1. found that ticket, then this one.

Read the downgrade instructions, but there is NO gettext 0.17(anything) in the ports tree, browsing to find the version/name.

It's 2pm now, and I've just given up on my backup plan, which was to try gtk2 and somehow force PuTTY's port to not check for gtk1, but there appears to be no option to the port command to allow this.

I would really be appreciative if someone can just paste in the working line which has gotta be something like "svn co -rr MAGICNUMBER http://svn.macports.org/repository/macports/trunk/dports/something-i-cant-find/gettext-0.17-some-idiot-needed-me-to-spell-this-out-for-them\!"

Maybe just link to a last-known-stable 0.17 or something.

i would love you (but not in /that/ way) for it.

Thanks!

-tty7

comment:7 follow-up: ↓ 8 Changed 3 years ago by ryandesign@…

You may wish to read #24934. Its comment 11 contains the commands you seek, however you will likely run into several subsequent issues; read the rest of the ticket (yes, it's long) for a taste of what those might be and how you might resolve them.

comment:8 in reply to: ↑ 7 ; follow-up: ↓ 9 Changed 3 years ago by tty7@…

Replying to ryandesign@…:

Very nice- here's what I did to make it work:

Daniel$ svn co -r 30842 http://svn.macports.org/repository/macports/trunk/dports/devel/gettext
A    gettext/files
A    gettext/files/patch-gettext-tools-Makefile.in
A    gettext/Portfile
Checked out revision 30842.
Daniel$ cd gettext
Daniel$ sudo /opt/local/bin/port deactivate gettext
Password:
--->  Deactivating gettext @0.18.1.1_0
--->  Unable to uninstall/deactivate gettext @0.18.1.1_0, the following ports depend on it:
--->  	atk @1.30.0_0
--->  	getopt @1.1.4_1
--->  	glib1 @1.2.10_6
--->  	glib2 @2.24.1_0
--->  	gnome-doc-utils @0.18.1_1
--->  	gtk2 @2.20.1_0+x11
--->  	help2man @1.38.2_0
--->  	libidn @1.19_0
--->  	p5-locale-gettext @1.05_2
--->  	popt @1.15_0
--->  	python26 @2.6.5_2

Yeah, that's where it got fun. Ended up 'uninstalling' each of these by hand, including dependencies, some 4-levels deep. (remember when I said I installed gtk2 to see if that would work? yeah. that was a bad idea. :)

Anyway, continuing to the payoff:

Daniel$ sudo port uninstall gettext
--->  Deactivating gettext @0.18.1.1_0
--->  Cleaning gettext
--->  Uninstalling gettext @0.18.1.1_0
--->  Cleaning gettext
Daniel$ sudo /opt/local/bin/port install
--->  Computing dependencies for gettext
--->  Fetching gettext
--->  Attempting to fetch gettext-0.17.tar.gz from http://mirrors.kernel.org/gnu/gettext
--->  Verifying checksum(s) for gettext
--->  Extracting gettext
--->  Applying patches to gettext
--->  Configuring gettext
--->  Building gettext
--->  Staging gettext into destroot
--->  Installing gettext @0.17_0
--->  Activating gettext @0.17_0
--->  Cleaning gettext
Daniel$ sudo /opt/local/bin/port clean gtk1
--->  Cleaning gtk1
Daniel$ sudo /opt/local/bin/port install putty
--->  Computing dependencies for putty
--->  Dependencies to be installed: gtk1 glib1
--->  Fetching glib1
--->  Verifying checksum(s) for glib1
--->  Extracting glib1
--->  Applying patches to glib1
--->  Configuring glib1
--->  Building glib1
--->  Staging glib1 into destroot
--->  Installing glib1 @1.2.10_6
--->  Activating glib1 @1.2.10_6
--->  Cleaning glib1
--->  Fetching gtk1
--->  Verifying checksum(s) for gtk1
--->  Extracting gtk1
--->  Applying patches to gtk1
--->  Configuring gtk1
--->  Building gtk1
--->  Staging gtk1 into destroot
--->  Installing gtk1 @1.2.10_8
--->  Activating gtk1 @1.2.10_8
--->  Cleaning gtk1
--->  Fetching putty
--->  Attempting to fetch putty-0.60.tar.gz from http://distfiles.macports.org/putty
--->  Verifying checksum(s) for putty
--->  Extracting putty
--->  Configuring putty
--->  Building putty
--->  Staging putty into destroot
--->  Installing putty @0.60_0
--->  Activating putty @0.60_0
--->  Cleaning putty
Daniel$ putty

joy!

(thank you muchly!! )

-tty7


    

comment:9 in reply to: ↑ 8 ; follow-up: ↓ 10 Changed 3 years ago by gunnmjk@…

tty7, thanks for figuring this out. Your trick allowed me to install the old gettext.

In the future, it would be nice if Macports installed gettext 0.17 when installing gtk1.

$ svn co -r 30842 http://svn.macports.org/repository/macports/trunk/dports/devel/gettext
...downloading gettext 0.17...
$ cd gettext
$ sudo port -f deactivate gettext
...deactivating gettext 0.18...
$ sudo port install
...installing gettext 0.17...
$ sudo port install gtk1
...installing gtk1...

comment:10 in reply to: ↑ 9 Changed 3 years ago by ryandesign@…

Replying to gunnmjk@…:

In the future, it would be nice if Macports installed gettext 0.17 when installing gtk1.

That would involve creating a new gettext017 port, which we can do, but which I would like to avoid. I would prefer if someone would figure out how to make gtk1 compile against gettext 0.18.x.

comment:11 Changed 3 years ago by ryandesign@…

Has duplicate #25499.

comment:12 Changed 3 years ago by signal@…

Ultimately getting 0.18.x working is the right direction. However with the absence of an immediate fix we shouldn't keep gtk1 (and other packages?) broken until one comes out. Would rather go with gettext 0.17 as the default until this can be looked at further.

comment:13 Changed 3 years ago by ryandesign@…

  • Status changed from new to closed
  • Resolution set to fixed

Worked around the problem for now by disabling natural language support in gtk1 entirely; see r70370. If someone else can figure out how to reenable it later please do so.

Note: See TracTickets for help on using tickets.