Opened 2 years ago

Closed 2 years ago

#64691 closed defect (fixed)

thunar @1.6.16: too many levels of symbolic links

Reported by: CharlesHawkins (Charles Hawkins) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: thunar

Description

When installing thunar @1.6.16, I get a warning:

Warning: Error parsing file /opt/local/bin/thunar: Error opening or reading file

Upon trying to launch thunar I get:

zsh: too many levels of symbolic links: thunar

I think the problem is that I'm on a case-insensitive filesystem (the default for APFS). Based on the output of port contents thunar, there's supposed to be both an /opt/local/bin/thunar and an /opt/local/bin/Thunar, but I only see the capitalized Thunar actually there, and it's a symlink to the lower-case thunar, which the case-insensitive filesystem interprets as a symlink to itself, hence the error. I'm guessing that the install process first created the real executable thunar, then tried to create Thunar as a symlink to thunar, but ended up clobbering the real executable because the filesystem is case-insensitive.

There doesn't seem to be a log file to attach (port logfile thunar says there isn't one; install -v doesn't give any more info)

System info:

macOS 12.0.1 (21A559)

MacBookPro14,1 (an Intel Mac)

Change History (2)

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

Cc: ryandesign added

You've discovered what I consider to be a defect in the Thunar build system. It tries to determine at build time whether the file system is case-sensitive. If so, it creates the Thunar symlink pointing to the thunar executable.

We use case-sensitive file systems on our build machines because that is typical in the non-macOS UNIX world and MacPorts contains many ports of software that is developed by non-macOS UNIX users. So the archive generated on our build machines contains the thunar executable and the Thunar symlink pointing to it. When you ask MacPorts to install the Thunar port, it first tries to download the archive from our server. When it unpacks this archive on your case-insensitive filesystem, the thunar executable appears to get clobbered by the Thunar symlink.

For now, you can work around this problem by rebuilding Thunar from source, using:

sudo port -ns upgrade --force Thunar

We can fix this by removing the part of the Makefile that creates the Thunar symlink. The port is also vastly outdated, as is all of the rest of xfce in MacPorts, which I had just begun to attempt to correct, and I will try to remember to include this bugfix then.

The reason why you didn't have a logfile is because the installation was successful. MacPorts deletes the log upon successful installation, unless you tell it not to by using the -k ("keep") flag.

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

Owner: set to ryandesign
Resolution: fixed
Status: newclosed

In 93930d35676784b5b46531d1bf0b291c0971e0da/macports-ports (master):

Thunar: Update to 4.16.10

Also no longer try to create a Thunar symlink on case-sensitive file
systems since that can overwrite the thunar executable if the archive is
decompressed on a case-insensitive filesystem.

Closes: #64691

Note: See TracTickets for help on using tickets.