1. Introduction

This document is a draft about how to port Frugalware to a new architecture.

2. Toolchain

  • Install any existing distro to the given architecture. No matter what kind of it, but make sure you install the normal development tools like header files, gcc, make, etc.

  • Compile from source (based on the FrugalBuilds) our development tools like pacman-g2, pacman-tools (+ deps: libarchive, etc if they are not available.)

  • Build a minimal toolchain: binutils, gcc, glibc (in this order) outside chroot, with dep checking disabled (makepkg -dHcu).

  • Build packages which are necessary to build in chroot: see the COREPKGS variable in /etc/makepkg.conf (same makepkg switches).

Given that repoman won’t allow you to upload which are not built in chroot, here is a simple script to upload and register then till you don’t have a chroot:

#!/bin/sh
scp *.fpm genesis:git/current/frugalware-NEWARCH
pkgname=$(pwd|sed 's|.*/||')
ssh genesis "cd git/current/frugalware-NEWARCH; arch=NEWARCH updatesync upd frugalware-current.fdb ../source/*/$pkgname/FrugalBuild"

Replace genesis with the server name and git/current with an other path if you don’t have such a symlink in your HOME.

Now you can start building in chroot and uploading real packages.

Note
Yes, this means that you have to build the toolchain twice. Also known as bootstrapping.

3. Base system

You should start porting with packages from the base category, once you are done with it, you should be able to install (manually) a bootable system, after manually configuring a boot manager.

4. The rest

That depends on your needs, you can port additional packages as well.