diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix index bc583f732db..0169a42ed65 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 diff --git a/pkgs/development/libraries/spice-protocol/default.nix b/pkgs/development/libraries/spice-protocol/default.nix index 18ec02b4acf..c32f336939c 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 = '' diff --git a/pkgs/development/libraries/spice/correct-meson.patch b/pkgs/development/libraries/spice/correct-meson.patch new file mode 100644 index 00000000000..d3422cb915b --- /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 dadbe57dccd..902bc6a5560 100644 --- a/pkgs/development/libraries/spice/default.nix +++ b/pkgs/development/libraries/spice/default.nix @@ -1,38 +1,93 @@ -{ 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 +, alsaLib +, openssl +, libXrandr +, libXfixes +, libXext +, libXrender +, libXinerama +, libjpeg +, zlib +, spice-protocol +, python3 +, glib +, cyrus_sasl +, libcacard +, lz4 +, libopus +, gst_all_1 +, orc +}: 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 + cyrus_sasl + glib + gst_all_1.gst-plugins-base + libXext + libXfixes + libXinerama + libXrandr + libXrender + libcacard + libjpeg + libopus + lz4 + openssl + orc + pixman + python3.pkgs.pyparsing + zlib + ]; NIX_CFLAGS_COMPILE = "-fno-stack-protector"; - configureFlags = [ - "--with-sasl" - "--enable-smartcard" - "--enable-client" - "--enable-lz4" + mesonFlags = [ + "-Dauto_features=enabled" + "-Dgstreamer=1.0" + "-Dcelt051=disabled" ]; 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 59b31d9405e..2153fa916e0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13175,10 +13175,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 { };