Welcome to Simone Giustetti's wiki pages.
Languages: English - 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 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 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 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 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 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 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 link.
LIBTQT-PERL
The PerlTQt library interfaces 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 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
Languages: English - Italiano