Changes

Added article about TDE 14.0.12
{{header_en|title=Installing TDE 14.0.12 on Slackware / SlackwareArm Linux 15.0 | keyword={{Template:keyword_en_tde}} | description=Building, installing and configuring working TDE 14.0.12 packages on Slackware / SlackwareArm Linux 15.0 | link_page=trinity_desktop_environment_14.0.12}}

== '''TDE 14.0.11 / 14.0.12 and Slackware 15.0''' ==

The past few months were very eventful ones for the '''TDE''' and '''Slackware Linux''' user base. The graphical environment released two updates for his 14.0 stable branch in a few months, but even more exiting was the official release of '''Slackware 15.0''', concluding a five year long development cycle. Both releases bring forth many new features, bug corrections, new libraries and programs and a lot more small changes here and there. For a full list of changes to the '''Trinity Desktop Environment''', please consult the release notes:
* [https://wiki.trinitydesktop.org/Release_Notes_For_R14.0.11 14.0.11 release notes].
* [https://wiki.trinitydesktop.org/Release_Notes_For_R14.0.12 14.0.12 release notes].
Or the related change logs:
* [https://wiki.trinitydesktop.org/Changelog_For_R14.0.11 Full change log for the 14.0.11 release].
* [https://wiki.trinitydesktop.org/Changelog_For_R14.0.12 Full change log for the 14.0.12 release].
A change welcomed by developers consists of the move to '''C++ 11''' as the '''minimum supported version''' of the programming language, introduced with TDE 14.0.12. The main new features included in Slackware 15.0 are listed in the [http://www.slackware.com/announce/15.0.php official announcement] and in the [http://www.slackware.com/releasenotes/15.0.php release notes]. More detailed info can be found in the [http://www.slackware.com project web site].

=== What's New ===
Regarding Slackware, many features and changes were introduced, impacting every part of the system. All of the tools required to build and run TDE are still part of the base system, thus the graphical environment remains unaffected by the operating system upgrade. Releases 11 and 12 are debug ones and don't introduce any shakeup to the graphical environment, but rather bug corrections and small updates meant to modernize the project without breaking anything important. '''The main changes in TDE 14.0.11 and 14.0.12 will be described in the following lines'''. Both versions will be discussed together because, thanks to the overlapping release cycles: TDE 14.0.11, Slackware 15.0, TDE 14.0.12, there was no way to do otherwise without a significant delay in introducing '''Trinity Desktop Environment 14.0.12'''.

=== Akode ===
The list of files to copy in directory ''/usr/doc/akode-trinity-14.0.11'' was updated. This is a minor update that prevents an error from arising during package build, but does not touch the package or the programs within otherwise.

=== Cmake ===
The Trinity Desktop Environment includes a small amount of CMake, the project build software, macros and shared scripts. The code is shared by almost all of the project packages. Previously to 14.0.11, macros were copied in the source code of every package for every release. The source code is very stable and requires small maintenance work, the custom copy was abandoned with release 14.0.11 in favor of a '''new dedicated package'''. The newly introduced '''cmake''' package should be built and installed before any other due to its ubiquitous nature that makes it a dependency for anything else. The cmake build script was added to the '''prerequisite''' directory of the build tree:
├── prerequisite
│ ├── akode
│ │ ├── akode.SlackBuild
│ │ ├── local.options
│ │ └── slack-desc
...
│ ├── '''cmake'''
│ │ '''├── cmake.SlackBuild'''
│ │ '''├── local.options'''
│ │ '''└── slack-desc'''
│ ├── dbus-1-tqt
...

And the prerequisite list of packages in the main script: '''TDE.SlackBuild''' was updated as follows:
<syntaxhighlight lang="bash">
PKG_LIST_PRE01="cmake akode libr tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca libart-lgpl libcaldav libcarddav sip4-tqt"
</syntaxhighlight>

The commands for a Trinity Desktop Environment full build do not change from the past. Distribute source code archive files among the build tree directories, run the main script and the build procedure will automatically take into account the newly introduced package.

=== Libkdcraw ===
One of the main goals pursued by Trinity Desktop Environment developers consists of '''adopting the CMake build tool'''. The '''AutoTools''' to '''CMake''' package migration has been carried out with perseverance over the years and now very few still use ''' Autotools'''. One of the last, the '''libkdcraw''' library, was converted with the 14.0.12 release of TDE. The SlackBuild script was updated accordingly, removing any reference to '''Autotools''' and setting the following compilation options:
<syntaxhighlight lang="bash">
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCONFIG_INSTALL_DIR=${SYSCONFDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \
-DCMAKE_BUILD_TYPE="RelWithDebInfo" \
-DCMAKE_VERBOSE_MAKEFILE="ON" \
-DCMAKE_SKIP_RPATH="OFF" \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DBUILD_ALL="ON" \
-DWITH_ALL_OPTIONS="ON" \
2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

The update impacts TDE 14.0.12 only, whoever needs or wishes to build libkdcraw 14.0.11 can follow two roads:
# Use the 14.0.12 script, hoping that CMake was already fully supported.
# Use the 14.0.10 script released within the [http://www.giustetti.net/resource/slackbuild/tde/14010/tde_build_tree_sg-14.0.10.tar.bz2 14.0.10 build tree], available in the pages of this web site.

=== Libexiv2 ===
The list of files to copy in directory ''/usr/doc/libexiv2-trinity-14.0.11'' was updated. This is a minor update that prevents an error from arising during package build, but does not touch the package or the library binaries within otherwise.

=== Libtdeldap ===
The list of files to copy in directory ''/usr/doc/libtdeldap-trinity-14.0.11'' was updated. This is a minor update that prevents an error from arising during package build, but does not touch the package or the library binaries within otherwise.

=== Polkit-tqt ===
A '''new package''' was added to the list with TDE 14.0.12: '''polkit-tqt'''. Polkit-tqt is a library that lets developers use the '''PolicyKit API''' through a nice TQt-styled API. Polkit-tqt requires a minimal graphic environment to build. A script and related resources required to package polkit-tqt were added to the '''prerequisite''' directory of the build tree:
├── prerequisite
│ ├── akode
│ │ ├── akode.SlackBuild
│ │ ├── local.options
│ │ └── slack-desc
...
│ ├── '''polkit-tqt'''
│ ├── '''local.options'''
│ │ '''├── local.options'''
│ │ '''├── polkit-tqt.SlackBuild'''
│ │ '''└── slack-desc'''
│ ├── python-tqt
...

The new package requires the '''CMake''' build software. The SlackBuild script was written accordingly, setting some options shared by the remaining packages of the project, for homogeneity reasons mainly:
<syntaxhighlight lang="bash">
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_INSTALL_DIR="${PREFIX}/bin" \
-DCMAKE_SKIP_RPATH="OFF" \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_ALL=ON \
-DWITH_ALL_OPTIONS="ON" \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

To solve the TDE requirement, the call to the polkit-tqt build script was scheduled after the installation of '''tdelibs''' and '''tdebase''', adding polkit-tqt to the second list of prerequisites:
<syntaxhighlight lang="bash">
PKG_LIST_PRE02="tqscintilla python-tqt polkit-tqt"
</syntaxhighlight>

The updated build schedule guarantees that the build procedure will take the newly added package into account automatically, with no further human intervention required.

Polkit-tqt was introduced with TDE 14.0.12 only. Whoever needs or wishes to build TDE 14.0.11 should therefore remove it from the list, updating the lines of code shown above in:
<syntaxhighlight lang="bash">
PKG_LIST_PRE02="tqscintilla python-tqt"
</syntaxhighlight>

to avoid an error triggered by the missing directory, resources and script.

=== Tdeaccessibility ===
The build order of the TDE base packages was changed moving '''tdeaccessibility''' after '''tdemultimedia''' to avoid an error while building the package. With the old order, the compiler lamented some missing header files. This appears to be a new dependency introduced with Trinity Desktop Environment 14.0.11. to avoid any issue, the new order was set:
<syntaxhighlight lang="bash">
PKG_LIST_BASE02="tdebindings tdeutils tdemultimedia tdeaccessibility tdenetwork tdeadmin tdeartwork tdegames tdetoys tdeedu
tdegraphics tdepim tdesdk tdevelop tdeaddons tdewebdev"
</syntaxhighlight>

No further action is required when building the package set.

=== Tdebase ===
The '''tdebase''' package underwent some changes from the past. One of its included scripts, '''xwmconfig''', was updated to match its newer version, shipped with Slackware 15.0. The script underwent some changes to include the proper configuration of the Trinity Desktop Environment, adding the code required to show an option for the graphical environment when configuration program '''pkgtool''' is run:
<syntaxhighlight lang="bash">
# Add Trinity:
if [ -r /etc/X11/xinit/xinitrc.trinity ]; then
echo "\"xinitrc.trinity\" \"TDE: Trinity Desktop Environment\" \\" >> $TMP/tmpscript.sh
fi
</syntaxhighlight>

And a second one:
<syntaxhighlight lang="bash">
-a ! "$file" = "xinitrc.trinity" -a ! "$file" = "xinitrc.trinity" \
</syntaxhighlight>

to '''avoid a duplicate TDE option to show''', an issue that had been bugging my packages for many releases and is now finally solved for good.

The '''rc.4''' script was replaced by '''rc.4.local''', to comply with the new policy Slackware Linux 15.0 adopted. The standard '''rc.4''' script calls '''rc.4.local''' if it exists and has the execution bit set. The main gain this brings is to move every user customization out of the standard script, avoiding them to be overwritten and lost with every operating system upgrade. Whoever wishes to use '''tdm''', the TDE graphical login manager, should:
# Rename file ''rc.4.local.new'', copied during installation to directory ''/etc/rc.d/'' , in ''rc.4.local''.
# Set execute permissions for the renamed file with command:
<syntaxhighlight lang="bash">
chmod a+x /etc/rc.d/rc.4.local
</syntaxhighlight>

Lastly support for '''PAM''' is now enabled by default. This was impossible in the past because Pluggable Authentication Modules were not part of standard Slackware, but starting with 15.0 is possible at last. The full configuration command is shown below:
<syntaxhighlight lang="bash">
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_SKIP_RPATH="OFF" \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_CRASHTEST=ON \
-DWITH_ARTS=ON \
-DWITH_HAL=OFF \
-DWITH_LDAP=ON \
-DWITH_LIBRAW1394=ON \
-DWITH_OPENEXR=ON \
-DWITH_PAM=ON \
-DWITH_GCC_VISIBILITY=OFF \
-DWITH_SAMBA=ON \
-DWITH_SASL=ON \
-DWITH_SHADOW=ON \
-DWITH_TDEHWLIB=ON \
-DWITH_USBIDS="/usr/share/hwdata/usb.ids" \
-DWITH_XCOMPOSITE=ON \
-DWITH_XCURSOR=ON \
-DWITH_XDAMAGE=ON \
-DWITH_XDMCP=ON \
-DWITH_XEXT=ON \
-DWITH_XFIXES=ON \
-DWITH_XINERAMA=ON \
-DWITH_XRANDR=ON \
-DWITH_XRENDER=ON \
-DWITH_XTEST=ON \
-DBUILD_ALL=ON \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

=== Tdenetwork ===
A new dependency was introduced with TDE 14.0.11 to the '''tdenetwork''' source code, which includes some tools to configure and monitor a local network through a GUI. The mentioned dependency is [http://www.openslp.org '''OpenSLP''']: a free and libre implementation of the '''Internet Engineering Task Force (IETF)''' standards track protocol. Slackware Linux comes with no official package for '''OpenSLP'''. I usually prefer not to add unneeded dependencies that force users to build custom packages, if I can avoid it, thus I preferred to disable '''OpenSLP''' adding configuration option ''-DWITH_SLP=OFF'' when invoking CMake. The resulting command line is:
<syntaxhighlight lang="bash">
# Configure the package
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DWITH_SLP=OFF \
-DBUILD_ALL=ON \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

Whoever wishes to '''add OpenSLP support in tdenetwork''' should:
* Build and install an '''OpenSLP''' package.
* Update the '''tdenetwork.SlackBuild''' script removing the above mentioned option.
* Rebuild and upgrade the tdenetwork package.

=== Tqca-tls ===
The '''tqca-tls''' library includes some extensions to '''tqca''', adding cryptography and hash functions to the Trinity Desktop Environment. The two libraries were managed as independent entities in the past, bur merged definitively in a single one with TDE release 14.0.11. The build scripts were updated accordingly and everything concerning '''tqca-tls as an independent package was removed from the TDE build tree''' and every track deleted. After the removal, the main script, '''TDE.SlackBuild''', was updated removing any reference to the package:
<syntaxhighlight lang="bash">
PKG_LIST_PRE01="cmake akode libr tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca libart-lgpl libcaldav libcarddav sip4-tqt"
</syntaxhighlight>

=== Tqscintilla ===
Another package migrated from '''AutoTools''' to '''CMake''' with TDE 14.0.12 is '''tqscintilla''': a GUI control used for text editing code in TQt. The build software replacement made the patch used by the package to assign the correct installation directory useless, resulting in a simpler SlackBuild script. Apart from the usual gimmicks, the script was updated setting the following options:
<syntaxhighlight lang="bash">
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_SKIP_RPATH="OFF" \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_ALL="ON" \
2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log
</syntaxhighlight>

Whoever needs or wishes to build '''tqscintilla''' 14.0.11 should use the script for [http://www.giustetti.net/resource/slackbuild/tde/14010/tde_build_tree_sg-14.0.10.tar.bz2 the earlier 14.0.10 release], available in the pages of this web site.


== UPDATED BUILD TREE ==

Here is the link pointing to the build scripts packaged into a conveniently compressed archive: [http://www.giustetti.net/resource/slackbuild/tde/14012/tde_build_tree_sg-14.0.12.tar.bz2 tde_build_tree_sg-14.0.12.tar.bz2]. Please follow some basic instructions to use the build tree to its fullest:
* Download and decompress the archive.
* Distribute the source code, split in many compressed archives, among the proper directories. One archive with '''tar.xz''' extension for each directory.
* Enter '''runlevel 3'''.
<syntaxhighlight lang="bash">
init 3
</syntaxhighlight>

* Remove all of the previously installed TDE packages. For release 14.0.10 for example, the command is:
<syntaxhighlight lang="bash">
removepkg /var/log/packages/*14.0.10*
</syntaxhighlight>

* Delete configuration scripts left over by the '''removepkg''' command.
<syntaxhighlight lang="bash">
rm /etc/profile.d/tqt3.*
rm /etc/profile.d/trinity.*
</syntaxhighlight>

* Logout, then login again to ensure that all references pointing to TDE are removed.
* If you wish to build all of the localization packages together with the base ones, update the main build script '''tde_build_script/bin/TDE.SlackBuild''' turning lines
<syntaxhighlight lang="bash">
# Build package
# bash ./${PKG}.SlackBuild
</syntaxhighlight>

into
<syntaxhighlight lang="bash">
# Build package
bash ./${PKG}.SlackBuild
</syntaxhighlight>

* Set the configuration options for the desired architecture.
<syntaxhighlight lang="bash">
rm TDE.options
ln -s TDE.options.i486 TDE.options
</syntaxhighlight>

for 32 bit Intel, for example.

* Move to directory ''tde_build_script/bin'' and run script '''TDE.SlackBuild'''.
<syntaxhighlight lang="bash">
cd ./tde_build_script/bin
sh ./TDE.SlackBuild
</syntaxhighlight>

* Wait patiently for the script to conclude. Many hours are required for a Trinity Desktop Environment full build. The amount of time usually doubles if building localization file. The script will build and install automatically all of the GUI packages.
* Remove unwanted packages.


== CONCLUSIONS ==

This article provides a summary for the updates introduced in releases 14.0.11 and 14.0.12 of the '''Trinity Desktop Environment'''. The build scripts were updated, tested and collected in a compressed archive in order to ease their adoption and use. For more in depth instructions on the use of the scripts, please refer to the other articles available in this web site. '''Compiling, installing, configuration and testing were preformed on a desktop PC running Slackware Linux 15.0 for 64 and 32 bit Amd platform'''. In conclusion, the usual tanks to the '''Slackware Linux''' and '''Trinity Desktop Environment''' developers and maintainers for their hard work and passion.


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


External links
----

* [https://www.raspberrypi.org Raspberry Pi foundation home page]
* [https://www.wikipedia.org/wiki/Raspberry_Pi Raspberry Pi page in Wikipedia]
* [http://www.slackware.com Slackware home page]
* [http://arm.slackware.com Slackware Linux for the ARM architecture]
* [https://sarpi.fatdog.eu/ Unofficial Support page for Slackware and Raspberry Pi]
* [http://www.trinitydesktop.org TDE home page]
* [http://ftp.fau.de/trinity/releases/R14.0.12/downloads.html TDE download links]


----

{{footer_en | link_page=trinity_desktop_environment_14.0.12}}