Opened 5 years ago

Last modified 18 months ago

#62755 assigned update

digikam: update to 8.4.0

Reported by: mascguy (Christopher Nielsen) Owned by: cgilles (HumanDynamo)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: RJVB (René Bertin), cjones051073 (Chris Jones), contextnerror
Port: digikam

Description

It looks like our Digikam port is a few major releases behind. And it's also failing to build across-the-board on our buildbots.

Let's update to the latest release, if possible.

Change History (9)

comment:1 Changed 5 years ago by mascguy (Christopher Nielsen)

According to rumors, Rene may have a working Digikam 7.1.0 port already... ;-)

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

Much easier said than done, alas. At least the way I build and install my KF5 stuff but even if I didn't try to get feature parity with Linux builds there would still be a sh*load of dependencies to introduce first. Here's a pruned list allowing to focus on non-existant ports (kf5-*):

The following ports are dependencies of kf5-digikam @7.1.0_0+langselect+qt5kde:
  xz
  pkgconfig
  cmake
  kde-extra-cmake-modules
  kf5-kdoctools
    kf5-ki18n
      python27
      qt5-kde
    kf5-karchive
  flex
  qt5-webkit
  kf5-libkipi
    kf5-kconfig
    kf5-kservice
      kf5-kcoreaddons
        shared-mime-info
      kf5-kcrash
        kf5-kwindowsystem
      kf5-kdbusaddons
    kf5-kxmlgui
      kf5-attica
      kf5-kconfigwidgets
        kf5-kauth
        kf5-kcodecs
        kf5-kguiaddons
        kf5-kwidgetsaddons
      kf5-kglobalaccel
      kf5-kiconthemes
        kf5-kitemviews
      kf5-ktextwidgets
        kf5-kcompletion
        kf5-sonnet
          hunspell
  kf5-kcalcore
    libical
  kf5-kio
    acl-dev
      acl
        attr
    kf5-kbookmarks
    kf5-kjobwidgets
    kf5-knotifications
      phonon-qt5
      dbusmenu-qt5
    kf5-kwallet
      qgpgme
    kf5-solid
  kf5-kfilemetadata
    exiv2
    poppler-qt5
    taglib
    ffmpeg
    ebook-tools
  kf5-kitemmodels
  kf5-knotifyconfig
  kf5-threadweaver
  opencv
  libpgf
  kf5-marble
    protobuf3-cpp
    kf5-knewstuff
    kf5-kpackage
    kf5-kparts
    kf5-krunner
      kf5-plasma-framework
        kf5-kactivities
          boost
        kf5-kdeclarative
        kf5-kirigami2
          kf5-breeze-icons
    shapelib
  libgpod
  ImageMagick
  eigen3
  lensfun
  libgphoto2
  gphoto2
  liblqr
  kf5-libkexiv2
  oxygen-icons
  qt5-sqlite-plugin
    qt5-qtbase
  gstreamer1-gst-libav
  gstreamer1-gst-plugins-good

Personally I have given up on the idea of introducing KF5 to MacPorts - I'm not even maintaining my own ports very actively anymore.

Gilles himself probably has experience building a standalone version using a script he might be able to tweak so Qt5 and other dependencies are taken from MacPorts but the KF5 frameworks and libraries are embedded in the app bundle.

Last edited 5 years ago by RJVB (René Bertin) (previous) (diff)

comment:3 Changed 5 years ago by cgilles (HumanDynamo)

Hi,

Mostly the list of dependencies is out of date. As i can see libkipi libkexiv2 for ex, are removed since few years now.

Look here to see the dependencies list of digiKam :

https://www.digikam.org/api/index.html#externaldeps

And yes, the current MacOS PKG installer is fully compiled with Macports. This include KF5 of course. My scripts are located here :

https://invent.kde.org/graphics/digikam/-/tree/master/project/bundles/macports

This is the macports packages list installed to compile digiKam :

https://invent.kde.org/graphics/digikam/-/blob/master/project/bundles/macports/01-build-macports.sh#L270

... and here, the list of KF5 components installed in Macports:

https://invent.kde.org/graphics/digikam/-/blob/master/project/bundles/macports/02-build-extralibs.sh#L72

The script 03 compile and install 3 shared UPSTREAM libs (libexiv2, lensfun, libqtav), digiKam, and 2 stand alone plugins.

The script 04, scan dependencies to build the PKG installer, drop debug symbols, make binaries relocatable, and package the application.

To process packaging from scratch, this take 4 hours on my macbook pro 2015 Intel.

Voilà, If you need more guidance, let's me hear...

Gilles Caulier

comment:4 Changed 5 years ago by Christopher Nielsen <mascguy@…>

In be36e945cd0441c2d734dcbc61e96dfe1c9d75ac/macports-ports (master):

digikam: set known_fail
See: #62755

comment:5 Changed 4 years ago by contextnerror

Cc: contextnerror added

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

Summary: digikam: update to 7.2.0digikam: update to 8.4.0

comment:7 in reply to:  3 ; Changed 2 years ago by barracuda156

Replying to cgilles:

I have built now 4.14.0, however it crashes on launch (like many KDE4 apps, though not all of them):

QIODevice::setTextModeEnabled: The device is not open
digikam(89086) mac_initialize_dbus: warning: unable to initialize D-Bus environment!
Error: "/var/tmp/kdecache-svacchanda" is owned by uid 501 instead of uid 0.
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .. done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries warning: Could not find object file "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_kde4-runtime/kde4-runtime/work/build/kimgio/CMakeFiles/kimg_webp.dir/webp.cpp.o" - no debug information available for "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_kde4-runtime/kde4-runtime/work/kde4-runtime-4.14.4.20171102/kimgio/webp.cpp".

. done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .. done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
digikam(89086)/kdeui (kdelibs): Session bus not found 
To circumvent this problem try the following command (with Linux and bash) 
export $(dbus-launch) 

Program received signal SIGABRT, Aborted.
0x00b32d48 in __kill ()
(gdb) bt
#0  0x00b32d48 in __kill ()
#1  0x00bd680c in abort ()
#2  0x0463a934 in qt_message_output ()
#3  0x0321b810 in QDebug::~QDebug ()
#4  0x03300f48 in KApplicationPrivate::init ()
#5  0x03301878 in KApplication::KApplication ()
#6  0x004523c8 in main ()

comment:8 Changed 18 months ago by mohd-akram (Mohamed Akram)

Type: defectupdate

comment:9 in reply to:  7 Changed 18 months ago by RJVB (René Bertin)

At this point the easiest way to upgrade the port would be to have it pull the official .pkg installer and pull the application from there. Looking over the build script I think that the net result is going to be the same: the installation of a fully independent .app bundle that may or may not be movable. Replying to barracuda156:

Replying to cgilles:

I have built now 4.14.0, however it crashes on launch (like many KDE4 apps, though not all of them):

QIODevice::setTextModeEnabled: The device is not open
digikam(89086) mac_initialize_dbus: warning: unable to initialize D-Bus environment!
Error: "/var/tmp/kdecache-svacchanda" is owned by uid 501 instead of uid 0.

[...]

digikam(89086)/kdeui (kdelibs): Session bus not found To circumvent this problem try the following command (with Linux and bash) export $(dbus-launch)

Program received signal SIGABRT, Aborted. 0x00b32d48 in kill () (gdb) bt #0 0x00b32d48 in kill () #1 0x00bd680c in abort () #2 0x0463a934 in qt_message_output () #3 0x0321b810 in QDebug::~QDebug () #4 0x03300f48 in KApplicationPrivate::init () #5 0x03301878 in KApplication::KApplication () #6 0x004523c8 in main () }}}

That's not a crash, that's an abort. Without debug info in kdelibs4 it's impossible to tell why but I suspect the QIODevice error might be related. Or the simple fact that an attempt is made to run a KDE4 application without having a session DBus daemon running. I never tried to do that but there is a reason why port notes kdelibs4 says

Don't forget that dbus needs to be started as the local user (not with sudo) before any KDE programs will launch.

(note the last 2 words!)

Note: See TracTickets for help on using tickets.