[spice-gtk,1/2] Add spec.in file and spec file generation

Submitted by Snir Sheriber on Aug. 27, 2019, 2:27 p.m.

Details

Message ID 20190827142733.3130-1-ssheribe@redhat.com
State New
Headers show
Series "Series without cover letter" ( rev: 1 ) in Spice

Not browsing as part of any series.

Commit Message

Snir Sheriber Aug. 27, 2019, 2:27 p.m.
Signed-off-by: Snir Sheriber <ssheribe@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

Patch hide | download patch | download mbox

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())
+
+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

Comments

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@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
Hi,

On 8/27/19 5:50 PM, Frediano Ziglio wrote:
> I posted a similar patch for another SPICE project, fine adding SPEC to the
> repository.


Yes just found it, for spice-protocol (autotools)


> 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) ?


It's mainly based on latest fedora build spec with few minor changes,
my intention was to use it as a spec template, upstream build can
use it with a couple of changes.

On the other hand if it's preferred to be the official upstream spec i can
add the changelog and move necessary copr changes to the Makefile
script.


>
>> Signed-off-by: Snir Sheriber <ssheribe@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.


Yes, possibly can be changed only in the Makefile script.


Snir.

>
>> +
>> +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
> 
> Hi,
> 
> On 8/27/19 5:50 PM, Frediano Ziglio wrote:
> > I posted a similar patch for another SPICE project, fine adding SPEC to the
> > repository.
> 
> 
> Yes just found it, for spice-protocol (autotools)
> 
> 
> > 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)
> > ?
> 
> 
> It's mainly based on latest fedora build spec with few minor changes,
> my intention was to use it as a spec template, upstream build can
> use it with a couple of changes.
> 

In any case I would have a "preparatory" commit with the original version
and a commit message stating where it came from (repository + commit) and
on top this one (not hard to add, create a new branch with this preparatory
commit than rebase the old branch on the new one).

> On the other hand if it's preferred to be the official upstream spec i can
> add the changelog and move necessary copr changes to the Makefile
> script.
> 

No, IMO not necessary.

> 
> >
> >> Signed-off-by: Snir Sheriber <ssheribe@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.
> 
> 
> Yes, possibly can be changed only in the Makefile script.
> 

As these packages came from official master could be an idea to change the
release to the number of commit since the tagged version, "%Y%m%d%H%M.spice.latest"
looks like just developing version.

> 
> Snir.
> 
> >
> >> +
> >> +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
>