Opened 11 years ago

Closed 11 years ago

#24915 closed defect (fixed)

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 (Ryan Schmidt), msmoulton@…
Port: gtk1

Description (last modified by jmroot (Joshua Root))

--->  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 (13)

comment:1 Changed 11 years ago by jmroot (Joshua Root)

Description: modified (diff)
Port: gtk1 added

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

comment:2 Changed 11 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added
Summary: Error installing GTK1 on Mac OS 10.6.4gtk1 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 11 years ago by msmoulton@…

Cc: msmoulton@… added

Cc Me!

comment:4 Changed 11 years ago by ryandesign (Ryan Schmidt)

Has duplicate #25061.

comment:5 Changed 11 years ago by ryandesign (Ryan Schmidt)

Has duplicate #25119. Also mentioned in #25076.

comment:6 in reply to:  2 Changed 11 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 Changed 11 years ago by ryandesign (Ryan Schmidt)

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 ; Changed 11 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 ; Changed 11 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 11 years ago by ryandesign (Ryan Schmidt)

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 11 years ago by ryandesign (Ryan Schmidt)

Has duplicate #25499.

comment:12 Changed 11 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 11 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: newclosed

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.