Opened 8 years ago

Closed 7 years ago

#45107 closed submission (fixed)

upgrade Digikam to 4.3.0 (needs work)

Reported by: RJVB (René Bertin) Owned by: jan@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch Cc: cgilles (HumanDynamo), ryandesign (Ryan Schmidt), mojca (Mojca Miklavec), mkae (Marko Käning), NicosPavlov, macports@…, hubsif
Port: digikam

Description

I'm attaching an updated Portfile for digikam, of which version 4.3.0 was released the past week.

It should work fine when no digikam version is installed.

I had the older version (4.0.0) installed (through my own portfile which is near identical to the one that was subsequently added to the main repository. This older port installed plugin header files (for libkgeomap) under ${prefix}/include and there appears to be an issue with the CMake files which cause it to pick up those headers. It should pick up the headers with the bundled libkgeomap *newer version* instead.

The current, 4.0.0 Portfile has a few other oddities also signalled on the currently ongoing discussion on the ML, and that I tried to correct.

I'm posting this diff in hope someone more knowledgeable about CMake in general and MacPorts "protected build environment" in general can look into the issue.

I have not yet implemented a post-destroot script to prevent unwanted header files from being installed by removing them there, which seems to be the best approach. The Debian/Ubuntu package managers followed a similar approach: they don't bundle those files during the package generation process.

Attachments (2)

digikam.diff (4.2 KB) - added by RJVB (René Bertin) 8 years ago.
This updates the port to digikam 4.4.0 . Tested only after uninstalling the previous version (4.3.0) so I cannot comment on whether or not the header file mismatch still occurs
digikam-correct4OSX-4.4.0.patch (6.1 KB) - added by RJVB (René Bertin) 8 years ago.
patch for making a functional showfoto appbundle and ditto digikam app bundle on a case-sensitive filesystem

Download all attachments as: .zip

Change History (19)

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

Cc: ryandesign@… added; jan@… removed
Owner: changed from macports-tickets@… to jan@…

This ticket supersedes #44666.

If a previous install of the port causes build failure, and we cannot determine what to modify in the build to fix that, we can use:

PortGroup conflicts_build 1.0
...
conflicts_build ${name}

comment:2 Changed 8 years ago by RJVB (René Bertin)

Fine with me, I'll leave someone else to test that (though I can see what happens when I do port -v destroot digikam with my current 4.3.0 installed ... when not using my rig for other intensive stuff; this is not a small port).

comment:3 Changed 8 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

Changed 8 years ago by RJVB (René Bertin)

Attachment: digikam.diff added

This updates the port to digikam 4.4.0 . Tested only after uninstalling the previous version (4.3.0) so I cannot comment on whether or not the header file mismatch still occurs

comment:4 Changed 8 years ago by bugports@…

The patch worked for me after uninstalling version 4.0 (Xcode 3.2.6 for Mac OS X 10.6), but ShowFoto is broken after the build. GUI quirk: If you turn off the menubar and click on the "albums" button on the left side, the editor is starting instead.

comment:5 Changed 8 years ago by RJVB (René Bertin)

Those are issues that should be reported on bugs.kde.org as they are not due to the portfile unlikely to be caused by the MacPorts patches.

comment:6 Changed 8 years ago by cgilles (HumanDynamo)

Hi,

I compile digiKam from git/master (current 4.5.0 implementation), and the dysfunction is not reproducible here.

So your patch has broken something...

Gilles Caulier

comment:7 Changed 8 years ago by RJVB (René Bertin)

Sorry, but no.

From core/showfoto/CMakelists.txt:

KDE4_ADD_EXECUTABLE(showfoto ${showfoto_SRCS})

# To fill plist XML file for OSX #####################################################

SET(MACOSX_BUNDLE_LONG_VERSION_STRING ${DIGIKAM_VERSION_STRING})
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING ${DIGIKAM_VERSION_SHORT})
SET(MACOSX_BUNDLE_BUNDLE_VERSION ${DIGIKAM_VERSION_STRING})
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/templates/Info.plist.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
SET_TARGET_PROPERTIES(showfoto PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)

and from that ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/templates/Info.plist.cmake.in :

    <key>CFBundleExecutable</key>
    <string>digiKam</string>
    <key>CFBundleGetInfoString</key>
    <string>digiKam is an advanced digital photo management application for Linux, Windows, and Mac-OSX</string>

I've had to launch a full rebuild of the port, so cannot yet affirm or infirm, but it would seem that the digikam 4.4.0 build system generates a showfoto appbundle with an Info.plist that sets the bundle executable to digiKam instead of to showfoto.

NB: I'm not sure if OS X uses a case-sensitive algorithm to match the bundle executable string from the InfoDictionary to the file(s) it finds in Contents/MacOS, but it's not unlikely that using camelCase in the CFBundleExecutable and lowercase in the actual binary filename will lead to launch issues on a case-sensitive filesystem.

Changed 8 years ago by RJVB (René Bertin)

patch for making a functional showfoto appbundle and ditto digikam app bundle on a case-sensitive filesystem

comment:8 Changed 8 years ago by mkae (Marko Käning)

Cc: mk@… added

Cc Me!

comment:10 Changed 8 years ago by mkae (Marko Käning)

Cc: nicos@… added

comment:11 Changed 8 years ago by macports@…

Cc: macports@… added

Cc Me!

comment:12 Changed 7 years ago by mkae (Marko Käning)

René, it looks like your patch digikam-correct4OSX-4.4.0.patch​ has been incorporated in version 4.5.0.

I was just trying to get version 4.5.0 to build, but it requires the on MP not yet existent library libpgf:

:info:configure --  libpgf found............................. NO
:info:configure CMake Error at core/cmake/modules/MacroUtils.cmake:44 (message):
:info:configure    libpgf is needs. You need to install the libpgf (version >= 6.12.24) development package.

comment:13 Changed 7 years ago by cgilles (HumanDynamo)

libpgf is a very small lib which compile fine under Macports like this :

https://projects.kde.org/projects/extragear/graphics/digikam/digikam-software-compilation/repository/revisions/master/entry/README.MACOSX#L62

Packaging libpgf for Macports must take few minutes (:=))))

Gilles Caulier

comment:14 Changed 7 years ago by mkae (Marko Käning)

Thanks for the pointer, Gilles! Will do when I find the time. :)

comment:15 Changed 7 years ago by RJVB (René Bertin)

Marko: I noticed the same 2 things, but didn't know libpgf was very small. I you want to create a port for it, be my guest! :)

comment:16 Changed 7 years ago by hubsif

Cc: hubsif@… added

Cc Me!

comment:17 Changed 7 years ago by mkae (Marko Käning)

Resolution: fixed
Status: newclosed

Thanks to René's patch digikam was update to 4.8.0 in r133889.

Note: See TracTickets for help on using tickets.