edgedb / edgedb-pkg

EdgeDB Release Packaging Toolkit
1 stars 2 forks source link

Use vanilla versions of distros for build #7

Open elprans opened 4 years ago

elprans commented 4 years ago

Currently, we use the latest build of a particular distro by relying on upstream images, for example ubuntu:20.04. This is problematic, because metapkg generates dependencies on the system libraries with the >= condition, thus relying on the possibly updated library version as a minimum requirement. This may cause issues when the package is being installed on a vanilla (non-updated) distro instance.

The solution is to rely on base distro images that are specifically built on top of the initial release. In particular, this also requires disabling the "updates" repository which is enabled by default in most distros.

ambv commented 4 years ago

I guess this is about Linux alone since macOS is addressed in edgedb/edgedb#1455. This is about the Dockerfiles in edgedb-pkg/integration/linux/build/Dockerfile-*.template. I looked at the list of available platforms on GitHub Actions, whether they deal with this issue in any way but it looks like they don't. They only provide Ubuntu and release updates to their images where they upgrade available packages, like: https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu2004-README.md

This is four tasks in one: one for centos, one for fedora, one for debian, and one for ubuntu. Maybe the first two and the last two will be very similar though.

elprans commented 4 years ago

This is about the linux docker images we build in (integration/linux/build) We need to make sure that the base image is the original release and avoid running apt-get upgrade or the equivalent.