Opened 2 years ago

Closed 2 years ago

Last modified 23 months ago

#65123 closed defect (fixed)

gmic: @3.1.0: C++ library support no longer included in port

Reported by: mascguy (Christopher Nielsen) Owned by: Schamschula (Marius Schamschula)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc:
Port: gmic

Description

With the update of this port to 3.1.0, the C++ library is no longer being provided. This breaks dependents like darktable and others, which utilize it.

Instead, the port is now generating the CLI component only, via the use of build target cli. (Previously the port was using the default - all - which is what we probably want.)

Furthermore, for the gmic-clib subport, a symlink is now being created for the C++ dylib name - libgmic.dylib - resolving to the C API's dylib. And that's not going to work, as the contents of the C++ dylib are fundamentally different from the C version.

Please fix ASAP, as dependents are completely broken now.

Change History (7)

comment:1 Changed 2 years ago by Schamschula (Marius Schamschula)

I wish I could! Upstream reverted from cmake to Makefile, and the needed functionality is gone.

I spent a whole day rebuilding gmic to get the current sub-ports to build.

I'll see what other options there are in the Makefile.

comment:2 Changed 2 years ago by Schamschula (Marius Schamschula)

I think I have a plan: I added a gmic-lib subport. gmic cleanly built against it (w/o the gmic-clib kludge). Currently rebuilding gmic-clib, gmic-qt and gmic-gimp.

comment:3 Changed 2 years ago by Schamschula (Marius Schamschula)

In 0dbc801d5149815842d71e730f16ab3634ce4061/macports-ports (master):

gmic: add gmic-lib subport

See: #65123

comment:4 Changed 2 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Looks great. Thanks so much for the quick fix Marius!

comment:5 Changed 23 months ago by mascguy (Christopher Nielsen)

Marius, there's just one minor issue, which may result in users filing new Trac tickets: When upgrading from an earlier release, gmic-lib will fail to activate. That's because the C++ lib components used to be provided by the base port, and subport gmic-lib will be installed before the base port is updated.

So in short, to avoid issues, users will need to do the following:

$ sudo bash -c 'port -f deactivate gmic ; port -N upgrade gmic`

Thankfully this will only be a one-time thing, but something to be aware of.

Thoughts?

comment:6 Changed 23 months ago by Schamschula (Marius Schamschula)

There actually is the deactivate hack for that.

I didn't see it, as I already had to deactivate the original revision to get clean builds.

Note: See TracTickets for help on using tickets.