You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging-slackware/cross-compiling-TDE-for-the...

4432 lines
224 KiB

6 years ago
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Cross compile Trinity Desktop Environment [TDE] for the Raspberry Pi3</title>
<!-- page -->
<style>
body {font:13px sans;max-width: 1000px;padding:0px 10px;margin: 0 auto; /* center page */}
.red {background-color: #FFdddd;}
.gray {background-color: #e7e7e7;}
.green {background-color: #FFD7F7;}
.thtwo {background-color: #Fafafa;border: dotted 1px;}
.thtwob {border: dotted 1px;}
.central {border: dashed 1px;display: inline-block;padding: 2px;}
.appx {background-color: #Fafafa;}
.bkslt {color: #dadada;}
6 years ago
.console {border-left: 3px solid lightgrey;margin-left: 15px;}
.dastx {color: #978DFF;}
.comment {color: #acacac;}
.off_rel {color: magenta;}
div {padding: 5px;white-space: pre-wrap;}
code {font-size:12px;padding: 5px;display: inline-block;white-space: pre-wrap;margin: 5px 0;}
pre {font-size:12px;}
div code {margin: 10px 0;}
a, a:visited {text-decoration: none;font-style: oblique;color: #0000c5;}
a.extlink, a:visited.extlink {color: #c50000;}
a.intlink, a:visited.intlink {color: #00c500;}
hr {width: 100%;height: 2px;}
</style>
<!-- pop-up buttons -->
<style type="text/css">
.b_locn {border-left: 10px solid #FFdddd;padding-left: 10px;}
.b_prefs {border-left: 10px solid #FFD7F7;padding-left: 10px;}
.b_32bit {border-left: 10px solid #Fafafa;padding-left: 10px;}
/* basic for close tab */
span.tabs a {box-shadow:1px 1px 3px gray; /* shift-horz|-vert|width|colour */
border-radius:6px;padding: 2px 4px;color:#0000c5;}
span.tabs.locn a {background-color:#FFdddd;}
span.tabs.prefs a {background-color:#FFD7F7;}
span.tabs.th2 a {background-color:#Fafafa;}
span.tabs.reqd a {background-color:#E5F1FF;}
span.tabs.opt a {background-color:#FFD7F7;}
div.tab {display: none;}
div.tab:target {display: block;}
:target div.tab {display: block;}
:target div.tab + div.tab {display: none;}
</style>
<!-- nav box
Thanks to http://www.websitecodetutorials.com/code/css-nav-menus/css3-mega-drop-down-menu.php -->
<style type="text/css">
#menu {
list-style:none;
font-weight:bold;
/* font-size: .85em;*/
}
#menu li {
position:fixed;
top:20;right:10;
background:none;
padding:5px 9px 0px 9px;
border:1px solid #e3e3e3;
border-radius:6px;
text-align:center;
z-index:1;
}
#menu a {display:block;}
/* ----------- Hide/Show Div ---------- */
#menu div {
position:fixed;
top:20;right:10;bottom:10;
max-height: 360px;
overflow-y: auto;
white-space: nowrap;
z-index:4;
border:1px solid #000;
font:14px;
font-weight:normal;
text-align:left;
box-shadow:0 2px 8px #000;
border-radius:6px;
-moz-transition: all .2s ease-in-out;
-webkit-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
-ms-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
visibility:hidden;
opacity:0;
}
/* ---- CSS3 Transform Fade In/Out ----- */
#menu li:hover div {
visibility:visible;
background:#fff;
opacity:1;
}
#menu div p {padding-right:20px;}
#menu div p a {
color:darkblue;
text-decoration:none;
clear:left;
line-height:1.1;
}
#menu div a:hover, #menu div a:focus, #menu div a:active {
text-decoration:none;
color:darkred;
}
/* print styling - no nav box */
@media print {#menu { display: none;} body, p, a {color:#000; background:#fff;}}
</style>
</head><body>
<br>
<h3> Cross compile Trinity Desktop Environment [TDE] for the Raspberry Pi3 </h3>
<p>
5 years ago
<div style="display:block;margin:auto;width:100%;max-width:600"><a class="extlink" href="https://ray-v.github.io/TDE-aarch64-gui.png"><img style="display:block;margin:auto;width:100%;max-width:600;max-height:338;" alt="https://ray-v.github.io/TDE-aarch64-gui.png" src="https://ray-v.github.io/TDE-aarch64-gui.png"></a>... a TDE desktop, cross compiled for aarch64, running on a RPi3.</div>
<p>
This is based on the <a class="extlink" href="https://github.com/Ray-V/tde-slackbuilds">tde-slackbuilds build scripts</a> which can be used for a native RPi3 build.
6 years ago
<br>
Builds have been done for the RPi3 running systems based on Slackware-arm-current [hard float], and <a class="extlink" href="http://dl.fail.pp.ua/slackware/slarm64-current/">Slarm64</a> [which can be downloaded from a mirror site, for example <a class="extlink" href="https://slackware.uk/slarm64/slarm64-current/slarm64/">slackware.uk</a>], with both systems using a 64-bit kernel built here.
6 years ago
<br>
The packages listed on this page have been built on an x86_64 machine and installed and tested OK on an RPi3.
<br>
[Edit: builds for R14.0.9 have been verified for 64-bit arm only].
<br>
For any problems, questions, etc please open an issue at <a class="extlink" href="https://github.com/Ray-V/tde-slackbuilds">tde-slackbuilds</a>.
6 years ago
<p>
Why cross-compile?
<p>
Of the methods available for compiling TDE for the RPi3, I've tried three:
<br>1] natively on the Pi itself
<br>2] in an arm chroot on a x86_64 machine
<br>3] cross compiling on a x86_64 machine using qemu/binfmt to run most of the TDE binaries required for the build
<p>
All methods work, but usually speed of compilation is the determining factor for which to choose.
<p>
5 years ago
Compared to a native x86_64 build, the build times are typically:
6 years ago
<br>1] x3+
<br>2] x10 - all binaries used here have to run through qemu
<br>3] +25% typically - using a mix of x86_64 and arm binaries, the use of qemu can be minimized.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For example, tqmoc is used extensively and as it builds arch independent output, the x86_64 version can be used.
<p>
The build order is:
5 years ago
<br>1] the cross compiler
<br>2] <span class="green">a 64-bit kernel</span>
<br>3] qemu
<br>4] set up the build environment with tqmoc and meinproc x86 binaries
<br>5] the <span style="background: #E5F1FF;">required</span> TDE packages and install them to / and sysroot
<br>6] other packages
<br> <span class="green">Options</span> include packaging, 64-bit kernel and its components, imlib, &hellip;
6 years ago
<p>
<span class="thtwo">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.</span>
<p>
<b>TDE build environment</b><br>
5 years ago
This will be the build setup for the cross-compiler and sysroot.<br>
6 years ago
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.<br>
&diamondsuit;&diamondsuit; sysroot libs and headers can be permanently installed within the cross-compiler tree or bind mounted from another media or directory.<br>
&diamondsuit; only TDE packages required for building other TDE apps will be installed.
6 years ago
<pre>/opt
├── cross-pi-gcc
│   ├── $TARGET
6 years ago
│   │   ├── bin
│   │   │   └── <span class="comment">ldd &hellip;</span>
│   │   └── lib
│   │      └── <span class="comment">ld-linux-*.so.* &hellip;</span>
6 years ago
│   ├── bin cross compiler
│   │   └── <span class="comment">$TARGET-gcc &hellip;</span>
│   └── sysroot &diamondsuit;&diamondsuit;
│      ├── lib$LIBDIRSUFFIX target libraries
6 years ago
│   ├── usr
│   │   ├── include target headers
6 years ago
│    │ │   └── linux kernel headers
│   │   └── lib$LIBDIRSUFFIX target libraries
6 years ago
│   ├── src source archives
│   ├── x86 x86 binaries - qemu-$ARM, meinproc, tqmoc
6 years ago
│   └── opt
│      └── tde &diamondsuit; for TDE headers and libraries for pkg-config
└── tde &diamondsuit; for TDE executables used during TDE builds</pre>
<p>
5 years ago
<b>Source archives</b>
<br>
The source archives need to be downloaded and placed in the src directory -
<br>
5 years ago
For the official release, R series, download from <a class="extlink" href="https://mirror.ppa.trinitydesktop.org/trinity/releases/">https://mirror.ppa.trinitydesktop.org/trinity/releases/</a>
6 years ago
<p>
<b>Build in a chroot?</b><br>
Yes if:<br>
&blacktriangleright; the TDE installation directory exists on the build system,<br>
&blacktriangleright; any of the packages being built exist on the build system, because they will be overwritten with arm versions.
<p>
Set <b>HOST</b> for a 32-bit [armv7] or 64-bit [aarch64] build for the host system - RPi3 - for the TDE builds which use the autotools differentiation between build, host and target.
6 years ago
<br>
<code class="thtwob"><span class="dastx">##</span> <b>32-bit</b> - only tested for a hard float build
<code class="thtwo">export HOST="arm-linux-gnueabihf"
</code>
<span class="dastx">##</span> <b>OR:</b>
<span class="dastx">##</span> <b>64-bit</b>
<code class="thtwo">export HOST="aarch64-linux-gnu"
</code></code>
6 years ago
<p>
<code class="thtwo">export ARM=$(echo $HOST|cut -d- -f1)
</code>
<p>
<span class="dastx">##</span> <b>Set installation directories</b>
<br>
<code class="thtwo"><span class="dastx">##</span> for cross compiler
export XGCC_DIR=/opt/cross-pi-gcc
<span class="dastx">##</span> for sysroot
export SYSROOT=$XGCC_DIR/sysroot
</code>
<p>
<!-- gcc_x - start -->
<a name="close_gcc_x"></a>
<br>
<span class="tabs"><a href="#gcc_x">&hellip; build gcc cross-compiler</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;Based on - <a class="extlink" href="https://solarianprogrammer.com/2018/05/06/building-gcc-cross-compiler-raspberry-pi/">Building GCC as a cross compiler for Raspberry Pi</a> - and the mentioned article - <a class="extlink" href="http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/">How to Build a GCC Cross-Compiler</a>.</span>
6 years ago
<div id="gcc_x" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_gcc_x">close</a></span>
The cross compiler is built in this tree:
<code>/tmp
└── xgcc
├── gcc-9 sources for a gcc-9.1.0/glibc-2.29 build
│ ├── binutils-2.32.tar.xz
│ ├── gcc-9.1.0.tar.xz
│   ├── glibc-2.29.tar.xz
6 years ago
│ ├── gmp-6.1.2.tar.xz
│   ├── isl-0.18.tar.bz2
│   ├── mpc-1.1.0.tar.gz
│ └── mpfr-4.0.2.tar.xz
6 years ago
├── build_all build area
│   ├── linux for kernel headers
│   ├── binutils-2.32
6 years ago
│   ├── build-binutils
│   ├── gcc-9.1.0
6 years ago
  ├── build-gcc
  ├── glibc-2.29
6 years ago
│   └── build-glibc
└── <span class="green">pkg DESTDIR for creating package</span>
<b>Set variables</b> for a 32-bit [armv7] or 64-bit [aarch64] build:
<span class="dastx">##</span> <b>32-bit</b> - only tested for a hard float build
<code class="thtwo"><span class="dastx">##</span> for kernel headers
export K_ARCH=arm
<span class="dastx">##</span> Set options for RPi3
export PiARCH="armv8-a+crc"
export FPU="neon-fp-armv8"
export TUNE="cortex-a53"
export FLOAT="hard"
export MACH_OPTS="--with-arch=$PiARCH --with-tune=$TUNE --with-fpu=$FPU --with-float=$FLOAT"
export glibcMACH_OPTS=$MACH_OPTS
<span class="dastx">##</span> Set target - building cross compiler to run on x86 to build for target arm
export TARGET=$HOST
</code>
<span class="dastx">##</span> <b>OR:</b>
<span class="dastx">##</span> <b>64-bit</b>
<code class="thtwo"><span class="dastx">##</span> for kernel headers
export K_ARCH=arm64
<span class="dastx">##</span> Set options for RPi3 - the build for aarch64 takes a limited number of options
export PiARCH="armv8-a+crc"
export TUNE="cortex-a53"
export MACH_OPTS="--with-arch=$PiARCH --with-cpu=$TUNE"
export glibcMACH_OPTS="--with-arch=$PiARCH --with-tune=$TUNE"
<span class="dastx">##</span> Set target - building cross compiler to run on x86 to build for target aarch64
export TARGET=$HOST
</code>
<span class="dastx">##</span> <b>Create build directories</b>
<code class="thtwo">mkdir -p /tmp/xgcc/{gcc-9,build_all}
cd /tmp/xgcc/gcc-9
6 years ago
</code>
<span class="dastx">##</span> <b>Get required sources</b>
<code class="thtwo"><span style="color: #c50000;">wget https://ftpmirror.gnu.org/binutils/binutils-2.32.tar.xz
wget https://ftpmirror.gnu.org/gcc/gcc-9.1.0/gcc-9.1.0.tar.xz
wget https://ftpmirror.gnu.org/glibc/glibc-2.29.tar.xz
6 years ago
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
wget https://ftpmirror.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
wget https://ftpmirror.gnu.org/gnu/mpfr/mpfr-4.0.2.tar.xz</span>
6 years ago
</code>
<span class="dastx">##</span> <b>Install the kernel headers</b>
<span class="dastx">##</span> Download the kernel source and create a headers package.
<span class="dastx">##</span> This is a 180MB download
<code class="thtwo">cd ../build_all
<span style="color: #c50000;">git clone --depth=1 --no-checkout https://github.com/raspberrypi/linux</span>
</code>
<span class="dastx">##</span> Backup
<code class="green thtwob">tar Jcf /tmp/RPi-kernel-git-$(date +%Y%m%d).tar.xz linux/
</code></span>
<span class="dastx">##</span> Check out the default branch
<code class="thtwo">cd linux
git checkout
</code>
<span class="dastx">##</span> Make headers - these are different for 32 and 64-bit - not to be confused with the kernel build
<code class="thtwo">make headers_install ARCH=$K_ARCH INSTALL_HDR_PATH=/tmp/headers/usr
export K_VER=$(make kernelversion)
6 years ago
(cd /tmp/headers
makepkg -l y -c n /tmp/kernel-headers-$K_VER-RPi-$K_ARCH.txz)
6 years ago
rm -rf /tmp/headers
cd ..
</code>
<span class="dastx">##</span> If building kernel, modules, and dtbs &hellip;
<code class="green thtwob">mv /tmp/xgcc/build_all/linux /tmp
</code>
<code class="thtwo">ROOT=$SYSROOT installpkg /tmp/kernel-headers-$K_VER-RPi-$K_ARCH.txz
</code>
<span class="dastx">##</span> <b>Extract the archives</b>
<code class="thtwo">tar xf ../gcc-9/binutils-2.32.tar.xz
tar xf ../gcc-9/glibc-2.29.tar.xz
tar xf ../gcc-9/gcc-9.1.0.tar.xz
cd gcc-9.1.0
ln -s ../../gcc-9/gmp-6.1.2.tar.xz .
ln -s ../../gcc-9/mpc-1.1.0.tar.gz .
ln -s ../../gcc-9/mpfr-4.0.2.tar.xz .
ln -s ../../gcc-9/isl-0.18.tar.bz2 .
6 years ago
<span class="dastx">##</span> Update the prerequisites versions
sed -i 's|6.1.0.tar.bz2|6.1.2.tar.xz|;s|3.1.4.tar.bz2|4.0.2.tar.xz|;s|1.0.3|1.1.0|' contrib/download_prerequisites
6 years ago
<span class="dastx">##</span> Set up the gcc build environment
contrib/download_prerequisites --no-verify
</code>
<span class="dastx">##</span> Fix build error:
<span class="dastx">##</span>../../../../gcc-9.1.0/libsanitizer/asan/asan_linux.cc:216:21: error: PATH_MAX was not declared in this scope
<span class="dastx">##</span> '#include &lt;limits.h>' in asan_linux.cc isn't picking up the linux headers version which defines PATH_MAX, so add the latter:
<code class="thtwo">echo $'--- libsanitizer/asan/asan_linux.cc
+++ libsanitizer/asan/asan_linux.cc
@@ -33,0 +34 @@
+#include &lt;linux/limits.h>' | while read line
do
patch -p0
done
</code>
6 years ago
<span class="dastx">##</span> <b>Build Binutils</b>
<span class="dastx">##</span> The cross compiler toolchain is going to be built with defaults for the RPi3 using machine [arch/tune/fpu/float] options
6 years ago
<code class="thtwo">mkdir ../build-binutils
cd ../build-binutils
../binutils-2.32/configure --prefix=$XGCC_DIR --with-sysroot=$SYSROOT --target=$TARGET $MACH_OPTS --disable-multilib
6 years ago
make -j4
<span class="dastx">##</span> install to '--prefix' for this build
make install-strip
<span class="green"><span class="dastx">##</span> install for packaging
DESTDIR=/tmp/xgcc/pkg make install-strip</span>
</code>
<span class="dastx">##</span> <b>Start building gcc</b>
<code class="thtwo">mkdir ../build-gcc
cd ../build-gcc
../gcc-9.1.0/configure --prefix=$XGCC_DIR --with-sysroot=$SYSROOT --target=$TARGET --enable-languages=c,c++ $MACH_OPTS --disable-multilib
6 years ago
make -j4 all-gcc
make install-gcc
</code>
<span class="dastx">##</span> <b>Add the cross compiler binaries to PATH</b> for building glibc
6 years ago
<span class="dastx">##</span> Prevents "__INT64_C" redefined and "__ARM_ARCH" is not defined errors.
<span class="dastx">##</span> And includes $TARGET-strip which is used to strip the glibc executables and libs.
<code class="thtwo">export PATH=$XGCC_DIR/bin:$PATH
6 years ago
</code>
<span class="dastx">##</span> <b>Start building glibc</b>
<code class="thtwo">mkdir ../build-glibc
cd ../build-glibc
../glibc-2.29/configure --prefix=$XGCC_DIR/$TARGET --with-sysroot=$SYSROOT --build=$MACHTYPE --host=$TARGET --target=$TARGET $glibcMACH_OPTS --disable-multilib libc_cv_forced_unwind=yes
6 years ago
make install-bootstrap-headers=yes install-headers
make -j4 csu/subdir_lib
install csu/crt1.o csu/crti.o csu/crtn.o $XGCC_DIR/$TARGET/lib
$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $XGCC_DIR/$TARGET/lib/libc.so
touch $XGCC_DIR/$TARGET/include/gnu/stubs.h
6 years ago
</code>
<span class="dastx">##</span> <b>Back to gcc</b>
<code class="thtwo">cd ../build-gcc
make -j4 all-target-libgcc
make install-target-libgcc
</code>
<span class="dastx">##</span> <b>Finish building glibc</b>
<code class="thtwo">cd ../build-glibc
make -j4
<span class="dastx">##</span> no strip option to 'make install'
make install
<span class="green"><span class="dastx">##</span> install to different DESTDIR for stripping
DESTDIR=/tmp/xgcc/pkg-2 make install
find /tmp/xgcc/pkg-2 | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $TARGET-strip --strip-debug
find /tmp/xgcc/pkg-2 | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $TARGET-strip --strip-debug</span>
6 years ago
</code>
<span class="dastx">##</span> <b>Finish building gcc</b>
<code class="thtwo">cd ../build-gcc
make -j4
make install-strip
<span class="green">DESTDIR=/tmp/xgcc/pkg make install-strip</span>
</code>
<span class="dastx">##</span> <b>Create cross compiler package</b>
<code class="green thtwob"><span class="dastx">##</span> Copy stripped glibc to the cross gcc packaging directory
cp -a /tmp/xgcc/pkg-2/* /tmp/xgcc/pkg/
6 years ago
<span class="dastx">##</span> Create a sysroot directory
mkdir /tmp/xgcc/pkg$SYSROOT
6 years ago
<span class="dastx">##</span> Remove unwanted locales
rm -rf /tmp/xgcc/pkg$XGCC_DIR/share/locale
mv /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/i18n/locales/en_{GB,US} /tmp
rm -rf /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/i18n/locales/*
mv /tmp/en_{GB,US} /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/i18n/locales/
mv /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/locale/{en_GB,locale.alias} /tmp
rm -rf /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/locale/*
mv /tmp/{en_GB,locale.alias} /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/locale/
6 years ago
<span class="dastx">##</span> Create the package
cd /tmp/xgcc/pkg
makepkg -l y -c n /tmp/xgcc910-glibc2.29-${K_VER}_RPi_headers-en_GB-$ARM.txz
6 years ago
</code>
<span class="dastx">##</span> <b>Remove the build area</b>
6 years ago
<code class="thtwo">cd /
rm -rf /tmp/xgcc
</code></code>
<span class="tabs"><a href="#close_gcc_x">close</a></span>
</div>
<br></div>
<!-- gcc_x - end -->
6 years ago
<p>
<!-- kernel - start -->
<a name="close_kernel"></a>
<br>
<span class="tabs opt"><a href="#kernel">&hellip; build 64-bit kernel</a></span><span style="vertical-align:-30%">&nbsp;&nbsp; and modules, and device tree blobs - based on <a class="extlink" href="https://docs.slackware.com/howtos:hardware:arm:gcc_aarch64_cross-compiler#building_the_arm64_kernel_modules_and_device_tree_blob_dtb">Exaga's article</a>.</span>
<div id="kernel" class="tab"><div class="b_prefs"><span class="tabs"><a href="#close_kernel">close</a></span>
This is not directly related to cross compiling TDE for aarch64, but will be needed for setting up the RPi3 to run a 64-bit system.
64-bit options are used even if this kernel, modules and blobs will be used for a 32-bit system.
<code><span class="dastx">##</span> To keep track of where stuff is installed use the package management system - delete the cross-compiler build installation directory and re-install from the package created
<code class="green thtwob">rm -rf $XGCC_DIR
installpkg /tmp/xgcc910-glibc2.29-*_RPi_headers-en_GB-aarch64.txz
</code>
<span class="dastx">##</span> Set PATH to include cross-compiler if not continuing from previous section
<code class="thtwo">[[ ! $PATH == *$XGCC_DIR/bin* ]] &amp;&amp; export PATH=$XGCC_DIR/bin:$PATH
</code>
<code class="thtwo">cd /tmp/linux
</code>
<span class="dastx">##</span> <b>Create .config</b>
<code class="thtwo">make -j4 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcmrpi3_defconfig
</code>
<span class="dastx">##</span> <b>Build the kernel</b>
<code class="thtwo">make -j4 Image ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
</code>
<span class="dastx">##</span> Tail end of screen output shows where the kernel is:
<code class="console"><span style="color:white">#</span> SYSMAP System.map
<span style="color:white">#</span> OBJCOPY arch/arm64/boot/Image
</code>
<span class="dastx">##</span> <b>Build the device tree blobs</b>
<code class="thtwo">make -j4 dtbs ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
</code>
<span class="dastx">##</span> find . -name "*rpi-3-b.dtb"
<code class="console"><span style="color:white">#</span>./arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dtb
<span style="color:white">#</span>./arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb
</code>
<span class="dastx">##</span> <b>Build the arm64 modules</b>
<code class="thtwo">make -j4 modules ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
make -j4 modules_install ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=/tmp/modules
(cd /tmp/modules
makepkg -l y -c n /tmp/kernel-modules-$K_VER-RPi-arm64.txz)
rm -rf /tmp/modules
</code></code>
<b>Installation</b>
5 years ago
As detailed in <a class="extlink" href="https://docs.slackware.com/howtos:hardware:arm:gcc_aarch64_cross-compiler#copying_the_arm64_kernel_modules_and_device_tree_blobs_dtb">Exaga's article</a>, install the dtbs and the kernel [Image &Rightarrow; kernel8.img] to the microSD card boot partition; and the modules to the OS partition.
<span class="tabs"><a href="#close_kernel">close</a></span>
</div>
<br></div>
<!-- kernel - end -->
<p>
<!-- qemu - start -->
6 years ago
<a name="close_qemu"></a>
<br>
<span class="tabs"><a href="#qemu">&hellip; build qemu</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;Required to run arm binaries used during the build - for example tquic and tde-config.
6 years ago
</span>
<div id="qemu" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_qemu">close</a></span>
<code><code class="thtwo">cd /tmp
</code>
<code class="thtwo"><span style="color: #c50000;">wget https://download.qemu.org/qemu-2.12.1.tar.xz</span>
</code>
<code class="thtwo">tar xf qemu-2.12.1.tar.xz
cd qemu-2.12.1/
mkdir build
cd build
</code>
<span class="dastx">##</span> Only the one target is needed for the LSB binaries required for the RPi3,
<span class="dastx">##</span> and most other options are not required for this particular use.
6 years ago
<span class="dastx">##</span> There is no need to build qemu-static because qemu will be built and run within this environment.
<code class="thtwo">export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
../configure \
--target-list=$ARM-linux-user \
6 years ago
--audio-drv-list= \
--disable-blobs \
--disable-bluez \
--disable-brlapi \
--disable-bsd-user \
--disable-bzip2 \
--disable-cap-ng \
--disable-capstone \
--disable-crypto-afalg \
--disable-curl \
--disable-curses \
--disable-debug-info \
--disable-debug-tcg \
--disable-docs \
--disable-fdt \
--disable-gcrypt \
--disable-glusterfs \
--disable-gnutls \
--disable-gtk \
--disable-guest-agent \
--disable-hax \
--disable-hvf \
--disable-jemalloc \
--disable-kvm \
--disable-libiscsi \
--disable-libnfs \
--disable-libssh2 \
--disable-libusb \
--disable-libxml2 \
--disable-linux-aio \
--disable-lzo \
--disable-malloc-trim \
--disable-modules \
--disable-netmap \
--disable-nettle \
--disable-numa \
--disable-opengl \
--disable-qom-cast-debug \
--disable-rbd \
--disable-rdma \
--disable-replication \
--disable-sanitizers \
--disable-seccomp \
--disable-sdl \
--disable-slirp \
--disable-smartcard \
--disable-snappy \
--disable-sparse \
--disable-spice \
--disable-system \
--disable-tcg-interpreter \
--disable-tcmalloc \
--disable-tools \
--disable-tpm \
--disable-usb-redir \
--disable-vde \
--disable-vhost-crypto \
--disable-vhost-net \
--disable-vhost-scsi \
--disable-vhost-user \
--disable-vhost-vsock \
--disable-virglrenderer \
--disable-virtfs \
--disable-vte \
--disable-vnc \
--disable-vxhs \
--disable-xen \
--disable-xfsctl
</code>
<code class="thtwo">make -j6
make install DESTDIR=/tmp/qemu-temp
</code></code>
qemu-$ARM will be copied to sysroot in the next section &hellip;
6 years ago
<span class="tabs"><a href="#close_qemu">close</a></span>
</div>
<br></div>
<!-- qemu - end -->
6 years ago
<p>
<!-- Set_variables - start -->
6 years ago
<a name="close_Set_variables"></a>
<br>
<span class="tabs"><a href="#Set_variables">&hellip; the build environment</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;Set the shell variables and install the required arm headers and libraries in SYSROOT.</span>
<div id="Set_variables" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_Set_variables">close</a></span>
<code><b>Install the cross-compiler</b>
To keep track of where stuff is installed use the package management system - delete the cross-compiler build installation directory and re-install from the package created:
<code class="green thtwob">rm -rf $XGCC_DIR
installpkg /tmp/xgcc910-glibc2.29-${K_VER}_RPi_headers-en_GB-$ARM.txz
</code>
<span class="dastx">##</span> Set the variables for the TDE packages builds
<code class="thtwo">export <b>TDE_VERSION</b>=<b>14.0.9</b>
export INSTALL_TDE=<b>/opt/tde</b>
export SYS_CNF_DIR=<b>/etc/tde</b>
[[ $ARM == aarch64 ]] &amp;&amp; export LIBDIRSUFFIX=64
export TQTDIR=$INSTALL_TDE
export COMPILER=$HOST-gcc
export COMPILER_CXX=$HOST-g++
export CC=$COMPILER
export CXX=$COMPILER_CXX
export PLUGIN_INSTALL_DIR=tde
export NUMJOBS=<b>-j6</b>
export BUILD=<b>1</b>
export SLKLDFLAGS=<b>""</b>
export SLKCFLAGS=<b>-O2</b>
export I18N=<b>en_GB</b>
</code>
<span class="dastx">##</span> Set variables for local paths:
<code class="thtwo"><span class="dastx">##</span> where the source archives are:
export TDE_SRC=<span class="comment">/path_to_${TDE_VERSION}_source_archives</span>
export MISC_SRC=<span class="comment">/path_to_misc_source_archives</span>
<span class="dastx">##</span> Set <i>Slack_base</i> where the Slackware/Slarm64 packages a-y directories are:
export Slack_base=<span class="comment">/path_to_[Slackware_arm_current/Slarm64]_a-y_directories</span>
<span class="green"><span class="dastx">##</span> for SYSROOT location - option [2] in setting up the build environment
export SYSROOT_REPO=<span class="comment">/path_to_[Slackware_arm_current/Slarm64]_libs_headers_installation_directory</span></span>
</code>
<span class="dastx">##</span> ldconfig is not going to be used during arm packages installaion because it's an x86 binary, nor is /etc/ld.so.conf going to be updated, so use LD_LIBRARY_PATH to find libtqt-mt.so.3 during the build.
<span class="dastx">##</span> And add the location of the libstdc++, libssp etc. libs from the cross compiler.
<code class="thtwo">export LD_LIBRARY_PATH=$SYSROOT$TQTDIR/lib$LIBDIRSUFFIX:$XGCC_DIR/$HOST/lib$LIBDIRSUFFIX
6 years ago
</code>
<span class="dastx">##</span> The arm libs and headers needed for cross compiling need to be installed in SYSROOT.
<span class="dastx">##</span> 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:
<code class="green thtwob"><span class="dastx">##</span> [2]:
mkdir -p $SYSROOT_REPO
mount -B $SYSROOT_REPO $SYSROOT
</code>
6 years ago
<span class="dastx">##</span> Create a source directory and place or sym-link all the source archives there
<code class="thtwo">mkdir -p $SYSROOT/src
<span class="comment">ln -sf $MISC_SRC/* $SYSROOT/src/
ln -sf $TDE_SRC/* $SYSROOT/src/</span>
6 years ago
</code>
<span class="dastx">##</span> only need qemu-$ARM from the qemu build/installation - just place it somewhere the kernel can find it &hellip;
6 years ago
<code class="thtwo">mkdir -p $SYSROOT/x86
cp /tmp/qemu-temp/usr/local/bin/qemu-$ARM $SYSROOT/x86
6 years ago
rm -rf /tmp/qemu*
</code>
<span class="dastx">##</span> &hellip; and <b>load the arm interpreter</b>
6 years ago
<code class="thtwo">modprobe binfmt_misc
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
[[ $ARM == aarch64 ]] &amp;&amp; \
echo ":arm:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:$SYSROOT/x86/qemu-$ARM:" > /proc/sys/fs/binfmt_misc/register \
|| \
echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:$SYSROOT/x86/qemu-$ARM:" > /proc/sys/fs/binfmt_misc/register
6 years ago
</code>
<span class="dastx">##</span> let qemu know where the target libraries are
6 years ago
<code class="thtwo">export QEMU_LD_PREFIX=$SYSROOT
</code>
6 years ago
<span class="dastx">##</span> Install all packages needed to build the required TDE packages.
<span class="dastx">##</span> SYSROOT is not a functioning system, it's just a repository for arm libs and headers required for cross compiling.
<code class="thtwo"><span class="dastx">##</span> move ldconfig out of the way - links will be set up by doinst.sh
6 years ago
mv /sbin/ldconfig /sbin/ldconfig-bak
export ROOT=$SYSROOT
installpkg /tmp/kernel-headers-*-RPi-*.txz
<b>cd $Slack_base</b>
<span class="dastx">##</span> glibc must be the same version as for the cross-compiler to prevent 'undefined reference to &hellip;' errors
installpkg l/glibc-2.29-*.txz
6 years ago
installpkg */dbus-*.txz
installpkg a/eudev-*.txz
installpkg x/fontconfig-*.txz
installpkg l/freetype-*.txz
installpkg x/libICE-*.txz
installpkg x/libSM-*.txz
installpkg x/libX11-*.txz
installpkg x/libXcomposite-*.txz
installpkg x/libXcursor-*.txz
installpkg x/libXext-*.txz
installpkg x/libXft-*.txz
installpkg x/libXi-*.txz
installpkg x/libXinerama-*.txz
installpkg x/libXmu-*.txz
installpkg x/libXrandr-*.txz
installpkg x/libXrender-*.txz
installpkg l/libjpeg-turbo-*.txz
installpkg l/libmng-*.txz
installpkg l/libpng-*.txz
installpkg x/mesa-*.txz
installpkg a/util-linux-*.txz
installpkg l/zlib-*.txz
installpkg l/harfbuzz-*.txz
installpkg l/graphite2-*.txz
6 years ago
installpkg l/lcms2-*.txz
installpkg x/libXau-*.txz
installpkg x/libXdamage-*.txz
installpkg x/libXdmcp-*.txz
installpkg x/libXfixes-*.txz
installpkg x/libXt-*.txz
installpkg x/libXxf86vm-*.txz
installpkg x/libdrm-*.txz
installpkg x/libxcb-*.txz
installpkg x/libxshmfence-*.txz
installpkg x/glu-*.txz
installpkg x/libXi-*.txz
installpkg l/libidn2-*.txz
installpkg ap/cups-*.txz
installpkg l/libxml2-*.txz
installpkg l/libxslt-*.txz
installpkg a/file-*.txz
installpkg l/taglib-1*.txz
installpkg ap/cdparanoia-*.txz
installpkg l/audiofile-*.txz
installpkg l/alsa-lib-*.txz
installpkg l/glib2-*.txz
installpkg l/pcre-*.txz
installpkg ap/flac-*.txz
installpkg l/libogg-*.txz
installpkg l/libvorbis-*.txz
installpkg l/libmad-*.txz
installpkg n/openssl-*.txz
installpkg a/bzip2-*.txz
installpkg a/xz-*.txz
installpkg l/openexr-*.txz
installpkg l/ilmbase-*.txz
installpkg l/expat-*.txz
installpkg n/gnutls-*.txz
installpkg n/p11-kit-*.txz
installpkg l/libunistring-*.txz
installpkg n/nettle-*.txz
installpkg l/libffi-*.txz
installpkg n/NetworkManager-*.txz
installpkg a/acl-*.txz
installpkg a/attr-*.txz
installpkg x/libpthread-stubs-*.txz
installpkg n/libtirpc-*.txz
installpkg x/libfontenc-*.txz
installpkg x/libXtst-*.txz
installpkg n/htdig-*.txz
installpkg x/libxkbfile-*.txz
installpkg x/xorgproto-*.txz
<span class="dastx">##</span> + for tdeutils
installpkg l/gmp-*.txz
installpkg d/python-*.txz
installpkg d/python3-*.txz
6 years ago
<span class="dastx">##</span> + for imlib
installpkg l/libtiff-*.txz
installpkg l/giflib-*.txz
<span class="dastx">##</span> + for tdegraphics
installpkg l/poppler-*.txz
<span class="dastx">##</span> + for imlib - Slarm64 deps
installpkg l/libwebp-*.txz
installpkg l/zstd-*.txz
<span class="dastx">##</span> + for 14.0.9+ builds
installpkg d/intltool-*.txz
<span class="dastx">##</span> remove .la files and any links to them - they can cause a problem because the paths are hard-coded to /usr/... and so pick up the build machine libs rather than the libs in SYSROOT
find $SYSROOT/usr/lib$LIBDIRSUFFIX -type l -name \*.la -exec rename .la .la-bak {} \;
find $SYSROOT/usr/lib$LIBDIRSUFFIX -type f -name \*.la -exec rename .la .la-bak {} \;
6 years ago
<span class="dastx">##</span> restore ldconfig
mv /sbin/ldconfig-bak /sbin/ldconfig
unset ROOT
cd /
<span class="dastx">##</span> This link is in the wrong place
[[ $ARM == aarch64 ]] &amp;&amp; mv $SYSROOT/ld-linux-aarch64.so.1 $SYSROOT/lib/ld-linux-aarch64.so.1
6 years ago
</code>
<span class="dastx">##</span> Set the PATH for this shell
<code class="thtwo"><span class="dastx">##</span> Add $XGCC_DIR/bin for $HOST-gcc etc; $XGCC_DIR/$HOST/bin for strip etc.
export PATH=$XGCC_DIR/bin:$XGCC_DIR/$HOST/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
6 years ago
</code>
<span class="dastx">##</span> <b>Set up pkg-config</b> to prefix -I and -L paths in *.pc files with $SYSROOT.
<span class="dastx">##</span> This works where the host libs and headers <b>are</b> in $SYSROOT &hellip;
<span class="dastx">##</span> But TDE doesn't install to SYSROOT, its .pc files might be in, say, /opt/tde/lib64/pkgconfig, with the result that TDE includes and libs can't be found.
6 years ago
<span class="dastx">##</span> If INSTALL_TDE=/usr, TDE would also have to be *installed* to SYSROOT - linking wouldn't work because that would pull the build system libs and headers into SYSROOT, as would bind mounting it.
<span class="dastx">##</span> So my work-around for this is to install TDE to both / and $SYSROOT so that the TDE binaries will be found in $INSTALL_TDE and pkg-config will locate the headers and libs in $SYSROOT$INSTALL_TDE.
6 years ago
<code class="thtwo">export PKG_CONFIG_PATH=
export PKG_CONFIG_SYSROOT_DIR=$SYSROOT
export PKG_CONFIG_LIBDIR=$SYSROOT/usr/lib$LIBDIRSUFFIX/pkgconfig:$SYSROOT/usr/share/pkgconfig:$SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig
6 years ago
</code>
<span class="dastx">##</span> <b>Functions</b> - common to each build
<code class="thtwo">untar_fn ()
{
cd $TMP/tmp-$PRGNAM
tar xf $SYSROOT/src/$PRGNAM-*$VERSION.tar.*
cd $PRGNAM-*$VERSION
6 years ago
}
chown_fn ()
{
chown -R root:root .
chmod -R u+w,go+r-w,a+rX-st .
}
cd_builddir_fn()
{
mkdir -p build-${PRGNAM}
cd build-${PRGNAM}
}
strip_fn ()
{
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
}
mkdir_install_fn ()
{
mkdir -p $PKG/install
}
makepkg_fn ()
{
cd $PKG
makepkg --linkadd y --chown n $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
}
ltoolupdate_fn ()
{
{
<span class="dastx">##</span> look in SYSROOT for headers and libs, and
<span class="dastx">##</span> edit hard coded tqt directory for tqt3/tqtinterface installed to TQTDIR [!= /usr]
sed -i "s|/usr/include/tqt\"|$SYSROOT$TQTDIR/include/tqt\"|" admin/acinclude.m4.in
sed -i "s|/usr/include/tqt3|$SYSROOT$TQTDIR/include/tqt|" admin/acinclude.m4.in
sed -i "s|/usr/lib/tqt3|$SYSROOT$TQTDIR|" admin/acinclude.m4.in
<span class="dastx">##</span> $LIBDIRSUFFIX isn't required as it's built-in as ${tdelibsuff} in acinclude.m4.in
sed -i "s|/usr/lib|$SYSROOT&amp;|g" admin/acinclude.m4.in
6 years ago
<span class="dastx">##</span> correct the variable name in error message
sed -i "s|variable UIC to|variable UIC_PATH to|" admin/acinclude.m4.in
<span class="dastx">##</span> edit hard coded plugins installation directories - could be 'tde'
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|g" admin/acinclude.m4.in
<span class="dastx">##</span> include updating config.{guess,sub} for libart-lgpl and misc builds
[[ -d admin ]] &amp;&amp; ADMIN=admin/ || ADMIN=""
cp /$(grep -h config.guess /var/log/packages/libtool*) ./$ADMIN
cp /$(grep -h config.sub /var/log/packages/libtool*) ./$ADMIN
6 years ago
cp /$(grep -h ltmain.sh /var/log/packages/libtool*) admin/
cp /$(grep -h libtool.m4 /var/log/packages/libtool*) admin/libtool.m4.in
cp /$(grep -h missing /var/log/packages/libtool*) admin/
make -f admin/Makefile.common
} 2>/dev/null
6 years ago
}
cmake-toolchain_fn ()
{
echo " set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSROOT $SYSROOT)
<span class="dastx">##</span> maybe try this later
<span class="dastx">##</span> set(CMAKE_CROSSCOMPILING_EMULATOR $XGCC_DIR/bin/$HOST-gcc)
6 years ago
<span class="dastx">##</span> these don't seem to have any affect:
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH $SYSROOT)
set(CMAKE_FIND_ROOT_PATH $SYSROOT)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
" > cmake-toolchain.cmake
}
<span class="dastx">##</span> paths in doinst.sh should be relative to allow for installation to ROOT != "/"
doinst_sh_fn ()
{
echo "
# Update the desktop database:
/usr/bin/update-desktop-database .$INSTALL_TDE/share/applications
# Update hicolor theme cache:
/usr/bin/gtk-update-icon-cache -f -t .$INSTALL_TDE/share/icons/hicolor
# Update the mime database:
/usr/bin/update-mime-database -Vn usr/share/mime
" >> $PKG/install/doinst.sh
}
6 years ago
</code></code>
<span class="tabs"><a href="#close_Set_variables">close</a></span>
</div>
<br></div>
<!-- Set_variables - end -->
6 years ago
<p>
<!-- M_proc - start -->
6 years ago
<a name="close_M_proc"></a>
<br>
<span class="tabs"><a href="#M_proc">&hellip; tqmoc and meinproc x86 binaries</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;The cross compiling build time can be reduced by using x86 versions of tqmoc and meinproc which produce ARCH independent ouput. The figures for the tdebase build demonstrate how much quicker a build can be.</span>
<div id="M_proc" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_M_proc">close</a></span>
<b>tqmoc</b>, and <b>meinproc</b> with its associated x86 TDE libs, are taken from <a class="extlink" href="https://github.com/Ray-V/tde-slackbuilds">pre-built TDE x86 packages</a>.
<code>Variables for pre-built x86 packages - these were built to install to /opt/tde on a 64-bit system
6 years ago
<code class="thtwo">INSTALL_TDE_x86="/opt/tde"
LIBDIRSUFFIX_x86="64"
</code>
<span class="dastx">##</span> Install x86 packages to temporary location on BUILD system
<code class="thtwo">cd <span class="comment">/location_of_pre-built_TDE_x86_packages</span>
ROOT=/tmp/x86/ installpkg tqt3-$TDE_VERSION-x86_64-*.txz tqtinterface-$TDE_VERSION-x86_64-*.txz dbus-1-tqt-$TDE_VERSION-x86_64-*.txz tdelibs-$TDE_VERSION-x86_64-*.txz libart*lgpl-$TDE_VERSION-x86_64-*.txz
6 years ago
</code>
<span class="dastx">##</span> Copy tqmoc, and meinproc and its dependent libraries, to a convenient location, $SYSROOT/x86
<code class="thtwo">cd $SYSROOT/x86
cp -a /tmp/x86$INSTALL_TDE_x86/bin/tqmoc .
6 years ago
cp -a /tmp/x86$INSTALL_TDE_x86/bin/meinproc .
cp -a /tmp/x86$INSTALL_TDE_x86/lib$LIBDIRSUFFIX_x86/lib{DCOP,dbus-1-tqt,tde{core,fx,io,su,ui,walletclient}}.so* .
cp -a /tmp/x86$INSTALL_TDE_x86/lib$LIBDIRSUFFIX_x86/lib{tqt,tqt-mt}.so* .
cp -a /tmp/x86/usr/lib$LIBDIRSUFFIX_x86/libart_lgpl_2.so* .
6 years ago
rm -rf /tmp/x86*
</code>
<span class="dastx">##</span> Add an RPATH so meinproc will use these libraries
<code class="thtwo">patchelf --force-rpath --set-rpath $SYSROOT/x86 $SYSROOT/x86/meinproc
patchelf --force-rpath --set-rpath $SYSROOT/x86 $SYSROOT/x86/libtdecore.so.14.0.0
</code>
<span class="dastx">##</span> Copy the x86 meinproc to the TDE installation directory - it's fussy about its location, producing parsing errors otherwise.
<code class="thtwo">mkdir -p $INSTALL_TDE/bin
cp $SYSROOT/x86/meinproc $INSTALL_TDE/bin/meinproc-x86
6 years ago
</code></code>
<span class="tabs"><a href="#close_M_proc">close</a></span>
</div>
<br></div>
<!-- M_proc - end -->
6 years ago
<br>
<b>Builds</b>
<br>
<!-- tqt - start -->
6 years ago
<a name="close_tqt"></a>
<br>
<span class="tabs reqd"><a href="#tqt">&hellip; tqt3</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;
</a></span>
<div id="tqt" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tqt">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=tqt3
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
PREPEND=no
untar_fn
</code>
<span class="dastx">##</span> <b>Build 'everything = arm' for RPi3 installation</b>
<code class="green thtwob"><span class="dastx">##</span> Remove some stuff that's not needed for TDE build and run-time support
6 years ago
<span class="dastx">##</span> html docs occupy ~21M
sed -i '/htmldocs/d' src/qt_install.pri
6 years ago
sed -i '/translations/d' src/qt_install.pri
sed -i '/assistanttranslations/d' tools/assistant/assistant.pro
sed -i '/phrasebooks/d' tools/linguist/linguist/linguist.pro
sed -i '/templates/d' tools/designer/designer/designer.pro
6 years ago
<span class="dastx">##</span> only need linux-g++
mv mkspecs/linux-g++ ../
6 years ago
rm -rf mkspecs/*
mv ../linux-g++ mkspecs/
</code>
<span class="dastx">##</span> RPATH is to be set as $ORIGIN/../lib, so don't need absolute libs directory built in -
<span class="dastx">##</span> Allow setting CC/CXX for linux-g++/qmake.conf -
<span class="dastx">##</span> Set correct paths for includes and libs -
<code class="thtwo">echo $'--- mkspecs/linux-g++/qmake.conf
6 years ago
+++ mkspecs/linux-g++/qmake.conf
@@ -11 +11 @@
-QMAKE_CC<span class="bkslt">\t</span><span class="bkslt">\t</span>= gcc
+QMAKE_CC<span class="bkslt">\t</span><span class="bkslt">\t</span>= $(COMPILER)
6 years ago
@@ -29 +29 @@
-QMAKE_CXX<span class="bkslt">\t</span><span class="bkslt">\t</span>= g++
+QMAKE_CXX<span class="bkslt">\t</span><span class="bkslt">\t</span>= $(COMPILER_CXX)
@@ -42,2 +42,2 @@
-QMAKE_INCDIR_X11<span class="bkslt">\t</span>= /usr/X11R6/include
-QMAKE_LIBDIR_X11<span class="bkslt">\t</span>= /usr/X11R6/lib
+QMAKE_INCDIR_X11<span class="bkslt">\t</span>= /usr/include/X11
+QMAKE_LIBDIR_X11<span class="bkslt">\t</span>= /usr/lib$(LIBDIRSUFFIX)
@@ -45,3 +45,3 @@
-QMAKE_LIBDIR_QT<span class="bkslt">\t</span><span class="bkslt">\t</span>= $(QTDIR)/lib
-QMAKE_INCDIR_OPENGL<span class="bkslt">\t</span>= /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL<span class="bkslt">\t</span>= /usr/X11R6/lib
+QMAKE_LIBDIR_QT<span class="bkslt">\t</span><span class="bkslt">\t</span>= $(QTDIR)/lib$(LIBDIRSUFFIX)
+QMAKE_INCDIR_OPENGL<span class="bkslt">\t</span>= /usr/include/GL
+QMAKE_LIBDIR_OPENGL<span class="bkslt">\t</span>= /usr/lib$(LIBDIRSUFFIX)
6 years ago
@@ -49,2 +49,2 @@
-QMAKE_LINK<span class="bkslt">\t</span><span class="bkslt">\t</span>= g++
-QMAKE_LINK_SHLIB<span class="bkslt">\t</span>= g++
+QMAKE_LINK<span class="bkslt">\t</span><span class="bkslt">\t</span>= $(COMPILER_CXX)
+QMAKE_LINK_SHLIB<span class="bkslt">\t</span>= $(COMPILER_CXX)
@@ -58 +58 @@
-QMAKE_RPATH<span class="bkslt">\t</span><span class="bkslt">\t</span>= -Wl,-rpath,
+QMAKE_RPATH =' | while read line
6 years ago
do
patch -p0
done
</code>
<code class="thtwo">chown_fn
</code>
<span class="dastx">##</span> only look in sysroot for includes and libs
<code class="thtwo">sed -i "s|/usr/include|$SYSROOT&amp;|" config.tests/{unix,x11}/*.test
sed -i "s| /include| $SYSROOT/include|" config.tests/{unix,x11}/*.test
sed -i "s| /lib| $SYSROOT/lib$LIBDIRSUFFIX|" config.tests/{unix,x11}/*.test
sed -i "s| /usr/lib| $SYSROOT/usr/lib$LIBDIRSUFFIX|" config.tests/{unix,x11}/*.test
sed -i "s|\"/lib|\"$SYSROOT/lib$LIBDIRSUFFIX|" config.tests/unix/checkavail
6 years ago
sed -i "s|/usr|$SYSROOT&amp;|" config.tests/unix/checkavail
</code>
<span class="dastx">##</span> Set up an arm mkspecs to use for this build where includes and libs paths are set to SYSROOT
<code class="thtwo">cp -a mkspecs/linux-g++ mkspecs/linux-arm-g++
echo $'--- mkspecs/linux-arm-g++/qmake.conf
+++ mkspecs/linux-arm-g++/qmake.conf
@@ -42,2 +42,2 @@
-QMAKE_INCDIR_X11<span class="bkslt">\t</span>= /usr/include/X11
-QMAKE_LIBDIR_X11<span class="bkslt">\t</span>= /usr/lib$(LIBDIRSUFFIX)
+QMAKE_INCDIR_X11<span class="bkslt">\t</span>= $(SYSROOT)/usr/include/X11
+QMAKE_LIBDIR_X11<span class="bkslt">\t</span>= $(SYSROOT)/usr/lib$(LIBDIRSUFFIX)
@@ -46,2 +46,2 @@
-QMAKE_INCDIR_OPENGL<span class="bkslt">\t</span>= /usr/include/GL
-QMAKE_LIBDIR_OPENGL<span class="bkslt">\t</span>= /usr/lib$(LIBDIRSUFFIX)
+QMAKE_INCDIR_OPENGL<span class="bkslt">\t</span>= $(SYSROOT)/usr/include/GL
+QMAKE_LIBDIR_OPENGL<span class="bkslt">\t</span>= $(SYSROOT)/usr/lib$(LIBDIRSUFFIX)' | while read line
do
patch -p0
done
6 years ago
</code>
<span class="dastx">##</span> Set -platform to arm so that tqmoc is built as an arm binary for installation on RPi3.
<span class="dastx">##</span> Set -rpath so that libtqt-mt.so.3 can be found during the build
<code class="thtwo">echo "yes" | \
6 years ago
./configure \
-platform linux-arm-g++ \
-xplatform linux-arm-g++ \
-no-exceptions \
-prefix $TQTDIR \
-libdir $TQTDIR/lib$LIBDIRSUFFIX \
-bindir $TQTDIR/bin \
-headerdir $TQTDIR/include/tqt \
-plugindir $TQTDIR/lib$LIBDIRSUFFIX/tqt/plugins \
-datadir $TQTDIR/lib$LIBDIRSUFFIX/tqt \
-translationdir $TQTDIR/share/tqt/translations \
6 years ago
-release \
-verbose \
-I$SYSROOT/usr/include \
-L$SYSROOT/usr/lib$LIBDIRSUFFIX \
-system-zlib \
-qt-imgfmt-png \
-qt-imgfmt-mng \
-qt-gif \
-thread \
-stl \
-nis \
-cups \
-pch \
-xft \
-xrender \
-xrandr \
-xcursor \
-tablet \
-xinerama \
-plugin-style-cde \
-plugin-style-compact \
-plugin-style-motif \
-plugin-style-motifplus \
-plugin-style-platinum \
-plugin-style-sgi \
-plugin-style-windows \
-fast \
-R-Wl,-rpath,\'\\\$\$ORIGIN/../lib\'
6 years ago
</code>
<span class="dastx">##</span> Don't build tutorial and examples which won't be installed because the release version is being built
<code class="thtwo">make $NUMJOBS symlinks src-qmake src-moc sub-src sub-tools
6 years ago
make install INSTALL_ROOT=$PKG
</code>
<code class="green"><span class="dastx">##</span> Remove some more stuff that's not needed for TDE build and run-time support
<span class="dastx">##</span> which I haven't yet figured out how to avoid building in the first place
<span class="dastx">##</span> binaries
(cd $PKG$INSTALL_TDE/bin/
rm tqtmergetr
rm tqm2ts
rm tqlupdate
rm tqembed
rm msg2tqm
rm maketqpf
rm tqtcreatecw
rm tqlrelease
rm tqdesigner)
6 years ago
<span class="dastx">##</span> libraries
(cd $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/
rm libtqteditor*
rm libtqassistantclient*)
</code>
6 years ago
<span class="dastx">##</span> remove sysroot path from RPi3 package
<code class="thtwo">sed -i "s|-L\$(S.*X)||g;s|$SYSROOT||g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/libtqt-mt.la
sed -i "s|-L\$(S.*X)||g;s|$SYSROOT||g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig/tqt-mt.pc
6 years ago
</code>
<span class="dastx">##</span> move mkspecs/linux-arm-g++ to the TDE installation directory - it isn't needed for the RPi3 package, but is needed for building tqca-tls
<code class="thtwo">(cd $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt/mkspecs/
mkdir -p $INSTALL_TDE/lib$LIBDIRSUFFIX/tqt/mkspecs
mv linux-arm-g++ $INSTALL_TDE/lib$LIBDIRSUFFIX/tqt/mkspecs
6 years ago
ln -sf linux-g++ default)
</code>
<code class="thtwo">mkdir -p $PKG/etc/profile.d
echo '#!'"/bin/sh
# Environment path variable for the tQt package.
export QTDIR=$TQTDIR
" > $PKG/etc/profile.d/tqt3.sh
chmod 755 $PKG/etc/profile.d/tqt3.sh
</code>
<code class="thtwo">strip_fn
</code>
<code class="thtwo">mkdir_install_fn
</code>
<code class="thtwo"># Add this to the doinst.sh:
6 years ago
cat &lt;&lt;EOINS >> $PKG/install/doinst.sh
# Add TDE library directory:
[[ \$(cat etc/ld.so.conf|head -n1) != $INSTALL_TDE/lib$LIBDIRSUFFIX ]] &amp;&amp; \
sed -i "1i $INSTALL_TDE/lib$LIBDIRSUFFIX" etc/ld.so.conf
6 years ago
# Add TQt library directory:
[[ \$(cat etc/ld.so.conf|head -n1) != $TQTDIR/lib$LIBDIRSUFFIX ]] &amp;&amp;\
sed -i "1i $TQTDIR/lib$LIBDIRSUFFIX" etc/ld.so.conf
[[ -x /sbin/ldconfig ]] &amp;&amp; /sbin/ldconfig
6 years ago
EOINS
cat &lt;&lt;EOINS >> $PKG/install/doinst.sh
## This could be a rebuild or upgradepkg running installpkg twice,
## so delete any previous routine
sed -i '/Update PKG_CONFIG_PATH for TDE/,+11d' etc/profile.d/pkgconfig.sh
6 years ago
echo '# Update PKG_CONFIG_PATH for TDE:
## remove duplicated paths:
PKG_CONFIG_PATH=\$(echo \$PKG_CONFIG_PATH| tr : \\\\n | awk '"'!seen[\\\$0]++'"' | tr \\\\n :|sed '"'s|:\$||'"')
#
## add path for INSTALL_TDE ..
[[ ! \$PKG_CONFIG_PATH == *$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig* ]] &amp;&amp; \\
PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig
## .. and for TQTDIR if different
[[ ! \$PKG_CONFIG_PATH == *$TQTDIR/lib$LIBDIRSUFFIX/pkgconfig* ]] &amp;&amp; \\
PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:$TQTDIR/lib$LIBDIRSUFFIX/pkgconfig
#
export PKG_CONFIG_PATH' >> etc/profile.d/pkgconfig.sh
6 years ago
EOINS
</code>
<code class="thtwo">doinst_sh_fn
6 years ago
makepkg_fn
6 years ago
<span class="dastx">##</span> move ldconfig out of the way - links will be set up by doinst.sh
mv /sbin/ldconfig /sbin/ldconfig-bak
6 years ago
<span class="dastx">##</span> install to '/' for TDE binaries
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
<span class="dastx">##</span> and install to SYSROOT for TDE headers and libs
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_tqt">close</a></span>
</div>
<br></div>
<!-- tqt - end -->
6 years ago
<p>
<!-- tqtint - start -->
6 years ago
<a name="close_tqtint"></a>
<br>
<span class="tabs reqd"><a href="#tqtint">&hellip; tqtinterface</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tqtint" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tqtint">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=tqtinterface
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
cmake \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$TQTDIR \
6 years ago
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DQT_PREFIX_DIR=$TQTDIR \
-DQT_INCLUDE_DIR=$TQTDIR/include/tqt \
-DMOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
6 years ago
-DQT_VERSION=3 \
-DWITH_QT3="OFF" \
-DWITH_QT4="OFF" \
-Wno-dev \
6 years ago
..
make $NUMJOBS
make DESTDIR=$PKG install
<span class="dastx">##</span> edit tqmoc path from package so that when installed on RPi3, the tqmoc path is correct
sed -i "s|$SYSROOT/x86/tqmoc|$INSTALL_TDE/bin/tqmoc|" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig/tqt.pc
sed -i "s|$SYSROOT/x86/tqmoc|$INSTALL_TDE/bin/tqmoc|" $PKG$INSTALL_TDE/bin/tmoc
6 years ago
strip_fn
mkdir_install_fn
makepkg_fn
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
<span class="dastx">##</span> revert tqmoc path in tmoc for cross compiling on the BUILD system
sed -i "s|$INSTALL_TDE/bin/tqmoc|$SYSROOT/x86/tqmoc|" {,$SYSROOT}$INSTALL_TDE/bin/tmoc
6 years ago
</code></code>
<span class="tabs"><a href="#close_tqtint">close</a></span>
</div>
<br></div>
<!-- tqtint - end -->
6 years ago
<p>
<!-- arts - start -->
6 years ago
<a name="close_arts"></a>
<br>
<span class="tabs reqd"><a href="#arts">&hellip; arts</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="arts" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_arts">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=arts
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D TQT_REPLACE_SCRIPT=$INSTALL_TDE/bin/tqt-replace \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DWITH_ALSA="ON" \
-DWITH_AUDIOFILE="ON" \
-DWITH_ESOUND="OFF" \
-DWITH_GCC_VISIBILITY="OFF" \
-DWITH_JACK="OFF" \
-DWITH_MAD="ON" \
-DWITH_SNDIO="OFF" \
-DWITH_VORBIS="ON" \
-Wno-dev \
6 years ago
..
make $NUMJOBS
make DESTDIR=$PKG install
<span class="dastx">##</span> remove sysroot path from package
sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig/artsc.pc
6 years ago
strip_fn
mkdir_install_fn
makepkg_fn
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_arts">close</a></span>
</div>
<br></div>
<!-- arts - end -->
6 years ago
<p>
<!-- dbus - start -->
6 years ago
<a name="close_dbus"></a>
<br>
<span class="tabs reqd"><a href="#dbus">&hellip; dbus-tqt</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="dbus" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_dbus">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=dbus-tqt
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-Wno-dev \
6 years ago
..
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
makepkg_fn
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_dbus">close</a></span>
</div>
<br></div>
<!-- dbus - end -->
6 years ago
<p>
<!-- dbus_1 - start -->
6 years ago
<a name="close_dbus_1"></a>
<br>
<span class="tabs reqd"><a href="#dbus_1">&hellip; dbus-1-tqt</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="dbus_1" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_dbus_1">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=dbus-1-tqt
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DWITH_GCC_VISIBILITY="OFF" \
-Wno-dev \
6 years ago
..
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
makepkg_fn
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_dbus_1">close</a></span>
</div>
<br></div>
<!-- dbus_1 - end -->
6 years ago
<p>
<!-- libart - start -->
6 years ago
<a name="close_libart"></a>
<br>
<span class="tabs reqd"><a href="#libart">&hellip; libart-lgpl</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
6 years ago
</span>
<div id="libart" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_libart">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=libart-lgpl
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
cmake-toolchain_fn
cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DMAN_INSTALL_DIR=/usr/man \
-DWITH_GCC_VISIBILITY="OFF" \
-DBUILD_DOC="ON" \
-Wno-dev \
..
6 years ago
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
makepkg_fn
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_libart">close</a></span>
</div>
<br></div>
<!-- libart - end -->
6 years ago
<p>
<!-- tqca_tls - start -->
6 years ago
<a name="close_tqca_tls"></a>
<br>
<span class="tabs reqd"><a href="#tqca_tls">&hellip; tqca-tls</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tqca_tls" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tqca_tls">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=tqca-tls
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
6 years ago
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
cmake-toolchain_fn
cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DWITH_GCC_VISIBILITY="OFF" \
-Wno-dev \
..
6 years ago
make $NUMJOBS
make DESTDIR=$PKG install
6 years ago
strip_fn
mkdir_install_fn
makepkg_fn
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_tqca_tls">close</a></span>
</div>
<br></div>
<!-- tqca_tls - end -->
6 years ago
<p>
<!-- tdelibs - start -->
6 years ago
<a name="close_tdelibs"></a>
<br>
<span class="tabs reqd"><a href="#tdelibs">&hellip; tdelibs</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdelibs" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdelibs">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=tdelibs
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
</code>
<span class="dastx">##</span> Patch for TDE bug 2821 to make error message more user friendly
<code class="thtwo">patch -N -p0 &lt;&lt; EOF || true
--- tdecmshell/main.cpp
6 years ago
+++ tdecmshell/main.cpp
@@ -98,0 +99,6 @@
+
+ if (path.left(4) == "tde-")
+ path.replace(0,4,"tde/");
+ else
+ path.prepend("tde/");
+
@@ -101 +107 @@
- kdWarning(780) &lt;&lt; "Could not find module '" &lt;&lt; module &lt;&lt; "'." &lt;&lt; endl;
+ kdError(780) &lt;&lt; "Could not find '" &lt;&lt; path &lt;&lt; "'." &lt;&lt; endl;
EOF
</code>
<span class="dastx">##</span> Configuration files are in /etc/tde, and plugins in $INSTALL_TDE/lib$LIBDIRSUFFIX/tde
<code class="thtwo">for file in \
tdecore/kstandarddirs.cpp \
tdecore/kcrash.cpp \
tdeinit/lnusertemp.c \
tdeinit/tdeinit.cpp \
tdeinit/wrapper.c \
tdelfeditor/tdelfeditor.cpp \
tdeio/tests/kurifiltertest.cpp \
tdeio/tests/kmimetypetest.sh.cmake \
tdeio/tests/jobtest.cpp \
tdeio/kssl/kopenssl.cc \
tdeinit/tdestartupconfig.cpp \
tdecore/tdeconfig_compiler/tests/test9main.cpp
6 years ago
do
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|g" $file || true
done
sed -i "s|\"trinity\"|\"$PLUGIN_INSTALL_DIR\"|" tdecore/tdeapplication.cpp || true
6 years ago
</code>
<span class="dastx">##</span> Patching for preferred formatting of help files
<code class="thtwo">patch -N -p0 &lt;&lt; EOF || true
--- doc/common/tde-docs.css
+++ doc/common/tde-docs.css
<span class="dastx">#</span>
<span class="dastx">##</span> tone down menu items highlighting
@@ -176,6 +176,6 @@
.guilabel, .interface, .guibutton {
- background-color: rgb(220, 220, 220);
+ background-color: #f0f0f0;
color: black;
border: 1px solid rgb(190, 190, 190);
-
+ padding:0px 1px;
-khtml-border-radius: 3px;
<span class="dastx">#</span>
<span class="dastx">##</span> for the <keycap> tags
@@ -199 +199 @@
- background-color: #DFDFFF;
+ background-color: #efefef;
@@ -201 +201,6 @@
-
+ padding-left: 1px;
+ padding-right: 1px;
+ border-style: solid;
+ border-width: 0px 1px;
+ border-color: lightgray;
+ color:gray;
@@ -209 +214 @@
- border 2px solid gray;
+ border: 2px solid gray;
<span class="dastx">#</span>
<span class="dastx">##</span> left justify text in the <para> tags in index.docbook
--- doc/common/tde-default.css
+++ doc/common/tde-default.css
@@ -211 +211 @@
- text-align: justify;
+ text-align: left;
@@ -319 +319 @@
- text-align: justify;
+ text-align: left;
EOF
</code>
<span class="dastx">##</span> Build without spell checker installed
<span class="dastx">##</span> Otherwise, install Aspell, or Hspell, or Ispell &hellip;
<code class="thtwo">sed -i 's|^.*Spell checker selected as default.*$|message( STATUS " ## no spell checker selected ##" )|' CMakeLists.txt
</code>
6 years ago
<code class="thtwo">chown_fn
cd_builddir_fn
</code>
<span class="dastx">##</span> Add exitcodes for try_run tests which produce a cmake error when x-compiling, unless CMAKE_CROSSCOMPILING_EMULATOR is set
<span class="dastx">##</span> Set exitcodes to values that a native build would give
6 years ago
<span class="dastx">##</span> Additionally, command line '-D HAVE_xxxxx_EXITCODE:STRING=x' option fails with cmake 3.12, so these builds use cmake 3.10
<code class="thtwo"><span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D HAVE_GOOD_GETADDRINFO_EXITCODE:STRING=0 \
-D HAVE_OPENPTY_EXITCODE:STRING=0 \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DSYSCONF_INSTALL_DIR=$SYS_CNF_DIR \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DCMAKE_SKIP_RPATH="OFF" \
-DCMAKE_INSTALL_RPATH=$INSTALL_TDE/lib$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
-DTDE_MALLOC="OFF" \
-DTDE_MALLOC_DEBUG="OFF" \
-DTDE_MALLOC_FULL="OFF" \
-DWITH_ALSA="ON" \
-DWITH_ARTS="ON" \
6 years ago
-DWITH_ASPELL="OFF" \
-DWITH_AVAHI=${AVAHI:-"OFF"} \
-DWITH_CONSOLEKIT="OFF" \
-DWITH_CUPS="ON" \
-DWITH_DEVKITPOWER="ON" \
-DWITH_ELFICON="OFF" \
-DWITH_GAMIN="OFF" \
-DWITH_GCC_VISIBILITY="OFF" \
-DWITH_HAL="OFF" \
-DWITH_HSPELL="OFF" \
-DWITH_INOTIFY="ON" \
-DWITH_ISPELL="OFF" \
-DWITH_JASPER="OFF" \
-DWITH_KDE4_MENU_SUFFIX="ON" \
6 years ago
-DWITH_LIBART="ON" \
-DWITH_LIBBFD="OFF" \
-DWITH_LIBIDN="OFF" \
-DWITH_LOGINDPOWER="ON" \
-DWITH_LUA="OFF" \
6 years ago
-DWITH_LZMA="ON" \
-DWITH_MITSHM="OFF" \
-DWITH_NETWORK_MANAGER_BACKEND="ON" \
-DWITH_OLD_XDG_STD="OFF" \
-DWITH_OPENEXR="ON" \
-DWITH_PCRE="ON" \
-DWITH_SSL="ON" \
-DWITH_SUDO_TDESU_BACKEND="ON" \
-DWITH_TDEHWLIB="ON" \
-DWITH_TDEHWLIB_DAEMONS="ON" \
-DWITH_TDEICONLOADER_DEBUG="OFF" \
-DWITH_TIFF="ON" \
6 years ago
-DWITH_UDISKS2="ON" \
-DWITH_UDISKS="ON" \
-DWITH_UPOWER="OFF" \
-DWITH_UTEMPTER="OFF" \
-DWITH_XCOMPOSITE="ON" \
-DWITH_XRANDR="ON" \
6 years ago
-Wno-dev \
..
6 years ago
<span class="dastx">##</span> Modify paths so that SYSROOT headers and libs are used, to avoid this error:
6 years ago
<span class="dastx">##</span> error: /usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or directory
<span class="dastx">##</span> The alternative is to modify FindPkgConfig.cmake to prefix the INCLUDEDIR and LIBDIR results with ${CMAKE_SYSROOT}, but as this issue only surfaces here and that's a system file, let's keep the change local:
6 years ago
sed -i "s|=/usr/include|=$SYSROOT/usr/include|" CMakeCache.txt
sed -i "s|=/usr/lib$LIBDIRSUFFIX|=$SYSROOT/usr/lib$LIBDIRSUFFIX|" CMakeCache.txt
6 years ago
<span class="dastx">##</span> Quick fix for:
<span class="dastx">##</span> /bin/sh: dcopidl2cpp: command not found
<span class="dastx">##</span> /bin/sh: tdeconfig_compiler: command not found
<span class="dastx">##</span> /bin/sh: meinproc: command not found
PATH=$PATH:$PWD/dcop/dcopidl2cpp:$PWD/tdecore/tdeconfig_compiler:$PWD/kdoctools
6 years ago
make $NUMJOBS
make DESTDIR=$PKG install
<span class="dastx">##</span> remove sysroot paths to libz.so, libjpeg.so, and libasound.so from package
6 years ago
sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/share/cmake/tdelibs.cmake
</code>
<code class="thtwo">strip_fn
6 years ago
mkdir_install_fn
doinst_sh_fn
</code>
<code class="thtwo">makepkg_fn
6 years ago
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
<span class="dastx">##</span> prefix paths with SYSROOT for build.make => link.txt dependencies for cmake builds for consistency with pkg-config paths
sed -i "s|\"$INSTALL_TDE|\"$SYSROOT$INSTALL_TDE|" {,$SYSROOT}$INSTALL_TDE/share/cmake/tdelibs.cmake
<span class="dastx">##</span> reinstate the sysroot paths stripped out of the package for libz, libjpeg, libasound
sed -i "s|;/usr|;$SYSROOT/usr|" {,$SYSROOT}$INSTALL_TDE/share/cmake/tdelibs.cmake
</code></code>
<span class="tabs"><a href="#close_tdelibs">close</a></span>
</div>
<br></div>
<!-- tdelibs - end -->
6 years ago
<p>
<!-- tdebase - start -->
6 years ago
<a name="close_tdebase"></a>
<br>
<span class="tabs reqd"><a href="#tdebase">&hellip; tdebase</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdebase" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdebase">close</a></span>
<code><code class="thtwo">cd /
6 years ago
PRGNAM=tdebase
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
</code>
<span class="dastx">##</span> picking up the wrong limits.h - MAX_PATH not defined
<code class="thtwo">sed -i 's|&lt;limits.h>|&amp;\n#include &lt;linux/limits.h>|' kcontrol/krdb/krdb.cpp
sed -i '20s|^|#include &lt;linux/limits.h>|' kdesktop/lock/lockprocess.cc
</code>
<span class="dastx">##</span> make default tdm screen text clearer against dark background and align login button with clickable area
<span class="dastx">##</span> edit color="#ffff74" and/or color="#ff0000" for your own choice
<code class="thtwo">echo $'
--- tdm/kfrontend/themes/o2_enterprise/enterprise.xml
+++ tdm/kfrontend/themes/o2_enterprise/enterprise.xml
@@ -12 +12 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#000000" font="Sans 10" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#ffff74" font="Sans 10" />
6 years ago
@@ -39 +39 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos width="box" x="540" y="188" anchor="c" height="box" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos width="38" x="540" y="188" anchor="c" height="box" />
6 years ago
@@ -42 +42 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos x="90%" y="50%" anchor="c" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos x="40%" y="50%" anchor="c" />
6 years ago
@@ -59 +59 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#000000" font="Sans Condensed 10" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#ffff74" font="Sans Condensed 10" />
6 years ago
@@ -64 +64 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#000000" font="Sans Condensed 10" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#ffff74" font="Sans Condensed 10" />
6 years ago
@@ -86,2 +86,2 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos x="435" y="293" anchor="s" />
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#CD0000" font="Sans 10" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos x="435" y="240" anchor="s" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#ff0000" font="Sans 11" />
6 years ago
@@ -93,2 +93,2 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#CD0000" font="Sans 10" />
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos x="435" y="323" anchor="s" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;normal color="#ff0000" font="Sans 11" />
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>&lt;pos x="435" y="260" anchor="s" />
6 years ago
' | while read line
do
patch -p0
done
</code>
<span class="dastx">##</span> enable konqueror filemanagement ViewMode to be set - TDE bug 1963
<code class="thtwo">echo $'
--- konqueror/listview/konq_detailedlistview.desktop
+++ konqueror/listview/konq_detailedlistview.desktop
@@ -86,0 +87 @@
+X-TDE-BrowserView-Built-Into=konqueror
--- konqueror/iconview/konq_iconview.desktop
+++ konqueror/iconview/konq_iconview.desktop
@@ -87,0 +88 @@
+X-TDE-BrowserView-Built-Into=konqueror
--- konqueror/iconview/konq_multicolumnview.desktop
+++ konqueror/iconview/konq_multicolumnview.desktop
@@ -87,0 +88 @@
+X-TDE-BrowserView-Built-Into=konqueror
--- konqueror/listview/konq_infolistview.desktop
+++ konqueror/listview/konq_infolistview.desktop
@@ -84,0 +85 @@
+X-TDE-BrowserView-Built-Into=konqueror
--- konqueror/listview/konq_textview.desktop
+++ konqueror/listview/konq_textview.desktop
@@ -87,0 +88 @@
+X-TDE-BrowserView-Built-Into=konqueror
--- konqueror/listview/konq_treeview.desktop
+++ konqueror/listview/konq_treeview.desktop
@@ -87,0 +88 @@
+X-TDE-BrowserView-Built-Into=konqueror
' | while read line
do
patch -p0
done
</code>
<span class="dastx">##</span> Configuration files are in /etc/tde, and plugins in $INSTALL_TDE/lib$LIBDIRSUFFIX/tde
<code class="thtwo">sed -i "s|trinity|$PLUGIN_INSTALL_DIR|g" tdm/config.def || true
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|" tdm/kfrontend/gentdmconf.c || true
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|" kcontrol/hwmanager/devicepropsdlg.cpp || true
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|" tdeioslave/trash/testtrash.cpp || true
</code>
<code class="thtwo">patch -N -p0 &lt;&lt; EOF || true
--- translations/desktop_files/kcontrol-desktops/en_GB.po
+++ translations/desktop_files/kcontrol-desktops/en_GB.po
@@ -1355,3 +1355,3 @@
msgid "Configure display ICC color profile"
-msgstr ""
+msgstr "Configure display ICC colour profile"
@@ -1360,3 +1360,3 @@
msgid "ICC;display;color;profile;"
-msgstr ""
+msgstr "ICC;display;colour;profile;"
@@ -1365,3 +1365,3 @@
msgid "Color Profile"
-msgstr ""
+msgstr "Colour Profile"
EOF
</code>
6 years ago
<code class="thtwo">chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D HAVE_OPENPTY_EXITCODE:STRING=0 \
-D HAVE_NOGROUP_EXITCODE:STRING=0 \
-D HAVE_SETLOGIN_EXITCODE:STRING=1 \
-D HONORS_SOCKET_PERMS_EXITCODE:STRING=0 \
-D COVARIANT_RETURN_EXITCODE:STRING=0 \
-D HTDIG_SEARCH_BINARY=$SYSROOT/var/www/cgi-bin/htsearch \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DSYSCONF_INSTALL_DIR=$SYS_CNF_DIR \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
-DWITH_ARTS="ON" \
-DWITH_ELFICON="OFF" \
-DWITH_GCC_VISIBILITY="OFF" \
-DWITH_HAL="OFF" \
-DWITH_I8K="OFF" \
-DWITH_LDAP="OFF" \
-DWITH_LIBART="ON" \
-DWITH_LIBCONFIG="OFF" \
-DWITH_LIBRAW1394="OFF" \
-DWITH_LIBUSB="OFF" \
6 years ago
-DWITH_OPENEXR="ON" \
-DWITH_OPENGL="ON" \
6 years ago
-DWITH_PAM="OFF" \
-DWITH_PCRE="ON" \
-DWITH_SAMBA="OFF" \
-DWITH_SASL="OFF" \
-DWITH_SENSORS="OFF" \
6 years ago
-DWITH_SHADOW="ON" \
-DWITH_SUDO_KONSOLE_SUPER_USER_COMMAND="ON" \
-DWITH_SUDO_TDESU_BACKEND="ON" \
-DWITH_TDEHWLIB="ON" \
-DWITH_UPOWER="ON" \
-DWITH_XCOMPOSITE="ON" \
-DWITH_XCURSOR="ON" \
-DWITH_XDMCP="ON" \
6 years ago
-DWITH_XFIXES="ON" \
-DWITH_XINERAMA="ON" \
6 years ago
-DWITH_XRANDR="ON" \
-DWITH_XRENDER="ON" \
-DWITH_XSCREENSAVER="OFF" \
-DWITH_XTEST="ON" \
-DBUILD_APPLNK="ON" \
-DBUILD_CRASHTEST="ON" \
-DBUILD_DOC="ON" \
-DBUILD_DRKONQI="ON" \
-DBUILD_KAPPFINDER="ON" \
-DBUILD_KATE="ON" \
-DBUILD_KCHECKPASS="ON" \
-DBUILD_KCMINIT="ON" \
-DBUILD_KCONTROL="ON" \
-DBUILD_KDCOP="ON" \
-DBUILD_KDESKTOP="ON" \
-DBUILD_KDIALOG="ON" \
-DBUILD_KFIND="ON" \
-DBUILD_KHELPCENTER="ON" \
-DBUILD_KHOTKEYS="ON" \
-DBUILD_KICKER="ON" \
-DBUILD_KLIPPER="ON" \
-DBUILD_KMENUEDIT="ON" \
-DBUILD_KNETATTACH="ON" \
-DBUILD_KONQUEROR="ON" \
-DBUILD_KONSOLE="ON" \
-DBUILD_KPAGER="ON" \
-DBUILD_KPERSONALIZER="ON" \
-DBUILD_KREADCONFIG="ON" \
-DBUILD_KROOTBACKING="ON" \
-DBUILD_KSMSERVER="ON" \
-DBUILD_KSPLASHML="ON" \
-DBUILD_KSTART="ON" \
-DBUILD_KSYSGUARD="ON" \
-DBUILD_KSYSTRAYCMD="ON" \
-DBUILD_KTIP="ON" \
-DBUILD_KXKB="ON" \
-DBUILD_L10N="ON" \
-DBUILD_LIBKONQ="ON" \
-DBUILD_NSPLUGINS="ON" \
-DBUILD_PICS="ON" \
-DBUILD_PROFILE_SHUTDOWN="OFF" \
-DBUILD_STARTTDE="ON" \
-DBUILD_TDEDEBUGDIALOG="ON" \
-DBUILD_TDEEJECT="ON" \
-DBUILD_TDEINIT="ON" \
-DBUILD_TDEIOSLAVES="ON" \
-DBUILD_TDEKBDLEDSYNC="ON" \
-DBUILD_TDEPASSWD="ON" \
-DBUILD_TDEPRINT="ON" \
-DBUILD_TDESCREENSAVER="ON" \
-DBUILD_TDESU="ON" \
-DBUILD_TDM="ON" \
-DBUILD_TQT3INTEGRATION="ON" \
-DBUILD_TSAK="ON" \
-DBUILD_TWIN="ON" \
6 years ago
-Wno-dev \
..
<span class="dastx">##</span> If the linker has decided it can't find some libs to build kicker even though they've been built,
<span class="dastx">##</span> editing kicker.dir/link.txt and rerunning make works:
make $NUMJOBS || \
[[ ! -e ./kicker/kicker/kicker ]] &amp;&amp; {
sed -i 's|^.*$|&amp; ../../libkonq/libkonq.so.4 ./interfaces/libkickoffsearch_interfaces.so.0|' ./kicker/kicker/CMakeFiles/kicker.dir/link.txt &amp;&amp; \
6 years ago
make $NUMJOBS
}
6 years ago
make DESTDIR=$PKG install
<span class="dastx">##</span> remove sysroot path from package
sed -i "s|$SYSROOT||" $PKG$INSTALL_TDE/bin/khc_htsearch.pl
strip_fn
</code>
<code class="thtwo"><span class="dastx">##</span> Add xinitrc:
6 years ago
mkdir -p $PKG/etc/X11/xinit
echo $"#!""/bin/sh
userresources=\$HOME/.Xresources
usermodmap=\$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
if [ -f \$sysresources ]; then
/usr/bin/xrdb -merge \$sysresources
fi
if [ -f \$sysmodmap ]; then
/usr/bin/xmodmap \$sysmodmap
fi
if [ -f \$userresources ]; then
/usr/bin/xrdb -merge \$userresources
fi
if [ -f \$usermodmap ]; then
/usr/bin/xmodmap \$usermodmap
fi
if [ -z \"\$DESKTOP_SESSION\" -a -x /usr/bin/ck-launch-session ]; then
exec ck-launch-session dbus-launch --exit-with-session $INSTALL_TDE/bin/starttde
else
exec dbus-launch --exit-with-session $INSTALL_TDE/bin/starttde
fi
" > $PKG/etc/X11/xinit/xinitrc.tde
chmod 755 $PKG/etc/X11/xinit/xinitrc.tde
(cd $PKG/etc/X11/xinit/
ln -sf xinitrc.tde xinitrc)
</code>
<code class="thtwo">mkdir -p $PKG/etc/profile.d
echo '#!'"/bin/sh
6 years ago
# TDE additions:
export TDEDIR=$INSTALL_TDE
# upgradepkg runs installpkg twice, so test for the second run:
[[ \"\$XDG_CONFIG_DIRS\" != *$SYS_CNF_DIR/xdg* ]] &amp;&amp; {
6 years ago
if [ ! \"\$XDG_CONFIG_DIRS\" = \"\" ]; then
export XDG_CONFIG_DIRS=\$XDG_CONFIG_DIRS:$SYS_CNF_DIR/xdg
6 years ago
else
export XDG_CONFIG_DIRS=/etc/xdg:$SYS_CNF_DIR/xdg
6 years ago
fi
}
## Re: https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html
## If XDG_DATA_DIRS is null or unset, the default is /usr/local/share:/usr/share
[[ \$XDG_DATA_DIRS == \"\" ]] &amp;&amp; \\
export XDG_DATA_DIRS=/usr/local/share:/usr/share:$INSTALL_TDE/share || {
[[ \$XDG_DATA_DIRS != *$INSTALL_TDE/share* ]] &amp;&amp; \\
export XDG_DATA_DIRS=\$XDG_DATA_DIRS:$INSTALL_TDE/share
}
6 years ago
" > $PKG/etc/profile.d/tde.sh
6 years ago
chmod 755 $PKG/etc/profile.d/tde.sh
</code>
<code class="thtwo"># Add some configuration files / scripts needed by TDE.
mkdir -p $PKG$SYS_CNF_DIR
6 years ago
mv $PKG$INSTALL_TDE/share/config/tdm $PKG$SYS_CNF_DIR/tdm
( cd $PKG$INSTALL_TDE/share/config ; ln -sf $SYS_CNF_DIR/tdm tdm )
# Add rc.4.local to give TDM priority over rc.4 X11 session manager options
# Assumes that rc.4.new from sysvinit-scripts still has the rc.4.local option
mkdir $PKG/etc/rc.d
echo $"#!""/bin/sh
# Start TDM:
if [ -x $INSTALL_TDE/bin/tdm ]; then
echo \"Using TDM (Trinity Login Manager).\"
echo
# log_cleanup \"/var/log/tdm.log\"
exec $INSTALL_TDE/bin/tdm -nodaemon -error /var/log/tdm.log
fi
" > $PKG/etc/rc.d/rc.4.local
chmod 755 $PKG/etc/rc.d/rc.4.local
</code>
<code class="thtwo"># Set sane permissions for the include files.
6 years ago
if [ -d $PKG$INSTALL_TDE/include ]; then
find $PKG$INSTALL_TDE/include -type f -exec chmod 0644 {} \;
fi
</code>
<code class="thtwo"># Set up config files for TDM:
6 years ago
$PKG$INSTALL_TDE/bin/gentdmconf --no-old --no-old-scripts --no-backup --in $PKG$SYS_CNF_DIR/tdm
<span class="dastx">##</span> set correct paths for config files
sed -i "s|$INSTALL_TDE/share/config/tdm/|$SYS_CNF_DIR/tdm/|" $PKG$SYS_CNF_DIR/tdm/tdmrc
# Allow root to login
sed 's|AllowRootLogin=false|AllowRootLogin=true|' $PKG$SYS_CNF_DIR/tdm/tdmrc > $PKG$SYS_CNF_DIR/tdm/tdmrc.new
<span class="dastx">##</span> Remove tdmrc which has AllowRootLogin=false set and would be used for a new installation
<span class="dastx">##</span> The installed tdmrc will be created by doinst.sh from tdmrc.new if it doesn't exist
rm $PKG$SYS_CNF_DIR/tdm/tdmrc
mv $PKG$SYS_CNF_DIR/tdm/Xsession $PKG$SYS_CNF_DIR/tdm/Xsession.orig
</code>
<code class="thtwo">echo $"#!""/bin/sh
6 years ago
# Xsession - run as user
# Merged in parts of the old Xsession to load defaults from
# Xresources and Xmodmap files, 2006-02-09 volkerdi
session=\$1
# This section is borrowed from the old X11 Xsession file:
userresources=\$HOME/.Xresources
usermodmap=\$HOME/.Xmodmap
sysresources=/usr/lib/X11/xinit/.Xresources
sysmodmap=/usr/lib/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -r \$sysresources ]; then
/usr/bin/xrdb -merge \$sysresources
fi
if [ -r \$sysmodmap ]; then
/usr/bin/xmodmap \$sysmodmap
fi
if [ -r \$userresources ]; then
/usr/bin/xrdb -merge \$userresources
fi
if [ -r \$usermodmap ]; then
/usr/bin/xmodmap \$usermodmap
fi
# Note that the respective logout scripts are not sourced.
case \$SHELL in
*/bash)
[ -z \"\$BASH\" ] &amp;&amp; exec \$SHELL \$0 \"\$@\"
set +o posix
[ -f /etc/profile ] &amp;&amp; . /etc/profile
if [ -f \$HOME/.bash_profile ]; then
. \$HOME/.bash_profile
elif [ -f \$HOME/.bash_login ]; then
. \$HOME/.bash_login
elif [ -f \$HOME/.profile ]; then
. \$HOME/.profile
fi
;;
*/zsh)
[ -z \"\$ZSH_NAME\" ] &amp;&amp; exec \$SHELL \$0 \"\$@\"
emulate -R zsh
[ -d /etc/zsh ] &amp;&amp; zdir=/etc/zsh || zdir=/etc
zhome=\${ZDOTDIR:-\$HOME}
# zshenv is always sourced automatically.
[ -f \$zdir/zprofile ] &amp;&amp; . \$zdir/zprofile
[ -f \$zhome/.zprofile ] &amp;&amp; . \$zhome/.zprofile
[ -f \$zdir/zlogin ] &amp;&amp; . \$zdir/zlogin
[ -f \$zhome/.zlogin ] &amp;&amp; . \$zhome/.zlogin
;;
*/csh|*/tcsh)
# [t]cshrc is always sourced automatically.
# Note that sourcing csh.login after .cshrc is non-standard.
xsess_tmp=`mktemp`
\$SHELL -c \"if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c export >! \$xsess_tmp\"
. \$xsess_tmp
rm -f \$xsess_tmp
;;
*) # Plain sh, ksh, and anything we don't know.
[ -f /etc/profile ] &amp;&amp; . /etc/profile
[ -f \$HOME/.profile ] &amp;&amp; . \$HOME/.profile
;;
esac
[ -f /etc/xprofile ] &amp;&amp; . /etc/xprofile
[ -f \$HOME/.xprofile ] &amp;&amp; . \$HOME/.xprofile
case \$session in
\"\")
exec xmessage -center -buttons OK:0 -default OK \"Sorry, \$DESKTOP_SESSION is no valid session.\"
;;
failsafe)
exec xterm -geometry 80x24-0-0
;;
custom)
exec \$HOME/.xsession
;;
default)
exec $INSTALL_TDE/bin/starttde
;;
*)
eval exec \"\$session\"
;;
esac
exec xmessage -center -buttons OK:0 -default OK \"Sorry, cannot execute \$session. Check \$DESKTOP_SESSION.desktop.\"
" > $PKG$SYS_CNF_DIR/tdm/Xsession
</code>
<code class="thtwo">mv $PKG$SYS_CNF_DIR/tdm/backgroundrc $PKG$SYS_CNF_DIR/tdm/backgroundrc.new
[[ -r $PKG$SYS_CNF_DIR/tdm/README ]] &amp;&amp; \
sed -i "s|$TMP_BUILD/package-tdebase$SYS_CNF_DIR/tdm|$SYS_CNF_DIR/tdm|" $PKG$SYS_CNF_DIR/tdm/README
</code>
<code class="thtwo">mkdir_install_fn
6 years ago
<span class="dastx">##</span> set up doinst.sh
echo $"# Save old config files:
if [ ! -L etc/X11/tdm ]; then
if [ -d etc/X11/tdm ]; then
mkdir -p .$SYS_CNF_DIR/tdm
cp -a etc/X11/tdm/* .$SYS_CNF_DIR/tdm
rm -rf etc/X11/tdm
( cd etc/X11 ; ln -sf ../..$SYS_CNF_DIR/tdm tdm )
elif [ ! -e etc/X11/tdm ]; then
mkdir -p etc/X11
( cd etc/X11 ; ln -sf ../..$SYS_CNF_DIR/tdm tdm )
fi
fi
config() {
NEW=\"\$1\"
OLD=\"\$(dirname \$NEW)/\$(basename \$NEW .new)\"
# If there's no config file by that name, mv it over:
if [ ! -r \$OLD ]; then
mv \$NEW \$OLD
elif [ \"\$(cat \$OLD | md5sum)\" = \"\$(cat \$NEW | md5sum)\" ]; then # toss the redundant copy
rm \$NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config .$SYS_CNF_DIR/tdm/tdmrc.new
config .$SYS_CNF_DIR/tdm/backgroundrc.new
# Update the desktop database:
\$(which update-desktop-database) $INSTALL_TDE/share/applications
# Update the mime database:
\$(which update-mime-database) /usr/share/mime
# Update hicolor theme cache:
\$(which gtk-update-icon-cache) -f -t $INSTALL_TDE/share/icons/hicolor
# update PATH
# upgradepkg runs this twice, so even though $TQTDIR/bin will be
# a new PATH, it needs to be tested for the second run
if ! grep $INSTALL_TDE/bin /etc/profile
then
echo \"PATH=\\\$PATH:$INSTALL_TDE/bin:$TQTDIR/bin\" >> /etc/profile
else
if ! grep $TQTDIR/bin /etc/profile
then
echo \"PATH=\\\$PATH:$TQTDIR/bin\" >> /etc/profile
fi
fi
# update MANPATH
if ! grep $INSTALL_TDE/man /etc/profile
then
echo \"export MANPATH=\\\$MANPATH:$INSTALL_TDE/man\" >> /etc/profile
fi
<span class="dastx">##</span> you may not want to do this <span class="dastx">##</span>
# start a 'konsole' with system-wide profile
[[ ! \$(grep -x \"source /etc/profile\" \$HOME/.bashrc ) ]] &amp;&amp; echo \"source /etc/profile\" >> \$HOME/.bashrc || true
# don't want this
sed -i 's|source /etc/profile.d/mc.sh|#source /etc/profile.d/mc.sh|' \$HOME/.bashrc || true
<span class="dastx">##</span> set default runlevel to 4 for tdm
6 years ago
sed -i 's|id:[1-5]|id:4|' etc/inittab
" > $PKG/install/doinst.sh
<span class="dastx">##</span> set TDEHOME and TDEROOTHOME variables - defaults ~/.trinity and /root/.trinity
echo "# upgradepkg runs installpkg twice, so firstly remove any previous TDE*HOME entries
sed -i '/TDE.*HOME/d' /etc/profile
echo 'export TDEHOME=~/.tde' >> /etc/profile
echo 'export TDEROOTHOME=/root/.tde' >> /etc/profile
" >> $PKG/install/doinst.sh
</code>
<code class="thtwo">makepkg_fn
6 years ago
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
<span class="dastx">##</span> prefix paths with SYSROOT for build.make => link.txt dependencies for cmake builds for consistency with pkg-config paths
sed -i "s|\"$INSTALL_TDE|\"$SYSROOT$INSTALL_TDE|g" {,$SYSROOT}$INSTALL_TDE/share/cmake/*.cmake
</code></code>
Build times
= 19:59 on x86_64 for x86_64
= 24:02 on x86_64 for RPi3 using tqmoc and meinproc x86_64 binaries
6 years ago
= 33:01 on x86_64 for RPi3 with tqmoc x86_64 &amp; meinproc arm
= 49:01 on RPi3 for RPi3
<span class="tabs"><a href="#close_tdebase">close</a></span>
</div>
<br></div>
<!-- tdebase - end -->
6 years ago
<p>
<!-- tdeaddons - start -->
6 years ago
<a name="close_tdeaddons"></a>
<br>
<span class="tabs"><a href="#tdeaddons">&hellip; tdeaddons</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdeaddons" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdeaddons">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=tdeaddons
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
<span class="dastx">##</span> enable 'ar' compression in Compress As menu
patch -N -p0 &lt;&lt; EOF || true
--- konq-plugins/arkplugin/arkplugin.cpp
+++ konq-plugins/arkplugin/arkplugin.cpp
@@ -347 +347 @@
- if ( !TDEStandardDirs::findExe( "ar" ).isNull() &amp;&amp; m_conf->readBoolEntry( "UseAr", false ) )
+ if ( !TDEStandardDirs::findExe( "ar" ).isNull() &amp;&amp; m_conf->readBoolEntry( "UseAr", true ) )
EOF
6 years ago
chown_fn
<span class="dastx">##</span> check for libatlantic [tdegames]
[[ $(ls $SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/libatlantic.so.*) ]] &amp;&amp; ATLANTIKDESIGNER="ON"
6 years ago
<span class="dastx">##</span> check for kaddressbook in tdepim
[[ $(ls $SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/libkaddressbook.so*) ]] &amp;&amp; KADDRESSBOOK_PLUGINS="ON"
6 years ago
<span class="dastx">##</span> check for tdemultimedia
[[ $(ls $SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/libnoatun.so*) ]] &amp;&amp; NOATUN_PLUGINS="ON"
6 years ago
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DSYSCONF_INSTALL_DIR=$SYS_CNF_DIR \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
-DWITH_ARTS="ON" \
-DWITH_SDL="ON" \
-DWITH_BERKELEY_DB="ON" \
-DWITH_XMMS="OFF" \
-DWITH_TEST="OFF" \
-DBUILD_DOC="ON" \
6 years ago
-DBUILD_ATLANTIKDESIGNER=${ATLANTIKDESIGNER:-"OFF"} \
-DBUILD_KADDRESSBOOK_PLUGINS=${KADDRESSBOOK_PLUGINS:-"OFF"} \
-DBUILD_NOATUN_PLUGINS=${NOATUN_PLUGINS:-"OFF"} \
-DBUILD_KATE_PLUGINS="ON" \
-DBUILD_KICKER_APPLETS="ON" \
-DBUILD_KNEWSTICKER_SCRIPTS="ON" \
-DBUILD_KONQ_PLUGINS="ON" \
-DBUILD_KSIG="ON" \
-DBUILD_RENAMEDLG_PLUGINS="ON" \
-DBUILD_TDEFILE_PLUGINS="ON" \
-DBUILD_TUTORIALS="OFF" \
6 years ago
-Wno-dev \
..
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
doinst_sh_fn
6 years ago
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_tdeaddons">close</a></span>
</div>
<br></div>
<!-- tdeaddons - end -->
6 years ago
<p>
<!-- tdeutils - start -->
6 years ago
<a name="close_tdeutils"></a>
<br>
<span class="tabs"><a href="#tdeutils">&hellip; tdeutils</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdeutils" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdeutils">close</a></span>
<code class="thtwo">cd /
PRGNAM=tdeutils
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
6 years ago
-DWITH_DPMS="ON" \
-DWITH_XSCREENSAVER="OFF" \
-DWITH_SENSORS="ON" \
-DWITH_SNMP="OFF" \
-DWITH_ASUS="OFF" \
-DWITH_POWERBOOK="OFF" \
-DWITH_POWERBOOK2="OFF" \
-DWITH_VAIO="OFF" \
-DWITH_THINKPAD="OFF" \
-DWITH_I8K="OFF" \
-DWITH_XMMS="OFF" \
-DWITH_TDENEWSTUFF="OFF" \
-DBUILD_DOC="ON" \
-DBUILD_ARK="ON" \
-DBUILD_CHARSELECTAPPLET="ON" \
-DBUILD_KCALC="ON" \
-DBUILD_KCHARSELECT="ON" \
-DBUILD_TDELIRC="ON" \
-DBUILD_TDESSH="ON" \
-DBUILD_KDF="ON" \
-DBUILD_KEDIT="ON" \
-DBUILD_KFLOPPY="ON" \
-DBUILD_KGPG="ON" \
-DBUILD_KHEXEDIT="ON" \
-DBUILD_KJOTS="ON" \
-DBUILD_KLAPTOPDAEMON="ON" \
-DBUILD_KMILO="ON" \
-DBUILD_KREGEXPEDITOR="ON" \
-DBUILD_KSIM="ON" \
-DBUILD_KTIMER="ON" \
-DBUILD_TDEWALLET="ON" \
-DBUILD_SUPERKARAMBA="ON" \
6 years ago
-Wno-dev \
..
<span class="dastx">##</span> Quick fix for:
<span class="dastx">##</span> /bin/sh: makecrc: command not found
PATH=$PATH:$PWD/klaptopdaemon
6 years ago
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
doinst_sh_fn
6 years ago
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code>
<span class="tabs"><a href="#close_tdeutils">close</a></span>
</div>
<br></div>
<!-- tdeutils - end -->
6 years ago
5 years ago
<p>
<!-- tdeartwork - start -->
<a name="close_tdeartwork"></a>
<br>
<span class="tabs"><a href="#tdeartwork">&hellip; tdeartwork</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdeartwork" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdeartwork">close</a></span>
<code class="thtwo">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
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
5 years ago
cmake-toolchain_fn
cmake \
5 years ago
-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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
5 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
5 years ago
-DWITH_ARTS="ON" \
-DWITH_XSCREENSAVER="OFF" \
-DWITH_LIBART="ON" \
-DWITH_OPENGL="ON" \
-DBUILD_EMOTICONS="ON" \
-DBUILD_ICEWM_THEMES="ON" \
-DBUILD_ICON_THEMES="ON" \
-DBUILD_TDESCREENSAVER="ON" \
-DBUILD_TWIN_STYLES="ON" \
-DBUILD_KWORLDCLOCK="ON" \
-DBUILD_SOUNDS="ON" \
-DBUILD_STYLES="ON" \
-DBUILD_WALLPAPERS="ON" \
5 years ago
-Wno-dev \
..
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
doinst_sh_fn
5 years ago
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
</code>
<span class="tabs"><a href="#close_tdeartwork">close</a></span>
</div>
<br></div>
<!-- tdeartwork - end -->
6 years ago
<p>
<!-- imlib - start -->
6 years ago
<a name="close_imlib"></a>
<br>
<span class="tabs opt"><a href="#imlib">&hellip; imlib</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;Required for kuickshow - part of tdegraphics.
</a></span>
<div id="imlib" class="tab"><div class="b_prefs"><span class="tabs"><a href="#close_imlib">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=imlib
VERSION=1.9.15
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
6 years ago
</code>
<span class="dastx">##</span> patches thanks to fedora
<code class="thtwo">echo $'--- Imlib/load.c
+++ Imlib/load.c
@@ -6,0 +7,2 @@
+#define G_MAXINT ((int) 0x7fffffff)
+
@@ -43,0 +46,2 @@
+ * we check G_MAXINT/4 because rend.c malloc\'s w * h * bpp
+ * + 3 is safety margin
@@ -48,3 +52,5 @@
- if( w > 32767 || h > 32767)
- return NULL;
- return malloc(w * h * 3);
+ if (w &lt;= 0 || w > 32767 ||
+ h &lt;= 0 || h > 32767 ||
+ h >= (G_MAXINT/4 - 1) / w)
+ return NULL;
+ return malloc(w * h * 3 + 3);
@@ -194 +200 @@
- if (setjmp(png_ptr->jmpbuf))
+ if (setjmp(png_jmpbuf(png_ptr)))
@@ -199 +205 @@
- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
@@ -257 +263,2 @@
- if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+ if (color_type == PNG_COLOR_TYPE_GRAY
+ || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
@@ -281,0 +289 @@
+#if 0
@@ -296,0 +305 @@
+#endif
@@ -363 +372,3 @@
- if(ww > 32767 || hh > 32767)
+ if (ww &lt;= 0 || ww > 32767 ||
+ hh &lt;= 0 || hh > 32767 ||
+ hh >= (G_MAXINT/sizeof(uint32)) / ww)
@@ -445,0 +457,3 @@
+#ifdef GIFLIB_MAJOR
+ gif = DGifOpenFileHandle(fd, NULL);
+#else
@@ -446,0 +461 @@
+#endif
@@ -453,0 +469,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> fprintf(stderr, "giflib error: %s\\n", GifErrorString(gif->Error));
6 years ago
+#else
@@ -454,0 +473 @@
+#endif
@@ -460,0 +480,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> fprintf(stderr, "giflib error: %s\\n", GifErrorString(gif->Error));
6 years ago
+#else
@@ -461,0 +484 @@
+#endif
@@ -466 +489 @@
-<span class="bkslt">\t</span> if (*h > 32767 || *w > 32767)
+<span class="bkslt">\t</span> if (*h &lt;= 0 || *h > 32767 || *w &lt;= 0 || *w > 32767)
6 years ago
@@ -472,0 +496,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
6 years ago
+#else
@@ -473,0 +500 @@
+#endif
@@ -478,0 +506,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
6 years ago
+#else
@@ -479,0 +510 @@
+#endif
@@ -489,0 +521,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span><span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
6 years ago
+#else
@@ -490,0 +525 @@
+#endif
@@ -578,0 +614,3 @@
+#ifdef GIFLIB_MAJOR
+ DGifCloseFile(gif, NULL);
+#else
@@ -579,0 +618 @@
+#endif
@@ -648 +687 @@
- if (bpp != 1 &amp;&amp; bpp != 4 &amp;&amp; bpp != 8 &amp;&amp; bpp &amp;&amp; 16 &amp;&amp; bpp != 24 &amp;&amp; bpp != 32)
+ if (bpp != 1 &amp;&amp; bpp != 4 &amp;&amp; bpp != 8 &amp;&amp; bpp != 16 &amp;&amp; bpp != 24 &amp;&amp; bpp != 32)
@@ -1002,0 +1042,2 @@
+ memset(lookup, 0, sizeof(lookup));
+
@@ -1003,0 +1045,3 @@
+ if (!line)
+ return NULL;
+
@@ -1032 +1076 @@
- if (ncolors > 32766)
+ if (ncolors &lt;= 0 || ncolors > 32766)
@@ -1038 +1082 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span> if (cpp > 5)
+<span class="bkslt">\t</span><span class="bkslt">\t</span> if (cpp &lt;= 0 || cpp > 5)
6 years ago
@@ -1044 +1088 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*w > 32767)
+<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*w &lt;= 0 || *w > 32767)
6 years ago
@@ -1050 +1094 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*h > 32767)
+<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*h &lt;= 0 || *h > 32767)
6 years ago
@@ -1082,0 +1127 @@
+<span class="bkslt">\t</span><span class="bkslt">\t</span> int space;
6 years ago
@@ -1087,0 +1133 @@
+<span class="bkslt">\t</span><span class="bkslt">\t</span> space = sizeof(col) - 1;
6 years ago
@@ -1110,4 +1156,4 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0])
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strcat(col, " ");
6 years ago
- if (strlen(col) + strlen(s) < sizeof(col))
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strcat(col, s);
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0] &amp;&amp; space > 0)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strcat(col, " "), space -= 1;
6 years ago
+ if (slen &lt;= space)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strcat(col, s), space -= slen;
6 years ago
@@ -1143 +1189,2 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcpy(tok, s);
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (slen < sizeof(tok));
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcpy(tok, s);
6 years ago
@@ -1144,0 +1192 @@
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> space = sizeof(col) - 1;
6 years ago
@@ -1148,3 +1196,4 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0])
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, " ");
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, s);
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0] &amp;&amp; space > 0)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, " "), space -=1;
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (slen &lt;= space)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, s), space -= slen;
6 years ago
@@ -1379 +1428 @@
-<span class="bkslt">\t</span> if (a > 32767)
+<span class="bkslt">\t</span> if (a &lt;= 0 || a > 32767)
6 years ago
@@ -1384 +1433 @@
-<span class="bkslt">\t</span> if (b > 32767)
+<span class="bkslt">\t</span> if (b &lt;= 0 || b > 32767)
6 years ago
--- Imlib/misc.c
+++ Imlib/misc.c
@@ -677,0 +678,4 @@
+
+ id->x.shm = 0;
+ id->x.shmp = 0;
+ id->max_shm = 0;
@@ -693 +697,2 @@
-<span class="bkslt">\t</span> if (XShmPixmapFormat(id->x.disp) == ZPixmap)
+<span class="bkslt">\t</span> if ((XShmPixmapFormat(id->x.disp) == ZPixmap &amp;&amp;
+<span class="bkslt">\t</span><span class="bkslt">\t</span> (pm == True)))
6 years ago
@@ -698 +702,0 @@
- else
@@ -700,4 +704 @@
- {
- id->x.shm = 0;
- id->x.shmp = 0;
- }
+
@@ -955,2 +956,2 @@
-<span class="bkslt">\t</span> if (id->x.shm)
-<span class="bkslt">\t</span> id->x.shmp = p->sharedpixmaps;
+<span class="bkslt">\t</span> if (!p->sharedpixmaps)
+<span class="bkslt">\t</span> id->x.shmp = 0;
6 years ago
--- Imlib/save.c
+++ Imlib/save.c
@@ -345 +345 @@
-<span class="bkslt">\t</span> if (setjmp(png_ptr->jmpbuf))
+<span class="bkslt">\t</span> if (setjmp(png_jmpbuf(png_ptr)))
6 years ago
--- Imlib/utils.c
+++ Imlib/utils.c
@@ -1498,0 +1499 @@
+ memset(lookup, 0, sizeof(lookup));
@@ -1502,0 +1504,15 @@
+ if (!line)
+<span class="bkslt">\t</span>break;
6 years ago
+ line = strdup(line);
+ if (!line)
+<span class="bkslt">\t</span>break;
6 years ago
+ len = strlen(line);
+ for (i = 0; i < len; ++i)
+<span class="bkslt">\t</span>{
+<span class="bkslt">\t</span> c = line[i];
+<span class="bkslt">\t</span> if (c < 32)
+<span class="bkslt">\t</span> line[i] = 32;
+<span class="bkslt">\t</span> else if (c > 127)
+<span class="bkslt">\t</span> line[i] = 127;
+<span class="bkslt">\t</span>}
6 years ago
+
@@ -1507 +1523 @@
-<span class="bkslt">\t</span> if (ncolors > 32766)
+<span class="bkslt">\t</span> if (ncolors &lt;= 0 || ncolors > 32766)
6 years ago
@@ -1510,0 +1527 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1513 +1530 @@
-<span class="bkslt">\t</span> if (cpp > 5)
+<span class="bkslt">\t</span> if (cpp &lt;= 0 || cpp > 5)
6 years ago
@@ -1516,0 +1534 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1519 +1537 @@
-<span class="bkslt">\t</span> if (w > 32767)
+<span class="bkslt">\t</span> if (w &lt;= 0 || w > 32767)
6 years ago
@@ -1522,0 +1541 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1525 +1544 @@
-<span class="bkslt">\t</span> if (h > 32767)
+<span class="bkslt">\t</span> if (h &lt;= 0 || h > 32767)
6 years ago
@@ -1528,0 +1548 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1535,0 +1556 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1544,0 +1566 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1819,0 +1842 @@
+ free(line);
@@ -1961,2 +1984 @@
-
- if (setjmp(png_ptr->jmpbuf))
+ if (setjmp(png_jmpbuf(png_ptr)))
@@ -1968 +1990 @@
- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
--- configure
+++ configure
@@ -22914,2 +22913,0 @@
-CPPFLAGS="$CPPFLAGS -I$includedir -I$prefix/include"
-
--- configure.in
+++ configure.in
@@ -144,2 +143,0 @@
-CPPFLAGS="$CPPFLAGS -I$includedir -I$prefix/include"
-
--- gdk_imlib/io-gif.c
+++ gdk_imlib/io-gif.c
@@ -32,0 +33,3 @@
+#ifdef GIFLIB_MAJOR
+ gif = DGifOpenFileHandle(fd, NULL);
+#else
@@ -33,0 +37 @@
+#endif
@@ -45,0 +50,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> fprintf(stderr, "giflib error: %s\\n", GifErrorString(gif->Error));
6 years ago
+#else
@@ -46,0 +54 @@
+#endif
@@ -52,0 +61,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> fprintf(stderr, "giflib error: %s\\n", GifErrorString(gif->Error));
6 years ago
+#else
@@ -53,0 +65 @@
+#endif
@@ -58 +70 @@
-<span class="bkslt">\t</span> if(*h > 32767 || *w > 32767)
+<span class="bkslt">\t</span> if(*h &lt;= 0 || *h > 32767 || *w &lt;= 0 || *w > 32767)
6 years ago
@@ -64,0 +77,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
6 years ago
+#else
@@ -65,0 +81 @@
+#endif
@@ -70,0 +87,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
6 years ago
+#else
@@ -71,0 +91 @@
+#endif
@@ -81,0 +102,3 @@
+#ifdef GIFLIB_MAJOR
+<span class="bkslt">\t</span><span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
6 years ago
+#else
@@ -82,0 +106 @@
+#endif
@@ -170,0 +195,3 @@
+#ifdef GIFLIB_MAJOR
+ DGifCloseFile(gif, NULL);
+#else
@@ -171,0 +199 @@
+#endif
--- gdk_imlib/io-png.c
+++ gdk_imlib/io-png.c
@@ -43 +43 @@
- if (setjmp(png_ptr->jmpbuf))
+ if (setjmp(png_jmpbuf(png_ptr)))
@@ -49 +49 @@
- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
@@ -278 +278 @@
- if (setjmp(png_ptr->jmpbuf))
+ if (setjmp(png_jmpbuf(png_ptr)))
@@ -284 +284 @@
- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
@@ -303,0 +304,3 @@
+ if (color_type == PNG_COLOR_TYPE_GRAY &amp;&amp; bit_depth < 8)
+ png_set_expand(png_ptr);
+
@@ -443 +446 @@
-<span class="bkslt">\t</span>if (setjmp(png_ptr->jmpbuf))
+<span class="bkslt">\t</span>if (setjmp(png_jmpbuf(png_ptr)))
6 years ago
@@ -449 +452 @@
-<span class="bkslt">\t</span>if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+<span class="bkslt">\t</span>if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
6 years ago
@@ -638 +641 @@
-<span class="bkslt">\t</span> if (setjmp(png_ptr->jmpbuf))
+<span class="bkslt">\t</span> if (setjmp(png_jmpbuf(png_ptr)))
6 years ago
--- gdk_imlib/io-ppm.c
+++ gdk_imlib/io-ppm.c
@@ -56 +56 @@
-<span class="bkslt">\t</span> if (a > 32767)
+<span class="bkslt">\t</span> if (a &lt;= 0 || a > 32767)
6 years ago
@@ -61 +61 @@
-<span class="bkslt">\t</span> if (b > 32767)
+<span class="bkslt">\t</span> if (b &lt;= 0 || b > 32767)
6 years ago
--- gdk_imlib/io-tiff.c
+++ gdk_imlib/io-tiff.c
@@ -39 +39,3 @@
- if(ww > 32767 || hh > 32767)
+ if (ww &lt;= 0 || ww > 32767 ||
+ hh &lt;= 0 || hh > 32767 ||
+ hh >= (G_MAXINT/sizeof(uint32)) / ww)
--- gdk_imlib/io-xpm.c
+++ gdk_imlib/io-xpm.c
@@ -42,0 +43 @@
+ memset(lookup, 0, sizeof(lookup));
@@ -44,0 +46,3 @@
+ if (!line)
+ return NULL;
+
@@ -73 +77 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span> if (ncolors > 32766)
+<span class="bkslt">\t</span><span class="bkslt">\t</span> if (ncolors &lt;= 0 || ncolors > 32766)
6 years ago
@@ -79 +83 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span> if (cpp > 5)
+<span class="bkslt">\t</span><span class="bkslt">\t</span> if (cpp &lt;= 0 || cpp > 5)
6 years ago
@@ -85 +89 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*w > 32767)
+<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*w &lt;= 0 || *w > 32767)
6 years ago
@@ -91 +95 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*h > 32767)
+<span class="bkslt">\t</span><span class="bkslt">\t</span> if (*h &lt;= 0 || *h > 32767)
6 years ago
@@ -122,0 +127 @@
+<span class="bkslt">\t</span><span class="bkslt">\t</span> int space;
6 years ago
@@ -127,0 +133 @@
+<span class="bkslt">\t</span><span class="bkslt">\t</span> space = sizeof(col) - 1;
6 years ago
@@ -150,4 +156,4 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0])
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strcat(col, " ");
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (strlen(col) + strlen(s) &lt; sizeof(col))
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strcat(col, s);
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0] &amp;&amp; space > 0)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strncat(col, " ", space), space -= 1;
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (slen &lt;= space)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>strcat(col, s), space -= slen;
6 years ago
@@ -183 +189,2 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcpy(tok, s);
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (slen &lt; sizeof(tok))
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcpy(tok, s);
6 years ago
@@ -184,0 +192 @@
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> space = sizeof(col) - 1;
6 years ago
@@ -188,3 +196,4 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0])
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, " ");
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, s);
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (col[0] &amp;&amp; space > 0)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, " "), space -= 1;
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (slen &lt;= space)
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> strcat(col, s), space -= slen;
6 years ago
--- gdk_imlib/misc.c
+++ gdk_imlib/misc.c
@@ -676,0 +677,4 @@
+
+ id->x.shm = 0;
+ id->x.shmp = 0;
+ id->max_shm = 0;
@@ -692 +696,2 @@
-<span class="bkslt">\t</span> if (XShmPixmapFormat(id->x.disp) == ZPixmap)
+<span class="bkslt">\t</span> if ((XShmPixmapFormat(id->x.disp) == ZPixmap) &amp;&amp;
+<span class="bkslt">\t</span><span class="bkslt">\t</span> (pm == True))
6 years ago
@@ -697 +701,0 @@
- else
@@ -699,4 +703 @@
- {
- id->x.shm = 0;
- id->x.shmp = 0;
- }
+
@@ -938,2 +939,2 @@
-<span class="bkslt">\t</span> if (id->x.shm)
-<span class="bkslt">\t</span> id->x.shmp = p->sharedpixmaps;
+<span class="bkslt">\t</span> if (!p->sharedpixmaps)
+<span class="bkslt">\t</span> id->x.shmp = 0;
6 years ago
@@ -1357,0 +1359,2 @@
+ *<span class="bkslt">\t</span>we check G_MAX_INT/4 because rend.c malloc\'s w * h * bpp
+ *<span class="bkslt">\t</span>+ 3 is safety margin
6 years ago
@@ -1362 +1365,3 @@
-<span class="bkslt">\t</span>if( w > 32767 || h > 32767)
+<span class="bkslt">\t</span>if (w &lt;= 0 || w > 32767 ||
+<span class="bkslt">\t</span> h &lt;= 0 || h > 32767 ||
+<span class="bkslt">\t</span> h >= (G_MAXINT/4 - 1) / w)
6 years ago
@@ -1364 +1369 @@
-<span class="bkslt">\t</span>return malloc(w * h * 3);
+<span class="bkslt">\t</span>return malloc(w * h * 3 + 3);
6 years ago
@@ -1365,0 +1371 @@
+
--- gdk_imlib/utils.c
+++ gdk_imlib/utils.c
@@ -1238,0 +1239 @@
+ memset(lookup, 0, sizeof(lookup));
@@ -1242,0 +1244,15 @@
+ if (!line)
+<span class="bkslt">\t</span>break;
6 years ago
+ line = strdup(line);
+ if (!line)
+<span class="bkslt">\t</span>break;
6 years ago
+ len = strlen(line);
+ for (i = 0; i < len; ++i)
+ {
+<span class="bkslt">\t</span> c = line[i];
+<span class="bkslt">\t</span> if (c < 32)
+<span class="bkslt">\t</span> line[i] = 32;
+<span class="bkslt">\t</span> else if (c > 127)
+<span class="bkslt">\t</span> line[i] = 127;
+<span class="bkslt">\t</span>}
6 years ago
+
@@ -1247 +1263 @@
-<span class="bkslt">\t</span> if (ncolors > 32766)
+<span class="bkslt">\t</span> if (ncolors &lt;= 0 || ncolors > 32766)
6 years ago
@@ -1250,0 +1267 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1253 +1270 @@
-<span class="bkslt">\t</span> if (cpp > 5)
+<span class="bkslt">\t</span> if (cpp &lt;= 0 || cpp > 5)
6 years ago
@@ -1256,0 +1274 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1259 +1277 @@
-<span class="bkslt">\t</span> if (w > 32767)
+<span class="bkslt">\t</span> if (w &lt;= 0 || w > 32767)
6 years ago
@@ -1262,0 +1281 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1265 +1284 @@
-<span class="bkslt">\t</span> if (h > 32767)
+<span class="bkslt">\t</span> if (h &lt;= 0 || h > 32767)
6 years ago
@@ -1268,0 +1288 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1275,0 +1296 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1284,0 +1306 @@
+<span class="bkslt">\t</span> free(line);
6 years ago
@@ -1358 +1380 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (colptr + ls &lt;= sizeof(col))
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (colptr + ls &lt; sizeof(col))
6 years ago
@@ -1560,0 +1583 @@
+ free(line);
' | while read line
do
patch -p0
done
</code>
<code class="thtwo">ltoolupdate_fn
chown_fn
6 years ago
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
CFLAGS="$SLKCFLAGS" \
../configure \
--prefix=/usr \
--libdir=/usr/lib$LIBDIRSUFFIX \
--disable-static \
--host=$HOST
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
makepkg_fn
<span class="dastx">##</span> only need to install to $SYSROOT for the tdegraphics build
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_imlib">close</a></span>
</div>
<br></div>
<!-- imlib - end -->
6 years ago
<p>
<!-- tdegraph - start -->
6 years ago
<a name="close_tdegraph"></a>
<br>
<span class="tabs"><a href="#tdegraph">&hellip; tdegraphics</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdegraph" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdegraph">close</a></span>
<code><code class="thtwo">cd /
PRGNAM=tdegraphics
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
</code>
<span class="dastx">##</span> error: /bin/sh: squeeze: command not found
<code class="thtwo">sed -i 's|COMMAND squeeze|COMMAND ./squeeze|' kdvi/CMakeLists.txt
</code>
<code class="thtwo">chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
<span class="dastx">##</span> If imlib is installed, include kuickshow:
[[ $(ls $SYSROOT/usr/lib$LIBDIRSUFFIX/libImlib.so.*) ]] &amp;&amp; KUICKSHOW=ON
6 years ago
cmake-toolchain_fn
cmake \
6 years ago
-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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
6 years ago
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
6 years ago
-DWITH_T1LIB="OFF" \
-DWITH_PAPER="OFF" \
6 years ago
-DWITH_TIFF="OFF" \
-DWITH_OPENEXR="OFF" \
-DWITH_PDF="ON" \
-DBUILD_DOC="ON" \
6 years ago
-DBUILD_TDEFILE_PLUGINS="ON" \
-DBUILD_KUICKSHOW=${KUICKSHOW:-OFF} \
-DBUILD_KPDF="ON" \
-DBUILD_KAMERA="OFF" \
-DBUILD_KSVG="OFF" \
-DBUILD_LIBKSCAN="OFF" \
-DBUILD_KOOKA="OFF" \
-DBUILD_KCOLOREDIT="ON" \
-DBUILD_KDVI="ON" \
-DBUILD_KFAX="ON" \
-DBUILD_KFAXVIEW="ON" \
-DBUILD_KGAMMA="ON" \
-DBUILD_KGHOSTVIEW="ON" \
-DBUILD_TDEICONEDIT="ON" \
-DBUILD_KMRML="ON" \
-DBUILD_KOLOURPAINT="ON" \
-DBUILD_KPOVMODELER="ON" \
-DBUILD_KRULER="ON" \
-DBUILD_KSNAPSHOT="ON" \
-DBUILD_KVIEW="ON" \
-DBUILD_KVIEWSHELL="ON" \
6 years ago
-Wno-dev \
..
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
doinst_sh_fn
6 years ago
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code></code>
<span class="tabs"><a href="#close_tdegraph">close</a></span>
</div>
<br></div>
<!-- tdegraph - end -->
6 years ago
<p>
<!-- tdeadmin - start -->
6 years ago
<a name="close_tdeadmin"></a>
<br>
<span class="tabs"><a href="#tdeadmin">&hellip; tdeadmin</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdeadmin" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdeadmin">close</a></span>
<code class="thtwo">cd /
PRGNAM=tdeadmin
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
-DWITH_GCC_VISIBILITY="OFF" \
-DBUILD_DOC="ON" \
-DBUILD_KCRON="ON" \
-DBUILD_KDAT="ON" \
-DBUILD_KNETWORKCONF="ON" \
-DBUILD_KSYSV="ON" \
-DBUILD_KUSER="ON" \
-DBUILD_LILO_CONFIG="ON" \
-DBUILD_KPACKAGE="ON" \
-DBUILD_TDEFILE_PLUGINS="ON" \
-DBUILD_SECPOLICY="OFF" \
-Wno-dev \
..
6 years ago
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
doinst_sh_fn
6 years ago
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code>
<span class="tabs"><a href="#close_tdeadmin">close</a></span>
</div>
<br></div>
<!-- tdeadmin - end -->
6 years ago
<p>
<!-- tdmtheme - start -->
6 years ago
<a name="close_tdmtheme"></a>
<br>
<span class="tabs"><a href="#tdmtheme">&hellip; tdmtheme</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="tdmtheme" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdmtheme">close</a></span>
<code class="thtwo">cd /
PRGNAM=tdmtheme
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
<span class="dastx">##</span> all locales and html docs built by default, actually only en_US
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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
-DWITH_GCC_VISIBILITY="OFF" \
-DBUILD_DOC="ON" \
-DBUILD_TRANSLATIONS="ON" \
-Wno-dev \
..
6 years ago
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
doinst_sh_fn
6 years ago
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code>
<span class="tabs"><a href="#close_tdmtheme">close</a></span>
</div>
<br></div>
<!-- tdmtheme - end -->
6 years ago
<p>
<!-- knemo - start -->
6 years ago
<a name="close_knemo"></a>
<br>
<span class="tabs"><a href="#knemo">&hellip; knemo</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="knemo" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_knemo">close</a></span>
<code class="thtwo">cd /
PRGNAM=knemo
VERSION=$TDE_VERSION
BUILD=$BUILD
I18N=$I18N
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
<span class="dastx">##</span> rename knemo icons to avoid conflict with those in tdeartwork
6 years ago
rename network_ knemo_network_ src/knemod/pics/*png
sed -i -e 's|network_|knemo_network_|g' src/{knemod/interfaceicon,kcm/configdialog}.cpp
<span class="dastx">##</span> widen text area in Tooltips box to avoid text wrapping
sed -i 's|&lt;tr>&lt;td>|&lt;tr>&lt;td width=70%>|g' src/knemod/interfacetooltip.cpp
<span class="dastx">##</span> patch
6 years ago
sed -i 's|Default Gateway" ), LINK_QUALITY|Default Gateway" ), GATEWAY|' src/knemod/interfacetooltip.cpp
<span class="dastx">##</span> set support for additional language(s) as per I18N variable
<span class="dastx">##</span> but only for languages available with this package
[[ $I18N ]] &amp;&amp; TRANS=ON &amp;&amp; LINGUAS=$I18N
6 years ago
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
-DWITH_GCC_VISIBILITY="OFF" \
-DWITH_LIBIW="OFF" \
-DBUILD_DOC="ON" \
-DBUILD_TRANSLATIONS=${TRANS:-"OFF"} \
-Wno-dev \
..
6 years ago
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code>
<span class="tabs"><a href="#close_knemo">close</a></span>
</div>
<br></div>
<!-- knemo - end -->
6 years ago
<p>
<!-- krusader - start -->
6 years ago
<a name="close_krusader"></a>
<br>
<span class="tabs"><a href="#krusader">&hellip; krusader</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="krusader" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_krusader">close</a></span>
<code class="thtwo">cd /
PRGNAM=krusader
VERSION=$TDE_VERSION
BUILD=$BUILD
I18N=$I18N
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
<span class="dastx">##</span> set support for additional language(s) as per I18N variable
<span class="dastx">##</span> but only for languages available with this package
6 years ago
langs="";for Lang in $I18N;do [[ -e po/$Lang".po" ]] &amp;&amp; langs="$langs $Lang"".po";done
sed -i "s|POFILES =.*$|POFILES =$langs|" po/Makefile.am
langs=$(echo $langs | sed 's|.po||g')
6 years ago
[[ $I18N != *ru* ]] &amp;&amp; \
sed -i 's| ru||' doc/Makefile.am
ltoolupdate_fn
chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
6 years ago
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
MOC=$SYSROOT/x86/tqmoc \
MEINPROC=$INSTALL_TDE/bin/meinproc-x86 \
../configure \
--prefix=$INSTALL_TDE \
--mandir=$INSTALL_TDE/man \
--disable-rpath \
--host=$HOST
make $NUMJOBS
make DESTDIR=$PKG install
<span class="dastx">##</span> remove xgcc paths in package
sed -i "s|$XGCC_DIR/$HOST|/usr|g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/t*/*.la
sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/t*/*.la
6 years ago
strip_fn
mkdir_install_fn
doinst_sh_fn
6 years ago
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
6 years ago
</code>
<span class="tabs"><a href="#close_krusader">close</a></span>
</div>
<br></div>
<!-- krusader - end -->
<p>
<!-- kvkbd - start -->
<a name="close_kvkbd"></a>
<br>
<span class="tabs"><a href="#kvkbd">&hellip; kvkbd</a></span><span style="vertical-align:-30%">&nbsp;&nbsp;</a>
</span>
<div id="kvkbd" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_kvkbd">close</a></span>
<code class="thtwo">cd /
PRGNAM=kvkbd
VERSION=$TDE_VERSION
BUILD=$BUILD
TMP=/tmp/build
rm -rf $TMP
PKG=$TMP/package-$PRGNAM
OUTPUT=/tmp
mkdir -p $PKG
mkdir $TMP/tmp-$PRGNAM
untar_fn
</code>
These patches are to build Kvkbd to
&bull; add a LSGT key, which is required for non-US keyboards
&bull; add a RWIN key
&bull; support evdev key mapping
&bull; support dead keys
&bull; fix num pad keycodes
&bull; show &amp; and shift characters
&bull; add 'Lock on screen' feature
&bull; add i18n support
&bull; add ColorDialog for user to set keyboard and keys colours
&bull; add tooltips
<br><span style="vertical-align:30%">Kvkbd can be run with a different style than the system style, for example <b>kvkbd --style plastik</b>:</span>
<img style="max-width:100%"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr8AAADrCAYAAABgmf4mAAAgAElEQVR4nOydd3gUxcOA3yvpvUEooYTee0cEjICCIJYfIAgoCCIoiBQBG1gARRQURFE6iCK9I01BEAggvUOoIQkpkHrJ3e33xwVIv727veP4Mu/z7PMk2dmZd8rOzs7OblSHd6+REAgEAoFAIBAIigHqRy0gEAgEAoFAIBA4CjH4FQgEAoFAIBAUG8TgVyAQCAQCgUBQbBCDX4FAIBAIBAJBsUEMfgUCgUAgEAgExQYx+BUIBAKBQCAQFBvE4FcgEAgEAoFAUGwQg1+BQCAQCAQCQbFBDH4FAoFAIBAIBMUGMfgVCAQCgUAgEBQbxOBXIBAIBAKBQFBsEINfgUAgEAgEAkGxQQx+BQKBQCAQCATFBjH4FQgEAoFAIBAUG7S2RnD5Rhw3bico4WKWsqGBhJcNcUhaheFM+RUuzu9iLc6UB+Hi/C7W4kx5EC7O75ITJbyc4ZouKJ7YNPi93/jfenuEUj5FMvu7bwEe2cniTPkVLs7vYi3OlAfh4vwu1uJMeRAuzu+SE6W8HvU1XVB80Qzu3/MTaw8+cf4GQ4YNRzIakCSj3beatWqzZ+8+ypcOVrAIHs/8ChfndxHtTLiIdvb4ladwMd/OlPJ61Nd0QfHF5mUPAJIkKRGN06RjDmfKr3CxPowS2DMdZ8qDcLE+jBKIdqYswkWZdGz1cpZruqD4YfPgV5Ikpz0x7eXgLPkVLs7vYku8zpIH4eL8LrbE6yx5EC7O75I3rBj8Ch5XxMyvFThTfoWL9WGUQMzIKYtwcXw6zpQH4WJ9GCUQM7+C4oKY+bXCwVnyK1yc38WWeJ0lD8LF+V1siddZ8iBcnN8lb1gx+BU8rjxeM78OScU8zpRf4VJIGCdysTpuJ8qDcCkkjBO5WB23E+VBuBQSxolccnLyt9+JmzUL98xMi47LcHUlZOhQKj7XxcIUBQJlsP2fXEgSA8L88fUrYntyATcNCtg6w11iXofUvWbyX5Nx/2U8CK67sYWPOpY17Svdn90pFqSloIvx3jHmD3+G2qVM+/wrNKX7+BWcSyskTTu6GBIP8uPQjtQMNe0LqNiclz5azcV0x7s8JIuouR0JzA7zzLok61ysxdo86E4xqV4hYRpM4YzOijzYVJ4ZRK3/hJealMfPzx/fkjXpMHwpZxzczu5tffFBXebfqjP6cN76t2+56GP38O3Ap6iR3eZ9y9Sj09tziUwyWlcu1mLLeZtwgB/eenjelqz9DMMXniS5kCzIKU9F+9Ks2+yY0oum5QPw9fMnpMbTDF1w3OTnaJeiwjjYpci+35J2JknEzZpFRXd3fBo2xKdp0webf7NmBLdsScknnqDMk09Svn17wiMiqNyhA1UjImgeGkrcrFnOcU0XFEtsX/aQ8xf3QIJ9NKjyhPEs7YMGyeZ27gyPSKS8Hjl/Lij/LuUIcgXJmMbFVR/Qb8g8Tua8SZYKLxezj8Osdcm6xpK+HRm+KwPQ4Bvkzr348+yY9QYdY32J/LEDQXlui+zmkn6ab7p1YtIxI+BGQKCKxISzbJvxGoejvYic8zSBjnLJEc4Qs5HxnxxAnyOOgtK12+PovHHLzYMhlfhU059K1GtJVZ+HhedWqRLe6vztzX7laSB+20ie7rOMGMAjKICs+Fv8u2Ao3ShH5Det8cnTWdjLReUeQliAP4k5o5cySbqbBqhQq/LXr93KJeM0059/js9OAQH16dDen6gdu9m3aDSdLms5vKY/5fL0zE7XzjLOmM7b4xLgRlAQxF/fz/x3OhHtfpBl/yuFJm9aMspTVtqy+lIdZ2a8TPfJJwAtgaFeJNw6xOLhXbgbcIgfI7wd5yKlFxnGoeWiv15k339qRusiXfJ6uep0JNeuTalnnnnwd48yZVCVKIFnSAhGSSI1NpbM6Gi8k5NRq1SoVSrStFpcr151imu6oHhi+7KHHI23ybf72dojpJDp5P8fg998gyCZ+ZfS9jNt1DxOBnVi9KupfPflHjKQstdNFZaU+RkBa1wyzixh+q4MIIwhm/bwRQtPbi59iYbD/iZhzRz2TY2gS0DuUYm9XJL3TGfGMSO4tWLanj8YUAXOzexI84+PE792Lge/iqCjb96k7OPy4BjpHvumjGVDijuh7hnczqDQ9W12a5PW5iHl/uC3Eq/PWcX71V3zhrB48Gu1i+4scycsIwYNDT/ZzcZ3apD253AihuzC/dYhrma0opa7Y1yoPpujl3NFxL29o2j63HxuV+1Ln+puFg9+rT7/Tq1kySmAcMZu3My4Gm4k/zWEus//RuLeReyM6UO/0rmHjs7WzlL2zeS74xJQhVF/bmdCIxVHp3Sk/Zdn2PLFz5zp+gG13PImJX8m3ea+NDWSmbNOAN50XhDJom5+XPq+I00/PM66qb8z56nXHOeSdrTIMI4sF935ovt+6dtWRbvk8ZIkCaNOR0ZMDGpXVwLbtiW4Vi0yMzKIvXoVtUpFcKVKuNaqxfWjR1EdOYKXWo3GYCi0TxUIHIHNyx4kHt6Z3m/MRW26G1uZ0rct1UID8Q8IxL9sfToNm8uhhIcng5QVy98zBxNRq7QpTKm6dBz2s1OcKPdnSh5uMvOv9qXxmz/wz4HFDG8Z/OCuw1x52cNF5d2Qd6ZM5svvv2d4Yx+QNATVqU9JgKwE4tIMDnIxoinfnzmLF/PrHzN5pZIrSK6Ua9GIEgBZ6WToHVcu97f0U7MZOT8Gj/Zj6FvlYazW1JG1WJ0HfQqJ6QAeBLirZOXXXuWZeW0rqy4A7k8zpm8N3FER+PRMjlw8wb7lw6np5vi6fbClHWP6iPncJpg+UwdTw4EuRl0KptUnQYQHuSBJEi4h5QgAQEdKhtHJ25mehDOnSAQIf54XansDXtTt/Rp1AaK28NetLOvK02zakqy+NOPKTvYlAC5N6PVECGrJlQqdnqcqwOmNDnWRE8ZRLub6fkva2f22k3r1KhnR0QS0aEFQzZocXreOfRMmkLZsGfrff+fatGlE7dxJ2fr1yaxVi6y4ONQ6nV3btUBgDkVnfh8MEAoLqzvN1y/04ssLUKb1S/Sv5kF85GrWLx1Ll6uuHFz5KmGaZA588gxdZ18BTXme7FqHzMgN7F86BmlqL5t1bSbvCSs3/641eG1UDQBSc0UnUdj5b7ZbsNJFWyaCvm/kDJfG6VXruA4QXJfqfup8nZK9XNzKNqdj2fu/GdHdOcUfs9YRC7i36Ukjn/zlYy8XAPRXWTp6OudV9fnss864Dp5UcJxyXazFyjwY0xJIkQBSOTXvbbpsP8BNYwnqdBjA+6NepIZ33kVJ9ivP9KiDXAUIq4/vqcV8vGQ751N8qPpUH4a+0pwQlwKSspNLbrK4smg0My+BS6sPGdvS1xSvg1zcKj9Hp9AfmX/7OItXnqJj/1DOrNnIZYDq3WhXSmP5+WctVuZB45o9M61LJeN+H6ZxzV7qEM2Jmzqk8nlmr2W4yElbTl+aefs00QABFSjhZvq7NjCcEio4L91yqIu5MI50Mdf3W9TOJAmD0UjmrVtIej0hDRtycMUKtNu3U9rdHe86dUjW6XA7cgTXrVuJMRoJj4jgv8hIwjIyMBiNTvMSu6D4oeia38h3W1H9wzyTyZpS9Fi0kUmNPDDciWTbBcClHZPnz6ZzgArSBrDgmzXElyyBZJDQx6xn4o9XAF+6LdrGzx0DIXYVPZsOdoq7xPt3uw//kPtnORffh8dL2ceYC2c/F8jk2srh9JoRBWhoPGIYDTwKGHDa2yXzAtPbtOTziwABNHr1K7785GVKKb1GtUgXI3GbP2biv3oqDp9G/3AXlkm5j8uXlp3apLV50KfGkwbAFRZ9dyX7r1eJOneIbZGJ7F05kPA8KyHsU54S6XfukAEQNY+Xn4t9cEHesnE5fxxZzu7pTym7tlxmmzcm7OTTyYcxUooBHz5PaU3B56DdXLyaMumPGaS/NpLl45+kwnjTnz0bDGbO/GFUc7W8zVuLdXlQ4V+rOWU4ys2bvzL9955885wHB76dyVEAUklI0+cfwMsoT/Np5zmmkL40M/mu
alt="greek keyboard">
<code class="thtwo"><span class="dastx">##</span> Add a key, LSGT, between 'left shift' and 'z' for non-US keyboards.
<span class="dastx">##</span> This duplicates '&lt;' and '>' characters for US keyboards, but otherwise leaves the US keyboard fully functional.
<span class="dastx">##</span> The key which is normally lower left of Enter on non-US keyboards is above the Enter key.
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
<span class="dastx">#</span>
<span class="dastx">##</span> add a key[code] to row 4
@@ -46 +46 @@
-#define R4LEN 7
+#define R4LEN 8
<span class="dastx">#</span>
<span class="dastx">##</span> add keycode 94 key between l-shift and z key
<span class="dastx">##</span> gb=\| fr=&lt;> de=&lt;>| [us=&lt;>] etc
@@ -72,3 +72,3 @@
-<span class="bkslt">\t</span>//TQString k4="zxcvbnm"; //,./";
-<span class="bkslt">\t</span>//TQString k4s="ZXCVBNM";
-<span class="bkslt">\t</span>unsigned int kc4[R4LEN] = {52,53,54,55,56,57,58};//59,60,61};
+<span class="bkslt">\t</span>//TQString k4="&lt;zxcvbnm"; //,./";
+<span class="bkslt">\t</span>//TQString k4s=">ZXCVBNM";
+<span class="bkslt">\t</span>unsigned int kc4[R4LEN] = {94,52,53,54,55,56,57,58};//59,60,61};
<span class="dastx">#</span>
<span class="dastx">##</span> reduce width of left shift key
@@ -249 +249 @@
-<span class="bkslt">\t</span>lshft->resize ( 80,30 );
+<span class="bkslt">\t</span>lshft->resize ( 45,30 );
<span class="dastx">#</span>
<span class="dastx">##</span> remove one key space after left shift
<span class="dastx">##</span> and fix spacing
@@ -262 +262 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>v->move ( stx+35+16+35+ ( 35*a ),sty+ ( 4*35 ) );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>v->move ( stx+lshft->width() +5+ ( 35*a ),sty+ ( 4*35 ) );
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> add RWin key
<b>echo</b> $'--- src/MainWidget.h
+++ src/MainWidget.h
@@ -96,2 +96,3 @@
<span class="bkslt">\t</span>VButton *win;
+<span class="bkslt">\t</span>VButton *rwin;
<span class="bkslt">\t</span>VButton *mnu;
--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -353,2 +354,11 @@
+<span class="bkslt">\t</span>rwin = new VButton ( this,"" );
+<span class="bkslt">\t</span>rwin->resize ( 50,30 );
+<span class="bkslt">\t</span>rwin->move ( ralt->x() +ralt->width() +5, sty+ ( 5*35 ) );
+<span class="bkslt">\t</span>rwin->setText ( "RWin" );
+<span class="bkslt">\t</span>rwin->setKeyCode ( 134 );
+<span class="bkslt">\t</span>rwin->setToggleButton ( true );
+<span class="bkslt">\t</span>mod_keys.append( rwin );
+<span class="bkslt">\t</span>rwin->res();
+
@@ -355,4 +364,4 @@
<span class="bkslt">\t</span>mnu = new VButton ( this,"" );
-<span class="bkslt">\t</span>mnu->resize ( 45,30 );
-<span class="bkslt">\t</span>mnu->move ( 5+ralt->x() +ralt->width(), sty+ ( 5*35 ) );
+<span class="bkslt">\t</span>mnu->resize ( 50,30 );
+<span class="bkslt">\t</span>mnu->move ( rwin->x() +rwin->width() +5, sty+ ( 5*35 ) );
<span class="bkslt">\t</span>mnu->setText ( "Menu" );
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Fix keycodes for evdev mapping:
<span class="dastx">##</span> Right shift, LWin, AltGr, Menu, Right Ctrl, Num pad divide, Num pad Enter
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -296 +296 @@
-<span class="bkslt">\t</span>rshft->setKeyCode ( 50 );
+<span class="bkslt">\t</span>rshft->setKeyCode ( 62 );
@@ -321 +321 @@
-<span class="bkslt">\t</span>win->setKeyCode ( 115 );
+<span class="bkslt">\t</span>win->setKeyCode ( 133 );
@@ -349 +349 @@
-<span class="bkslt">\t</span>ralt->setKeyCode ( 113 );
+<span class="bkslt">\t</span>ralt->setKeyCode ( 108 );
@@ -368 +368 @@
-<span class="bkslt">\t</span>mnu->setKeyCode ( 117 );
+<span class="bkslt">\t</span>mnu->setKeyCode ( 135 );
@@ -379 +379 @@
-<span class="bkslt">\t</span>rctrl->setKeyCode ( 37 );
+<span class="bkslt">\t</span>rctrl->setKeyCode ( 105 );
@@ -468 +468 @@
-<span class="bkslt">\t</span>div->setKeyCode(112);
+<span class="bkslt">\t</span>div->setKeyCode(106);
@@ -485 +485 @@
-<span class="bkslt">\t</span>ent->setKeyCode(36);
+<span class="bkslt">\t</span>ent->setKeyCode(104);
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Cosmetic changes:
<span class="dastx">##</span> Set F4-F5 spacing as per F8-F9
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -97 +97 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>f->move ( stx+esc->width() + ( 35*a ) +20,sty );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>f->move ( stx+esc->width() +30 + ( 35*a ),sty );
@@ -107 +107 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>f->move ( stx+esc->width() + ( 35*a ) +40+ ( 4*35 ),sty );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>f->move ( stx+esc->width() +30 + ( 4*35 ) +14 + ( 35*a ),sty );
@@ -118 +118 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>f->move ( stx+esc->width() + ( 35*a ) +45+ ( 8*35 ) +10,sty );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>f->move ( stx+esc->width() +30 + ( 8*35 ) +28 + ( 35*a ),sty );
<span class="dastx">#</span>
<span class="dastx">##</span> resize keys for alignment on right side of keyboard
@@ -139 +139 @@
-<span class="bkslt">\t</span>bksp->resize ( 46,30 );
+<span class="bkslt">\t</span>bksp->resize ( 48,30 );
@@ -149 +149 @@
-<span class="bkslt">\t</span>tab->resize ( 47,30 );
+<span class="bkslt">\t</span>tab->resize ( 48,30 );
<span class="dastx">##</span> reduce size of Dock image
@@ -938 +938 @@
-<span class="bkslt">\t</span>resize ( 96,47 );
+<span class="bkslt">\t</span>resize ( 64,31 );
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Revise positions of keys and reformat code to represent the calculations left-to-right
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -219,3 +219,3 @@
<span class="bkslt">\t</span>smcl->setKeyCode ( 47 );
-<span class="bkslt">\t</span>smcl->move ( stx+ ( R3LEN *35 ) +caps->width() +5,sty+ ( 3*35 ) );
+<span class="bkslt">\t</span>smcl->move ( stx+caps->width() +5+ ( R3LEN *35 ) ,sty+ ( 3*35 ) );
<span class="bkslt">\t</span>//smcl->setText ( ";" );
@@ -228,3 +228,3 @@
<span class="bkslt">\t</span>sngq->setKeyCode ( 48 );
-<span class="bkslt">\t</span>sngq->move ( stx+ ( ( R3LEN +1 ) *35 ) +caps->width() +5,sty+ ( 3*35 ) );
+<span class="bkslt">\t</span>sngq->move ( stx+caps->width() +5+ ( ( R3LEN +1 ) *35 ) ,sty+ ( 3*35 ) );
<span class="bkslt">\t</span>//sngq->setText ( "\'" );
@@ -237,3 +237,3 @@
<span class="bkslt">\t</span>enter->setKeyCode ( 36 );
-<span class="bkslt">\t</span>enter->move ( stx+ ( ( R3LEN +2 ) *35 ) +caps->width() +5,sty+ ( 3*35 ) );
+<span class="bkslt">\t</span>enter->move ( stx+caps->width() +5+ ( ( R3LEN +2 ) *35 ) ,sty+ ( 3*35 ) );
<span class="bkslt">\t</span>enter->resize ( 50,30 );
@@ -269,3 +269,3 @@
<span class="bkslt">\t</span>sm->setKeyCode ( 59 );
-<span class="bkslt">\t</span>sm->move ( stx+ ( R4LEN *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
+<span class="bkslt">\t</span>sm->move ( stx+lshft->width() +5+ ( R4LEN *35 ) ,sty+ ( 4*35 ) );
<span class="bkslt">\t</span>//sm->setText ( "," );
@@ -278,3 +278,3 @@
<span class="bkslt">\t</span>gr->setKeyCode ( 60 );
-<span class="bkslt">\t</span>gr->move ( stx+ ( ( R4LEN +1 ) *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
+<span class="bkslt">\t</span>gr->move ( stx+lshft->width() +5+ ( ( R4LEN +1 ) *35 ) ,sty+ ( 4*35 ) );
<span class="bkslt">\t</span>//gr->setText ( "." );
@@ -287,3 +287,3 @@
<span class="bkslt">\t</span>sl->setKeyCode ( 61 );
-<span class="bkslt">\t</span>sl->move ( stx+ ( ( R4LEN +2 ) *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
+<span class="bkslt">\t</span>sl->move ( stx+lshft->width() +5+ ( ( R4LEN +2 ) *35 ) ,sty+ ( 4*35 ) );
<span class="bkslt">\t</span>//sl->setText ( "/" );
@@ -296,3 +296,3 @@
<span class="bkslt">\t</span>rshft->setKeyCode ( 62 );
-<span class="bkslt">\t</span>rshft->move ( stx+ ( ( R4LEN +3 ) *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
+<span class="bkslt">\t</span>rshft->move ( stx+lshft->width() +5+ ( ( R4LEN +3 ) *35 ) ,sty+ ( 4*35 ) );
<span class="bkslt">\t</span>rshft->resize ( 68,30 );
@@ -305,3 +305,3 @@
<span class="bkslt">\t</span>
-
+<span class="bkslt">\t</span>//ROW 5
<span class="bkslt">\t</span>lctrl = new VButton ( this,"" );
@@ -317,5 +317,5 @@
<span class="bkslt">\t</span>win = new VButton ( this,"" );
-<span class="bkslt">\t</span>win->resize ( 45,30 );
-<span class="bkslt">\t</span>win->move ( 5+lctrl->x() +lctrl->width(), sty+ ( 5*35 ) );
-<span class="bkslt">\t</span>win->setText ( "Win" );
+<span class="bkslt">\t</span>win->resize ( 50,30 );
+<span class="bkslt">\t</span>win->move ( lctrl->x() +lctrl->width() +5, sty+ ( 5*35 ) );
+<span class="bkslt">\t</span>win->setText ( "LWin" );
<span class="bkslt">\t</span>win->setKeyCode ( 133 );
@@ -328,3 +328,3 @@
<span class="bkslt">\t</span>lalt->resize ( 45,30 );
-<span class="bkslt">\t</span>lalt->move ( 5+win->x() +win->width(), sty+ ( 5*35 ) );
+<span class="bkslt">\t</span>lalt->move ( win->x() +win->width() +5, sty+ ( 5*35 ) );
<span class="bkslt">\t</span>lalt->setText ( "Alt" );
@@ -338,4 +338,4 @@
<span class="bkslt">\t</span>space->setKeyCode ( 65 );
-<span class="bkslt">\t</span>space->resize ( 5*35+28,30 );
-<span class="bkslt">\t</span>space->move ( 5+lalt->x() +lalt->width(),sty+ ( 5*35 ) );
+<span class="bkslt">\t</span>space->resize ( 133,30 );
+<span class="bkslt">\t</span>space->move ( lalt->x() +lalt->width() +5, sty+ ( 5*35 ) );
<span class="bkslt">\t</span>connect ( space, TQT_SIGNAL ( keyClick ( unsigned int ) ), this, TQT_SLOT ( keyPress ( unsigned int ) ) );
@@ -345,4 +345,4 @@
<span class="bkslt">\t</span>ralt = new VButton ( this,"" );
-<span class="bkslt">\t</span>ralt->resize ( 45,30 );
-<span class="bkslt">\t</span>ralt->move ( 5+space->x() +space->width(), sty+ ( 5*35 ) );
+<span class="bkslt">\t</span>ralt->resize ( 50,30 );
+<span class="bkslt">\t</span>ralt->move ( space->x() +space->width() +5, sty+ ( 5*35 ) );
<span class="bkslt">\t</span>ralt->setText ( "AltGr" );
@@ -376,3 +376,3 @@
<span class="bkslt">\t</span>rctrl->resize ( 45,30 );
-<span class="bkslt">\t</span>rctrl->move ( 5+mnu->x() +mnu->width(), sty+ ( 5*35 ) );
+<span class="bkslt">\t</span>rctrl->move ( mnu->x() +mnu->width() +5, sty+ ( 5*35 ) );
<span class="bkslt">\t</span>rctrl->setText ( "Ctrl" );
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Replace text on Num pad keys for a better fit
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -411 +411 @@
-<span class="bkslt">\t</span>TQString txt[9] = { "Ho\\nme", TQString::fromUtf8("▲"), "Pg\\nUp",
+<span class="bkslt">\t</span>TQString txt[9] = { TQString::fromUtf8("H\\u2190"), TQString::fromUtf8("▲"), TQString::fromUtf8("P\\u2191"),
@@ -413 +413 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>"End", TQString::fromUtf8("▼"), "Pg\\nDn" };
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQString::fromUtf8("E\\u2192"), TQString::fromUtf8("▼"), TQString::fromUtf8("P\\u2193") };
@@ -457 +457 @@
-<span class="bkslt">\t</span>numl->setText("Num\\nLock");
+<span class="bkslt">\t</span>numl->setText(TQString::fromUtf8("\\u2116"));
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> dead_* characters don't display on keys, so add single click printable character equivalents
<span class="dastx">##</span> to display on keys - the printed character remains as dead_&lt;whatever>
<span class="dastx">##</span> Only needed for levels 0 and 1 - higher levels don't show on keys
<span class="dastx">##</span> NoSymbol shows as an outline square [.notdef] on keys - replace with space=blank
<span class="dastx">##</span> Re: MainWidget.cpp "* therefore keysymtab[] must remain SORTED by keysym value."
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -1008,2 +1030,3 @@
} keysymtab[] = {
+ { 0x0000, 0x0020 }, /* NoSymbol -> &lt;- space */
{ 0x01a1, 0x0104 }, /* Aogonek Ą LATIN CAPITAL LETTER A WITH OGONEK */
@@ -1781,2 +1782,18 @@
{ 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */
+ { 0xfe50, 0x0060 }, /* dead_grave ` */
+ { 0xfe51, 0x00b4 }, /* dead_acute ´ */
+ { 0xfe52, 0x02c6 }, /* dead_circumflex ˆ */
+ { 0xfe53, 0x02dc }, /* dead_tilde ˜ small tilde */
+ { 0xfe54, 0x00af }, /* dead_macron ¯ */
+ { 0xfe55, 0x02d8 }, /* dead_breve ˘ */
+ { 0xfe56, 0x02d9 }, /* dead_abovedot ˙ */
+ { 0xfe57, 0x00a8 }, /* dead_diaeresis ¨ */
+ { 0xfe58, 0x02da }, /* dead_abovering ° */
+ { 0xfe59, 0x02dd }, /* dead_doubleacute ˝ */
+ { 0xfe5a, 0x02c7 }, /* dead_caron ˇ */
+ { 0xfe5b, 0x00b8 }, /* dead_cedilla ¸ */
+ { 0xfe5c, 0x02db }, /* dead_ogonek ˛ */
+ { 0xfe5d, 0x0269 }, /* dead_iota ɩ Latin small iota */
+ { 0xfe64, 0x1fbf }, /* dead_abovecomma Greek Psili */
+ { 0xfe65, 0x1ffe }, /* dead_abovereversedcomma Greek Dasia */
};
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> add a tooltip for the panel icon
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -1834,3 +1834,3 @@
{
-
+<span class="bkslt">\t</span>TQToolTip::add ( this, "Virtual keyboard" );
}
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Fix Num pad numbers where 0-9 aren't the non-shift characters on the keyboard
<span class="dastx">##</span> E.g. for fr, the num pad '1' [KP_1 keycode 87] appears as '&amp;' [keycode 10] when Num Lock is on
<span class="dastx">##</span> And fix Del keycode so that KP_Separator prints correctly, eg for gr = comma
<span class="dastx">##</span> This is a quick-and-dirty fix because it effectively means that this routine is redundant.
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -416 +416 @@
-<span class="bkslt">\t</span>int nval[9] = {16,17,18,13,14,15,10,11,12};
+<span class="bkslt">\t</span>int nval[9] = {79,80,81,83,84,85,87,88,89};
@@ -436 +436 @@
-<span class="bkslt">\t</span>ins->setKeyCode(19,90);
+<span class="bkslt">\t</span>ins->setKeyCode(90,90);
@@ -448 +448 @@
-<span class="bkslt">\t</span>del->setKeyCode(60,91);
+<span class="bkslt">\t</span>del->setKeyCode(91,91);
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Set a default keyboard background colour
<span class="dastx">##</span> - changeable from configuration menu with a later patch
<span class="dastx">##</span> For the plastik and keramik styles which have a key boundary within the key 30x30 footprint,
<span class="dastx">##</span> setting the button/key background colour will bleed through outside that boundary
<span class="dastx">##</span> except for the configuration button and the num pad keys, which follow these two lines.
<span class="dastx">##</span> Moving these settings to the beginning of MainWidget::MainWidget enables all keys to be displayed correctly.
<span class="dastx">#</span>
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -79,2 +79,5 @@
+<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQColor("#cdc0b0") );
+<span class="bkslt">\t</span>setFocusPolicy ( TQ_NoFocus );
+
// <span class="bkslt">\t</span>resize ( 550,235 );
@@ -405,5 +408,2 @@
-<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQt::black );
-<span class="bkslt">\t</span>setFocusPolicy ( TQ_NoFocus );
-
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Use icons for quit and num pad show/hide buttons
<span class="dastx">##</span> these are the 16x16/actions icons used for the system selected icon set
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
<span class="dastx">#</span>
<span class="dastx">##</span> num pad show button
@@ -400 +400 @@
-<span class="bkslt">\t</span>extent->setText(">>");
+<span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
@@ -698 +698 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setText(">>");
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
<span class="dastx">#</span>
<span class="dastx">##</span> num pad hide button
@@ -702 +702 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setText("&lt;&lt;");
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());
<span class="dastx">#</span>
<span class="dastx">##</span> quit button
--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -392 +392 @@
-<span class="bkslt">\t</span>quit->setPaletteBackgroundColor ( TQt::red );
+<span class="bkslt">\t</span>quit->setPixmap(TQIconSet(SmallIcon("application-exit")).pixmap());
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Display '&amp;' where it is the lower key character on the key
<span class="dastx">##</span> E.g. fr be azerty keyboards
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -895,5 +897,9 @@
<span class="bkslt">\t</span>TQString btn_text(TQChar((uint)ret));
<span class="bkslt">\t</span>
-<span class="bkslt">\t</span>v.setText(btn_text);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQChar c((uint)ret);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>if (c==\'&amp;\')
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setText("&amp;&amp;");
+<span class="bkslt">\t</span><span class="bkslt">\t</span>else
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setText(btn_text);
<span class="bkslt">\t</span>TQString btn_upper(btn_text.upper());
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> resize quit, num pad show/hide, configure buttons to see the icons better at reduced size of keyboard
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -390,2 +390,2 @@
-<span class="bkslt">\t</span>quit->resize ( 15,30 );
-<span class="bkslt">\t</span>quit->move ( 525,15 );
+<span class="bkslt">\t</span>quit->resize ( 20,30 );
+<span class="bkslt">\t</span>quit->move ( 526,15 );
@@ -398,2 +398,2 @@
-<span class="bkslt">\t</span>extent->resize( 15,65 );
-<span class="bkslt">\t</span>extent->move(525, 85 );
+<span class="bkslt">\t</span>extent->resize ( 20,65 );
+<span class="bkslt">\t</span>extent->move(526, 85 );
@@ -551,2 +551,2 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->resize ( 15,30 );
-<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->move ( 525,15+35 );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->resize ( 20,30 );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->move ( 526,15+35 );
<span class="dastx">#</span>
<span class="dastx">##</span> move numpad after resizing buttons
--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -410 +410 @@
-<span class="bkslt">\t</span>int padx= 550;
+<span class="bkslt">\t</span>int padx= 554;
<span class="dastx">#</span>
<span class="dastx">##</span> move and resize keyboard
--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -593 +593 @@
-<span class="bkslt">\t</span>int d_width=550;
+<span class="bkslt">\t</span>int d_width=553;
@@ -639,2 +639,2 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>sdxs = width() - (width() * (150.0/700.0));
-<span class="bkslt">\t</span><span class="bkslt">\t</span>VButton::pw=700.0;
+<span class="bkslt">\t</span><span class="bkslt">\t</span>sdxs = width() - (width() * (150.0/703.0));
+<span class="bkslt">\t</span><span class="bkslt">\t</span>VButton::pw=703.0;
@@ -642 +642 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>setMinimumSize(700/3,235/3);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>setMinimumSize(703/3,235/3);
@@ -646,2 +646,2 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>sdxb = width() + (width() * (150.0/550.0));
-<span class="bkslt">\t</span><span class="bkslt">\t</span>VButton::pw=550.0;
+<span class="bkslt">\t</span><span class="bkslt">\t</span>sdxb = width() + (width() * (150.0/552.0));
+<span class="bkslt">\t</span><span class="bkslt">\t</span>VButton::pw=552.0;
@@ -649 +649 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>setMinimumSize(550/3,235/3);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>setMinimumSize(552/3,235/3);
--- src/VButton.cpp
+++ src/VButton.cpp
@@ -5 +5 @@
-double VButton::pw=550.0;
+double VButton::pw=552.0;
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> missing characters in keysymtab[] - for AC12 -> AD13 key on ua keyboard
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -1251,2 +1251,3 @@
{ 0x06ac, 0x045c }, /* Macedonia_kje ќ CYRILLIC SMALL LETTER KJE */
+ { 0x06ad, 0x0491 }, /* Ukrainian_ghe_with_upturn ґ CYRILLIC SMALL LETTER GHE WITH UPTURN */
{ 0x06ae, 0x045e }, /* Byelorussian_shortu ў CYRILLIC SMALL LETTER SHORT U */
@@ -1266,2 +1267,3 @@
{ 0x06bc, 0x040c }, /* Macedonia_KJE Ќ CYRILLIC CAPITAL LETTER KJE */
+ { 0x06bd, 0x0490 }, /* Ukrainian_GHE_WITH_UPTURN Ґ CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
{ 0x06be, 0x040e }, /* Byelorussian_SHORTU Ў CYRILLIC CAPITAL LETTER SHORT U */
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> generate keycode for Win keys with single click so that they can be used for xmodmap
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
<span class="dastx">#</span>
<span class="dastx">##</span> don\'t lock the LWin button
@@ -325 +325 @@
-<span class="bkslt">\t</span>win->setToggleButton ( true );
+<span class="bkslt">\t</span>win->setToggleButton ( false );
<span class="dastx">##</span> don\'t lock the RWin button
@@ -362 +362 @@
-<span class="bkslt">\t</span>rwin->setToggleButton ( true );
+<span class="bkslt">\t</span>rwin->setToggleButton ( false );
<span class="dastx">#</span>
<span class="dastx">##</span> generate keycode on click rather than wait for next key-click for keycode
--- src/MainWidget.cpp
+++ src/MainWidget.cpp
<span class="dastx">#</span>
<span class="dastx">##</span> for LWin
@@ -326 +326,2 @@
-<span class="bkslt">\t</span>mod_keys.append ( win );
+<span class="bkslt">\t</span>connect ( win, TQT_SIGNAL ( keyClick ( unsigned int ) ), this, TQT_SLOT ( keyPress ( unsigned int ) ) );
+<span class="bkslt">\t</span>other_keys.append( win );
<span class="dastx">#</span>
<span class="dastx">##</span> for RWin
@@ -363 +364,2 @@
-<span class="bkslt">\t</span>mod_keys.append( rwin );
+<span class="bkslt">\t</span>connect ( rwin, TQT_SIGNAL ( keyClick ( unsigned int ) ), this, TQT_SLOT ( keyPress ( unsigned int ) ) );
+<span class="bkslt">\t</span>other_keys.append( rwin );
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> add 'Lock on screen' feature from v0.5
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -529,4 +529,8 @@
<span class="bkslt">\t</span><span class="bkslt">\t</span>m->setItemChecked(mnu_dock, show_dock);
<span class="bkslt">\t</span><span class="bkslt">\t</span>
+<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_lock = m->insertItem("Lock on screen", this, TQT_SLOT(toggleLock()));
+<span class="bkslt">\t</span><span class="bkslt">\t</span>bool is_locked = cfg->readBoolEntry("locked",false);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->setItemChecked(mnu_lock,is_locked);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>
<span class="bkslt">\t</span><span class="bkslt">\t</span>//m->insertItem("Configure", this, TQT_SLOT(config()));
<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertSeparator();
@@ -742,2 +746,14 @@
}
+void MainWidget::toggleLock()
+{
+<span class="bkslt">\t</span>bool c = isLocked();
+
+<span class="bkslt">\t</span>tray->contextMenu()->setItemChecked ( mnu_lock, !c );
+<span class="bkslt">\t</span>setLocked(!c);
+
+<span class="bkslt">\t</span>TDEConfig *cfg = TDEApplication::kApplication()->config();
+<span class="bkslt">\t</span>cfg->writeEntry ("locked", !c);
+<span class="bkslt">\t</span>cfg->sync();
+
+}
void MainWidget::showDock()
<span class="dastx">#</span>
<span class="dastx">##</span>
--- src/MainWidget.h
+++ src/MainWidget.h
@@ -69,2 +69,3 @@
<span class="bkslt">\t</span>void saveState();
+<span class="bkslt">\t</span>void toggleLock();
@@ -131,2 +131,3 @@
<span class="bkslt">\t</span>int mnu_autores;
+<span class="bkslt">\t</span>int mnu_lock;
<span class="dastx">#</span>
<span class="dastx">##</span>
--- src/DragWidget.cpp
+++ src/DragWidget.cpp
@@ -6,3 +6,3 @@
<span class="bkslt">\t</span>drag=false;
-
+<span class="bkslt">\t</span>locked=false;
}
@@ -17,2 +17,3 @@
<span class="bkslt">\t</span>gpress=e->globalPos();
+<span class="bkslt">\t</span>if (locked)return;
<span class="bkslt">\t</span>drag=true;
@@ -34,2 +35,12 @@
}
+
+void DragWidget::setLocked(bool mode)
+{
+<span class="bkslt">\t</span>locked=mode;
+}
+
+const bool DragWidget::isLocked() const
+{
+<span class="bkslt">\t</span>return locked;
+}
<span class="dastx">#</span>
<span class="dastx">##</span>
--- src/DragWidget.h
+++ src/DragWidget.h
@@ -14,2 +14,5 @@
+<span class="bkslt">\t</span>void setLocked(bool mode);
+<span class="bkslt">\t</span>const bool isLocked() const;
+
private:
@@ -24,2 +27,3 @@
<span class="bkslt">\t</span>TQPoint gpress;
+<span class="bkslt">\t</span>bool locked;
<span class="dastx">#</span>
<span class="dastx">##</span>
--- src/resizabledragwidget.cpp
+++ src/resizabledragwidget.cpp
@@ -38,2 +38,3 @@
{
+<span class="bkslt">\t</span>if (locked)return;
<span class="bkslt">\t</span>
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Fix azerty keyboards shift keys showing caps by simplifying the algorithm:
<span class="dastx">#</span> * if Shift Lock is on, set text as shift character, else use lower character
<span class="dastx">#</span> * if Caps Lock is on, set text as l.upper(), which will be upper case for alpha characters, or lower level for non-alpha characters, else use lower character
<span class="dastx">#</span> * for lower level or shift characters, set ampersand as a special case
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -905,30 +905,22 @@
<span class="bkslt">\t</span>KeyCode keycode=v.getKeyCode();
-
+// first level character keysym
<span class="bkslt">\t</span>KeySym keysym_l = XkbKeycodeToKeysym(display, keycode, 0, 0);
+// second level, ie shift, character keysym
+<span class="bkslt">\t</span>KeySym keysym_s = XkbKeycodeToKeysym(display, keycode, 0, 1);
-<span class="bkslt">\t</span>KeySym keysym_u = XkbKeycodeToKeysym(display, keycode, 0, 1);
-
-<span class="bkslt">\t</span>long ret = keysym2ucs(keysym_l);
-
-<span class="bkslt">\t</span>TQString btn_text(TQChar((uint)ret));
+<span class="bkslt">\t</span>long retl = keysym2ucs(keysym_l);
<span class="bkslt">\t</span>
-<span class="bkslt">\t</span><span class="bkslt">\t</span>TQChar c((uint)ret);
-<span class="bkslt">\t</span><span class="bkslt">\t</span>if (c==\'&amp;\')
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQChar l((uint)retl);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>if (l==\'&amp;\')
<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setText("&amp;&amp;");
<span class="bkslt">\t</span><span class="bkslt">\t</span>else
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setText(btn_text);
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setText(l);
-<span class="bkslt">\t</span>TQString btn_upper(btn_text.upper());
+<span class="bkslt">\t</span>long rets = keysym2ucs(keysym_s);
-<span class="bkslt">\t</span>if (btn_upper==btn_text) {
-<span class="bkslt">\t</span><span class="bkslt">\t</span>ret = keysym2ucs(keysym_u);
-<span class="bkslt">\t</span><span class="bkslt">\t</span>TQChar c((uint)ret);
-<span class="bkslt">\t</span><span class="bkslt">\t</span>if (c==\'&amp;\')
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQChar s((uint)rets);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>if (s==\'&amp;\')
<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setShiftText("&amp;&amp;");
<span class="bkslt">\t</span><span class="bkslt">\t</span>else
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setShiftText(c);
-<span class="bkslt">\t</span>}
-<span class="bkslt">\t</span>else {
-<span class="bkslt">\t</span><span class="bkslt">\t</span>v.setShiftText(btn_upper);
-<span class="bkslt">\t</span>}
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>v.setShiftText(s);
}
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<b>echo</b> $'--- src/VButton.cpp
+++ src/VButton.cpp
@@ -22,16 +22,6 @@
{
-<span class="bkslt">\t</span>if (press==true){<span class="bkslt">\t</span>
-<span class="bkslt">\t</span><span class="bkslt">\t</span>TQString tu=l.upper();
-<span class="bkslt">\t</span><span class="bkslt">\t</span>if (tu.compare(l)==0){
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>//TQPushButton::setText(tu);
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(u);
-<span class="bkslt">\t</span><span class="bkslt">\t</span>}
-<span class="bkslt">\t</span><span class="bkslt">\t</span>else{
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(tu);
-<span class="bkslt">\t</span><span class="bkslt">\t</span>}
-
-<span class="bkslt">\t</span>}
-<span class="bkslt">\t</span>else{
+<span class="bkslt">\t</span>if (press==true)
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(s);
+<span class="bkslt">\t</span>else
<span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(l);
-<span class="bkslt">\t</span>}
}
@@ -39,14 +29,7 @@
{
-<span class="bkslt">\t</span>if (press==true){<span class="bkslt">\t</span>
+<span class="bkslt">\t</span>if (press==true) {
<span class="bkslt">\t</span><span class="bkslt">\t</span>TQString tu=l.upper();
-<span class="bkslt">\t</span><span class="bkslt">\t</span>if (tu.compare(l)==0){
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(tu);
-<span class="bkslt">\t</span><span class="bkslt">\t</span>}
-<span class="bkslt">\t</span><span class="bkslt">\t</span>else{
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(u);
-<span class="bkslt">\t</span><span class="bkslt">\t</span>}
-<span class="bkslt">\t</span>}
-<span class="bkslt">\t</span>else{
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(tu); }
+<span class="bkslt">\t</span>else
<span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(l);
-<span class="bkslt">\t</span>}
}
@@ -60,3 +43,3 @@
{
-<span class="bkslt">\t</span>u=text;
+<span class="bkslt">\t</span>s=text;
}
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<b>echo</b> $'--- src/VButton.h
+++ src/VButton.h
@@ -31,3 +31,3 @@
<span class="bkslt">\t</span>unsigned int keycode;
-<span class="bkslt">\t</span>TQString u;
+<span class="bkslt">\t</span>TQString s;
<span class="bkslt">\t</span>TQString l;
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<b>echo</b> $'--- src/numpadvbutton.cpp
+++ src/numpadvbutton.cpp
@@ -35,3 +35,3 @@
<span class="bkslt">\t</span>if (press==true){
-<span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(u);
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQPushButton::setText(s);
<span class="bkslt">\t</span><span class="bkslt">\t</span>VButton::setKeyCode(numlock_code);
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Set a default button background colour which otherwise defaults to system colour
<span class="dastx">##</span> Changeable from configuration menu
<b>echo</b> $'--- src/VButton.cpp
+++ src/VButton.cpp
@@ -11,2 +11,3 @@
<span class="bkslt">\t</span>//connect(this,TQT_SIGNAL(clicked()),this,TQT_SLOT(sendKey()));
+<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQColor("#f0f0f0") );
<span class="bkslt">\t</span>setFocusPolicy(TQ_NoFocus);
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Base the auto font size on main board size otherwise when the num pad is brought into view
<span class="dastx">##</span> the font size immediately increases in proportion, ie by 703/552.
<span class="dastx">##</span> and set a more realistic initial font size
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -690,3 +690,6 @@
<span class="bkslt">\t</span><span class="bkslt">\t</span>//double rs = (100.0/700.0)*width();
-<span class="bkslt">\t</span><span class="bkslt">\t</span>double rp = (8.0/600.0)*width();
+<span class="bkslt">\t</span>if (extent_visible) {
+<span class="bkslt">\t</span><span class="bkslt">\t</span>rp = (11.0/600.0)*width() * (552.0/703.0); }
+<span class="bkslt">\t</span>else {
+<span class="bkslt">\t</span><span class="bkslt">\t</span>rp = (11.0/600.0)*width(); }
<span class="bkslt">\t</span><span class="bkslt">\t</span>//fnt.setStretch(rs);
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<b>echo</b> $'--- src/MainWidget.h
+++ src/MainWidget.h
@@ -130,2 +130,3 @@
<span class="bkslt">\t</span>double sdxb;
+<span class="bkslt">\t</span>double rp;
<span class="bkslt">\t</span>int mnu_dock;
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> i18n
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -519 +519 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( "Font ...", this, TQT_SLOT ( chooseFont() ) );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n ("Font"), this, TQT_SLOT ( chooseFont() ) );
@@ -521 +521 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_autores = m->insertItem( "Auto resize font",this, TQT_SLOT ( toggleFontAutoRes() ) );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_autores = m->insertItem( i18n ("Auto resize font"),this, TQT_SLOT ( toggleFontAutoRes() ) );
@@ -524 +524,0 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>
@@ -526 +525 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_dock = m->insertItem ( "Dock widget", this, TQT_SLOT ( showDock() ) );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_dock = m->insertItem ( i18n ("Dock widget"), this, TQT_SLOT ( showDock() ) );
@@ -531 +530 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_lock = m->insertItem("Lock on screen", this, TQT_SLOT(toggleLock()));
+<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_lock = m->insertItem( i18n ("Lock on screen"), this, TQT_SLOT(toggleLock()));
@@ -537 +536 @@
-<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( "Help", h->menu() );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n ("Help"), h->menu() );
@@ -1854 +1853 @@
-<span class="bkslt">\t</span>TQToolTip::add ( this, "Virtual keyboard" );
+<span class="bkslt">\t</span>TQToolTip::add ( this, i18n ("Virtual keyboard") );
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> Add TQColorDialog
<span class="dastx">##</span> keyboard colour defaults to #cdc0b0
<span class="dastx">##</span> key/button colour defaults to #f0f0f0
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -39,4 +39,3 @@
#include &lt;tdeapplication.h>
-
-
+#include &lt;ntqcolordialog.h>
<span class="dastx">##</span> load any existing chosen colours for the keyboard, otherwise default to #cdc0b0
@@ -79,3 +78,7 @@
-<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQColor("#cdc0b0") );
+<span class="bkslt">\t</span>TDEConfig *cfg = TDEApplication::kApplication()->config();
+// if "kbColor" entry doesn\'t exist - either because it hasn\'t been saved
+// or kvkbdrc doesn\'t exist, default to "#cdc0b0"
+<span class="bkslt">\t</span>TQColor bc = cfg->readEntry ("kbColor","#cdc0b0");
+<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQColor(bc) );
<span class="bkslt">\t</span>setFocusPolicy ( TQ_NoFocus );
<span class="dastx">##</span> new configuration menu entries
@@ -524,2 +527,8 @@
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertSeparator();
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n ("Keyboard color"), this, TQT_SLOT ( Colorb() ) );
+
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n ("Key color (restart if changed)"), this, TQT_SLOT ( Colork() ) );
+
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertSeparator();
<span class="bkslt">\t</span><span class="bkslt">\t</span>mnu_dock = m->insertItem ( i18n ("Dock widget"), this, TQT_SLOT ( showDock() ) );
<span class="dastx">##</span> open ColorDialog and save chosen colours
@@ -573,3 +582,26 @@
-
+void MainWidget::Colorb() // keyboard colour chosen through the configuration menu
+{
+<span class="bkslt">\t</span>TDEConfig *cfg = TDEApplication::kApplication()->config();
+// if "kbColor" entry exists, start with that, otherwise start with the default "#cdc0b0"
+<span class="bkslt">\t</span>TQColor bc = cfg->readEntry ("kbColor","#cdc0b0");
+<span class="bkslt">\t</span>TQColor b = TQColorDialog::getColor( TQColor( bc ) );
+// if the selection of the new colour is cancelled, b will be invalid
+// otherwise the new value is written to kvkbdrc
+// - this must be in the #rrggbb format
+<span class="bkslt">\t</span>if ( b.isValid() ) {
+<span class="bkslt">\t</span>cfg->writeEntry ("kbColor", b.name() );
+<span class="bkslt">\t</span>cfg->sync();
+<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQColor( b ) ); }
+}
+void MainWidget::Colork() // key/button colour chosen through the configuration menu
+{
+<span class="bkslt">\t</span>TDEConfig *cfg = TDEApplication::kApplication()->config();
+<span class="bkslt">\t</span>TQColor kc = cfg->readEntry ("keyColor","#f0f0f0");
+<span class="bkslt">\t</span>TQColor k = TQColorDialog::getColor( TQColor( kc ) );
+<span class="bkslt">\t</span>if ( k.isValid() ) {
+<span class="bkslt">\t</span>cfg->writeEntry ("keyColor", k.name() );
+<span class="bkslt">\t</span>cfg->sync(); }
+// can\'t set PaletteBackgroundColor because it\'s in VButton::VButton - needs restart to read configuration entry
+}
void MainWidget::finishInit()
<span class="dastx">##</span> set initially 150 from the RH edge of the screen to allow for the num pad
<span class="dastx">##</span> and set 50 from the bottom edge to allow for the panel
@@ -599,3 +631,3 @@
<span class="bkslt">\t</span>int d_height=235;
-<span class="bkslt">\t</span>TQRect dflt_geom(screen_geom.width()-d_width,screen_geom.height()-d_height,d_width,d_height);
+<span class="bkslt">\t</span>TQRect dflt_geom(screen_geom.width()-d_width-150,screen_geom.height()-d_height-50,d_width,d_height);
--- src/MainWidget.h
+++ src/MainWidget.h
@@ -70,2 +70,4 @@
<span class="bkslt">\t</span>void toggleLock();
+<span class="bkslt">\t</span>void Colorb();
+<span class="bkslt">\t</span>void Colork();
--- src/VButton.cpp
+++ src/VButton.cpp
@@ -3,2 +3,4 @@
#include &lt;tqfont.h>
+#include &lt;tdeconfig.h>
+#include &lt;tdeapplication.h>
<span class="dastx">##</span> load any existing chosen colours for the keys/buttons, otherwise default to #f0f0f0
@@ -11,4 +13,10 @@
<span class="bkslt">\t</span>//connect(this,TQT_SIGNAL(clicked()),this,TQT_SLOT(sendKey()));
-<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQColor("#f0f0f0") );
+<span class="bkslt">\t</span>TDEConfig *cfg = TDEApplication::kApplication()->config();
+// if "keyColor" entry doesn\'t exist - either because it hasn\'t been saved
+// or kvkbdrc doesn\'t exist, default to "#f0f0f0"
+<span class="bkslt">\t</span>TQColor kc = cfg->readEntry ("keyColor","#f0f0f0");
+<span class="bkslt">\t</span>setPaletteBackgroundColor ( TQColor(kc) );
+
<span class="bkslt">\t</span>setFocusPolicy(TQ_NoFocus);
+
<span class="bkslt">\t</span>resize(30,30);
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
&lt;&lt;'comment'
The keyboard geometry is saved when either of the Quit options is selected.
If the num pad is visible [extent_visible=true] when Kvkbd is Quit, then when it is run again, with the default being extent_visible=false, the keyboard will display without the num pad but at an x-axis size which includes the num pad dimension, ie elongated.
To fix this, add the state of extent_visible to the configuration file and start with that when Kvkbd is re-started.
comment
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -76,5 +76,6 @@
<span class="bkslt">\t</span>int sty=15;
-<span class="bkslt">\t</span>extent_visible=false;
<span class="bkslt">\t</span>TDEConfig *cfg = TDEApplication::kApplication()->config();
+// if the num pad was visible when Kvkbd was \'Quit\', the geometry includes it, so start with the num pad in the same state
+<span class="bkslt">\t</span>extent_visible = cfg->readBoolEntry("numpad_visible",false);
// if "kbColor" entry doesn\'t exist - either because it hasn\'t been saved
@@ -659,2 +660,3 @@
<span class="bkslt">\t</span><span class="bkslt">\t</span>cfg->writeEntry("geometry",geometry());
+<span class="bkslt">\t</span><span class="bkslt">\t</span>cfg->writeEntry("numpad_visible",extent_visible);
<span class="bkslt">\t</span><span class="bkslt">\t</span>cfg->sync();
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> add tooltips to buttons
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -398,2 +398,3 @@
<span class="bkslt">\t</span>quit->setPixmap(TQIconSet(SmallIcon("application-exit")).pixmap());
+<span class="bkslt">\t</span>TQToolTip::add( quit, i18n( "Hide keyboard" ) );
<span class="bkslt">\t</span>quit->res();
@@ -406,2 +407,3 @@
<span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
+<span class="bkslt">\t</span>TQToolTip::add( extent, i18n( "Show num pad" ) );
<span class="bkslt">\t</span>extent->res();
@@ -571,3 +573,3 @@
<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->setPixmap(TQIconSet(SmallIcon("configure")).pixmap());
-
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQToolTip::add( popup_menu, i18n( "Configure" ) );
<span class="bkslt">\t</span><span class="bkslt">\t</span>other_keys.append(popup_menu);
@@ -989,3 +991,3 @@
-<span class="bkslt">\t</span>TQToolTip::add ( this, "Toggle keyboard visibility" );
+<span class="bkslt">\t</span>TQToolTip::add ( this, i18n ("Toggle keyboard visibility") );
}
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> more add tooltips to buttons
<span class="dastx">##</span> if the num pad was visible, the tooltip continued to show 'Show num pad'
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -742,2 +742,3 @@
<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQToolTip::add( extent, i18n( "Show num pad" ) );
<span class="bkslt">\t</span>}
@@ -747,2 +748,3 @@
<span class="bkslt">\t</span><span class="bkslt">\t</span>TQWidget::resize ( (int)sdxb, height() );
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQToolTip::add( extent, i18n( "Hide num pad" ) );
<span class="bkslt">\t</span>}
' | patch -N -p0
<span class="dastx" style="float:left;">#</span><hr style="float:left;width:100px;">
<span class="dastx">##</span> yet more add tooltips to buttons
<span class="dastx">##</span> if Kvkbd was 'Quit' with the num pad visible, on restart the double arrow was indicating 'Show num pad'
<b>echo</b> $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
@@ -406,4 +406,8 @@
<span class="bkslt">\t</span>extent->move(526, 85 );
-<span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
-<span class="bkslt">\t</span>TQToolTip::add( extent, i18n( "Show num pad" ) );
+<span class="bkslt">\t</span>if (extent_visible) {
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQToolTip::add( extent, i18n( "Hide num pad" ) ); }
+<span class="bkslt">\t</span>else {
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
+<span class="bkslt">\t</span><span class="bkslt">\t</span>TQToolTip::add( extent, i18n( "Show num pad" ) ); }
<span class="bkslt">\t</span>extent->res();
' | patch -N -p0
</code>
<code class="thtwo">chown_fn
cd_builddir_fn
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$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="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DWITH_GCC_VISIBILITY="OFF" \
-DBUILD_DOC="ON" \
-DBUILD_TRANSLATIONS="OFF" \
-Wno-dev \
..
make $NUMJOBS
make DESTDIR=$PKG install
strip_fn
mkdir_install_fn
doinst_sh_fn
makepkg_fn
<span class="dastx">##</span> don't need to install this
<span class="dastx">##</span> installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
<span class="dastx">##</span> ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
</code>
There is a help page included with the tde-slackbuilds source which is not practical to add to this build.
It can be built from that source with meinproc and added to this package if needed.
Translations are also available with the x86_64 build.
<span class="tabs"><a href="#close_kvkbd">close</a></span>
</div>
<br></div>
<!-- kvkbd - end -->
<br>
<span class="comment">
The source for this page is in the gh-pages branch of tde-slackbuilds:
<br>
<code style="font-style:italic">git clone https://github.com/Ray-V/tde-slackbuilds.git
cd tde-slackbuilds
git checkout gh-pages
</code>
</span>
6 years ago
<!-- DROPDOWN MENU -->
<div>
<ul id="menu">
<li><a><span style="color:#e3e3e3">&nabla;</span></a>
<div>
<p><b>Set up</b>
<p><a href="#gcc_x">gcc cross-compiler</a>
<p><a href="#kernel"><span style="background: #FFD7F7;">kernel</span></a>
6 years ago
<p><a href="#qemu">qemu</a>
<p><a href="#Set_variables">build environment</a>
<p><a href="#M_proc">tqmoc and meinproc</a>
<p><b>Builds</b>
<p><a href="#tqt">&hellip; <span style="background: #E5F1FF;">tqt3</span></a>
<p><a href="#tqtint">&hellip; <span style="background: #E5F1FF;">tqtinterface</span></a>
<p><a href="#arts">&hellip; <span style="background: #E5F1FF;">arts</span></a>
<p><a href="#dbus">&hellip; <span style="background: #E5F1FF;">dbus-tqt</span></a>
<p><a href="#dbus_1">&hellip; <span style="background: #E5F1FF;">dbus-1-tqt</span></a>
<p><a href="#libart">&hellip; <span style="background: #E5F1FF;">libart-lgpl</span></a>
6 years ago
<p><a href="#tqca_tls">&hellip; <span style="background: #E5F1FF;">tqca-tls</span></a>
<p><a href="#tdelibs">&hellip; <span style="background: #E5F1FF;">tdelibs</span></a>
<p><a href="#tdebase">&hellip; <span style="background: #E5F1FF;">tdebase</span></a>
<p><a href="#tdeaddons">&hellip; tdeaddons</a>
<p><a href="#tdeutils">&hellip; tdeutils</a>
5 years ago
<p><a href="#tdeartwork">&hellip; tdeartwork</a>
6 years ago
<p><a href="#imlib">&hellip; <span style="background: #FFD7F7;">imlib</span></a>
<p><a href="#tdegraph">&hellip; tdegraphics</a>
<p><a href="#tdeadmin">&hellip; tdeadmin</a>
<p><a href="#tdmtheme">&hellip; tdmtheme</a>
<p><a href="#knemo">&hellip; knemo</a>
<p><a href="#krusader">&hellip; krusader</a>
<p><a href="#kvkbd">&hellip; kvkbd</a>
6 years ago
</div>
</li>
</ul>
</div>
<!-- DROPDOWN MENU ENDS-->
</body></html>