Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 795786 - media-gfx/krita-4.4.3 USE=color-management - error: 'using element_type = const class OpenColorIO_v2_0::Processor' has no member named 'apply'
Summary: media-gfx/krita-4.4.3 USE=color-management - error: 'using element_type = con...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo KDE team
URL: https://invent.kde.org/graphics/krita...
Whiteboard:
Keywords:
Depends on: 798306
Blocks:
  Show dependency tree
 
Reported: 2021-06-13 19:05 UTC by Bernd
Modified: 2021-07-17 00:43 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info-krita-4.4.3.txt (emerge-info-krita-4.4.3.txt,13.39 KB, text/plain)
2021-06-13 19:06 UTC, Bernd
Details
krita-4.4.3:20210613-180943.log.xz (krita-4.4.3:20210613-180943.log.xz,81.52 KB, application/octet-stream)
2021-06-13 19:07 UTC, Bernd
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bernd 2021-06-13 19:05:13 UTC
FAILED: plugins/dockers/lut/CMakeFiles/kritalutdocker.dir/ocio_display_filter.cpp.o 
/usr/bin/x86_64-pc-linux-gnu-g++ -DBOOST_ALL_NO_LIB -DBOOST_SYSTEM_DYN_LINK -DHAVE_X11 -DKCOREADDONS_LIB -DKGUIADDONS_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x50900 -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_PRINTSUPPORT_LIB -DQT_STRICT_ITERATORS -DQT_SVG_LIB -DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"krita\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Dkritalutdocker_EXPORTS -Iplugins/dockers/lut -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/plugins/dockers/lut -Iplugins/dockers/lut/kritalutdocker_autogen/include -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/interfaces -I. -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3 -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui/canvas -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui/flake -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui/ora -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui/tool -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui/utils -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui/widgets -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui/input/wintab -Ilibs/ui -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/ui -Ilibs/impex -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/impex -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/image/brushengine -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/image/filter -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/image/generator -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/image/layerstyles -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/image/processing -Ilibs/image -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/image -Ilibs/version -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/version -Ilibs/widgets -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/widgets -Ilibs/odf -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/odf -Ilibs/koplugin -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/koplugin -Ilibs/store -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/store -Ilibs/global -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/global -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/flake/commands -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/flake/tools -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/flake/svg -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/flake/text -Ilibs/flake -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/flake -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/pigment/resources -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/pigment/compositeops -Ilibs/pigment -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/pigment -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/widgetutils/config -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/widgetutils/xmlgui -Ilibs/widgetutils -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/widgetutils -Ilibs/command -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/command -Ilibs/psd -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/psd -Ilibs/metadata -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/metadata -Ilibs/color -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/color -Ilibs/color/colord -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/color/colord -Ilibs/brush -I/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/libs/brush -isystem /usr/include/OpenEXR -isystem /usr/include/eigen3 -isystem /usr/include/OpenColorIO -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/KF5/KCompletion -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5/KItemViews -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/KF5/KConfigGui -isystem /usr/include/KF5/KWidgetsAddons -isystem /usr/include/qt5/QtSvg -isystem /usr/include/KF5/KGuiAddons -isystem /usr/include/qt5/QtX11Extras -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtMultimedia  -DQT_NO_DEBUG -O2 -pipe -march=bdver2 -frecord-gcc-switches -fstack-protector-strong -fstack-check -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fdiagnostics-color=always  -fext-numeric-literals -fexceptions -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wno-suggest-override -Wextra -Wno-class-memaccess -fPIC -std=gnu++14 -MD -MT plugins/dockers/lut/CMakeFiles/kritalutdocker.dir/ocio_display_filter.cpp.o -MF plugins/dockers/lut/CMakeFiles/kritalutdocker.dir/ocio_display_filter.cpp.o.d -o plugins/dockers/lut/CMakeFiles/kritalutdocker.dir/ocio_display_filter.cpp.o -c /var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/plugins/dockers/lut/ocio_display_filter.cpp
/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/plugins/dockers/lut/ocio_display_filter.cpp: In member function ‘virtual void OcioDisplayFilter::filter(quint8*, quint32)’:
/var/tmp/portage/media-gfx/krita-4.4.3/work/krita-4.4.3/plugins/dockers/lut/ocio_display_filter.cpp:64:22: error: ‘using element_type = const class OpenColorIO_v2_0::Processor’ {aka ‘const class OpenColorIO_v2_0::Processor’} has no member named ‘apply’
   64 |         m_processor->apply(img);
      |                      ^~~~~

More errors follow, see build log for details.

Omitting the USE flag finishes the build.

This implies a conflict with latest media-gfx/blender-2.93.0 which depends on >=media-libs/opencolorio-2.0.0.

Reproducible: Always

Steps to Reproduce:
1. emerge >=opencolorio-2.0.0
2. USE="color-management" emerge krita
3.



emerge --info attached due to comment size restriction
Comment 1 Bernd 2021-06-13 19:06:42 UTC
Created attachment 715770 [details]
emerge-info-krita-4.4.3.txt

output of emerge --info krita
Comment 2 Bernd 2021-06-13 19:07:57 UTC
Created attachment 715773 [details]
krita-4.4.3:20210613-180943.log.xz

build log, compressed due to size
Comment 3 Bernd 2021-06-14 14:41:47 UTC
Andreas, thanks for your research. I doubt this commit is enough to solve this issue.
The file where the error occurs still calls the apply function in 4.4.5[1] and the definition of processor[2] tells it's of type ConstProcessorRcPtr, thus of type Processor[3].

The definition of Processor in the OCIO header files seems to have changed and the Processor class no longer contains an apply method[4] (though a CPUProcessor class does[5]).

[1] https://invent.kde.org/graphics/krita/-/blob/krita/4.4.5/plugins/dockers/lut/ocio_display_filter.cpp#L64
[2] https://invent.kde.org/graphics/krita/-/blob/krita/4.4.5/plugins/dockers/lut/ocio_display_filter.h#L78
[3] https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/include/OpenColorIO/OpenColorTypes.h#L68
[4] https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/include/OpenColorIO/OpenColorIO.h#L2027
[5] https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/include/OpenColorIO/OpenColorIO.h#L2226
Comment 4 rnddim 2021-06-20 01:31:08 UTC
The issue here is that opencolorio-2.0.0 should have been put in its own SLOT thanks to its incompatible API. I'd like to know the rationale for its ebuild treating it like a simple update.
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-06-20 01:33:34 UTC
(In reply to rnddim from comment #4)
> The issue here is that opencolorio-2.0.0 should have been put in its own
> SLOT thanks to its incompatible API.

The issue is that it has an incompatible API. We can debate how to fix it in all sorts of ways. Typically, we just introduce a < dep.

>I'd like to know the rationale for its ebuild treating it like a simple update.

That seems a bit entitled, although I'm sure you didn't mean it like that. Breaking API is not necessarily a reason to slot it.
Comment 6 rnddim 2021-06-20 02:14:25 UTC
I'm really surprised you could read any kind of entitlement out of my comment. I just thought it was common practice for incompatible API to lead to a new SLOT, so I was wondering why it wasn't done for opencolorio.
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-06-20 02:23:48 UTC
(In reply to rnddim from comment #6)
> I'm really surprised you could read any kind of entitlement out of my
> comment. I just thought it was common practice for incompatible API to lead
> to a new SLOT, so I was wondering why it wasn't done for opencolorio.

Sure, sorry -- tone is not easy on the internet and maybe I misread!

Really, we do a lot of different things for API breaks:
1) Add < deps for consumers which break
2) Introduce a *sub*slot (SLOT="X/Y" where X is irrelevant and Y is some indicator that the API changed), but this is kind of uncommon for *API* changes -- usually more ABI breaks, but not always.
3) Introduce a slot (this is problematic unless the versions truly are installable in parallel, and we'd need to check that the build systems of all consumers know how to find the right versioned files).

So, really, in a lot of cases, unless we KNOW all/most consumers will break, we wait and see. Then we apply option 1). Or we go back and revisit 2) or 3) if necessary.

In terms of rationale:
- See above;
- Sometimes people make mistakes too. I'm not sure somebody did here, but that's why it's better to focus on "What should we do now?" rather than "Please provide reasons why you did X" in this case.

In this case, we may want to apply a < dep to Krita.
Comment 8 Larry the Git Cow gentoo-dev 2021-06-20 08:33:00 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75651b0d83a785d1cb8411d36317b0452cb1144b

commit 75651b0d83a785d1cb8411d36317b0452cb1144b
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2021-06-19 20:36:00 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2021-06-20 08:32:53 +0000

    media-gfx/krita: 4.4.5 version bump
    
    Introduce dev-python/sip slot op
    Restrict to =media-libs/opencolorio-1*
    
    Bug: https://bugs.gentoo.org/793887
    Bug: https://bugs.gentoo.org/795786
    Package-Manager: Portage-3.0.20, Repoman-3.0.3
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 media-gfx/krita/Manifest                           |   1 +
 .../files/krita-4.4.5-pykrita-crash-on-exit.patch  |  55 +++++++++
 media-gfx/krita/krita-4.4.5.ebuild                 | 129 +++++++++++++++++++++
 3 files changed, 185 insertions(+)
Comment 9 Larry the Git Cow gentoo-dev 2021-07-05 06:40:20 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2680602d9fbeb025f43c580b070177b86d223dfd

commit 2680602d9fbeb025f43c580b070177b86d223dfd
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2021-07-05 06:27:48 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2021-07-05 06:27:48 +0000

    media-gfx/krita: Drop 4.4.3
    
    Closes: https://bugs.gentoo.org/793887
    Closes: https://bugs.gentoo.org/795786
    Package-Manager: Portage-3.0.20, Repoman-3.0.3
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 media-gfx/krita/Manifest           |   1 -
 media-gfx/krita/krita-4.4.3.ebuild | 128 -------------------------------------
 2 files changed, 129 deletions(-)