mirror of
https://github.com/aljazceru/kata-containers.git
synced 2026-02-23 07:24:24 +01:00
Merge pull request #20 from erick0z/packaging_scripts
packages: Add spec files and update scripts
This commit is contained in:
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
typescript
|
||||
*.img
|
||||
*.initrd
|
||||
*.tar.gz
|
||||
24
Dockerfile
Normal file
24
Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
||||
FROM opensuse:leap
|
||||
|
||||
ARG GO_VERSION=${GO_VERSION:-1.10.2}
|
||||
ARG SUSE_VERSION=${SUSE_VERSION:-42.3}
|
||||
ARG GO_ARCH=${GO_ARCH:-amd64}
|
||||
|
||||
# Get OBS client, plugins and dependencies
|
||||
RUN zypper -n install osc-plugin-install vim curl bsdtar git sudo pcre-tools
|
||||
RUN curl -OkL https://download.opensuse.org/repositories/openSUSE:Tools/openSUSE_${SUSE_VERSION}/openSUSE:Tools.repo
|
||||
RUN zypper -n addrepo openSUSE:Tools.repo
|
||||
RUN zypper --gpg-auto-import-keys refresh
|
||||
RUN zypper -n install build \
|
||||
obs-service-tar_scm \
|
||||
obs-service-verify_file \
|
||||
obs-service-obs_scm \
|
||||
obs-service-recompress \
|
||||
obs-service-download_url
|
||||
|
||||
# Set Go environment
|
||||
RUN curl -OL https://dl.google.com/go/go${GO_VERSION}.linux-${GO_ARCH}.tar.gz
|
||||
RUN tar -C /usr/local -xzf go${GO_VERSION}.linux-${GO_ARCH}.tar.gz
|
||||
|
||||
# Local build dependencies
|
||||
RUN zypper -n install make gcc yum xz
|
||||
5
Makefile
5
Makefile
@@ -8,7 +8,10 @@
|
||||
MK_DIR :=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
.PHONY: test test-release-tools
|
||||
|
||||
test: test-release-tools
|
||||
test: test-release-tools test-packaging-tools
|
||||
|
||||
test-release-tools:
|
||||
@$(MK_DIR)/release/tag_repos_test.sh
|
||||
|
||||
test-packaging-tools:
|
||||
@$(MK_DIR)/build_from_docker.sh
|
||||
|
||||
60
build_all.sh
Executable file
60
build_all.sh
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
set -e
|
||||
|
||||
script_dir=$(dirname "$0")
|
||||
#Note:Lets update qemu and the kernel first, they take longer to build.
|
||||
#Note: runtime is build at the end to get the version from all its dependencies.
|
||||
projects=(
|
||||
qemu-lite
|
||||
qemu-vanilla
|
||||
kernel
|
||||
kata-containers-image
|
||||
proxy
|
||||
shim
|
||||
ksm-throttler
|
||||
runtime
|
||||
)
|
||||
|
||||
OSCRC="${HOME}/.oscrc"
|
||||
PUSH=${PUSH:-""}
|
||||
|
||||
export BUILD_DISTROS=${BUILD_DISTROS:-xUbuntu_16.04}
|
||||
# Packaging use this variable instead of use git user value
|
||||
# On CI git user is not set
|
||||
export AUTHOR="${AUTHOR:-user}"
|
||||
export AUTHOR_EMAIL="${AUTHOR_EMAIL:-user@example.com}"
|
||||
|
||||
cd "$script_dir"
|
||||
|
||||
OBS_API="https://api.opensuse.org"
|
||||
|
||||
if [ -n "${OBS_USER}" ] && [ -n "${OBS_PASS}" ] && [ ! -e "${OSCRC}" ]; then
|
||||
echo "Creating ${OSCRC} with user $OBS_USER"
|
||||
cat << eom > "${OSCRC}"
|
||||
[general]
|
||||
apiurl = ${OBS_API}
|
||||
[${OBS_API}]
|
||||
user = ${OBS_USER}
|
||||
pass = ${OBS_PASS}
|
||||
eom
|
||||
fi
|
||||
|
||||
if [ -n "${PUSH}" ]; then
|
||||
# push to obs
|
||||
PUSH_TO_OBS="-p"
|
||||
else
|
||||
# local build
|
||||
PUSH_TO_OBS="-l"
|
||||
fi
|
||||
|
||||
for p in "${projects[@]}"; do
|
||||
pushd "$p" >> /dev/null
|
||||
echo "update ${p}"
|
||||
bash ./update.sh "${PUSH_TO_OBS}" -v
|
||||
popd >> /dev/null
|
||||
done
|
||||
52
build_from_docker.sh
Executable file
52
build_from_docker.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -x
|
||||
set -e
|
||||
|
||||
cache_dir=${PWD}/obs-cache
|
||||
#where packaing repo lives
|
||||
packaging_repo_dir="${PWD}"
|
||||
#where results will be stored
|
||||
host_datadir="${PWD}/pkgs"
|
||||
obs_image="obs-kata"
|
||||
export USE_DOCKER=1
|
||||
|
||||
if command -v go; then
|
||||
export GO_ARCH=$(go env GOARCH)
|
||||
else
|
||||
export GO_ARCH=amd64
|
||||
echo "Go not installed using $GO_ARCH to install go in dockerfile"
|
||||
fi
|
||||
|
||||
export GO_ARCH=$(go env GOARCH)
|
||||
sudo docker build \
|
||||
--build-arg http_proxy="${http_proxy}" \
|
||||
--build-arg https_proxy="${https_proxy}" \
|
||||
-t $obs_image .
|
||||
|
||||
pushd kata-containers-image/ >> /dev/null
|
||||
./build_image.sh
|
||||
popd >> /dev/null
|
||||
|
||||
function faketty { script -qfc "$(printf "%q " "$@")"; }
|
||||
|
||||
faketty sudo docker run \
|
||||
--rm \
|
||||
-v "${HOME}/.ssh":/root/.ssh \
|
||||
-v "${HOME}/.gitconfig":/root/.gitconfig \
|
||||
-v /etc/profile:/etc/profile \
|
||||
--env http_proxy="${http_proxy}" \
|
||||
--env https_proxy="${https_proxy}" \
|
||||
--env no_proxy="${no_proxy}" \
|
||||
--env PUSH="${PUSH}" \
|
||||
-v "${HOME}/.bashrc":/root/.bashrc \
|
||||
-v "$cache_dir":/var/tmp/osbuild-packagecache/ \
|
||||
-v "$packaging_repo_dir":${packaging_repo_dir} \
|
||||
-v "$host_datadir":/var/packaging \
|
||||
-v "$HOME/.oscrc":/root/.oscrc \
|
||||
-ti "$obs_image" bash -c "${packaging_repo_dir}/build_all.sh"
|
||||
2079
kata-containers-image/LICENSE
Normal file
2079
kata-containers-image/LICENSE
Normal file
File diff suppressed because it is too large
Load Diff
64
kata-containers-image/build_image.sh
Executable file
64
kata-containers-image/build_image.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
set -x
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
tmp_dir=$(mktemp -d -t build-image-tmp.XXXXXXXXXX)
|
||||
|
||||
script_dir=$(dirname "$0")
|
||||
source ${script_dir}/../versions.txt
|
||||
|
||||
|
||||
readonly OSBUILDER_URL=https://github.com/kata-containers/osbuilder.git
|
||||
AGENT_SHA="$kata_agent_hash"
|
||||
|
||||
#Image information
|
||||
IMG_DISTRO="${osbuilder_default_os:-clearlinux}"
|
||||
IMG_OS_VERSION="$clearlinux_version"
|
||||
CLR_BASE_URL="https://download.clearlinux.org/releases/${clearlinux_version}/clear/x86_64/os/"
|
||||
|
||||
#Initrd information
|
||||
INITRD_DISTRO="${osbuilder_default_initrd_os:-alpine}"
|
||||
INITRD_OS_VERSION="$alpine_version"
|
||||
|
||||
readonly IMAGE_NAME="kata-containers-image_${IMG_DISTRO}_agent_${AGENT_SHA:0:7}.img"
|
||||
readonly INITRD_NAME="kata-containers-initrd_${INITRD_DISTRO}_agent_${AGENT_SHA:0:7}.initrd"
|
||||
|
||||
rm -f "${IMAGE_NAME}"
|
||||
rm -f "${INITRD_NAME}"
|
||||
|
||||
|
||||
pushd ${tmp_dir}
|
||||
git clone $OSBUILDER_URL osbuilder
|
||||
pushd osbuilder
|
||||
git checkout $kata_osbuilder_version
|
||||
|
||||
sudo -E PATH=$PATH make initrd\
|
||||
DISTRO=$INITRD_DISTRO \
|
||||
AGENT_VERSION=$AGENT_SHA \
|
||||
OS_VERSION=$INITRD_OS_VERSION \
|
||||
DISTRO_ROOTFS="${PWD}/initrd-image" \
|
||||
USE_DOCKER=1 \
|
||||
AGENT_INIT="yes"
|
||||
|
||||
sudo -E PATH=$PATH make image \
|
||||
DISTRO=$IMG_DISTRO \
|
||||
AGENT_VERSION=$AGENT_SHA \
|
||||
IMG_OS_VERSION=$IMG_OS_VERSION \
|
||||
DISTRO_ROOTFS="${PWD}/rootfs-image" \
|
||||
BASE_URL=$CLR_BASE_URL
|
||||
|
||||
popd
|
||||
|
||||
popd
|
||||
mv "${tmp_dir}/osbuilder/kata-containers.img" "${IMAGE_NAME}"
|
||||
mv "${tmp_dir}/osbuilder/kata-containers-initrd.img" "${INITRD_NAME}"
|
||||
sudo tar cfz "kata-containers.tar.gz" "${INITRD_NAME}" "${IMAGE_NAME}"
|
||||
|
||||
1
kata-containers-image/debian.compat
Normal file
1
kata-containers-image/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
12
kata-containers-image/debian.control-template
Normal file
12
kata-containers-image/debian.control-template
Normal file
@@ -0,0 +1,12 @@
|
||||
Source: kata-containers-image
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Build-Depends: debhelper (>= 9), flex, bison
|
||||
|
||||
Package: kata-containers-image
|
||||
Architecture: @deb_arch@
|
||||
Description: Kata containers image
|
||||
|
||||
1
kata-containers-image/debian.dirs
Normal file
1
kata-containers-image/debian.dirs
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/kata-containers
|
||||
17
kata-containers-image/debian.rules-template
Executable file
17
kata-containers-image/debian.rules-template
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
%:
|
||||
dh $@
|
||||
override_dh_auto_build:
|
||||
|
||||
override_dh_auto_install:
|
||||
mkdir -p debian/kata-containers-image ; \
|
||||
tar xzf /usr/src/packages/SOURCES/kata-containers.tar.gz -C /usr/src/packages/SOURCES/ ; \
|
||||
image=$$(find /usr/src/packages/SOURCES/ -type f -name '*.img') ; \
|
||||
initrd=$$(find /usr/src/packages/SOURCES/ -type f -name '*.initrd') ; \
|
||||
install -D $${image} ./debian/kata-containers-image/usr/share/kata-containers/ ; \
|
||||
install -D $${initrd} ./debian/kata-containers-image/usr/share/kata-containers/ ; \
|
||||
ln -s /usr/share/kata-containers/$$(basename $${image}) \
|
||||
./debian/kata-containers-image/usr/share/kata-containers/kata-containers.img ; \
|
||||
ln -s /usr/share/kata-containers/$$(basename $${initrd}) \
|
||||
./debian/kata-containers-image/usr/share/kata-containers/kata-containers-initrd.img ;
|
||||
14
kata-containers-image/kata-containers-image.dsc-template
Normal file
14
kata-containers-image/kata-containers-image.dsc-template
Normal file
@@ -0,0 +1,14 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: kata-containers-image
|
||||
Version: @VERSION@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Build-Depends: debhelper (>= 9), flex, bison
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Debtransform-Tar: kata-containers.tar.gz
|
||||
|
||||
Package: kata-containers-image
|
||||
Architecture: @deb_arch@
|
||||
Description: Kata containers image
|
||||
48
kata-containers-image/kata-containers-image.spec-template
Normal file
48
kata-containers-image/kata-containers-image.spec-template
Normal file
@@ -0,0 +1,48 @@
|
||||
%define version @VERSION@
|
||||
%define release @RELEASE@
|
||||
%define agent_sha @AGENT_SHA@
|
||||
%define rootfs_os @ROOTFS_OS@
|
||||
|
||||
Name: kata-containers-image
|
||||
Version: %{version}
|
||||
Release: %{release}.<B_CNT>
|
||||
License: Artistic-1.0 BSD-3-Clause BSD-3-Clause-Kata BSD-4-Clause-UC GFDL-1.3 GPL-2.0 GPL-2.0+ GPL-3.0 GPL-3.0+ LGPL-2.0 LGPL-2.0+ LGPL-2.1 LGPL-3.0+ MIT MPL-2.0 Public-Domain
|
||||
Summary: Kata Containers Image
|
||||
Url: https://github.com/kata-containers/osbuilder
|
||||
Group: image
|
||||
Source0: kata-containers.tar.gz
|
||||
Source1: LICENSE
|
||||
|
||||
%global debug_package %{nil}
|
||||
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
Kata Containers rootfs image
|
||||
|
||||
%prep
|
||||
# Patches
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
%install
|
||||
ImageDir=%{buildroot}/usr/share/kata-containers
|
||||
mkdir -p ${ImageDir}
|
||||
|
||||
pushd %{_sourcedir}
|
||||
tar xfz kata-containers.tar.gz
|
||||
image=$(find ${PWD} -type f -name '*.img')
|
||||
initrd=$(find ${PWD} -type f -name '*.initrd')
|
||||
popd
|
||||
install -p "${image}" ${ImageDir}/
|
||||
install -p "${initrd}" ${ImageDir}/
|
||||
ln -s /usr/share/kata-containers/$(basename "${image}") ${ImageDir}/kata-containers.img
|
||||
ln -s /usr/share/kata-containers/$(basename "${initrd}") ${ImageDir}/kata-containers-initrd.img
|
||||
|
||||
%files
|
||||
%if 0%{?suse_version}
|
||||
%dir /usr/share/kata-containers
|
||||
%endif
|
||||
/usr/share/kata-containers/kata-containers-image*.img
|
||||
/usr/share/kata-containers/kata-containers.img
|
||||
/usr/share/kata-containers/kata-containers-initrd*.initrd
|
||||
/usr/share/kata-containers/kata-containers-initrd.img
|
||||
53
kata-containers-image/update.sh
Executable file
53
kata-containers-image/update.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
|
||||
# Automation script to create specs to build kata-containers-image
|
||||
# Default image to build is the one specified in file versions.txt
|
||||
# located at the root of the repository.
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
PKG_NAME="kata-containers-image"
|
||||
VERSION=$kata_osbuilder_version
|
||||
|
||||
GENERATED_FILES=(kata-containers-image.spec kata-containers-image.dsc debian.rules debian.control)
|
||||
STATIC_FILES=(LICENSE debian.compat debian.dirs kata-containers.tar.gz)
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/kata-containers-image}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
[ -n "$APIURL" ] && APIURL="-A ${APIURL}"
|
||||
|
||||
function check_image() {
|
||||
[ ! -f "${SCRIPT_DIR}/kata-containers.tar.gz" ] && die "No kata-containers.tar.gz found!\nUse the build_image.sh script" || echo "Image: OK"
|
||||
}
|
||||
|
||||
replace_list=(
|
||||
"VERSION=$VERSION"
|
||||
"RELEASE=$RELEASE"
|
||||
"AGENT_SHA=${kata_agent_hash:0:7}"
|
||||
"ROOTFS_OS=$osbuilder_default_os"
|
||||
)
|
||||
|
||||
verify
|
||||
check_image
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
25
kernel/Makefile.dist.install
Normal file
25
kernel/Makefile.dist.install
Normal file
@@ -0,0 +1,25 @@
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Installation variables
|
||||
DESTDIR :=
|
||||
DEFAULTSDIR := /usr/share/
|
||||
PROJECT_DIR := Kata-containers
|
||||
VMLINUX := @VMLINUX@
|
||||
VMLINUZ := @VMLINUZ@
|
||||
|
||||
DESTSYSCONFDIR := $(abspath $(DESTDIR)/$(DEFAULTSDIR)/$(PROJECT_DIR))
|
||||
|
||||
|
||||
VMLINUX_DEST := $(abspath $(DESTSYSCONFDIR)/$(VMLINUX))
|
||||
VMLINUZ_DEST := $(abspath $(DESTSYSCONFDIR)/$(VMLINUZ))
|
||||
|
||||
|
||||
install:
|
||||
install -D --owner root --group root --mode 0644 $(VMLINUX) $(VMLINUX_DEST)
|
||||
install -D --owner root --group root --mode 0644 $(VMLINUZ) $(VMLINUZ_DEST)
|
||||
ln -sf $(VMLINUX_DEST) $(DESTSYSCONFDIR)/vmlinuz.container
|
||||
ln -sf $(VMLINUZ_DEST) $(DESTSYSCONFDIR)/vmlinux.container
|
||||
13
kernel/_service-template
Normal file
13
kernel/_service-template
Normal file
@@ -0,0 +1,13 @@
|
||||
<!--- XML Structure defined here: https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
|
||||
<services>
|
||||
<service name="download_url">
|
||||
<param name="protocol">https</param>
|
||||
<param name="host">cdn.kernel.org</param>
|
||||
<param name="path">/pub/linux/kernel/v4.x/linux-@VERSION@.tar.xz</param>
|
||||
</service>
|
||||
<service name="verify_file">
|
||||
<param name="file">_service:download_url:linux-@VERSION@.tar.xz</param>
|
||||
<param name="verifier">sha256</param>
|
||||
<param name="checksum">@KERNEL_SHA256@</param>
|
||||
</service>
|
||||
</services>
|
||||
1
kernel/debian.compat
Normal file
1
kernel/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
18
kernel/debian.control-template
Normal file
18
kernel/debian.control-template
Normal file
@@ -0,0 +1,18 @@
|
||||
Source: kata-linux-container
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Build-Depends: debhelper (>= 9), cpio, libelf-dev, libnewt-dev, libiberty-dev, rsync, libdw-dev, libpci-dev, pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gawk, autoconf, automake, libtool, libssl-dev
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
|
||||
Package: kata-linux-container
|
||||
Architecture: @deb_arch@
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends},
|
||||
Description: linux kernel optimised for container-like workloads.
|
||||
Linux kernel optimised for container-like workloads
|
||||
|
||||
Package: kata-linux-container-debug
|
||||
Architecture: @deb_arch@
|
||||
Description: Debug components for the kata-linux-container package.
|
||||
This package includes the kernel config and the kernel map.
|
||||
30
kernel/debian.copyright
Normal file
30
kernel/debian.copyright
Normal file
@@ -0,0 +1,30 @@
|
||||
This is the Kata containers prepackaged version of the Linux kernel.
|
||||
Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
|
||||
and others.
|
||||
|
||||
This package was put together by the Kata containers team, from
|
||||
sources retrieved from upstream linux git.
|
||||
The sources may be found at most Linux download websites, including
|
||||
https://www.kernel.org/pub/linux/kernel/
|
||||
|
||||
This package is currently maintained by the
|
||||
Kata containers team <https://github.com/kata-containers/
|
||||
|
||||
Linux is copyrighted by Linus Torvalds and others.
|
||||
|
||||
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; version 2 dated June, 1991.
|
||||
|
||||
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, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
On your Linux system, the complete text of the GNU General
|
||||
Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||
copyright (END)
|
||||
2
kernel/debian.dirs
Normal file
2
kernel/debian.dirs
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/Kata-containers
|
||||
|
||||
35
kernel/debian.rules
Executable file
35
kernel/debian.rules
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/make -f
|
||||
include /usr/share/dpkg/default.mk
|
||||
KernelDir=debian/kata-linux-container/usr/share/kata-containers
|
||||
DebugDir=debian/kata-linux-container-debug/usr/share/kata-containers
|
||||
KernelVer=${DEB_VERSION_UPSTREAM_REVISION}.container
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_build:
|
||||
sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -$$(echo $(KernelVer) | cut -d'-' -f2)/" Makefile
|
||||
cp /usr/src/packages/SOURCES/config .config
|
||||
make -s ARCH=x86_64 oldconfig > /dev/null
|
||||
make -s CONFIG_DEBUG_SECTION_MISMATCH=y ARCH=x86_64 -j4 all
|
||||
|
||||
override_dh_auto_install:
|
||||
|
||||
override_dh_auto_clean:
|
||||
|
||||
override_dh_install:
|
||||
dh_install
|
||||
mkdir -p $(DebugDir)
|
||||
mkdir -p $(KernelDir)
|
||||
install -m 644 .config $(DebugDir)/config-$(KernelVer)
|
||||
install -m 644 System.map $(DebugDir)/System.map-$(KernelVer)
|
||||
cp arch/x86/boot/bzImage $(KernelDir)/vmlinuz-$(KernelVer)
|
||||
chmod 755 $(KernelDir)/vmlinuz-$(KernelVer)
|
||||
ln -sf vmlinuz-$(KernelVer) $(KernelDir)/vmlinuz.container
|
||||
|
||||
cp vmlinux $(KernelDir)/vmlinux-$(KernelVer)
|
||||
chmod 755 $(KernelDir)/vmlinux-$(KernelVer)
|
||||
ln -sf vmlinux-$(KernelVer) $(KernelDir)/vmlinux.container
|
||||
|
||||
override_dh_strip:
|
||||
|
||||
override_dh_shlibdeps:
|
||||
20
kernel/kata-linux-container.dsc-template
Normal file
20
kernel/kata-linux-container.dsc-template
Normal file
@@ -0,0 +1,20 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: kata-linux-container
|
||||
Version: @VERSION@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Build-Depends: debhelper (>= 9), cpio, libelf-dev, libnewt-dev, libiberty-dev, rsync, libdw-dev, libpci-dev, pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gawk, autoconf, automake, libtool, libssl-dev
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Debtransform-Tar: linux-@VERSION@.tar.xz
|
||||
|
||||
Package: kata-linux-container
|
||||
Architecture: @deb_arch@
|
||||
Description: linux kernel optimised for container-like workloads.
|
||||
Linux kernel optimised for container-like workloads
|
||||
|
||||
Package: kata-linux-container-debug
|
||||
Architecture: @deb_arch@
|
||||
Description: Debug components for the kata-linux-container package.
|
||||
This package includes the kernel config and the kernel map.
|
||||
127
kernel/kata-linux-container.spec-template
Normal file
127
kernel/kata-linux-container.spec-template
Normal file
@@ -0,0 +1,127 @@
|
||||
#
|
||||
# This is a special configuration of the Linux kernel, aimed exclusively
|
||||
# for running inside a container
|
||||
# This specialization allows us to optimize memory footprint and boot time.
|
||||
#
|
||||
|
||||
%define bzimage_arch x86
|
||||
|
||||
Name: kata-linux-container
|
||||
Version: @VERSION@
|
||||
Release: @RELEASE@.<B_CNT>
|
||||
License: GPL-2.0
|
||||
Summary: The Linux kernel optimized for running inside a container
|
||||
Url: http://www.kernel.org/
|
||||
Group: kernel
|
||||
Source0: https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-@VERSION@.tar.xz
|
||||
Source1: config
|
||||
|
||||
%define kversion %{version}-%{release}.container
|
||||
|
||||
BuildRequires: bash >= 2.03
|
||||
BuildRequires: bc
|
||||
BuildRequires: binutils-devel
|
||||
|
||||
%if 0%{?rhel_version}
|
||||
BuildRequires: elfutils-devel
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires: libelf-devel
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} || 0%{?centos_version}
|
||||
BuildRequires: pkgconfig(libelf)
|
||||
%endif
|
||||
|
||||
BuildRequires: make >= 3.78
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: flex
|
||||
BuildRequires: bison
|
||||
|
||||
# don't strip .ko files!
|
||||
%global __os_install_post %{nil}
|
||||
%define debug_package %{nil}
|
||||
%define __strip /bin/true
|
||||
|
||||
# Patches
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
The Linux kernel.
|
||||
|
||||
%package debug
|
||||
Summary: Debug components for the kata-linux-container package.
|
||||
Group: Default
|
||||
|
||||
%description debug
|
||||
Debug components for the kata-linux-container package.
|
||||
This package includes the kernel config and the kernel map.
|
||||
|
||||
%prep
|
||||
%setup -q -n linux-@VERSION@
|
||||
|
||||
# Patches
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
cp %{SOURCE1} .
|
||||
|
||||
%build
|
||||
BuildKernel() {
|
||||
|
||||
Arch=%{_arch}
|
||||
ExtraVer="-%{release}.container"
|
||||
|
||||
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = ${ExtraVer}/" Makefile
|
||||
|
||||
make -s mrproper
|
||||
cp config .config
|
||||
|
||||
make -s ARCH=$Arch oldconfig > /dev/null
|
||||
make -s CONFIG_DEBUG_SECTION_MISMATCH=y %{?_smp_mflags} ARCH=$Arch %{?sparse_mflags} || exit 1
|
||||
}
|
||||
|
||||
BuildKernel
|
||||
|
||||
%install
|
||||
|
||||
InstallKernel() {
|
||||
KernelImage=$1
|
||||
KernelImageRaw=$2
|
||||
|
||||
Arch=%{_arch}
|
||||
KernelVer=%{kversion}
|
||||
KernelDir=%{buildroot}/usr/share/kata-containers
|
||||
|
||||
mkdir -p ${KernelDir}
|
||||
|
||||
cp $KernelImage ${KernelDir}/vmlinuz-$KernelVer
|
||||
chmod 755 ${KernelDir}/vmlinuz-$KernelVer
|
||||
ln -sf vmlinuz-$KernelVer ${KernelDir}/vmlinuz.container
|
||||
|
||||
cp $KernelImageRaw ${KernelDir}/vmlinux-$KernelVer
|
||||
chmod 755 ${KernelDir}/vmlinux-$KernelVer
|
||||
ln -sf vmlinux-$KernelVer ${KernelDir}/vmlinux.container
|
||||
|
||||
cp .config "${KernelDir}/config-${KernelVer}"
|
||||
cp System.map "${KernelDir}/System.map-${KernelVer}"
|
||||
|
||||
rm -f %{buildroot}/usr/lib/modules/$KernelVer/build
|
||||
rm -f %{buildroot}/usr/lib/modules/$KernelVer/source
|
||||
}
|
||||
|
||||
InstallKernel arch/%{bzimage_arch}/boot/bzImage vmlinux
|
||||
|
||||
rm -rf %{buildroot}/usr/lib/firmware
|
||||
|
||||
%files
|
||||
%dir /usr/share/kata-containers
|
||||
/usr/share/kata-containers/vmlinux-%{kversion}
|
||||
/usr/share/kata-containers/vmlinux.container
|
||||
/usr/share/kata-containers/vmlinuz-%{kversion}
|
||||
/usr/share/kata-containers/vmlinuz.container
|
||||
|
||||
%files debug
|
||||
%defattr(-,root,root,-)
|
||||
/usr/share/kata-containers/config-%{kversion}
|
||||
/usr/share/kata-containers/System.map-%{kversion}
|
||||
58
kernel/update.sh
Executable file
58
kernel/update.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
|
||||
# Automation script to create specs to build Kata containers kernel
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
|
||||
PKG_NAME="kata-linux-container"
|
||||
VERSION=$kernel_version
|
||||
|
||||
KR_SERIES="$(echo $VERSION | cut -d "." -f 1).x"
|
||||
KR_LTS=$(echo $VERSION | cut -d "." -f 1,2)
|
||||
KR_PATCHES=$(eval find "patches" -type f -name "*.patch")
|
||||
|
||||
KR_REL=https://www.kernel.org/releases.json
|
||||
KR_SHA=https://cdn.kernel.org/pub/linux/kernel/v"${KR_SERIES}"/sha256sums.asc
|
||||
|
||||
GENERATED_FILES=(kata-linux-container.dsc kata-linux-container.spec _service config debian.control debian.series)
|
||||
STATIC_FILES=(debian.dirs debian.rules debian.compat debian.copyright)
|
||||
#STATIC_FILES+=($KR_PATCHES)
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/linux-container}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
|
||||
kernel_sha256=$(curl -L -s -f ${KR_SHA} | awk '/linux-'${VERSION}'.tar.xz/ {print $1}')
|
||||
|
||||
# Generate the kernel config file
|
||||
cp "configs/x86_kata_kvm_${KR_LTS}.x" config
|
||||
|
||||
replace_list=(
|
||||
"VERSION=$VERSION"
|
||||
"RELEASE=$RELEASE"
|
||||
"KERNEL_SHA256=$kernel_sha256"
|
||||
)
|
||||
|
||||
verify
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
24
ksm-throttler/_service-template
Normal file
24
ksm-throttler/_service-template
Normal file
@@ -0,0 +1,24 @@
|
||||
<!--- XML Structure defined here: https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
|
||||
<services>
|
||||
<service name="tar_scm">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/kata-containers/ksm-throttler.git</param>
|
||||
<param name="filename">kata-ksm-throttler</param>
|
||||
<param name="versionformat">@VERSION@.git+%h</param>
|
||||
<param name="revision">@REVISION@</param>
|
||||
</service>
|
||||
<service name="recompress">
|
||||
<param name="file">*.tar*</param>
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
<service name="download_url">
|
||||
<param name="protocol">https</param>
|
||||
<param name="host">storage.googleapis.com</param>
|
||||
<param name="path">golang/go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
</service>
|
||||
<service name="verify_file">
|
||||
<param name="file">_service:download_url:go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
<param name="verifier">sha256</param>
|
||||
<param name="checksum">@GO_CHECKSUM@</param>
|
||||
</service>
|
||||
</services>
|
||||
1
ksm-throttler/debian.compat
Normal file
1
ksm-throttler/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
13
ksm-throttler/debian.control-template
Normal file
13
ksm-throttler/debian.control-template
Normal file
@@ -0,0 +1,13 @@
|
||||
Source: kata-ksm-throttler
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Build-Depends: dh-make, git, ca-certificates, execstack, devscripts, debhelper, build-essential, dh-autoreconf, make, dh-modaliases, pkg-config, dh-systemd, systemd
|
||||
|
||||
Package: kata-ksm-throttler
|
||||
Architecture: @deb_arch@
|
||||
Description:
|
||||
This project implements a Kernel Same-page Merging throttling daemon.
|
||||
Its goal is to regulate KSM by dynamically modifying the KSM sysfs entries, in order to minimize memory duplication as fast as possible while keeping the KSM daemon load low.
|
||||
35
ksm-throttler/debian.rules-template
Normal file
35
ksm-throttler/debian.rules-template
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
DOMAIN = github.com
|
||||
ORG = kata-containers
|
||||
PROJECT = ksm-throttler
|
||||
IMPORTNAME = $(DOMAIN)/$(ORG)/$(PROJECT)
|
||||
GO_VERSION = @GO_VERSION@
|
||||
|
||||
export DH_VERBOSE=1
|
||||
export DH_GOPKG:=$(DOMAIN)/$(ORG)/$(PROJECT)
|
||||
export DEB_BUILD_OPTIONS=nocheck
|
||||
export GOPATH=/usr/src/packages/BUILD/go
|
||||
export GOROOT=/tmp/local/go
|
||||
export PATH:=/tmp/local/go/bin:$(PATH)
|
||||
export DH_OPTIONS
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_build:
|
||||
mkdir -p /tmp/local/
|
||||
mkdir -p /usr/src/packages/BUILD/go/src/$(DOMAIN)/$(ORG)
|
||||
tar xzf /usr/src/packages/SOURCES/go$(GO_VERSION).linux-@GO_ARCH@.tar.gz -C /tmp/local
|
||||
ln -s /usr/src/packages/BUILD /usr/src/packages/BUILD/go/src/$(IMPORTNAME)
|
||||
cd $(GOPATH)/src/$(IMPORTNAME); \
|
||||
make TARGET=kata-ksm-throttler
|
||||
|
||||
|
||||
override_dh_auto_install:
|
||||
mkdir -p debian/$(PROJECT)
|
||||
cd $(GOPATH)/src/$(IMPORTNAME); \
|
||||
make install \
|
||||
DESTDIR=$(shell pwd)/debian/kata-ksm-throttler \
|
||||
TARGET=kata-ksm-throttler
|
||||
|
||||
16
ksm-throttler/kata-ksm-throttler.dsc-template
Normal file
16
ksm-throttler/kata-ksm-throttler.dsc-template
Normal file
@@ -0,0 +1,16 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: kata-ksm-throttler
|
||||
Version: @VERSION@.git+@HASH@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Build-Depends: dh-make, git, ca-certificates, execstack, devscripts, debhelper, build-essential, dh-autoreconf, make, dh-modaliases, pkg-config, dh-systemd, systemd
|
||||
Debtransform-Tar: kata-ksm-throttler-@VERSION@.git+@HASH@.tar.gz
|
||||
|
||||
Package: kata-ksm-throttler
|
||||
Architecture: @deb_arch@
|
||||
Description:
|
||||
This project implements a Kernel Same-page Merging throttling daemon.
|
||||
Its goal is to regulate KSM by dynamically modifying the KSM sysfs entries, in order to minimize memory duplication as fast as possible while keeping the KSM daemon load low.
|
||||
83
ksm-throttler/kata-ksm-throttler.spec-template
Normal file
83
ksm-throttler/kata-ksm-throttler.spec-template
Normal file
@@ -0,0 +1,83 @@
|
||||
%global PREFIX /usr/
|
||||
%global DOMAIN github.com
|
||||
%global ORG kata-containers
|
||||
%global PROJECT ksm-throttler
|
||||
%global IMPORTNAME %{DOMAIN}/%{ORG}/%{PROJECT}
|
||||
%global GO_VERSION @GO_VERSION@
|
||||
%global GO_ARCH @GO_ARCH@
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%define LIBEXECDIR %{_libdir}
|
||||
%else
|
||||
%define LIBEXECDIR %{_libexecdir}
|
||||
%endif
|
||||
|
||||
%undefine _missing_build_ids_terminate_build
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: kata-ksm-throttler
|
||||
Version: @VERSION@.git+@HASH@
|
||||
Release: @RELEASE@.<B_CNT>
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
Summary : No detailed summary available
|
||||
Group : Development/Tools
|
||||
License : Apache-2.0
|
||||
|
||||
BuildRequires: git
|
||||
BuildRequires: systemd
|
||||
%if 0%{?suse_version} && 0%{?is_opensuse}
|
||||
BuildRequires: openSUSE-release
|
||||
%endif
|
||||
|
||||
# Patches
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
.. contents::
|
||||
.. sectnum::
|
||||
``kata-ksm-throttler``
|
||||
===================
|
||||
Overview
|
||||
--------
|
||||
|
||||
%prep
|
||||
mkdir local
|
||||
tar -C local -xzf ../SOURCES/go%{GO_VERSION}.linux-%{GO_ARCH}.tar.gz
|
||||
|
||||
%setup -q
|
||||
%autosetup -S git
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
%build
|
||||
export GOROOT=$HOME/rpmbuild/BUILD/local/go
|
||||
export PATH=$PATH:$HOME/rpmbuild/BUILD/local/go/bin
|
||||
export GOPATH=$HOME/rpmbuild/BUILD/go/
|
||||
|
||||
mkdir -p $HOME/rpmbuild/BUILD/go/src/%{DOMAIN}/%{ORG}
|
||||
ln -s $HOME/rpmbuild/BUILD/kata-ksm-throttler-%{version} $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
cd $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
make \
|
||||
TARGET=kata-ksm-throttler \
|
||||
LIBEXECDIR=%{LIBEXECDIR}
|
||||
|
||||
%install
|
||||
export GOROOT=$HOME/rpmbuild/BUILD/local/go
|
||||
export PATH=$PATH:$HOME/rpmbuild/BUILD/local/go/bin
|
||||
export GOPATH=$HOME/rpmbuild/BUILD/go/
|
||||
|
||||
cd $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
make install \
|
||||
TARGET=kata-ksm-throttler \
|
||||
DESTDIR=%{buildroot} \
|
||||
LIBEXECDIR=%{LIBEXECDIR}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{LIBEXECDIR}/kata-ksm-throttler
|
||||
%{LIBEXECDIR}/kata-ksm-throttler/kata-ksm-throttler
|
||||
%{LIBEXECDIR}/kata-ksm-throttler/trigger
|
||||
%{LIBEXECDIR}/kata-ksm-throttler/trigger/virtcontainers
|
||||
%{LIBEXECDIR}/kata-ksm-throttler/trigger/virtcontainers/vc
|
||||
/usr/lib/systemd/system/kata-ksm-throttler.service
|
||||
/usr/lib/systemd/system/vc-throttler.service
|
||||
55
ksm-throttler/update.sh
Executable file
55
ksm-throttler/update.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
#
|
||||
# Automation script to create specs to build ksm-throttler.
|
||||
# Default: Build is the one specified in file configure.ac
|
||||
# located at the root of the repository.
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
PKG_NAME="kata-ksm-throttler"
|
||||
VERSION=$ksm_throttler_version
|
||||
HASH=$ksm_throttler_hash
|
||||
|
||||
GENERATED_FILES=(_service kata-ksm-throttler.spec kata-ksm-throttler.dsc debian.control debian.rules)
|
||||
STATIC_FILES=(debian.compat)
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/ksm-throttler}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
[ -n "$APIURL" ] && APIURL="-A ${APIURL}"
|
||||
|
||||
|
||||
set_versions "$ksm_throttler_hash"
|
||||
|
||||
replace_list=(
|
||||
"GO_CHECKSUM=$go_checksum"
|
||||
"GO_VERSION=$go_version"
|
||||
"GO_ARCH=$GO_ARCH"
|
||||
"HASH=${HASH:0:7}"
|
||||
"RELEASE=$RELEASE"
|
||||
"REVISION=$HASH"
|
||||
"VERSION=$VERSION"
|
||||
)
|
||||
|
||||
verify
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
24
proxy/_service-template
Normal file
24
proxy/_service-template
Normal file
@@ -0,0 +1,24 @@
|
||||
<!--- XML Structure defined here: https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
|
||||
<services>
|
||||
<service name="tar_scm">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/kata-containers/proxy.git</param>
|
||||
<param name="filename">kata-proxy</param>
|
||||
<param name="versionformat">@VERSION@+git.%h</param>
|
||||
<param name="revision">@REVISION@</param>
|
||||
</service>
|
||||
<service name="recompress">
|
||||
<param name="file">*.tar*</param>
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
<service name="download_url">
|
||||
<param name="protocol">https</param>
|
||||
<param name="host">storage.googleapis.com</param>
|
||||
<param name="path">golang/go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
</service>
|
||||
<service name="verify_file">
|
||||
<param name="file">_service:download_url:go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
<param name="verifier">sha256</param>
|
||||
<param name="checksum">@GO_CHECKSUM@</param>
|
||||
</service>
|
||||
</services>
|
||||
1
proxy/debian.compat
Normal file
1
proxy/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
13
proxy/debian.control-template
Normal file
13
proxy/debian.control-template
Normal file
@@ -0,0 +1,13 @@
|
||||
Source: kata-proxy
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Build-Depends: dh-make, git, ca-certificates, execstack, devscripts, debhelper, build-essential, dh-autoreconf, make, dh-modaliases
|
||||
|
||||
Package: kata-proxy
|
||||
Architecture: @deb_arch@
|
||||
Description:
|
||||
kata-proxy works alongside the Kata Containers runtime and shim to provide a VM-based OCI runtime solution.
|
||||
kata-proxy is a daemon offering access to the hyperstart VM agent to both the runtime and shim processes.
|
||||
23
proxy/debian.rules-template
Normal file
23
proxy/debian.rules-template
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/make -f
|
||||
export DH_OPTIONS
|
||||
export DH_GOPKG:=github.com/kata-containers/proxy
|
||||
export DEB_BUILD_OPTIONS=nocheck
|
||||
export PATH:=/usr/src/packages/BUILD/local/go/bin:$(PATH)
|
||||
export GOROOT:=/usr/src/packages/BUILD/local/go
|
||||
export GOPATH=/usr/src/packages/BUILD/go
|
||||
|
||||
GO_VERSION=@GO_VERSION@
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_build:
|
||||
mkdir -p /usr/src/packages/BUILD/local/
|
||||
mkdir -p /usr/src/packages/BUILD/go/src/github.com/kata-containers/
|
||||
tar xzf /usr/src/packages/SOURCES/go$(GO_VERSION).linux-@GO_ARCH@.tar.gz -C /usr/src/packages/BUILD/local/
|
||||
ln -s /usr/src/packages/BUILD/ /usr/src/packages/BUILD/go/src/github.com/kata-containers/proxy
|
||||
cd $(GOPATH)/src/github.com/kata-containers/proxy && make
|
||||
|
||||
override_dh_auto_install:
|
||||
mkdir debian/kata-proxy
|
||||
make install LIBEXECDIR=$(shell pwd)/debian/kata-proxy/usr/libexec
|
||||
16
proxy/kata-proxy.dsc-template
Normal file
16
proxy/kata-proxy.dsc-template
Normal file
@@ -0,0 +1,16 @@
|
||||
format: 3.0 (quilt)
|
||||
Source: kata-proxy
|
||||
Version: @VERSION@+git.@HASH@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Build-Depends: dh-make, git, ca-certificates, execstack, devscripts, debhelper, build-essential, dh-autoreconf, make, dh-modaliases
|
||||
Homepage: https://katacontainers.io
|
||||
Debtransform-Tar: kata-proxy-@VERSION@+git.@HASH@.tar.gz
|
||||
|
||||
Package: kata-proxy
|
||||
Architecture: @deb_arch@
|
||||
Description:
|
||||
kata-proxy works alongside the Kata Containers runtime and shim to provide a VM-based OCI runtime solution.
|
||||
kata-proxy is a daemon offering access to the hyperstart VM agent to both the runtime and shim processes.
|
||||
84
proxy/kata-proxy.spec-template
Normal file
84
proxy/kata-proxy.spec-template
Normal file
@@ -0,0 +1,84 @@
|
||||
%global PREFIX /usr/
|
||||
%global BINDIR %{PREFIX}/bin
|
||||
%global DOMAIN github.com
|
||||
%global ORG kata-containers
|
||||
%global PROJECT proxy
|
||||
%global IMPORTNAME %{DOMAIN}/%{ORG}/%{PROJECT}
|
||||
%global GO_VERSION @GO_VERSION@
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%define LIBEXECDIR %{_libdir}
|
||||
%else
|
||||
%define LIBEXECDIR %{_libexecdir}
|
||||
%endif
|
||||
|
||||
%undefine _missing_build_ids_terminate_build
|
||||
Name: kata-proxy
|
||||
Version: @VERSION@+git.@HASH@
|
||||
Release: @RELEASE@.<B_CNT>
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: git
|
||||
Summary : No detailed summary available
|
||||
Group : Development/Tools
|
||||
License : Apache-2.0
|
||||
|
||||
Requires: kata-proxy-bin
|
||||
|
||||
#!BuildIgnore: post-build-checks
|
||||
|
||||
# Patches
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
.. contents::
|
||||
.. sectnum::
|
||||
``kata-proxy``
|
||||
===================
|
||||
Overview
|
||||
--------
|
||||
|
||||
%global debug_package %{nil}
|
||||
%define _unpackaged_files_terminate_build 0
|
||||
|
||||
%package bin
|
||||
Summary: bin components for the kata-proxy package.
|
||||
Group: Binaries
|
||||
|
||||
%description bin
|
||||
bin components for the kata-proxy package.
|
||||
|
||||
%prep
|
||||
mkdir local
|
||||
tar -C local -xzf ../SOURCES/go%{GO_VERSION}.linux-@GO_ARCH@.tar.gz
|
||||
|
||||
%setup -q
|
||||
|
||||
# Patches
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
%build
|
||||
export GOROOT=$HOME/rpmbuild/BUILD/local/go
|
||||
export PATH=$PATH:$HOME/rpmbuild/BUILD/local/go/bin
|
||||
export GOPATH=$HOME/rpmbuild/BUILD/go/
|
||||
|
||||
mkdir -p $HOME/rpmbuild/BUILD/go/src/%{DOMAIN}/%{ORG}
|
||||
ln -s %{_builddir}/%{name}-%{version} $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
cd $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
make
|
||||
|
||||
%clean
|
||||
echo "Clean build root"
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%install
|
||||
make install LIBEXECDIR=%{buildroot}%{LIBEXECDIR}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
|
||||
%files bin
|
||||
%defattr(-,root,root,-)
|
||||
%{LIBEXECDIR}/kata-containers
|
||||
%{LIBEXECDIR}/kata-containers/kata-proxy
|
||||
50
proxy/update.sh
Executable file
50
proxy/update.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
#
|
||||
# Automation script to create specs to build kata-proxy
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname "$0")
|
||||
PKG_NAME="kata-proxy"
|
||||
VERSION=$kata_proxy_version
|
||||
|
||||
GENERATED_FILES=(kata-proxy.spec kata-proxy.dsc debian.control debian.rules _service)
|
||||
STATIC_FILES=(debian.compat)
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/proxy}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
[ -n "$APIURL" ] && APIURL="-A ${APIURL}"
|
||||
|
||||
set_versions $kata_proxy_hash
|
||||
|
||||
replace_list=(
|
||||
"GO_CHECKSUM=$go_checksum"
|
||||
"GO_VERSION=$go_version"
|
||||
"GO_ARCH=$GO_ARCH"
|
||||
"HASH=$short_hashtag"
|
||||
"RELEASE=$RELEASE"
|
||||
"REVISION=$VERSION"
|
||||
"VERSION=$VERSION"
|
||||
)
|
||||
|
||||
verify
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
15
qemu-lite/_service-template
Normal file
15
qemu-lite/_service-template
Normal file
@@ -0,0 +1,15 @@
|
||||
<!--- XML Structure defined here: https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
|
||||
<services>
|
||||
<service name="tar_scm">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/kata-containers/qemu.git</param>
|
||||
<param name="exclude">.git</param>
|
||||
<param name="filename">qemu-lite</param>
|
||||
<param name="versionformat">@VERSION@+git.%h</param>
|
||||
<param name="revision">qemu-lite-@VERSION@</param>
|
||||
</service>
|
||||
<service name="recompress">
|
||||
<param name="file">*.tar*</param>
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
</services>
|
||||
1
qemu-lite/debian.compat
Normal file
1
qemu-lite/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
14
qemu-lite/debian.control-template
Normal file
14
qemu-lite/debian.control-template
Normal file
@@ -0,0 +1,14 @@
|
||||
Source: qemu-lite
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Build-Depends: debhelper (>= 9), cpio, libelf-dev, rsync, libdw-dev, pkg-config, flex, bison, libaudit-dev, bc, python-dev, gawk, autoconf, automake, libtool, libltdl-dev, libglib2.0-dev, libglib2.0-0, libcap-dev, libcap-ng-dev, libattr1-dev, m4, libnuma-dev, zlib1g-dev, libpixman-1-0, libpixman-1-dev
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
|
||||
Package: qemu-lite
|
||||
Architecture: @deb_arch@
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends},
|
||||
Description: linux kernel optimised for container-like workloads.
|
||||
Linux kernel optimised for container-like workloads
|
||||
|
||||
28
qemu-lite/debian.rules-template
Normal file
28
qemu-lite/debian.rules-template
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/make -f
|
||||
include /usr/share/dpkg/default.mk
|
||||
export LANG=C
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
chmod a+x "../SOURCES/configure-hypervisor.sh"
|
||||
eval "../SOURCES/configure-hypervisor.sh" "qemu-lite" | xargs ./configure --prefix=/usr
|
||||
|
||||
override_dh_auto_build:
|
||||
make
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
for file in $(CURDIR)/debian/qemu-lite/usr/bin/* ; do \
|
||||
dir=$$(dirname $$file) ;\
|
||||
bin=$$(basename $$file) ;\
|
||||
new=$$(echo $$bin | sed -e 's/qemu-/qemu-lite-/g' -e 's/ivshmem-/ivshmem-lite-/g' -e 's/virtfs-/virtfs-lite-/g') ;\
|
||||
mv $$file "$$dir"/"$$new" ; \
|
||||
done
|
||||
|
||||
override_dh_auto_test:
|
||||
echo "Skip auto test"
|
||||
|
||||
override_dh_auto_clean:
|
||||
echo "Skip auto clean"
|
||||
|
||||
1
qemu-lite/debian.series
Normal file
1
qemu-lite/debian.series
Normal file
@@ -0,0 +1 @@
|
||||
configure.patch
|
||||
1
qemu-lite/qemu-lite-rpmlintrc
Normal file
1
qemu-lite/qemu-lite-rpmlintrc
Normal file
@@ -0,0 +1 @@
|
||||
setBadness('arch-dependent-file-in-usr-share', 0)
|
||||
16
qemu-lite/qemu-lite.dsc-template
Normal file
16
qemu-lite/qemu-lite.dsc-template
Normal file
@@ -0,0 +1,16 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: qemu-lite
|
||||
Version: @VERSION@+git.@QEMU_LITE_HASH@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Build-Depends: debhelper (>= 9), cpio, libelf-dev, rsync, libdw-dev, pkg-config, flex, bison, libaudit-dev, bc, python-dev, gawk, autoconf, automake, libtool, libltdl-dev, libglib2.0-dev, libglib2.0-0, libcap-dev, libcap-ng-dev, libattr1-dev, m4, libnuma-dev, zlib1g-dev, libpixman-1-0, libpixman-1-dev, librbd-dev
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Debtransform-Tar: qemu-lite-@VERSION@+git.@QEMU_LITE_HASH@.tar.gz
|
||||
|
||||
Package: qemu-lite
|
||||
Architecture: @deb_arch@
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends},
|
||||
Description: QEMU is a generic and open source machine & userspace emulator and
|
||||
virtualizer.
|
||||
199
qemu-lite/qemu-lite.spec-template
Normal file
199
qemu-lite/qemu-lite.spec-template
Normal file
@@ -0,0 +1,199 @@
|
||||
%global qemu_lite_hash @QEMU_LITE_HASH@
|
||||
Name: qemu-lite
|
||||
Version: @VERSION@+git.%{qemu_lite_hash}
|
||||
Release: @RELEASE@.<B_CNT>
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Source1: qemu-lite-rpmlintrc
|
||||
Source2: configure-hypervisor.sh
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
|
||||
|
||||
Summary : OpenBIOS development utilities
|
||||
Group : Development/Tools
|
||||
License : BSD-2-Clause BSD-3-Clause GPL-2.0 GPL-2.0+ LGPL-2.0+ LGPL-2.1
|
||||
|
||||
Requires: qemu-lite-bin
|
||||
Requires: qemu-lite-data
|
||||
BuildRequires : automake
|
||||
BuildRequires : bison
|
||||
BuildRequires : flex
|
||||
BuildRequires : gcc-c++
|
||||
BuildRequires : glib2-devel
|
||||
BuildRequires : libattr-devel
|
||||
BuildRequires : libcap-devel
|
||||
BuildRequires : libcap-ng-devel
|
||||
BuildRequires : libtool
|
||||
BuildRequires : libtool-ltdl-devel
|
||||
BuildRequires : libtool
|
||||
BuildRequires : m4
|
||||
BuildRequires : findutils
|
||||
|
||||
%if 0%{?rhel_version} || 0%{?centos_version}
|
||||
BuildRequires : librbd1-devel
|
||||
%else
|
||||
BuildRequires : librbd-devel
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires : libnuma-devel
|
||||
%else
|
||||
BuildRequires : numactl-devel
|
||||
%endif
|
||||
BuildRequires : python-devel
|
||||
BuildRequires : zlib-devel
|
||||
BuildRequires : pkgconfig(pixman-1)
|
||||
|
||||
# Patches
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
===========
|
||||
QEMU is a generic and open source machine & userspace emulator and
|
||||
virtualizer.
|
||||
|
||||
%package bin
|
||||
Summary: bin components for the qemu-lite package.
|
||||
Group: Binaries
|
||||
Requires: qemu-lite-data
|
||||
|
||||
%description bin
|
||||
bin components for the qemu-lite package.
|
||||
|
||||
|
||||
%package data
|
||||
Summary: data components for the qemu-lite package.
|
||||
Group: Data
|
||||
|
||||
%description data
|
||||
data components for the qemu-lite package.
|
||||
|
||||
%global debug_package %{nil}
|
||||
|
||||
%prep
|
||||
chmod +x %{_sourcedir}/configure-hypervisor.sh
|
||||
|
||||
%setup -q
|
||||
# Patches
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
%build
|
||||
export LANG=C
|
||||
|
||||
eval "%{_sourcedir}/configure-hypervisor.sh" "qemu-lite" | xargs ./configure --prefix=/usr
|
||||
make V=1 %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
make install DESTDIR=%{buildroot}
|
||||
## make_install_append content
|
||||
for file in %{buildroot}/usr/bin/*
|
||||
do
|
||||
dir=$(dirname "$file")
|
||||
bin=$(basename "$file")
|
||||
new=$(echo "$bin"|sed -e 's/qemu-/qemu-lite-/g' -e 's/ivshmem-/ivshmem-lite-/g' -e 's/virtfs-/virtfs-lite-/g')
|
||||
mv "$file" "$dir/$new"
|
||||
done
|
||||
## make_install_append end
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
|
||||
%files bin
|
||||
%defattr(-,root,root,-)
|
||||
/usr/bin/qemu-lite-ga
|
||||
/usr/bin/qemu-lite-pr-helper
|
||||
/usr/bin/qemu-lite-system-x86_64
|
||||
/usr/bin/virtfs-lite-proxy-helper
|
||||
%dir /usr/libexec
|
||||
%dir /usr/libexec/qemu-lite
|
||||
/usr/libexec/qemu-lite/qemu-bridge-helper
|
||||
|
||||
%files data
|
||||
%defattr(-,root,root,-)
|
||||
%dir /usr/share/qemu-lite
|
||||
%dir /usr/share/qemu-lite/qemu
|
||||
%dir /usr/share/qemu-lite/qemu/keymaps
|
||||
/usr/share/qemu-lite/qemu/QEMU,cgthree.bin
|
||||
/usr/share/qemu-lite/qemu/QEMU,tcx.bin
|
||||
/usr/share/qemu-lite/qemu/acpi-dsdt.aml
|
||||
/usr/share/qemu-lite/qemu/bamboo.dtb
|
||||
/usr/share/qemu-lite/qemu/bios-256k.bin
|
||||
/usr/share/qemu-lite/qemu/bios.bin
|
||||
/usr/share/qemu-lite/qemu/efi-e1000.rom
|
||||
/usr/share/qemu-lite/qemu/efi-e1000e.rom
|
||||
/usr/share/qemu-lite/qemu/efi-eepro100.rom
|
||||
/usr/share/qemu-lite/qemu/efi-ne2k_pci.rom
|
||||
/usr/share/qemu-lite/qemu/efi-pcnet.rom
|
||||
/usr/share/qemu-lite/qemu/efi-rtl8139.rom
|
||||
/usr/share/qemu-lite/qemu/efi-virtio.rom
|
||||
/usr/share/qemu-lite/qemu/efi-vmxnet3.rom
|
||||
/usr/share/qemu-lite/qemu/keymaps/ar
|
||||
/usr/share/qemu-lite/qemu/keymaps/bepo
|
||||
/usr/share/qemu-lite/qemu/keymaps/common
|
||||
/usr/share/qemu-lite/qemu/keymaps/cz
|
||||
/usr/share/qemu-lite/qemu/keymaps/da
|
||||
/usr/share/qemu-lite/qemu/keymaps/de
|
||||
/usr/share/qemu-lite/qemu/keymaps/de-ch
|
||||
/usr/share/qemu-lite/qemu/keymaps/en-gb
|
||||
/usr/share/qemu-lite/qemu/keymaps/en-us
|
||||
/usr/share/qemu-lite/qemu/keymaps/es
|
||||
/usr/share/qemu-lite/qemu/keymaps/et
|
||||
/usr/share/qemu-lite/qemu/keymaps/fi
|
||||
/usr/share/qemu-lite/qemu/keymaps/fo
|
||||
/usr/share/qemu-lite/qemu/keymaps/fr
|
||||
/usr/share/qemu-lite/qemu/keymaps/fr-be
|
||||
/usr/share/qemu-lite/qemu/keymaps/fr-ca
|
||||
/usr/share/qemu-lite/qemu/keymaps/fr-ch
|
||||
/usr/share/qemu-lite/qemu/keymaps/hr
|
||||
/usr/share/qemu-lite/qemu/keymaps/hu
|
||||
/usr/share/qemu-lite/qemu/keymaps/is
|
||||
/usr/share/qemu-lite/qemu/keymaps/it
|
||||
/usr/share/qemu-lite/qemu/keymaps/ja
|
||||
/usr/share/qemu-lite/qemu/keymaps/lt
|
||||
/usr/share/qemu-lite/qemu/keymaps/lv
|
||||
/usr/share/qemu-lite/qemu/keymaps/mk
|
||||
/usr/share/qemu-lite/qemu/keymaps/modifiers
|
||||
/usr/share/qemu-lite/qemu/keymaps/nl
|
||||
/usr/share/qemu-lite/qemu/keymaps/nl-be
|
||||
/usr/share/qemu-lite/qemu/keymaps/no
|
||||
/usr/share/qemu-lite/qemu/keymaps/pl
|
||||
/usr/share/qemu-lite/qemu/keymaps/pt
|
||||
/usr/share/qemu-lite/qemu/keymaps/pt-br
|
||||
/usr/share/qemu-lite/qemu/keymaps/ru
|
||||
/usr/share/qemu-lite/qemu/keymaps/sl
|
||||
/usr/share/qemu-lite/qemu/keymaps/sv
|
||||
/usr/share/qemu-lite/qemu/keymaps/th
|
||||
/usr/share/qemu-lite/qemu/keymaps/tr
|
||||
/usr/share/qemu-lite/qemu/kvmvapic.bin
|
||||
/usr/share/qemu-lite/qemu/linuxboot.bin
|
||||
/usr/share/qemu-lite/qemu/linuxboot_dma.bin
|
||||
/usr/share/qemu-lite/qemu/multiboot.bin
|
||||
/usr/share/qemu-lite/qemu/openbios-ppc
|
||||
/usr/share/qemu-lite/qemu/openbios-sparc32
|
||||
/usr/share/qemu-lite/qemu/openbios-sparc64
|
||||
/usr/share/qemu-lite/qemu/palcode-clipper
|
||||
/usr/share/qemu-lite/qemu/petalogix-ml605.dtb
|
||||
/usr/share/qemu-lite/qemu/petalogix-s3adsp1800.dtb
|
||||
/usr/share/qemu-lite/qemu/ppc_rom.bin
|
||||
/usr/share/qemu-lite/qemu/pxe-e1000.rom
|
||||
/usr/share/qemu-lite/qemu/pxe-eepro100.rom
|
||||
/usr/share/qemu-lite/qemu/pxe-ne2k_pci.rom
|
||||
/usr/share/qemu-lite/qemu/pxe-pcnet.rom
|
||||
/usr/share/qemu-lite/qemu/pxe-rtl8139.rom
|
||||
/usr/share/qemu-lite/qemu/pxe-virtio.rom
|
||||
/usr/share/qemu-lite/qemu/qemu-icon.bmp
|
||||
/usr/share/qemu-lite/qemu/qemu_logo_no_text.svg
|
||||
/usr/share/qemu-lite/qemu/s390-ccw.img
|
||||
/usr/share/qemu-lite/qemu/sgabios.bin
|
||||
/usr/share/qemu-lite/qemu/slof.bin
|
||||
/usr/share/qemu-lite/qemu/spapr-rtas.bin
|
||||
/usr/share/qemu-lite/qemu/trace-events-all
|
||||
/usr/share/qemu-lite/qemu/u-boot.e500
|
||||
/usr/share/qemu-lite/qemu/vgabios-cirrus.bin
|
||||
/usr/share/qemu-lite/qemu/vgabios-qxl.bin
|
||||
/usr/share/qemu-lite/qemu/vgabios-stdvga.bin
|
||||
/usr/share/qemu-lite/qemu/vgabios-virtio.bin
|
||||
/usr/share/qemu-lite/qemu/vgabios-vmware.bin
|
||||
/usr/share/qemu-lite/qemu/vgabios.bin
|
||||
/usr/share/qemu-lite/qemu/qemu_vga.ndrv
|
||||
/usr/share/qemu-lite/qemu/s390-netboot.img
|
||||
/usr/share/qemu-lite/qemu/skiboot.lid
|
||||
44
qemu-lite/update.sh
Executable file
44
qemu-lite/update.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
|
||||
# Automation script to create specs to build kata containers kernel
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
PKG_NAME="qemu-lite"
|
||||
VERSION=$qemu_lite_version
|
||||
|
||||
GENERATED_FILES=(qemu-lite.dsc qemu-lite.spec debian.rules _service debian.control)
|
||||
STATIC_FILES=(debian.compat ../scripts/configure-hypervisor.sh qemu-lite-rpmlintrc)
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/qemu-lite}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
[ -n "$APIURL" ] && APIURL="-A ${APIURL}"
|
||||
|
||||
|
||||
replace_list=(
|
||||
"VERSION=$VERSION"
|
||||
"RELEASE=$RELEASE"
|
||||
"QEMU_LITE_HASH=${qemu_lite_hash:0:10}"
|
||||
)
|
||||
verify
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
16
qemu-vanilla/_service-template
Normal file
16
qemu-vanilla/_service-template
Normal file
@@ -0,0 +1,16 @@
|
||||
<!--- XML Structure defined here: https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
|
||||
<services>
|
||||
<service name="tar_scm">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/kata-containers/qemu.git</param>
|
||||
<param name="exclude">.git</param>
|
||||
<param name="filename">qemu-vanilla</param>
|
||||
<!--- %h in the version format is a hash from a given revision -->
|
||||
<param name="versionformat">@VERSION@+git.%h</param>
|
||||
<param name="revision">stable-@VERSION@</param>
|
||||
</service>
|
||||
<service name="recompress">
|
||||
<param name="file">*.tar*</param>
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
</services>
|
||||
1
qemu-vanilla/debian.compat
Normal file
1
qemu-vanilla/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
14
qemu-vanilla/debian.control-template
Normal file
14
qemu-vanilla/debian.control-template
Normal file
@@ -0,0 +1,14 @@
|
||||
Source: qemu-vanilla
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Build-Depends: debhelper (>= 9), cpio, libelf-dev, rsync, libdw-dev, pkg-config, flex, bison, libaudit-dev, bc, python-dev, gawk, autoconf, automake, libtool, libltdl-dev, libglib2.0-dev, libglib2.0-0, libcap-dev, libcap-ng-dev, libattr1-dev, m4, libnuma-dev, zlib1g-dev, libpixman-1-0, libpixman-1-dev
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
|
||||
Package: qemu-vanilla
|
||||
Architecture: @deb_arch@
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends},
|
||||
Description: linux kernel optimised for container-like workloads.
|
||||
Linux kernel optimised for container-like workloads
|
||||
|
||||
27
qemu-vanilla/debian.rules-template
Normal file
27
qemu-vanilla/debian.rules-template
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/make -f
|
||||
include /usr/share/dpkg/default.mk
|
||||
export LANG=C
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
chmod a+x "../SOURCES/configure-hypervisor.sh"
|
||||
eval "../SOURCES/configure-hypervisor.sh" "qemu-vanilla" | xargs ./configure --prefix=/usr
|
||||
override_dh_auto_build:
|
||||
make
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
for file in $(CURDIR)/debian/qemu-vanilla/usr/bin/* ; do \
|
||||
dir=$$(dirname $$file) ;\
|
||||
bin=$$(basename $$file) ;\
|
||||
new=$$(echo $$bin | sed -e 's/qemu-/qemu-vanilla-/g' -e 's/ivshmem-/ivshmem-vanilla-/g' -e 's/virtfs-/virtfs-vanilla-/g') ;\
|
||||
mv $$file "$$dir"/"$$new" ; \
|
||||
done
|
||||
|
||||
override_dh_auto_test:
|
||||
echo "Skip auto test"
|
||||
|
||||
override_dh_auto_clean:
|
||||
echo "Skip auto clean"
|
||||
|
||||
1
qemu-vanilla/debian.series
Normal file
1
qemu-vanilla/debian.series
Normal file
@@ -0,0 +1 @@
|
||||
configure.patch
|
||||
1
qemu-vanilla/qemu-vanilla-rpmlintrc
Normal file
1
qemu-vanilla/qemu-vanilla-rpmlintrc
Normal file
@@ -0,0 +1 @@
|
||||
setBadness('arch-dependent-file-in-usr-share', 0)
|
||||
16
qemu-vanilla/qemu-vanilla.dsc-template
Normal file
16
qemu-vanilla/qemu-vanilla.dsc-template
Normal file
@@ -0,0 +1,16 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: qemu-vanilla
|
||||
Version: @VERSION@+git.@QEMU_VANILLA_HASH@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Build-Depends: debhelper (>= 9), cpio, libelf-dev, rsync, libdw-dev, pkg-config, flex, bison, libaudit-dev, bc, python-dev, gawk, autoconf, automake, libtool, libltdl-dev, libglib2.0-dev, libglib2.0-0, libcap-dev, libcap-ng-dev, libattr1-dev, m4, libnuma-dev, zlib1g-dev, libpixman-1-0, libpixman-1-dev, librbd-dev
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Debtransform-Tar: qemu-vanilla-@VERSION@+git.@QEMU_VANILLA_HASH@.tar.gz
|
||||
|
||||
Package: qemu-vanilla
|
||||
Architecture: @deb_arch@
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends},
|
||||
Description: QEMU is a generic and open source machine & userspace emulator and
|
||||
virtualizer.
|
||||
200
qemu-vanilla/qemu-vanilla.spec-template
Normal file
200
qemu-vanilla/qemu-vanilla.spec-template
Normal file
@@ -0,0 +1,200 @@
|
||||
%global qemu_vanilla_hash @QEMU_VANILLA_HASH@
|
||||
Name: qemu-vanilla
|
||||
Version: @VERSION@+git.%{qemu_vanilla_hash}
|
||||
Release: @RELEASE@.<B_CNT>
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Source1: qemu-vanilla-rpmlintrc
|
||||
Source2: configure-hypervisor.sh
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
|
||||
|
||||
Summary : OpenBIOS development utilities
|
||||
Group : Development/Tools
|
||||
License : BSD-2-Clause BSD-3-Clause GPL-2.0 GPL-2.0+ LGPL-2.0+ LGPL-2.1
|
||||
|
||||
Requires: qemu-vanilla-bin
|
||||
Requires: qemu-vanilla-data
|
||||
BuildRequires : automake
|
||||
BuildRequires : bison
|
||||
BuildRequires : flex
|
||||
BuildRequires : gcc-c++
|
||||
BuildRequires : glib2-devel
|
||||
BuildRequires : libattr-devel
|
||||
BuildRequires : libcap-devel
|
||||
BuildRequires : libcap-ng-devel
|
||||
BuildRequires : libtool
|
||||
BuildRequires : libtool-ltdl-devel
|
||||
BuildRequires : libtool
|
||||
BuildRequires : m4
|
||||
BuildRequires : findutils
|
||||
|
||||
%if 0%{?rhel_version} || 0%{?centos_version}
|
||||
BuildRequires : librbd1-devel
|
||||
%else
|
||||
BuildRequires : librbd-devel
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires : libnuma-devel
|
||||
%else
|
||||
BuildRequires : numactl-devel
|
||||
%endif
|
||||
BuildRequires : python-devel
|
||||
BuildRequires : zlib-devel
|
||||
BuildRequires : pkgconfig(pixman-1)
|
||||
|
||||
# Patches
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
===========
|
||||
QEMU is a generic and open source machine & userspace emulator and
|
||||
virtualizer.
|
||||
|
||||
%package bin
|
||||
Summary: bin components for the qemu-vanilla package.
|
||||
Group: Binaries
|
||||
Requires: qemu-vanilla-data
|
||||
|
||||
%description bin
|
||||
bin components for the qemu-vanilla package.
|
||||
|
||||
|
||||
%package data
|
||||
Summary: data components for the qemu-vanilla package.
|
||||
Group: Data
|
||||
|
||||
%description data
|
||||
data components for the qemu-vanilla package.
|
||||
|
||||
%global debug_package %{nil}
|
||||
|
||||
%prep
|
||||
chmod +x %{_sourcedir}/configure-hypervisor.sh
|
||||
|
||||
%setup -q
|
||||
# Patches
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
%build
|
||||
export LANG=C
|
||||
|
||||
eval "%{_sourcedir}/configure-hypervisor.sh" "qemu-vanilla" | xargs ./configure --prefix=/usr
|
||||
make V=1 %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
#%make_install
|
||||
make install DESTDIR=%{buildroot}
|
||||
## make_install_append content
|
||||
for file in %{buildroot}/usr/bin/*
|
||||
do
|
||||
dir=$(dirname "$file")
|
||||
bin=$(basename "$file")
|
||||
new=$(echo "$bin"|sed -e 's/qemu-/qemu-vanilla-/g' -e 's/ivshmem-/ivshmem-vanilla-/g' -e 's/virtfs-/virtfs-vanilla-/g')
|
||||
mv "$file" "$dir/$new"
|
||||
done
|
||||
## make_install_append end
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
|
||||
%files bin
|
||||
%defattr(-,root,root,-)
|
||||
/usr/bin/qemu-vanilla-ga
|
||||
/usr/bin/qemu-vanilla-pr-helper
|
||||
/usr/bin/qemu-vanilla-system-x86_64
|
||||
/usr/bin/virtfs-vanilla-proxy-helper
|
||||
%dir /usr/libexec
|
||||
%dir /usr/libexec/qemu-vanilla
|
||||
/usr/libexec/qemu-vanilla/qemu-bridge-helper
|
||||
|
||||
%files data
|
||||
%defattr(-,root,root,-)
|
||||
%dir /usr/share/qemu-vanilla
|
||||
%dir /usr/share/qemu-vanilla/qemu
|
||||
%dir /usr/share/qemu-vanilla/qemu/keymaps
|
||||
/usr/share/qemu-vanilla/qemu/QEMU,cgthree.bin
|
||||
/usr/share/qemu-vanilla/qemu/QEMU,tcx.bin
|
||||
/usr/share/qemu-vanilla/qemu/acpi-dsdt.aml
|
||||
/usr/share/qemu-vanilla/qemu/bamboo.dtb
|
||||
/usr/share/qemu-vanilla/qemu/bios-256k.bin
|
||||
/usr/share/qemu-vanilla/qemu/bios.bin
|
||||
/usr/share/qemu-vanilla/qemu/efi-e1000.rom
|
||||
/usr/share/qemu-vanilla/qemu/efi-e1000e.rom
|
||||
/usr/share/qemu-vanilla/qemu/efi-eepro100.rom
|
||||
/usr/share/qemu-vanilla/qemu/efi-ne2k_pci.rom
|
||||
/usr/share/qemu-vanilla/qemu/efi-pcnet.rom
|
||||
/usr/share/qemu-vanilla/qemu/efi-rtl8139.rom
|
||||
/usr/share/qemu-vanilla/qemu/efi-virtio.rom
|
||||
/usr/share/qemu-vanilla/qemu/efi-vmxnet3.rom
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/ar
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/bepo
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/common
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/cz
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/da
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/de
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/de-ch
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/en-gb
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/en-us
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/es
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/et
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/fi
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/fo
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/fr
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/fr-be
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/fr-ca
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/fr-ch
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/hr
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/hu
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/is
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/it
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/ja
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/lt
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/lv
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/mk
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/modifiers
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/nl
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/nl-be
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/no
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/pl
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/pt
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/pt-br
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/ru
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/sl
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/sv
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/th
|
||||
/usr/share/qemu-vanilla/qemu/keymaps/tr
|
||||
/usr/share/qemu-vanilla/qemu/kvmvapic.bin
|
||||
/usr/share/qemu-vanilla/qemu/linuxboot.bin
|
||||
/usr/share/qemu-vanilla/qemu/linuxboot_dma.bin
|
||||
/usr/share/qemu-vanilla/qemu/multiboot.bin
|
||||
/usr/share/qemu-vanilla/qemu/openbios-ppc
|
||||
/usr/share/qemu-vanilla/qemu/openbios-sparc32
|
||||
/usr/share/qemu-vanilla/qemu/openbios-sparc64
|
||||
/usr/share/qemu-vanilla/qemu/palcode-clipper
|
||||
/usr/share/qemu-vanilla/qemu/petalogix-ml605.dtb
|
||||
/usr/share/qemu-vanilla/qemu/petalogix-s3adsp1800.dtb
|
||||
/usr/share/qemu-vanilla/qemu/ppc_rom.bin
|
||||
/usr/share/qemu-vanilla/qemu/pxe-e1000.rom
|
||||
/usr/share/qemu-vanilla/qemu/pxe-eepro100.rom
|
||||
/usr/share/qemu-vanilla/qemu/pxe-ne2k_pci.rom
|
||||
/usr/share/qemu-vanilla/qemu/pxe-pcnet.rom
|
||||
/usr/share/qemu-vanilla/qemu/pxe-rtl8139.rom
|
||||
/usr/share/qemu-vanilla/qemu/pxe-virtio.rom
|
||||
/usr/share/qemu-vanilla/qemu/qemu-icon.bmp
|
||||
/usr/share/qemu-vanilla/qemu/qemu_logo_no_text.svg
|
||||
/usr/share/qemu-vanilla/qemu/s390-ccw.img
|
||||
/usr/share/qemu-vanilla/qemu/sgabios.bin
|
||||
/usr/share/qemu-vanilla/qemu/slof.bin
|
||||
/usr/share/qemu-vanilla/qemu/spapr-rtas.bin
|
||||
/usr/share/qemu-vanilla/qemu/trace-events-all
|
||||
/usr/share/qemu-vanilla/qemu/u-boot.e500
|
||||
/usr/share/qemu-vanilla/qemu/vgabios-cirrus.bin
|
||||
/usr/share/qemu-vanilla/qemu/vgabios-qxl.bin
|
||||
/usr/share/qemu-vanilla/qemu/vgabios-stdvga.bin
|
||||
/usr/share/qemu-vanilla/qemu/vgabios-virtio.bin
|
||||
/usr/share/qemu-vanilla/qemu/vgabios-vmware.bin
|
||||
/usr/share/qemu-vanilla/qemu/vgabios.bin
|
||||
/usr/share/qemu-vanilla/qemu/qemu_vga.ndrv
|
||||
/usr/share/qemu-vanilla/qemu/s390-netboot.img
|
||||
/usr/share/qemu-vanilla/qemu/skiboot.lid
|
||||
45
qemu-vanilla/update.sh
Executable file
45
qemu-vanilla/update.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
|
||||
# Automation script to create specs to build kata containers kernel
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
PKG_NAME="qemu-vanilla"
|
||||
VERSION=$qemu_vanilla_version
|
||||
|
||||
GENERATED_FILES=(qemu-vanilla.dsc qemu-vanilla.spec debian.rules _service debian.control )
|
||||
STATIC_FILES=(debian.compat ../scripts/configure-hypervisor.sh qemu-vanilla-rpmlintrc)
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/qemu-vanilla}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
[ -n "$APIURL" ] && APIURL="-A ${APIURL}"
|
||||
|
||||
replace_list=(
|
||||
"VERSION=$VERSION"
|
||||
"RELEASE=$RELEASE"
|
||||
"QEMU_VANILLA_HASH=${qemu_vanilla_hash:0:10}"
|
||||
)
|
||||
|
||||
verify
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
26
runtime/_service-template
Normal file
26
runtime/_service-template
Normal file
@@ -0,0 +1,26 @@
|
||||
<!--- XML Structure defined here: https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
|
||||
<services>
|
||||
<!--- OBS plugin tar_scm (Source control manager) -->
|
||||
<service name="tar_scm">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/kata-containers/runtime.git</param>
|
||||
<param name="filename">kata-runtime</param>
|
||||
<!--- versionformat defines the name of the tarball. -->
|
||||
<param name="versionformat">@VERSION@+git.%h</param>
|
||||
<param name="revision">@REVISION@</param>
|
||||
</service>
|
||||
<service name="recompress">
|
||||
<param name="file">*.tar*</param>
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
<service name="download_url">
|
||||
<param name="protocol">https</param>
|
||||
<param name="host">storage.googleapis.com</param>
|
||||
<param name="path">golang/go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
</service>
|
||||
<service name="verify_file">
|
||||
<param name="file">_service:download_url:go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
<param name="verifier">sha256</param>
|
||||
<param name="checksum">@GO_CHECKSUM@</param>
|
||||
</service>
|
||||
</services>
|
||||
1
runtime/debian.compat
Normal file
1
runtime/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
16
runtime/debian.control-template
Normal file
16
runtime/debian.control-template
Normal file
@@ -0,0 +1,16 @@
|
||||
Source: kata-runtime
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Build-Depends: dh-make, git, ca-certificates, execstack, devscripts, debhelper, build-essential, dh-autoreconf, make, dh-modaliases
|
||||
|
||||
Package: kata-runtime
|
||||
Architecture: @deb_arch@
|
||||
Depends: kata-containers-image (>= @kata_osbuilder_version@), kata-linux-container (>= @linux_container_version@),
|
||||
kata-proxy (>= @kata_proxy_version@), kata-shim (>= @kata_shim_version@),
|
||||
kata-ksm-throttler(>= @ksm_throttler_version@), qemu-lite(>= @qemu_lite_version@),
|
||||
qemu-vanilla(>= @qemu_vanilla_version@)
|
||||
Description:
|
||||
An Open Containers Initiative (OCI) "runtime" that launches an Intel VT-x secured Kata Containers hypervisor, rather than a standard Linux container.
|
||||
43
runtime/debian.rules-template
Normal file
43
runtime/debian.rules-template
Normal file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/make -f
|
||||
export DH_VERBOSE = 1
|
||||
export PKG_NAME=kata-runtime
|
||||
export DOMAIN=github.com
|
||||
export ORG=kata-containers
|
||||
export PROJECT=runtime
|
||||
export IMPORTNAME=$(DOMAIN)/$(ORG)/$(PROJECT)
|
||||
export DH_GOPKG:=$(IMPORTNAME)
|
||||
export DEB_BUILD_OPTIONS=nocheck
|
||||
export PATH:=/usr/src/packages/BUILD/local/go/bin:$(PATH)
|
||||
export GOPATH=/usr/src/packages/BUILD/go
|
||||
export GOROOT=/usr/src/packages/BUILD/local/go
|
||||
export DH_OPTIONS
|
||||
|
||||
export DEFAULT_QEMU=qemu-lite-system-x86_64
|
||||
|
||||
GO_VERSION=@GO_VERSION@
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_clean:
|
||||
|
||||
override_dh_auto_build:
|
||||
mkdir -p /usr/src/packages/BUILD/local/
|
||||
mkdir -p /usr/src/packages/BUILD/go/src/$(DOMAIN)/$(ORG)/
|
||||
tar xzf /usr/src/packages/SOURCES/go$(GO_VERSION).linux-@GO_ARCH@.tar.gz -C /usr/src/packages/BUILD/local
|
||||
ln -s /usr/src/packages/BUILD /usr/src/packages/BUILD/go/src/$(IMPORTNAME)
|
||||
cd $(GOPATH)/src/$(IMPORTNAME)/; \
|
||||
make QEMUPATH=/usr/bin/$(DEFAULT_QEMU)
|
||||
|
||||
|
||||
override_dh_auto_install:
|
||||
mkdir -p debian/$(PKG_NAME)
|
||||
|
||||
cd $(GOPATH)/src/$(IMPORTNAME)/; \
|
||||
make install \
|
||||
SCRIPTS_DIR=$(shell pwd)/debian/usr/bin \
|
||||
DESTTARGET=$(shell pwd)/debian/$(PKG_NAME)/usr/bin/kata-runtime \
|
||||
QEMUPATH=/usr/bin/$(DEFAULT_QEMU) \
|
||||
DESTCONFIG=$(shell pwd)/debian/$(PKG_NAME)/usr/share/defaults/kata-containers/configuration.toml
|
||||
|
||||
sed -i -e '/^initrd =/d' $(shell pwd)/debian/$(PKG_NAME)/usr/share/defaults/kata-containers/configuration.toml
|
||||
21
runtime/kata-runtime.dsc-template
Normal file
21
runtime/kata-runtime.dsc-template
Normal file
@@ -0,0 +1,21 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: kata-runtime
|
||||
# Version is expected to be started with a digit following by an alphanumeric string
|
||||
# e.g. 1.0.0+git.1234567-1
|
||||
Version: @VERSION@+git.@HASH@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Build-Depends: dh-make, git, ca-certificates, execstack, devscripts, debhelper, build-essential, dh-autoreconf, make, dh-modaliases
|
||||
Homepage: https://katacontainers.io
|
||||
Debtransform-Tar: kata-runtime-@VERSION@+git.@HASH@.tar.gz
|
||||
|
||||
Package: kata-runtime
|
||||
Architecture: @deb_arch@
|
||||
Depends: kata-containers-image (>= @kata_osbuilder_version@), kata-linux-container (>= @linux_container_version@),
|
||||
kata-proxy (>= @kata_proxy_version@), kata-shim (>= @kata_shim_version@),
|
||||
kata-ksm-throttler(>= @ksm_throttler_version@), qemu-lite(>= @qemu_lite_version@),
|
||||
qemu-vanilla(>= @qemu_vanilla_version@)
|
||||
Description:
|
||||
An Open Containers Initiative (OCI) "runtime" that launches an Intel VT-x secured Kata Containers hypervisor, rather than a standard Linux container.
|
||||
102
runtime/kata-runtime.spec-template
Normal file
102
runtime/kata-runtime.spec-template
Normal file
@@ -0,0 +1,102 @@
|
||||
%global PREFIX /usr/
|
||||
%global BINDIR %{PREFIX}/bin
|
||||
%global DOMAIN github.com
|
||||
%global ORG kata-containers
|
||||
%global PROJECT runtime
|
||||
%global IMPORTNAME %{DOMAIN}/%{ORG}/%{PROJECT}
|
||||
%global GO_VERSION @GO_VERSION@
|
||||
|
||||
%global DEFAULT_QEMU qemu-lite-system-x86_64
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%define LIBEXECDIR %{_libdir}
|
||||
%else
|
||||
%define LIBEXECDIR %{_libexecdir}
|
||||
%endif
|
||||
|
||||
%undefine _missing_build_ids_terminate_build
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: kata-runtime
|
||||
# Version is expected to be started with a digit following by an alphanumeric string
|
||||
# e.g. 1.0.0+git.1234567
|
||||
Version: @VERSION@+git.@HASH@
|
||||
Release: @RELEASE@.<B_CNT>
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
Summary : No detailed summary available
|
||||
Group : Development/Tools
|
||||
License : Apache-2.0
|
||||
|
||||
BuildRequires: git
|
||||
%if 0%{?suse_version} && 0%{?is_opensuse}
|
||||
BuildRequires: openSUSE-release
|
||||
%endif
|
||||
|
||||
%{!?el7 || !?suse_version:Requires: qemu-lite >= @qemu_lite_obs_fedora_version@ }
|
||||
|
||||
Requires: kata-containers-image >= @kata_osbuilder_version@
|
||||
Requires: kata-linux-container >= @linux_container_version@
|
||||
Requires: kata-proxy >= @kata_proxy_version@
|
||||
Requires: kata-shim >= @kata_shim_version@
|
||||
Requires: kata-ksm-throttler >= @ksm_throttler_version@
|
||||
Requires: qemu-lite >= @qemu_lite_version@
|
||||
Requires: qemu-vanilla >= @qemu_vanilla_version@
|
||||
|
||||
# Patches
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
.. contents::
|
||||
.. sectnum::
|
||||
``kata-runtime``
|
||||
===================
|
||||
Overview
|
||||
--------
|
||||
|
||||
%prep
|
||||
mkdir local
|
||||
tar -C local -xzf ../SOURCES/go%{GO_VERSION}.linux-@GO_ARCH@.tar.gz
|
||||
# Patches
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
%setup -q
|
||||
%autosetup -S git
|
||||
|
||||
%build
|
||||
export GOROOT=$HOME/rpmbuild/BUILD/local/go
|
||||
export PATH=$PATH:$HOME/rpmbuild/BUILD/local/go/bin
|
||||
export GOPATH=$HOME/rpmbuild/BUILD/go/
|
||||
|
||||
mkdir -p $HOME/rpmbuild/BUILD/go/src/%{DOMAIN}/%{ORG}
|
||||
ln -s $HOME/rpmbuild/BUILD/kata-runtime-%{version} $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
cd $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
make QEMUPATH=/usr/bin/%{DEFAULT_QEMU}
|
||||
|
||||
%check
|
||||
export http_proxy=http://127.0.0.1:9/
|
||||
export https_proxy=http://127.0.0.1:9/
|
||||
export no_proxy=localhost
|
||||
|
||||
%install
|
||||
|
||||
export GOROOT=$HOME/rpmbuild/BUILD/local/go
|
||||
export PATH=$PATH:$HOME/rpmbuild/BUILD/local/go/bin
|
||||
export GOPATH=$HOME/rpmbuild/BUILD/go/
|
||||
|
||||
cd $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
make \
|
||||
DESTTARGET=%{buildroot}/usr/bin/kata-runtime \
|
||||
DESTCONFIG=%{buildroot}/usr/share/defaults/kata-containers/configuration.toml \
|
||||
SCRIPTS_DIR=%{buildroot}/usr/bin \
|
||||
QEMUPATH=/usr/bin/%{DEFAULT_QEMU} \
|
||||
install
|
||||
sed -i -e '/^initrd =/d' %{buildroot}/usr/share/defaults/kata-containers/configuration.toml
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
/usr/bin/kata-runtime
|
||||
/usr/bin/kata-collect-data.sh
|
||||
/usr/share/defaults/
|
||||
/usr/share/defaults/kata-containers/
|
||||
/usr/share/defaults/kata-containers/configuration.toml
|
||||
104
runtime/update.sh
Executable file
104
runtime/update.sh
Executable file
@@ -0,0 +1,104 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
#
|
||||
# Automation script to create specs to build kata-runtime
|
||||
# Default: Build is the one specified in file configure.ac
|
||||
# located at the root of the repository.
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname "$0")
|
||||
|
||||
# Package information
|
||||
# Used by pkglib.sh
|
||||
export PKG_NAME="kata-runtime"
|
||||
VERSION=$kata_runtime_version
|
||||
|
||||
# Used by pkglib
|
||||
export GENERATED_FILES=(kata-runtime.spec kata-runtime.dsc debian.control debian.rules _service)
|
||||
# Used by pkglib
|
||||
export STATIC_FILES=(debian.compat)
|
||||
|
||||
#cli flags
|
||||
LOCAL_BUILD=false
|
||||
OBS_PUSH=false
|
||||
VERBOSE=false
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
|
||||
# Package depedencies
|
||||
info "requires:"
|
||||
PROXY_RELEASE=$(get_obs_pkg_release "home:${OBS_PROJECT}:${OBS_SUBPROJECT}/proxy")
|
||||
PROXY_REQUIRED_VERESION=$(pkg_version "${kata_proxy_version}" "${PROXY_RELEASE}" "${kata_proxy_hash}")
|
||||
info "proxy ${PROXY_REQUIRED_VERESION}"
|
||||
|
||||
SHIM_RELEASE=$(get_obs_pkg_release "home:${OBS_PROJECT}:${OBS_SUBPROJECT}/shim")
|
||||
SHIM_REQUIRED_VERSION=$(pkg_version "${kata_shim_version}" "${SHIM_RELEASE}" "${kata_shim_hash}")
|
||||
info "shim ${SHIM_REQUIRED_VERSION}"
|
||||
|
||||
KERNEL_RELEASE=$(get_obs_pkg_release "home:${OBS_PROJECT}:${OBS_SUBPROJECT}/linux-container")
|
||||
KERNEL_REQUIRED_VERSION=$(pkg_version "${kernel_version}" "${KERNEL_RELEASE}")
|
||||
info "kata-linux-container ${KERNEL_REQUIRED_VERSION}"
|
||||
|
||||
KSM_THROTTLER_RELEASE=$(get_obs_pkg_release "home:${OBS_PROJECT}:${OBS_SUBPROJECT}/ksm-throttler")
|
||||
KSM_THROTTLER_REQUIRED_VERSION=$(pkg_version "${ksm_throttler_version}" "${KSM_THROTTLER_RELEASE}" "${ksm_throttler_hash}")
|
||||
info "ksm-throttler ${KSM_THROTTLER_REQUIRED_VERSION}"
|
||||
|
||||
KATA_CONTAINERS_IMAGE_RELEASE=$(get_obs_pkg_release "home:${OBS_PROJECT}:${OBS_SUBPROJECT}/kata-containers-image")
|
||||
KATA_IMAGE_REQUIRED_VERSION=$(pkg_version "${kata_osbuilder_version}" "${KATA_CONTAINERS_IMAGE_RELEASE}")
|
||||
info "image ${KATA_IMAGE_REQUIRED_VERSION}"
|
||||
|
||||
KATA_CONTAINERS_QEMU_LITE_RELEASE=$(get_obs_pkg_release "home:${OBS_PROJECT}:${OBS_SUBPROJECT}/qemu-lite")
|
||||
KATA_QEMU_LITE_REQUIRED_VERSION=$(pkg_version "${qemu_lite_version}" "${KATA_CONTAINERS_QEMU_LITE_RELEASE}")
|
||||
info "image ${KATA_QEMU_LITE_REQUIRED_VERSION}"
|
||||
|
||||
KATA_CONTAINERS_QEMU_VANILLA_RELEASE=$(get_obs_pkg_release "home:${OBS_PROJECT}:${OBS_SUBPROJECT}/qemu-vanilla")
|
||||
KATA_QEMU_VANILLA_REQUIRED_VERSION=$(pkg_version "${qemu_vanilla_version}" "${KATA_CONTAINERS_QEMU_VANILLA_RELEASE}")
|
||||
info "image ${KATA_QEMU_VANILLA_REQUIRED_VERSION}"
|
||||
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/runtime}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
|
||||
[ -n "$APIURL" ] && APIURL="-A ${APIURL}"
|
||||
|
||||
set_versions "$kata_runtime_hash"
|
||||
|
||||
replace_list=(
|
||||
"GO_CHECKSUM=$go_checksum"
|
||||
"GO_VERSION=$go_version"
|
||||
"GO_ARCH=$GO_ARCH"
|
||||
"HASH=$short_hashtag"
|
||||
"RELEASE=$RELEASE"
|
||||
"REVISION=$VERSION"
|
||||
"VERSION=$VERSION"
|
||||
"kata_osbuilder_version=${KATA_IMAGE_REQUIRED_VERSION}"
|
||||
"kata_proxy_version=${PROXY_REQUIRED_VERESION}"
|
||||
"kata_shim_version=${SHIM_REQUIRED_VERSION}"
|
||||
"ksm_throttler_version=${KSM_THROTTLER_REQUIRED_VERSION}"
|
||||
"linux_container_version=${KERNEL_REQUIRED_VERSION}"
|
||||
"qemu_lite_version=${KATA_QEMU_LITE_REQUIRED_VERSION}"
|
||||
"qemu_vanilla_version=${KATA_QEMU_VANILLA_REQUIRED_VERSION}"
|
||||
)
|
||||
|
||||
|
||||
verify
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
|
||||
17
scripts/README.md
Normal file
17
scripts/README.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Packaging scripts
|
||||
|
||||
This directory contains useful packaging scripts.
|
||||
|
||||
## `configure-hypervisor.sh`
|
||||
|
||||
This script generates the official set of QEMU-based hypervisor build
|
||||
configuration options. All repositories that need to build a hypervisor
|
||||
from source **MUST** use this script to ensure the hypervisor is built
|
||||
in a known way since using a different set of options can impact many
|
||||
areas including performance, memory footprint and security.
|
||||
|
||||
Example usage:
|
||||
|
||||
```
|
||||
$ configure-hypervisor.sh qemu-lite
|
||||
```
|
||||
@@ -133,8 +133,9 @@ check_tags()
|
||||
# options being displayed on a single line.
|
||||
show_array()
|
||||
{
|
||||
local -n _array="$1"
|
||||
local action="$2"
|
||||
local action="$1"
|
||||
local _array=("$@")
|
||||
_array=("${_array[@]:1}")
|
||||
|
||||
local -i size="${#_array[*]}"
|
||||
local -i i=1
|
||||
@@ -411,7 +412,7 @@ main()
|
||||
# Where to install data files
|
||||
qemu_options+=(misc:--datadir=/usr/share/${hypervisor})
|
||||
|
||||
show_array qemu_options "$action"
|
||||
show_array "$action" "${qemu_options[@]}"
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
352
scripts/pkglib.sh
Normal file
352
scripts/pkglib.sh
Normal file
@@ -0,0 +1,352 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This is a helper library for the setup scripts of each package
|
||||
# in this repository.
|
||||
|
||||
source ../versions.txt
|
||||
PACKAGING_DIR=/var/packaging
|
||||
LOG_DIR=${PACKAGING_DIR}/build_logs
|
||||
|
||||
# OBS Project info
|
||||
OBS_PROJECT="${OBS_PROJECT:-katacontainers}"
|
||||
OBS_SUBPROJECT="${OBS_SUBPROJECT:-release}"
|
||||
|
||||
# BUILD OPTIONS
|
||||
BUILD_DISTROS=${BUILD_DISTROS:-Fedora_27 xUbuntu_16.04 CentOS_7}
|
||||
BUILD_ARCH=${BUILD_ARCH:-}x86_64
|
||||
|
||||
COMMIT=false
|
||||
BRANCH=false
|
||||
LOCAL_BUILD=false
|
||||
OBS_PUSH=false
|
||||
VERBOSE=false
|
||||
|
||||
# Used for debian.control files
|
||||
# Architecture: The architecture specifies which type of hardware this
|
||||
# package was compiled for.
|
||||
DEB_ARCH="${DEB_ARCH:-amd64}"
|
||||
|
||||
if command -v go; then
|
||||
export GO_ARCH=$(go env GOARCH)
|
||||
else
|
||||
export GO_ARCH=amd64
|
||||
echo "Go not installed using $GO_ARCH to install go in dockerfile"
|
||||
fi
|
||||
|
||||
function display_help()
|
||||
{
|
||||
cat <<-EOL
|
||||
$SCRIPT_NAME
|
||||
|
||||
This script is intended to create Kata Containers 3.X packages for the OBS
|
||||
(Open Build Service) platform.
|
||||
|
||||
Usage:
|
||||
$SCRIPT_NAME [options]
|
||||
|
||||
Options:
|
||||
|
||||
-l --local-build Build the runtime locally
|
||||
-c --commit-id Build with a given commit ID
|
||||
-b --branch Build with a given branch name
|
||||
-p --push Push changes to OBS
|
||||
-a --api-url Especify an OBS API (e.g. custom private OBS)
|
||||
-r --obs-repository An OBS repository to push the changes.
|
||||
-w --workdir Directory of a working copy of the OBS runtime repo
|
||||
-v --verbose Set the -x flag for verbosity
|
||||
-C --clean Clean the repository
|
||||
-V --verify Verify the environment
|
||||
-h --help Display this help message
|
||||
|
||||
Usage examples:
|
||||
|
||||
$SCRIPT_NAME --local-build --branch staging
|
||||
$SCRIPT_NAME --commit-id a76f45c --push --api-url http://127.0.0.1
|
||||
$SCRIPT_NAME --commit-id a76f45c --push --obs-repository home:userx/repository
|
||||
$SCRIPT_NAME --commit-id a76f45c --push
|
||||
|
||||
EOL
|
||||
exit 1
|
||||
}
|
||||
|
||||
die()
|
||||
{
|
||||
msg="$*"
|
||||
echo >&2 "ERROR: $msg"
|
||||
exit 1
|
||||
}
|
||||
|
||||
info()
|
||||
{
|
||||
msg="$*"
|
||||
echo "INFO: $msg"
|
||||
}
|
||||
|
||||
function verify()
|
||||
{
|
||||
# This function perform some checks in order to make sure
|
||||
# the script will run flawlessly.
|
||||
|
||||
# Make sure this script is called from ./
|
||||
[ "$SCRIPT_DIR" != "." ] && die "The script must be called from its base dir."
|
||||
|
||||
# Verify if osc is installed, exit otherwise.
|
||||
[ ! -x "$(command -v osc)" ] && die "osc is not installed."
|
||||
|
||||
info "OK"
|
||||
}
|
||||
|
||||
function clean()
|
||||
{
|
||||
# This function clean generated files
|
||||
for file in "$@"
|
||||
do
|
||||
[ -e $file ] && rm -v $file
|
||||
done
|
||||
[ -e ./debian.changelog ] && git checkout ./debian.changelog
|
||||
[ -e ./release ] && git checkout ./release
|
||||
echo "Clean done."
|
||||
}
|
||||
|
||||
function get_git_info()
|
||||
{
|
||||
AUTHOR=${AUTHOR:-$(git config user.name)}
|
||||
AUTHOR_EMAIL=${AUTHOR_EMAIL:-$(git config user.email)}
|
||||
}
|
||||
|
||||
function set_versions()
|
||||
{
|
||||
local commit_hash="$1"
|
||||
|
||||
if [ -n "$OBS_REVISION" ]
|
||||
then
|
||||
# Validate input is alphanumeric, commit ID
|
||||
# If a commit ID is provided, override versions.txt one
|
||||
if [ -n "$COMMIT" ] && [[ "$OBS_REVISION" =~ ^[a-zA-Z0-9][-a-zA-Z0-9]{0,40}[a-zA-Z0-9]$ ]]; then
|
||||
hash_tag=$OBS_REVISION
|
||||
elif [ -n "$BRANCH" ]
|
||||
then
|
||||
hash_tag=$commit_hash
|
||||
fi
|
||||
else
|
||||
hash_tag=$commit_hash
|
||||
fi
|
||||
short_hashtag="${hash_tag:0:7}"
|
||||
}
|
||||
|
||||
function changelog_update {
|
||||
d=$(date -R)
|
||||
cat <<< "$PKG_NAME ($VERSION) stable; urgency=medium
|
||||
|
||||
* Update $PKG_NAME $VERSION ${hash_tag:0:7}
|
||||
|
||||
-- $AUTHOR <$AUTHOR_EMAIL> $d
|
||||
" > debian.changelog
|
||||
# Append, so it can be copied to the OBS repository
|
||||
GENERATED_FILES+=('debian.changelog')
|
||||
}
|
||||
|
||||
function local_build()
|
||||
{
|
||||
[ ! -e $PACKAGING_DIR ] && mkdir $PACKAGING_DIR
|
||||
[ ! -e $LOG_DIR ] && mkdir $LOG_DIR
|
||||
|
||||
pushd $OBS_WORKDIR
|
||||
|
||||
BUILD_ARGS=('--local-package' '--no-verify' '--noservice' '--trust-all-projects' '--keep-pkgs=/var/packaging/results')
|
||||
[ "$OFFLINE" == "true" ] && BUILD_ARGS+=('--offline')
|
||||
|
||||
osc service run
|
||||
for distro in ${BUILD_DISTROS[@]}
|
||||
do
|
||||
# If more distros are supported, add here the relevant validations.
|
||||
if [[ "$distro" =~ ^Fedora.* ]] || [[ "$distro" =~ ^CentOS.* ]]
|
||||
then
|
||||
echo "Perform a local build for ${distro}"
|
||||
osc build ${BUILD_ARGS[@]} \
|
||||
${distro} $BUILD_ARCH *.spec | tee ${LOG_DIR}/${distro}_${PKG_NAME}_build.log
|
||||
|
||||
elif [[ "$distro" =~ ^xUbuntu.* ]]
|
||||
then
|
||||
echo "Perform a local build for ${distro}"
|
||||
osc build ${BUILD_ARGS[@]} \
|
||||
${distro} $BUILD_ARCH *.dsc | tee ${LOG_DIR}/${distro}_${PKG_NAME}_build.log
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function checkout_repo()
|
||||
{
|
||||
local REPO="$1"
|
||||
if [ -z "$OBS_WORKDIR" ]
|
||||
then
|
||||
# If no workdir is provided, use a temporary directory.
|
||||
temp=$(basename $0)
|
||||
OBS_WORKDIR=$(mktemp -d -u -t ${temp}.XXXXXXXXXXX) || exit 1
|
||||
osc $APIURL co $REPO -o $OBS_WORKDIR
|
||||
fi
|
||||
|
||||
mv ${GENERATED_FILES[@]} $OBS_WORKDIR
|
||||
cp ${STATIC_FILES[@]} $OBS_WORKDIR
|
||||
}
|
||||
|
||||
|
||||
function obs_push()
|
||||
{
|
||||
pushd $OBS_WORKDIR
|
||||
osc $APIURL addremove
|
||||
osc $APIURL commit -m "Update ${PKG_NAME} $VERSION: ${hash_tag:0:7}"
|
||||
popd
|
||||
}
|
||||
|
||||
function cli()
|
||||
{
|
||||
OPTS=$(getopt -o abclprwvCVh: --long api-url,branch,commit-id,local-build,push,obs-repository,workdir,verbose,clean,verify,help -- "$@")
|
||||
while true; do
|
||||
case "${1}" in
|
||||
-a | --api-url ) APIURL="$2"; shift 2;;
|
||||
-b | --branch ) BRANCH="true"; OBS_REVISION="$2"; shift 2;;
|
||||
-c | --commit-id ) COMMIT="true"; OBS_REVISION="$2"; shift 2;;
|
||||
-l | --local-build ) LOCAL_BUILD="true"; shift;;
|
||||
-p | --push ) OBS_PUSH="true"; shift;;
|
||||
-r | --obs-repository ) PROJECT_REPO="$2"; shift 2;;
|
||||
-w | --workdir ) OBS_WORKDIR="$2"; shift 2;;
|
||||
-v | --verbose ) VERBOSE="true"; shift;;
|
||||
-o | --offline ) OFFLINE="true"; shift;;
|
||||
-C | --clean ) clean ${GENERATED_FILES[@]}; exit $?;;
|
||||
-V | --verify ) verify; exit $?;;
|
||||
-h | --help ) display_help; exit $?;;
|
||||
-- ) shift; break ;;
|
||||
* ) break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
function build_pkg()
|
||||
{
|
||||
|
||||
obs_repository="${1}"
|
||||
|
||||
[ -z "${obs_repository}" ] && die "${FUNCNAME}: obs repository not provided"
|
||||
|
||||
checkout_repo "${obs_repository}"
|
||||
|
||||
if [ "$LOCAL_BUILD" == "true" ]; then
|
||||
info "Local build"
|
||||
local_build
|
||||
fi
|
||||
|
||||
if [ "$OBS_PUSH" == "true" ]; then
|
||||
info "Push build to OBS"
|
||||
obs_push
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function generate_files () {
|
||||
|
||||
directory=$1
|
||||
replace_list=$2
|
||||
template_files=$(find $directory -type f -name "*-template")
|
||||
|
||||
replace_list+=("deb_arch=$DEB_ARCH")
|
||||
|
||||
#find_patches sets $RPM_PATCH_LIST and $RPM_PATCH_LIST
|
||||
# It also creates debian.series file
|
||||
find_patches
|
||||
replace_list+=("RPM_PATCH_LIST=$RPM_PATCH_LIST")
|
||||
replace_list+=("RPM_APPLY_PATCHES=$RPM_APPLY_PATCHES")
|
||||
|
||||
# check replace list
|
||||
# key=val
|
||||
for replace in "${replace_list[@]}" ; do
|
||||
[[ "$replace" = *"="* ]] || die "invalid replace $replace"
|
||||
local key="${replace%%=*}"
|
||||
local value="${replace##*=}"
|
||||
[ -n "$key" ] || die "${replace} key is empty"
|
||||
[ -n "$value" ] || die "${replace} val is empty"
|
||||
grep -q "@$key@" $template_files || die "@$key@ not found in any template file"
|
||||
done
|
||||
|
||||
for f in ${template_files}; do
|
||||
genfile="${f%-template}"
|
||||
cp "$f" "${genfile}"
|
||||
info "Generate file ${genfile}"
|
||||
for replace in "${replace_list[@]}" ; do
|
||||
[[ "$replace" = *"="* ]] || die "invalid replace $replace"
|
||||
local key="${replace%%=*}"
|
||||
local value="${replace##*=}"
|
||||
export k="@${key}@"
|
||||
export v="$value"
|
||||
perl -p -e 's/$ENV{k}/$ENV{v}/g' "${genfile}" > "${genfile}.out"
|
||||
mv "${genfile}.out" ${genfile}
|
||||
done
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
function pkg_version() {
|
||||
local project_version="$1"
|
||||
# Used for
|
||||
# Release: in spec file
|
||||
# DebianRevisionNumber in dsc files
|
||||
local pkg_release="$2"
|
||||
local commit_id="$3"
|
||||
[ -n "${project_version}" ] || die "${FUNCNAME}: need version"
|
||||
[ -n "${pkg_release}" ] || die "${FUNCNAME}: pkg release is needed"
|
||||
|
||||
pkg_version="${project_version}"
|
||||
|
||||
if [ -n "$commit_id" ]; then
|
||||
pkg_version+="+git.${commit_id:0:7}"
|
||||
fi
|
||||
echo "$pkg_version-${pkg_release}"
|
||||
}
|
||||
|
||||
function get_obs_pkg_release() {
|
||||
local obs_pkg_name="$1"
|
||||
local pkg
|
||||
local repo_dir
|
||||
local release
|
||||
|
||||
pkg=$(basename "${obs_pkg_name}")
|
||||
repo_dir=$(mktemp -d -u -t "${pkg}.XXXXXXXXXXX")
|
||||
|
||||
out=$(osc ${APIURL} -q co "${obs_pkg_name}" -o "${repo_dir}") || die "failed to checkout:$out"
|
||||
|
||||
spec_file=$(find "${repo_dir}" -maxdepth 1 -type f -name '*.spec' | head -1)
|
||||
release=$(grep -oP 'Release:\s+[0-9]+' "${spec_file}" | grep -oP '[0-9]+')
|
||||
|
||||
if [ -z "${release}" ]; then
|
||||
release=$(grep -oP '%define\s+release\s+[0-9]+' "${spec_file}" | grep -oP '[0-9]+')
|
||||
fi
|
||||
|
||||
|
||||
rm -r "${repo_dir}"
|
||||
echo "${release}"
|
||||
}
|
||||
|
||||
#find_patches find patches in 'patches' directory.
|
||||
# sets $RPM_PATCH_LIST and $RPM_PATCH_LIST
|
||||
# RPM_PATCH_LIST fomat:
|
||||
# Patch<number>: patch.file
|
||||
# RPM_APPLY_PATCHES fomat:
|
||||
# %Patch<number> -p1
|
||||
# It also creates debian.series file
|
||||
function find_patches() {
|
||||
export RPM_PATCH_LIST="#Patches"$'\n'
|
||||
export RPM_APPLY_PATCHES="#Apply patches"$'\n'
|
||||
[ ! -d patches ] && info "No patches found" && return
|
||||
local patches
|
||||
patches=$(find patches -type f -name '*.patch' -exec basename {} \;)
|
||||
n="1"
|
||||
rm -f debian.series
|
||||
for p in ${patches} ; do
|
||||
STATIC_FILES+=("patches/$p")
|
||||
RPM_PATCH_LIST+="Patch00${n}: $p"$'\n'
|
||||
RPM_APPLY_PATCHES+="%patch00${n} -p1"$'\n'
|
||||
echo "$p" >> debian.series
|
||||
((n++))
|
||||
done
|
||||
}
|
||||
24
shim/_service-template
Normal file
24
shim/_service-template
Normal file
@@ -0,0 +1,24 @@
|
||||
<!--- XML Structure defined here: https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
|
||||
<services>
|
||||
<service name="tar_scm">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/kata-containers/shim.git</param>
|
||||
<param name="filename">kata-shim</param>
|
||||
<param name="versionformat">@VERSION@+git.%h</param>
|
||||
<param name="revision">@REVISION@</param>
|
||||
</service>
|
||||
<service name="recompress">
|
||||
<param name="file">*.tar*</param>
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
<service name="download_url">
|
||||
<param name="protocol">https</param>
|
||||
<param name="host">storage.googleapis.com</param>
|
||||
<param name="path">golang/go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
</service>
|
||||
<service name="verify_file">
|
||||
<param name="file">_service:download_url:go@GO_VERSION@.linux-@GO_ARCH@.tar.gz</param>
|
||||
<param name="verifier">sha256</param>
|
||||
<param name="checksum">@GO_CHECKSUM@</param>
|
||||
</service>
|
||||
</services>
|
||||
1
shim/debian.compat
Normal file
1
shim/debian.compat
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
14
shim/debian.control-template
Normal file
14
shim/debian.control-template
Normal file
@@ -0,0 +1,14 @@
|
||||
Source: kata-shim
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://katacontainers.io
|
||||
Build-Depends: debhelper (>= 9), git, ca-certificates, dh-modaliases, execstack, devscripts, dh-make
|
||||
|
||||
Package: kata-shim
|
||||
Architecture: @deb_arch@
|
||||
Description:
|
||||
kata-shim is a process spawned by the Intel VT-x secured Kata Containers runtime per container workload.
|
||||
The runtime provides the pid of the kata-shim process to containerd-shim on OCI create command.
|
||||
|
||||
21
shim/debian.rules-template
Normal file
21
shim/debian.rules-template
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/make -f
|
||||
export DEB_BUILD_OPTIONS=nocheck
|
||||
export PATH:=/usr/src/packages/BUILD/local/go/bin:$(PATH)
|
||||
export GOROOT:=/usr/src/packages/BUILD/local/go
|
||||
export GOPATH=/usr/src/packages/BUILD/go
|
||||
|
||||
GO_VERSION=@GO_VERSION@
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_build:
|
||||
mkdir -p /usr/src/packages/BUILD/local/
|
||||
mkdir -p /usr/src/packages/BUILD/go/src/github.com/kata-containers/
|
||||
tar xzf /usr/src/packages/SOURCES/go$(GO_VERSION).linux-@GO_ARCH@.tar.gz -C /usr/src/packages/BUILD/local/
|
||||
ln -s /usr/src/packages/BUILD/ /usr/src/packages/BUILD/go/src/github.com/kata-containers/shim
|
||||
cd $(GOPATH)/src/github.com/kata-containers/shim && make
|
||||
|
||||
override_dh_auto_install:
|
||||
mkdir -p debian/kata-shim
|
||||
make install LIBEXECDIR=$(shell pwd)/debian/kata-shim/usr/libexec
|
||||
17
shim/kata-shim.dsc-template
Normal file
17
shim/kata-shim.dsc-template
Normal file
@@ -0,0 +1,17 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: kata-shim
|
||||
Version: @VERSION@+git.@HASH@-@RELEASE@
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Kata containers team <https://github.com/kata-containers/>
|
||||
Standards-Version: 3.9.6
|
||||
Build-Depends: debhelper (>= 9), git, ca-certificates, dh-modaliases, execstack, devscripts, dh-make
|
||||
Homepage: https://katacontainers.io
|
||||
Debtransform-Tar: kata-shim-@VERSION@+git.@HASH@.tar.gz
|
||||
|
||||
Package: kata-shim
|
||||
Architecture: @deb_arch@
|
||||
Description:
|
||||
kata-shim is a process spawned by the Intel VT-x secured Kata Containers runtime per container workload.
|
||||
The runtime provides the pid of the kata-shim process to containerd-shim on OCI create command.
|
||||
|
||||
81
shim/kata-shim.spec-template
Normal file
81
shim/kata-shim.spec-template
Normal file
@@ -0,0 +1,81 @@
|
||||
%global DOMAIN github.com
|
||||
%global ORG kata-containers
|
||||
%global PROJECT shim
|
||||
%global IMPORTNAME %{DOMAIN}/%{ORG}/%{PROJECT}
|
||||
%global GO_VERSION @GO_VERSION@
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%define LIBEXECDIR %{_libdir}
|
||||
%else
|
||||
%define LIBEXECDIR %{_libexecdir}
|
||||
%endif
|
||||
|
||||
%undefine _missing_build_ids_terminate_build
|
||||
Name: kata-shim
|
||||
Version: @VERSION@+git.@HASH@
|
||||
Release: @RELEASE@.<B_CNT>
|
||||
Summary : No detailed summary available
|
||||
Group : Development/Tools
|
||||
License : Apache-2.0
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: git
|
||||
Requires: kata-shim-bin
|
||||
|
||||
%global debug_package %{nil}
|
||||
|
||||
# Patches
|
||||
@RPM_PATCH_LIST@
|
||||
|
||||
%description
|
||||
.. contents::
|
||||
.. sectnum::
|
||||
``kata-shim``
|
||||
===================
|
||||
Overview
|
||||
--------
|
||||
|
||||
%package bin
|
||||
Summary: bin components for the kata-shim package.
|
||||
Group: Binaries
|
||||
|
||||
%description bin
|
||||
bin components for the kata-shim package.
|
||||
|
||||
%prep
|
||||
mkdir local
|
||||
tar -C local -xzf ../SOURCES/go%{GO_VERSION}.linux-@GO_ARCH@.tar.gz
|
||||
|
||||
%setup -q
|
||||
# Patches
|
||||
@RPM_APPLY_PATCHES@
|
||||
|
||||
%build
|
||||
export GOROOT=$HOME/rpmbuild/BUILD/local/go
|
||||
export PATH=$PATH:$HOME/rpmbuild/BUILD/local/go/bin
|
||||
export GOPATH=$HOME/rpmbuild/BUILD/go/
|
||||
|
||||
mkdir -p $HOME/rpmbuild/BUILD/go/src/%{DOMAIN}/%{ORG}
|
||||
ln -s %{_builddir}/%{name}-%{version} $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
cd $HOME/rpmbuild/BUILD/go/src/%{IMPORTNAME}
|
||||
make
|
||||
|
||||
%check
|
||||
export http_proxy=http://127.0.0.1:9/
|
||||
export https_proxy=http://127.0.0.1:9/
|
||||
export no_proxy=localhost
|
||||
|
||||
%install
|
||||
export GOROOT=$HOME/rpmbuild/BUILD/local/go
|
||||
export PATH=$PATH:$HOME/rpmbuild/BUILD/local/go/bin
|
||||
export GOPATH=$HOME/rpmbuild/BUILD/go/
|
||||
|
||||
make install LIBEXECDIR=%{buildroot}%{LIBEXECDIR}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
|
||||
%files bin
|
||||
%defattr(-,root,root,-)
|
||||
%{LIBEXECDIR}/kata-containers
|
||||
%{LIBEXECDIR}/kata-containers/kata-shim
|
||||
50
shim/update.sh
Executable file
50
shim/update.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2018 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
#
|
||||
# Automation script to create specs to build kata-shim
|
||||
set -e
|
||||
|
||||
source ../versions.txt
|
||||
source ../scripts/pkglib.sh
|
||||
|
||||
SCRIPT_NAME=$0
|
||||
SCRIPT_DIR=$(dirname "$0")
|
||||
PKG_NAME="kata-shim"
|
||||
VERSION=$kata_shim_version
|
||||
|
||||
GENERATED_FILES=(kata-shim.spec kata-shim.dsc _service debian.control debian.rules)
|
||||
STATIC_FILES=(debian.compat)
|
||||
|
||||
# Parse arguments
|
||||
cli "$@"
|
||||
|
||||
[ "$VERBOSE" == "true" ] && set -x
|
||||
PROJECT_REPO=${PROJECT_REPO:-home:${OBS_PROJECT}:${OBS_SUBPROJECT}/shim}
|
||||
RELEASE=$(get_obs_pkg_release "${PROJECT_REPO}")
|
||||
((RELEASE++))
|
||||
[ -n "$APIURL" ] && APIURL="-A ${APIURL}"
|
||||
|
||||
set_versions $kata_shim_hash
|
||||
replace_list=(
|
||||
"GO_CHECKSUM=$go_checksum"
|
||||
"GO_VERSION=$go_version"
|
||||
"GO_ARCH=$GO_ARCH"
|
||||
"HASH=$short_hashtag"
|
||||
"RELEASE=$RELEASE"
|
||||
"REVISION=$VERSION"
|
||||
"VERSION=$VERSION"
|
||||
)
|
||||
|
||||
verify
|
||||
echo "Verify succeed."
|
||||
get_git_info
|
||||
changelog_update $VERSION
|
||||
generate_files "$SCRIPT_DIR" "${replace_list[@]}"
|
||||
build_pkg "${PROJECT_REPO}"
|
||||
30
versions.txt
Normal file
30
versions.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
kata_runtime_hash=90e3ba602789fe67ed91acb6fbd1b3cc0f6d6d84
|
||||
kata_proxy_hash=16414149f38f7099c9afd529ebfbac335a15194a
|
||||
kata_shim_hash=2457ccc107ac46d7105254c089b240523b1701c4
|
||||
kata_agent_hash=e444fe2bbbc57fdd47dad00f369935009b094817
|
||||
ksm_throttler_hash=f47b1ec8a904424fe553426738d0c3054ae1e2e6
|
||||
qemu_lite_hash=6ba2bfbee9a80bfd03605c5eb2ca743c8b68389e
|
||||
qemu_vanilla_hash=e3050471ff1daa7fefe88388dfa4e1d97ba1f0bc
|
||||
|
||||
kata_runtime_version=0.2.0
|
||||
kata_proxy_version=0.2.0
|
||||
kata_shim_version=0.2.0
|
||||
kata_agent_version=0.2.0
|
||||
ksm_throttler_version=0.2.0
|
||||
kata_osbuilder_version=0.2.0
|
||||
qemu_lite_version=2.11.0
|
||||
qemu_vanilla_version=2.11
|
||||
kernel_version=4.14.22
|
||||
|
||||
# Default osbuilder image options
|
||||
osbuilder_default_os=clearlinux
|
||||
clearlinux_version=20640
|
||||
|
||||
# Default osbuilder initrd options
|
||||
osbuilder_default_initrd_os=alpine
|
||||
alpine_version=3.7
|
||||
|
||||
# Golang
|
||||
go_version=1.10.2
|
||||
# sha256 checksum for the go_version binary distribution ("go${go_version}.linux-amd64.tar.gz")
|
||||
go_checksum=4b677d698c65370afa33757b6954ade60347aaca310ea92a63ed717d7cb0c2ff
|
||||
Reference in New Issue
Block a user