1

I need to use QGIS desktop, on a Linux box, to work with Oracle spatial. The past 2-3 QGIS versions (at least) for Windows came out of the box with Oracle support - unfortunately, this is not the case here (I can easily install qgis from either Ubuntu or Ubuntugis_unstable, but neither has Oracle support).

Background information:

uname -a

Linux GIS81 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

lsb_release -a

No LSB modules are available. Distributor ID: LinuxMint Description: Linux Mint 18.2 Sonya Release: 18.2 Codename: sonya

Oracle Instant client (basic+sql+SDK+...) is already installed and working (SQL connections) and its variables are exported:

echo $LD_LIBRARY_PATH

/home/ME/instantclient_12_2:/home/ME/instantclient_12_2/libclntsh.so.12.1:

echo $PATH

/home/ME/instantclient_12_2:/home/ME/bin:/home/ME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

I tried to follow the instructions in https://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html#toc11 , specifically 3.1 - 3.7 (3.8 is a separate process, which I also tried and failed) - in 3.3 I used the build dependencies for xenial.

Unfortunately, this official guide doesn't mention Oracle at all, so I searched and tried to use a process like https://lists.osgeo.org/pipermail/qgis-developer/2014-August/034230.html (and 3-4 others that I cannot paste, this being my very fist post) - which resulted in a heap of errors.

Being this my first attempt ever in compiling, I tried a rudimentary approach: Clean everything, revert the optional 3.4 step and try to build the official source, as-is.

So, from within /home/ME/dev/prj_qgis/QGIS/build-master :

ccmake -DWITH_QWTPOLAR=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/home/ME/apps/qgis/master ..

There was no error, so I followed with a make -j8

It ran for about 15', reaching as far as
[ 99%] Building CXX object src/plugins/grass/7/CMakeFiles/grassplugin7.dir/_ _/qtermwidget/moc_kptyprocess.cpp.o
[ 99%] Building CXX object src/plugins/grass/7/CMakeFiles/grassplugin7.dir/_ _/qtermwidget/moc_qtermwidget.cpp.o
[ 99%] Building CXX object src/plugins/grass/7/CMakeFiles/grassplugin7.dir/qrc_qgsgrass_plugin.cpp.o
Scanning dependencies of target translations
[ 99%] Generating ../output/i18n/qgis_ar.qm
[ 99%] Generating ../output/i18n/qgis_bg.qm
[ 99%] Generating ../output/i18n/qgis_bs.qm
[ 99%] Generating ../output/i18n/qgis_ca.qm
[ 99%] Generating ../output/i18n/qgis_cs.qm
[ 99%] Generating ../output/i18n/qgis_da.qm
[ 99%] Generating ../output/i18n/qgis_de.qm
[ 99%] Linking CXX shared module ../../../../output/lib/qgis/plugins/libgrassplugin7.so
[ 99%] Built target grassplugin7
[ 99%] Generating ../output/i18n/qgis_el.qm

at which point it stuck - 100% cpu, for > 20h. Next day I interrupted the process ^C and got the output:

i18n/CMakeFiles/translations.dir/build.make:97: recipe for target 'output/i18n/qgis_ar.qm' failed
make[2]: * [output/i18n/qgis_ar.qm] Interrupt
i18n/CMakeFiles/translations.dir/build.make:105: recipe for target 'output/i18n/qgis_bs.qm' failed
make[2]:
[output/i18n/qgis_bs.qm] Interrupt
i18n/CMakeFiles/translations.dir/build.make:109: recipe for target 'output/i18n/qgis_ca.qm' failed
make[2]:
[output/i18n/qgis_ca.qm] Interrupt
i18n/CMakeFiles/translations.dir/build.make:117: recipe for target 'output/i18n/qgis_da.qm' failed
make[2]:
[output/i18n/qgis_da.qm] Interrupt
i18n/CMakeFiles/translations.dir/build.make:121: recipe for target 'output/i18n/qgis_de.qm' failed
make[2]:
[output/i18n/qgis_de.qm] Interrupt
i18n/CMakeFiles/translations.dir/build.make:125: recipe for target 'output/i18n/qgis_el.qm' failed
make[2]:
[output/i18n/qgis_el.qm] Interrupt
i18n/CMakeFiles/translations.dir/build.make:113: recipe for target 'output/i18n/qgis_cs.qm' failed
make[2]:
[output/i18n/qgis_cs.qm] Interrupt
i18n/CMakeFiles/translations.dir/build.make:101: recipe for target 'output/i18n/qgis_bg.qm' failed
make[2]:
[output/i18n/qgis_bg.qm] Interrupt
CMakeFiles/Makefile2:4155: recipe for target 'i18n/CMakeFiles/translations.dir/all' failed
make[1]:
[i18n/CMakeFiles/translations.dir/all] Interrupt
Makefile:160: recipe for target 'all' failed
make: *
[all] Interrupt

I can't say if it is a coincidence or not, but "qgis_el.qm" seems to be related to my locale:

locale

LANG=en_GB.UTF-8
LANGUAGE=en_GB
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=el_GR.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=el_GR.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=el_GR.UTF-8
LC_NAME=el_GR.UTF-8
LC_ADDRESS=el_GR.UTF-8
LC_TELEPHONE=el_GR.UTF-8
LC_MEASUREMENT=el_GR.UTF-8
LC_IDENTIFICATION=el_GR.UTF-8
LC_ALL=

How can I complete this basic step successfully?

  • 1
    Have you tried to compile GDAL with Oracle support first? lists.osgeo.org/pipermail/gdal-dev/2013-April/036093.html I guess QGIS will not support it without recompiling GDAL. – AndreJ Sep 15 '17 at 17:13
  • Hi, thanks for the reply. Nice to know I'll probably need this step, I'll look into it. But right now I want to complete a 'vanilla' build... – GregStef Sep 15 '17 at 17:32
  • 1
    Using QGIS is certainly a GIS-specific task, but compiling it is more of a software development operation. You're far more likely to find compiler help in Stack Overflow proper. – Vince Sep 16 '17 at 3:14
  • @Vince Thanks for the pointer, [question has been asked] (stackoverflow.com/questions/46251410/…) – GregStef Sep 16 '17 at 7:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.