Opened 6 months ago

Last modified 5 months ago

#69855 new enhancement

XviD: Missing unversioned symlink

Reported by: TurtleWilly (Wilhelm Loves Their Turtles) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: XviD

Description (last modified by TurtleWilly (Wilhelm Loves Their Turtles))

The build installs the following:

    lib/
        libxvidcore.4.dylib
        libxvidcore.a

Anything that links with -lxvidcore will automatically link statically. The .dylib is entirely useless like that. I do recommend adding an extra symlink to the versioned lib in "post-destroot":

    lib/
        libxvidcore.dylib -> libxvidcore.4.dylib

Change History (13)

comment:1 Changed 6 months ago by TurtleWilly (Wilhelm Loves Their Turtles)

Summary: XviD:XviD: Missing unversioned symlink

comment:2 Changed 6 months ago by TurtleWilly (Wilhelm Loves Their Turtles)

Description: modified (diff)

comment:3 in reply to:  description ; Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to TurtleWilly:

Anything that links with -lxvidcore will automatically link statically. The .dylib is entirely useless like that. I do recommend adding an extra symlink to the versioned lib in "post-destroot":

I agree with everything except that we should do this in post-destroot. The build system should do this automatically. The fact that it doesn't is an upstream bug that needs to be reported to them so they can fix it properly. Or they may have already fixed it; their last release was in 2019 but there were commits in their repository as recently as two years ago. Unfortunately they use a Subversion repository which is password-protected even for read access and their web-based ViewVC viewer does not appear to have a log feature where one could see a simple list of changes that have been made over time.

Also the XviD web site seems designed to prevent anyone from discovering how to report a bug. There is an email contact link at the bottom of their web site that I have not tried. I did eventually find their GitLab installation, which isn't mentioned anywhere on the web site, and a subpage of it that didn't require a login but where there would normally be a link to GitLab issues there is instead a link to a Jira installation. Safari does not want me to access that Jira installation because its certificate is not standards-compliant.

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

Ah, and ignoring Safari's warning about the Jira certificate gets me to a 403 Forbidden message.

It is certainly simpler to just add a symlink in post-destroot so as to spend as little time as possible with this project.

comment:5 Changed 5 months ago by TurtleWilly (Wilhelm Loves Their Turtles)

After digging around I noticed they once added some sort of patch to the problem: http://websvn.xvid.org/cvs/viewvc.cgi/trunk/xvidcore/build/generic/Makefile?r1=2036&r2=2042

So something like this would work and setup the required link too:

make install SO_LINK=libxvidcore.dylib

It feels rather fishy though.

(And I though just locating the download link on their website was time-consuming already. Had to tune my ad/content blocker to see it even. :) )

comment:6 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

Oh, well done. And from there one can even access the revision log.

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

So the bug is that their configure script does not set up SO_LINK for Darwin.

comment:8 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

In 1af73fa7b6de3eee44d5da842147d072d9b0790b/macports-ports (master):

XviD: Add libxvidcore.dylib symlink; other cleanup

Install libxvidcore.dylib symlink so that linking with -lxvidcore will
link with the dynamic library not the static library.

Use the two-level namespace instead of the flat namespace.

Fix a typo in configure script output: dynlib -> dylib

See: #69855

comment:9 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

TODO: Increase the revision of everything that linked with libxvidcore.a so that it links with libxvidcore.dylib instead. Verify that port:XviD is listed in depends_lib not depends_build.

Last edited 5 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:10 in reply to:  3 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign:

the XviD web site seems designed to prevent anyone from discovering how to report a bug. There is an email contact link at the bottom of their web site that I have not tried.

I wrote to the email address and the reply said that bug reports can be submitted by email so I reported all the above issues.

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

In 93a3f6ea650ca185a1fa9fa35884ab6d5bb3b645/macports-ports (master):

ffmpeg*: Link with libxvidcore.dylib

See: #69855

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

In cb5d33740a637b099c80d3ba36c8619a3ded866e/macports-ports (master):

avidemux: Rebuild to link with libxvidcore.dylib

See: #69855

comment:13 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

In 5d1860cb66c9654135b07d1b439fffd6c7e947eb/macports-ports (master):

gpac: Link with libxvidcore.dylib; other cleanup

Fix configure test to find xvid.

See: #69855

Use platforms keyword to specify OS compatibility.

zlib is a library dependency, not just a build dependency.

Use path:-based dependency for pkgconfig.

Note: See TracTickets for help on using tickets.