Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 3160499aacb81f6735941eb4c372d87a > files > 482

kvm-83-164.el5_5.30.src.rpm

#!/bin/sh -e

# usage: kvm-make-release commit  (e.g. kvm-44)
#        kvm-make-release snapshot
#        kvm-make-release name kernel-commit user-commit

KVMDIR="/mnt/common/code/kvm/kvm"
KVMUSERSPACEDIR="/mnt/common/code/kvm/kvm-userspace"
RELEASEDIR="/mnt/common/tmp/kvm-releases/"

set -e

name="$1"
kcommit="$2"
ucommit="$3"
formal=""
archs=(x86 ia64 powerpc s390)

[[ "$name" = kvm-* && -z "$kcommit" ]] && formal="1"

[[ -z "$name" ]] && { echo no release name; exit 1; }

if [[ "$name" == "snapshot" ]]; then
    name="kvm-snapshot-$(TZ=UTC date +%Y%m%d)"
    kcommit="HEAD"
    ucommit="HEAD"
fi

[[ -z "$kcommit" ]] && kcommit="$name"
[[ -z "$ucommit" ]] && ucommit="$name"

tarball="$name.tar.gz"
ktarball="$name-kernel.tar"

cd "$RELEASEDIR"
(cd "$KVMUSERSPACEDIR"; git archive --format=tar --prefix="$name"/ "$ucommit") | tar x
cd "$name"
cat <<EOF > SOURCES
kernel:    $(git --git-dir="$KVMDIR/.git" rev-parse "$kcommit")
userspace: $(git --git-dir="$KVMUSERSPACEDIR/.git" rev-parse "$ucommit")
EOF
mkdir linux
cd linux

paths=(drivers/kvm virt/kvm)
files=(kvm.h kvm_host.h kvm_para.h kvm_types.h kvm_x86_emulate.h virtext.h svm.h vmx.h)
for file in "${files[@]}"; do
    for arch in "${archs[@]}"; do
	for variant in include/asm-"$arch" arch/"$arch"/include/asm; do
	    paths+=("$variant"/"$file")
	done
    done
    paths+=(include/linux/"$file")
done
for arch in "${archs[@]}"; do
    paths+=(arch/"$arch"/kvm)
done

GIT_DIR="$KVMDIR/.git" \
    git archive --prefix="${name}-kernel/" --format=tar \
        "$kcommit" "${paths[@]}" \
      | tee "$RELEASEDIR/$ktarball" | tar --strip-components 1 -x
gzip "$RELEASEDIR/$ktarball"
cd ..
touch kernel/config.kbuild
echo ARCH=ia64 > config.mak
make -C kernel sync LINUX=../linux version="$name"
echo ARCH=x86_64 > config.mak
make -C kernel sync LINUX=../linux version="$name"
rm -rf config.mak linux kernel/config.kbuild
sed -i "s/kvm-devel/$name/" qemu/configure

cd ..
tar czf "$tarball" "$name"

#if [[ "$name" = kvm-snapshot-* ]]; then
#    mv "$tarball" ~/public_html/snapshots
#elif [[ -n "$formal" ]]; then
#    rsync --progress -h "$tarball" avik@frs.sourceforge.net:uploads/
#fi

rm -rf "$name"