-
Notifications
You must be signed in to change notification settings - Fork 622
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ilmbase are deprecated or disabled. #1014
Comments
IlmBase has been superceded by Imath for OpenEXR 3.0. Perhaps open an issue at the Neofetch repo, I don't see any related issues there yet. https://github.com/dylanaraps/neofetch/issues |
I have a Flatpak with ilmbase as a dependency, it used to work (runtime: org.gnome.Platform runtime-version: "40"
Since the Flatpak platform has changed to 41 I get many of these errors and it fails: I don't normally use C++, but I am guessing that something that was deprecated in C++11 causes an error in C++ 17. The GitHub repository https://github.com/aforsythe/IlmBase hasn't changed for nine years, so I assume it is defunct. I believe that although earlier versions of openexr depended on ilmbase, version 3.1.3 no longer does, however I get errors if I remove it:
A previous post appears to suggest that I should include imath instead:
However it fails with:
Maybe I need to include ginac as well, but knowing nothing about these packages or compiling C programs, I've decided that I should stop digging and ask for advice. |
The aforsythe repo, and the ooo-imath repo, seem to be quite old copies of the real repo. I imagine someone made them in order to freeze our libraries in time a long time ago. I poked around on FlatHub to see where OpenEXR is being used, and I noticed dependencies in things like vipsdisp. In that package, they apply local hacks and patches to the very old libraries. I'm not sure if it is a reasonable amount of work to try to breathe life back into very old code like that, because as you noticed, the C++ language itself changed ten years ago. The new versions of OpenEXR are easier to deal with than the old ones, and have been updated to compile successfully with new versions of C++. Maybe the best way forward is to contact the maintainer of the package you are interested in with the very old dependency, and invite them to this thread. We could answer their questions on how to migrate their code to a maintained version of OpenEXR. That would be ideal, because if packages were updated, then there would be no need for those very old unmaintained copies of OpenEXR and IlmBase all over the internet. |
That's me :).
Isn't 3.1.3 the latest openexr then? |
Haha great, welcome :) It would be good to know what the dependency tree is for your project, and how it's built, in order to understand how to move forward. Is your project here on github or another source repository that you can point us to? |
My package is https://github.com/flathub/com.github.PopoutApps.popout3d https://github.com/PopoutApps/popout3d . It has a dependency on Hugin's align-image-stack which has several dependencies including openexr. The modules in the yml file are all for align-image-stack except Python-PIL and the app module itself. |
Here's one place to start: Your project depends directly on vigra, and the Fedora maintainers have updated vigra for OpenEXR3. The vigra project has not yet adopted the change. I suggest adding a note on that issue that your project is moving to OpenEXR3, so incorporated the suggested patch would be of use. Hugin is already compatible with OpenEXR 3, so that's good. https://sourceforge.net/p/hugin/hugin/ci/default/tree/CMakeModules/FindOpenEXR.cmake So at first glance, it seems like an update to vigra would be a first step. |
@ChrisOfBristol Be sure to pull the latest 2021.0 beta release, not the 2020.0 you are currently using. The latter does not support OpenEXR 3. |
Will do, thanks. |
I think you mean that this is needed for OpenEXR3 which can be used by Hugin. I will have to wait for the maintainer of vigra to do this update. |
Looking at your code, I don't spot that you are importing imath directly, so that would make it just a dependency for the other packages you are using. So my impression is that you will not need to specify ilmbase or imath yourself. |
So when vigra is updated, I can use OpenEXR3 which doesn't need ilmbase. I'll just have to stick with org.gnome.Platform runtime-version: "40" until that happens, as I'm not up to patching vigra. |
I've been able to create a patched version of vigra, but openexr (which is before vigra in the Flatpak) fails with
Because (as stated above) openexr 3 needs the update to vigra, I thought I might need to put vigra before openexr. That fails with
I don't know whether that is because something is missing from vigra and/or openexr, or because I'm trying to build vigra before openexr, or because I need to change the way they are compiled now. I write in Python, so as mentioned above, I'm guessing when trying to compile C++. |
That's two problems. Maybe look at the first problem first? It is saying that it can't find autogen or bootstrap. That means flatpak is trying to build OpenEXR using the old automake tools. Support for autoconf and all of that was removed in OpenEXR3 because we decided to only support cmake builds. So the necessary patch in the flatpak builder is that it needs to call CMake instead of autoconf. If you build OpenEXR first, the flatpak builder doesn't have to build OpenEXR, so the problem with it calling the old build system doesn't trigger. I think even if you build OpenEXR first by yourself, flatpak is going to be a little confused because it thinks that the build chain for vigra is described accurately in flatpak, but it isn't, because of that autoconf based OpenEXR 2 build. |
That was a mistake, I decided to leave the 2nd out but messed up the editing...
It doesn't refer to autoconf, perhaps that is the default. Other modules have vigra has I tried both of those statements they didn't like By not providing "FindImath.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Imath", but
CMake did not find one.
...
... |
That last message, about FindImath.cmake means that ImathConfig.cmake was not installed, or that if it was installed, it's not in a place that cmake knows how to look. Unfortunately I don't know anything about flatpak, and can't do much beyond telling you what the error messages mean. I wonder if there are any flatpak gurus to invite to this thread? |
meshula commented above:
Since that is not the case, I tried:
However it fails with:
|
I was mistaken when I said that sourceforget.net/projects/ooo-imath is an old fork of imath. It is a completely unrelated project with the same name, and coincidentally similar version numbers. The url for imath should refer to here, not that unrelated sourceforge project. |
That works, thanks, I'm glad I didn't go down the rabbit-hole with the other reference :). |
That's awesome, congrats on the crossing the first hurdle. Now that you have that working, perhaps it's time to try the vigra patch from the fedora website once more? https://src.fedoraproject.org/rpms/vigra/blob/rawhide/f/vigra-openexr3.patch |
That's beyond me, but someone suggested this:
Which works, but the compilation by the Flatpak module:
fails with both cmake and cmake-ninja with errors starting with:
and ending with:
|
The vigra CMakeLists.txt file DOES have a top level project() command, and the minimum required line, as do Imath, and OpenEXR. I wonder why it's emitting that message. Maybe the flatpak project is finding some other cmakelists.txt that is not the top level one. |
A good idea would probably be to build vigra directly first as an experiment in the way the vigra project is built natively without flatpak. If you can build it in the normal way, then at least you know it can be built. The next step would then be applying that knowledge to troubleshooting the flatpak build. by normal, I mean clone vigra into ${VDIR} then mkdir vigra-build; cd vigra-build
cmake ${VDIR} -DCMAKE_INSTALL_PREFIX=${OPENEXR_IMATH_INSTALLATION_DIR}
make install where ${VDIR} is the location you chose to put the source code, and ${OPENEXR_IMATH_INSTALLATION_DIR} is the directory that has the installed/compiled components, such as /usr/local, or wherever you chose. |
Good idea, I installed cmake and tried |
yes, that makes sense. |
Machine : M1 Mac mini
Version : 11.3.1 (20E241)
Terminal : iTerm2 3.4.6
Warning: Some installed formulae are deprecated or disabled.
You should find replacements for the following formulae:
ilmbase
The text was updated successfully, but these errors were encountered: