[Spice-devel] [PATCH spice-gtk 1/2] Add spec.in file and spec file generation

Frediano Ziglio fziglio at redhat.com
Tue Aug 27 14:50:50 UTC 2019


I posted a similar patch for another SPICE project, fine adding SPEC to the
repository.
The spec seems already "evolved" from a past history. Where did you get it
from? I think that comment should be on the commit message.
Also, is that spec file supposed to be used for releases (like for Fedora) ?

> 
> Signed-off-by: Snir Sheriber <ssheribe at redhat.com>
> ---
> Test build:
> https://copr.fedorainfracloud.org/coprs/snir/spice-project/build/1021943/
> 
> ---
>  meson.build       |  11 +++
>  spice-gtk.spec.in | 190 ++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 201 insertions(+)
>  create mode 100644 spice-gtk.spec.in
> 
> diff --git a/meson.build b/meson.build
> index 07dbb70..61f8a11 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -408,3 +408,14 @@ if spice_gtk_has_gtk
>                       requires : 'spice-client-glib-2.0 gtk+-3.0 >=
>                       @0@'.format(gtk_version_required),
>                       variables : 'exec_prefix=${prefix}')
>  endif
> +
> +#
> +# spec file
> +#
> +conf_data = configuration_data()
> +conf_data.set('version', meson.project_version())
> +conf_data.set('release', run_command('date', '+%Y%m%d%H%M.spice.latest',
> check : true).stdout().strip())

Not big fun of this, I suppose this means that these build are only for
developers.

> +
> +configure_file(input : 'spice-gtk.spec.in',
> +               output : 'spice-gtk.spec',
> +               configuration : conf_data)
> diff --git a/spice-gtk.spec.in b/spice-gtk.spec.in
> new file mode 100644
> index 0000000..b4c1051
> --- /dev/null
> +++ b/spice-gtk.spec.in
> @@ -0,0 +1,190 @@
> +#define _version_suffix
> +
> +Name:           spice-gtk
> +Version:        @version@
> +Release:        @release@%{?dist}
> +Summary:        A GTK+ widget for SPICE clients
> +
> +License:        LGPLv2+
> +URL:            https://www.spice-space.org/
> +#VCS:           git:git://anongit.freedesktop.org/spice/spice-gtk
> +Source0:
> https://www.spice-space.org/download/gtk/%{name}-%{version}%{?_version_suffix}.tar.xz
> +
> +BuildRequires: git-core
> +BuildRequires: meson
> +BuildRequires: intltool
> +BuildRequires: usbredir-devel >= 0.7.1
> +BuildRequires: libusb1-devel >= 1.0.16
> +BuildRequires: pixman-devel libjpeg-turbo-devel
> +BuildRequires: opus-devel
> +BuildRequires: zlib-devel
> +BuildRequires: cyrus-sasl-devel
> +BuildRequires: libcacard-devel
> +BuildRequires: gobject-introspection-devel
> +BuildRequires: libacl-devel
> +%if ! 0%{?flatpak}
> +BuildRequires: polkit-devel
> +%endif
> +BuildRequires: gtk-doc
> +BuildRequires: vala
> +BuildRequires: usbutils
> +BuildRequires: libsoup-devel >= 2.49.91
> +BuildRequires: libphodav-devel
> +BuildRequires: lz4-devel
> +BuildRequires: gtk3-devel
> +BuildRequires: json-glib-devel
> +BuildRequires: spice-protocol >= 0.12.15
> +BuildRequires: gstreamer1-devel >= 1.10
> +BuildRequires: gstreamer1-plugins-base-devel >= 1.10
> +BuildRequires: python3-six
> +BuildRequires: python3-pyparsing
> +BuildRequires: openssl-devel
> +BuildRequires: gnupg2
> +
> +Obsoletes: spice-gtk-python < 0.32
> +
> +Requires: spice-glib%{?_isa} = %{version}-%{release}
> +
> +%description
> +Client libraries for SPICE desktop servers.
> +
> +%package -n spice-glib
> +Summary: A GObject for communicating with Spice servers
> +
> +%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
> +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
> +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
> +Requires: spice-gtk3%{?_isa} = %{version}-%{release}
> +Requires: spice-glib-devel%{?_isa} = %{version}-%{release}
> +Requires: pkgconfig
> +Requires: gtk3-devel
> +Obsoletes: spice-gtk-devel < 0.32
> +
> +%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
> +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 tools
> +Summary: Spice-gtk tools
> +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
> +%autosetup -S git_am
> +
> +
> +%build
> +
> +# meson macro has --auto-features=enabled
> +# gstreamer should be enough, may be deprecated in the future
> +%global mjpegflag -Dbuiltin-mjpeg=false
> +# spice-common doesn't use auto feature yet
> +%global celt051flag -Dcelt051=disabled
> +# pulse is deprecated upstream
> +%global pulseflag -Dpulse=disabled
> +
> +%meson \
> +  %{mjpegflag} \
> +  %{celt051flag} \
> +  %{pulseflag} \
> +%if 0%{?flatpak}
> +  -Dpolkit=disabled
> +%else
> +  -Dusb-acl-helper-dir=%{_libexecdir}/spice-gtk-%{_arch}/
> +%endif
> +
> +%meson_build
> +
> +
> +%check
> +%meson_test
> +
> +
> +%install
> +%meson_install
> +
> +
> +%find_lang %{name}
> +
> +%ldconfig_scriptlets
> +%ldconfig_scriptlets -n spice-glib
> +%ldconfig_scriptlets -n spice-gtk3
> +
> +
> +%files
> +%doc AUTHORS
> +%doc COPYING
> +%doc README.md
> +%doc CHANGELOG.md
> +%{_mandir}/man1/spice-client.1*
> +
> +%files -n spice-glib -f %{name}.lang
> +%{_libdir}/libspice-client-glib-2.0.so.*
> +%{_libdir}/girepository-1.0/SpiceClientGLib-2.0.typelib
> +%if ! 0%{?flatpak}
> +%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
> +%endif
> +
> +%files -n spice-glib-devel
> +%{_libdir}/libspice-client-glib-2.0.so
> +%{_includedir}/spice-client-glib-2.0
> +%{_libdir}/pkgconfig/spice-client-glib-2.0.pc
> +%{_datadir}/gir-1.0/SpiceClientGLib-2.0.gir
> +%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 tools
> +%{_bindir}/spicy
> +%{_bindir}/spicy-screenshot
> +%{_bindir}/spicy-stats

Frediano


More information about the Spice-devel mailing list