|
|
<!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;}
|
|
|
.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>
|
|
|
<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.
|
|
|
<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.
|
|
|
<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.1.2 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>.
|
|
|
<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>
|
|
|
Compared to a native x86_64 build, the build times are typically:
|
|
|
<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> 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:
|
|
|
<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, …
|
|
|
<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>
|
|
|
This will be the build setup for the cross-compiler and sysroot.<br>
|
|
|
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>
|
|
|
♦♦ sysroot libs and headers can be permanently installed within the cross-compiler tree or bind mounted from another media or directory.<br>
|
|
|
♦ only TDE packages required for building other TDE apps will be installed.
|
|
|
|
|
|
<pre>/opt
|
|
|
├── cross-pi-gcc
|
|
|
│ ├── $TARGET
|
|
|
│ │ ├── bin
|
|
|
│ │ │ └── <span class="comment">ldd …</span>
|
|
|
│ │ └── lib
|
|
|
│ │ └── <span class="comment">ld-linux-*.so.* …</span>
|
|
|
│ ├── bin cross compiler
|
|
|
│ │ └── <span class="comment">$TARGET-gcc …</span>
|
|
|
│ └── sysroot
|
|
|
│ ├── lib$LIBDIRSUFFIX ♦♦ target libraries
|
|
|
│ ├── usr ♦♦
|
|
|
│ │ ├── include target headers
|
|
|
│ │ │ └── linux kernel headers
|
|
|
│ │ └── lib$LIBDIRSUFFIX target libraries
|
|
|
│ ├── src source archives
|
|
|
│ ├── x86 x86 binaries - qemu-$ARM, meinproc, tqmoc
|
|
|
│ └── opt
|
|
|
│ └── tde ♦ for TDE headers and libraries for pkg-config
|
|
|
└── tde ♦ for TDE executables used during TDE builds</pre>
|
|
|
<p>
|
|
|
<b>Source archives</b>
|
|
|
<br>
|
|
|
The source archives need to be downloaded and placed in the src directory -
|
|
|
<br>
|
|
|
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>
|
|
|
<p>
|
|
|
<b>Build in a chroot?</b><br>
|
|
|
Yes if:<br>
|
|
|
▸ the TDE installation directory exists on the build system,<br>
|
|
|
▸ 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.
|
|
|
<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>
|
|
|
<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">… build gcc cross-compiler</a></span><span style="vertical-align:-30%"> 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>
|
|
|
<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
|
|
|
│ ├── gmp-6.1.2.tar.xz
|
|
|
│ ├── isl-0.18.tar.bz2
|
|
|
│ ├── mpc-1.1.0.tar.gz
|
|
|
│ └── mpfr-4.0.2.tar.xz
|
|
|
├── build_all build area
|
|
|
│ ├── linux for kernel headers
|
|
|
│ ├── binutils-2.32
|
|
|
│ ├── build-binutils
|
|
|
│ ├── gcc-9.1.0
|
|
|
│ ├── build-gcc
|
|
|
│ ├── glibc-2.29
|
|
|
│ └── 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
|
|
|
</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
|
|
|
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>
|
|
|
</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)
|
|
|
(cd /tmp/headers
|
|
|
makepkg -l y -c n /tmp/kernel-headers-$K_VER-RPi-$K_ARCH.txz)
|
|
|
rm -rf /tmp/headers
|
|
|
cd ..
|
|
|
</code>
|
|
|
<span class="dastx">##</span> If building kernel, modules, and dtbs …
|
|
|
<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 .
|
|
|
|
|
|
<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
|
|
|
|
|
|
<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 <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 <linux/limits.h>' | patch -p0
|
|
|
</code>
|
|
|
<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
|
|
|
<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
|
|
|
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
|
|
|
make -j4 all-gcc
|
|
|
make install-gcc
|
|
|
</code>
|
|
|
<span class="dastx">##</span> <b>Add the cross compiler binaries to PATH</b> for building glibc
|
|
|
<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
|
|
|
</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
|
|
|
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
|
|
|
</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>
|
|
|
</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/
|
|
|
|
|
|
<span class="dastx">##</span> Create a sysroot directory
|
|
|
mkdir /tmp/xgcc/pkg$SYSROOT
|
|
|
|
|
|
<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/
|
|
|
|
|
|
<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
|
|
|
</code>
|
|
|
<span class="dastx">##</span> <b>Remove the build area</b>
|
|
|
<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 -->
|
|
|
|
|
|
<p>
|
|
|
<!-- kernel - start -->
|
|
|
<a name="close_kernel"></a>
|
|
|
<br>
|
|
|
<span class="tabs opt"><a href="#kernel">… build 64-bit kernel</a></span><span style="vertical-align:-30%"> 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* ]] && 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>
|
|
|
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 ⇒ 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 -->
|
|
|
<a name="close_qemu"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#qemu">… build qemu</a></span><span style="vertical-align:-30%"> Required to run arm binaries used during the build - for example tquic and tde-config.
|
|
|
</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.
|
|
|
<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 \
|
|
|
--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 …
|
|
|
|
|
|
<span class="tabs"><a href="#close_qemu">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- qemu - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- Set_variables - start -->
|
|
|
<a name="close_Set_variables"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#Set_variables">… the build environment</a></span><span style="vertical-align:-30%"> 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.1.2</b>
|
|
|
export INSTALL_TDE=<b>/opt/tde</b>
|
|
|
export SYS_CNF_DIR=<b>/etc/tde</b>
|
|
|
[[ $ARM == aarch64 ]] && export LIBDIRSUFFIX=64
|
|
|
export TQTDIR=$INSTALL_TDE
|
|
|
export INST_RPATH=$TQTDIR/lib$LIBDIRSUFFIX
|
|
|
export COMPILER="$HOST-gcc -w"
|
|
|
export COMPILER_CXX="$HOST-g++ -w"
|
|
|
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 -w -Wl,-rpath,'$INST_RPATH'"</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
|
|
|
</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>
|
|
|
<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>
|
|
|
</code>
|
|
|
<span class="dastx">##</span> only need qemu-$ARM from the qemu build/installation - just place it somewhere the kernel can find it …
|
|
|
<code class="thtwo">mkdir -p $SYSROOT/x86
|
|
|
<code class="green thtwob"><span class="dastx">##</span> Remove any previously installed files if they are for an older version build
|
|
|
rm $SYSROOT/x86/*
|
|
|
</code>
|
|
|
cp /tmp/qemu-temp/usr/local/bin/qemu-$ARM $SYSROOT/x86
|
|
|
rm -rf /tmp/qemu*
|
|
|
</code>
|
|
|
<span class="dastx">##</span> … and <b>load the arm interpreter</b>
|
|
|
<code class="thtwo">modprobe binfmt_misc
|
|
|
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
|
|
|
|
|
|
[[ $ARM == aarch64 ]] && \
|
|
|
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
|
|
|
</code>
|
|
|
<span class="dastx">##</span> let qemu know where the target libraries are
|
|
|
<code class="thtwo">export QEMU_LD_PREFIX=$SYSROOT
|
|
|
</code>
|
|
|
|
|
|
<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
|
|
|
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 …' errors
|
|
|
installpkg l/glibc-2.29-*.txz
|
|
|
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
|
|
|
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
|
|
|
<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> + for 14.0.10+ builds
|
|
|
installpkg ap/lm_sensors-*.txz
|
|
|
<span class="dastx">##</span> + for 14.1.2+ builds for tdebase
|
|
|
x/xkeyboard-config-*-noarch-*.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 {} \;
|
|
|
<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 ]] && mv $SYSROOT/ld-linux-aarch64.so.1 $SYSROOT/lib/ld-linux-aarch64.so.1
|
|
|
</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
|
|
|
</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 …
|
|
|
<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.
|
|
|
<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.
|
|
|
<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
|
|
|
</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.*
|
|
|
[[ $VERSION == $TDE_VERSION ]] && (cd $PRGNAM*
|
|
|
mkdir cmake
|
|
|
tar xf $SYSROOT/src/cmake-*$VERSION.tar.* --strip-components=1 -C cmake)
|
|
|
cd $PRGNAM-*$VERSION
|
|
|
}
|
|
|
|
|
|
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}
|
|
|
}
|
|
|
|
|
|
mangzip_fn ()
|
|
|
{
|
|
|
find $PKG$INSTALL_TDE/man -type f -name "*.?" -exec gzip -9f {} \;
|
|
|
}
|
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
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&|g" admin/acinclude.m4.in
|
|
|
<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 ]] && ADMIN=admin/ || ADMIN=""
|
|
|
cp /$(grep -h config.guess /var/log/packages/libtool*) ./$ADMIN
|
|
|
cp /$(grep -h config.sub /var/log/packages/libtool*) ./$ADMIN
|
|
|
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
|
|
|
}
|
|
|
|
|
|
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)
|
|
|
<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
|
|
|
}
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_Set_variables">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- Set_variables - end -->
|
|
|
|
|
|
<p>
|
|
|
<!-- M_proc - start -->
|
|
|
<a name="close_M_proc"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#M_proc">… tqmoc and meinproc x86 binaries</a></span><span style="vertical-align:-30%"> 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
|
|
|
<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
|
|
|
</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 .
|
|
|
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* .
|
|
|
|
|
|
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.1.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
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_M_proc">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- M_proc - end -->
|
|
|
|
|
|
<br>
|
|
|
<b>Builds</b>
|
|
|
<br>
|
|
|
<!-- tqt - start -->
|
|
|
<a name="close_tqt"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#tqt">… tqt3</a></span><span style="vertical-align:-30%">
|
|
|
</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
|
|
|
|
|
|
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
|
|
|
|
|
|
<span class="dastx">##</span> html docs occupy ~21M
|
|
|
sed -i '/htmldocs/d' src/qt_install.pri
|
|
|
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
|
|
|
|
|
|
<span class="dastx">##</span> only need linux-g++
|
|
|
(cd mkspecs
|
|
|
GLOBIGNORE=linux-g++
|
|
|
rm -rf *)
|
|
|
</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
|
|
|
+++ 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)
|
|
|
@@ -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)
|
|
|
@@ -40 +40 @@
|
|
|
-QMAKE_INCDIR<span class="bkslt">\t\t</span>=
|
|
|
+QMAKE_INCDIR<span class="bkslt">\t\t</span>= $(TQTDIR)/include/tqt
|
|
|
@@ -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_TQT<span class="bkslt">\t</span><span class="bkslt">\t</span>= $(TQTDIR)/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_TQT<span class="bkslt">\t</span><span class="bkslt">\t</span>= $(TQTDIR)/lib'"$LIBDIRSUFFIX"$'
|
|
|
+QMAKE_INCDIR_OPENGL<span class="bkslt">\t</span>= /usr/include/GL
|
|
|
+QMAKE_LIBDIR_OPENGL<span class="bkslt">\t</span>= /usr/lib'"$LIBDIRSUFFIX"$'
|
|
|
@@ -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 =' | patch -p0
|
|
|
</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&|" 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
|
|
|
sed -i "s|/usr|$SYSROOT&|" config.tests/unix/checkavail
|
|
|
</code>
|
|
|
<span class="dastx">##</span> Set up an arm mkspecs to use for this build where the system 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
|
|
|
@@ -8 +8 @@
|
|
|
-CONFIG<span class="bkslt">\t\t\t</span>+= qt warn_on release incremental link_prl
|
|
|
+CONFIG<span class="bkslt">\t\t\t</span>+= qt warn_off release incremental link_prl
|
|
|
@@ -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" | patch -p0
|
|
|
</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" | \
|
|
|
./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 \
|
|
|
-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:$INST_RPATH\'
|
|
|
</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
|
|
|
make install INSTALL_ROOT=$PKG
|
|
|
</code>
|
|
|
<code class="red"><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)
|
|
|
|
|
|
<span class="dastx">##</span> libraries
|
|
|
(cd $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/
|
|
|
rm libtqteditor*
|
|
|
rm libtqassistantclient*)
|
|
|
</code>
|
|
|
<span class="dastx">##</span> remove sysroot references 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
|
|
|
|
|
|
(cd $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt/mkspecs/
|
|
|
rm -rf linux-arm-g++
|
|
|
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 TQTDIR=$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:
|
|
|
cat <<EOINS >> $PKG/install/doinst.sh
|
|
|
# Add TDE library directory:
|
|
|
[[ \$(cat etc/ld.so.conf|head -n1) != $INSTALL_TDE/lib$LIBDIRSUFFIX ]] && \
|
|
|
sed -i "1i $INSTALL_TDE/lib$LIBDIRSUFFIX" etc/ld.so.conf
|
|
|
|
|
|
# Add TQt library directory:
|
|
|
[[ \$(cat etc/ld.so.conf|head -n1) != $TQTDIR/lib$LIBDIRSUFFIX ]] &&\
|
|
|
sed -i "1i $TQTDIR/lib$LIBDIRSUFFIX" etc/ld.so.conf
|
|
|
|
|
|
[[ -x /sbin/ldconfig ]] && /sbin/ldconfig
|
|
|
|
|
|
EOINS
|
|
|
|
|
|
cat <<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
|
|
|
|
|
|
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* ]] && \\
|
|
|
PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig
|
|
|
## .. and for TQTDIR if different
|
|
|
[[ ! \$PKG_CONFIG_PATH == *$TQTDIR/lib$LIBDIRSUFFIX/pkgconfig* ]] && \\
|
|
|
PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:$TQTDIR/lib$LIBDIRSUFFIX/pkgconfig
|
|
|
#
|
|
|
export PKG_CONFIG_PATH' >> etc/profile.d/pkgconfig.sh
|
|
|
|
|
|
EOINS
|
|
|
</code>
|
|
|
<code class="thtwo">doinst_sh_fn
|
|
|
|
|
|
makepkg_fn
|
|
|
|
|
|
<span class="dastx">##</span> move ldconfig out of the way - links will be set up by doinst.sh
|
|
|
mv /sbin/ldconfig /sbin/ldconfig-bak
|
|
|
|
|
|
<span class="dastx">##</span> install to '/' for TDE binaries
|
|
|
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
<span class="dastx">##</span> and install to SYSROOT for TDE headers and libs
|
|
|
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_tqt">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tqt - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tqtint - start -->
|
|
|
<a name="close_tqtint"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#tqtint">… tqtinterface</a></span><span style="vertical-align:-30%"> </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" \
|
|
|
-DCMAKE_C_COMPILER=$COMPILER \
|
|
|
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
-DCMAKE_INSTALL_PREFIX=$TQTDIR \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DQT_PREFIX_DIR=$TQTDIR \
|
|
|
-DTQT_INCLUDE_DIR=$TQTDIR/include/tqt \
|
|
|
-DMOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
|
|
|
-DQT_VERSION=3 \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
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
|
|
|
|
|
|
strip_fn
|
|
|
|
|
|
mkdir_install_fn
|
|
|
|
|
|
makepkg_fn
|
|
|
|
|
|
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
|
|
|
<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
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_tqtint">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tqtint - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- arts - start -->
|
|
|
<a name="close_arts"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#arts">… arts</a></span><span style="vertical-align:-30%"> </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/*
|
|
|
cmake-toolchain_fn
|
|
|
cmake \
|
|
|
-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" \
|
|
|
-DCMAKE_C_COMPILER=$COMPILER \
|
|
|
-DCMAKE_CXX_COMPILER=$COMPILER_CXX \
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DMAN_INSTALL_DIR=$INSTALL_TDE/man \
|
|
|
-DWITH_ALSA="ON" \
|
|
|
-DWITH_AUDIOFILE="ON" \
|
|
|
-DWITH_ESOUND="OFF" \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DWITH_JACK="OFF" \
|
|
|
-DWITH_MAD="ON" \
|
|
|
-DWITH_SNDIO="OFF" \
|
|
|
-DWITH_VORBIS="ON" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
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
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
strip_fn
|
|
|
|
|
|
mkdir_install_fn
|
|
|
|
|
|
makepkg_fn
|
|
|
|
|
|
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_arts">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- arts - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- dbus - start -->
|
|
|
<a name="close_dbus"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#dbus">… dbus-tqt</a></span><span style="vertical-align:-30%"> </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/*
|
|
|
cmake-toolchain_fn
|
|
|
cmake \
|
|
|
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
|
|
|
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
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
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_dbus">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- dbus - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- dbus_1 - start -->
|
|
|
<a name="close_dbus_1"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#dbus_1">… dbus-1-tqt</a></span><span style="vertical-align:-30%"> </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/*
|
|
|
cmake-toolchain_fn
|
|
|
cmake \
|
|
|
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
|
|
|
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
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
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_dbus_1">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- dbus_1 - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- libart - start -->
|
|
|
<a name="close_libart"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#libart">… libart-lgpl</a></span><span style="vertical-align:-30%"> </a>
|
|
|
</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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DMAN_INSTALL_DIR=/usr/man \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
make $NUMJOBS
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
<span class="dastx">##</span> in shell so that INSTALL_TDE for TDE isn't overridden
|
|
|
(INSTALL_TDE=/usr
|
|
|
mangzip_fn)
|
|
|
|
|
|
strip_fn
|
|
|
|
|
|
mkdir_install_fn
|
|
|
|
|
|
makepkg_fn
|
|
|
|
|
|
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_libart">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- libart - end -->
|
|
|
|
|
|
<p>
|
|
|
<!-- tqca - start -->
|
|
|
<a name="close_tqca"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#tqca">… tqca</a></span><span style="vertical-align:-30%"> </a>
|
|
|
</span>
|
|
|
<div id="tqca" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tqca">close</a></span>
|
|
|
<code><code class="thtwo">cd /
|
|
|
PRGNAM=tqca
|
|
|
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=$INSTALL_TDE \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DBUILD_TQCA="ON" \
|
|
|
-DBUILD_TQCA_TLS="ON" \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
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
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_tqca">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tqca - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdelibs - start -->
|
|
|
<a name="close_tdelibs"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#tdelibs">… tdelibs</a></span><span style="vertical-align:-30%"> </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 << EOF || true
|
|
|
--- tdecmshell/main.cpp
|
|
|
+++ 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) << "Could not find module '" << module << "'." << endl;
|
|
|
+ kdError(780) << "Could not find '" << path << "'." << 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.cpp \
|
|
|
tdeinit/tdestartupconfig.cpp \
|
|
|
tdecore/tdeconfig_compiler/tests/test9main.cpp
|
|
|
do
|
|
|
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|g" $file || true
|
|
|
done
|
|
|
sed -i "s|\"trinity\"|\"$PLUGIN_INSTALL_DIR\"|" tdecore/tdeapplication.cpp || true
|
|
|
</code>
|
|
|
<span class="dastx">##</span> Patching for preferred formatting of help files
|
|
|
<code class="thtwo">patch -N -p0 << 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> Restore diff.xml +/- colours and match markdown.xml diff display
|
|
|
<code class="thtwo">echo $'--- kate/data/diff.xml
|
|
|
+++ kate/data/diff.xml
|
|
|
@@ -111,2 +111,2 @@
|
|
|
- <itemData name="Removed line" defStyleNum="dsString" backgroundColor="#ffeef0"/>
|
|
|
- <itemData name="Added line" defStyleNum="dsOthers" backgroundColor="#e6ffed"/>
|
|
|
+ <itemData name="Removed line" defStyleNum="dsString" color="#FF0000"/>
|
|
|
+ <itemData name="Added line" defStyleNum="dsOthers" color="#0000FF"/>
|
|
|
--- kate/data/markdown.xml
|
|
|
+++ kate/data/markdown.xml
|
|
|
@@ -149,2 +149,2 @@
|
|
|
-<span class="bkslt">\t\t\t</span><itemData name="difflineremove" defStyleNum="dsString" backgroundColor="#ffeef0" />
|
|
|
-<span class="bkslt">\t\t\t</span><itemData name="difflineadd" defStyleNum="dsOthers" backgroundColor="#e6ffed" />
|
|
|
+<span class="bkslt">\t\t\t</span><itemData name="difflineremove" defStyleNum="dsNormal" backgroundColor="#eeeeee" color="#FF0000" />
|
|
|
+<span class="bkslt">\t\t\t</span><itemData name="difflineadd" defStyleNum="dsNormal" backgroundColor="#eeeeee" color="#0000FF" />
|
|
|
' | patch -p0
|
|
|
</code>
|
|
|
<span class="dastx">##</span> Build without spell checker installed
|
|
|
<span class="dastx">##</span> Otherwise, install Aspell, or Hspell, or Ispell …
|
|
|
<code class="thtwo">sed -i 's|^.*Spell checker selected as default.*$|message( STATUS " ## no spell checker selected ##" )|' CMakeLists.txt
|
|
|
</code>
|
|
|
<code class="thtwo">chown_fn
|
|
|
|
|
|
cd_builddir_fn
|
|
|
</code>
|
|
|
<span class="dastx">##</span> Set some paths to required binaries
|
|
|
<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
|
|
|
<code class="thtwo">sed -i "s|dcopidl2cpp|$PWD/dcop/dcopidl2cpp/dcopidl2cpp|" ../CMakeLists.txt
|
|
|
sed -i "s|tdeconfig_compiler|$PWD/tdecore/tdeconfig_compiler/tdeconfig_compiler|" ../CMakeLists.txt
|
|
|
<span class="dastx">##</span> Take this opportunity to use the native meinproc
|
|
|
sed -i "s|meinproc|$INSTALL_TDE/bin/meinproc-x86|" ../CMakeLists.txt
|
|
|
</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
|
|
|
<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
|
|
|
<span class="dastx">##</span> Use native binary intltool-merge for ARCH independent desktop files
|
|
|
<code class="thtwo"><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 INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-D HAVE_GOOD_GETADDRINFO_EXITCODE:STRING=0 \
|
|
|
-D HAVE_OPENPTY_EXITCODE:STRING=0 \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-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" \
|
|
|
-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="ON" \
|
|
|
-DWITH_HSPELL="OFF" \
|
|
|
-DWITH_IMAGETOPS_BINARY="OFF" \
|
|
|
-DWITH_INOTIFY="ON" \
|
|
|
-DWITH_ISPELL="OFF" \
|
|
|
-DWITH_JASPER="OFF" \
|
|
|
-DWITH_KDE4_MENU_SUFFIX="ON" \
|
|
|
-DWITH_LIBART="ON" \
|
|
|
-DWITH_LIBBFD="OFF" \
|
|
|
-DWITH_LIBIDN="OFF" \
|
|
|
-DWITH_LOGINDPOWER="ON" \
|
|
|
-DWITH_LUA="OFF" \
|
|
|
-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" \
|
|
|
-DWITH_UDISKS2="ON" \
|
|
|
-DWITH_UDISKS="ON" \
|
|
|
-DWITH_UPOWER="OFF" \
|
|
|
-DWITH_UTEMPTER="OFF" \
|
|
|
-DWITH_XCOMPOSITE="ON" \
|
|
|
-DWITH_XRANDR="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
<span class="dastx">##</span> Modify paths so that SYSROOT headers and libs are used, to avoid this error:
|
|
|
<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:
|
|
|
sed -i "s|=/usr/include|=$SYSROOT/usr/include|" CMakeCache.txt
|
|
|
sed -i "s|=/usr/lib$LIBDIRSUFFIX|=$SYSROOT/usr/lib$LIBDIRSUFFIX|" CMakeCache.txt
|
|
|
|
|
|
make $NUMJOBS
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
<span class="dastx">##</span> remove sysroot paths to libz.so, libjpeg.so, and libasound.so from package
|
|
|
sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/share/cmake/tdelibs.cmake
|
|
|
</code>
|
|
|
<code class="thtwo">strip_fn
|
|
|
|
|
|
mkdir_install_fn
|
|
|
|
|
|
doinst_sh_fn
|
|
|
</code>
|
|
|
<code class="thtwo">makepkg_fn
|
|
|
|
|
|
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
|
|
|
<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 for the installed libz, libjpeg, libasound files required for the build
|
|
|
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 -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdebase - start -->
|
|
|
<a name="close_tdebase"></a>
|
|
|
<br>
|
|
|
<span class="tabs reqd"><a href="#tdebase">… tdebase</a></span><span style="vertical-align:-30%"> </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 /
|
|
|
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|<limits.h>|&\n#include <linux/limits.h>|' kcontrol/krdb/krdb.cpp
|
|
|
sed -i '20s|^|#include <linux/limits.h>|' kdesktop/lock/lockprocess.cpp
|
|
|
</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><normal color="#000000" font="Sans 10" />
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><normal color="#ffff74" font="Sans 10" />
|
|
|
@@ -39 +39 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><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><pos width="38" x="540" y="188" anchor="c" height="box" />
|
|
|
@@ -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><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><pos x="40%" y="50%" anchor="c" />
|
|
|
@@ -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><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><normal color="#ffff74" font="Sans Condensed 10" />
|
|
|
@@ -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><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><normal color="#ffff74" font="Sans Condensed 10" />
|
|
|
@@ -86,2 +86,2 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><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><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><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><normal color="#ff0000" font="Sans 11" />
|
|
|
@@ -93,2 +93,2 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span><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><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><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><pos x="435" y="260" anchor="s" />
|
|
|
' | patch -p0
|
|
|
</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
|
|
|
' | patch -p0
|
|
|
</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|/etc/trinity|$INSTALL_TDE/share/config|" tdm/kfrontend/gentdmconf.c || 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 << 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>
|
|
|
<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 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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DMAN_INSTALL_DIR=$INSTALL_TDE/man \
|
|
|
-DWITH_ARTS="ON" \
|
|
|
-DWITH_ELFICON="OFF" \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DWITH_I8K="OFF" \
|
|
|
-DWITH_LDAP="OFF" \
|
|
|
-DWITH_LIBART="ON" \
|
|
|
-DWITH_LIBCONFIG="OFF" \
|
|
|
-DWITH_LIBRAW1394="OFF" \
|
|
|
-DWITH_LIBUSB="OFF" \
|
|
|
-DWITH_OPENEXR="ON" \
|
|
|
-DWITH_OPENGL="ON" \
|
|
|
-DWITH_PAM="OFF" \
|
|
|
-DWITH_PCRE="ON" \
|
|
|
-DWITH_SAMBA="OFF" \
|
|
|
-DWITH_SASL="OFF" \
|
|
|
-DWITH_SENSORS="ON" \
|
|
|
-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" \
|
|
|
-DWITH_XFIXES="ON" \
|
|
|
-DWITH_XINERAMA="ON" \
|
|
|
-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_TDM_SYSTEMD_UNIT_FILE="OFF" \
|
|
|
-DBUILD_TQT3INTEGRATION="ON" \
|
|
|
-DBUILD_TSAK="ON" \
|
|
|
-DBUILD_TWIN="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
<span class="dastx">##</span> If the linker can't find some libs to build kicker even though they've been built,
|
|
|
<span class="dastx">##</span> edit kicker.dir/link.txt and rerun 'make':
|
|
|
make $NUMJOBS || \
|
|
|
[[ ! -e ./kicker/kicker/kicker ]] && {
|
|
|
sed -i 's|^.*$|& ../../libkonq/libkonq.so.4 ./interfaces/libkickoffsearch_interfaces.so.0|' ./kicker/kicker/CMakeFiles/kicker.dir/link.txt && \
|
|
|
make $NUMJOBS
|
|
|
}
|
|
|
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
<span class="dastx">##</span> remove sysroot path from package
|
|
|
sed -i "s|$SYSROOT||" $PKG$INSTALL_TDE/bin/khc_htsearch.pl
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
strip_fn
|
|
|
</code>
|
|
|
<code class="thtwo"><span class="dastx">##</span> Add xinitrc:
|
|
|
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
|
|
|
# TDE additions:
|
|
|
export TDEDIR=$INSTALL_TDE
|
|
|
|
|
|
# upgradepkg runs installpkg twice, so test for the second run:
|
|
|
[[ \"\$XDG_CONFIG_DIRS\" != *$SYS_CNF_DIR/xdg* ]] && {
|
|
|
if [ ! \"\$XDG_CONFIG_DIRS\" = \"\" ]; then
|
|
|
export XDG_CONFIG_DIRS=\$XDG_CONFIG_DIRS:$SYS_CNF_DIR/xdg
|
|
|
else
|
|
|
export XDG_CONFIG_DIRS=/etc/xdg:$SYS_CNF_DIR/xdg
|
|
|
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 == \"\" ]] && \\
|
|
|
export XDG_DATA_DIRS=/usr/local/share:/usr/share:$INSTALL_TDE/share || {
|
|
|
[[ \$XDG_DATA_DIRS != *$INSTALL_TDE/share* ]] && \\
|
|
|
export XDG_DATA_DIRS=\$XDG_DATA_DIRS:$INSTALL_TDE/share
|
|
|
}
|
|
|
" > $PKG/etc/profile.d/tde.sh
|
|
|
|
|
|
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
|
|
|
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.
|
|
|
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:
|
|
|
$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
|
|
|
# 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\" ] && exec \$SHELL \$0 \"\$@\"
|
|
|
set +o posix
|
|
|
[ -f /etc/profile ] && . /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\" ] && exec \$SHELL \$0 \"\$@\"
|
|
|
emulate -R zsh
|
|
|
[ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc
|
|
|
zhome=\${ZDOTDIR:-\$HOME}
|
|
|
# zshenv is always sourced automatically.
|
|
|
[ -f \$zdir/zprofile ] && . \$zdir/zprofile
|
|
|
[ -f \$zhome/.zprofile ] && . \$zhome/.zprofile
|
|
|
[ -f \$zdir/zlogin ] && . \$zdir/zlogin
|
|
|
[ -f \$zhome/.zlogin ] && . \$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 ] && . /etc/profile
|
|
|
[ -f \$HOME/.profile ] && . \$HOME/.profile
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
[ -f /etc/xprofile ] && . /etc/xprofile
|
|
|
[ -f \$HOME/.xprofile ] && . \$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 ]] && \
|
|
|
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
|
|
|
|
|
|
<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 ) ]] && 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
|
|
|
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
|
|
|
|
|
|
installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
|
|
|
|
|
|
<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
|
|
|
= 33:01 on x86_64 for RPi3 with tqmoc x86_64 & meinproc arm
|
|
|
= 49:01 on RPi3 for RPi3
|
|
|
|
|
|
<span class="tabs"><a href="#close_tdebase">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdebase - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdeaddons - start -->
|
|
|
<a name="close_tdeaddons"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#tdeaddons">… tdeaddons</a></span><span style="vertical-align:-30%"> </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 << EOF || true
|
|
|
--- konq-plugins/arkplugin/arkplugin.cpp
|
|
|
+++ konq-plugins/arkplugin/arkplugin.cpp
|
|
|
@@ -347 +347 @@
|
|
|
- if ( !TDEStandardDirs::findExe( "ar" ).isNull() && m_conf->readBoolEntry( "UseAr", false ) )
|
|
|
+ if ( !TDEStandardDirs::findExe( "ar" ).isNull() && m_conf->readBoolEntry( "UseAr", true ) )
|
|
|
EOF
|
|
|
|
|
|
chown_fn
|
|
|
|
|
|
<span class="dastx">##</span> check for libatlantic [tdegames]
|
|
|
[[ $(ls $SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/libatlantic.so.*) ]] && ATLANTIKDESIGNER="ON"
|
|
|
|
|
|
<span class="dastx">##</span> check for kaddressbook in tdepim
|
|
|
[[ $(ls $SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/libkaddressbook.so*) ]] && KADDRESSBOOK_PLUGINS="ON"
|
|
|
|
|
|
<span class="dastx">##</span> check for tdemultimedia
|
|
|
[[ $(ls $SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/libnoatun.so*) ]] && NOATUN_PLUGINS="ON"
|
|
|
|
|
|
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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DMAN_INSTALL_DIR=$INSTALL_TDE/man \
|
|
|
-DWITH_ARTS="ON" \
|
|
|
-DWITH_SDL="ON" \
|
|
|
-DWITH_BERKELEY_DB="ON" \
|
|
|
-DWITH_XMMS="OFF" \
|
|
|
-DWITH_TEST="OFF" \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-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" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
make $NUMJOBS
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
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></code>
|
|
|
<span class="tabs"><a href="#close_tdeaddons">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdeaddons - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdeutils - start -->
|
|
|
<a name="close_tdeutils"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#tdeutils">… tdeutils</a></span><span style="vertical-align:-30%"> </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
|
|
|
|
|
|
<span class="dastx">##</span> Set some paths to required binaries
|
|
|
<span class="dastx">##</span> /bin/sh: makecrc: command not found
|
|
|
sed -i "s|COMMAND makecrc|COMMAND ./makecrc|" klaptopdaemon/CMakeLists.txt
|
|
|
|
|
|
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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DMAN_INSTALL_DIR=$INSTALL_TDE/man \
|
|
|
-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" \
|
|
|
-DBUILD_TDEFILEREPLACE="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
make $NUMJOBS
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
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>
|
|
|
|
|
|
<span class="tabs"><a href="#close_tdeutils">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdeutils - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdeartwork - start -->
|
|
|
<a name="close_tdeartwork"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#tdeartwork">… tdeartwork</a></span><span style="vertical-align:-30%"> </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/*
|
|
|
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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DMAN_INSTALL_DIR=$INSTALL_TDE/man \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DWITH_ALL_INCLUDED_XSCREENSAVERS="OFF" \
|
|
|
-DWITH_ARTS="ON" \
|
|
|
-DWITH_XSCREENSAVER="OFF" \
|
|
|
-DWITH_LIBART="ON" \
|
|
|
-DWITH_OPENGL="ON" \
|
|
|
-DBUILD_DOC="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_TDEASCIIQUARIUM="ON" \
|
|
|
-DBUILD_WALLPAPERS="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
make $NUMJOBS
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
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>
|
|
|
|
|
|
<span class="tabs"><a href="#close_tdeartwork">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdeartwork - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- imlib - start -->
|
|
|
<a name="close_imlib"></a>
|
|
|
<br>
|
|
|
<span class="tabs opt"><a href="#imlib">… imlib</a></span><span style="vertical-align:-30%"> 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
|
|
|
</code>
|
|
|
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 <= 0 || w > 32767 ||
|
|
|
+ h <= 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 <= 0 || ww > 32767 ||
|
|
|
+ hh <= 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));
|
|
|
+#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));
|
|
|
+#else
|
|
|
@@ -461,0 +484 @@
|
|
|
+#endif
|
|
|
@@ -466 +489 @@
|
|
|
-<span class="bkslt">\t</span> if (*h > 32767 || *w > 32767)
|
|
|
+<span class="bkslt">\t</span> if (*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
|
|
|
@@ -472,0 +496,3 @@
|
|
|
+#ifdef GIFLIB_MAJOR
|
|
|
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
|
|
|
+#else
|
|
|
@@ -473,0 +500 @@
|
|
|
+#endif
|
|
|
@@ -478,0 +506,3 @@
|
|
|
+#ifdef GIFLIB_MAJOR
|
|
|
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
|
|
|
+#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);
|
|
|
+#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 && bpp != 4 && bpp != 8 && bpp && 16 && bpp != 24 && bpp != 32)
|
|
|
+ if (bpp != 1 && bpp != 4 && bpp != 8 && bpp != 16 && bpp != 24 && 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 <= 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 <= 0 || cpp > 5)
|
|
|
@@ -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 <= 0 || *w > 32767)
|
|
|
@@ -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 <= 0 || *h > 32767)
|
|
|
@@ -1082,0 +1127 @@
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span> int space;
|
|
|
@@ -1087,0 +1133 @@
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span> space = sizeof(col) - 1;
|
|
|
@@ -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, " ");
|
|
|
- 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] && 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;
|
|
|
+ if (slen <= 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;
|
|
|
@@ -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);
|
|
|
@@ -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;
|
|
|
@@ -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] && 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 <= 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;
|
|
|
@@ -1379 +1428 @@
|
|
|
-<span class="bkslt">\t</span> if (a > 32767)
|
|
|
+<span class="bkslt">\t</span> if (a <= 0 || a > 32767)
|
|
|
@@ -1384 +1433 @@
|
|
|
-<span class="bkslt">\t</span> if (b > 32767)
|
|
|
+<span class="bkslt">\t</span> if (b <= 0 || b > 32767)
|
|
|
--- 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 &&
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span> (pm == True)))
|
|
|
@@ -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;
|
|
|
--- 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)))
|
|
|
--- 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;
|
|
|
+ line = strdup(line);
|
|
|
+ if (!line)
|
|
|
+<span class="bkslt">\t</span>break;
|
|
|
+ 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>}
|
|
|
+
|
|
|
@@ -1507 +1523 @@
|
|
|
-<span class="bkslt">\t</span> if (ncolors > 32766)
|
|
|
+<span class="bkslt">\t</span> if (ncolors <= 0 || ncolors > 32766)
|
|
|
@@ -1510,0 +1527 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1513 +1530 @@
|
|
|
-<span class="bkslt">\t</span> if (cpp > 5)
|
|
|
+<span class="bkslt">\t</span> if (cpp <= 0 || cpp > 5)
|
|
|
@@ -1516,0 +1534 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1519 +1537 @@
|
|
|
-<span class="bkslt">\t</span> if (w > 32767)
|
|
|
+<span class="bkslt">\t</span> if (w <= 0 || w > 32767)
|
|
|
@@ -1522,0 +1541 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1525 +1544 @@
|
|
|
-<span class="bkslt">\t</span> if (h > 32767)
|
|
|
+<span class="bkslt">\t</span> if (h <= 0 || h > 32767)
|
|
|
@@ -1528,0 +1548 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1535,0 +1556 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1544,0 +1566 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -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));
|
|
|
+#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));
|
|
|
+#else
|
|
|
@@ -53,0 +65 @@
|
|
|
+#endif
|
|
|
@@ -58 +70 @@
|
|
|
-<span class="bkslt">\t</span> if(*h > 32767 || *w > 32767)
|
|
|
+<span class="bkslt">\t</span> if(*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
|
|
|
@@ -64,0 +77,3 @@
|
|
|
+#ifdef GIFLIB_MAJOR
|
|
|
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
|
|
|
+#else
|
|
|
@@ -65,0 +81 @@
|
|
|
+#endif
|
|
|
@@ -70,0 +87,3 @@
|
|
|
+#ifdef GIFLIB_MAJOR
|
|
|
+<span class="bkslt">\t</span> DGifCloseFile(gif, NULL);
|
|
|
+#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);
|
|
|
+#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 && 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)))
|
|
|
@@ -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)
|
|
|
@@ -638 +641 @@
|
|
|
-<span class="bkslt">\t</span> if (setjmp(png_ptr->jmpbuf))
|
|
|
+<span class="bkslt">\t</span> if (setjmp(png_jmpbuf(png_ptr)))
|
|
|
--- 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 <= 0 || a > 32767)
|
|
|
@@ -61 +61 @@
|
|
|
-<span class="bkslt">\t</span> if (b > 32767)
|
|
|
+<span class="bkslt">\t</span> if (b <= 0 || b > 32767)
|
|
|
--- gdk_imlib/io-tiff.c
|
|
|
+++ gdk_imlib/io-tiff.c
|
|
|
@@ -39 +39,3 @@
|
|
|
- if(ww > 32767 || hh > 32767)
|
|
|
+ if (ww <= 0 || ww > 32767 ||
|
|
|
+ hh <= 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 <= 0 || ncolors > 32766)
|
|
|
@@ -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 <= 0 || cpp > 5)
|
|
|
@@ -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 <= 0 || *w > 32767)
|
|
|
@@ -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 <= 0 || *h > 32767)
|
|
|
@@ -122,0 +127 @@
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span> int space;
|
|
|
@@ -127,0 +133 @@
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span> space = sizeof(col) - 1;
|
|
|
@@ -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) < 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] && 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 <= 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;
|
|
|
@@ -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 < 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);
|
|
|
@@ -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;
|
|
|
@@ -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] && 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 <= 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;
|
|
|
--- 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) &&
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span> (pm == True))
|
|
|
@@ -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;
|
|
|
@@ -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
|
|
|
@@ -1362 +1365,3 @@
|
|
|
-<span class="bkslt">\t</span>if( w > 32767 || h > 32767)
|
|
|
+<span class="bkslt">\t</span>if (w <= 0 || w > 32767 ||
|
|
|
+<span class="bkslt">\t</span> h <= 0 || h > 32767 ||
|
|
|
+<span class="bkslt">\t</span> h >= (G_MAXINT/4 - 1) / w)
|
|
|
@@ -1364 +1369 @@
|
|
|
-<span class="bkslt">\t</span>return malloc(w * h * 3);
|
|
|
+<span class="bkslt">\t</span>return malloc(w * h * 3 + 3);
|
|
|
@@ -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;
|
|
|
+ line = strdup(line);
|
|
|
+ if (!line)
|
|
|
+<span class="bkslt">\t</span>break;
|
|
|
+ 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>}
|
|
|
+
|
|
|
@@ -1247 +1263 @@
|
|
|
-<span class="bkslt">\t</span> if (ncolors > 32766)
|
|
|
+<span class="bkslt">\t</span> if (ncolors <= 0 || ncolors > 32766)
|
|
|
@@ -1250,0 +1267 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1253 +1270 @@
|
|
|
-<span class="bkslt">\t</span> if (cpp > 5)
|
|
|
+<span class="bkslt">\t</span> if (cpp <= 0 || cpp > 5)
|
|
|
@@ -1256,0 +1274 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1259 +1277 @@
|
|
|
-<span class="bkslt">\t</span> if (w > 32767)
|
|
|
+<span class="bkslt">\t</span> if (w <= 0 || w > 32767)
|
|
|
@@ -1262,0 +1281 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1265 +1284 @@
|
|
|
-<span class="bkslt">\t</span> if (h > 32767)
|
|
|
+<span class="bkslt">\t</span> if (h <= 0 || h > 32767)
|
|
|
@@ -1268,0 +1288 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1275,0 +1296 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1284,0 +1306 @@
|
|
|
+<span class="bkslt">\t</span> free(line);
|
|
|
@@ -1358 +1380 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (colptr + ls <= sizeof(col))
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span><span class="bkslt">\t</span> if (colptr + ls < sizeof(col))
|
|
|
@@ -1560,0 +1583 @@
|
|
|
+ free(line);
|
|
|
' | patch -p0
|
|
|
</code>
|
|
|
<code class="thtwo">ltoolupdate_fn
|
|
|
|
|
|
chown_fn
|
|
|
|
|
|
cd_builddir_fn
|
|
|
|
|
|
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
|
|
|
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
|
|
|
|
|
|
</code></code>
|
|
|
<span class="tabs"><a href="#close_imlib">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- imlib - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdegraph - start -->
|
|
|
<a name="close_tdegraph"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#tdegraph">… tdegraphics</a></span><span style="vertical-align:-30%"> </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
|
|
|
</code>
|
|
|
<span class="dastx">##</span> option to build without the dedicated KolourPaint button in ksnapshot
|
|
|
<code class="green thtwob">echo $'--- ksnapshot/ksnapshot.cpp
|
|
|
+++ ksnapshot/ksnapshot.cpp
|
|
|
@@ -84 +83,0 @@
|
|
|
- connect(mainWidget, TQ_SIGNAL(openWithKPClicked()), TQ_SLOT(slotOpenWithKP()));
|
|
|
@@ -135,6 +133,0 @@
|
|
|
- // Check for KolourPaint availability
|
|
|
- KService::Ptr kpaint = KService::serviceByDesktopName("kolourpaint");
|
|
|
- if (!kpaint) {
|
|
|
- mainWidget->btnOpenWithKP->hide();
|
|
|
- }
|
|
|
-
|
|
|
@@ -395,7 +388,0 @@
|
|
|
-void KSnapshot::slotOpenWithKP() {
|
|
|
- KService::Ptr kpaint = KService::serviceByDesktopName("kolourpaint");
|
|
|
- if (kpaint) {
|
|
|
- openWithExternalApp(*kpaint);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
--- ksnapshot/ksnapshot.h
|
|
|
+++ ksnapshot/ksnapshot.h
|
|
|
@@ -114 +113,0 @@
|
|
|
- void slotOpenWithKP();
|
|
|
--- ksnapshot/ksnapshotwidget.ui
|
|
|
+++ ksnapshot/ksnapshotwidget.ui
|
|
|
@@ -245,14 +244,0 @@
|
|
|
- <widget class="KPushButton">
|
|
|
- <property name="name">
|
|
|
- <cstring>btnOpenWithKP</cstring>
|
|
|
- </property>
|
|
|
- <property name="text">
|
|
|
- <string>Open in &amp;KolourPaint</string>
|
|
|
- </property>
|
|
|
- <property name="whatsThis" stdset="0">
|
|
|
- <string>Click this button to edit the snapshot in KolourPaint.</string>
|
|
|
- </property>
|
|
|
- <property name="iconSet">
|
|
|
- <iconset>"kolourpaint"</iconset>
|
|
|
- </property>
|
|
|
- </widget>
|
|
|
@@ -320,6 +305,0 @@
|
|
|
- <connection>
|
|
|
- <sender>btnOpenWithKP</sender>
|
|
|
- <signal>clicked()</signal>
|
|
|
- <receiver>KSnapshotWidget</receiver>
|
|
|
- <slot>slotOpenWithKPClicked()</slot>
|
|
|
- </connection>
|
|
|
@@ -365 +344,0 @@
|
|
|
- <signal>openWithKPClicked()</signal>
|
|
|
@@ -375 +353,0 @@
|
|
|
- <slot access="protected" specifier="non virtual">slotOpenWithKPClicked()</slot>
|
|
|
--- ksnapshot/ksnapshotwidget.ui.h
|
|
|
+++ ksnapshot/ksnapshotwidget.ui.h
|
|
|
@@ -140,4 +139,0 @@
|
|
|
-void KSnapshotWidget::slotOpenWithKPClicked()
|
|
|
-{
|
|
|
- emit openWithKPClicked();
|
|
|
-}' |patch -p0
|
|
|
</code>
|
|
|
<code class="thtwo">cd_builddir_fn
|
|
|
|
|
|
<span class="dastx">##</span> rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
|
|
|
<span class="dastx">##</span> If imlib is installed, include kuickshow:
|
|
|
[[ $(ls $SYSROOT/usr/lib$LIBDIRSUFFIX/libImlib.so.*) ]] && KUICKSHOW=ON
|
|
|
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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DMAN_INSTALL_DIR=$INSTALL_TDE/man \
|
|
|
-DWITH_PAPER="OFF" \
|
|
|
-DWITH_TIFF="OFF" \
|
|
|
-DWITH_OPENEXR="OFF" \
|
|
|
-DWITH_PDF="ON" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-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="OFF" \
|
|
|
-DBUILD_KOLOURPAINT="ON" \
|
|
|
-DBUILD_KPOVMODELER="ON" \
|
|
|
-DBUILD_KRULER="ON" \
|
|
|
-DBUILD_KSNAPSHOT="ON" \
|
|
|
-DBUILD_KVIEW="ON" \
|
|
|
-DBUILD_KVIEWSHELL="ON" \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
make $NUMJOBS
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
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></code>
|
|
|
<span class="tabs"><a href="#close_tdegraph">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdegraph - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdeadmin - start -->
|
|
|
<a name="close_tdeadmin"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#tdeadmin">… tdeadmin</a></span><span style="vertical-align:-30%"> </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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-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 \
|
|
|
..
|
|
|
|
|
|
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>
|
|
|
|
|
|
<span class="tabs"><a href="#close_tdeadmin">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdeadmin - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- tdmtheme - start -->
|
|
|
<a name="close_tdmtheme"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#tdmtheme">… tdmtheme</a></span><span style="vertical-align:-30%"> </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
|
|
|
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
|
|
|
<span class="dastx">##</span> [need to export LINGUAS to set it as an environment variable for cmake]
|
|
|
[[ $I18N ]] && TRANS=ON && export LINGUAS=$I18N
|
|
|
|
|
|
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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-DBUILD_TRANSLATIONS=${TRANS:-"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>
|
|
|
|
|
|
<span class="tabs"><a href="#close_tdmtheme">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdmtheme - end -->
|
|
|
|
|
|
|
|
|
<p>
|
|
|
<!-- knemo - start -->
|
|
|
<a name="close_knemo"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#knemo">… knemo</a></span><span style="vertical-align:-30%"> </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
|
|
|
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|<tr><td>|<tr><td width=70%>|g' src/knemod/interfacetooltip.cpp
|
|
|
<span class="dastx">##</span> patch
|
|
|
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
|
|
|
<span class="dastx">##</span> [need to export LINGUAS to set it as an environment variable for cmake]
|
|
|
[[ $I18N ]] && TRANS=ON && export LINGUAS=$I18N
|
|
|
|
|
|
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 \
|
|
|
-D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
|
|
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DWITH_LIBIW="OFF" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-DBUILD_TRANSLATIONS=${TRANS:-"OFF"} \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
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
|
|
|
</code>
|
|
|
|
|
|
<span class="tabs"><a href="#close_knemo">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- knemo - end -->
|
|
|
|
|
|
<p>
|
|
|
<!-- krusader - start -->
|
|
|
<a name="close_krusader"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#krusader">… krusader</a></span><span style="vertical-align:-30%"> </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
|
|
|
langs="";for Lang in $I18N;do [[ -e po/$Lang".po" ]] && langs="$langs $Lang"".po";done
|
|
|
sed -i "s|POFILES =.*$|POFILES =$langs|" po/Makefile.am
|
|
|
langs=$(echo $langs | sed 's|.po||g')
|
|
|
|
|
|
[[ $I18N != *ru* ]] && \
|
|
|
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/*
|
|
|
CFLAGS="$SLKCFLAGS" \
|
|
|
CXXFLAGS="$SLKCFLAGS" \
|
|
|
MOC=$SYSROOT/x86/tqmoc \
|
|
|
MEINPROC=$INSTALL_TDE/bin/meinproc-x86 \
|
|
|
../configure \
|
|
|
--prefix=$INSTALL_TDE \
|
|
|
--mandir=$INSTALL_TDE/man \
|
|
|
--enable-gcc-hidden-visibility \
|
|
|
--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
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
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>
|
|
|
|
|
|
<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">… kvkbd</a></span><span style="vertical-align:-30%"> </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 provide Kvkbd build options
|
|
|
• Use Win keys as modifier keys or for characters set with xmodmap.
|
|
|
• Use alternative text on the num pad keys.
|
|
|
• Show small icons on the buttons.
|
|
|
• Show blank keys where AltGr doesn't produce a character.
|
|
|
<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> for the basic Greek keyboard:</span>
|
|
|
<img style="max-width:100%"
|
|
|
src="data:image/png;base64,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"
|
|
|
alt="greek keyboard">
|
|
|
<code class="thtwo"><span class="dastx">##</span> change num-pad keys text
|
|
|
echo $'--- src/MainWidget.cpp
|
|
|
+++ src/MainWidget.cpp
|
|
|
@@ -408 +408 @@
|
|
|
-<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"),
|
|
|
@@ -410 +410 @@
|
|
|
-<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") };
|
|
|
@@ -453 +453 @@
|
|
|
-<span class="bkslt">\t</span>numl->setText("Num\\nLock");
|
|
|
+<span class="bkslt">\t</span>numl->setText(TQString::fromUtf8("\u2116"));
|
|
|
@@ -479 +479 @@
|
|
|
-<span class="bkslt">\t</span>ent->setText("En\\nter");
|
|
|
+<span class="bkslt">\t</span>ent->setText("Ent");'|patch -p0
|
|
|
|
|
|
<span class="dastx">##</span> set small icons to better fit on buttons for keyboard used at default size
|
|
|
echo $'--- src/MainWidget.cpp
|
|
|
+++ src/MainWidget.cpp
|
|
|
@@ -380 +380 @@
|
|
|
-<span class="bkslt">\t</span>quit->setPixmap(TQIconSet(SmallIcon("application-exit", TDEIcon::SizeMedium)).pixmap());
|
|
|
+<span class="bkslt">\t</span>quit->setPixmap(TQIconSet(SmallIcon("application-exit")).pixmap());
|
|
|
@@ -391 +391 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-backward", TDEIcon::SizeMedium)).pixmap());
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());
|
|
|
@@ -396 +396 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward", TDEIcon::SizeMedium)).pixmap());
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
|
|
|
@@ -561 +561 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->setPixmap(TQIconSet(SmallIcon("configure", TDEIcon::SizeMedium)).pixmap());
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->setPixmap(TQIconSet(SmallIcon("configure")).pixmap());
|
|
|
@@ -748 +748 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward", TDEIcon::SizeMedium)).pixmap());
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
|
|
|
@@ -754 +754 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-backward", TDEIcon::SizeMedium)).pixmap());
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>extent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());'|patch -p0
|
|
|
|
|
|
<span class="dastx">##</span> configuration menu
|
|
|
echo $'--- src/MainWidget.cpp
|
|
|
+++ src/MainWidget.cpp
|
|
|
@@ -515 +515 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n("Font ..."), this, TQ_SLOT ( chooseFont() ) );
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n("Font"), this, TQ_SLOT ( chooseFont() ) );
|
|
|
@@ -520,0 +521 @@
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertSeparator();
|
|
|
@@ -522 +523 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n ("Keys color"), this, TQ_SLOT ( chooseKeysColor() ) );
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>m->insertItem ( i18n ("Key color"), this, TQ_SLOT ( chooseKeysColor() ) );'|patch -p0
|
|
|
|
|
|
<span class="dastx">##</span> key spacing & sizing
|
|
|
echo $'--- src/MainWidget.cpp
|
|
|
+++ src/MainWidget.cpp
|
|
|
@@ -323 +323 @@
|
|
|
-<span class="bkslt">\t</span>lalt->move ( lwin->x() +lwin->width() +6, sty+ ( 5*35 ) );
|
|
|
+<span class="bkslt">\t</span>lalt->move ( lwin->x() +lwin->width() +5, sty+ ( 5*35 ) );
|
|
|
@@ -340 +340 @@
|
|
|
-<span class="bkslt">\t</span>ralt->resize ( 48,30 );
|
|
|
+<span class="bkslt">\t</span>ralt->resize ( 50,30 );
|
|
|
@@ -350 +350 @@
|
|
|
-<span class="bkslt">\t</span>rwin->resize ( 48,30 );
|
|
|
+<span class="bkslt">\t</span>rwin->resize ( 50,30 );
|
|
|
@@ -359 +359 @@
|
|
|
-<span class="bkslt">\t</span>mnu->resize ( 49,30 );
|
|
|
+<span class="bkslt">\t</span>mnu->resize ( 50,30 );
|
|
|
@@ -369 +369 @@
|
|
|
-<span class="bkslt">\t</span>rctrl->resize ( 49,30 );
|
|
|
+<span class="bkslt">\t</span>rctrl->resize ( 45,30 );
|
|
|
@@ -379 +379 @@
|
|
|
-<span class="bkslt">\t</span>quit->move ( 524,15 );
|
|
|
+<span class="bkslt">\t</span>quit->move ( 526,15 );
|
|
|
@@ -388 +388 @@
|
|
|
-<span class="bkslt">\t</span>extent->move (524, 85 );
|
|
|
+<span class="bkslt">\t</span>extent->move (526, 85 );
|
|
|
@@ -558 +558 @@
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->move ( 524,15+35 );
|
|
|
+<span class="bkslt">\t</span><span class="bkslt">\t</span>popup_menu->move ( 526,15+35 );
|
|
|
@@ -959 +959 @@
|
|
|
-<span class="bkslt">\t</span>resize ( 96,47 );
|
|
|
+<span class="bkslt">\t</span>resize ( 64,31 );'|patch -p0
|
|
|
|
|
|
<span class="dastx">##</span> blank character display where AltGr does not provide extra characters
|
|
|
echo $'--- src/VButton.cpp
|
|
|
+++ src/VButton.cpp
|
|
|
@@ -56,6 +56,6 @@
|
|
|
-<span class="bkslt">\t</span>if (c == " ")
|
|
|
-<span class="bkslt">\t</span>{
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>// use normal text in case altGr does not provide extra characters.
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>// This is required at least on US keyboards, where altGr works as Alt.
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>c = nc;
|
|
|
-<span class="bkslt">\t</span>}
|
|
|
+//<span class="bkslt">\t</span>if (c == " ")
|
|
|
+//<span class="bkslt">\t</span>{
|
|
|
+//<span class="bkslt">\t</span><span class="bkslt">\t</span>// use normal text in case altGr does not provide extra characters.
|
|
|
+//<span class="bkslt">\t</span><span class="bkslt">\t</span>// This is required at least on US keyboards, where altGr works as Alt.
|
|
|
+//<span class="bkslt">\t</span><span class="bkslt">\t</span>c = nc;
|
|
|
+//<span class="bkslt">\t</span>}
|
|
|
@@ -74,6 +74,6 @@
|
|
|
-<span class="bkslt">\t</span>if (c == " ")
|
|
|
-<span class="bkslt">\t</span>{
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>// use shift text in case altGr does not provide extra characters.
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>// This is required at least on US keyboards, where altGr works as Alt.
|
|
|
-<span class="bkslt">\t</span><span class="bkslt">\t</span>c = sc;
|
|
|
-<span class="bkslt">\t</span>}
|
|
|
+//<span class="bkslt">\t</span>if (c == " ")
|
|
|
+//<span class="bkslt">\t</span>{
|
|
|
+//<span class="bkslt">\t</span><span class="bkslt">\t</span>// use shift text in case altGr does not provide extra characters.
|
|
|
+//<span class="bkslt">\t</span><span class="bkslt">\t</span>// This is required at least on US keyboards, where altGr works as Alt.
|
|
|
+//<span class="bkslt">\t</span><span class="bkslt">\t</span>c = sc;
|
|
|
+//<span class="bkslt">\t</span>}'|patch -p0
|
|
|
|
|
|
<span class="dastx">##</span> generate keycode for Win keys with single click so that they can be used for xmodmap
|
|
|
echo $'--- src/MainWidget.cpp
|
|
|
+++ src/MainWidget.cpp
|
|
|
<span class="dastx">#</span>
|
|
|
<span class="dastx">##</span> donʹt lock the LWin button
|
|
|
@@ -317 +317 @@
|
|
|
-<span class="bkslt">\t</span>lwin->setToggleButton ( true );
|
|
|
+<span class="bkslt">\t</span>lwin->setToggleButton ( false );
|
|
|
<span class="dastx">##</span> generate keycode on click rather than wait for next key-click
|
|
|
@@ -318 +318,2 @@
|
|
|
-<span class="bkslt">\t</span>mod_keys.append ( lwin );
|
|
|
+<span class="bkslt">\t</span>connect ( lwin, TQ_SIGNAL ( keyClick ( unsigned int ) ), this, TQ_SLOT ( keyPress ( unsigned int ) ) );
|
|
|
+<span class="bkslt">\t</span>other_keys.append( lwin );
|
|
|
<span class="dastx">#</span>
|
|
|
<span class="dastx">##</span> donʹt lock the RWin button
|
|
|
@@ -354 +355 @@
|
|
|
-<span class="bkslt">\t</span>rwin->setToggleButton ( true );
|
|
|
+<span class="bkslt">\t</span>rwin->setToggleButton ( false );
|
|
|
<span class="dastx">##</span> generate keycode on click rather than wait for next key-click
|
|
|
@@ -355 +356,2 @@
|
|
|
-<span class="bkslt">\t</span>mod_keys.append ( rwin );
|
|
|
+<span class="bkslt">\t</span>connect ( rwin, TQ_SIGNAL ( keyClick ( unsigned int ) ), this, TQ_SLOT ( keyPress ( unsigned int ) ) );
|
|
|
+<span class="bkslt">\t</span>other_keys.append( rwin );'|patch -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 INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-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 added to this package from that source with, if needed, the index.cache.bz2 file built with meinproc.
|
|
|
Translations are also available with the x86_64 build.
|
|
|
|
|
|
<span class="tabs"><a href="#close_kvkbd">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- kvkbd - end -->
|
|
|
|
|
|
<p>
|
|
|
<!-- tdebluez - start -->
|
|
|
<a name="close_tdebluez"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#tdebluez">… tdebluez</a></span><span style="vertical-align:-30%"> </a>
|
|
|
</span>
|
|
|
<div id="tdebluez" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_tdebluez">close</a></span>
|
|
|
|
|
|
<code class="thtwo">cd /
|
|
|
PRGNAM=tdebluez
|
|
|
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> set support for additional language(s) as per I18N variable
|
|
|
<span class="dastx">##</span> but only for languages available with this package
|
|
|
<span class="dastx">##</span> [need to export LINGUAS to set it as an environment variable for cmake]
|
|
|
[[ $I18N ]] && TRANS=ON && export LINGUAS=$I18N
|
|
|
|
|
|
<span class="dastx">##</span> path to configuration file
|
|
|
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|" {README.md,doc/en/tdebluez.docbook}
|
|
|
|
|
|
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 INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-DBUILD_TRANSLATIONS=${TRANS:-"OFF"} \
|
|
|
-DBUILD_LIBTDEBLUEZ="ON" \
|
|
|
-DBUILD_TDEIOSLAVE="ON" \
|
|
|
-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>
|
|
|
|
|
|
<span class="tabs"><a href="#close_tdebluez">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- tdebluez - end -->
|
|
|
|
|
|
<p>
|
|
|
<!-- krename - start -->
|
|
|
<a name="close_krename"></a>
|
|
|
<br>
|
|
|
<span class="tabs"><a href="#krename">… krename</a></span><span style="vertical-align:-30%"> </a>
|
|
|
</span>
|
|
|
<div id="krename" class="tab"><div class="b_32bit"><span class="tabs"><a href="#close_krename">close</a></span>
|
|
|
|
|
|
<code class="thtwo">cd /
|
|
|
PRGNAM=krename
|
|
|
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
|
|
|
|
|
|
sed -i 's| "TQt: 3.3.5"||' doc/man/krename.1
|
|
|
sed -i 's|^TQt.*$|krename \- a batch file renamer|' doc/man/krename.1
|
|
|
sed -i 's|TQt:|krename|' doc/man/krename.1
|
|
|
sed -i '/KDE: 3.4.2/d' doc/man/krename.1
|
|
|
sed -i '/KRename: 3.0.8/d' doc/man/krename.1
|
|
|
sed -i 's|info TQt|info krename|' doc/man/krename.1
|
|
|
|
|
|
<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
|
|
|
<span class="dastx">##</span> [need to export LINGUAS to set it as an environment variable for cmake]
|
|
|
[[ $I18N ]] && TRANS=ON && export LINGUAS=$I18N
|
|
|
|
|
|
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 INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
|
|
|
-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 \
|
|
|
-DCMAKE_MODULE_PATH=$PWD/../cmake/modules \
|
|
|
-DMAN_INSTALL_DIR=$INSTALL_TDE/man \
|
|
|
-DWITH_GCC_VISIBILITY="ON" \
|
|
|
-DBUILD_DOC="ON" \
|
|
|
-DBUILD_TRANSLATIONS=${TRANS:-"OFF"} \
|
|
|
-Wno-dev \
|
|
|
..
|
|
|
|
|
|
make $NUMJOBS
|
|
|
make DESTDIR=$PKG install
|
|
|
|
|
|
mangzip_fn
|
|
|
|
|
|
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>
|
|
|
|
|
|
<span class="tabs"><a href="#close_krename">close</a></span>
|
|
|
</div>
|
|
|
<br></div>
|
|
|
<!-- krename - end -->
|
|
|
|
|
|
<br>
|
|
|
<span class="comment">
|
|
|
The source for this page is in the gh-pages branch of <a class="extlink" href="https://github.com/Ray-V/tde-slackbuilds">tde-slackbuilds</a>:
|
|
|
<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>
|
|
|
|
|
|
<!-- DROPDOWN MENU -->
|
|
|
<div>
|
|
|
<ul id="menu">
|
|
|
<li><a><span style="color:#e3e3e3">∇</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>
|
|
|
<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">… <span style="background: #E5F1FF;">tqt3</span></a>
|
|
|
<p><a href="#tqtint">… <span style="background: #E5F1FF;">tqtinterface</span></a>
|
|
|
<p><a href="#arts">… <span style="background: #E5F1FF;">arts</span></a>
|
|
|
<p><a href="#dbus">… <span style="background: #E5F1FF;">dbus-tqt</span></a>
|
|
|
<p><a href="#dbus_1">… <span style="background: #E5F1FF;">dbus-1-tqt</span></a>
|
|
|
<p><a href="#libart">… <span style="background: #E5F1FF;">libart-lgpl</span></a>
|
|
|
<p><a href="#tqca">… <span style="background: #E5F1FF;">tqca</span></a>
|
|
|
<p><a href="#tdelibs">… <span style="background: #E5F1FF;">tdelibs</span></a>
|
|
|
<p><a href="#tdebase">… <span style="background: #E5F1FF;">tdebase</span></a>
|
|
|
<p><a href="#tdeaddons">… tdeaddons</a>
|
|
|
<p><a href="#tdeutils">… tdeutils</a>
|
|
|
<p><a href="#tdeartwork">… tdeartwork</a>
|
|
|
<p><a href="#imlib">… <span style="background: #FFD7F7;">imlib</span></a>
|
|
|
<p><a href="#tdegraph">… tdegraphics</a>
|
|
|
<p><a href="#tdeadmin">… tdeadmin</a>
|
|
|
<p><a href="#tdmtheme">… tdmtheme</a>
|
|
|
<p><a href="#knemo">… knemo</a>
|
|
|
<p><a href="#krusader">… krusader</a>
|
|
|
<p><a href="#kvkbd">… kvkbd</a>
|
|
|
<p><a href="#tdebluez">… tdebluez</a>
|
|
|
<p><a href="#krename">… krename</a>
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<!-- DROPDOWN MENU ENDS-->
|
|
|
|
|
|
</body></html>
|