724a14a256
Update to rc4 of v2.9.0. Also includes a few other fixes, and a number of tweaks to the spec files. I'd be happy to answer any questions about all those spec file changes, I believe they were all in the direction of a more correct and maintainable spec file. Since this is still in rc phase, let's keep it in devel project. Final release should appear in time for Beta2 of SLE12SP3. Delta from previous: Added Alex's patch for keyboard empty event. OBS-URL: https://build.opensuse.org/request/show/487699 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=334
159 lines
5.5 KiB
Bash
159 lines
5.5 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Instead of a quilt workflow, we use a git tree that contains
|
|
# all the commits on top of a stable tarball.
|
|
#
|
|
# When updating this package, just either update the git tree
|
|
# below (use rebase!) or change the tree path and use your own
|
|
#
|
|
# That way we can easily rebase against the next stable release
|
|
# when it comes.
|
|
|
|
set -e
|
|
|
|
GIT_TREE=git://github.com/openSUSE/qemu.git
|
|
GIT_LOCAL_TREE=~/git/qemu-opensuse
|
|
GIT_BRANCH=opensuse-2.9
|
|
GIT_UPSTREAM_TAG=v2.9.0-rc4
|
|
GIT_DIR=/dev/shm/qemu-factory-git-dir
|
|
CMP_DIR=/dev/shm/qemu-factory-cmp-dir
|
|
|
|
rm -rf $GIT_DIR
|
|
rm -rf $CMP_DIR
|
|
|
|
if [ -d "$GIT_LOCAL_TREE" ]; then
|
|
echo "Processing $GIT_BRANCH branch of local git tree, using tag:" \
|
|
"$GIT_UPSTREAM_TAG"
|
|
if ! (cd $GIT_LOCAL_TREE && git show-branch $GIT_BRANCH &>/dev/null); then
|
|
echo "Error: Branch $GIT_BRANCH not found - please create a remote" \
|
|
"tracking branch of origin/$GIT_BRANCH"
|
|
exit
|
|
fi
|
|
git clone -ls $GIT_LOCAL_TREE $GIT_DIR -b $GIT_BRANCH
|
|
if ! (cd $GIT_LOCAL_TREE && git remote show upstream &>/dev/null); then
|
|
echo "Remote for upstream git tree not found. Next time add remote" \
|
|
"named upstream for git://git.qemu.org/qemu.git and update"
|
|
(cd $GIT_DIR && git remote add upstream git://git.qemu-project.org/qemu.git)
|
|
(cd $GIT_DIR && git remote update)
|
|
fi
|
|
else
|
|
echo "Processing $GIT_BRANCH branch of remote git tree, using tag:" \
|
|
"$GIT_UPSTREAM_TAG"
|
|
echo "(For much fast processing, consider establishing a local git tree" \
|
|
"at $GIT_LOCAL_TREE)"
|
|
git clone $GIT_TREE $GIT_DIR -b $GIT_BRANCH
|
|
(cd $GIT_DIR && git remote add upstream git://git.qemu-project.org/qemu.git)
|
|
(cd $GIT_DIR && git remote update)
|
|
fi
|
|
(cd $GIT_DIR && git format-patch -N $GIT_UPSTREAM_TAG --suffix= -o $CMP_DIR >/dev/null)
|
|
QEMU_VERSION=`cat $GIT_DIR/VERSION`
|
|
echo "QEMU version: $QEMU_VERSION"
|
|
|
|
rm -rf $GIT_DIR
|
|
|
|
(
|
|
CHANGED_COUNT=0
|
|
UNCHANGED_COUNT=0
|
|
DELETED_COUNT=0
|
|
ADDED_COUNT=0
|
|
|
|
shopt -s nullglob
|
|
|
|
# Process patches to eliminate useless differences: limit file names to 40 chars
|
|
# before extension and remove git signature. ('30' below gets us past dir prefix)
|
|
for i in $CMP_DIR/*; do
|
|
# format-patch may append a signature, which per default contains the git version
|
|
# wipe everything starting from the signature tag
|
|
sed '/^-- $/Q' $i > $CMP_DIR/${i:30:40}.patch
|
|
rm $i
|
|
done
|
|
|
|
for i in 0???-*.patch; do
|
|
if [ -e $CMP_DIR/$i ]; then
|
|
if cmp -s $CMP_DIR/$i $i; then
|
|
rm $CMP_DIR/$i
|
|
let UNCHANGED_COUNT+=1
|
|
else
|
|
mv $CMP_DIR/$i .
|
|
let CHANGED_COUNT+=1
|
|
fi
|
|
else
|
|
osc rm --force $i
|
|
let DELETED_COUNT+=1
|
|
echo " ${i##*/}" >> qemu.changes.deleted
|
|
fi
|
|
done
|
|
|
|
for i in $CMP_DIR/*; do
|
|
mv $i .
|
|
osc add ${i##*/}
|
|
let ADDED_COUNT+=1
|
|
echo " ${i##*/}" >> qemu.changes.added
|
|
done
|
|
|
|
for package in qemu qemu-linux-user; do
|
|
while IFS= read -r line; do
|
|
if [ "$line" = "PATCH_FILES" ]; then
|
|
for i in 0???-*.patch; do
|
|
NUM=${i%%-*}
|
|
echo -e "Patch$NUM: $i"
|
|
done
|
|
elif [ "$line" = "PATCH_EXEC" ]; then
|
|
for i in 0???-*.patch; do
|
|
NUM=${i%%-*}
|
|
echo "%patch$NUM -p1"
|
|
done
|
|
elif [ "$line" = "QEMU_VERSION" ]; then
|
|
echo "Version: $QEMU_VERSION"
|
|
elif [[ "$line" =~ ^Source: ]]; then
|
|
QEMU_TARBALL=qemu-`echo "$line" | cut -d '-' -f 2-`
|
|
VERSION_FILE=${QEMU_TARBALL%.tar.xz}/roms/seabios/.version
|
|
SEABIOS_VERSION=`tar JxfO "$QEMU_TARBALL" "$VERSION_FILE"`
|
|
SEABIOS_VERSION=`echo $SEABIOS_VERSION | cut -d '-' -f 2`
|
|
echo "$line"
|
|
elif [ "$line" = "SEABIOS_VERSION" ]; then
|
|
echo "Version: $SEABIOS_VERSION"
|
|
else
|
|
echo "$line"
|
|
fi
|
|
done < $package.spec.in > $package.spec
|
|
|
|
# Factory requires all deleted and added patches to be mentioned
|
|
if [ -e qemu.changes.deleted ] || [ -e qemu.changes.added ]; then
|
|
echo "Patch queue updated from ${GIT_TREE} ${GIT_BRANCH}" > $package.changes.proposed
|
|
fi
|
|
if [ -e qemu.changes.deleted ]; then
|
|
echo "* Patches dropped:" >> $package.changes.proposed
|
|
cat qemu.changes.deleted >> $package.changes.proposed
|
|
fi
|
|
if [ -e qemu.changes.added ]; then
|
|
echo "* Patches added:" >> $package.changes.proposed
|
|
cat qemu.changes.added >> $package.changes.proposed
|
|
fi
|
|
if [ -e $package.changes.proposed ]; then
|
|
osc vc --file=$package.changes.proposed $package
|
|
rm -f $package.changes.proposed
|
|
fi
|
|
done
|
|
if [ -e qemu.changes.deleted ]; then
|
|
rm -f qemu.changes.deleted
|
|
fi
|
|
if [ -e qemu.changes.added ]; then
|
|
rm -f qemu.changes.added
|
|
fi
|
|
echo "git patch summary"
|
|
echo " unchanged: $UNCHANGED_COUNT"
|
|
echo " changed: $CHANGED_COUNT"
|
|
echo " deleted: $DELETED_COUNT"
|
|
echo " added: $ADDED_COUNT"
|
|
)
|
|
|
|
rm -rf $CMP_DIR
|
|
|
|
sed -e 's|^\(Name:.*qemu\)|\1-testsuite|' < qemu.spec > qemu-testsuite.spec
|
|
osc service localrun format_spec_file
|
|
|
|
/bin/sh pre_checkin.sh -q
|
|
|
|
echo "Please remember to run pre_checkin.sh after modifying qemu.changes."
|