root/build-tools/build-wheels/FIXME
Davlet Panech 075b71dcf9 debian: build-wheels: partial debian support
Add debian support to wheels scripts. Note: this solution is not fully
functional. Remaining issues will be addressed in separate commits. See
FIXME file in this patch.

* build-wheels: move OS-specific files to subdirectories
  {dev,stable}-wheels.cfg
  {dev,stable}-wheels-py2.cfg
  openstack.cfg
  Dockerfile

* added a copy of openstack/ussuri requirements files under
  debian/openstack-requirements/ussuri/upstream for reference

* added a patched version of openstack/ussuri requirements files based
  on above. Changes:
  - added lines for python3.9
  - disabled some packages that don't compile on debian (nss, thrift);
    these will be installed as DEB files into the base image

* build-base-wheels.sh:
  - auto-detect OS & version by default
  - add local build repo to docker file
  - define CPUCOUNT=2 when building wheels. Otherwise some wheels run
    out of RAM when building.

* build-wheel-tarball.sh:
  - auto-detect OS & version
  - new option: --keep-image
  - allow openstack URL to be a local file name
  - assume DEB wheel packages may install wheels at any level, not just
    under "/wheels". It's not consistent with CentOS, but many DEB
    packages do it that way now.

* get-stx-wheels.sh:
  - auto-detect OS & version defaults
  - debian: don't scan 3rd-party libraries for wheels. They don't exist
    as files within the POD, but only in the repomgr repo. To be
    addressed later.
  - debian: don't scan for lower layer wheels. Layered builds are not
    supported by Debian right now. To be addressed later.
  - debian: extarct wheels from DEB files

CHANGES TO DEBIAN WHEEL VERSIONS COMPARED TO CENTOS
===================================================

* Python 3 (stable-wheels.cfg):
  - libvirt_python 4.7.0 upgraded to 7.0.0. Original version doesn't
    compile on debian/bullseye. New version matches the SO package
    included with bullseye
  - python_nss: removed. This module doesn't compile on bullseye as-is.
    A patched version is compiled as a DEB package as part of STX [1]
  - thriftpy: removed. This module doesn't compile on bullseye as-is. A
    patched version is provided by Debian [2]

* Python2 (stable-wheels-py2.cfg):
  - python-nss: removed. This module doesn't compile on bullseye as-is.
    A patched version is compiled as a DEB package as part of STX, which
    also provides the wheel [1]

TESTS
=====

- Build py2 & py3 wheels on debian & centos

REFERENCES
==========
[1] Import python-nss package to debian:
    https://review.opendev.org/c/starlingx/integ/+/837399

[2] Add additional packages to download lists:
    https://review.opendev.org/c/starlingx/tools/+/837904

Story: 2009897
Task: 44694

Depends-On: https://review.opendev.org/c/starlingx/integ/+/837399
Depends-On: https://review.opendev.org/c/starlingx/tools/+/837904

Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
Change-Id: I0889118b9f0125888fb661e58ff41579da7eb3b4
2022-04-14 16:02:01 -04:00

21 lines
659 B
Plaintext

Debian
======
debian/Dockerfile:
- disable upstream repo, use only the managed packages.
Requires additions to download lists in stx-tool.
- convert thrifty & nss to wheels and don't install them in Dockerfile
build-wheel-tarball.sh:
- current DEB wheel packages install wheels at random locations, rather
than under /wheels as in CentOS. Fix them and remove the workaround
in this script.
build-wheel-tarball.sh:
- look for wheels in non-Starlingx DEBs. Requires accessing repomgr via
the REST API (?)
- support layered builds (ie scan DEBs from lower layers)
debian/openstack-requirements:
- requirements are not compatible with debian/bullseye