summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packaging/baselibs.conf7
-rw-r--r--packaging/bridge.conf11
-rw-r--r--packaging/qemu.changes17
-rw-r--r--packaging/qemu.spec218
-rw-r--r--packaging/qemu.spec.in289
-rw-r--r--packaging/qemu.spec.manifest5
-rw-r--r--packaging/rpmlintrc5
-rw-r--r--packaging/update_git.sh105
8 files changed, 657 insertions, 0 deletions
diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf
new file mode 100644
index 000000000..d1a8ff3bd
--- /dev/null
+++ b/packaging/baselibs.conf
@@ -0,0 +1,7 @@
+arch i686 targets armv7l:cross-arm
+
+
+targettype cross-arm package qemu-linux-user
+ autoreqprov off
+ extension -cross
+ +/
diff --git a/packaging/bridge.conf b/packaging/bridge.conf
new file mode 100644
index 000000000..d06c62a33
--- /dev/null
+++ b/packaging/bridge.conf
@@ -0,0 +1,11 @@
+# Access control file for qemu bridge helper
+# Syntax consists of:
+# # comment (ignored)
+# allow all
+# allow <bridge_name>
+# deny all
+# deny <bridge_name>
+# include /path/to/additional/ACL/file
+# Users are blacklisted by default and 'deny' takes precedence over 'allow'.
+# Including additional ACL files allows file access permissions to be used as
+# a component of the policy to allow access or deny access to specific bridges.
diff --git a/packaging/qemu.changes b/packaging/qemu.changes
new file mode 100644
index 000000000..cd216d07a
--- /dev/null
+++ b/packaging/qemu.changes
@@ -0,0 +1,17 @@
+* Fri Sep 05 2014 Chanho Park <chanho61.park@samsung.com> upstream/2.1.0-41-g924386e
+- Imported Upstream version 2.1.0
+
+* Wed Aug 28 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130828.112706@2c24165
+- add baselibs.conf
+- fixed group and license
+- resetting manifest requested domain to floor
+
+* Sat May 11 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130509.183841@5388c0d
+- Set license using %license
+
+* Wed Apr 17 2013 Patrick McCarty <patrick.mccarty@linux.intel.com> 1127a7e
+- (TZPC-970) Enable SDL display support
+
+* Tue Jan 15 2013 Anas Nashif <anas.nashif@intel.com> upstream/1.3.0@4698b64
+- Update to 1.3
+
diff --git a/packaging/qemu.spec b/packaging/qemu.spec
new file mode 100644
index 000000000..d18243626
--- /dev/null
+++ b/packaging/qemu.spec
@@ -0,0 +1,218 @@
+Name: qemu
+Url: http://www.qemu.org/
+Summary: Universal CPU emulator
+License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
+Group: System/Utilities
+Version: 2.1.0
+Release: 0
+Source: %name-%version.tar.bz2
+# this is to make lint happy
+Source300: rpmlintrc
+Source302: bridge.conf
+Source303: baselibs.conf
+Source400: update_git.sh
+BuildRequires: bison
+BuildRequires: curl-devel
+BuildRequires: e2fsprogs-devel
+BuildRequires: libattr-devel
+BuildRequires: libcap-devel
+BuildRequires: libcap-ng-devel
+BuildRequires: libgnutls-devel
+BuildRequires: libjpeg8-devel
+BuildRequires: libpng-devel
+BuildRequires: ncurses-devel
+# we must not install the qemu package when under qemu build
+%if 0%{?qemu_user_space_build:1}
+BuildRequires: -post-build-checks
+%endif
+BuildRequires: zlib-devel-static
+BuildRequires: glibc-devel-static
+BuildRequires: libattr-devel-static
+BuildRequires: glib2-devel-static
+BuildRequires: pcre-devel-static
+BuildRequires: fdupes
+BuildRequires: glib2-devel
+BuildRequires: pwdutils
+BuildRequires: python
+BuildRequires: pkgconfig(sdl)
+Requires: /usr/sbin/groupadd
+Requires: pwdutils
+Requires: timezone
+
+%description
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+%package tools
+Summary: Universal CPU emulator -- Tools
+Provides: qemu:%_libexecdir/qemu-bridge-helper
+
+%description tools
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+This sub-package contains various tools, including a bridge helper.
+
+%package guest-agent
+Summary: Universal CPU emulator -- Guest agent
+Provides: qemu:%_bindir/qemu-ga
+
+%description guest-agent
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+This sub-package contains the guest agent.
+
+%package linux-user
+Summary: Universal CPU emulator -- Linux User binaries
+Provides: qemu:%_bindir/qemu-arm
+
+%description linux-user
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+This sub-package contains statically linked binaries for running linux-user
+emulations. This can be used together with the OBS build script to
+run cross-architecture builds.
+
+%prep
+%setup -q -n %name-%version
+
+%build
+export QEMU_OPT_FLAGS="$QEMU_OPT_FLAGS -Wno-error=type-limits"
+# build QEMU
+mkdir -p dynamic
+# build qemu-system
+./configure --prefix=%_prefix \
+ --sysconfdir=%_sysconfdir \
+ --libexecdir=%_libexecdir \
+ --enable-curl \
+ --enable-virtfs \
+ --enable-attr \
+ --disable-linux-aio \
+ --extra-cflags="$QEMU_OPT_FLAGS" \
+ --enable-system \
+ --disable-linux-user \
+ --enable-sdl
+
+make %{?jobs:-j%jobs} V=1
+mv *-softmmu/qemu-system-* dynamic
+mv qemu-io qemu-img qemu-nbd qemu-bridge-helper dynamic
+#mv qemu-img.1 qemu-nbd.8 dynamic
+mv qemu-ga dynamic
+mv fsdev/virtfs-proxy-helper dynamic
+make clean
+# build userland emus
+./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
+ --libexecdir=%_libexecdir \
+ --enable-linux-user \
+ --disable-system \
+ --enable-attr \
+ --static --disable-linux-aio \
+ --extra-cflags="$QEMU_OPT_FLAGS"
+make %{?jobs:-j%jobs} V=1
+
+%install
+make install DESTDIR=$RPM_BUILD_ROOT
+rm -fr $RPM_BUILD_ROOT/%_datadir/doc
+install -m 755 dynamic/qemu-system-* $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-io $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-img $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-nbd $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-ga $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/virtfs-proxy-helper $RPM_BUILD_ROOT/%_bindir
+install -d -m 755 $RPM_BUILD_ROOT/%_sbindir
+install -m 755 scripts/qemu-binfmt-conf.sh $RPM_BUILD_ROOT/%_sbindir
+install -d -m 755 $RPM_BUILD_ROOT/%_libexecdir
+install -m 755 dynamic/qemu-bridge-helper $RPM_BUILD_ROOT/%_libexecdir
+install -d -m 755 $RPM_BUILD_ROOT/%_mandir/man1
+install -D -m 644 %{SOURCE302} $RPM_BUILD_ROOT/%{_sysconfdir}/qemu/bridge.conf
+%ifnarch %ix86 x86_64
+ln -sf ../../../emul/ia32-linux $RPM_BUILD_ROOT/usr/share/qemu/qemu-i386
+%endif
+%ifnarch ia64
+mkdir -p $RPM_BUILD_ROOT/emul/ia32-linux
+%endif
+%fdupes -s $RPM_BUILD_ROOT
+
+%clean
+rm -rf ${RPM_BUILD_ROOT}
+
+%pre
+%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm 2>/dev/null
+%{_bindir}/getent group qemu >/dev/null || %{_sbindir}/groupadd -r qemu 2>/dev/null
+%{_bindir}/getent passwd qemu >/dev/null || \
+ %{_sbindir}/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \
+ -c "qemu user" qemu
+
+%files
+%license COPYING
+%defattr(-, root, root)
+%doc COPYING COPYING.LIB Changelog README VERSION
+%_bindir/qemu-system-*
+%_datadir/%name
+%ifnarch %ix86 x86_64 ia64
+%dir /emul/ia32-linux
+%endif
+%dir %_sysconfdir/%name
+%config %_sysconfdir/%name/target-x86_64.conf
+
+%files tools
+%defattr(-, root, root)
+%_bindir/qemu-io
+%_bindir/qemu-img
+%_bindir/qemu-nbd
+%_bindir/virtfs-proxy-helper
+%verify(not mode) %_libexecdir/qemu-bridge-helper
+%dir %_sysconfdir/%name
+%config %_sysconfdir/%name/bridge.conf
+
+%files guest-agent
+%defattr(-, root, root)
+%attr(755,root,kvm) %_bindir/qemu-ga
+
+%files linux-user
+%defattr(-, root, root)
+%_bindir/qemu-alpha
+%_bindir/qemu-aarch64
+%_bindir/qemu-arm
+%_bindir/qemu-armeb
+%_bindir/qemu-cris
+%_bindir/qemu-i386
+%_bindir/qemu-m68k
+%_bindir/qemu-microblaze
+%_bindir/qemu-microblazeel
+%_bindir/qemu-mips
+%_bindir/qemu-mips64
+%_bindir/qemu-mips64el
+%_bindir/qemu-mipsel
+%_bindir/qemu-mipsn32
+%_bindir/qemu-mipsn32el
+%_bindir/qemu-or32
+%_bindir/qemu-ppc64abi32
+%_bindir/qemu-ppc64
+%_bindir/qemu-ppc
+%_bindir/qemu-s390x
+%_bindir/qemu-sh4
+%_bindir/qemu-sh4eb
+%_bindir/qemu-sparc32plus
+%_bindir/qemu-sparc64
+%_bindir/qemu-sparc
+%_bindir/qemu-unicore32
+%_bindir/qemu-x86_64
+%_bindir/qemu-*-binfmt
+%_sbindir/qemu-binfmt-conf.sh
+
+%changelog
diff --git a/packaging/qemu.spec.in b/packaging/qemu.spec.in
new file mode 100644
index 000000000..57a2ba620
--- /dev/null
+++ b/packaging/qemu.spec.in
@@ -0,0 +1,289 @@
+#
+# spec file for package qemu
+#
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+
+Name: qemu
+Url: http://www.qemu.org/
+Summary: Universal CPU emulator
+License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ ; MIT
+Group: System/Emulators/PC
+Version: 1.2.0
+Release: 0
+Source: %name-%version.tar.bz2
+PATCH_FILES
+# this is to make lint happy
+Source300: rpmlintrc
+Source302: bridge.conf
+Source400: update_git.sh
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: SDL-devel
+BuildRequires: bison
+BuildRequires: bluez-devel
+BuildRequires: curl-devel
+BuildRequires: cyrus-sasl-devel
+BuildRequires: e2fsprogs-devel
+BuildRequires: libaio
+BuildRequires: libaio-devel
+BuildRequires: libattr-devel
+BuildRequires: libcap-devel
+BuildRequires: libcap-ng-devel
+BuildRequires: libgnutls-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpcap-devel
+BuildRequires: libpng-devel
+BuildRequires: mozilla-nss-devel >= 3.12.8
+BuildRequires: ncurses-devel
+# we must not install the qemu package when under qemu build
+%if 0%{?qemu_user_space_build:1}
+BuildRequires: -post-build-checks
+%endif
+%if 0%{?suse_version} >= 1120
+BuildRequires: zlib-devel-static
+%else
+BuildRequires: zlib-devel
+%endif
+%if 0%{?suse_version} >= 1210
+BuildRequires: glibc-devel-static
+BuildRequires: libattr-devel-static
+BuildRequires: libfdt1-devel
+%endif
+%if 0%{?suse_version} >= 1140
+BuildRequires: glib2-devel-static
+%endif
+%if 0%{?suse_version} >= 1220
+BuildRequires: pcre-devel-static
+%endif
+%if 0%{?suse_version} >= 1130
+%ifarch %ix86 x86_64
+BuildRequires: libspice-server-devel
+BuildRequires: spice-protocol-devel
+%endif
+%endif
+%ifarch ppc ppc64
+#we need that for -M pseries support in SLES
+BuildRequires: libfdt1-devel
+%endif
+BuildRequires: fdupes
+BuildRequires: glib2-devel
+BuildRequires: libvdeplug3-devel
+BuildRequires: pwdutils
+BuildRequires: python
+Requires: /usr/sbin/groupadd
+Requires: pwdutils
+Requires: timezone
+Recommends: qemu-tools
+
+%description
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+%package tools
+Summary: Universal CPU emulator -- Tools
+Group: System/Emulators/PC
+Provides: qemu:%_libexecdir/qemu-bridge-helper
+PreReq: permissions
+
+%description tools
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+This sub-package contains various tools, including a bridge helper.
+
+%package guest-agent
+Summary: Universal CPU emulator -- Guest agent
+Group: System/Emulators/PC
+Provides: qemu:%_bindir/qemu-ga
+
+%description guest-agent
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+This sub-package contains the guest agent.
+
+%package linux-user
+Summary: Universal CPU emulator -- Linux User binaries
+Group: System/Emulators/PC
+Provides: qemu:%_bindir/qemu-arm
+
+%description linux-user
+QEMU is an extremely well-performing CPU emulator that allows you to
+choose between simulating an entire system and running userspace
+binaries for different architectures under your native operating
+system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well
+as PC and PowerMac systems.
+
+This sub-package contains statically linked binaries for running linux-user
+emulations. This can be used together with the OBS build script to
+run cross-architecture builds.
+
+%prep
+%setup -q -n %name-%version
+PATCH_EXEC
+
+%build
+# build QEMU
+mkdir -p dynamic
+# build qemu-system
+./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
+ --libexecdir=%_libexecdir \
+ --audio-card-list="ac97 es1370 sb16 cs4231a adlib gus" \
+ --audio-drv-list="alsa sdl" --enable-mixemu --enable-vde \
+ --enable-curl \
+ --enable-virtfs \
+ --extra-cflags="$QEMU_OPT_FLAGS" --enable-system --disable-linux-user \
+%if 0%{?suse_version} >= 1130
+%ifarch %ix86 x86_64
+ --enable-spice
+%else
+ --disable-spice
+%endif
+%else
+ --disable-spice
+%endif
+make %{?jobs:-j%jobs} V=1
+mv *-softmmu/qemu-system-* dynamic
+mv qemu-io qemu-img qemu-nbd qemu-bridge-helper dynamic
+mv qemu-img.1 qemu-nbd.8 dynamic
+mv qemu-ga dynamic
+mv fsdev/virtfs-proxy-helper{,.1} dynamic
+make clean
+# build userland emus
+./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
+ --libexecdir=%_libexecdir \
+ --enable-linux-user \
+ --disable-system \
+ --static --disable-linux-aio \
+ --extra-cflags="$QEMU_OPT_FLAGS"
+%if 0%{?suse_version} == 1140
+# -lrt needs to come after -lglib-2.0 to avoid undefined clock_gettime
+sed -i "s/-lglib-2.0/-lglib-2.0 -lrt/" config-host.mak
+%endif
+make %{?jobs:-j%jobs} V=1
+
+%install
+make install DESTDIR=$RPM_BUILD_ROOT
+rm -fr $RPM_BUILD_ROOT/%_datadir/doc
+install -m 755 dynamic/qemu-system-* $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-io $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-img $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-nbd $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/qemu-ga $RPM_BUILD_ROOT/%_bindir
+install -m 755 dynamic/virtfs-proxy-helper $RPM_BUILD_ROOT/%_bindir
+install -d -m 755 $RPM_BUILD_ROOT/%_sbindir
+install -m 755 scripts/qemu-binfmt-conf.sh $RPM_BUILD_ROOT/%_sbindir
+install -d -m 755 $RPM_BUILD_ROOT/%_libexecdir
+install -m 755 dynamic/qemu-bridge-helper $RPM_BUILD_ROOT/%_libexecdir
+install -d -m 755 $RPM_BUILD_ROOT/%_mandir/man1
+install -m 644 dynamic/qemu-img.1 $RPM_BUILD_ROOT/%_mandir/man1
+install -m 644 dynamic/virtfs-proxy-helper.1 $RPM_BUILD_ROOT/%_mandir/man1
+install -d -m 755 $RPM_BUILD_ROOT/%_mandir/man8
+install -m 644 dynamic/qemu-nbd.8 $RPM_BUILD_ROOT/%_mandir/man8
+install -D -m 644 %{SOURCE302} $RPM_BUILD_ROOT/%{_sysconfdir}/qemu/bridge.conf
+%ifnarch %ix86 x86_64
+ln -sf ../../../emul/ia32-linux $RPM_BUILD_ROOT/usr/share/qemu/qemu-i386
+%endif
+%ifnarch ia64
+mkdir -p $RPM_BUILD_ROOT/emul/ia32-linux
+%endif
+%fdupes -s $RPM_BUILD_ROOT
+
+%clean
+rm -rf ${RPM_BUILD_ROOT}
+
+%pre
+%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm 2>/dev/null
+%{_bindir}/getent group qemu >/dev/null || %{_sbindir}/groupadd -r qemu 2>/dev/null
+%{_bindir}/getent passwd qemu >/dev/null || \
+ %{_sbindir}/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \
+ -c "qemu user" qemu
+
+%if 0%{?suse_version} >= 1130
+%post tools
+%set_permissions %_libexecdir/qemu-bridge-helper
+
+%verifyscript tools
+%verify_permissions %_libexecdir/qemu-bridge-helper
+%endif
+
+%files
+%defattr(-, root, root)
+%doc COPYING COPYING.LIB Changelog README TODO VERSION qemu-doc.html qemu-tech.html
+%_bindir/qemu-system-*
+%doc %_mandir/man1/qemu.1.gz
+%_datadir/%name
+%ifnarch %ix86 x86_64 ia64
+%dir /emul/ia32-linux
+%endif
+%dir %_sysconfdir/%name
+%config %_sysconfdir/%name/target-x86_64.conf
+
+%files tools
+%defattr(-, root, root)
+%doc %_mandir/man1/qemu-img.1.gz
+%doc %_mandir/man1/virtfs-proxy-helper.1.gz
+%doc %_mandir/man8/qemu-nbd.8.gz
+%_bindir/qemu-io
+%_bindir/qemu-img
+%_bindir/qemu-nbd
+%_bindir/virtfs-proxy-helper
+%verify(not mode) %_libexecdir/qemu-bridge-helper
+%dir %_sysconfdir/%name
+%config %_sysconfdir/%name/bridge.conf
+
+%files guest-agent
+%defattr(-, root, root)
+%attr(755,root,kvm) %_bindir/qemu-ga
+
+%files linux-user
+%defattr(-, root, root)
+%_bindir/qemu-alpha
+%_bindir/qemu-arm
+%_bindir/qemu-armeb
+%_bindir/qemu-cris
+%_bindir/qemu-i386
+%_bindir/qemu-m68k
+%_bindir/qemu-microblaze
+%_bindir/qemu-microblazeel
+%_bindir/qemu-mips
+%_bindir/qemu-mipsel
+%_bindir/qemu-mipsn32
+%_bindir/qemu-mipsn32el
+%_bindir/qemu-or32
+%_bindir/qemu-ppc64abi32
+%_bindir/qemu-ppc64
+%_bindir/qemu-ppc
+%_bindir/qemu-s390x
+%_bindir/qemu-sh4
+%_bindir/qemu-sh4eb
+%_bindir/qemu-sparc32plus
+%_bindir/qemu-sparc64
+%_bindir/qemu-sparc
+%_bindir/qemu-unicore32
+%_bindir/qemu-x86_64
+%_bindir/qemu-*-binfmt
+%_sbindir/qemu-binfmt-conf.sh
+
+%changelog
diff --git a/packaging/qemu.spec.manifest b/packaging/qemu.spec.manifest
new file mode 100644
index 000000000..017d22d3a
--- /dev/null
+++ b/packaging/qemu.spec.manifest
@@ -0,0 +1,5 @@
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
diff --git a/packaging/rpmlintrc b/packaging/rpmlintrc
new file mode 100644
index 000000000..66f5a92d9
--- /dev/null
+++ b/packaging/rpmlintrc
@@ -0,0 +1,5 @@
+# This line is mandatory to access the configuration functions
+from Config import *
+
+addFilter("arch-dependent-file-in-usr-share")
+
diff --git a/packaging/update_git.sh b/packaging/update_git.sh
new file mode 100644
index 000000000..9583f1c8d
--- /dev/null
+++ b/packaging/update_git.sh
@@ -0,0 +1,105 @@
+#!/bin/bash -e
+#
+# While updating versions of QEMU to 1.0 I got fed up with the
+# quilt workflow and just put up 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.
+
+GIT_TREE=git://github.com/openSUSE/qemu.git
+GIT_LOCAL_TREE=~/git/qemu-opensuse
+GIT_BRANCH=opensuse-2.0
+GIT_UPSTREAM_TAG=v2.0.0
+QEMU_TMP=/dev/shm/qemu-tmp
+
+restore_file_to_package() {
+# If the processed file matches the previous one, move the previous
+# one back in place, otherwise add the processed file.
+
+ if cmp -s "$1" saved."$1"; then
+ osc mv --force saved."$1" "$1"
+ else
+ osc add "$1"
+ fi
+}
+
+# save files in case they remain unchanged
+if [ -e 0001-* ]; then
+ for i in 0*; do
+ osc mv $i saved.$i
+ done
+fi
+osc mv qemu.spec saved.qemu.spec
+osc mv qemu-linux-user.spec saved.qemu-linux-user.spec
+
+# fetch all patches
+rm -rf $QEMU_TMP
+OSCDIR="$(pwd)"
+if [ -d "$GIT_LOCAL_TREE" ]; then
+ git clone -ls $GIT_LOCAL_TREE $QEMU_TMP
+ cd $QEMU_TMP
+else
+ git clone $GIT_TREE $QEMU_TMP
+ cd $QEMU_TMP
+ git remote add upstream git://git.qemu.org/qemu.git
+ git remote update
+fi
+git checkout $GIT_BRANCH
+git format-patch -N $GIT_UPSTREAM_TAG -o "$OSCDIR"
+QEMU_VERSION=`cat VERSION`
+cd "$OSCDIR"
+rm -rf $QEMU_TMP
+
+# cut off file name after 40 bytes, so we work around git version differences
+# while at it, also remove the signature.
+for i in 0*; do
+ PATCHNAME=${i%.patch}
+ PATCHNAME=${PATCHNAME:0:40}.patch
+ head -n $(expr $(wc -l $i | cut -d ' ' -f 1) - 3) $i > "$PATCHNAME.tmp"
+ rm "$i"
+ mv "$PATCHNAME.tmp" "$PATCHNAME"
+ restore_file_to_package "$PATCHNAME"
+done
+
+# we have all patches as files now - generate the spec files!
+for package in qemu qemu-linux-user; do
+ while IFS= read -r line; do
+ if [ "$line" = "PATCH_FILES" ]; then
+ for i in 0*; do
+ NUM=${i%%-*}
+ echo -e "Patch$NUM: $i"
+ done
+ elif [ "$line" = "PATCH_EXEC" ]; then
+ for i in 0*; 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.bz2}/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
+done
+
+restore_file_to_package qemu.spec
+restore_file_to_package qemu-linux-user.spec
+
+# remove any remaining saved files
+files=(saved.*)
+if [ -e "${files[0]}" ]; then
+ osc rm --force saved.*
+fi
+