1{
2 lib,
3 stdenv,
4 fetchurl,
5 fetchpatch,
6 pkg-config,
7 gettext,
8 gtk-doc,
9 gobject-introspection,
10 python3,
11 gtk3,
12 cairo,
13 glib,
14 gnome,
15}:
16
17stdenv.mkDerivation rec {
18 pname = "goocanvas";
19 version = "2.0.4";
20
21 outputs = [
22 "out"
23 "dev"
24 "devdoc"
25 ];
26
27 src = fetchurl {
28 url = "mirror://gnome/sources/goocanvas/2.0/${pname}-${version}.tar.xz";
29 sha256 = "141fm7mbqib0011zmkv3g8vxcjwa7hypmq71ahdyhnj2sjvy4a67";
30 };
31
32 nativeBuildInputs = [
33 pkg-config
34 gettext
35 gtk-doc
36 python3
37 gobject-introspection
38 ];
39 buildInputs = [
40 gtk3
41 cairo
42 glib
43 ];
44
45 # add fedora patch to fix gcc-14 build
46 # https://src.fedoraproject.org/rpms/goocanvas2/tree/main
47 patches = [
48 (fetchpatch {
49 name = "goocanvas-2.0.4-Fix-building-with-GCC-14.patch";
50 hash = "sha256-9uqqC1uKZF9TDz5dfDTKSRCmjEiuvqkLnZ9w6U+q2TI=";
51 url = "https://src.fedoraproject.org/rpms/goocanvas2/raw/e799612a277262a0c6bd03db10a6ee9ca7871b9c/f/goocanvas-2.0.4-Fix-building-with-GCC-14.patch";
52 })
53 ];
54
55 configureFlags = [
56 "--disable-python"
57 ];
58 PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "$(dev)/share/gir-1.0";
59 PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "$(out)/lib/girepository-1.0";
60
61 passthru = {
62 updateScript = gnome.updateScript {
63 attrPath = "${pname}${lib.versions.major version}";
64 packageName = pname;
65 versionPolicy = "odd-unstable";
66 freeze = true;
67 };
68 };
69
70 meta = with lib; {
71 description = "Canvas widget for GTK based on the the Cairo 2D library";
72 homepage = "https://gitlab.gnome.org/Archive/goocanvas";
73 license = licenses.lgpl2;
74 maintainers = [ ];
75 platforms = platforms.unix;
76 };
77}