This is a significantly different release to the previous 1.4.0, not so much because of the applications it contains (although these have been updated), but because it is built on a newer Gentoo profile (17.0) than before (13.0). Profiles are changed rarely in Gentoo, for they determine how your entire system is built, often in backwards-incompatible ways: for example, in 17.0, the gcc
compiler defaults to creating position independent executables (aka, 'pie'), which it did not do before. Accordingly (and as officially recommended), all packages have been rebuilt under the new profile for this image (and the corresponding binhost has also been changed (to avoid confusion), from https://isshoni.org/b2 to https://isshoni.org/b2pie).
Changes in this release (see main project page for further details):
- As noted above, the subscribed Gentoo binhost (automatically updated weekly) has been migrated to profile 17.0 (at https://isshoni.org/b2pie) (the binhost allows your B2 to perform fast updates via binary packages where possible, only falling back to local source-based compilation where necessary; using this facility is of course optional).
- The binhost now also provides an
rsync
mirror for the maingentoo
repo, used to keep the B2's ebuild tree in lockstep with the build server, thereby preventing time-consuming local builds being initiated when large packages, such assys-devel/gcc
, update. The Portage tree is validated using Gentoo's recently-introducedgemato
digital signature check. - A custom Gentoo profile,
gentoo-b2:default/linux/powerpc/ppc32/17.0/b2
, is used, which supplies many of the default build settings, USE flags etc., required for Gentoo on the B2, keeping them also in lockstep with the binhost. You can view this profile (provided via the gentoo-b2 overlay) here. - A weekly
cron
job (/etc/cron.weekly/genup
) has been installed, to automate the process of keeping your B2 up-to-date (this can be deleted if you prefer). - The kernel has been upgraded to 4.9.72 LTS (patched with gentoo-b2-kernel-patches). This is the latest stable-branch long term support version of the kernel for the
ppc
architecture on Gentoo at the time of writing. - All packages have been brought up to date against the Gentoo tree, as of 3 September 2018.
Manually Upgrading to 1.5.0
If you are currently using the 1.4.0 release of the live-USB and would like to upgrade, without switching directly to the 1.5.0 image, please follow the steps below (NB - those using this 1.5.0 release image directly should ignore what follows, as all of the below has already been done for you):
First, make sure you have at least 2GiB of free space on your B2's root filesystem (use df -h
to check), and that you are using at least version 6.4.0 of gcc
(use gcc-config --list-profiles
to check; look for the version marked with the asterisk).
If all that looks good, switch to using the new rsync mirror:
b2 ~ # nano -w /etc/portage/repos.conf/gentoo.conf
and modify the file contents so they read:
[DEFAULT]
main-repo = gentoo
[gentoo]
location = /usr/portage
sync-type = rsync
auto-sync = yes
sync-uri = rsync://isshoni.org/gentoo-portage-b2
Save, and exit nano
.
Now update your repositories, and switch to the to the newly available gentoo-b2:default/linux/powerpc/ppc32/17.0/b2
profile:
b2 ~ # emaint sync --auto
b2 ~ # eselect profile set gentoo-b2:default/linux/powerpc/ppc32/17.0/b2
Caution: the above
emaint sync
will update your main Gentoo tree usingrsync
, but it will not be signature-checked at this point, unless you are using a version of Portage that was emerged with thersync-verify
USE flag set (once all packages are updated per the following instructions, signature checking will be enabled by default). If this bothers you, you should upgrade Portage to an appropriate version first, before performing the steps above.
Now clean up any redundant files in /etc/portage/...
, referring to /usr/local/portage/gentoo-b2/profiles/targets/b2/...
(also viewable here) to see what the profile already provides by way of make.conf
, package.use
settings etc. You can also review the /etc/portage/...
files from the 1.5.0 live USB image, to get an idea of what can be removed safely (being now supplied by the profile).
For convenience, the current
/etc/portage/make.conf
from the image may be reviewed here. Notice how this is significantly slimmed down, most of the settings now being taken from the profilemake.defaults
(which may be reviewed here).
You also need to switch your binary package host ('binhost'), as a new one has been started for the 17.0 profile, to avoid confusion / cross-contamination. To do so, issue:
b2 ~ # nano -w /etc/portage/make.conf
and modify the line that currently reads:
PORTAGE_BINHOST="https://isshoni.org/b2"
so it now reads instead:
PORTAGE_BINHOST="https://isshoni.org/b2pie"
Leave the rest of the file as-is. Save, and exit nano
.
Now you can update the core build system. Do not follow the advice in the official news article to rebuild gcc
, binutils
and glibc
individually (if you do, you'll end up building them locally, rather than pulling the new binaries from the binhost, which will take a long time). Instead, issue:
b2 ~ # emerge --ask --verbose sys-devel/gcc sys-devel/binutils sys-libs/glibc
Check (when the above command prompts you for confirmation) that you will indeed be installing binary packages - this is a good indication you have set things up correctly.
Once this completes, rebuild your entire system for profile 17.0. Almost all of the required 400 or so packages should be available on the new binhost you just switched to, so even on the B2 this should only take half a day or so (unless you have added many additional packages to the image yourself). Issue:
b2 ~ # nice emerge --ask --verbose --emptytree --with-bdeps=y @world
Once it has completed, issue:
b2 ~ # nice emerge --depclean
b2 ~ # nice emerge @preserved-rebuild
then:
b2 ~ # dispatch-conf
to resolve any proposed configuration file changes (for the most part, if you had a reasonably up-to-date 13.0 profile system to start with, typing z to 'zap' (discard) most of these proposed changes should be safe; a lot of packages have been re-installed here, but you want to keep your prior configuration, not roll it back to 'shipped defaults').
Once done, reboot your system. Then log in again as root, and issue:
b2 ~ # genup
Once this has completed, congratulations, you have migrated your userland to the (profile 17.0) 1.5.0 release! From this point, the automated weekly genup
run should keep your system correctly up-to-date.
NB: as there is currently no binary kernel package for the B2, if you manually upgrade following the above instructions, your kernel will not be upgraded. You'll need to manually copy the appropriate boot files and module set from the 1.5.0 image if you wish to do that.