1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 fetchpatch,
6 cmake,
7 autoconf,
8 automake,
9 libtool,
10 pkg-config,
11 boost,
12 cairo,
13 fuse,
14 glib,
15 libarchive,
16 librsvg,
17 squashfuse,
18 xdg-utils-cxx,
19 xz, # for liblzma
20 zlib,
21}:
22stdenv.mkDerivation rec {
23 pname = "libappimage";
24 version = "1.0.4-5";
25
26 src = fetchFromGitHub {
27 owner = "AppImageCommunity";
28 repo = "libappimage";
29 rev = "v${version}";
30 hash = "sha256-V9Ilo0zFo9Urke+jCA4CSQB5tpzLC/S5jmon+bA+TEU=";
31 };
32
33 patches = [
34 # Fix build with GCC 13
35 # FIXME: remove in next release
36 (fetchpatch {
37 url = "https://github.com/AppImageCommunity/libappimage/commit/1e0515b23b90588ce406669134feca56ddcbbe43.patch";
38 hash = "sha256-WIMvXNqC1stgPiBTRpXHWq3edIRnQomtRSW2qO52TRo=";
39 })
40 ];
41
42 postPatch = ''
43 substituteInPlace cmake/libappimage.pc.in \
44 --replace 'libdir=''${prefix}/@CMAKE_INSTALL_LIBDIR@' 'libdir=@CMAKE_INSTALL_FULL_LIBDIR@' \
45 --replace 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' 'includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@'
46 '';
47
48 cmakeFlags = [
49 "-DUSE_SYSTEM_BOOST=1"
50 "-DUSE_SYSTEM_LIBARCHIVE=1"
51 "-DUSE_SYSTEM_SQUASHFUSE=1"
52 "-DUSE_SYSTEM_XDGUTILS=1"
53 "-DUSE_SYSTEM_XZ=1"
54 ];
55
56 nativeBuildInputs = [
57 cmake
58 autoconf
59 automake
60 libtool
61 pkg-config
62 ];
63
64 buildInputs = [
65 boost
66 fuse
67 libarchive
68 squashfuse
69 xdg-utils-cxx
70 xz
71 ];
72
73 propagatedBuildInputs = [
74 cairo
75 glib
76 librsvg
77 zlib
78 ];
79
80 strictDeps = true;
81
82 meta = with lib; {
83 description = "Implements functionality for dealing with AppImage files";
84 homepage = "https://github.com/AppImageCommunity/libappimage/";
85 license = licenses.mit;
86 maintainers = with maintainers; [ k900 ];
87 platforms = platforms.linux;
88 };
89}