[Spice-devel] [NSIS 2/2] packaging: add Makefile, spec file, jenkins automation

Christophe Fergeau cfergeau at redhat.com
Thu Nov 5 05:45:50 PST 2015


Hey,

Some comments on the Makefile/.spec files

On Mon, Oct 26, 2015 at 12:35:29PM +0200, Yedidyah Bar David wrote:
> Allow 'make dist'.
> 
> Allow building the spice installer and building/installing the ovirt
> installer.
> 
> Move VERSION maintenance from the nsis file to the Makefile.
> 
> Allow passing DISPLAYED_VERSION to make.
> 
> Allow passing MODE to make to choose between the two installers -
> SPICE (default) or OVIRT.
> 
> Some of the code in the Makefile was copied and adapted from
> ovirt-wgt-installer.spec. The spec file itself was also copied here and
> adapted, and will be removed [1] from its current location.

(I still believe that this would be much better split in smaller
chunks).

> --- /dev/null
> +++ b/Makefile
> @@ -0,0 +1,101 @@
> +NAME=spice-nsis
> +VERSION=0.103
> +DISPLAYED_VERSION=$(VERSION)
> +ARCHIVE=$(NAME)-$(VERSION).tar.gz
> +
> +# set to OVIRT to build the ovirt guest tools installer
> +MODE=SPICE
> +
> +# Note: If you want to change the UN/INSTALLER name, you
> +# have to edit also the nsis source.
> +ifeq ($(MODE),SPICE)
> +INSTALLER=spice-guest-tools-$(VERSION)
> +UNINSTALLER=Uninstall spice-guest-tools
> +EXE_VERSION=-$(VERSION)
> +INSTALL_NAME=spice-wgt-installer
> +else
> +ifeq ($(MODE),OVIRT)
> +INSTALLER=ovirt-guest-tools-setup
> +UNINSTALLER=Uninstall ovirt-guest-tools-setup
> +EXE_VERSION=
> +INSTALL_NAME=ovirt-wgt-installer
> +else
> +$(error Please set MODE to one of SPICE or OVIRT, not [$(MODE)])
> +endif
> +endif
> +
> +# common dependencies/sources

> +MINGW32BIN=/usr/i686-w64-mingw32/sys-root/mingw/bin
> +MINGW64BIN=/usr/x86_64-w64-mingw32/sys-root/mingw/bin

I'd add a reference to the RPMs installing the agent in this location:
+ # From RPMs available at http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/

Ideally, we'd get this integrated in the virtio-win ISO and would not
need an additional RPM.

> +VIRTIOWINDRIVERS=/usr/share/virtio-win-drivers

Ditto, reference to the virtio-win RPM:
+ # From virtio-win package available in
+ # https://fedoraproject.org/wiki/Windows_Virtio_Drivers#Yum.7CDnf_Repo

Correct path is /usr/share/virtio-win/drivers, not virtio-win-drivers

(you mentioned on IRC an oVirt-specific virtio-win package using
/usr/share/virtio-win-drivers - this package extracts the drivers from
the upstream virtio-win ISO as its layout differs from the one in the
RPM, and win-guest-tools.nsis expects the ISO layout, not the RPM layout
- in my opinion, this needs further discussion with Cole, and at worse,
we probably can adjust win-guest-tools.nsis to use the RPM layout)

> +QXLDRIVER=/usr/share/spice-qxl

I don't think this is useful anymore, virtio-win upstream ships the QXL
driver

This goes with

diff --git a/win-guest-tools.nsis b/win-guest-tools.nsis
index 463a049..67516da 100644
--- a/win-guest-tools.nsis
+++ b/win-guest-tools.nsis
@@ -123,7 +123,6 @@ Section "install"
 
   SetOutPath "$INSTDIR\drivers"
   File /r drivers/virtio/
-  File /r drivers/qxl/
 
   Push "vioserial"
   Push "vioser"

> +
> +# ovirt dependencies/sources

+ # Available from http://resources.ovirt.org/pub/ovirt-3.6/rpm/fc22


> diff --git a/ovirt-wgt-installer.spec b/ovirt-wgt-installer.spec
> new file mode 100644
> index 0000000..6012f54
> --- /dev/null
> +++ b/ovirt-wgt-installer.spec
> @@ -0,0 +1,63 @@
> +Name:		ovirt-wgt-installer
> +Version:	3.6.0
> +Release:	0.2_master%{?release_suffix}%{?dist}
> +Summary:	oVirt Windows Guest Tools Installer
> +License:	GPLv2 and GPLv2+ and ASL 2.0 and Zlib and MIT and Python and Platform SDK Redistributable EULA and Microsoft DDK Redistributable EULA
> +Source:		http://resources.ovirt.org/pub/ovirt-3.6-snapshot/src/ovirt-wgt/spice-nsis-0.103.tar.gz
> +URL:		http://www.ovirt.org/Features/oVirt_Windows_Guest_Tools
> +BuildArch:	noarch
> +Packager:	Lev Veyde <lveyde at redhat.com>
> +
> +BuildRequires:	mingw32-nsis >= 2.46
> +BuildRequires:	mingw32-spice-vdagent >= 0.7.3
> +BuildRequires:	mingw64-spice-vdagent >= 0.7.3
> +BuildRequires:	ovirt-guest-agent-windows
> +BuildRequires:	vcredist-x86
> +BuildRequires:	virtio-win-drivers

Name of the upstream package is virtio-win,not virtio-win-drivers


> +BuildRequires:	spice-qxl

I believe this can be dropped now

> +BuildRequires:	nsis-simple-service-plugin

Ah, this is interesting, you need this because win-guest-tools.nsis uses this
plugin. Its README document that it's needed, but maybe we need a better
solution? I assume this is no good fit for an official fedora package?

> +
> +%description
> +oVirt Windows Guest Tools installer.
> +The installer includes VirtIO-Win drivers, Spice QXL drivers, as well as oVirt and Spice Guest Agents.
> +
> +%global make_common_opts \\\
> +	PREFIX=%{_prefix} \\\
> +	MODE=OVIRT \\\
> +	DISPLAYED_VERSION='%{version}-%{release}'
> +
> +%prep
> +%setup -n spice-nsis -q
> +
> +%build
> +
> +make %{make_common_opts}
> +
> +%install
> +
> +make %{make_common_opts} install DESTDIR="%{buildroot}"
> +
> +%files
> +%{_datadir}/%{name}/ovirt-guest-tools-setup.exe
> +
> +%package iso
> +Summary: RPM wrapper for %{name}
> +
> +%description iso
> +A package wrapping %{name} to provide dependency features.
> +
> +%files iso
> +%{_datadir}/%{name}-iso

I have a hard time understanding this -iso package. It's just a directory
containing the installer executable, and the unpacked agent/drivers.
What is this meant for?

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20151105/6837998f/attachment.sig>


More information about the Spice-devel mailing list