[libvirt] [dockerfiles PATCH 0/4] Add cross-compilation Dockerfiles

lcitool supports generating Dockerfiles targeting cross-compilation of libvirt, so all that's left to do is teach the refresh script how to pass the necessary information to lcitool. Andrea Bolognani (4): refresh: Drop shell implementation refresh: Add Python implementation refresh: Add support for cross-compilation Dockerfiles Add cross-compilation Dockerfiles buildenv-debian-9-cross-aarch64.Dockerfile | 95 +++++++++++ buildenv-debian-9-cross-armv6l.Dockerfile | 93 +++++++++++ buildenv-debian-9-cross-armv7l.Dockerfile | 94 +++++++++++ buildenv-debian-9-cross-mips.Dockerfile | 94 +++++++++++ buildenv-debian-9-cross-mips64el.Dockerfile | 94 +++++++++++ buildenv-debian-9-cross-mipsel.Dockerfile | 94 +++++++++++ buildenv-debian-9-cross-ppc64el.Dockerfile | 94 +++++++++++ buildenv-debian-9-cross-s390x.Dockerfile | 94 +++++++++++ buildenv-debian-sid-cross-aarch64.Dockerfile | 94 +++++++++++ buildenv-debian-sid-cross-armv6l.Dockerfile | 92 ++++++++++ buildenv-debian-sid-cross-armv7l.Dockerfile | 93 +++++++++++ buildenv-debian-sid-cross-mips.Dockerfile | 93 +++++++++++ buildenv-debian-sid-cross-mips64el.Dockerfile | 93 +++++++++++ buildenv-debian-sid-cross-mipsel.Dockerfile | 93 +++++++++++ buildenv-debian-sid-cross-ppc64el.Dockerfile | 93 +++++++++++ buildenv-debian-sid-cross-s390x.Dockerfile | 93 +++++++++++ refresh | 158 +++++++++++++++--- 17 files changed, 1631 insertions(+), 23 deletions(-) create mode 100644 buildenv-debian-9-cross-aarch64.Dockerfile create mode 100644 buildenv-debian-9-cross-armv6l.Dockerfile create mode 100644 buildenv-debian-9-cross-armv7l.Dockerfile create mode 100644 buildenv-debian-9-cross-mips.Dockerfile create mode 100644 buildenv-debian-9-cross-mips64el.Dockerfile create mode 100644 buildenv-debian-9-cross-mipsel.Dockerfile create mode 100644 buildenv-debian-9-cross-ppc64el.Dockerfile create mode 100644 buildenv-debian-9-cross-s390x.Dockerfile create mode 100644 buildenv-debian-sid-cross-aarch64.Dockerfile create mode 100644 buildenv-debian-sid-cross-armv6l.Dockerfile create mode 100644 buildenv-debian-sid-cross-armv7l.Dockerfile create mode 100644 buildenv-debian-sid-cross-mips.Dockerfile create mode 100644 buildenv-debian-sid-cross-mips64el.Dockerfile create mode 100644 buildenv-debian-sid-cross-mipsel.Dockerfile create mode 100644 buildenv-debian-sid-cross-ppc64el.Dockerfile create mode 100644 buildenv-debian-sid-cross-s390x.Dockerfile -- 2.20.1

We're going to rewrite the script completely, and getting the current implementation out of the way firts will make the diffs more reasonable. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- refresh | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100755 refresh diff --git a/refresh b/refresh deleted file mode 100755 index 701d2af..0000000 --- a/refresh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -die() { - test "$1" && echo "$1" >&2 - exit 1 -} - -me="$0" -here=$(pwd) - -ci_repo="$1" - -cd "$ci_repo/guests/" >/dev/null 2>&1 || { - die "Usage: $me path/to/libvirt-jenkins-ci.git" -} - -for host in $(./lcitool hosts) -do - projects="libvirt" - dockerfile="$here/buildenv-${host#libvirt-}.Dockerfile" - - case "$host" in - libvirt-fedora-rawhide) projects="libvirt,libvirt+mingw*" ;; - libvirt-freebsd-*) continue ;; - esac - - ./lcitool dockerfile "$host" "$projects" >"$dockerfile" || { - die "$me: Failed to refresh Dockerfile for $host" - } -done -- 2.20.1

This behaves mostly like a drop-in replacement for the original shell script, with a few differences: * the script figures out which Dockerfiles should be generated by looking at the contents of the repository rather than by asking lcitool. This makes it possible to skip generation of Dockerfiles that lcitool knows about without having to implement custom filtering logic in the script; * pointing the script to the libvirt-jenkins-ci repository is no longer mandatory, since it implements some very simple detection logic of its own; * the name of the Dockerfile being refreshed is printed on standard output, giving the user some indication that progress is being made. Moving to Python also makes it easier to extend the script, which is something that we'll take advantage of in a second. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- refresh | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100755 refresh diff --git a/refresh b/refresh new file mode 100755 index 0000000..5f7c41c --- /dev/null +++ b/refresh @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 + +# refresh - Refresh Dockerfiles using lcitool +# Copyright (C) 2019 Andrea Bolognani <abologna@redhat.com> +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <https://www.gnu.org/licenses/>. + +import pathlib +import subprocess +import sys + + +class Error(Exception): + + def __init__(self, message): + super(Error, self).__init__() + self.message = message + + +class MoveAlongException(Exception): + pass + + +class Dockerfile: + + PREFIX = "buildenv-" + SUFFIX = ".Dockerfile" + + def __init__(self, path): + + # Files that don't end with the expected suffix can be safely + # ignores + if not path.suffix == Dockerfile.SUFFIX: + raise MoveAlongException() + + # Files that don't follow the expected format should be reported + if not path.stem.startswith(Dockerfile.PREFIX): + raise Error("Invalid name '{}'".format(path.stem)) + + self.path = path + self.os = path.stem[len(Dockerfile.PREFIX):] + + # Fedora Rawhide is special in that we use it to perform MinGW + # builds, so we need to add the corresponding projects + if self.os == "fedora-rawhide": + self.projects = "libvirt,libvirt+mingw*" + else: + self.projects = "libvirt" + + def refresh(self, lcitool): + + args = [ + lcitool, + "dockerfile", + "libvirt-" + self.os, + self.projects, + ] + + rc = subprocess.run(args, capture_output=True) + + if rc.returncode != 0: + raise Error("lcitool failed: {}".format(rc.stderr.decode())) + + with self.path.open('w') as f: + print(rc.stdout.decode().strip(), file=f) + + +class Application: + + def __init__(self): + + # Find the directory the script lives in + me = pathlib.Path(sys.argv[0]).resolve() + self.here = me.parent + + # If an argument has been provided, we're going to consider it as + # the path to a clone of libvirt-jenkins-ci.git; otherwise, we're + # going to assume such a clone exists besides the clone of + # libvirt-dockerfiles.git we're running the script from + if len(sys.argv) >= 2: + ci_repo = pathlib.Path(sys.argv[1]).resolve() + else: + ci_repo = self.here.parent.joinpath("libvirt-jenkins-ci") + + self.lcitool = ci_repo.joinpath("guests").joinpath("lcitool") + + if not self.lcitool.exists(): + raise Error("{} does not exist".format(self.lcitool)) + + def run(self): + + for item in self.here.iterdir(): + try: + dockerfile = Dockerfile(item) + except MoveAlongException: + continue + + print(item.stem + item.suffix) + dockerfile.refresh(self.lcitool) + + +if __name__ == "__main__": + try: + Application().run() + except Error as err: + sys.stderr.write("{}: {}\n".format(sys.argv[0], err.message)) + sys.exit(1) -- 2.20.1

lcitool can generate these Dockerfiles already, so we just need to parse the relevant information encoded in the file name and hand them over. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- refresh | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/refresh b/refresh index 5f7c41c..1e6c185 100755 --- a/refresh +++ b/refresh @@ -35,6 +35,7 @@ class MoveAlongException(Exception): class Dockerfile: PREFIX = "buildenv-" + CROSS = "-cross-" SUFFIX = ".Dockerfile" def __init__(self, path): @@ -49,7 +50,20 @@ class Dockerfile: raise Error("Invalid name '{}'".format(path.stem)) self.path = path - self.os = path.stem[len(Dockerfile.PREFIX):] + stem = path.stem[len(Dockerfile.PREFIX):] + cross = stem.rfind(Dockerfile.CROSS) + + if cross >= 0: + # If we found CROSS, then everything before it is the name of + # the OS and everything after it the name of the architecture + # we're targeting for cross-compilation + self.os = stem[:cross] + self.cross_arch = stem[cross + len(Dockerfile.CROSS):] + else: + # Otherwise the entire stem is the name of the OS and there + # is no cross-compilation architecture + self.os = stem + self.cross_arch = None # Fedora Rawhide is special in that we use it to perform MinGW # builds, so we need to add the corresponding projects @@ -63,6 +77,16 @@ class Dockerfile: args = [ lcitool, "dockerfile", + ] + + # Pass the cross-compilation architecture if present + if self.cross_arch is not None: + args += [ + "--cross-arch", + self.cross_arch, + ] + + args += [ "libvirt-" + self.os, self.projects, ] -- 2.20.1

We target both Debian 9 and Debian sid, with all architectures libvirt can reasonably be cross-compiled to with the exception of i686, which we still haven't quite sorted out on the lcitool side. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- buildenv-debian-9-cross-aarch64.Dockerfile | 95 +++++++++++++++++++ buildenv-debian-9-cross-armv6l.Dockerfile | 93 ++++++++++++++++++ buildenv-debian-9-cross-armv7l.Dockerfile | 94 ++++++++++++++++++ buildenv-debian-9-cross-mips.Dockerfile | 94 ++++++++++++++++++ buildenv-debian-9-cross-mips64el.Dockerfile | 94 ++++++++++++++++++ buildenv-debian-9-cross-mipsel.Dockerfile | 94 ++++++++++++++++++ buildenv-debian-9-cross-ppc64el.Dockerfile | 94 ++++++++++++++++++ buildenv-debian-9-cross-s390x.Dockerfile | 94 ++++++++++++++++++ buildenv-debian-sid-cross-aarch64.Dockerfile | 94 ++++++++++++++++++ buildenv-debian-sid-cross-armv6l.Dockerfile | 92 ++++++++++++++++++ buildenv-debian-sid-cross-armv7l.Dockerfile | 93 ++++++++++++++++++ buildenv-debian-sid-cross-mips.Dockerfile | 93 ++++++++++++++++++ buildenv-debian-sid-cross-mips64el.Dockerfile | 93 ++++++++++++++++++ buildenv-debian-sid-cross-mipsel.Dockerfile | 93 ++++++++++++++++++ buildenv-debian-sid-cross-ppc64el.Dockerfile | 93 ++++++++++++++++++ buildenv-debian-sid-cross-s390x.Dockerfile | 93 ++++++++++++++++++ 16 files changed, 1496 insertions(+) create mode 100644 buildenv-debian-9-cross-aarch64.Dockerfile create mode 100644 buildenv-debian-9-cross-armv6l.Dockerfile create mode 100644 buildenv-debian-9-cross-armv7l.Dockerfile create mode 100644 buildenv-debian-9-cross-mips.Dockerfile create mode 100644 buildenv-debian-9-cross-mips64el.Dockerfile create mode 100644 buildenv-debian-9-cross-mipsel.Dockerfile create mode 100644 buildenv-debian-9-cross-ppc64el.Dockerfile create mode 100644 buildenv-debian-9-cross-s390x.Dockerfile create mode 100644 buildenv-debian-sid-cross-aarch64.Dockerfile create mode 100644 buildenv-debian-sid-cross-armv6l.Dockerfile create mode 100644 buildenv-debian-sid-cross-armv7l.Dockerfile create mode 100644 buildenv-debian-sid-cross-mips.Dockerfile create mode 100644 buildenv-debian-sid-cross-mips64el.Dockerfile create mode 100644 buildenv-debian-sid-cross-mipsel.Dockerfile create mode 100644 buildenv-debian-sid-cross-ppc64el.Dockerfile create mode 100644 buildenv-debian-sid-cross-s390x.Dockerfile diff --git a/buildenv-debian-9-cross-aarch64.Dockerfile b/buildenv-debian-9-cross-aarch64.Dockerfile new file mode 100644 index 0000000..d1d45c1 --- /dev/null +++ b/buildenv-debian-9-cross-aarch64.Dockerfile @@ -0,0 +1,95 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture arm64 && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-aarch64-linux-gnu \ + glusterfs-common:arm64 \ + libacl1-dev:arm64 \ + libapparmor-dev:arm64 \ + libattr1-dev:arm64 \ + libaudit-dev:arm64 \ + libavahi-client-dev:arm64 \ + libblkid-dev:arm64 \ + libc6-dev:arm64 \ + libcap-ng-dev:arm64 \ + libcurl4-gnutls-dev:arm64 \ + libdbus-1-dev:arm64 \ + libdevmapper-dev:arm64 \ + libfuse-dev:arm64 \ + libgnutls28-dev:arm64 \ + libiscsi-dev:arm64 \ + libnl-3-dev:arm64 \ + libnl-route-3-dev:arm64 \ + libnuma-dev:arm64 \ + libparted-dev:arm64 \ + libpcap0.8-dev:arm64 \ + libpciaccess-dev:arm64 \ + librbd-dev:arm64 \ + libreadline-dev:arm64 \ + libsanlock-dev:arm64 \ + libsasl2-dev:arm64 \ + libselinux1-dev:arm64 \ + libssh-gcrypt-dev:arm64 \ + libssh2-1-dev:arm64 \ + libtirpc-dev:arm64 \ + libudev-dev:arm64 \ + libxen-dev:arm64 \ + libxml2-dev:arm64 \ + libyajl-dev:arm64 \ + xfslibs-dev:arm64 && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "aarch64-linux-gnu" +ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu \ + --target=aarch64-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/aarch64-linux-gnu/pkgconfig" diff --git a/buildenv-debian-9-cross-armv6l.Dockerfile b/buildenv-debian-9-cross-armv6l.Dockerfile new file mode 100644 index 0000000..0fa40d4 --- /dev/null +++ b/buildenv-debian-9-cross-armv6l.Dockerfile @@ -0,0 +1,93 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armel && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabi \ + glusterfs-common:armel \ + libacl1-dev:armel \ + libapparmor-dev:armel \ + libattr1-dev:armel \ + libaudit-dev:armel \ + libavahi-client-dev:armel \ + libblkid-dev:armel \ + libc6-dev:armel \ + libcap-ng-dev:armel \ + libcurl4-gnutls-dev:armel \ + libdbus-1-dev:armel \ + libdevmapper-dev:armel \ + libfuse-dev:armel \ + libgnutls28-dev:armel \ + libiscsi-dev:armel \ + libnl-3-dev:armel \ + libnl-route-3-dev:armel \ + libparted-dev:armel \ + libpcap0.8-dev:armel \ + libpciaccess-dev:armel \ + librbd-dev:armel \ + libreadline-dev:armel \ + libsanlock-dev:armel \ + libsasl2-dev:armel \ + libselinux1-dev:armel \ + libssh-gcrypt-dev:armel \ + libssh2-1-dev:armel \ + libtirpc-dev:armel \ + libudev-dev:armel \ + libxml2-dev:armel \ + libyajl-dev:armel \ + xfslibs-dev:armel && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "arm-linux-gnueabi" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi \ + --target=arm-linux-gnueabi" +ENV PKG_CONFIG_LIBDIR "/usr/lib/arm-linux-gnueabi/pkgconfig" diff --git a/buildenv-debian-9-cross-armv7l.Dockerfile b/buildenv-debian-9-cross-armv7l.Dockerfile new file mode 100644 index 0000000..92fe060 --- /dev/null +++ b/buildenv-debian-9-cross-armv7l.Dockerfile @@ -0,0 +1,94 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armhf && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabihf \ + glusterfs-common:armhf \ + libacl1-dev:armhf \ + libapparmor-dev:armhf \ + libattr1-dev:armhf \ + libaudit-dev:armhf \ + libavahi-client-dev:armhf \ + libblkid-dev:armhf \ + libc6-dev:armhf \ + libcap-ng-dev:armhf \ + libcurl4-gnutls-dev:armhf \ + libdbus-1-dev:armhf \ + libdevmapper-dev:armhf \ + libfuse-dev:armhf \ + libgnutls28-dev:armhf \ + libiscsi-dev:armhf \ + libnl-3-dev:armhf \ + libnl-route-3-dev:armhf \ + libparted-dev:armhf \ + libpcap0.8-dev:armhf \ + libpciaccess-dev:armhf \ + librbd-dev:armhf \ + libreadline-dev:armhf \ + libsanlock-dev:armhf \ + libsasl2-dev:armhf \ + libselinux1-dev:armhf \ + libssh-gcrypt-dev:armhf \ + libssh2-1-dev:armhf \ + libtirpc-dev:armhf \ + libudev-dev:armhf \ + libxen-dev:armhf \ + libxml2-dev:armhf \ + libyajl-dev:armhf \ + xfslibs-dev:armhf && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "arm-linux-gnueabihf" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf \ + --target=arm-linux-gnueabihf" +ENV PKG_CONFIG_LIBDIR "/usr/lib/arm-linux-gnueabihf/pkgconfig" diff --git a/buildenv-debian-9-cross-mips.Dockerfile b/buildenv-debian-9-cross-mips.Dockerfile new file mode 100644 index 0000000..40f7896 --- /dev/null +++ b/buildenv-debian-9-cross-mips.Dockerfile @@ -0,0 +1,94 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mips && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-mips-linux-gnu \ + glusterfs-common:mips \ + libacl1-dev:mips \ + libapparmor-dev:mips \ + libattr1-dev:mips \ + libaudit-dev:mips \ + libavahi-client-dev:mips \ + libblkid-dev:mips \ + libc6-dev:mips \ + libcap-ng-dev:mips \ + libcurl4-gnutls-dev:mips \ + libdbus-1-dev:mips \ + libdevmapper-dev:mips \ + libfuse-dev:mips \ + libgnutls28-dev:mips \ + libiscsi-dev:mips \ + libnl-3-dev:mips \ + libnl-route-3-dev:mips \ + libnuma-dev:mips \ + libparted-dev:mips \ + libpcap0.8-dev:mips \ + libpciaccess-dev:mips \ + librbd-dev:mips \ + libreadline-dev:mips \ + libsanlock-dev:mips \ + libsasl2-dev:mips \ + libselinux1-dev:mips \ + libssh-gcrypt-dev:mips \ + libssh2-1-dev:mips \ + libtirpc-dev:mips \ + libudev-dev:mips \ + libxml2-dev:mips \ + libyajl-dev:mips \ + xfslibs-dev:mips && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "mips-linux-gnu" +ENV CONFIGURE_OPTS "--host=mips-linux-gnu \ + --target=mips-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/mips-linux-gnu/pkgconfig" diff --git a/buildenv-debian-9-cross-mips64el.Dockerfile b/buildenv-debian-9-cross-mips64el.Dockerfile new file mode 100644 index 0000000..e60e5d5 --- /dev/null +++ b/buildenv-debian-9-cross-mips64el.Dockerfile @@ -0,0 +1,94 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mips64el && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-mips64el-linux-gnuabi64 \ + glusterfs-common:mips64el \ + libacl1-dev:mips64el \ + libapparmor-dev:mips64el \ + libattr1-dev:mips64el \ + libaudit-dev:mips64el \ + libavahi-client-dev:mips64el \ + libblkid-dev:mips64el \ + libc6-dev:mips64el \ + libcap-ng-dev:mips64el \ + libcurl4-gnutls-dev:mips64el \ + libdbus-1-dev:mips64el \ + libdevmapper-dev:mips64el \ + libfuse-dev:mips64el \ + libgnutls28-dev:mips64el \ + libiscsi-dev:mips64el \ + libnl-3-dev:mips64el \ + libnl-route-3-dev:mips64el \ + libnuma-dev:mips64el \ + libparted-dev:mips64el \ + libpcap0.8-dev:mips64el \ + libpciaccess-dev:mips64el \ + librbd-dev:mips64el \ + libreadline-dev:mips64el \ + libsanlock-dev:mips64el \ + libsasl2-dev:mips64el \ + libselinux1-dev:mips64el \ + libssh-gcrypt-dev:mips64el \ + libssh2-1-dev:mips64el \ + libtirpc-dev:mips64el \ + libudev-dev:mips64el \ + libxml2-dev:mips64el \ + libyajl-dev:mips64el \ + xfslibs-dev:mips64el && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "mips64el-linux-gnuabi64" +ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64 \ + --target=mips64el-linux-gnuabi64" +ENV PKG_CONFIG_LIBDIR "/usr/lib/mips64el-linux-gnuabi64/pkgconfig" diff --git a/buildenv-debian-9-cross-mipsel.Dockerfile b/buildenv-debian-9-cross-mipsel.Dockerfile new file mode 100644 index 0000000..53b4d0f --- /dev/null +++ b/buildenv-debian-9-cross-mipsel.Dockerfile @@ -0,0 +1,94 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mipsel && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-mipsel-linux-gnu \ + glusterfs-common:mipsel \ + libacl1-dev:mipsel \ + libapparmor-dev:mipsel \ + libattr1-dev:mipsel \ + libaudit-dev:mipsel \ + libavahi-client-dev:mipsel \ + libblkid-dev:mipsel \ + libc6-dev:mipsel \ + libcap-ng-dev:mipsel \ + libcurl4-gnutls-dev:mipsel \ + libdbus-1-dev:mipsel \ + libdevmapper-dev:mipsel \ + libfuse-dev:mipsel \ + libgnutls28-dev:mipsel \ + libiscsi-dev:mipsel \ + libnl-3-dev:mipsel \ + libnl-route-3-dev:mipsel \ + libnuma-dev:mipsel \ + libparted-dev:mipsel \ + libpcap0.8-dev:mipsel \ + libpciaccess-dev:mipsel \ + librbd-dev:mipsel \ + libreadline-dev:mipsel \ + libsanlock-dev:mipsel \ + libsasl2-dev:mipsel \ + libselinux1-dev:mipsel \ + libssh-gcrypt-dev:mipsel \ + libssh2-1-dev:mipsel \ + libtirpc-dev:mipsel \ + libudev-dev:mipsel \ + libxml2-dev:mipsel \ + libyajl-dev:mipsel \ + xfslibs-dev:mipsel && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "mipsel-linux-gnu" +ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu \ + --target=mipsel-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/mipsel-linux-gnu/pkgconfig" diff --git a/buildenv-debian-9-cross-ppc64el.Dockerfile b/buildenv-debian-9-cross-ppc64el.Dockerfile new file mode 100644 index 0000000..fd1c0e9 --- /dev/null +++ b/buildenv-debian-9-cross-ppc64el.Dockerfile @@ -0,0 +1,94 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture ppc64el && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-powerpc64le-linux-gnu \ + glusterfs-common:ppc64el \ + libacl1-dev:ppc64el \ + libapparmor-dev:ppc64el \ + libattr1-dev:ppc64el \ + libaudit-dev:ppc64el \ + libavahi-client-dev:ppc64el \ + libblkid-dev:ppc64el \ + libc6-dev:ppc64el \ + libcap-ng-dev:ppc64el \ + libcurl4-gnutls-dev:ppc64el \ + libdbus-1-dev:ppc64el \ + libdevmapper-dev:ppc64el \ + libfuse-dev:ppc64el \ + libgnutls28-dev:ppc64el \ + libiscsi-dev:ppc64el \ + libnl-3-dev:ppc64el \ + libnl-route-3-dev:ppc64el \ + libnuma-dev:ppc64el \ + libparted-dev:ppc64el \ + libpcap0.8-dev:ppc64el \ + libpciaccess-dev:ppc64el \ + librbd-dev:ppc64el \ + libreadline-dev:ppc64el \ + libsanlock-dev:ppc64el \ + libsasl2-dev:ppc64el \ + libselinux1-dev:ppc64el \ + libssh-gcrypt-dev:ppc64el \ + libssh2-1-dev:ppc64el \ + libtirpc-dev:ppc64el \ + libudev-dev:ppc64el \ + libxml2-dev:ppc64el \ + libyajl-dev:ppc64el \ + xfslibs-dev:ppc64el && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "powerpc64le-linux-gnu" +ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu \ + --target=powerpc64le-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/powerpc64le-linux-gnu/pkgconfig" diff --git a/buildenv-debian-9-cross-s390x.Dockerfile b/buildenv-debian-9-cross-s390x.Dockerfile new file mode 100644 index 0000000..861d40b --- /dev/null +++ b/buildenv-debian-9-cross-s390x.Dockerfile @@ -0,0 +1,94 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture s390x && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-s390x-linux-gnu \ + glusterfs-common:s390x \ + libacl1-dev:s390x \ + libapparmor-dev:s390x \ + libattr1-dev:s390x \ + libaudit-dev:s390x \ + libavahi-client-dev:s390x \ + libblkid-dev:s390x \ + libc6-dev:s390x \ + libcap-ng-dev:s390x \ + libcurl4-gnutls-dev:s390x \ + libdbus-1-dev:s390x \ + libdevmapper-dev:s390x \ + libfuse-dev:s390x \ + libgnutls28-dev:s390x \ + libiscsi-dev:s390x \ + libnl-3-dev:s390x \ + libnl-route-3-dev:s390x \ + libnuma-dev:s390x \ + libparted-dev:s390x \ + libpcap0.8-dev:s390x \ + libpciaccess-dev:s390x \ + librbd-dev:s390x \ + libreadline-dev:s390x \ + libsanlock-dev:s390x \ + libsasl2-dev:s390x \ + libselinux1-dev:s390x \ + libssh-gcrypt-dev:s390x \ + libssh2-1-dev:s390x \ + libtirpc-dev:s390x \ + libudev-dev:s390x \ + libxml2-dev:s390x \ + libyajl-dev:s390x \ + xfslibs-dev:s390x && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "s390x-linux-gnu" +ENV CONFIGURE_OPTS "--host=s390x-linux-gnu \ + --target=s390x-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/s390x-linux-gnu/pkgconfig" diff --git a/buildenv-debian-sid-cross-aarch64.Dockerfile b/buildenv-debian-sid-cross-aarch64.Dockerfile new file mode 100644 index 0000000..13576dc --- /dev/null +++ b/buildenv-debian-sid-cross-aarch64.Dockerfile @@ -0,0 +1,94 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture arm64 && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-aarch64-linux-gnu \ + libacl1-dev:arm64 \ + libapparmor-dev:arm64 \ + libattr1-dev:arm64 \ + libaudit-dev:arm64 \ + libavahi-client-dev:arm64 \ + libblkid-dev:arm64 \ + libc6-dev:arm64 \ + libcap-ng-dev:arm64 \ + libcurl4-gnutls-dev:arm64 \ + libdbus-1-dev:arm64 \ + libdevmapper-dev:arm64 \ + libfuse-dev:arm64 \ + libglusterfs-dev:arm64 \ + libgnutls28-dev:arm64 \ + libiscsi-dev:arm64 \ + libnl-3-dev:arm64 \ + libnl-route-3-dev:arm64 \ + libnuma-dev:arm64 \ + libparted-dev:arm64 \ + libpcap0.8-dev:arm64 \ + libpciaccess-dev:arm64 \ + librbd-dev:arm64 \ + libreadline-dev:arm64 \ + libsanlock-dev:arm64 \ + libsasl2-dev:arm64 \ + libselinux1-dev:arm64 \ + libssh-gcrypt-dev:arm64 \ + libssh2-1-dev:arm64 \ + libtirpc-dev:arm64 \ + libudev-dev:arm64 \ + libxen-dev:arm64 \ + libxml2-dev:arm64 \ + libyajl-dev:arm64 \ + xfslibs-dev:arm64 && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "aarch64-linux-gnu" +ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu \ + --target=aarch64-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/aarch64-linux-gnu/pkgconfig" diff --git a/buildenv-debian-sid-cross-armv6l.Dockerfile b/buildenv-debian-sid-cross-armv6l.Dockerfile new file mode 100644 index 0000000..b3e2b83 --- /dev/null +++ b/buildenv-debian-sid-cross-armv6l.Dockerfile @@ -0,0 +1,92 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armel && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabi \ + libacl1-dev:armel \ + libapparmor-dev:armel \ + libattr1-dev:armel \ + libaudit-dev:armel \ + libavahi-client-dev:armel \ + libblkid-dev:armel \ + libc6-dev:armel \ + libcap-ng-dev:armel \ + libcurl4-gnutls-dev:armel \ + libdbus-1-dev:armel \ + libdevmapper-dev:armel \ + libfuse-dev:armel \ + libglusterfs-dev:armel \ + libgnutls28-dev:armel \ + libiscsi-dev:armel \ + libnl-3-dev:armel \ + libnl-route-3-dev:armel \ + libparted-dev:armel \ + libpcap0.8-dev:armel \ + libpciaccess-dev:armel \ + librbd-dev:armel \ + libreadline-dev:armel \ + libsanlock-dev:armel \ + libsasl2-dev:armel \ + libselinux1-dev:armel \ + libssh-gcrypt-dev:armel \ + libssh2-1-dev:armel \ + libtirpc-dev:armel \ + libudev-dev:armel \ + libxml2-dev:armel \ + libyajl-dev:armel \ + xfslibs-dev:armel && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "arm-linux-gnueabi" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi \ + --target=arm-linux-gnueabi" +ENV PKG_CONFIG_LIBDIR "/usr/lib/arm-linux-gnueabi/pkgconfig" diff --git a/buildenv-debian-sid-cross-armv7l.Dockerfile b/buildenv-debian-sid-cross-armv7l.Dockerfile new file mode 100644 index 0000000..cb4bc8f --- /dev/null +++ b/buildenv-debian-sid-cross-armv7l.Dockerfile @@ -0,0 +1,93 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armhf && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabihf \ + libacl1-dev:armhf \ + libapparmor-dev:armhf \ + libattr1-dev:armhf \ + libaudit-dev:armhf \ + libavahi-client-dev:armhf \ + libblkid-dev:armhf \ + libc6-dev:armhf \ + libcap-ng-dev:armhf \ + libcurl4-gnutls-dev:armhf \ + libdbus-1-dev:armhf \ + libdevmapper-dev:armhf \ + libfuse-dev:armhf \ + libglusterfs-dev:armhf \ + libgnutls28-dev:armhf \ + libiscsi-dev:armhf \ + libnl-3-dev:armhf \ + libnl-route-3-dev:armhf \ + libparted-dev:armhf \ + libpcap0.8-dev:armhf \ + libpciaccess-dev:armhf \ + librbd-dev:armhf \ + libreadline-dev:armhf \ + libsanlock-dev:armhf \ + libsasl2-dev:armhf \ + libselinux1-dev:armhf \ + libssh-gcrypt-dev:armhf \ + libssh2-1-dev:armhf \ + libtirpc-dev:armhf \ + libudev-dev:armhf \ + libxen-dev:armhf \ + libxml2-dev:armhf \ + libyajl-dev:armhf \ + xfslibs-dev:armhf && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "arm-linux-gnueabihf" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf \ + --target=arm-linux-gnueabihf" +ENV PKG_CONFIG_LIBDIR "/usr/lib/arm-linux-gnueabihf/pkgconfig" diff --git a/buildenv-debian-sid-cross-mips.Dockerfile b/buildenv-debian-sid-cross-mips.Dockerfile new file mode 100644 index 0000000..32102c3 --- /dev/null +++ b/buildenv-debian-sid-cross-mips.Dockerfile @@ -0,0 +1,93 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mips && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-mips-linux-gnu \ + libacl1-dev:mips \ + libapparmor-dev:mips \ + libattr1-dev:mips \ + libaudit-dev:mips \ + libavahi-client-dev:mips \ + libblkid-dev:mips \ + libc6-dev:mips \ + libcap-ng-dev:mips \ + libcurl4-gnutls-dev:mips \ + libdbus-1-dev:mips \ + libdevmapper-dev:mips \ + libfuse-dev:mips \ + libglusterfs-dev:mips \ + libgnutls28-dev:mips \ + libiscsi-dev:mips \ + libnl-3-dev:mips \ + libnl-route-3-dev:mips \ + libnuma-dev:mips \ + libparted-dev:mips \ + libpcap0.8-dev:mips \ + libpciaccess-dev:mips \ + librbd-dev:mips \ + libreadline-dev:mips \ + libsanlock-dev:mips \ + libsasl2-dev:mips \ + libselinux1-dev:mips \ + libssh-gcrypt-dev:mips \ + libssh2-1-dev:mips \ + libtirpc-dev:mips \ + libudev-dev:mips \ + libxml2-dev:mips \ + libyajl-dev:mips \ + xfslibs-dev:mips && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "mips-linux-gnu" +ENV CONFIGURE_OPTS "--host=mips-linux-gnu \ + --target=mips-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/mips-linux-gnu/pkgconfig" diff --git a/buildenv-debian-sid-cross-mips64el.Dockerfile b/buildenv-debian-sid-cross-mips64el.Dockerfile new file mode 100644 index 0000000..76b49da --- /dev/null +++ b/buildenv-debian-sid-cross-mips64el.Dockerfile @@ -0,0 +1,93 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mips64el && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-mips64el-linux-gnuabi64 \ + libacl1-dev:mips64el \ + libapparmor-dev:mips64el \ + libattr1-dev:mips64el \ + libaudit-dev:mips64el \ + libavahi-client-dev:mips64el \ + libblkid-dev:mips64el \ + libc6-dev:mips64el \ + libcap-ng-dev:mips64el \ + libcurl4-gnutls-dev:mips64el \ + libdbus-1-dev:mips64el \ + libdevmapper-dev:mips64el \ + libfuse-dev:mips64el \ + libglusterfs-dev:mips64el \ + libgnutls28-dev:mips64el \ + libiscsi-dev:mips64el \ + libnl-3-dev:mips64el \ + libnl-route-3-dev:mips64el \ + libnuma-dev:mips64el \ + libparted-dev:mips64el \ + libpcap0.8-dev:mips64el \ + libpciaccess-dev:mips64el \ + librbd-dev:mips64el \ + libreadline-dev:mips64el \ + libsanlock-dev:mips64el \ + libsasl2-dev:mips64el \ + libselinux1-dev:mips64el \ + libssh-gcrypt-dev:mips64el \ + libssh2-1-dev:mips64el \ + libtirpc-dev:mips64el \ + libudev-dev:mips64el \ + libxml2-dev:mips64el \ + libyajl-dev:mips64el \ + xfslibs-dev:mips64el && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "mips64el-linux-gnuabi64" +ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64 \ + --target=mips64el-linux-gnuabi64" +ENV PKG_CONFIG_LIBDIR "/usr/lib/mips64el-linux-gnuabi64/pkgconfig" diff --git a/buildenv-debian-sid-cross-mipsel.Dockerfile b/buildenv-debian-sid-cross-mipsel.Dockerfile new file mode 100644 index 0000000..a8d1a11 --- /dev/null +++ b/buildenv-debian-sid-cross-mipsel.Dockerfile @@ -0,0 +1,93 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mipsel && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-mipsel-linux-gnu \ + libacl1-dev:mipsel \ + libapparmor-dev:mipsel \ + libattr1-dev:mipsel \ + libaudit-dev:mipsel \ + libavahi-client-dev:mipsel \ + libblkid-dev:mipsel \ + libc6-dev:mipsel \ + libcap-ng-dev:mipsel \ + libcurl4-gnutls-dev:mipsel \ + libdbus-1-dev:mipsel \ + libdevmapper-dev:mipsel \ + libfuse-dev:mipsel \ + libglusterfs-dev:mipsel \ + libgnutls28-dev:mipsel \ + libiscsi-dev:mipsel \ + libnl-3-dev:mipsel \ + libnl-route-3-dev:mipsel \ + libnuma-dev:mipsel \ + libparted-dev:mipsel \ + libpcap0.8-dev:mipsel \ + libpciaccess-dev:mipsel \ + librbd-dev:mipsel \ + libreadline-dev:mipsel \ + libsanlock-dev:mipsel \ + libsasl2-dev:mipsel \ + libselinux1-dev:mipsel \ + libssh-gcrypt-dev:mipsel \ + libssh2-1-dev:mipsel \ + libtirpc-dev:mipsel \ + libudev-dev:mipsel \ + libxml2-dev:mipsel \ + libyajl-dev:mipsel \ + xfslibs-dev:mipsel && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "mipsel-linux-gnu" +ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu \ + --target=mipsel-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/mipsel-linux-gnu/pkgconfig" diff --git a/buildenv-debian-sid-cross-ppc64el.Dockerfile b/buildenv-debian-sid-cross-ppc64el.Dockerfile new file mode 100644 index 0000000..a46e746 --- /dev/null +++ b/buildenv-debian-sid-cross-ppc64el.Dockerfile @@ -0,0 +1,93 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture ppc64el && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-powerpc64le-linux-gnu \ + libacl1-dev:ppc64el \ + libapparmor-dev:ppc64el \ + libattr1-dev:ppc64el \ + libaudit-dev:ppc64el \ + libavahi-client-dev:ppc64el \ + libblkid-dev:ppc64el \ + libc6-dev:ppc64el \ + libcap-ng-dev:ppc64el \ + libcurl4-gnutls-dev:ppc64el \ + libdbus-1-dev:ppc64el \ + libdevmapper-dev:ppc64el \ + libfuse-dev:ppc64el \ + libglusterfs-dev:ppc64el \ + libgnutls28-dev:ppc64el \ + libiscsi-dev:ppc64el \ + libnl-3-dev:ppc64el \ + libnl-route-3-dev:ppc64el \ + libnuma-dev:ppc64el \ + libparted-dev:ppc64el \ + libpcap0.8-dev:ppc64el \ + libpciaccess-dev:ppc64el \ + librbd-dev:ppc64el \ + libreadline-dev:ppc64el \ + libsanlock-dev:ppc64el \ + libsasl2-dev:ppc64el \ + libselinux1-dev:ppc64el \ + libssh-gcrypt-dev:ppc64el \ + libssh2-1-dev:ppc64el \ + libtirpc-dev:ppc64el \ + libudev-dev:ppc64el \ + libxml2-dev:ppc64el \ + libyajl-dev:ppc64el \ + xfslibs-dev:ppc64el && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "powerpc64le-linux-gnu" +ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu \ + --target=powerpc64le-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/powerpc64le-linux-gnu/pkgconfig" diff --git a/buildenv-debian-sid-cross-s390x.Dockerfile b/buildenv-debian-sid-cross-s390x.Dockerfile new file mode 100644 index 0000000..76ceece --- /dev/null +++ b/buildenv-debian-sid-cross-s390x.Dockerfile @@ -0,0 +1,93 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + iproute2 \ + kmod \ + libc-dev-bin \ + libtool \ + libtool-bin \ + libxml2-utils \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sudo \ + vim \ + xsltproc \ + zfs-fuse && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture s390x && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + gcc-s390x-linux-gnu \ + libacl1-dev:s390x \ + libapparmor-dev:s390x \ + libattr1-dev:s390x \ + libaudit-dev:s390x \ + libavahi-client-dev:s390x \ + libblkid-dev:s390x \ + libc6-dev:s390x \ + libcap-ng-dev:s390x \ + libcurl4-gnutls-dev:s390x \ + libdbus-1-dev:s390x \ + libdevmapper-dev:s390x \ + libfuse-dev:s390x \ + libglusterfs-dev:s390x \ + libgnutls28-dev:s390x \ + libiscsi-dev:s390x \ + libnl-3-dev:s390x \ + libnl-route-3-dev:s390x \ + libnuma-dev:s390x \ + libparted-dev:s390x \ + libpcap0.8-dev:s390x \ + libpciaccess-dev:s390x \ + librbd-dev:s390x \ + libreadline-dev:s390x \ + libsanlock-dev:s390x \ + libsasl2-dev:s390x \ + libselinux1-dev:s390x \ + libssh-gcrypt-dev:s390x \ + libssh2-1-dev:s390x \ + libtirpc-dev:s390x \ + libudev-dev:s390x \ + libxml2-dev:s390x \ + libyajl-dev:s390x \ + xfslibs-dev:s390x && \ + apt-get autoremove -y && \ + apt-get autoclean -y + +ENV ABI "s390x-linux-gnu" +ENV CONFIGURE_OPTS "--host=s390x-linux-gnu \ + --target=s390x-linux-gnu" +ENV PKG_CONFIG_LIBDIR "/usr/lib/s390x-linux-gnu/pkgconfig" -- 2.20.1

On Fri, Mar 08, 2019 at 07:00:46PM +0100, Andrea Bolognani wrote:
lcitool supports generating Dockerfiles targeting cross-compilation of libvirt, so all that's left to do is teach the refresh script how to pass the necessary information to lcitool.
FWIW, I have been working on code to directly use the quay.io API to create build envs, since the thought of using the web UI to manually create so many extra images is horrible. None the less if you want to go ahead with creating it all manually....
Andrea Bolognani (4): refresh: Drop shell implementation refresh: Add Python implementation refresh: Add support for cross-compilation Dockerfiles Add cross-compilation Dockerfiles
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, 2019-03-11 at 14:54 +0000, Daniel P. Berrangé wrote:
On Fri, Mar 08, 2019 at 07:00:46PM +0100, Andrea Bolognani wrote:
lcitool supports generating Dockerfiles targeting cross-compilation of libvirt, so all that's left to do is teach the refresh script how to pass the necessary information to lcitool.
FWIW, I have been working on code to directly use the quay.io API to create build envs, since the thought of using the web UI to manually create so many extra images is horrible. None the less if you want to go ahead with creating it all manually....
Unlike Dockerfile regeneration, adding new images to quay.io is not something that I expect we'll be doing very frequently, so I'm okay doing it manually, plus there's the GitHub side of it as well... That said, feel free to complete your script if you're far enough along, we can use it next time :)
Andrea Bolognani (4): refresh: Drop shell implementation refresh: Add Python implementation refresh: Add support for cross-compilation Dockerfiles Add cross-compilation Dockerfiles
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Thanks! I'll push once everything has been set up on quay.io and GitHub. -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Daniel P. Berrangé