Opened 12 months ago

Closed 11 months ago

Last modified 11 months ago

#67433 closed defect (fixed)

icu @73.1: dylib install names don't have absolute path

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: catap (Kirill A. Korinsky)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: tiger ppc Cc: evanmiller (Evan Miller)
Port: icu

Description

I had uninstalled the old version, 2.10.4_0, because when dyld linked libxml2.2.dylib to a software this failure was reported:

dyld: Library not loaded: libicui18n.73.dylib
  Referenced from: /opt/local/lib/libxml2.2.dylib
  Reason: image not found
otool -L   /opt/local/lib/libxml2.2.dylib
/opt/local/lib/libxml2.2.dylib:
	/opt/local/lib/libxml2.2.dylib (compatibility version 13.0.0, current version 13.4.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.13)
	/opt/local/lib/liblzma.5.dylib (compatibility version 10.0.0, current version 10.2.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.12)
	/opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
	libicui18n.73.dylib (compatibility version 73.0.0, current version 73.1.0)
	libicuuc.73.dylib (compatibility version 73.0.0, current version 73.1.0)
	libicudata.73.dylib (compatibility version 73.0.0, current version 73.1.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

Could be the cause is that icu @73.1_0 was built with the configure option --disable-rpath instead of the faulty, on Tiger not working, --enable-rpath.

I am going to build icu without any rpath option.

Port finds, after completing an installation, that icu, libxml2 and more have to be rebuilt.

Change History (7)

comment:1 Changed 12 months ago by ballapete (Peter "Pete" Dyballa)

Configuring icu without any rpath option leads to this install step:

gnumake[1]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/icu/source/data'
/bin/sh ../mkinstalldirs  /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot/opt/local/lib
DYLD_LIBRARY_PATH=../stubdata:../tools/ctestfw:../lib:$DYLD_LIBRARY_PATH  ../bin/pkgdata -O ../data/icupkg.inc -q -c -s /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/icu/source/data/out/build/icudt73b -d ../lib -m static -e icudt73  -T ./out/tmp -s ./out/build/icudt73b -p icudt73b -L icudata ./out/tmp/icudata.lst -I /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot/opt/local/lib
pkgdata: cd ../lib/ && /usr/bin/install -c libicudata.a /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot/opt/local/lib/libicudata.a
DYLD_LIBRARY_PATH=../stubdata:../tools/ctestfw:../lib:$DYLD_LIBRARY_PATH  ../bin/pkgdata -O ../data/icupkg.inc -q -c -s /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/icu/source/data/out/build/icudt73b -d ../lib -m dll -r 73.1 -e icudt73  -T ./out/tmp -s ./out/build/icudt73b -p icudt73b -L icudata ./out/tmp/icudata.lst -I /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot/opt/local/lib
pkgdata: cd ../lib/ && /usr/bin/install -c libicudata.73.1.dylib /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot/opt/local/lib/libicudata.73.1.dylib
pkgdata: cd /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot/opt/local/lib && rm -f libicudata.73.dylib && ln -s libicudata.73.1.dylib libicudata.73.dylib
pkgdata: cd /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot/opt/local/lib && rm -f libicudata.dylib && ln -s libicudata.73.1.dylib libicudata.dylib
gnumake[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/icu/source/data'

The icu tool icudt73b produces both kinds of libraries. It might be missing an option to record the path under which the dylib will be installed – so some other tool should be used to edit the installed dylib… The fault is with the recent icuversion:

/opt/local/bin/icuinfo:
	libicutu.73.dylib (compatibility version 73.0.0, current version 73.1.0)
	libicui18n.73.dylib (compatibility version 73.0.0, current version 73.1.0)
	libicuuc.73.dylib (compatibility version 73.0.0, current version 73.1.0)
	libicudata.73.dylib (compatibility version 73.0.0, current version 73.1.0)
	/opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.24.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.12)

Previous version applied two more patches:

>     patchfiles-append   patch-config-mh-darwin.diff \
>                         patch-cinttypes-header.diff

comment:2 Changed 12 months ago by evanmiller (Evan Miller)

Cc: evanmiller added

comment:3 Changed 12 months ago by ballapete (Peter "Pete" Dyballa)

I think this ticket can be closed as invalid.

Building the recent version of icu, 73.1, on PPC Tiger, Mac OS X 10.4.11, produces faulty binaries and dylibs. Ports that depend on icu have to fail then.

My solution is to install the old version of icu. (And to keep the old Portfile safe.)

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

Cc: ryandesign@… removed
Owner: set to catap
Port: icu added; libxml2 removed
Status: newassigned
Summary: Build of libxml2 @2.10.4_1 on PPC Tiger, Mac OS X 10.4.11 is faulty, registers dylibs without pathicu @73.1: dylib install names don't have absolute path

comment:5 Changed 12 months ago by evanmiller (Evan Miller)

In 1306d1ef0acbd17b98513c87a138930a2f1b0d79/macports-ports (master):

icu-devel: fix build on Tiger and clean up rpath mess

See: #67433
See: #67428

comment:6 Changed 11 months ago by evanmiller (Evan Miller)

Resolution: fixed
Status: assignedclosed

comment:7 Changed 11 months ago by ballapete (Peter "Pete" Dyballa)

New versions of icu and libxml2 built successfully on PPC Tiger, Mac OS X 10.4.11 and also PPC Leopard, Mac OS X 10.5.8.

Note: See TracTickets for help on using tickets.