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.