From 8ee60bf55fc403e1e0636ae31b8ab0a87b8eb71f Mon Sep 17 00:00:00 2001 From: Euan Kemp Date: Tue, 15 Dec 2020 21:49:14 -0800 Subject: [PATCH 1/7] syncplay: 1.6.6 -> 1.6.7 --- pkgs/applications/networking/syncplay/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix index da4551d7f555..e93b6f9a432a 100644 --- a/pkgs/applications/networking/syncplay/default.nix +++ b/pkgs/applications/networking/syncplay/default.nix @@ -2,7 +2,7 @@ buildPythonApplication rec { pname = "syncplay"; - version = "1.6.6"; + version = "1.6.7"; format = "other"; @@ -10,7 +10,7 @@ buildPythonApplication rec { owner = "Syncplay"; repo = "syncplay"; rev = "v${version}"; - sha256 = "1wkxdp7dv5y1100awy949higvs5035ylfyl83qrp4lnimy3imw09"; + sha256 = "1hxmd13sff51lh9l3vpk33qrzf7gi58c76bc01iqimp17sxwfz3k"; }; propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls; From 1ef5ea3cc31b2f1e10338155ea21cbcda6af3b1e Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Fri, 11 Dec 2020 12:55:28 +0000 Subject: [PATCH 2/7] fswatch: enableParallelBuilding Worked fine for me at -j4. --- pkgs/development/tools/misc/fswatch/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix index 4a1d1288a4c2..e32da3e67b71 100644 --- a/pkgs/development/tools/misc/fswatch/default.nix +++ b/pkgs/development/tools/misc/fswatch/default.nix @@ -23,6 +23,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ]; buildInputs = [ gettext libtool makeWrapper texinfo ]; + enableParallelBuilding = true; + meta = with stdenv.lib; { description = "A cross-platform file change monitor with multiple backends"; homepage = "https://github.com/emcrisostomo/fswatch"; From 3720a1ad18930a5373a5ae80c8e0b5123e94bad9 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 2 May 2020 17:38:37 +0000 Subject: [PATCH 3/7] wf-config: init at 0.6.0 --- .../window-managers/wayfire/wf-config.nix | 23 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 pkgs/applications/window-managers/wayfire/wf-config.nix diff --git a/pkgs/applications/window-managers/wayfire/wf-config.nix b/pkgs/applications/window-managers/wayfire/wf-config.nix new file mode 100644 index 000000000000..00a4404c1d4e --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/wf-config.nix @@ -0,0 +1,23 @@ +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, glm, libevdev, libxml2 }: + +stdenv.mkDerivation rec { + pname = "wf-config"; + version = "0.6.0"; + + src = fetchurl { + url = "https://github.com/WayfireWM/wf-config/releases/download/${version}/wf-config-${version}.tar.xz"; + sha256 = "1a5aqybhbp9dp4jygrm3gbkdap5qbd52y6ihfr4rm1cj37sckcn0"; + }; + + nativeBuildInputs = [ meson ninja pkg-config ]; + buildInputs = [ libevdev libxml2 ]; + propagatedBuildInputs = [ glm ]; + + meta = with lib; { + homepage = "https://github.com/WayfireWM/wf-config"; + description = "Library for managing configuration files, written for Wayfire"; + license = licenses.mit; + maintainers = with maintainers; [ qyliss wucke13 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 25adca6946e4..c1dbd2c1fa48 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24755,6 +24755,8 @@ in way-cooler = throw ("way-cooler is abandoned by its author: " + "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"); + wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { }; + waypipe = callPackage ../applications/networking/remote/waypipe { }; wayv = callPackage ../tools/X11/wayv {}; From 1a0155b5b992c19ca85f961feaa6771ad8c79bd9 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 2 May 2020 17:38:59 +0000 Subject: [PATCH 4/7] wayfire: init at 0.6.0 --- .../window-managers/wayfire/default.nix | 30 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 31 insertions(+) create mode 100644 pkgs/applications/window-managers/wayfire/default.nix diff --git a/pkgs/applications/window-managers/wayfire/default.nix b/pkgs/applications/window-managers/wayfire/default.nix new file mode 100644 index 000000000000..513784b8b52b --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/default.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, git +, cairo, libdrm, libexecinfo, libinput, libjpeg, libxkbcommon, wayland +, wayland-protocols, wf-config, wlroots +}: + +stdenv.mkDerivation rec { + pname = "wayfire"; + version = "0.6.0"; + + src = fetchurl { + url = "https://github.com/WayfireWM/wayfire/releases/download/${version}/wayfire-${version}.tar.xz"; + sha256 = "0wc5szslgf8d4r4dlbfgc5v49j2ziaa8fycmknq4p0vl67mh7acq"; + }; + + nativeBuildInputs = [ meson ninja pkg-config wayland ]; + buildInputs = [ + cairo libdrm libexecinfo libinput libjpeg libxkbcommon wayland + wayland-protocols wf-config wlroots + ]; + + mesonFlags = [ "--sysconfdir" "/etc" ]; + + meta = with lib; { + homepage = "https://wayfire.org/"; + description = "3D wayland compositor"; + license = licenses.mit; + maintainers = with maintainers; [ qyliss wucke13 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c1dbd2c1fa48..b7a7a3f23d5c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24755,6 +24755,7 @@ in way-cooler = throw ("way-cooler is abandoned by its author: " + "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"); + wayfire = callPackage ../applications/window-managers/wayfire { }; wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { }; waypipe = callPackage ../applications/networking/remote/waypipe { }; From 37a5f703616480ab9cebf07cc362bb0caec5ed4a Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 2 May 2020 17:39:19 +0000 Subject: [PATCH 5/7] wf-shell: init at 0.6.1 --- .../window-managers/wayfire/wf-shell.nix | 30 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 31 insertions(+) create mode 100644 pkgs/applications/window-managers/wayfire/wf-shell.nix diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix new file mode 100644 index 000000000000..6e5f189275b6 --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, git +, alsaLib, gnome3, gtk-layer-shell, pulseaudio, wayfire, wf-config +}: + +stdenv.mkDerivation rec { + pname = "wf-shell"; + version = "0.6.1"; + + # > Note to packagers: do not use the autogenerated "Source code" + # > archives from GitHub, but the wf-shell-0.4.0.tar.xz file. + src = fetchurl { + url = "https://github.com/WayfireWM/wf-shell/releases/download/v${version}/wf-shell-${version}.tar.xz"; + sha256 = "0jl8gj185k2ff754lcj5b5nldhkvrhmlaj8lsik4kx78vlb5m3ns"; + }; + + nativeBuildInputs = [ meson ninja pkg-config wayland ]; + buildInputs = [ + alsaLib gnome3.gtkmm gtk-layer-shell pulseaudio wayfire wf-config + ]; + + mesonFlags = [ "--sysconfdir" "/etc" ]; + + meta = with lib; { + homepage = "https://github.com/WayfireWM/wf-shell"; + description = "GTK3-based panel for Wayfire"; + license = licenses.mit; + maintainers = with maintainers; [ qyliss wucke13 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b7a7a3f23d5c..560248561adf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24757,6 +24757,7 @@ in wayfire = callPackage ../applications/window-managers/wayfire { }; wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { }; + wf-shell = callPackage ../applications/window-managers/wayfire/wf-shell.nix { }; waypipe = callPackage ../applications/networking/remote/waypipe { }; From e2243140f98bf692e24ce9972e803d17d29ffd1b Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 3 May 2020 13:25:07 +0000 Subject: [PATCH 6/7] wcm: init at 0.6.0 --- .../window-managers/wayfire/wcm.nix | 29 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 30 insertions(+) create mode 100644 pkgs/applications/window-managers/wayfire/wcm.nix diff --git a/pkgs/applications/window-managers/wayfire/wcm.nix b/pkgs/applications/window-managers/wayfire/wcm.nix new file mode 100644 index 000000000000..7c4b546c68ef --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/wcm.nix @@ -0,0 +1,29 @@ +{ stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, wayland, wrapGAppsHook +, gnome3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell +}: + +stdenv.mkDerivation rec { + pname = "wcm"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "WayfireWM"; + repo = "wcm"; + rev = "v${version}"; + sha256 = "1b22gymqfn0c49nf39676q5bj25rxab874iayiq31cmn14r30dyg"; + }; + + nativeBuildInputs = [ meson ninja pkg-config wayland wrapGAppsHook ]; + buildInputs = [ + gnome3.gtk libevdev libxml2 wayfire wayland + wayland-protocols wf-config wf-shell + ]; + + meta = with lib; { + homepage = "https://github.com/WayfireWM/wcm"; + description = "Wayfire Config Manager"; + license = licenses.mit; + maintainers = with maintainers; [ qyliss wucke13 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 560248561adf..cef016947626 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24756,6 +24756,7 @@ in "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"); wayfire = callPackage ../applications/window-managers/wayfire { }; + wcm = callPackage ../applications/window-managers/wayfire/wcm.nix { }; wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { }; wf-shell = callPackage ../applications/window-managers/wayfire/wf-shell.nix { }; From c898defdbf6867dc3e90ab683375d409a66d357d Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 2 May 2020 18:08:22 +0000 Subject: [PATCH 7/7] wayfire: add plugin support The top-level "wayfire" attribute is a Wayfire with wf-shell installed and nothing else. But wayfireApplications.withPlugins can be used to create a Wayfire with arbitrary plugins, or no plugins at all. --- .../window-managers/wayfire/applications.nix | 23 +++++++++++ .../window-managers/wayfire/plugins.nix | 12 ++++++ .../window-managers/wayfire/wrapper.nix | 39 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 9 +++-- 4 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 pkgs/applications/window-managers/wayfire/applications.nix create mode 100644 pkgs/applications/window-managers/wayfire/plugins.nix create mode 100644 pkgs/applications/window-managers/wayfire/wrapper.nix diff --git a/pkgs/applications/window-managers/wayfire/applications.nix b/pkgs/applications/window-managers/wayfire/applications.nix new file mode 100644 index 000000000000..6c22227c0c51 --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/applications.nix @@ -0,0 +1,23 @@ +{ newScope, wayfirePlugins }: + +let + self = with self; { + inherit wayfirePlugins; + + callPackage = newScope self; + + wayfire = callPackage ./. { }; + + wcm = callPackage ./wcm.nix { + inherit (wayfirePlugins) wf-shell; + }; + + wrapWayfireApplication = callPackage ./wrapper.nix { }; + + withPlugins = selector: self // { + wayfire = wrapWayfireApplication wayfire selector; + wcm = wrapWayfireApplication wcm selector; + }; + }; +in +self diff --git a/pkgs/applications/window-managers/wayfire/plugins.nix b/pkgs/applications/window-managers/wayfire/plugins.nix new file mode 100644 index 000000000000..830a918fcb7e --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/plugins.nix @@ -0,0 +1,12 @@ +{ newScope, wayfire }: + +let + self = with self; { + inherit wayfire; + + callPackage = newScope self; + + wf-shell = callPackage ./wf-shell.nix { }; + }; +in +self diff --git a/pkgs/applications/window-managers/wayfire/wrapper.nix b/pkgs/applications/window-managers/wayfire/wrapper.nix new file mode 100644 index 000000000000..622928985471 --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/wrapper.nix @@ -0,0 +1,39 @@ +{ runCommandNoCC, lib, makeWrapper, wayfirePlugins }: + +let + inherit (lib) escapeShellArg makeBinPath; + + xmlPath = plugin: "${plugin}/share/wayfire/metadata/wf-shell"; + + makePluginPath = lib.makeLibraryPath; + makePluginXMLPath = lib.concatMapStringsSep ":" xmlPath; +in + +application: + +choosePlugins: + +let + plugins = choosePlugins wayfirePlugins; +in + +runCommandNoCC "${application.name}-wrapped" { + nativeBuildInputs = [ makeWrapper ]; + + passthru = application.passthru // { + unwrapped = application; + }; + + inherit (application) meta; +} '' + mkdir -p $out/bin + for bin in ${application}/bin/* + do + makeWrapper "$bin" $out/bin/''${bin##*/} \ + --suffix PATH : ${escapeShellArg (makeBinPath plugins)} \ + --suffix WAYFIRE_PLUGIN_PATH : ${escapeShellArg (makePluginPath plugins)} \ + --suffix WAYFIRE_PLUGIN_XML_PATH : ${escapeShellArg (makePluginXMLPath plugins)} + done + find ${application} -mindepth 1 -maxdepth 1 -not -name bin \ + -exec ln -s '{}' $out ';' +'' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cef016947626..2554f3584e43 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24755,10 +24755,13 @@ in way-cooler = throw ("way-cooler is abandoned by its author: " + "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"); - wayfire = callPackage ../applications/window-managers/wayfire { }; - wcm = callPackage ../applications/window-managers/wayfire/wcm.nix { }; + wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]); + inherit (wayfireApplications) wayfire wcm; + wayfireApplications-unwrapped = callPackage ../applications/window-managers/wayfire/applications.nix { }; + wayfirePlugins = callPackage ../applications/window-managers/wayfire/plugins.nix { + inherit (wayfireApplications-unwrapped) wayfire; + }; wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { }; - wf-shell = callPackage ../applications/window-managers/wayfire/wf-shell.nix { }; waypipe = callPackage ../applications/networking/remote/waypipe { };