AArch64 Bootstrap Stage3 Notes

A copy of the current state of the stage3 rootfs can be retrieved from:

$ git clone http://fedorapeople.org/groups/armv8/rootfs.git

This rootfs can be used directly as an NFS root mount point if you have access to either the ARM FAST model or the ARM Foundation model (see http://www.arm.com/fvp); details for doing so are in Using ARMv8 Bootstrap Root FS via NFS root. With some preparation, you can also turn this set of files into a rootfs disk image that can be used with the ARM Foundation model (see ARMv8 using Fedora17 Bootstrap Image and ARM Foundation Model).

In stage 3, packages are built from RPM using rpmbuild. Source RPMs for the stage3 builds are part of the rootfs itself and may be found in /SRPMS.

To work with the stage3 rootfs, follow the instructions pointed to above and boot a model and either an NFS root or a disk image. Once you have booted into the rootfs, however, continuing the stage3 build is pretty straightforward:

# cd /stage3
# ./stage3

Stage1 and Stage2 were based on fc17 packages and a decision was made to use latest fc19/fc18 packages in stage3. This was done because more and more packages are picking up newer config.{sub,guess} files which already recognize aarch64 triplets. Also, newer binutils, glibc, and gcc RPMs have aarch64 support in the upstream tarballs they are based on.

The following patches needed some patching to get them to build. Naming convention is to add .x1 to the release number used in the original source in koji.

RPMs built with no changes

autoconf-2.69-8.fc18.src.rpm

bzip2-1.0.6-7.fc18.src.rpm

cracklib-2.8.22-3.fc19.src.rpm

curl-7.28.1-2.fc19.src.rpm

deltarpm-3.6-0.11.20110223git.fc18.src.rpm

e2fsprogs-1.42.7-1.fc19.src.rpmukeyutils-1.5.5-3.fc18.src.rpm

libarchive-3.1.1-1.fc19.src.rpm

libcap-2.22-3.fc18.src.rpm

libgpg-error-1.10-3.fc18.src.rpm

libidn-1.26-1.fc19.src.rpm

libksba-1.3.0-2.fc19.src.rpm

libsepol-2.1.8-6.fc19.src.rpm

libssh2-1.4.3-1.fc19.src.rpm

ncompress-4.2.4-58.fc18.src.rpm

ncurses-5.9-7.20121017.fc19.src.rpm

pigz-2.2.5-1.fc18.src.rpm

pygpgme-0.3-5.fc19.src.rpm

pyliblzma-0.5.3-7.fc18.src.rpm

python-iniparse-0.4-6.fc19.src.rpm

python-pycurl-7.19.0-12.fc19.src.rpm

python-setuptools-0.6.28-3.fc18.src.rpm

sed-4.2.2-1.fc19.src.rpm

tcl-8.5.13-1.fc19.src.rpm

tcp_wrappers-7.6-70.fc18.src.rpm

unixODBC-2.3.1-2.fc18.src.rpm

yum-metadata-parser-1.1.4-7.fc18.src.rpm

zlib-1.2.7-9.fc18.src.rpm

RPMs only needing updated config.{guess,sub}

acl-2.2.51-6.x1.fc18.src.rpm

attr-2.4.46-8.x1.fc19.src.rpm

byacc-1.9.20120115-2.x1.fc18.src.rpm

check-0.9.9-1.x1.fc18.src.rpm

chrpath-0.13-9.x1.fc18.src.rpm

cpio-2.11-15.x1.fc19.src.rpm

elfutils-0.155-2.x1.fc19.src.rpm

expat-2.1.0-4.x1.fc18.src.rpm

fipscheck-1.3.1-2.x1.fc18.src.rpm

libassuan-2.0.3-4.x1.fc19.src.rpm

libcroco-0.6.8-1.x1.fc18.src.rpm

libgcrypt-1.5.0-9.x1.fc19.src.rpm

libpng-1.5.13-1.x1.fc19.src.rpm

libtool-2.4.2-11.x1.fc19.src.rpm

libunistring-0.9.3-6.x1.fc18.src.rpm

lua-5.1.4-11.x1.fc18.src.rpm

lzo-2.06-4.x1.fc18.src.rpm

m4-1.4.16-6.x1.fc19.src.rpm

pkgconfig-0.27-1.x1.fc18.src.rpm

popt-1.13-13.x1.fc18.src.rpm

pth-2.0.7-17.x1.fc18.src.rpm

stunnel-4.54-2.x1.fc19.src.rpm

texinfo-4.13a-19.x1.fc19.src.rpm

xz-5.1.2-1alpha.x1.fc18.src.rpm

binutils

Source: binutils-2.23.51.0.9-1.x1.fc19.src.rpm

Added aarch64 to %ifarch test for 64-bit arches. (BZ#908904)

cyrus-sasl

Source: cyrus-sasl-2.1.25-2.fc19.src.rpm

Turned on bootstrap_cyrus_sasl

Define _unitdir since systemd rpm macros are not available

Don't build -sql package when bootstrapping

Touch saslauthd/saslauthd.8 to prevent rebuild when bootstrapping

gettext

Source: gettext-0.18.2-1.x1.fc19.src.rpm

Add "%bcond_without emacs" and use it to avoid emacs for bootstrap

gnupg2

Source: gnupg2-2.0.19-7.x1.fc19.src.rpm

Add "%bcond_with bootstrap" and use it to avoid needing pcsc-lite-libs (X11,etc)

krb5

Source: krb5-1.11-1.x1.fc19.src.rpm

Update config.{sub,guess}

Add "%bcond_without ldap" and use it for bootstrap

Add "%bcond_without docs" and use it for bootstrap

libdb

Source: libdb-5.3.21-4.x1.fc19.src.rpm

Update config.{sub,guess}

Add "%bcond_without java" and use it for bootstrap

libuser

Source: libuser-0.58-1.x1.fc19.src.rpm

Add "%bcond_with bootstrap" and use to avoid gtk-doc

libxml2

Source: libxml2-2.9.0-3.x1.fc19.src.rpm

Update config.{sub,guess}

Fix builds with --nocheck (BZ#909767)

nspr

Source: nspr-4.9.4-1.x1.fc19.src.rpm

Update config.{sub,guess}

Patch mozilla/nsprpub/pr/include/md/_linux.{cfg,h} with aarch64 info

Add aarch64 to %ifarch test for 64-bit builds

nss

Source: nss-3.14.1-3.x1.fc19.src.rpm

Add aarch64 to %ifarch test for 64-bit builds (BZ#909775)

nss-softokn

Source: nss-softokn-3.14.1-7.x1.fc18.src.rpm

Add aarch64 to %ifarch test for 64-bit builds (BZ#909781)

nss=util

Source: nss-util-3.14.1-2.x1.fc19.src.rpm

Add aarch64 to %ifarch test for 64-bit builds (BZ#909782)

openldap

Source: openldap-2.4.33-3.x1.fc19.src.rpm

Update config.{sub,guess}

Add "%bcond_with bootstrap" and use it to define _unitdir since systemd rpm macros are not available