Skip to content

Install from compiled sources

Rory Fewell edited this page Oct 3, 2024 · 6 revisions

It is fairly straight forward to compile the project and produce packages for your specific distro ready for installation using the scripts under the /packaging directory. This section describes the process a bit more thoroughly than the /packaging/README.MD file.

Prerequisites

Obviously different distros come with different things pre-installed - so there are some tools you must have installed before proceeding. These are: bash, cmake, coreutils, fakeroot, gcc, make, pkg-config, python3

For RPM based distros, you also need rpmdevtools.

For Alpine Linux, you also need abuild and build-base.

Installing build-time dependencies

The /packaging/chkdeps.sh script will identify the packages you need to install on your distro in order to compile the project. You can bung this in a one-liner to install it all in your package manager like so:

sudo <pkgmgr command> $(./chkdeps.sh -l | cut -d':' -f2 | tr '\n' ' ')

So if you're on Debian this would be:

sudo apt install $(./chkdeps.sh -l | cut -d':' -f2 | tr '\n' ' ')

Build the project

You should now be ready to produce a build of the project. This process will compile all components and produce packages for your distro for each one.

All you need to do is run ./buildall.sh in the /packaging directory.

Alpine Linux users! You may need to run abuild-keygen -a if this is your first time building packages - abuild will tell you this anyway if you forget

By default this will build the project under the xpclient-pro SKU (Windows XP Professional). If you would like a different SKU, you can pass the -s parameter to specify, such as ./buildall.sh -s dnsrv-std (for Windows Server 2003 Standard Edition).

Install the output

Assuming everything built correctly, you should now see the /packaging/xptc directory. You'll find the build output under here, nested in some subdirectories related to the build tag, package format and architecture.

There is an order to installing the packages, some of them depend on each other (pretty much all the programs depend on libwintc-comgtk).

Void Linux users! You must first index the packages with sudo xbps-rindex -a ./*

You can use the following to install everything - essentially install the libraries in order, then install the whole lot:

for lib in 'comgtk' 'shcommon' 'syscfg' 'registry' 'shelldpa' 'shlang' 'winbrand' 'sndapi' 'comctl' 'exec' 'msgina' 'shellext' 'shell'
do
    find . -type f -iname "*${lib}.*" -exec sudo <pkgmgr command> '{}' \;
done

find . -type f -exec sudo <pkgmgr command> '{}' \;

In this case <pkgmgr command> is for installing a local package. On Arch this would be pacman -U for example.

Void Linux users! Hello again - you actually want to run this command:

sudo xbps-install --repository=$PWD -y $(xbps-query --repository=$PWD --search wintc | cut -d' ' -f2 | tr '\n' ' ')

Configuring your setup

Now the packages are installed, you will need to configure your system to actually make use of them.