Note: The initial steps need to be done using sudo.
Create a new ports-arch user and group.
mkdir /var/portbuild/arch
Create a new zfs filesystem:
# zfs create -o mountpoint=/a/portbuild/arch a/portbuild/arch
# chown ports-arch:portbuild /var/portbuild/arch; # chmod 775 /var/portbuild/arch; # cd /var/portbuild/arch
Create the .ssh directory.
Note: The next steps are most easily done as user ports-arch.
Create an archive directory for buildlogs and errorlogs under archive/.
For each branch that will be supported, do the following:
Kick-start the build for the branch with
# build create arch branch
If you are going to store your historical buildlogs and errorlogs on your head node's hard drive, you may skip this step. Otherwise:
Create an external directory and link to it:
Example 9. Creating and linking an external archive directory
# mkdir /dumpster/pointyhat/arch/archive # ln -s /dumpster/pointyhat/arch/archive archive
Note: (Historical note that only applied to the original pointyhat.FreeBSD.org installation)
It is possible that /dumpster/pointyhat will not have enough space. In that case, create the archive directory as /dumpster/pointyhat/arch/archive and symlink to that.
Populate clients as usual.
Create a fresh portbuild.conf file from one of the ones for another architecture.
Create customized portbuild.machinename.conf files as appropriate.
# cd .ssh && ssh-keygen
If desired, edit the .ssh/config file for convenience in using ssh.
If you need to create any tunnels:
Make a private configuration directory:
# mkdir /var/portbuild/conf/arch
In that directory: create any dotunnel.* scripts needed.
Note: Once again using sudo:
Add arch to SUPPORTED_ARCHS in /var/portbuild/conf/server.conf.
Add the arch directory to /var/portbuild/scripts/zbackup and /var/portbuild/scripts/zexpire.
Note: One last time using sudo:
Add an appropriate arch entry for /var/portbuild/scripts/dologs to the root crontab. (This is a hack and should go away.)
Note: Again using sudo:
Tell qmanager about the arch:
python path/qmanager/qclient add_acl name=ports-arch uidlist=ports-arch gidlist=portbuild sense=1
For each branch that will be supported, do the following: