Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#25076 closed defect (duplicate)

Broken gtk1 blocks kipi-plugins (and digiKam)

Reported by: rechner@… Owned by: jgosmann (Jan Gosmann)
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc: ryandesign (Ryan Schmidt), markus.doits@…
Port: kipi-plugins

Description

When I tried to install digiKam 1.2 via a fresh MacPorts setup a few days ago I stumbled upon the broken gtk1 port (see #24915). DigiKam depends upon kipi-plugins, which depends upon gdk-pixbuf, which depends upon gtk1.

According to the gtk1 bug description the brake occurred because of the gettext update to version 0.18, but when I tried to downgrade gettext to version 0.17 many other Ports needed to be rebuilt as well, and it did not work.

The kipi-plugins README says libgdk (for gdk-pixbuf) is just optional, so I think turning the gdk-pixbuf dependency into an optional port variant, as Jan did with the kdeedu4 dependency to fix #24090 would be a good strategy.

Attachments (4)

Portfile.kipi-plugins.diff (1.4 KB) - added by rechner@… 11 years ago.
patch for kipi-plugins 1.1 to not require gtk1
Portfile-kipi-plugins.diff (1.6 KB) - added by jgosmann (Jan Gosmann) 11 years ago.
Patch for kipi-plugins (Update to 1.2.0, variant to build without gtk dependency)
patch-dng_flags.h (384 bytes) - added by jgosmann (Jan Gosmann) 11 years ago.
Patchfile needed
disable-gtk-dependencies-CMakeLists.txt.diff (1.0 KB) - added by jgosmann (Jan Gosmann) 11 years ago.
Patchfile needed for no_ipod_export variant

Download all attachments as: .zip

Change History (20)

comment:1 Changed 11 years ago by mf2k (Frank Schima)

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

Changed 11 years ago by rechner@…

Attachment: Portfile.kipi-plugins.diff added

patch for kipi-plugins 1.1 to not require gtk1

comment:2 in reply to:  description Changed 11 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added

Replying to rechner@…:

When I tried to install digiKam 1.2 via a fresh MacPorts setup a few days ago I stumbled upon the broken gtk1 port (see #24915). DigiKam depends upon kipi-plugins, which depends upon gdk-pixbuf, which depends upon gtk1.

According to the gtk1 bug description the brake occurred because of the gettext update to version 0.18, but when I tried to downgrade gettext to version 0.17 many other Ports needed to be rebuilt as well, and it did not work.

gtk1 builds fine with gettext 0.17. Yes, there are other ports you may have to rebuild as well to make them compatible with gettext 0.17 again and it can be a bit of an involved process. But it can be done. If you need help making it work please write to macports-users.

comment:3 Changed 11 years ago by ryandesign (Ryan Schmidt)

In the patch you attached, you added a comment:

This Version does not depend on gdk-pixbuf (and gtk1) - install it before the kipi-plugins, if you want to build the respective plugins.

This is not acceptable. It's not ok for ports to opportunistically use software that happens to be installed. You must make the port not use gtk1, even if gtk1 is installed. If desired, you can also add a variant that re-adds the gdk-pixbuf dependency and makes the port build those plugins again.

Better than this patch would be to make gtk1 work with gettext 0.18. We should discuss any efforts in that direction in #24915.

comment:4 Changed 11 years ago by jgosmann (Jan Gosmann)

I will not have any time doing something about this issue before next weekend. But I'm following the discussion.

I can understand that a port should not used installed ports if these are not listed as dependency. But can anyone give me some hints how to do that? AFAIK cmake automatically looks what is installed and there is no configure switch to disable this behavior. Therefore it seems far more easier just to add all the ports.

Moreover kipi-plugins will automatically use the opencv port which is commented out in the dependencies, because it did not build with Snow Leopard. However, it seems to work now (for some reason I have an opencv port installed) and I could include that line with the next change again.

comment:5 in reply to:  4 Changed 11 years ago by ryandesign (Ryan Schmidt)

Replying to jan@…:

I can understand that a port should not used installed ports if these are not listed as dependency. But can anyone give me some hints how to do that? AFAIK cmake automatically looks what is installed and there is no configure switch to disable this behavior.

You should ask the developers of this software to provide a configure switch for this. Until they do, you can patch the configure script (or in the case of a port using cmake, the cmakelist files).

Therefore it seems far more easier just to add all the ports.

Unless there's a good reason why one would not want to add those ports, that's a good idea.

comment:6 Changed 11 years ago by markus.doits@…

Cc: markus.doits@… added

Cc Me!

Changed 11 years ago by jgosmann (Jan Gosmann)

Attachment: Portfile-kipi-plugins.diff added

Patch for kipi-plugins (Update to 1.2.0, variant to build without gtk dependency)

Changed 11 years ago by jgosmann (Jan Gosmann)

Attachment: patch-dng_flags.h added

Patchfile needed

Changed 11 years ago by jgosmann (Jan Gosmann)

Patchfile needed for no_ipod_export variant

comment:7 Changed 11 years ago by jgosmann (Jan Gosmann)

Finally I had a little time to this stuff. I added the variant no_ipod_export which removes the gtk1 dependency (and should not use it even if it is installed). Also for some reason the port version was still 1.1.0 (I had already a Portfile for 1.2.0 on my hard disk. Maybe posted the wrong patchfile or forgot it completly.) Anyways, with this patch the port will also be updated to 1.2.0.

I know that there is already version 1.3.0 out. But that depends on very new version of libkdcraw and another library which are not yet included in the kdegraphics4 port.

comment:8 Changed 11 years ago by markus.doits@…

patch for 1.2.0 and variant no_ipod_export work for me, thanks

comment:9 in reply to:  7 Changed 11 years ago by shorty0927@…

I'm not seeing the no_ipod_export variant in the list. Has it been removed in the last couple of weeks?

comment:10 Changed 11 years ago by kontrahent@…

I patched the portfile and tried to install the variant no_ipod_export. It downloads the file kipi-plugins-1.2.0.tar.bz2 from http://dfn.dl.sourceforge.net/kipi in my case. When it starts verifying the checksum I start getting errors.

The log says

:error:checksum No checksum set for kipi-plugins-1.2.0.tar.bz2

(It reports the same error for the patchfiles "patch-dng_flags.h" and "disable-gtk-dependencies-CMakeLists.txt.diff".)

Further down it says

:debug:checksum Backtrace: Unable to verify file checksums
    while executing
"$procedure $targetname"

I'm lost here. I'm all new to this and not really sure if I made a mistake. I would appreciate any input.

comment:11 Changed 11 years ago by markus.doits@…

For me it still works:

cd $(port dir kipi-plugins)
sudo mkdir files
sudo wget https://trac.macports.org/raw-attachment/ticket/25076/Portfile-kipi-plugins.diff
sudo patch -p0 < Portfile-kipi-plugins.diff
cd files
sudo wget https://trac.macports.org/raw-attachment/ticket/25076/patch-dng_flags.h
sudo wget https://trac.macports.org/raw-attachment/ticket/25076/disable-gtk-dependencies-CMakeLists.txt.diff
sudo port install kipi-plugins +no_ipod_export

(not tested, typed from memory, but that should be it)

Why isn't it in the tree yet?

comment:12 Changed 10 years ago by markus.doits@…

any progress here? there's already digikam 1.4.0 and kipi-plugins 1.4.0 out - is there any eta or is this abandoned for the time being?

comment:13 Changed 10 years ago by jgosmann (Jan Gosmann)

I have no problems building gtk1.

Does this problem still persist for anyone? Especially with the updated kipi-plugins port I just submitted (ticket #27349).

I would suggest to close this ticket. If there is still a problem kipi-plugins can be installed as the no_ipod_export variant. Moreover, it seems better to me to file an explicit ticket concerning gtk1.

comment:14 Changed 10 years ago by ryandesign (Ryan Schmidt)

Resolution: duplicate
Status: newclosed

These patches have been rolled into those in #27349.

comment:15 Changed 10 years ago by rechner@…

I'm happy with this ticket being closed, if the gtk1 problem is fixed.

Still I'd like to point out that apparently even the upcoming Debian 6.0 is dropping gtk 1.2 support, so it might be a good idea to soon no longer have the modern digiKam depend on such an old library.

I'm looking forward to the updated digikam and kipi-plugins ports, thanks Jan!

comment:16 Changed 10 years ago by jgosmann (Jan Gosmann)

The Digikam port has been updated to version 1.6.0. Does the problem with gtk1 still persist? If not, this ticket should be closed.

Note: See TracTickets for help on using tickets.