From c75df461fd8614581c54b51c9f83159e7b94d0cb Mon Sep 17 00:00:00 2001 From: cwyc <16950437+cwyc@users.noreply.github.com> Date: Sun, 26 Dec 2021 23:14:59 -0500 Subject: [PATCH 1/2] maintainers: add cwyc --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ab14ba2a5b0b..d700039367ba 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2877,6 +2877,12 @@ githubId = 1382175; name = "Oliver Matthews"; }; + cwyc = { + email = "hello@cwyc.page"; + github = "cwyc"; + githubId = 16950437; + name = "cwyc"; + }; cyounkins = { name = "Craig Younkins"; email = "cyounkins@gmail.com"; From 6f0689ddca3b821cec0e758e86365a8b8db58f95 Mon Sep 17 00:00:00 2001 From: cwyc <16950437+cwyc@users.noreply.github.com> Date: Sun, 26 Dec 2021 23:15:26 -0500 Subject: [PATCH 2/2] webp-pixbuf-loader: init at 0.0.6 --- .../libraries/webp-pixbuf-loader/default.nix | 59 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 61 insertions(+) create mode 100644 pkgs/development/libraries/webp-pixbuf-loader/default.nix diff --git a/pkgs/development/libraries/webp-pixbuf-loader/default.nix b/pkgs/development/libraries/webp-pixbuf-loader/default.nix new file mode 100644 index 000000000000..82ce1e4796d8 --- /dev/null +++ b/pkgs/development/libraries/webp-pixbuf-loader/default.nix @@ -0,0 +1,59 @@ +{ lib, stdenv, fetchFromGitHub +, meson, ninja, pkg-config, makeWrapper +, gdk-pixbuf, libwebp +}: +let + moduleDir = gdk-pixbuf.moduleDir; + + # turning lib/gdk-pixbuf-#.#/#.#.#/loaders into lib/gdk-pixbuf-#.#/#.#.#/loaders.cache + # removeSuffix is just in case moduleDir gets a trailing slash + loadersPath = (lib.strings.removeSuffix "/" gdk-pixbuf.moduleDir) + ".cache"; +in +stdenv.mkDerivation rec { + pname = "webp-pixbuf-loader"; + version = "0.0.6"; + + src = fetchFromGitHub { + owner = "aruiz"; + repo = pname; + rev = version; + sha256 = "sha256-dcdydWYrXZJjo4FxJtvzGzrQLOs87/BmxshFZwsT2ws="; + }; + + # It looks for gdk-pixbuf-thumbnailer in this package's bin rather than the gdk-pixbuf bin. We need to patch that. + postPatch = '' + substituteInPlace webp-pixbuf.thumbnailer.in --replace @bindir@/gdk-pixbuf-thumbnailer $out/bin/webp-thumbnailer + ''; + + nativeBuildInputs = [ gdk-pixbuf meson ninja pkg-config makeWrapper ]; + buildInputs = [ gdk-pixbuf libwebp ]; + + mesonFlags = [ + "-Dgdk_pixbuf_query_loaders_path=${gdk-pixbuf.dev}/bin/gdk-pixbuf-query-loaders" + "-Dgdk_pixbuf_moduledir=${placeholder "out"}/${moduleDir}" + ]; + + # It assumes gdk-pixbuf-thumbnailer can find the webp loader in the loaders.cache referenced by environment variable, breaking containment. + # So we replace it with a wrapped executable. + postInstall = '' + mkdir -p $out/bin + makeWrapper ${gdk-pixbuf}/bin/gdk-pixbuf-thumbnailer $out/bin/webp-thumbnailer \ + --set GDK_PIXBUF_MODULE_FILE $out/${loadersPath} + ''; + + # environment variables controlling loaders.cache generation by gdk-pixbuf-query-loaders + preInstall = '' + export GDK_PIXBUF_MODULE_FILE=$out/${loadersPath} + export GDK_PIXBUF_MODULEDIR=$out/${moduleDir} + ''; + + meta = with lib; { + description = "WebP GDK Pixbuf Loader library"; + homepage = "https://github.com/aruiz/webp-pixbuf-loader"; + license = licenses.lgpl2Plus; + platforms = platforms.unix; + maintainers = [ maintainers.cwyc ]; + # meson.build:16:0: ERROR: Program or command 'gcc' not found or not executable + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 873581e37c8e..4b53e3f647eb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22366,6 +22366,8 @@ with pkgs; gtk3 = gtk4; }; + webp-pixbuf-loader = callPackage ../development/libraries/webp-pixbuf-loader {}; + websocketpp = callPackage ../development/libraries/websocket++ { }; webrtc-audio-processing_1 = callPackage ../development/libraries/webrtc-audio-processing { stdenv = gcc10StdenvCompat; };