(head users) 64-bit inodes: Packages heads up and Poudriere errors

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Fri, 26 May 2017 08:20:31 -0700
For those running FreeBSD head, the ABI was majorly changed in r318736
for 64-bit inodes.  This change was *backwards compatible* but not
*forward compatible*.  This is normal and expected.

For Pkg users:

You are advised to upgrade your system past r318736 soon or avoid using
official packages until you do.  Portmgr may upgrade the package
builders at any time and without much notice.

For Poudriere users:

What this means is that you may see warnings like this in Poudriere:

> [00:00:01] ====>> Warning: !!! Jail is newer than host. (Jail: 1200031, Host: 1200030) !!!
> [00:00:01] ====>> Warning: This is not supported.
> [00:00:01] ====>> Warning: Host kernel must be same or newer than jail.
> [00:00:01] ====>> Warning: Expect build failures.

This warning is quite old and usually can be ignored as the
__FreeBSD_version number it is tracking is normally bumped for minor
things.  Large ABI breakage is relatively rare.  In this case it matters
though.

...
> [00:00:03] ====>> Starting jail exp-head-commit-test
> [00:00:03] ====>> Error: Unable to execute id(1) in jail. Emulation or ABI wrong.

This is due to the ABI breakage - your older kernel cannot run the newer
binary from the jail.  The solution is to upgrade your host system past
r318736.  Be sure to follow the proper (and normal) upgrade procedure as
documented in UPDATING.
(For people finding this error on Google, it can indicate anything wrong
in the jail that is disallowing binaries from running from a broken QEMU
to a non-forward-compatible ABI change to simply missing files or broke
jail setup)

Lastly, Poudriere normally automatically rebuilds packages for head
jails anytime the VCS revision is changed, so SVN revision or GIT hash.
This is important in these ABI-breaking cases as you want all packages
to use the new ABI.  I am changing this in the next Poudriere updates to
track __FreeBSD_version for svn/git/-m src= builds.  It will still
continue to track "Release name" for other methods.  This will do 2 things:
1. Rebuild less often and only when someone updates __FreeBSD_version.
This is more proper and we should strive to update this only as needed
to rebuild things.
2. Fix -m src= *not* rebuilding packages after the recent ABI breakage.
If your jail uses -m src= I recommend forcifully doing a bulk -c once to
ensure you get working packages.


-- 
Regards,
Bryan Drewery


Received on Fri May 26 2017 - 13:20:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:11 UTC