Wrong libjpeg version on Ubuntu 16.04


(David Stevenson) #1

I have had to compile RT from source, as I can’t find any way of passing command line parameters into the AppImage to control it’s operation (is there a way?).

I compiled according to instructions here http://rawpedia.rawtherapee.com/Linux#The_Automatic_Way

However, when I start RT, either via GUI or cli, I get an error that I have “Wrong JPEG library version: library is 90, caller expects 80” and it core dumps. I have checked the dependencies using ldd, and both libjpeg.9 and libjpeg.8 are installed (but I have lots of graphics software installed, so that’s probably not a surprise). Can I manually set the library version to avoid reimaging?

Thanks,


(Mica) #2

So far as I am aware, the AppImage has everything bundled that it needs. There is not a way to pass parameters to it.

Are you trying to build the AppImage or build RT on your system? It isn’t clear.


(Ingo Weyrich) #3

Did you try rawtherapee-cli ?


(David Stevenson) #4

Yes, same problem with versions as with the GUI.


(David Stevenson) #5

Hi Mica, I am trying to build RT on my system (as I need to use command line parameters, which rules out using the AppImage). RT builds fine, it’s at runtime it fails.


(Glenn Butcher) #6

Probably more a message for the devs, but I found that using the AppRun script from the AppImage github passes command line parameters to my program transparently, and relative paths start from ./ . I haven’t picked it apart yet to see what it does, but I can’t argue with the results…


(Carmelo Dr Raw) #7

Which parameters are you trying to pass? It should work… if not, it’s a bug somewhere that we must fix.


(Morgan Hardwood) #8

@Stevod we may be able to spot a problem if you delete your compiled RT, delete your cloned source-code, then redo “The Automatic Way” and paste the full console log (you can use https://paste.ee/ ). It must be a full log, from the moment you type “wget” to get the build script, till the very end when you try to run RT.


(David Stevenson) #9

I can successfully open the Appimage with a filename on the command line, and it looks as though the only command line options are folder or file. However, in this case I want to run unnattended processing of images under script control i.e. pass in both the input, output and profile file names, which presumably isn’t supported on appimage. Sounds as though I need the CLI. I’ll try morgan’s suggestion


(Carmelo Dr Raw) #10

Indeed, the appimage only runs the GUI version, and cannot run the CLI one. However, we might try to find a way to support the CLI version as well if there is a need for it…


(David Stevenson) #11

@morgan I have tried to delete/re-install many times since your suggestion, but I am unable to re-install, which is funny as the build worked the first time. Any ideas why? I tried reinstalling anaconda- that didn’t help

$ ./build-rawtherapee

Program name: rawtherapee
Build type: release
Build without updating: false

-- CMAKE_BUILD_TYPE: release
-- Configuring done
-- Generating done
-- Build files have been written to: /home/<user>/programs/code-rawtherapee/build
[  0%] Creating AboutThisBuild.txt and other version-dependent files
-- git command found: /usr/bin/git
-- Git checkout information:
-- 	Commit description:	5.4-332-g93b3f07
-- 	Branch:			dev
-- 	Commit:			93b3f07
-- 	Commit date:		2018-05-31
-- 	Commits since tag:	332
-- 	Commits since branch:	332
-- 	Version (unreliable):	5.4.332
-- CACHE_NAME_SUFFIX is "5-dev"
[  0%] Built target UpdateInfo
[  5%] Built target rtexif
[ 41%] Built target rtengine
[ 45%] Built target rth-cli
[ 45%] Linking CXX executable rawtherapee
/home/user/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `pango_font_description_get_variations'
/home/user/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `pango_font_description_set_variations'
collect2: error: ld returned 1 exit status
rtgui/CMakeFiles/rth.dir/build.make:3801: recipe for target 'rtgui/rawtherapee' failed
make[2]: *** [rtgui/rawtherapee] Error 1
CMakeFiles/Makefile2:237: recipe for target 'rtgui/CMakeFiles/rth.dir/all' failed
make[1]: *** [rtgui/CMakeFiles/rth.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

(Morgan Hardwood) #12

@Stevod I will only help if you follow instructions.


(David Stevenson) #13

@Morgan_Hardwood Understood, and I appreciate your help. Full log at https://paste.ee/p/w6ZaO#HTKtR1SThpSRlZwhIPfduvkgFZQCPgUF.

I have changed the user/host name consistently throughout this log for security reasons - I work in cyber-security.
I trust that won’t affect your assessment.


(Morgan Hardwood) #14

Changing the username is fine.

I will comment as I read through the log:

  1. You downloaded the build-rawtherapee script as build-rawtherapee.1 because an older version existed, and you subsequently ran the older version, not the newly-downloaded one. I have now updated RawPedia to make wget overwrite existing files to prevent this situation.
  2. I started off by requesting that you delete all existing attempts. This has not been done. The script was not deleted, the cloned source code was not deleted, and the build folder was not deleted. I’ll end here.

(David Stevenson) #15

@Morgan_Hardwood I’m really sorry, but as far as I was aware, I was doing everything you asked, including the deletions. I’ve posted the terminal below, as it;s fairly short.

I have now put all the commands into a bash script build_rt_from_src.sh which is:

#!/bin/bash
cd ~
rm -rf program
rm build-rawtherapee
rm rt_install.txt
wget https://raw.githubusercontent.com/Beep6581/RawTherapee/dev/tools/build-rawtherapee >> rt_install.txt
chmod +x build-rawtherapee >> rt_install.txt
./build-rawtherapee >> rt_install.txt

When I run this script, the output is:

user@MD30-RS0-XX:~$ ./build_rt_from_src.sh
--2018-06-02 21:11:18--  https://raw.githubusercontent.com/Beep6581/RawTherapee/dev/tools/build-rawtherapee
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.16.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.16.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4373 (4.3K) [text/plain]
Saving to: ‘build-rawtherapee’

build-rawtherapee                                                                        100%[===============================================================================================================================================================================================================================>]   4.27K  --.-KB/s    in 0s      

2018-06-02 21:11:18 (34.1 MB/s) - ‘build-rawtherapee’ saved [4373/4373]

/home/user/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `pango_font_description_get_variations'
/home/user/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `pango_font_description_set_variations'
collect2: error: ld returned 1 exit status
make[2]: *** [rtgui/rawtherapee] Error 1
make[1]: *** [rtgui/CMakeFiles/rth.dir/all] Error 2
make: *** [all] Error 2

The file rt_output.txt is:
user@MD30-RS0-XX:~$ more rt_install.txt

Program name: rawtherapee
Build type: release
Build without updating: false

-- CMAKE_BUILD_TYPE: release
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/programs/code-rawtherapee/build
[  0%] Creating AboutThisBuild.txt and other version-dependent files
-- git command found: /usr/bin/git
-- Git checkout information:
-- 	Commit description:	5.4-337-g8b23546
-- 	Branch:			dev
-- 	Commit:			8b23546
-- 	Commit date:		2018-06-02
-- 	Commits since tag:	337
-- 	Commits since branch:	337
-- 	Version (unreliable):	5.4.337
-- CACHE_NAME_SUFFIX is "5-dev"
[  0%] Built target UpdateInfo
[  5%] Built target rtexif
[ 41%] Built target rtengine
[ 45%] Built target rth-cli
[ 45%] Linking CXX executable rawtherapee
rtgui/CMakeFiles/rth.dir/build.make:3801: recipe for target 'rtgui/rawtherapee' failed
CMakeFiles/Makefile2:237: recipe for target 'rtgui/CMakeFiles/rth.dir/all' failed
Makefile:127: recipe for target 'all' failed

(Morgan Hardwood) #16

@Stevod ok, apologies if I was too hard.

The results of previous attempts are not being deleted, so try this:

rm -rv --interactive=once ~/programs/code-rawtherapee

Then proceed with http://rawpedia.rawtherapee.com/Linux#The_Automatic_Way

Don’t do the >> rt_install.txt stuff, it doesn’t do what you think it does.

If anything goes wrong, please past the full log - from the rm command till the end. Copy the log by using “select all” in your console program and then “copy”.


(David Stevenson) #17

@Morgan_Hardwood Morgan, It’s quite all right - I’m just glad of your expertise and willingness to help.

Here’s the Select All/Copy version of the output.

I hope that may shed some light. Unfortunately, the MATE terminal that i use only stores a certain number of rows as it scrolls, and hence the top is truncated - that’s why I was trying to redirect the output in the script to collect all of it. Hopefully this is enough though

Many thanks
Stevod

EDIT: I figured out how to increase the scroll history on MATE terminal, but it doesn’t add much


(Morgan Hardwood) #18

@Stevod great, now the log is good. It shows that everything went well on the RT side of things. Your system libraries seem to be recent-enough.

Pango is a text layout engine used by GTK+. Linking failing at this point could mean that either your version of pango is too old, or it’s broken. I don’t think it’s too old (though I don’t know how to reliably check. I’m using pango-1.40.14 and pangomm-2.40.1), which leads me to think that it’s broken.

You could try these generic steps (at your own risk - if your system is broken, these steps might help, or they might make it worse if Ubuntu’s upgrade tools don’t work well). I will add that I’ve compiled RawTherapee on all versions of Ubuntu since 10.10 in a virtual machine while updating the Linux installation instructions in RawPedia, but I don’t use Ubuntu otherwise.

  1. Upgrade your system.
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade
    
  2. Run a system integrity checker, to check for broken packages and missing dependencies. According to this post, the Ubuntu command is:
    sudo apt-get --fix-broken install
    
  3. Reinstall pango:
    sudo apt install --reinstall libpango libpangomm
    
  4. I would reinstall all the other dependencies (especially GTK+):
    sudo apt install --reinstall build-essential cmake curl git libcanberra-gtk3-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk-3-dev libgtkmm-3.0-dev libiptcdata0-dev libjpeg-dev liblcms2-dev liblensfun-dev libpng-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev
    
  5. Retry compilation. It’s enough to delete just the build folder.
    rm -rvI ~/programs/code-rawtherapee/build
    ./build-rawtherapee
    

(David Stevenson) #19

Thanks @Morgan_Hardwood. I have followed your instruction almost to the letter (I had to provide the version numbers as libpango-1.0-0, libpangomm-1.4-1v5 and libpangoft2-1.0-0, and I reinstalled the latter after the first two re-installs didn’t solve the problem.

Unfortunately. I still have the same issue:

[100%] Linking CXX executable rawtherapee
/home/kloak/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to pango_font_description_get_variations' /home/kloak/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference topango_font_description_set_variations’
collect2: error: ld returned 1 exit status
rtgui/CMakeFiles/rth.dir/build.make:3801: recipe for target ‘rtgui/rawtherapee’ failed
make[2]: *** [rtgui/rawtherapee] Error 1
CMakeFiles/Makefile2:237: recipe for target ‘rtgui/CMakeFiles/rth.dir/all’ failed
make[1]: *** [rtgui/CMakeFiles/rth.dir/all] Error 2
Makefile:127: recipe for target ‘all’ failed
make: *** [all] Error 2


(Morgan Hardwood) #20

I’m afraid I can’t help further, maybe someone else has an idea.