diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/spice-gtk | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/spice-gtk')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/spice-gtk/default.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/spice-gtk/default.nix b/nixpkgs/pkgs/development/libraries/spice-gtk/default.nix new file mode 100644 index 000000000000..bc583f732db6 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/spice-gtk/default.nix @@ -0,0 +1,82 @@ +{ 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 }: + +# If this package is built with polkit support (withPolkit=true), +# usb redirection reqires spice-client-glib-usb-acl-helper to run setuid root. +# The helper confirms via polkit that the user has an active session, +# then adds a device acl entry for that user. +# Example NixOS config to create a setuid wrapper for the helper: +# security.wrappers.spice-client-glib-usb-acl-helper.source = +# "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper"; +# On non-NixOS installations, make a setuid copy of the helper +# outside the store and adjust PATH to find the setuid version. + +# If this package is built without polkit support (withPolkit=false), +# usb redirection requires read-write access to usb devices. +# This can be granted by adding users to a custom group like "usb" +# and using a udev rule to put all usb devices in that group. +# Example NixOS config: +# users.groups.usb = {}; +# users.users.dummy.extraGroups = [ "usb" ]; +# services.udev.extraRules = '' +# KERNEL=="*", SUBSYSTEMS=="usb", MODE="0664", GROUP="usb" +# ''; + +with stdenv.lib; + +let + inherit (python2Packages) python pygtk; +in stdenv.mkDerivation rec { + name = "spice-gtk-0.35"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "https://www.spice-space.org/download/gtk/${name}.tar.bz2"; + sha256 = "11lymg467gvj5ys8k22ihnfbxjn4x34ygyzirpg2nphjwlyhgrml"; + }; + + postPatch = '' + # get rid of absolute path to helper in store so we can use a setuid wrapper + substituteInPlace src/usb-acl-helper.c \ + --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 = [ pkgconfig gettext libsoup autoreconfHook vala gobject-introspection ]; + + PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions"; + + configureFlags = [ + "--with-gtk3" + "--enable-introspection" + "--enable-vala" + "--enable-celt051" + ]; + + dontDisableStatic = true; # Needed by the coroutine test + + enableParallelBuilding = true; + + meta = { + description = "A GTK+3 SPICE widget"; + longDescription = '' + spice-gtk is a GTK+3 SPICE widget. It features glib-based + objects for SPICE protocol parsing and a gtk widget for embedding + the SPICE display into other applications such as virt-manager. + Python bindings are available too. + ''; + + homepage = https://www.spice-space.org/; + license = licenses.lgpl21; + maintainers = [ maintainers.xeji ]; + platforms = platforms.linux; + }; +} |