From 5f7c701eff432048f0ff09f198e2a525dc3d3847 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Wed, 1 May 2019 21:36:32 -0400 Subject: [PATCH 1/4] spice-gtk: 0.35 -> 0.37 Meson! Pulseaudio backend has been deprecated upstream so it has been disabled. Celt has also been disabled because there's opus. Other than that optional features have been enabled. https://gitlab.freedesktop.org/spice/spice-gtk/blob/v0.36/NEWS https://gitlab.freedesktop.org/spice/spice-gtk/blob/v0.37/NEWS --- .../libraries/spice-gtk/default.nix | 109 +++++++++++++----- 1 file changed, 80 insertions(+), 29 deletions(-) diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix index bc583f732db6..0169a42ed65e 100644 --- a/pkgs/development/libraries/spice-gtk/default.nix +++ b/pkgs/development/libraries/spice-gtk/default.nix @@ -1,8 +1,39 @@ -{ stdenv, fetchurl, pkgconfig, spice-protocol, gettext, celt_0_5_1 -, openssl, libpulseaudio, pixman, gobject-introspection, libjpeg_turbo, zlib -, cyrus_sasl, python2Packages, autoreconfHook, usbredir, libsoup -, withPolkit ? true, polkit, acl, usbutils -, vala, gtk3, epoxy, libdrm, gst_all_1, phodav, opusfile }: +{ stdenv +, fetchurl +, pkgconfig +, fetchpatch +, meson +, ninja +, python3 +, spice-protocol +, gettext +, openssl +, libpulseaudio +, pixman +, gobject-introspection +, libjpeg_turbo +, zlib +, cyrus_sasl +, usbredir +, libsoup +, polkit +, acl +, usbutils +, vala +, gtk3 +, epoxy +, libdrm +, gst_all_1 +, phodav +, libopus +, gtk-doc +, json-glib +, lz4 +, libcacard +, perl +, docbook_xsl +, withPolkit ? true +}: # If this package is built with polkit support (withPolkit=true), # usb redirection reqires spice-client-glib-usb-acl-helper to run setuid root. @@ -25,18 +56,15 @@ # KERNEL=="*", SUBSYSTEMS=="usb", MODE="0664", GROUP="usb" # ''; -with stdenv.lib; +stdenv.mkDerivation rec { + pname = "spice-gtk"; + version = "0.37"; -let - inherit (python2Packages) python pygtk; -in stdenv.mkDerivation rec { - name = "spice-gtk-0.35"; - - outputs = [ "out" "dev" ]; + outputs = [ "out" "dev" "devdoc" "man" ]; src = fetchurl { - url = "https://www.spice-space.org/download/gtk/${name}.tar.bz2"; - sha256 = "11lymg467gvj5ys8k22ihnfbxjn4x34ygyzirpg2nphjwlyhgrml"; + url = "https://www.spice-space.org/download/gtk/${pname}-${version}.tar.bz2"; + sha256 = "1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z"; }; postPatch = '' @@ -45,27 +73,50 @@ in stdenv.mkDerivation rec { --replace 'ACL_HELPER_PATH"/' '"' ''; - buildInputs = [ - spice-protocol celt_0_5_1 openssl libpulseaudio gst_all_1.gst-plugins-base pixman - libjpeg_turbo zlib cyrus_sasl python pygtk usbredir gtk3 epoxy libdrm phodav opusfile - ] ++ optionals withPolkit [ polkit acl usbutils ] ; + nativeBuildInputs = [ + docbook_xsl + gettext + gobject-introspection + gtk-doc + libsoup + meson + ninja + perl + pkgconfig + python3 + python3.pkgs.pyparsing + python3.pkgs.six + vala + ]; - nativeBuildInputs = [ pkgconfig gettext libsoup autoreconfHook vala gobject-introspection ]; + buildInputs = [ + cyrus_sasl + epoxy + gst_all_1.gst-plugins-base + gtk3 + json-glib + libcacard + libdrm + libjpeg_turbo + lz4 + openssl + libopus + phodav + pixman + spice-protocol + usbredir + zlib + ] ++ stdenv.lib.optionals withPolkit [ polkit acl usbutils ] ; PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions"; - configureFlags = [ - "--with-gtk3" - "--enable-introspection" - "--enable-vala" - "--enable-celt051" + mesonFlags = [ + "-Dauto_features=enabled" + "-Dcelt051=disabled" + "-Dpulse=disabled" # is deprecated upstream ]; - dontDisableStatic = true; # Needed by the coroutine test - - enableParallelBuilding = true; - - meta = { + meta = with stdenv.lib; { description = "A GTK+3 SPICE widget"; longDescription = '' spice-gtk is a GTK+3 SPICE widget. It features glib-based From aba04ea5f32ead4e5a5fef07696fcb1ff3b802da Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Wed, 1 May 2019 21:39:45 -0400 Subject: [PATCH 2/4] spice-protocol: 0.12.15 -> 0.14.0 https://gitlab.freedesktop.org/spice/spice-protocol/blob/v0.14.0/CHANGELOG.md --- pkgs/development/libraries/spice-protocol/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/spice-protocol/default.nix b/pkgs/development/libraries/spice-protocol/default.nix index 18ec02b4acf3..c32f336939cb 100644 --- a/pkgs/development/libraries/spice-protocol/default.nix +++ b/pkgs/development/libraries/spice-protocol/default.nix @@ -1,11 +1,12 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "spice-protocol-0.12.15"; + pname = "spice-protocol"; + version = "0.14.0"; src = fetchurl { - url = "https://www.spice-space.org/download/releases/${name}.tar.bz2"; - sha256 = "06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb"; + url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.bz2"; + sha256 = "1b3f44c13pqsp7aabmcinfbmgl79038bp5548l5pjs16lcfam95n"; }; postInstall = '' From e3da5d4c8eedbb22582211a856560fe6badb8911 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sat, 18 May 2019 22:45:22 -0400 Subject: [PATCH 3/4] spice: 0.14.0 -> 0.14.2, meson --- .../libraries/spice/correct-meson.patch | 26 ++++++ pkgs/development/libraries/spice/default.nix | 89 +++++++++++++++---- pkgs/top-level/all-packages.nix | 5 +- 3 files changed, 97 insertions(+), 23 deletions(-) create mode 100644 pkgs/development/libraries/spice/correct-meson.patch diff --git a/pkgs/development/libraries/spice/correct-meson.patch b/pkgs/development/libraries/spice/correct-meson.patch new file mode 100644 index 000000000000..d3422cb915b3 --- /dev/null +++ b/pkgs/development/libraries/spice/correct-meson.patch @@ -0,0 +1,26 @@ +diff --git a/meson.build b/meson.build +index 8b8ae8bb..e58c436c 100644 +--- a/meson.build ++++ b/meson.build +@@ -2,7 +2,7 @@ + # project definition + # + project('spice', 'c', +- version : run_command('build-aux/git-version-gen', '${MESON_SOURCE_ROOT}/.tarball-version', check : true).stdout().strip(), ++ version : run_command('build-aux/git-version-gen', meson.source_root() + '/.tarball-version', check : true).stdout().strip(), + license : 'LGPLv2.1', + meson_version : '>= 0.48') + +diff --git a/server/meson.build b/server/meson.build +index 34d8eef1..988ccab2 100644 +--- a/server/meson.build ++++ b/server/meson.build +@@ -7,7 +7,7 @@ version_info = meson.project_version().split('.') + major = '@0@'.format(version_info[0]) + minor = '@0@'.format(version_info[1]) + micro = version_info[2].to_int() +-if not version_info[3].contains('git') ++if not version_info.contains('git') + micro += 1 + endif + micro = '@0@'.format(micro) diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix index dadbe57dccdd..3e785f55dadd 100644 --- a/pkgs/development/libraries/spice/default.nix +++ b/pkgs/development/libraries/spice/default.nix @@ -1,38 +1,89 @@ -{ stdenv, fetchurl, pkgconfig, pixman, celt, alsaLib -, openssl, libXrandr, libXfixes, libXext, libXrender, libXinerama -, libjpeg, zlib, spice-protocol, python, pyparsing, glib, cyrus_sasl -, libcacard, lz4 }: - -with stdenv.lib; +{ stdenv +, substituteAll +, fetchurl +, meson +, ninja +, pkgconfig +, pixman +, celt_0_5_1 +, alsaLib +, openssl +, libXrandr +, libXfixes +, libXext +, libXrender +, libXinerama +, libjpeg +, zlib +, spice-protocol +, python3 +, glib +, cyrus_sasl +, libcacard +, lz4 +}: stdenv.mkDerivation rec { - name = "spice-0.14.0"; + pname = "spice"; + version = "0.14.2"; src = fetchurl { - url = "https://www.spice-space.org/download/releases/${name}.tar.bz2"; - sha256 = "0j5q7cp5p95jk8fp48gz76rz96lifimdsx1wnpmfal0nnnar9nrs"; + url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.bz2"; + sha256 = "19r999py9v9c7md2bb8ysj809ag1hh6djl1ik8jcgx065s4b60xj"; }; - buildInputs = [ pixman celt alsaLib openssl libjpeg zlib - libXrandr libXfixes libXrender libXext libXinerama - python pyparsing glib cyrus_sasl libcacard lz4 ]; + patches = [ + # submitted https://gitlab.freedesktop.org/spice/spice/merge_requests/4 + ./correct-meson.patch + ]; - nativeBuildInputs = [ pkgconfig spice-protocol ]; + postPatch = '' + patchShebangs build-aux + ''; + + + nativeBuildInputs = [ + meson + ninja + pkgconfig + spice-protocol + python3 + python3.pkgs.six + python3.pkgs.pyparsing + ]; + + buildInputs = [ + alsaLib + celt_0_5_1 + cyrus_sasl + glib + libXext + libXfixes + libXinerama + libXrandr + libXrender + libcacard + libjpeg + lz4 + openssl + pixman + python3.pkgs.pyparsing + zlib + ]; NIX_CFLAGS_COMPILE = "-fno-stack-protector"; - configureFlags = [ - "--with-sasl" - "--enable-smartcard" - "--enable-client" - "--enable-lz4" + mesonFlags = [ + "-Dauto_features=enabled" + "-Dopus=disabled" + "-Dgstreamer=no" ]; postInstall = '' ln -s spice-server $out/include/spice ''; - meta = { + meta = with stdenv.lib; { description = "Complete open source solution for interaction with virtualized desktop devices"; longDescription = '' The Spice project aims to provide a complete open source solution for interaction diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 904fc2a01a7b..ec99adfa952e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13002,10 +13002,7 @@ in sphinxsearch = callPackage ../servers/search/sphinxsearch { }; - spice = callPackage ../development/libraries/spice { - celt = celt_0_5_1; - inherit (pythonPackages) pyparsing; - }; + spice = callPackage ../development/libraries/spice { }; spice-gtk = callPackage ../development/libraries/spice-gtk { }; From edcda4bf5d7d98240c2c246906fceb5cefff755d Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sat, 18 May 2019 22:57:10 -0400 Subject: [PATCH 4/4] spice: cleanup features * disabled celt for opus * enabled gstreamer support --- pkgs/development/libraries/spice/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix index 3e785f55dadd..902bc6a5560f 100644 --- a/pkgs/development/libraries/spice/default.nix +++ b/pkgs/development/libraries/spice/default.nix @@ -5,7 +5,6 @@ , ninja , pkgconfig , pixman -, celt_0_5_1 , alsaLib , openssl , libXrandr @@ -21,6 +20,9 @@ , cyrus_sasl , libcacard , lz4 +, libopus +, gst_all_1 +, orc }: stdenv.mkDerivation rec { @@ -54,9 +56,9 @@ stdenv.mkDerivation rec { buildInputs = [ alsaLib - celt_0_5_1 cyrus_sasl glib + gst_all_1.gst-plugins-base libXext libXfixes libXinerama @@ -64,8 +66,10 @@ stdenv.mkDerivation rec { libXrender libcacard libjpeg + libopus lz4 openssl + orc pixman python3.pkgs.pyparsing zlib @@ -75,8 +79,8 @@ stdenv.mkDerivation rec { mesonFlags = [ "-Dauto_features=enabled" - "-Dopus=disabled" - "-Dgstreamer=no" + "-Dgstreamer=1.0" + "-Dcelt051=disabled" ]; postInstall = ''