diff --git a/cross-compiling-TDE-for-the-RPi3.html b/cross-compiling-TDE-for-the-RPi3.html index 0dd7b1a..13ffbb5 100755 --- a/cross-compiling-TDE-for-the-RPi3.html +++ b/cross-compiling-TDE-for-the-RPi3.html @@ -124,6 +124,8 @@ color:darkred;

Cross compile Trinity Desktop Environment [TDE] for the Raspberry Pi3

+

https://ray-v.github.io/TDE-aarch64-gui.png... a TDE desktop, cross compiled for aarch64, running on a RPi3.
+

This is based on the tde-slackbuilds build scripts which are used for a native RPi3 build.
Builds have been done for the RPi3 running systems based on Slackware-arm-current [hard float], and Slarm64, with both systems using a 64-bit kernel built here. @@ -141,25 +143,25 @@ Of the methods available for compiling TDE for the RPi3, I've tried three:

All methods work, but usually speed of compilation is the determining factor for which to choose.

-Compared to a native x86_64 build on my T500, the build times are typically: +Compared to a native x86_64 build, the build times are typically:
1] x3+
2] x10 - all binaries used here have to run through qemu
3] +25% typically - using a mix of x86_64 and arm binaries, the use of qemu can be minimized.
     For example, tqmoc is used extensively and as it builds arch independent output, the x86_64 version can be used.

The build order is: -
1] Build the cross compiler -
2] Build 64-bit kernel -
3] Build qemu -
4] Set up the build environment with tqmoc and meinproc x86 binaries -
5] Build the required TDE packages and install them to / and sysroot -
6] Build other TDE packages +
1] the cross compiler +
2] a 64-bit kernel +
3] qemu +
4] set up the build environment with tqmoc and meinproc x86 binaries +
5] the required TDE packages and install them to / and sysroot +
6] other packages
Options include packaging, 64-bit kernel and its components, imlib, …

To aid trouble shooting, this page has been set up so that each build can be run by selecting the contents in part or whole and pasting into a console.

TDE build environment
-This will be the build setup, and eventual installation, for the cross-compiler and sysroot.
+This will be the build setup for the cross-compiler and sysroot.
The intention is that as much as possible that is required for the TDE cross compilation is contained within one directory and can be installed/mounted only when required.
♦♦ sysroot libs and headers can be permanently installed within the cross-compiler tree or bind mounted from another media or directory.
♦ only TDE packages required for building other TDE apps will be installed. @@ -185,11 +187,13 @@ The intention is that as much as possible that is required for the TDE cross com │      └── trinity ♦ for TDE headers and libraries for pkg-config └── trinity ♦ for TDE executables used during TDE builds

+Source archives +
The source archives need to be downloaded and placed in the src directory -
-For the official release, R series, download from https://mirror.ppa.trinitydesktop.org/trinity/releases/ +For the official release, R series, download from https://mirror.ppa.trinitydesktop.org/trinity/releases/
-For the snapshot release, r series, download https://git.trinitydesktop.org/cgit/<package>/snapshot/<package>-r14.0.*.tar.gz +For the snapshot release, r series, download https://git.trinitydesktop.org/cgit/<package>/snapshot/<package>-r14.0.*.tar.gz

Build in a chroot?
Yes if:
@@ -465,7 +469,7 @@ makepkg -l y -c n /tmp/kernel-modules-$K_VER-RPi-arm64.txz) rm -rf /tmp/modules Installation -As detailed in Exaga's article, install the kernel [Image] as kernel8.img, and dtbs, to the microSD card boot partition; and the modules to the OS partition. +As detailed in Exaga's article, install the dtbs and the kernel [Image ⇒ kernel8.img] to the microSD card boot partition; and the modules to the OS partition. close @@ -621,7 +625,7 @@ export SYSROOT_REPO=/path_to_[Slackware_arm_current/Slarm6 export LD_LIBRARY_PATH=$SYSROOT$TQTDIR/lib:$XGCC_DIR/$HOST/lib$LIBDIRSUFFIX ## The arm libs and headers needed for cross compiling need to be installed in SYSROOT. -## I've used packages from Slarm64 for the 64-bit build. +## Packages from Slarm64 have been used for the 64-bit build. ## They can be [1] directly installed to $SYSROOT if the cross compiler is to be a permanent addition to the system, otherwise [2] installed to a directory [$SYSROOT_REPO] which is bind-mounted to $SYSROOT: ## [2]: mkdir -p $SYSROOT_REPO @@ -774,7 +778,7 @@ export PKG_CONFIG_LIBDIR=$SYSROOT/usr/lib$LIBDIRSUFFIX/pkgconfig:$SYSROOT/usr/sh { cd $TMP/tmp-$PRGNAM tar xf $SYSROOT/src/$PRGNAM-$VERSION.tar.* -## cd - the former for 'R' releases, the latter for 'r' from git and misc .. +## cd - the former for 'R' releases; the latter for 'r' from git, and misc .. cd ${SUB_DIR:-}$PRGNAM 2>/dev/null || { cd $PRGNAM-$VERSION [[ -d admin ]] && tar xf $SYSROOT/src/admin-$VERSION.tar.* -C admin --strip-components=1 @@ -836,7 +840,7 @@ make -f admin/Makefile.common FindTQt-patch_fn () { ## allow tqmoc path to be pre-defined -## https://mirror.git.trinitydesktop.org/gitea/TDE/tde-common-cmake/issues/29 +## Ref: https://mirror.git.trinitydesktop.org/gitea/TDE/tde-common-cmake/issues/29 ## commit cf2e8d2857 echo $'--- cmake/modules/FindTQt.cmake +++ cmake/modules/FindTQt.cmake @@ -2376,6 +2380,96 @@ makepkg_fn +

+ + +
+… tdeartwork   + +

close + +cd / +PRGNAM=tdeartwork +VERSION=$TDE_VERSION +BUILD=$BUILD +TMP=/tmp/build +rm -rf $TMP +PKG=$TMP/package-$PRGNAM +OUTPUT=/tmp +mkdir -p $PKG +mkdir $TMP/tmp-$PRGNAM + +SUB_DIR="" +untar_fn + +chown_fn + +FindTQt-patch_fn + +cd_builddir_fn + +## rm -rf $TMP/tmp-$PRGNAM/$SUB_DIR$PRGNAM/build-$PRGNAM/* +cmake-toolchain_fn + cmake \ + -D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \ + -D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \ + -D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \ + -DCMAKE_C_FLAGS:STRING=$SLKCFLAGS \ + -DCMAKE_CXX_FLAGS:STRING=$SLKCFLAGS \ + -DCMAKE_C_FLAGS_RELEASE:STRING=$SLKCFLAGS \ + -DCMAKE_CXX_FLAGS_RELEASE:STRING=$SLKCFLAGS \ + -DCMAKE_C_COMPILER=$COMPILER \ + -DCMAKE_CXX_COMPILER=$COMPILER_CXX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \ + -DSYSCONF_INSTALL_DIR=$SYS_CNF_DIR \ + -DMAN_INSTALL_DIR=$INSTALL_TDE/man \ + -DLIB_SUFFIX=$LIBDIRSUFFIX \ + -DWITH_ARTS="ON" \ + -DWITH_XSCREENSAVER="OFF" \ + -DBUILD_ALL="ON" \ + -Wno-dev \ + .. + +make $NUMJOBS +make DESTDIR=$PKG install + +strip_fn + +mkdir_install_fn + +cat <<EOINS >> $PKG/install/doinst.sh +# Update the desktop database: +if [ -x usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database $INSTALL_TDE/share/applications > /dev/null 2>&1 +fi + +# Update hicolor theme cache: +if [ -d usr/share/icons/hicolor ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + chroot . /usr/bin/gtk-update-icon-cache -f -t $INSTALL_TDE/share/icons/hicolor 1> /dev/null 2> /dev/null + fi +fi + +# Update the mime database: +if [ -x usr/bin/update-mime-database ]; then + chroot . /usr/bin/update-mime-database $INSTALL_TDE/share/mime >/dev/null 2>&1 +fi +EOINS + +makepkg_fn + +## don't need to install this +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz + + +close +
+
+ + +

@@ -3491,6 +3585,7 @@ git checkout gh-pages

tdebase

… tdeaddons

… tdeutils +

… tdeartwork

imlib

… tdegraphics

… tdeadmin