Changes

12,269 bytes added ,  20:45, 12 April 2015
Added page about the TDE 14.0.0 libraires build procedure
Welcome to Simone Giustetti's wiki pages.


Languages: '''English''' - [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_librerie Italiano]

----

== '''TDE Libraries''' ==
[[En/trinity_desktop_environment_14.0.0]]

Previous articles discussed building working '''Trinity Desktop Environment''' release 14.0.0 packages for Slackware 14.1 stable. Being a huge and complex project, TDE is made up of a large number of packages which are grouped in subsets for ease of use. This article will center on packages labeled '''Libraries''', which provide extensions for the base desktop environment adding functionality and plug-ins.

=== Build System ===

TDE origin was discussed in previous papers of the series along with the history of the build system used by the project for its releases. Packages were partly migrated to '''[http://www.cmake.org/ Cmake]''', but some still rely on '''Autotools''' and its usual configure scripts. The libraries sub-set is easy to manage as no package was migrated to Cmake yet. '''The build system all packages rely on is Autotools'''.

=== Custom Options ===

Before presenting each package and its specific build options, I'd like to point out that a general description of a SlackBuild script is available in page [[TDE_14.0.0_prerequisites#Common_Build_Script_Structure]]; for generic options used to build packages please consult page [[TDE_14.0.0_prerequisites#Generic_Options]]. Please refer to the package order provided in page [[En/trinity_desktop_environment_14.0.0#Build_order]] while building and installing packages in order to avoid errors, unexpected behavior and failures. Packages will be presented alphabetically and not in their build order.

==== KIPI-PLUGINS ====

'''Kipi Plugins''' includes a set of plug-ins for the '''libKipi''' library adding some functionality to image management programs and applications available in TDE: '''digiKam''', '''Gwenview''', '''KimDaBa''' and '''ShowImg'''. Plug-ins add new menus, keyboard shortcuts and optional features. Once installed plug-ins can be activated one by one in the configuration forms of the aforementioned programs. Building a working package for Slackware 14.1 requires installing a patch to solve a version mismatch issue for the '''libtool''' library:
'''patch''' ''-p0 -i'' ${SRCDIR}/ltmain_version_update.patch
Configuring the source code:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
${DEBUG_AUTOTOOL_OPT} \
''--libdir=''${LIBDIR} \
''--prefix=''${PREFIX} \
''--with-qt-dir=''${QTDIR} \
''--with-qt-includes=''${QTDIR}/include \
''--with-qt-libraries=''${QTDIR}/lib${LIBDIRSUFFIX}
Then invoking the '''make''' command to start the build procedure.

A compressed archive containing the SlackBuild script and the related configuration files can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1400/kipi-plugins.tar.gz link].

==== LIBKDCRAW ====

The '''Libkdcraw''' package includes a C++ interface library to the '''dcraw''' binary: a program to read images in RAW format. The library is used by '''digiKam''', '''kipi plug-ins''' and other TDE included image manipulation tools. Building a working package for Slackware 14.1 requires installing a patch to solve a version mismatch issue for the '''libtool''' library:
'''patch''' ''-p0 -i'' ${SRCDIR}/ltmain_version_update.patch
The package does not seem to support out of tree building therefore the lines of the script creating a dedicated directory should be commented out accordingly:
# Do not create a directory where to build source as out of tree building does
# not seem to be supported and fails complaining for missing files.
# cd ${TMP}/tmp-${PRGNAM}
# mkdir build
# cd build
Then go on configuring the source code:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
${DEBUG_AUTOTOOL_OPT} \
''--libdir=''${LIBDIR} \
''--prefix=''${PREFIX} \
''--with-qt-dir=''${QTDIR} \
''--with-qt-includes=''${QTDIR}/include \
''--with-qt-libraries=''${QTDIR}/lib${LIBDIRSUFFIX}
And invoking the '''make''' command to start the build procedure.

A compressed archive containing the SlackBuild script and the related configuration files can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1400/libkdcraw.tar.gz link].

==== LIBKEXIV2 ====

The '''Libkexiv2''' package includes an interface library to ease the use of '''Exiv2''': a library written to manage image metadata used by '''digiKam''', '''kipi plug-ins''' and other TDE included image manipulation tools. Building a working package for Slackware 14.1 requires installing a patch to solve a version mismatch issue for the '''libtool''' library:
'''patch''' ''-p0 -i'' ${SRCDIR}/ltmain_version_update.patch
Then configuring the source code:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
${DEBUG_AUTOTOOL_OPT} \
''--libdir=''${LIBDIR} \
''--prefix=''${PREFIX} \
''--with-qt-dir=''${QTDIR} \
''--with-qt-includes=''${QTDIR}/include \
''--with-qt-libraries=''${QTDIR}/lib${LIBDIRSUFFIX}
And invoking the '''make''' command to start the build procedure.

A compressed archive containing the SlackBuild script and the related configuration files can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1400/libkexiv2.tar.gz link].

==== LIBKIPI ====

'''Kipi''' is an effort to build a coherent and easy to use plug-in infrastructure to use with all of the TDE included graphic applications. Kipi architecture, named '''TDE Image Plugin Interface''', is based on the old digikam plug-in system and is used by '''digiKam''', '''Gwenview''', '''KimDaBa''' and '''ShowImg'''. Building a working package for Slackware 14.1 requires installing a patch to solve a version mismatch issue for the '''libtool''' library:
'''patch''' ''-p0 -i'' ${SRCDIR}/ltmain_version_update.patch
Configuring the source code:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
${DEBUG_AUTOTOOL_OPT} \
''--libdir=''${LIBDIR} \
''--prefix=''${PREFIX} \
''--with-qt-dir=''${QTDIR} \
''--with-qt-includes=''${QTDIR}/include \
''--with-qt-libraries=''${QTDIR}/lib${LIBDIRSUFFIX}
Then start the build procedure invoking the '''make''' command.

A compressed archive containing the SlackBuild script and the related configuration files can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1400/libkipi.tar.gz link].

==== LIBKSQUIRREL ====

The '''Ksquirrel''' libraries includes codecs for popular image file formats like: BMP, GIF, JPEG, PNG, PSD, TIFF and more. Building a working package for Slackware 14.1 requires installing a patch to solve a version mismatch issue for the '''libtool''' library:
'''patch''' ''-p0 -i'' ${SRCDIR}/ltmain_version_update.patch
The package does not seem to support out of tree building therefore the lines of the script creating a dedicated directory should be commented out accordingly:
# Do not create a directory where to build source as out of tree building does
# not seem to be supported and fails complaining for missing files.
# cd ${TMP}/tmp-${PRGNAM}
# mkdir build
# cd build
Then go on to configure the source code invoking the '''configure''' script with option '''--disable-dxf''':
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
${DEBUG_AUTOTOOL_OPT} \
''--disable-dxf'' \
''--libdir=''${LIBDIR} \
''--prefix=''${PREFIX}
And invoking the '''make''' command to start the build procedure.

A compressed archive containing the SlackBuild script and the related configuration files can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1400/libksquirrel.tar.gz link].

==== LIBTDELDAP ====

The '''Libtdeldap''' package adds LDAP protocol support to TDE. Building a working package for Slackware 14.1 requires installing a patch to solve a version mismatch issue for the '''libtool''' library:
'''patch''' ''-p0 -i'' ${SRCDIR}/ltmain_version_update.patch
Configuring the source code:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
${DEBUG_AUTOTOOL_OPT} \
''--prefix=''${PREFIX}
Then invoking the '''make''' command to start the build procedure.

A compressed archive containing the SlackBuild script and the related configuration files can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1400/libtdeldap.tar.gz link].

==== LIBTQT-PERL ====

The '''PerlTQt''' library interfaces '''[http://www.perl.it Perl]''', a diffused general purpose interpreted programming language, and the TQt library used to build TDE. The library can be used to write TDE integrated programs and scripts using the Perl 5 language. Building a working package for Slackware 14.1 requires installing a patch to solve a version mismatch issue for the '''libtool''' library:
'''patch''' ''-p0 -i'' ${SRCDIR}/ltmain_version_update.patch
Configuring the source code:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
${DEBUG_AUTOTOOL_OPT} \
''--prefix=''${PREFIX} \
''--with-qt-dir=''${PREFIX}
Then invoking the '''make''' command to start the build procedure.

A compressed archive containing the SlackBuild script and the related configuration files can be downloaded from the following [http://www.giustetti.net/resource/slackbuild/tde/1400/libtqt-perl.tar.gz link].

==== MLT ====

'''MLT''' is a software framework developed for television broadcasting. Sadly package building proved to be impossible. My first attempt compiling the source code extracted from its archive failed due to some include files missing: '''qimage.h''' for example. After checking for the file location I passed it explicitly to the compiler along the architecture specific options:
SLKCFLAGS="${SLKCFLAGS} ''-I''/usr/include/tqt ''-I''/usr/include/tqt/Qt ''-I''${PREFIX_TDE}/include"
The update proved to have no effect. I then updated the '''./libraries/mlt/src/modules/qimage/Makefile''' file replacing line:
CFLAGS+=-I../../
with:
CFLAGS+=-I../../ -I/usr/include/tqt -I/usr/include/tqt/Qt
This solved the issue temporarily as the build procedure failed shortly after reporting another missing include file: '''QtGui/qtransform.h''' which is not included in the '''TQt''' package, but in the '''Qt4''' one instead. Installing the Qt4 library solved the problem, replacing it with dozens of issues regarding the declaration of '''qtwrapper''' included structures and classes. In the end, realizing the Mlt library is affected by some TQt, Qt4 coexistence issues, I gave up on building the package waiting for the release of a proper patch or update from the developers.

==== MLT++ ====

This library is based on the previous one. Being unable to build a working package for Mlt I had to renounce to Mlt++ too.

=== Conclusions ===

The present paper discussed the procedure to build many libraries aimed at adding functionality to the '''Trinity Desktop Environment'''. Custom options were documented for each package and links for all of the used '''SlackBuild''' scripts were provided in the hope for them to be useful to '''Slackware Linux''' users wishing to give a try at building the desktop environment from scratch. All of the output packages can be found in the '''/tmp''' directory of Your machine and can be installed invoking the '''installpkg''' command standard in every Slackware distribution.


For any feedback, questions, errors and such, please e-mail me at ''studiosg [at] giustetti [dot] net''


External links

----

* [http://www.cmake.org Cmake home page]
* [http://www.perl.org Perl home page]
* [http://www.slackware.com Slackware home page]
* [http://www.trinitydesktop.org/ TDE home page]

----

Languages: '''English''' - [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_librerie Italiano]