Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#63150 closed defect (fixed)

mkvtoolnix @58.0.0_0+qtgui: build fails during configure

Reported by: klanchman (Kyle Lanchman) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: Tatsh (Andrew Udvare), MaddTheSane (C.W. Betts), i0ntempest
Port: mkvtoolnix

Description

When upgrading from mkvtoolnix 57 to 58, compilation fails at the configure step due to seemingly missing Boost prerequisites:

:info:configure configure: error: Boost's multi-precision library is required but wasn't found

However, the boost176 port is installed and I see a directory that seems related, /opt/local/libexec/boost/1.76/include/boost/multiprecision/.

Environment details:

  • macOS 11.4 (20F71)
  • Xcode 12.5.1 (12E507) - installed at nonstandard path /Applications/Xcode/Xcode_12.5.1.app
  • 3 different machines, all with Intel CPUs

Attachments (2)

main.log (664.4 KB) - added by klanchman (Kyle Lanchman) 3 years ago.
config.log (87.1 KB) - added by klanchman (Kyle Lanchman) 3 years ago.

Download all attachments as: .zip

Change History (13)

Changed 3 years ago by klanchman (Kyle Lanchman)

Attachment: main.log added

Changed 3 years ago by klanchman (Kyle Lanchman)

Attachment: config.log added

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

Port: mkvtoolnix added

comment:2 Changed 3 years ago by mouse07410 (Mouse)

In addition to installing the boost176 port you need to install the boost port. It provides the symlinks from the actual location of boost176 to the "expected" location (/opt/local/include and such) .

I had both, then somehow boost port disappeared. Stuff that relied on Boost stopped working until I remedied it by getting boost port back.

comment:3 Changed 3 years ago by klanchman (Kyle Lanchman)

Thanks, I just gave that a try but unfortunately I got the same error.

I found a workaround for now: a previous revision of v58 works if I check it out and install it manually. The log snippet in the GitHub comment matches mine when using the latest revision, which removed the extra flag.

comment:4 in reply to:  2 Changed 3 years ago by reneeotten (Renee Otten)

Replying to mouse07410:

In addition to installing the boost176 port you need to install the boost port. It provides the symlinks from the actual location of boost176 to the "expected" location (/opt/local/include and such) .

I had both, then somehow boost port disappeared. Stuff that relied on Boost stopped working until I remedied it by getting boost port back.

No, your suggestion here is incorrect. The "original" boost port will disappear eventually (it provides version 1.71 and there are no "symlinks" or anything happening therre) and pretty much all ports have migrated to use the boost PG. Currently, different versions of boost can be installed simultaneously and ports can depend on whichever version they need. But... you should not need the boost port anymore and installing that to "solve" a problem will not work.

This port depends on boost176 which is the latest upstream version. If that is actually the issue in that it doesn't build with the latest version, then it can be told to use boost171 instead.

Last edited 3 years ago by reneeotten (Renee Otten) (previous) (diff)

comment:5 Changed 3 years ago by reneeotten (Renee Otten)

see also the comments on the commit that update to version 58.0.

Why the setting of the standard was removed in this commit, while it it was known that that would cause the build error is a good question...

comment:6 Changed 3 years ago by mouse07410 (Mouse)

No, your suggestion here is incorrect. The "original" boost port will disappear eventually (it provides version 1.71 and there are no "symlinks" or anything happening therre) and pretty much all ports have migrated to use the boost PG. Currently, different versions of boost can be installed simultaneously and ports can depend on whichever version they need. But... you should not need the boost port anymore and installing that to "solve" a problem will not work.

I have some code that uses Boost. This symlink

$ ll /opt/local/include/boost
lrwxr-xr-x  1 root  admin  43 Jun 26 02:32 /opt/local/include/boost@ -> /opt/local/libexec/boost/1.76/include/boost
$ 

appeared only after installing the port boost in addition to boost176.

From description of the boost port:

This port is just a shim port, installing symbolic links to the include area and libraries provided by the boost176 port.

Last edited 3 years ago by mouse07410 (Mouse) (previous) (diff)

comment:7 Changed 3 years ago by reneeotten (Renee Otten)

right, sorry... I must have missed that last change to the boost port. I indeed see that you're correct in that it installs symlinks. Regardless, ideally it shouldn't be required to get other ports to build - likely the mkvtoolnix port just needs to be told more specifically where to find the stuff installed by the boost176 port.

comment:8 Changed 3 years ago by Tatsh (Andrew Udvare)

Cc: Tatsh added

comment:9 Changed 3 years ago by MaddTheSane (C.W. Betts)

Cc: MaddTheSane added

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

Cc: i0ntempest added

As far as I know, when I last touched this port, it worked. If someone else has broken it in the mean time, I would appreciate it if someone else would fix it.

comment:11 Changed 3 years ago by i0ntempest

Resolution: fixed
Status: assignedclosed

Should be fixed in [ab28a47801746092cbfa777d2f2019e0d7d5abad/macports-ports] by adding that cxxflag back. Not shown here because apparently MP website was having issues at the time I pushed it.

Also unrelated to this ticket, v59 is out and it now requires Qt regardless if GUI is built or not, and needs new configure args when not using +qtgui variant. Since we have multiple versions in the portfile we can't just change configure args for all of them. I'll leave it to the maintainer to decide which way is the best.

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)
Note: See TracTickets for help on using tickets.