Files
nixpkgs/pkgs/by-name/gp/gpaste/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

91 lines
2.3 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
stdenv,
lib,
fetchurl,
gjs,
glib,
gobject-introspection,
gtk3,
gtk4,
gcr_4,
libadwaita,
meson,
ninja,
pango,
pkg-config,
vala,
desktop-file-utils,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpaste";
version = "45.3";
src = fetchurl {
url = "https://www.imagination-land.org/files/gpaste/GPaste-${finalAttrs.version}.tar.xz";
hash = "sha256-UU8pw7bqEwg2Vh7S6GTx8swI/2IhlwjQgkGNZCzoMwc=";
};
patches = [
./fix-paths.patch
];
# TODO: switch to substituteAll with placeholder
# https://github.com/NixOS/nix/issues/1846
postPatch = ''
substituteInPlace src/libgpaste/gpaste/gpaste-settings.c \
--subst-var-by gschemasCompiled ${glib.makeSchemaPath (placeholder "out") "${finalAttrs.pname}-${finalAttrs.version}"}
'';
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkg-config
vala
desktop-file-utils
wrapGAppsHook3
];
buildInputs = [
gjs
glib
gtk3
gtk4
gcr_4
libadwaita
pango
];
mesonFlags = [
"-Dcontrol-center-keybindings-dir=${placeholder "out"}/share/gnome-control-center/keybindings"
"-Ddbus-services-dir=${placeholder "out"}/share/dbus-1/services"
"-Dsystemd-user-unit-dir=${placeholder "out"}/etc/systemd/user"
];
postInstall = ''
# We do not have central location to install typelibs to,
# lets ensure GNOME Shell can still find them.
extensionDir="$out/share/gnome-shell/extensions/GPaste@gnome-shell-extensions.gnome.org"
mv "$extensionDir/"{extension,.extension-wrapped}.js
mv "$extensionDir/"{prefs,.prefs-wrapped}.js
substitute "${./wrapper.js}" "$extensionDir/extension.js" \
--subst-var-by originalName "extension" \
--subst-var-by typelibDir "${placeholder "out"}/lib/girepository-1.0"
substitute "${./wrapper.js}" "$extensionDir/prefs.js" \
--subst-var-by originalName "prefs" \
--subst-var-by typelibDir "${placeholder "out"}/lib/girepository-1.0"
'';
meta = with lib; {
homepage = "https://github.com/Keruspe/GPaste";
changelog = "https://github.com/Keruspe/GPaste/blob/v${finalAttrs.version}/NEWS";
description = "Clipboard management system with GNOME integration";
mainProgram = "gpaste-client";
license = licenses.bsd2;
platforms = platforms.linux;
teams = [ teams.gnome ];
};
})