|
|
|
@ -18,13 +18,17 @@ Unable to create io-slave: klauncher said: Unknown protocol 'trash'.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Oh, well. So I guess the FreeBSD port for Digikam fails to list a
|
|
|
|
|
required dependency.
|
|
|
|
|
required dependency. Fixing this is a long (ongoing) journey,
|
|
|
|
|
with lots of interesting adventures all along. This is not a step
|
|
|
|
|
by step buid, but a series of notes about various traps I fell
|
|
|
|
|
on the way.
|
|
|
|
|
|
|
|
|
|
Building KDE workspace
|
|
|
|
|
======================
|
|
|
|
|
KDE libraries versioning
|
|
|
|
|
========================
|
|
|
|
|
|
|
|
|
|
A little grep'ping in port plists hints that the missing dep
|
|
|
|
|
might be x11/kde4-workspace. Alright, let's build that.
|
|
|
|
|
Executive summary: you cannot build KDE libraries (such
|
|
|
|
|
as sysutils/kfilemetadata) of a given version if it does
|
|
|
|
|
not match exactly the installed version of kdelibs:
|
|
|
|
|
|
|
|
|
|
```plain Build log
|
|
|
|
|
[...]
|
|
|
|
@ -33,13 +37,10 @@ pkg-static: Unable to access file /var/ports/work/usr/ports/sysutils/kfilemetada
|
|
|
|
|
*** Error code 74
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The kfilemetadata fails to install. That file is indeed missing; the staging area
|
|
|
|
|
kfilemetadata fails to install. That file is indeed missing; the staging area
|
|
|
|
|
does however contain a libkfilemetadata.so.4.14.2. So why does the source package
|
|
|
|
|
of 4.14.3 generate a 4.14.2 library?
|
|
|
|
|
|
|
|
|
|
A trip in KDE-build-land
|
|
|
|
|
========================
|
|
|
|
|
|
|
|
|
|
Answer: the library version is not set by the package itself, it comes from a
|
|
|
|
|
default value from:
|
|
|
|
|
o
|
|
|
|
@ -58,14 +59,6 @@ $ pkg which /usr/local/share/apps/cmake/modules/KDE4Defaults.cmake
|
|
|
|
|
Conclusion: the build dependency for kfilemetadata should list the exact same version of
|
|
|
|
|
kdelibs, or the port won't build.
|
|
|
|
|
|
|
|
|
|
So, we now need to upgrade kdelibs in order to be able to build kfilemetadata, which
|
|
|
|
|
is a dependency of kde4-workspace, which is an unlisted dependency of Digikam.
|
|
|
|
|
|
|
|
|
|
Rebuilding kdelibs from sources involves a portmaster operation that will on this
|
|
|
|
|
system rebuild a few hundred depedencies, so doesn't sound like an attractive option
|
|
|
|
|
(too big a build to babysit, with likely hiccups on the way, and in any case too
|
|
|
|
|
much of an earthquake with so many ports being updated at once.
|
|
|
|
|
|
|
|
|
|
Upgrading kdelibs
|
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
@ -86,26 +79,38 @@ $ digikam
|
|
|
|
|
Strange that libpng 1.6.16 does not have version 16... Sigh... OK, upgrading from png-1.6.16
|
|
|
|
|
to png-1.6.18 appears to fix the problem. Back on track...
|
|
|
|
|
|
|
|
|
|
Back to KDE Workspace
|
|
|
|
|
=====================
|
|
|
|
|
|
|
|
|
|
Side note: hey, couldn't I just install kde-workspace from packages as well? Well,
|
|
|
|
|
for some reason pkg wants to remove my TeXlive install, and upgrade two dozen other
|
|
|
|
|
packages, so thanks, but no thanks. (I would have gone for it were it not for the
|
|
|
|
|
removal of TeXlive. But that's too much breakage to fix downstream.)
|
|
|
|
|
|
|
|
|
|
Now Digikam displays its splash screen and starts initializing, then segfaults.
|
|
|
|
|
Hell, I'll have to bite the bullet and upgrade a few hundred packages from ports. :-(
|
|
|
|
|
|
|
|
|
|
portupgrade: Be Afraid, Be Very Afraid
|
|
|
|
|
======================================
|
|
|
|
|
|
|
|
|
|
```plain
|
|
|
|
|
# portmaster -dvw digikam
|
|
|
|
|
```
|
|
|
|
|
VLC ports variants
|
|
|
|
|
==================
|
|
|
|
|
|
|
|
|
|
The vlc port by defaults depends on QT5, whereas the rest of the
|
|
|
|
|
KDE system depends on QT4. You can rebuild vlc with the QT4 option,
|
|
|
|
|
but that's not quite sufficient: actually phonon (part of KDE)
|
|
|
|
|
depends explicitly on slave port vlc-qt4 (so you can't just install
|
|
|
|
|
vlc with QT4 option, you have to go through the separate slave
|
|
|
|
|
port).
|
|
|
|
|
|
|
|
|
|
OpenSLP
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
Digikam does not segault anymore, CUPS is repaired (I had to reinstall
|
|
|
|
|
it somewhere in the process, as it would silently fail to startup
|
|
|
|
|
due to a missing symbol) but I still cannot delete photos. On second
|
|
|
|
|
guess, the missing item might be kde4-runtime, not kde4-workspace.
|
|
|
|
|
|
|
|
|
|
Here the dead end is quickly reached: x11/kde4-runtime depends on net/openslp,
|
|
|
|
|
which won't build because of a security vulnerability... Oh well, let's
|
|
|
|
|
build with `DISABLE_VULNERABILITIES=yes`...
|
|
|
|
|
|
|
|
|
|
(It's beyond my understanding why `-w`, i.e. "Keep old shared libs in the hope of not rendering
|
|
|
|
|
other applications unusable" is not the default)
|
|
|
|
|
Epilogue
|
|
|
|
|
========
|
|
|
|
|
|
|
|
|
|
As a corollary, I'll have to upgrade to GnuPG 2.1 (dependncy of `security/gpgme`) -- I had so
|
|
|
|
|
far carefully stuck with `security/gnupg20`.
|
|
|
|
|
At long last, small victory: the missing piece was indeed x11/kde4-runtime.
|
|
|
|
|
The problem has been `reportd <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203222>`.
|
|
|
|
|
I must admit I'm getting sick and tired of the amount of breakage I need to
|
|
|
|
|
investigate and fix most times I want to install something using the ports system.
|
|
|
|
|
Desktop work nowadays requires humongous dependency closures that are extremely
|
|
|
|
|
fragile, and I'm very much tempted these days to switch back to Debian for that.
|
|
|
|
|