a4174a1e0a
StarlingX stopped supporting CentOS builds in the after release 7.0. This update will strip CentOS from our code base. It will also remove references to the failed OpenSUSE feature as well. There is still one CentOS based docker image (n3000), so this update will leave limited CentOS support in download and docker image building tools. Verified with a full Jenkins master branch build for Debian. - download full and incremental - package build full and incremental - iso build - build of base container image - build all flock container images - helm chart build. Story: 2011110 Task: 49939 Change-Id: I57939d2026d7df76091e8658750b4bd0fa8e4f5f Signed-off-by: Scott Little <scott.little@windriver.com>
150 lines
4.5 KiB
Diff
150 lines
4.5 KiB
Diff
From 7462c9467cd0a1e98ced03517646a4e00f65ddc3 Mon Sep 17 00:00:00 2001
|
|
From: Davlet Panech <davlet.panech@windriver.com>
|
|
Date: Thu, 8 Sep 2022 21:04:55 +0000
|
|
Subject: [PATCH] starlingx: enable/disable package repos
|
|
|
|
Dockerfile: new parameter DIST_REPOS that allows one to
|
|
enable/disable package repos when building
|
|
|
|
Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
|
|
---
|
|
Dockerfile | 5 +-
|
|
stx-scripts/install.sh | 11 +++
|
|
stx-scripts/setup-package-repos.sh | 126 +++++++++++++++++++++++++++++
|
|
stx-wheels/.keep | 0
|
|
4 files changed, 141 insertions(+), 1 deletion(-)
|
|
create mode 100755 stx-scripts/install.sh
|
|
create mode 100755 stx-scripts/setup-package-repos.sh
|
|
create mode 100644 stx-wheels/.keep
|
|
|
|
diff --git a/Dockerfile b/Dockerfile
|
|
index 3a026a3..3baea6c 100644
|
|
--- a/Dockerfile
|
|
+++ b/Dockerfile
|
|
@@ -32,4 +32,7 @@ ARG SPICE_REF=${SPICE_REF:-spice-html5-0.1.6}
|
|
COPY scripts /opt/loci/scripts
|
|
ADD bindep.txt pydep.txt $EXTRA_BINDEP $EXTRA_PYDEP /opt/loci/
|
|
|
|
-RUN /opt/loci/scripts/install.sh
|
|
+#RUN /opt/loci/scripts/install.sh
|
|
+ARG DIST_REPOS
|
|
+COPY stx-scripts /opt/loci/stx-scripts
|
|
+RUN /opt/loci/stx-scripts/install.sh
|
|
diff --git a/stx-scripts/install.sh b/stx-scripts/install.sh
|
|
new file mode 100755
|
|
index 0000000..da11b75
|
|
--- /dev/null
|
|
+++ b/stx-scripts/install.sh
|
|
@@ -0,0 +1,11 @@
|
|
+#!/bin/bash
|
|
+
|
|
+set -ex
|
|
+
|
|
+LOCI_DIR="/opt/loci"
|
|
+
|
|
+# configure apt/yum repos
|
|
+"$LOCI_DIR/stx-scripts/setup-package-repos.sh"
|
|
+
|
|
+# run Loci installer
|
|
+"$LOCI_DIR/scripts/install.sh" "$@"
|
|
diff --git a/stx-scripts/setup-package-repos.sh b/stx-scripts/setup-package-repos.sh
|
|
new file mode 100755
|
|
index 0000000..dd43612
|
|
--- /dev/null
|
|
+++ b/stx-scripts/setup-package-repos.sh
|
|
@@ -0,0 +1,88 @@
|
|
+#!/bin/bash
|
|
+
|
|
+set -ex
|
|
+
|
|
+#
|
|
+# This script enables or disables package repos specified
|
|
+# by the DIST_REPOS environment variable, which must contain
|
|
+# a list files (Debian) to enable or disable.
|
|
+#
|
|
+# In Debian repo names refer to individual files under
|
|
+# /etc/apt/sources.list.d/$NAME.list.
|
|
+#
|
|
+# Repo names may be prefixed with
|
|
+# a "+" (enable) or a "-" (disable). The leading "+" may be
|
|
+# omitted.
|
|
+#
|
|
+# Additionally, the following keywords are treated specially:
|
|
+#
|
|
+# STX - enable or disable all StarlingX repos, ie
|
|
+# the locally-built package repos, the mirror/download
|
|
+# repo, and any repo's passed on the command-line
|
|
+# to "build-stx-image.sh" script.
|
|
+#
|
|
+# OS - same as "debian" in Debian
|
|
+#
|
|
+#
|
|
+# These keywords have the same meaning in all distros, while actual
|
|
+# repo names are distro-specific.
|
|
+#
|
|
+# Any repos not included in $DIST_REPOS will remain unchanged (ie
|
|
+# they will remain enabled or disabled as defined in the base image).
|
|
+#
|
|
+# If a repo doesn't match an existing repository, this script will
|
|
+# fail.
|
|
+#
|
|
+# Debian Example
|
|
+# ==============
|
|
+# DIST_REPOS="debian"
|
|
+# enable core OS repos (ie /etc/apt/sources.list.d/debian.list)
|
|
+#
|
|
+# DIST_REPOS="OS -STX"
|
|
+# enable core OS repos (ie /etc/apt/sources.list.d/debian.list),
|
|
+# disable STX repos (ie /etc/apt/sources.list.d/stx.list)
|
|
+#
|
|
+#
|
|
+
|
|
+if [[ -n "$DIST_REPOS" ]] ; then
|
|
+ # basenames of files under /etc/apt/sources.list.d
|
|
+ declare -A DEBIAN_REPO_GROUPS=(
|
|
+ [OS]="debian"
|
|
+ [STX]="stx"
|
|
+ )
|
|
+
|
|
+ distro=$(awk -F= '/^ID=/ {gsub(/\"/, "", $2); print $2}' /etc/*release)
|
|
+ # enable or disable each repo
|
|
+ for base in $DIST_REPOS ; do
|
|
+ # starts with "-": disable this repo
|
|
+ if [[ "${base#-}" != "$base" ]] ; then
|
|
+ base="${base#-}"
|
|
+ enable=0
|
|
+ # starts with "+": enable this repo
|
|
+ elif [[ "${base#+}" != "$base" ]] ; then
|
|
+ base="${base#+}"
|
|
+ enable=1
|
|
+ # doesn't start with +/-: assume "+"
|
|
+ else
|
|
+ enable=1
|
|
+ fi
|
|
+
|
|
+ # enable or disable a repo
|
|
+ case ${distro} in
|
|
+ debian)
|
|
+ list_files="${DEBIAN_REPO_GROUPS[$base]:-$base}"
|
|
+ for list_file in $list_files ; do
|
|
+ if [[ $enable -eq 1 ]] ; then
|
|
+ cp -f /etc/apt/sources.list.d/${list_file}.list.disabled /etc/apt/sources.list.d/${list_file}.list
|
|
+ else
|
|
+ rm /etc/apt/sources.list.d/${list_file}.list
|
|
+ fi
|
|
+ done
|
|
+ ;;
|
|
+ *)
|
|
+ echo "error: unsupported OS \"$distro\"" >&2
|
|
+ exit 1
|
|
+ esac
|
|
+ done
|
|
+fi
|
|
+
|
|
diff --git a/stx-wheels/.keep b/stx-wheels/.keep
|
|
new file mode 100644
|
|
index 0000000..e69de29
|
|
--
|
|
2.30.2
|
|
|