i386

Differences between revisions 4 and 5
Revision 4 as of 2020-03-30 11:08:11
Size: 2897
Editor: paelzer
Comment:
Revision 5 as of 2020-03-30 11:08:58
Size: 2962
Editor: paelzer
Comment:
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
$ sudo autopkgtest-buildvm-ubuntu-cloud -a i386 -r bionic -s 15G $ sudo autopkgtest-buildvm-ubuntu-cloud -a i386 -r focal -s 15G
Line 50: Line 50:
$ sudo autopkgtest-buildvm-ubuntu-cloud -a amd64 -r focal -s 15G

Partial-port

i386 is a partial-port of Ubuntu, which is supported as a multi-arch supplementary architecture.

No boot support

There is no kernel, installers, bootloaders for i386, thus it cannot be booted as pure i386.

Self-hosted, natively built

All package building is self-hosting, and is built in a i386 chroot on an amd64 host.

How to transition src:foo1 to src:foo2

Launchpad has a white-list of packages that build for i386, which are based on a seed. This was scoped through the community process. However, sometimes as part of an ABI transition src:foo(N+1) needs to be build on i386 to eventually replace src:fooN, for example boost1.71, gcc-11, etc. When such a need arises, one should:

  1. ask Archive Admin to add a new versioned abi-source package to newSet in update-i386-whitelist script in ubuntu-archive-tools

  2. ask Archive Admin to run it to update laucnhpad's whitelist
  3. Then one can upload/sync/no-change rebuild 1src:foo(N+1)` and it will be built for i386.

ProposedMigration requested i386 test result, which does not exist

Sometimes, britney requests test results for i386, despite a source package not building for i386 at all. In such a case please contact Ubuntu Release Team to update the britney hint to badtest the i386 result. These usually clear on subsequent uploads, and thus only happen once per source package.

How to expand i386 port scope

If you genuinely need to increase the scope of the i386 port (i.e. 3rd party app now needs this i386 library), then community process must be used to nominate and get a library added to the i386 seed as the supported target package. Post to https://discourse.ubuntu.com/t/community-process-for-32-bit-compatibility/12598.

Run local VM based autopkgtest for i386

While the following was fine in the past, with Focal that won't work:

$ sudo autopkgtest-buildvm-ubuntu-cloud -a i386 -r focal -s 15G
Downloading https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-i386.img...
No image exists for this release/architecture

First of all, you probably need a more recent autopkgtest to get the features you need. So you need to clone git and run it from there.

$ git clone git+ssh://git.launchpad.net/~ubuntu-release/autopkgtest/+git/development

[In our example below that is in ~/work/autopkgtest/autopkgtest]

Since with Focal you only have amd64 images - to run it you have to add the architecture

  • -a i386

And setup the environment before the testing starts

  • --setup-commands="dpkg --add-architecture i386; apt-get update"

Overall that will look like:

$ sudo autopkgtest-buildvm-ubuntu-cloud -a amd64 -r focal -s 15G
$ sudo ~/work/autopkgtest/autopkgtest/runner/autopkgtest <YOUR>.dsc \
  --setup-commands="dpkg --add-architecture i386; apt-get update" -a i386 <YOUR.dsc>\
  -- qemu ~/work/autopkgtest-focal-amd64.img

i386 (last edited 2024-02-17 14:01:38 by tsimonq2)