mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-10-17 02:19:30 +03:00
ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
107 lines
2.3 KiB
Nix
107 lines
2.3 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchFromGitLab
|
|
, python3
|
|
, meson
|
|
, ninja
|
|
, pkg-config
|
|
, gobject-introspection
|
|
, desktop-file-utils
|
|
, shared-mime-info
|
|
, wrapGAppsHook
|
|
, glib
|
|
, gtk3
|
|
, gtk4
|
|
, gtksourceview4
|
|
, libadwaita
|
|
, libhandy
|
|
, webkitgtk_4_1
|
|
, webkitgtk_6_0
|
|
, nix-update-script
|
|
}:
|
|
|
|
python3.pkgs.buildPythonApplication rec {
|
|
pname = "cambalache";
|
|
version = "0.16.0";
|
|
|
|
format = "other";
|
|
|
|
# Did not fetch submodule since it is only for tests we don't run.
|
|
src = fetchFromGitLab {
|
|
domain = "gitlab.gnome.org";
|
|
owner = "jpu";
|
|
repo = pname;
|
|
rev = version;
|
|
sha256 = "sha256-Ha94Ca5a7EUBYuSJvMrLc5895Q2/01/tbKpwlHLmTDc=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
meson
|
|
ninja
|
|
pkg-config
|
|
gobject-introspection # for setup hook
|
|
desktop-file-utils # for update-desktop-database
|
|
shared-mime-info # for update-mime-database
|
|
wrapGAppsHook
|
|
];
|
|
|
|
pythonPath = with python3.pkgs; [
|
|
pygobject3
|
|
lxml
|
|
];
|
|
|
|
buildInputs = [
|
|
glib
|
|
gtk3
|
|
gtk4
|
|
gtksourceview4
|
|
webkitgtk_4_1
|
|
webkitgtk_6_0
|
|
# For extra widgets support.
|
|
libadwaita
|
|
libhandy
|
|
];
|
|
|
|
# Prevent double wrapping.
|
|
dontWrapGApps = true;
|
|
|
|
postPatch = ''
|
|
patchShebangs postinstall.py
|
|
# those programs are used at runtime not build time
|
|
# https://gitlab.gnome.org/jpu/cambalache/-/blob/0.12.1/meson.build#L79-80
|
|
substituteInPlace ./meson.build \
|
|
--replace "find_program('broadwayd', required: true)" "" \
|
|
--replace "find_program('gtk4-broadwayd', required: true)" ""
|
|
'';
|
|
|
|
preFixup = ''
|
|
# Let python wrapper use GNOME flags.
|
|
makeWrapperArgs+=(
|
|
# For broadway daemons
|
|
--prefix PATH : "${lib.makeBinPath [ gtk3 gtk4 ]}"
|
|
"''${gappsWrapperArgs[@]}"
|
|
)
|
|
'';
|
|
|
|
postFixup = ''
|
|
# Wrap a helper script in an unusual location.
|
|
wrapPythonProgramsIn "$out/${python3.sitePackages}/cambalache/priv/merengue" "$out $pythonPath"
|
|
'';
|
|
|
|
passthru = {
|
|
updateScript = nix-update-script { };
|
|
};
|
|
|
|
meta = with lib; {
|
|
homepage = "https://gitlab.gnome.org/jpu/cambalache";
|
|
description = "RAD tool for GTK 4 and 3 with data model first philosophy";
|
|
mainProgram = "cambalache";
|
|
maintainers = teams.gnome.members;
|
|
license = with licenses; [
|
|
lgpl21Only # Cambalache
|
|
gpl2Only # tools
|
|
];
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|