Opened 18 months ago

Last modified 18 months ago

#67438 new defect

libxml2 10.4_1 (avter upgrade icu @72.1_0 -> to icu @73.1_0) cannot be builtd. (All the details in the detailed logs in the attachments.)

Reported by: cave-canem Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), cave-canem
Port: ibxml2

Description (last modified by ryandesign (Ryan Carsten Schmidt))

After upgrading icu @72.1_0 -> to icu @73.1_0 no compiler works and libxml2 10.4_1 cannot be built.

Continuation of the mystery started in the ticket #66206

But this time the trick didn't work.

Can I ask? Can any of you, Dear Sirs, write a port file that would work without the need to wear a palm leaf skirt, necklaces of lizard and venomous snake skulls, and the no need to use a shaman's tambourine?

  1. What am I doing wrong?
  2. What additional information should I provide you with?

I will be sincerely grateful for your possible help.

P.S.

port dependents libxml2 | nl
     1	GraphicsMagick depends on libxml2
     2	ImageMagick depends on libxml2
     3	MPlayer depends on libxml2
     4	aria2 depends on libxml2
     5	asciidoc depends on libxml2
     6	at-spi2-atk depends on libxml2
     7	clang-10 depends on libxml2
     8	clang-11 depends on libxml2
     9	clang-12 depends on libxml2
    10	clang-13 depends on libxml2
    11	clang-14 depends on libxml2
    12	clang-15 depends on libxml2
    13	clang-16 depends on libxml2
    14	clang-3.7 depends on libxml2
    15	clang-9.0 depends on libxml2
    16	gtk-doc depends on libxml2
    17	libarchive depends on libxml2
    18	libbluray depends on libxml2
    19	libcroco depends on libxml2
    20	libglade2 depends on libxml2
    21	librsvg depends on libxml2
    22	libsoup depends on libxml2
    23	libsoup-2.4 depends on libxml2
    24	libxkbcommon depends on libxml2
    25	libxslt depends on libxml2
    26	netpbm depends on libxml2
    27	php82 depends on libxml2
    28	py27-libxml2 depends on libxml2
    29	py310-libxml2 depends on libxml2
    30	py310-lxml depends on libxml2
    31	py39-lxml depends on libxml2
    32	qpdf depends on libxml2
    33	qt58-qtwebkit depends on libxml2
    34	raptor2 depends on libxml2
    35	rasqal depends on libxml2
    36	redland depends on libxml2
    37	rrdtool depends on libxml2
    38	sgml-common depends on libxml2
    39	shared-mime-info depends on libxml2
    40	strigi depends on libxml2
    41	vcdimager depends on libxml2
    42	xar depends on libxml2
    43	xorg-xcb-proto depends on libxml2

Attachments (3)

High_Sierra.libxml2.main.log.tar.xz (2.3 KB) - added by cave-canem 18 months ago.
High_Sierra.libxml2.main.log.tar.xz
High_Sierra.libxml2.main.log_v2.tar.xz (2.3 KB) - added by cave-canem 18 months ago.
High_Sierra.libxml2.main.log_v2.tar.xz
High_Sierra.libxml2.config.log.tar.xz (3.7 KB) - added by cave-canem 18 months ago.
High_Sierra.libxml2.config.log.tar.xz

Download all attachments as: .zip

Change History (17)

Changed 18 months ago by cave-canem

High_Sierra.libxml2.main.log.tar.xz

Changed 18 months ago by cave-canem

High_Sierra.libxml2.main.log_v2.tar.xz

Changed 18 months ago by cave-canem

High_Sierra.libxml2.config.log.tar.xz

comment:1 Changed 18 months ago by kencu (Ken)

Here is your error:

configure:4137: /usr/bin/clang -pipe -Os -arch x86_64 -I/opt/local/include -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 conftest.c  >&5
dyld: Library not loaded: /opt/local/lib/libxml2.2.dylib
  Referenced from: /opt/local/libexec/llvm-9.0/lib/libLLVM.dylib
  Reason: Incompatible library version: libLLVM.dylib requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0

it looks like the version of libxml2 that the llvm-9.0 port was built against is much newer than the version of libxml2 that you have currently installed. The llvm-9.0 port at present requires at least version 12.0.0 of the libxml2 dylibs.

my installed libxml2 port ( libxml2 @2.10.4_1 ) provides version 13.4.0:

% 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)
        ...

why don't you also have that? Have you done something to force libxml2 to be an older version?

please check this:

port -v installed libxml2
Last edited 18 months ago by kencu (Ken) (previous) (diff)

comment:2 Changed 18 months ago by kencu (Ken)

Now that aside, as a general fix, all the llvms and all the clangs should be forced to not use MacPorts libxml2 at all, as it provides no additional features that we need, and it just causes trouble for no benefit.

comment:3 Changed 18 months ago by cave-canem

Ken:

Firstly:

port -v installed icu
The following ports are currently installed:
  icu @72.1_0 (active) requested_variants='' platform='darwin 13' archs='x86_64' date='2022-11-06T18:49:26+0300'
  icu @73.1_0 requested_variants='' platform='darwin 13' archs='x86_64' date='2023-05-14T03:33:11+0300'

If you activate icu @73.1_0, then any compiler does not work (including clang-5.0, /usr/bin/clang and clang-11-bootstrap).

I built libxml2 @2.10.4_1 using icu @72.1_0, but this option won't update boost176, qt58-qtbase and qt58-qtwebkit.

Secondly:

otool -L /opt/local/lib/libxml2.2.dylib
/opt/MacPorts/libexec/llvm-10/bin/llvm-objdump: error: '/opt/local/lib/libxml2.2.dylib': No such file or directory
port -v installed libxml2
The following ports are currently installed:
  libxml2 @2.10.4_0 requested_variants='' platform='darwin 13' archs='x86_64' date='2023-04-14T06:40:37+0300'
  libxml2 @2.10.4_1 (active) requested_variants='' platform='darwin 13' archs='x86_64' date='2023-05-14T03:57:08+0300'

But pay attention to what I wrote above.

comment:4 Changed 18 months ago by kencu (Ken)

Pay attention to what I wrote above. You can't just wing these ports around willy-nilly and expect things to work.

You have to install the current versions of everything, libxml2, icu, etc.

You have at this point pretty much messed up your system -- most likely beyond your ability to fix it, it looks like.

For you -- figure out what you actually wanted installed (perhaps using "port echo requested"), save that list, uninstall everything, and start over would be my advice.

There is nothing in MacPorts to fix (other than making the compilers not depend on libxml2, to prevent people from doing what you did).

comment:5 Changed 18 months ago by kencu (Ken)

Cc: kencu removed

comment:6 in reply to:  1 ; Changed 18 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: kencu added

Replying to kencu:

Here is your error:

configure:4137: /usr/bin/clang -pipe -Os -arch x86_64 -I/opt/local/include -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 conftest.c  >&5
dyld: Library not loaded: /opt/local/lib/libxml2.2.dylib
  Referenced from: /opt/local/libexec/llvm-9.0/lib/libLLVM.dylib
  Reason: Incompatible library version: libLLVM.dylib requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0

Why would /usr/bin/clang use /opt/local/libexec/llvm-9.0/lib/libLLVM.dylib?

comment:7 Changed 18 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: kencu removed
Keywords: High Sierra Mavericks removed

Oops

comment:8 in reply to:  6 Changed 18 months ago by kencu (Ken)

Replying to ryandesign:

Replying to kencu:

Here is your error:

configure:4137: /usr/bin/clang -pipe -Os -arch x86_64 -I/opt/local/include -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 conftest.c  >&5
dyld: Library not loaded: /opt/local/lib/libxml2.2.dylib
  Referenced from: /opt/local/libexec/llvm-9.0/lib/libLLVM.dylib
  Reason: Incompatible library version: libLLVM.dylib requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0

Why would /usr/bin/clang use /opt/local/libexec/llvm-9.0/lib/libLLVM.dylib?

likely happening via the linker invocation, I thought.

Last edited 18 months ago by kencu (Ken) (previous) (diff)

comment:9 Changed 18 months ago by cave-canem

Ken:

sudo find -x / -name "libxml2*.dylib" -and ! -path "/Applications/*"
/opt/MacPorts/lib/libxml2.2.dylib
/opt/MacPorts/lib/libxml2.dylib
/usr/lib/libxml2.2.dylib
/usr/lib/libxml2.dylib
sudo ls -lT "/opt/MacPorts/lib/libxml2.2.dylib" "/opt/MacPorts/lib/libxml2.dylib" "/usr/lib/libxml2.2.dylib" "/usr/lib/libxml2.dylib"
-rwxr-xr-x  1 root  wheel  1158116 May 14 03:57:04 2023 /opt/MacPorts/lib/libxml2.2.dylib
lrwxr-xr-x  1 root  wheel       15 May 14 03:57:04 2023 /opt/MacPorts/lib/libxml2.dylib -> libxml2.2.dylib
-rwxr-xr-x  1 root  wheel  2325296 Jun  2 00:45:20 2016 /usr/lib/libxml2.2.dylib
lrwxr-xr-x  1 root  wheel       15 May  8 05:57:58 2022 /usr/lib/libxml2.dylib -> libxml2.2.dylib

comment:10 Changed 18 months ago by cave-canem

Ken:

If you need inode:

sudo find -x / -name "libxml2*.dylib" -and ! -path "/Applications/*" -ls
Password:
82422591     2264 -rwxr-xr-x    1 root             wheel             1158116 May 14 03:57 /opt/MacPorts/lib/libxml2.2.dylib
82422593        8 lrwxr-xr-x    1 root             wheel                  15 May 14 03:57 /opt/MacPorts/lib/libxml2.dylib -> libxml2.2.dylib
80848211     4544 -rwxr-xr-x    1 root             wheel             2325296 Jun  2  2016 /usr/lib/libxml2.2.dylib
16595027        8 lrwxr-xr-x    1 root             wheel                  15 May  8  2022 /usr/lib/libxml2.dylib -> libxml2.2.dylib

comment:11 Changed 18 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)

What's going on here—what's your MacPorts prefix? The logs you attached show it's /opt/local, but this comment now seems to say it's /opt/MacPorts. Which is it?

comment:12 Changed 18 months ago by cave-canem

Ryan Schmidt: My prefix for Mavericks is /opt/MacPorts

cat "/opt/MacPorts/etc/macports/macports.conf" | rg "prefix"
prefix              	/opt/MacPorts
# relative to prefix, and there is no default value. This is useful for

My prefix for High Sierra is /opt/local, but I'm in Mavericks now and I can't cat "/opt/local/etc/macports/macports.conf"" because fs Mavericks is jhfs+ and High Sierra is APFS. But the problems are both there and there are the same. Am I speaking clearly?

comment:13 Changed 18 months ago by cave-canem

Hello Ken!

Notes (or Disclaimer):

Since my English is very poor, I am not sure that I understand my counterpart well, and I am also not sure that I successfully (correctly) convey my thoughts to the interlocutor.

———

You wrote:

You have at this point pretty much messed up your system -- most likely beyond your ability to fix it, it looks like.

But my High Sierra (10.13.6, build 17G14042, Darwin 17.7.0) is practically a virgin OS, and if I allowed myself to frolic (play pranks) in Mavericks, then in High Sierra I did not.

I installed all ports (with the exception of unusual variants) exclusively through binary assemblies - this applies to ALL compilers.

Moreover, if I install "icu" and "libxml2" from binaries (not sources), there will be no problems.

This allows me to conclude that "it's not me who messed up", but that "Something is rotten in the state of Denmark".

comment:14 Changed 18 months ago by cave-canem

Well, it finally happened!

After removing the icu port from The MacPorts ports tree ( https://github.com/macports/macports-ports?ysclid=li6zn1mkjw316467693 ) and replacing it with icu73, everything now builds fine.

ls -lT $(port file icu73)
-rw-r--r--  1 root  wheel  10242 May 28 07:13:39 2023 /opt/macports-ports/devel/icu/Portfile

The ticket may be closed.

Note: See TracTickets for help on using tickets.