En/Trinity desktop environment 14.0.12

From Studiosg
Revision as of 14:44, 14 June 2022 by Wikiuser (talk | contribs) (Added article about TDE 14.0.12)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Welcome to Simone Giustetti's wiki pages.


Languages: English - Italiano


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:

Or the related change logs:

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 official announcement and in the release notes. More detailed info can be found in the 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:

   PKG_LIST_PRE01="cmake akode libr tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca libart-lgpl libcaldav libcarddav sip4-tqt"

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:

   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

The update impacts TDE 14.0.12 only, whoever needs or wishes to build libkdcraw 14.0.11 can follow two roads:

  1. Use the 14.0.12 script, hoping that CMake was already fully supported.
  2. Use the 14.0.10 script released within the 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:

   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

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:

   PKG_LIST_PRE02="tqscintilla python-tqt polkit-tqt"

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:

   PKG_LIST_PRE02="tqscintilla python-tqt"

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:

   PKG_LIST_BASE02="tdebindings tdeutils tdemultimedia tdeaccessibility tdenetwork tdeadmin tdeartwork tdegames tdetoys tdeedu
   tdegraphics tdepim tdesdk tdevelop tdeaddons tdewebdev"

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:

   # Add Trinity:
   if [ -r /etc/X11/xinit/xinitrc.trinity ]; then
      echo "\"xinitrc.trinity\" \"TDE: Trinity Desktop Environment\" \\" >> $TMP/tmpscript.sh
   fi

And a second one:

      -a ! "$file" = "xinitrc.trinity" -a ! "$file" = "xinitrc.trinity" \

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:

  1. Rename file rc.4.local.new, copied during installation to directory /etc/rc.d/ , in rc.4.local.
  2. Set execute permissions for the renamed file with command:
   chmod a+x /etc/rc.d/rc.4.local

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:

   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

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 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:

   # 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

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:

   PKG_LIST_PRE01="cmake akode libr tqt3 tqtinterface arts dbus-tqt dbus-1-tqt tqca libart-lgpl libcaldav libcarddav sip4-tqt"

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:

   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

Whoever needs or wishes to build tqscintilla 14.0.11 should use the script for 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: 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.
   init 3
  • Remove all of the previously installed TDE packages. For release 14.0.10 for example, the command is:
   removepkg /var/log/packages/*14.0.10*
  • Delete configuration scripts left over by the removepkg command.
   rm /etc/profile.d/tqt3.*
   rm /etc/profile.d/trinity.*
  • 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
      # Build package
   #   bash ./${PKG}.SlackBuild

into

      # Build package
      bash ./${PKG}.SlackBuild
  • Set the configuration options for the desired architecture.
   rm TDE.options
   ln -s TDE.options.i486 TDE.options

for 32 bit Intel, for example.

  • Move to directory tde_build_script/bin and run script TDE.SlackBuild.
   cd ./tde_build_script/bin
   sh ./TDE.SlackBuild
  • 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






Languages: English - Italiano