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

2017-05-26 Thread Bryan Drewery
On 5/26/2017 8:20 AM, Bryan Drewery wrote:
> 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.

I had forgotten a detail here.  The package builds are all automated.
The source jails are automatically updated before a build.  The package
builder's kernel doesn't matter here.  So head package builds _will_ be
ABI broken for systems older than r318736 either now or in the next day
or two once the builds finish and upload to the mirrors.

-- 
Regards,
Bryan Drewery



signature.asc
Description: OpenPGP digital signature


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

2017-05-26 Thread Bryan Drewery

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



signature.asc
Description: OpenPGP digital signature