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

Frediano Ziglio fziglio at redhat.com
Wed Aug 28 10:25:25 UTC 2019


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


More information about the Spice-devel mailing list