diana:batch_diana_on_headless_systems

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
diana:batch_diana_on_headless_systems [2014-03-28 13:40:15]
davidb [Building Qt]
diana:batch_diana_on_headless_systems [2022-05-31 09:29:31] (current)
Line 10: Line 10:
 ===== Building Qt ===== ===== Building Qt =====
  
-We build an alternative set of Qt libraries using the standard Qt 4.8.1 sources, applying some patches and using an "embedded" configuration to remove the dependency on X. +We build an alternative set of Qt libraries using the standard Qt 4.8 sources, 
 +applying some patches and using an "embedded" configuration to remove the dependency on X. 
  
-The patches we use are part of the Debian packaging we use to build packages for Ubuntu 12.04These can be obtained from a git repository:+Packages were built with Qt4 versions 
 +  * 4.8.
 +  * [[http://download.qt-project.org/archive/qt/4.8/4.8.3/qt-everywhere-opensource-src-4.8.3.tar.gz|4.8.3]] 
 +  * [[http://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz|4.8.6]]
  
-<code> +The patches we use are part of the Debian packaging we use to build packages for Ubuntu 12.04 and 14.04. 
-git clone https://projects.met.no/~davidb/projects/qt4-headless/git qt4-headless +These can be obtained from [[https://github.com/metno/qt4-headless|github qt4-headless]]:
-</code>+
  
-The standard Debian package building process involves applying the patches found in the ''debian/patches'' directory to the Qt 4.8.1 sources then running the ''configure'' script in the way described in the ''debian/rules'' file.+  git clone https://github.com/metno/qt4-headless qt4-headless 
 +  # the branch 4.8-qpa contains the most recent patches (as of 2016-02-26) 
 +  git checkout 4.8-qpa
  
-If you are patching the files by hand then you should enter the sources directory and run a command of the following form on each of the patches in ascending numerical order; for example:+To build debian packages, we re-package the Qt4 source code to obtain the directory structure expected by the dpkg build tools, then extract the re-packaged source archive, copy in the ''debian'' directory from git git repository, and build packages with ''debuild'' or similar. 
 + 
 +Packages for some ubuntu releases are available from the [[https://launchpad.net/~met-norway/+archive/ubuntu/metapps|MET Norway PPA]]. 
 + 
 +==== Building on Other Distributions ==== 
 + 
 +If you are building on another distribution, you will need to patch the files by hand
 +Enter the Qt 4.8 source directory and run a command of the following form on each of the patches in ascending numerical order; for example:
  
 <code> <code>
Line 29: Line 41:
 patch -p1 < ../qt4-headless/debian/patches/metno_04_qpa.diff patch -p1 < ../qt4-headless/debian/patches/metno_04_qpa.diff
 </code> </code>
-===== Configuring Diana ===== 
  
-**//Note: This is a work in progressMore details to be added.//**+You can then run the configure script using the command given in the ''debian/rules'' file: 
 + 
 +<code> 
 +./configure -confirm-license -depths 16,32 -qpa dummy -qconfig wms \ 
 +            -exceptions -fast -glib -iconv -largefile -nis \ 
 +            -no-accessibility -no-audio-backend -no-cups -no-dbus \ 
 +            -no-declarative -no-declarative-debug -no-gfx-linuxfb \ 
 +            -no-gfx-multiscreen -no-javascript-jit -nomake demos \ 
 +            -nomake docs -nomake examples -nomake tests -nomake tools \ 
 +            -no-multimedia -no-opengl -no-phonon -no-phonon-backend \ 
 +            -no-qt3support -no-script -no-scripttools \ 
 +            -no-separate-debug-info -no-sql-ibase -no-sql-sqlite2 \ 
 +            -no-webkit -xmlpatterns -opensource -openssl \ 
 +            -optimized-qmake -pch -prefix-install -prefix /opt/qt4-headless \ 
 +            -release -rpath -shared -stl -svg -system-freetype \ 
 +            -no-libjpeg -no-libmng -system-libpng -no-libtiff -system-zlib 
 +</code> 
 + 
 +If this fails then you will need to provide the appropriate dependencies for your system. 
 + 
 +Once configured, build and install in the usual way: 
 + 
 +<code> 
 +make 
 +sudo make install 
 +</code> 
 + 
 +===== Configuring and Building Diana ===== 
 + 
 +Diana is typically only built for batch use on headless systems since the GUI is only useful when there is an attached display. This means that only the ''bdiana'' tool is built. The ''debian_bdiana'' directory supplied with the Diana sources contains information about the dependencies required for this configuration (in the ''control'' file) and the commands required to configure and build ''bdiana'' (in the ''rules'' file). 
 + 
 +Packages compiled for headless systems are available from the [[https://launchpad.net/~met-norway/+archive/ubuntu/metapps|MET Norway PPA]] for some ubuntu releases. 
 + 
 +==== Building on Other Distributions ==== 
 + 
 +Only a subset of the libraries mentioned on the [[autotools|Building Metlibs and Diana with Autotools]] page are requiredFollow the instructions there to build and install Fimex and the miLogger, puCtools, puTools, miRaster and diField libraries. 
 + 
 +Enter the Diana source directory, and configure, build and install ''bdiana'' with the following commands. Change the prefix option if you do not want to install the application under ''/usr/local'': 
 + 
 +<code> 
 +./autogen.sh 
 +./configure --disable-silent-rules \ 
 +            --prefix=/usr/local \ 
 +            --enable-obs-bufr \ 
 +            --enable-video-export \ 
 +            --enable-geotiff \ 
 +            --with-qt4=/opt/qt4-headless \ 
 +            --with-qt4-includedir=/opt/qt4-headless/include \ 
 +            --with-qt4-libdir=/opt/qt4-headless/lib \ 
 +            --with-qmake=/opt/qt4-headless/bin/qmake \ 
 +            --with-moc=/opt/qt4-headless/bin/moc \ 
 +            --with-rcc=/opt/qt4-headless/bin/rcc \ 
 +            --with-uic=/opt/qt4-headless/bin/uic \ 
 +            --with-lupdate=/opt/qt4-headless/bin/lupdate \ 
 +            --with-lrelease=/opt/qt4-headless/bin/lrelease \ 
 +            --enable-embedded \ 
 +            --enable-perl \ 
 +            --enable-batch-only 
 +make 
 +sudo make install 
 +</code> 
 + 
 +===== Next Steps ===== 
 + 
 +See the [[gettingstarted#installing_data_files|Installing Data Files]] section of the [[gettingstarted|Getting Started]] guide for instructions on how to install the data files that ''bdiana'' needs. 
 + 
 +//Optional:// See the [[python_bindings_for_diana_on_headless_systems|Python Bindings for Diana on Headless Systems]] for instructions on building software that can be used to create services based on Python and Diana. 
  • diana/batch_diana_on_headless_systems.1396014015.txt.gz
  • Last modified: 2022-05-31 09:23:14
  • (external edit)