Opened 13 years ago

Closed 12 years ago

#28789 closed defect (fixed)

p5-locale-gettext @1.05 +universal: gettext function not found

Reported by: ccarey@… Owned by: l2g@…
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), duvrai@…, sean@…, llt003@…, joanmanel@…, bordan@…, ktymacports@…
Port: p5-locale-gettext

Description

Hello there,

I’m running Xcode 2.5 on Mac OS X 10.4.11 PPC. I’d started by downloading the Tiger-specific MacPorts 1.9.1 .dmg file, and selfupdated to 1.9.2. I’m trying to compile cdparanoia @10.2_0 +universal; one of its dependencies is p5-locale-gettext @1.05 +universal. The latter fails during its configure phase:

--->  Configuring p5-locale-gettext
Error: Target org.macports.configure returned: configure failure: shell command failed (see log for details)
Error: Failed to install p5-locale-gettext
Log for p5-locale-gettext is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-locale-gettext/main.log

The relevant portion of its main.log shows:

:debug:configure Executing org.macports.configure (p5-locale-gettext)
:debug:configure Environment: CPATH='/opt/local/include' CFLAGS='-pipe -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc' CPPFLAGS='-I/opt/local/include -isysroot /Developer/SDKs/MacOSX10.4u.sdk' CXXFLAGS='-pipe -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc' LIBRARY_PATH='/opt/local/lib' MACOSX_DEPLOYMENT_TARGET='10.4' CXX='/usr/bin/g++-4.0' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-locale-gettext/work/.CC_PRINT_OPTIONS' F90FLAGS='-pipe -O2' LDFLAGS='-L/opt/local/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc' FCFLAGS='-pipe -O2' OBJC='/usr/bin/gcc-4.0' INSTALL='/usr/bin/install -c' PERL_AUTOINSTALL='--skipdeps' OBJCFLAGS='-pipe -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc' FFLAGS='-pipe -O2' CC_PRINT_OPTIONS='YES' CC='/usr/bin/gcc-4.0 -O2 -L/opt/local/lib -arch i386 -arch ppc'
:debug:configure Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-locale-gettext/work/gettext-1.05" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor'
:info:configure checking for gettext... no
:info:configure checking for gettext in -lintl...gettext function not found. Please install libintl at Makefile.PL line 18.
:info:configure  no
:info:configure shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-locale-gettext/work/gettext-1.05" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor " returned error 2

Previous dependencies of cdparanoia had installed successfully:

  • expat @2.0.1_1 +universal
  • ncursesw @5.8_0
  • ncurses @5.8_1 +universal
  • gperf @3.0.4_0 +universal
  • libiconv @1.13.1_0 +universal
  • gettext @0.18.1.1_2 +universal
  • perl5.12 @5.12.3_1 +shared+universal
  • perl5 @5.12.3_1 +perl5_12

I’ve tried compiling perl5.12 both with and without +shared; it made no difference to p5-locale-gettext.

The /opt/local/lib directory contains the following libintl files:

-rw-r--r--   2 root  admin  109728 Mar 14 14:38 /opt/local/lib/libintl.8.dylib
-rw-r--r--   2 root  admin  164964 Mar 14 14:38 /opt/local/lib/libintl.a
lrwxr-xr-x   1 root  admin      15 Mar 14 14:38 /opt/local/lib/libintl.dylib -> libintl.8.dylib
-rw-r--r--   2 root  admin     977 Mar 14 14:38 /opt/local/lib/libintl.la

There are no libintl files in /usr/local/lib or anywhere under /Developer/SDKs/MacOSX10.4u.sdk.

Running lipo -info on the relevant /opt/local/lib libraries returns:

Architectures in the fat file: /opt/local/lib/libintl.a are: ppc i386
Architectures in the fat file: /opt/local/lib/libintl.8.dylib are: ppc i386

Please let me know if I can provide further information to aid in solving this problem.

Thanks for your help!

Attachments (1)

patch-Makefile.PL (830 bytes) - added by jmroot (Joshua Root) 12 years ago.
possible better fix

Download all attachments as: .zip

Change History (25)

comment:1 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added; l2g@… openmaintainer@… removed
Owner: changed from macports-tickets@… to l2g@…
Port: p5-locale-gettext added
Summary: p5-locale-gettext @1.05 +universal Configure failure: shell command failedp5-locale-gettext @1.05 +universal: gettext function not found

Why do you want universal?

comment:2 in reply to:  1 Changed 13 years ago by ccarey@…

Replying to ryandesign@…:

Why do you want universal?

It was an experiment for this attempt to use MacPorts. Is +universal unsupported for p5-locale-gettext on Tiger PPC?

comment:3 Changed 13 years ago by l2g@…

Status: newassigned

I don't have a PPC, I'm afraid, so I'm at a loss for a good answer. It may not necessarily be a PPC-specific problem, though, so I will play with it regardless.

comment:4 in reply to:  3 Changed 13 years ago by ccarey@…

Replying to l2g@…:

[…] It may not necessarily be a PPC-specific problem, though, […]

I found that cdparanoia @10.2_0 +universal and all of its dependencies build properly using Xcode 3.2.5 on Mac OS X 10.6.6. If there is anything that I can do on the PPC system here that would help to find the problem, please let me know.

comment:5 Changed 13 years ago by l2g@…

This is just a ping. I have not been able to work on this ticket, but I have not forgotten about it, either!

comment:6 Changed 13 years ago by l2g@…

Okay, I've already played with it enough to reach a point where I'm stuck. I can't seem to get anything at all to build with +universal. But then, I'm on Snow Leopard and an Intel Core Duo. (If I try to do a universal build of, say, gperf, it tries to build with C flags that include -arch x86_64 but not -arch i386, whereas I can see ccarey's build has -arch i386 -arch ppc in the C flags.)

The only thing I can think of to try next is to take my old Tiger disc, install it in VirtualBox, and play with it on there. But, Ryan, it may be faster/better to find someone else who can attack this and has Tiger on a PPC, especially since I don't think there's a way to emulate a PPC in VirtualBox.

comment:7 Changed 12 years ago by l2g@…

There are more notes on these duplicate tickets:

#29668 #31813 #32777

But these all seem to be from people who can't build on Lion. I only have Snow Leopard because I can't afford a new Mac yet. And it works for me in Snow Leopard.

This may be a tough nut to crack because Locale::gettext itself appears to have been abandoned by its author long, long ago. It hasn't been updated since 2005 (two years before Perl 5.10 was ever released).

It might be more fruitful to look for Perl apps that use Locale::gettext and patch them to use libintl-perl or something else instead.

comment:8 Changed 12 years ago by duvrai@…

Cc: duvrai@… added

Cc Me!

comment:9 Changed 12 years ago by descent89@…

Mystery. I installed from scratch Lion 10.7.3 and XCode 4.3 on one mac and after fixing XCode paths everything worked. Than I updated to Lion 10.7.3 from Snow Leopard + XCode 4.3 on another mac and i cant install anything reasonable from MacPorts because of this bug :(

comment:10 Changed 12 years ago by jmroot (Joshua Root)

The original error on Tiger was probably because of the behaviour of -isysroot there. Plenty of ports have had to add explicit -l flags (e.g. -lintl) to work around this when building universal on ppc Tiger.

In any case, what's really needed here is the config.log or perl equivalent.

comment:11 Changed 12 years ago by sean@…

I'm getting the same problem when I try to install Wine on 10.6.8

Error: Failed to install p5.12-locale-gettext
:info:configure checking for gettext in -lintl...gettext function not found. Please install libintl at Makefile.PL line 18.

If you can point me to the location of the config.log I will post it.

comment:12 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: sean@… added

Look in the directory identified by the command:

port work p5.12-locale-gettext

comment:13 Changed 12 years ago by sean@…

I don't see a file specifically named "config.log" (inside /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-locale-gettext/p5.12-locale-gettext/work/gettext-1.05)

There's a file named "config.h" containing this text:

/* Generated automatically by Makefile.PL. Do not edit */
#define HAVE_DGETTEXT
#define HAVE_NGETTEXT
#define HAVE_BIND_TEXTDOMAIN_CODESET

comment:14 Changed 12 years ago by doh123@…

I ran into this same problem just a moment ago on 10.6.8.

I don't remember exactly what I did to get around it... I edited Makefile.PL file that was spitting out the error (the Please install libintl at Makefile.PL line 18 thing) in the log to take out the section that tested gettext, so that it wouldn't spit out the error, then ran it again (without cleaning it of course or I'd lose the change) and it built fine.

comment:15 in reply to:  13 Changed 12 years ago by jmroot (Joshua Root)

Replying to sean@…:

I don't see a file specifically named "config.log"

perl Makefile.PL doesn't generate a config.log AFAIK, that's why I said "or perl equivalent". I'm not sure how to get it to produce the kind of debugging info that autoconf puts in config.log, but that's what is needed to figure out the problem here.

comment:16 Changed 12 years ago by llt003@…

Cc: llt003@… added

Cc Me!

comment:17 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: joanmanel@… bordan@… added

Has duplicates #35138 and #35678.

comment:18 Changed 12 years ago by ktymacports@…

I did the same as doh123 on 10.7.4: comment out the failing test in Makefile.PL. I hope the effects aren't too disastrous; at least it allowed me to continue my "port upgrade outdated".

As another data point, I created an entirely new ports tree using the Lion installer, then installed "coreutils". The installation died at the same point as before: p5-locale-gettext.

In both my old and my new trees, I've been using arch i386.

comment:19 Changed 12 years ago by ktymacports@…

Cc: ktymacports@… added

Cc Me!

comment:20 Changed 12 years ago by rhapsodyv@…

Little workaround: I have fixed forcing an i386 compilation.

Edit port file: sudo port edit p5.12-locale-gettext

And put this: configure.cc cc -L/opt/local/lib -I/opt/local/include -arch i386

comment:21 Changed 12 years ago by joanmanel@…

Hi, I don't know if this sounds harsh, but is this bug ever going to be fixed? It's been broken for like 3-4 months.

In my computer, Macbook 52, everything works fine with 64b arch, but I need 32b arch, and it's impossible there to install almost any big package (like octave or opencv) because this error appears every time.

I'd really appreciate if somebody could fix this.

thank you!

comment:22 in reply to:  21 Changed 12 years ago by jmroot (Joshua Root)

Replying to joanmanel@…:

In my computer, Macbook 52, everything works fine with 64b arch, but I need 32b arch

Thank you, I believe that information narrows down the problem a lot. People building for the default x86_64 have no problems, but people building for i386 or universal have trouble. That probably means the fix for #19381 is not getting the archflags into the test compile that checks for gettext.

comment:23 Changed 12 years ago by jmroot (Joshua Root)

In fact Ryan removed that fix entirely in r94981.

Changed 12 years ago by jmroot (Joshua Root)

Attachment: patch-Makefile.PL added

possible better fix

comment:24 Changed 12 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.