btrbk: add mainProgram
[NixPkgs.git] / pkgs / by-name / ap / appimageupdate / package.nix
blobb1af05103d8a66b951b307e106a9145358812320
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   cmake,
6   pkg-config,
7   qt5,
8   zsync2,
9   libcpr,
10   libgcrypt,
11   libappimage,
12   argagg,
13   nlohmann_json,
14   gpgme,
15   appimageupdate-qt,
16   withQtUI ? false,
19 stdenv.mkDerivation (finalAttrs: {
20   pname = "appimageupdate";
21   version = "2.0.0-alpha-1-20230526";
23   src = fetchFromGitHub {
24     owner = "AppImageCommunity";
25     repo = "AppImageUpdate";
26     rev = finalAttrs.version;
27     hash = "sha256-b2RqSw0Ksn9OLxQV9+3reBiqrty+Kx9OwV93jlvuPnY=";
28   };
30   postPatch = ''
31     substituteInPlace CMakeLists.txt \
32       --replace-fail 'VERSION 1-alpha' 'VERSION ${finalAttrs.version}' \
33       --replace-fail 'env LC_ALL=C date -u "+%Y-%m-%d %H:%M:%S %Z"' 'bash -c "echo 1970-01-01 00:00:01 UTC"' \
34       --replace-fail 'git rev-parse --short HEAD' 'bash -c "echo unknown"' \
35       --replace-fail '<local dev build>' '<nixpkgs build>'
36   '';
38   nativeBuildInputs =
39     [
40       cmake
41       pkg-config
42     ]
43     ++ lib.optionals withQtUI [
44       qt5.wrapQtAppsHook
45     ];
47   buildInputs =
48     [
49       zsync2
50       libcpr
51       libgcrypt
52       libappimage
53       argagg
54       nlohmann_json
55       gpgme
56     ]
57     ++ lib.optionals withQtUI [
58       qt5.qtbase
59     ];
61   cmakeFlags = [
62     (lib.cmakeBool "USE_SYSTEM_ZSYNC2" true)
63     (lib.cmakeBool "USE_SYSTEM_LIBAPPIMAGE" true)
64     (lib.cmakeBool "BUILD_QT_UI" withQtUI)
65   ];
67   dontWrapQtApps = true;
69   preFixup = lib.optionalString withQtUI ''
70     wrapQtApp "$out/bin/AppImageUpdate"
71   '';
73   passthru.tests = {
74     inherit appimageupdate-qt;
75   };
77   meta = {
78     description = "Update AppImages using information embedded in the AppImage itself";
79     homepage = "https://github.com/AppImageCommunity/AppImageUpdate";
80     license = lib.licenses.mit;
81     mainProgram = if withQtUI then "AppImageUpdate" else "appimageupdatetool";
82     maintainers = with lib.maintainers; [ aleksana ];
83     platforms = lib.platforms.linux;
84   };