[Spice-devel] [spice-gtk] Add spec files

Christophe Fergeau cfergeau at redhat.com
Thu Apr 16 03:09:18 PDT 2015


They can be used to build spice-gtk / mingw-spice-gtk RPM packages.
These spec files are based off the .spec used in Fedora
---
 configure.ac                 |   2 +
 data/Makefile.am             |   8 ++
 data/mingw-spice-gtk.spec.in | 279 +++++++++++++++++++++++++++++++++++++++++++
 data/spice-gtk.spec.in       | 256 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 545 insertions(+)
 create mode 100644 data/mingw-spice-gtk.spec.in
 create mode 100644 data/spice-gtk.spec.in

diff --git a/configure.ac b/configure.ac
index cf5a039..c6c82ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -745,6 +745,8 @@ spice-client-gtk-3.0.pc
 spice-controller.pc
 data/Makefile
 data/spicy.nsis
+data/spice-gtk.spec
+data/mingw-spice-gtk.spec
 po/Makefile.in
 gtk/Makefile
 gtk/spice-version.h
diff --git a/data/Makefile.am b/data/Makefile.am
index a289c23..82f4ba1 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,13 +1,21 @@
 NULL=
 
 EXTRA_DIST =					\
+	mingw-spice-gtk.spec			\
 	spicy.nsis				\
+	spice-gtk.spec				\
 	spice-protocol.vapi			\
 	gtkrc					\
 	$(desktop_in_files)			\
 	org.spice-space.lowlevelusbaccess.policy \
 	$(NULL)
 
+DISTCLEAN_FILES =				\
+	mingw-spice-gtk.spec			\
+	spice-gtk.spec				\
+	$(NULL)
+
+
 vapidir = $(VAPIDIR)
 vapi_DATA = spice-protocol.vapi
 
diff --git a/data/mingw-spice-gtk.spec.in b/data/mingw-spice-gtk.spec.in
new file mode 100644
index 0000000..c27e91e
--- /dev/null
+++ b/data/mingw-spice-gtk.spec.in
@@ -0,0 +1,279 @@
+%{?mingw_package_header}
+
+Name:           mingw-spice-gtk
+Version:        @VERSION@
+Release:        1%{?dist}
+Summary:        A GTK+ widget for SPICE clients
+
+License:        LGPLv2+
+URL:            http://spice-space.org/page/Spice-Gtk
+Source0:        http://www.spice-space.org/download/gtk/spice-gtk-%{version}%{?_version_suffix}.tar.bz2
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildArch: noarch
+
+BuildRequires: mingw32-filesystem >= 95
+BuildRequires: mingw64-filesystem >= 95
+BuildRequires: mingw32-gcc
+BuildRequires: mingw64-gcc
+BuildRequires: mingw32-binutils
+BuildRequires: mingw64-binutils
+BuildRequires: glib2-devel
+
+BuildRequires: mingw32-gtk2 >= 2.14
+BuildRequires: mingw64-gtk2 >= 2.14
+BuildRequires: mingw32-gtk3 >= 2.91.3
+BuildRequires: mingw64-gtk3 >= 2.91.3
+BuildRequires: mingw32-pixman
+BuildRequires: mingw64-pixman
+BuildRequires: mingw32-openssl
+BuildRequires: mingw64-openssl
+BuildRequires: mingw32-libjpeg-turbo
+BuildRequires: mingw64-libjpeg-turbo
+BuildRequires: mingw32-celt051
+BuildRequires: mingw64-celt051
+BuildRequires: mingw32-zlib
+BuildRequires: mingw64-zlib
+BuildRequires: mingw32-gstreamer1
+BuildRequires: mingw64-gstreamer1
+BuildRequires: mingw32-gstreamer1-plugins-base
+BuildRequires: mingw64-gstreamer1-plugins-base
+BuildRequires: mingw32-usbredir
+BuildRequires: mingw64-usbredir
+BuildRequires: mingw32-libusbx
+BuildRequires: mingw64-libusbx
+BuildRequires: mingw32-opus
+BuildRequires: mingw64-opus
+# Hack because of bz #613466
+BuildRequires: intltool
+BuildRequires: libtool
+
+%description
+Client libraries for SPICE desktop servers.
+
+
+# Mingw32
+%package -n mingw32-spice-gtk
+Summary: %{summary}
+Requires: mingw32-spice-glib = %{version}-%{release}
+Requires: mingw32-gtk2
+Requires: pkgconfig
+
+%description -n mingw32-spice-gtk
+Gtk+2 client libraries for SPICE desktop servers.
+
+%package -n mingw32-spice-gtk3
+Summary: %{summary}
+Requires: mingw32-spice-glib = %{version}-%{release}
+Requires: mingw32-gtk3
+Requires: pkgconfig
+
+%description -n mingw32-spice-gtk3
+Gtk+3 client libraries for SPICE desktop servers.
+
+%package -n mingw32-spice-glib
+Summary: GLib-based library to connect to SPICE servers
+Requires: pkgconfig
+Requires: mingw32-glib2
+Requires: mingw32-spice-protocol
+
+%description -n mingw32-spice-glib
+A SPICE client library using GLib2.
+
+%package -n mingw32-spice-gtk-static
+Summary: %{summary}
+Requires: mingw32-spice-gtk = %{version}-%{release}
+
+%description -n mingw32-spice-gtk-static
+Gtk+ client static libraries for SPICE desktop servers.
+
+# Mingw64
+%package -n mingw64-spice-gtk
+Summary: %{summary}
+Requires: mingw64-spice-glib = %{version}-%{release}
+Requires: mingw64-gtk2
+Requires: pkgconfig
+
+%description -n mingw64-spice-gtk
+Gtk+2 client libraries for SPICE desktop servers.
+
+%package -n mingw64-spice-gtk3
+Summary: %{summary}
+Requires: mingw64-spice-glib = %{version}-%{release}
+Requires: mingw64-gtk3
+Requires: pkgconfig
+
+%description -n mingw64-spice-gtk3
+Gtk+3 client libraries for SPICE desktop servers.
+
+%package -n mingw64-spice-glib
+Summary: GLib-based library to connect to SPICE servers
+Requires: pkgconfig
+Requires: mingw64-glib2
+Requires: mingw64-spice-protocol
+
+%description -n mingw64-spice-glib
+A SPICE client library using GLib2.
+
+%package -n mingw64-spice-gtk-static
+Summary: %{summary}
+Requires: mingw64-spice-gtk = %{version}-%{release}
+
+%description -n mingw64-spice-gtk-static
+Gtk+ client static libraries for SPICE desktop servers.
+
+%{?mingw_debug_package}
+
+
+%prep
+%setup -q -n spice-gtk-%{version}%{?_version_suffix} -c
+pushd spice-gtk-%{version}%{?_version_suffix}
+popd
+
+if [ -n '%{?_version_suffix}' ]; then
+  mv spice-gtk-%{version}%{?_version_suffix} spice-gtk-%{version}
+fi
+
+cp -a spice-gtk-%{version} spice-gtk3-%{version}
+
+%build
+pushd spice-gtk-%{version}
+%mingw_configure                                \
+    --without-sasl                              \
+    --with-audio=gstreamer                     \
+    --with-coroutine=winfiber                   \
+    --disable-smartcard                         \
+    --without-python                            \
+    --enable-usbredir                           \
+    --disable-gtk-doc                           \
+    --disable-werror                            \
+    --enable-static                             \
+    --enable-shared                             \
+    --with-gtk=2.0
+
+%mingw_make %{?_smp_mflags}
+popd
+
+pushd spice-gtk3-%{version}
+%mingw_configure                                \
+    --without-sasl                              \
+    --with-audio=gstreamer                     \
+    --with-coroutine=winfiber                   \
+    --disable-smartcard                         \
+    --without-python                            \
+    --enable-usbredir                           \
+    --disable-gtk-doc                           \
+    --disable-werror                            \
+    --enable-static                             \
+    --enable-shared                             \
+    --with-gtk=3.0
+
+%mingw_make %{?_smp_mflags}
+popd
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+pushd spice-gtk-%{version}
+%mingw_make install "DESTDIR=$RPM_BUILD_ROOT"
+popd
+
+pushd spice-gtk3-%{version}
+%mingw_make install "DESTDIR=$RPM_BUILD_ROOT"
+popd
+
+# Libtool files don't need to be bundled
+find $RPM_BUILD_ROOT -name "*.la" -delete
+# man pages don't need to be bundled
+find $RPM_BUILD_ROOT -name "*.1" -delete
+
+%mingw_find_lang spice-gtk
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+# Mingw32
+%files -n mingw32-spice-glib -f spice-gtk.lang
+%defattr(-,root,root)
+%doc spice-gtk-%{version}/AUTHORS
+%doc spice-gtk-%{version}/ChangeLog
+%doc spice-gtk-%{version}/COPYING
+%doc spice-gtk-%{version}/README
+%doc spice-gtk-%{version}/NEWS
+%{mingw32_bindir}/libspice-client-glib-2.0-8.dll
+%{mingw32_bindir}/libspice-controller-0.dll
+%{mingw32_bindir}/spicy-screenshot.exe
+%{mingw32_bindir}/spicy-stats.exe
+%{mingw32_libdir}/libspice-client-glib-2.0.dll.a
+%{mingw32_libdir}/libspice-controller.dll.a
+%{mingw32_libdir}/pkgconfig/spice-client-glib-2.0.pc
+%{mingw32_libdir}/pkgconfig/spice-controller.pc
+%{mingw32_includedir}/spice-client-glib-2.0
+%{mingw32_includedir}/spice-controller
+%{mingw32_datadir}/vala/vapi
+
+%files -n mingw32-spice-gtk
+%defattr(-,root,root)
+%{mingw32_bindir}/libspice-client-gtk-2.0-4.dll
+%{mingw32_libdir}/libspice-client-gtk-2.0.dll.a
+%{mingw32_libdir}/pkgconfig/spice-client-gtk-2.0.pc
+%{mingw32_includedir}/spice-client-gtk-2.0
+
+%files -n mingw32-spice-gtk3
+%defattr(-,root,root)
+%{mingw32_bindir}/libspice-client-gtk-3.0-4.dll
+%{mingw32_bindir}/spicy.exe
+%{mingw32_libdir}/libspice-client-gtk-3.0.dll.a
+%{mingw32_libdir}/pkgconfig/spice-client-gtk-3.0.pc
+%{mingw32_includedir}/spice-client-gtk-3.0
+
+%files -n mingw32-spice-gtk-static
+%defattr(-,root,root)
+%{mingw32_libdir}/libspice-client-glib-2.0.a
+%{mingw32_libdir}/libspice-controller.a
+%{mingw32_libdir}/libspice-client-gtk-2.0.a
+%{mingw32_libdir}/libspice-client-gtk-3.0.a
+
+# Mingw64
+%files -n mingw64-spice-glib -f spice-gtk.lang
+%defattr(-,root,root)
+%doc spice-gtk-%{version}/AUTHORS
+%doc spice-gtk-%{version}/ChangeLog
+%doc spice-gtk-%{version}/COPYING
+%doc spice-gtk-%{version}/README
+%doc spice-gtk-%{version}/NEWS
+%{mingw64_bindir}/libspice-client-glib-2.0-8.dll
+%{mingw64_bindir}/libspice-controller-0.dll
+%{mingw64_bindir}/spicy-screenshot.exe
+%{mingw64_bindir}/spicy-stats.exe
+%{mingw64_libdir}/libspice-client-glib-2.0.dll.a
+%{mingw64_libdir}/libspice-controller.dll.a
+%{mingw64_libdir}/pkgconfig/spice-client-glib-2.0.pc
+%{mingw64_libdir}/pkgconfig/spice-controller.pc
+%{mingw64_includedir}/spice-client-glib-2.0
+%{mingw64_includedir}/spice-controller
+%{mingw64_datadir}/vala/vapi
+
+%files -n mingw64-spice-gtk
+%defattr(-,root,root)
+%{mingw64_bindir}/libspice-client-gtk-2.0-4.dll
+%{mingw64_libdir}/libspice-client-gtk-2.0.dll.a
+%{mingw64_libdir}/pkgconfig/spice-client-gtk-2.0.pc
+%{mingw64_includedir}/spice-client-gtk-2.0
+
+%files -n mingw64-spice-gtk3
+%defattr(-,root,root)
+%{mingw64_bindir}/libspice-client-gtk-3.0-4.dll
+%{mingw64_bindir}/spicy.exe
+%{mingw64_libdir}/libspice-client-gtk-3.0.dll.a
+%{mingw64_libdir}/pkgconfig/spice-client-gtk-3.0.pc
+%{mingw64_includedir}/spice-client-gtk-3.0
+
+%files -n mingw64-spice-gtk-static
+%defattr(-,root,root)
+%{mingw64_libdir}/libspice-client-glib-2.0.a
+%{mingw64_libdir}/libspice-controller.a
+%{mingw64_libdir}/libspice-client-gtk-2.0.a
+%{mingw64_libdir}/libspice-client-gtk-3.0.a
+
+%changelog
diff --git a/data/spice-gtk.spec.in b/data/spice-gtk.spec.in
new file mode 100644
index 0000000..91b7700
--- /dev/null
+++ b/data/spice-gtk.spec.in
@@ -0,0 +1,256 @@
+#define _version_suffix
+
+Name:           spice-gtk
+Version:        @VERSION@
+Release:        1%{?dist}
+Summary:        A GTK+ widget for SPICE clients
+
+Group:          System Environment/Libraries
+License:        LGPLv2+
+URL:            http://spice-space.org/page/Spice-Gtk
+#VCS:           git:git://anongit.freedesktop.org/spice/spice-gtk
+Source0:        http://www.spice-space.org/download/gtk/%{name}-%{version}%{?_version_suffix}.tar.bz2
+Patch0:         0001-channel-usbredir-Do-not-stop-event-listening-if-Spic.patch
+
+BuildRequires: intltool
+BuildRequires: gtk2-devel >= 2.14
+BuildRequires: usbredir-devel >= 0.5.2
+BuildRequires: libusb1-devel >= 1.0.9
+BuildRequires: libgudev1-devel
+BuildRequires: pixman-devel openssl-devel libjpeg-turbo-devel
+BuildRequires: celt051-devel pulseaudio-libs-devel opus-devel
+BuildRequires: pygtk2-devel python-devel zlib-devel
+BuildRequires: cyrus-sasl-devel
+BuildRequires: libcacard-devel
+BuildRequires: gobject-introspection-devel
+BuildRequires: dbus-glib-devel
+BuildRequires: libacl-devel
+BuildRequires: polkit-devel
+BuildRequires: gtk-doc
+BuildRequires: vala-tools
+BuildRequires: usbutils
+BuildRequires: libsoup-devel >= 2.49.91
+BuildRequires: libphodav-devel
+BuildRequires: lz4-devel
+BuildRequires: gtk3-devel
+
+# FIXME: should ship the generated files..
+BuildRequires: pyparsing
+# keep me to get gendeps magic happen
+BuildRequires: spice-protocol
+Requires: spice-glib%{?_isa} = %{version}-%{release}
+
+
+%description
+Client libraries for SPICE desktop servers.
+
+%package devel
+Summary: Development files to build GTK2 applications with spice-gtk-2.0
+Group: Development/Libraries
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: spice-glib-devel%{?_isa} = %{version}-%{release}
+Requires: pkgconfig
+Requires: gtk2-devel
+
+%description devel
+spice-client-gtk-2.0 provides a SPICE viewer widget for GTK2.
+
+Libraries, includes, etc. to compile with the spice-gtk2 libraries
+
+%package -n spice-glib
+Summary: A GObject for communicating with Spice servers
+Group: Development/Libraries
+
+%description -n spice-glib
+spice-client-glib-2.0 is a SPICE client library for GLib2.
+
+%package -n spice-glib-devel
+Summary: Development files to build Glib2 applications with spice-glib-2.0
+Group: Development/Libraries
+Requires: spice-glib%{?_isa} = %{version}-%{release}
+Requires: pkgconfig
+Requires: glib2-devel
+
+%description -n spice-glib-devel
+spice-client-glib-2.0 is a SPICE client library for GLib2.
+
+Libraries, includes, etc. to compile with the spice-glib-2.0 libraries
+
+%package -n spice-gtk3
+Summary: A GTK3 widget for SPICE clients
+Group: Development/Libraries
+Requires: spice-glib%{?_isa} = %{version}-%{release}
+
+%description -n spice-gtk3
+spice-client-glib-3.0 is a SPICE client library for Gtk3.
+
+%package -n spice-gtk3-devel
+Summary: Development files to build GTK3 applications with spice-gtk-3.0
+Group: Development/Libraries
+Requires: spice-gtk3%{?_isa} = %{version}-%{release}
+Requires: spice-glib-devel%{?_isa} = %{version}-%{release}
+Requires: pkgconfig
+Requires: gtk3-devel
+
+%description -n spice-gtk3-devel
+spice-client-gtk-3.0 provides a SPICE viewer widget for GTK3.
+
+Libraries, includes, etc. to compile with the spice-gtk3 libraries
+
+%package -n spice-gtk3-vala
+Summary: Vala bindings for the spice-gtk-3.0 library
+Group: Development/Libraries
+Requires: spice-gtk3%{?_isa} = %{version}-%{release}
+Requires: spice-gtk3-devel%{?_isa} = %{version}-%{release}
+
+%description -n spice-gtk3-vala
+A module allowing use of the spice-gtk-3.0 widget from vala
+
+%package python
+Summary: Python bindings for the spice-gtk-2.0 library
+Group: Development/Libraries
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description python
+SpiceClientGtk module provides a SPICE viewer widget for GTK2.
+
+A module allowing use of the spice-gtk-2.0 widget from python
+
+%package tools
+Summary: Spice-gtk tools
+Group: Applications/Internet
+Requires: spice-gtk3%{?_isa} = %{version}-%{release}
+
+%description tools
+Simple clients for interacting with SPICE servers.
+spicy is a client to a SPICE desktop server.
+spicy-screenshot is a tool to capture screen-shots of a SPICE desktop.
+
+
+%prep
+%setup -q -n spice-gtk-%{version}%{?_version_suffix} -c
+
+if [ -n '%{?_version_suffix}' ]; then
+  mv spice-gtk-%{version}%{?_version_suffix} spice-gtk-%{version}
+fi
+
+pushd spice-gtk-%{version}
+%patch0 -p1
+find . -name '*.stamp' | xargs touch
+popd
+
+cp -a spice-gtk-%{version} spice-gtk3-%{version}
+
+%build
+
+CONFIGURE_ARGS="
+  --enable-gtk-doc
+  --enable-webdav
+  --with-usb-acl-helper-dir=%{_libexecdir}/spice-gtk-%{_arch}/
+  --enable-lz4
+"
+
+cd spice-gtk-%{version}
+%configure $CONFIGURE_ARGS --with-gtk=2.0
+make %{?_smp_mflags}
+cd ..
+
+cd spice-gtk3-%{version}
+%configure $CONFIGURE_ARGS --with-gtk=3.0 --enable-vala
+make %{?_smp_mflags}
+cd ..
+
+
+%install
+
+cd spice-gtk-%{version}
+make install DESTDIR=%{buildroot}
+cd ..
+
+cd spice-gtk3-%{version}
+make install DESTDIR=%{buildroot}
+cd ..
+
+rm -f %{buildroot}%{_libdir}/*.a
+rm -f %{buildroot}%{_libdir}/*.la
+rm -f %{buildroot}%{_libdir}/python*/site-packages/*.a
+rm -f %{buildroot}%{_libdir}/python*/site-packages/*.la
+
+# needed because of the upstream issue described in
+# http://lists.freedesktop.org/archives/spice-devel/2012-August/010343.html
+# these are unwanted spice-protocol files
+rm -rf %{buildroot}%{_includedir}/spice-1
+rm -rf %{buildroot}%{_datadir}/pkgconfig/spice-protocol.pc
+
+%find_lang %{name}
+
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%post -n spice-glib -p /sbin/ldconfig
+%postun -n spice-glib -p /sbin/ldconfig
+
+%post -n spice-gtk3 -p /sbin/ldconfig
+%postun -n spice-gtk3 -p /sbin/ldconfig
+
+
+%files
+%doc spice-gtk-%{version}/AUTHORS
+%doc spice-gtk-%{version}/COPYING
+%doc spice-gtk-%{version}/README
+%doc spice-gtk-%{version}/NEWS
+%{_libdir}/libspice-client-gtk-2.0.so.*
+%{_libdir}/girepository-1.0/SpiceClientGtk-2.0.typelib
+%{_mandir}/man1/spice-client.1*
+
+%files devel
+%{_libdir}/libspice-client-gtk-2.0.so
+%{_includedir}/spice-client-gtk-2.0
+%{_libdir}/pkgconfig/spice-client-gtk-2.0.pc
+%{_datadir}/gir-1.0/SpiceClientGtk-2.0.gir
+
+%files -n spice-glib -f %{name}.lang
+%{_libdir}/libspice-client-glib-2.0.so.*
+%{_libdir}/libspice-controller.so.*
+%{_libdir}/girepository-1.0/SpiceClientGLib-2.0.typelib
+%dir %{_libexecdir}/spice-gtk-%{_arch}/
+%attr(4755, root, root) %{_libexecdir}/spice-gtk-%{_arch}/spice-client-glib-usb-acl-helper
+%{_datadir}/polkit-1/actions/org.spice-space.lowlevelusbaccess.policy
+
+%files -n spice-glib-devel
+%{_libdir}/libspice-client-glib-2.0.so
+%{_libdir}/libspice-controller.so
+%{_includedir}/spice-client-glib-2.0
+%{_includedir}/spice-controller
+%{_libdir}/pkgconfig/spice-client-glib-2.0.pc
+%{_libdir}/pkgconfig/spice-controller.pc
+%{_datadir}/gir-1.0/SpiceClientGLib-2.0.gir
+%{_datadir}/vala/vapi/spice-protocol.vapi
+%doc %{_datadir}/gtk-doc/html/*
+
+%files -n spice-gtk3
+%{_libdir}/libspice-client-gtk-3.0.so.*
+%{_libdir}/girepository-1.0/SpiceClientGtk-3.0.typelib
+
+%files -n spice-gtk3-devel
+%{_libdir}/libspice-client-gtk-3.0.so
+%{_includedir}/spice-client-gtk-3.0
+%{_libdir}/pkgconfig/spice-client-gtk-3.0.pc
+%{_datadir}/gir-1.0/SpiceClientGtk-3.0.gir
+
+%files -n spice-gtk3-vala
+%{_datadir}/vala/vapi/spice-client-glib-2.0.deps
+%{_datadir}/vala/vapi/spice-client-glib-2.0.vapi
+%{_datadir}/vala/vapi/spice-client-gtk-3.0.deps
+%{_datadir}/vala/vapi/spice-client-gtk-3.0.vapi
+
+%files python
+%{_libdir}/python*/site-packages/SpiceClientGtk.so
+
+%files tools
+%{_bindir}/spicy
+%{_bindir}/spicy-screenshot
+%{_bindir}/spicy-stats
+
+%changelog
-- 
2.3.5



More information about the Spice-devel mailing list