nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 gtk3,
6 which,
7 pkg-config,
8 intltool,
9 file,
10 libintl,
11 hicolor-icon-theme,
12 python3,
13 wrapGAppsHook3,
14}:
15
16stdenv.mkDerivation (finalAttrs: {
17 pname = "geany";
18 version = "2.1";
19
20 outputs = [
21 "out"
22 "dev"
23 "doc"
24 "man"
25 ];
26
27 src = fetchurl {
28 url = "https://download.geany.org/geany-${finalAttrs.version}.tar.bz2";
29 hash = "sha256-a5aohERjMAwQuWkqCl7a2CNu7J6ENC9XX4PU/IkzEig=";
30 };
31
32 patches = [
33 # The test runs into UB in headless environments and crashes at least on headless Darwin.
34 # Remove if https://github.com/geany/geany/pull/3676 is merged (or the issue fixed otherwise).
35 ./disable-test-sidebar.patch
36 ];
37
38 nativeBuildInputs = [
39 pkg-config
40 intltool
41 libintl
42 which
43 file
44 hicolor-icon-theme
45 python3
46 wrapGAppsHook3
47 ];
48
49 buildInputs = [ gtk3 ];
50
51 preCheck = ''
52 patchShebangs --build tests/ctags/runner.sh
53 patchShebangs --build scripts
54 '';
55
56 doCheck = true;
57
58 enableParallelBuilding = true;
59
60 meta = with lib; {
61 description = "Small and lightweight IDE";
62 longDescription = ''
63 Geany is a small and lightweight Integrated Development Environment.
64 It was developed to provide a small and fast IDE, which has only a few dependencies from other packages.
65 Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME.
66 Geany only requires the GTK runtime libraries.
67 Some basic features of Geany:
68 - Syntax highlighting
69 - Code folding
70 - Symbol name auto-completion
71 - Construct completion/snippets
72 - Auto-closing of XML and HTML tags
73 - Call tips
74 - Many supported filetypes including C, Java, PHP, HTML, Python, Perl, Pascal (full list)
75 - Symbol lists
76 - Code navigation
77 - Build system to compile and execute your code
78 - Simple project management
79 - Plugin interface
80 '';
81 homepage = "https://www.geany.org/";
82 license = licenses.gpl2Plus;
83 maintainers = with maintainers; [ frlan ];
84 platforms = platforms.all;
85 mainProgram = "geany";
86 };
87})