lol

lomiri.lomiri-download-manager: init at 0.1.2

squashed from #245900

authored by

Christoph Neidahl and committed by
GitHub
b25b7d9e 105714e2

+160
+1
pkgs/desktops/lomiri/default.nix
··· 32 32 biometryd = callPackage ./services/biometryd { }; 33 33 hfd-service = callPackage ./services/hfd-service { }; 34 34 lomiri-app-launch = callPackage ./development/lomiri-app-launch { }; 35 + lomiri-download-manager = callPackage ./services/lomiri-download-manager { }; 35 36 mediascanner2 = callPackage ./services/mediascanner2 { }; 36 37 }; 37 38 in
+159
pkgs/desktops/lomiri/services/lomiri-download-manager/default.nix
··· 1 + { stdenv 2 + , lib 3 + , fetchFromGitLab 4 + , fetchpatch 5 + , gitUpdater 6 + , testers 7 + , boost 8 + , cmake 9 + , cmake-extras 10 + , dbus 11 + , dbus-test-runner 12 + , withDocumentation ? true 13 + , doxygen 14 + , glog 15 + , graphviz 16 + , gtest 17 + , lomiri-api 18 + , pkg-config 19 + , python3 20 + , qtbase 21 + , qtdeclarative 22 + , wrapQtAppsHook 23 + , xvfb-run 24 + }: 25 + 26 + stdenv.mkDerivation (finalAttrs: { 27 + pname = "lomiri-download-manager"; 28 + version = "0.1.2"; 29 + 30 + src = fetchFromGitLab { 31 + owner = "ubports"; 32 + repo = "development/core/lomiri-download-manager"; 33 + rev = finalAttrs.version; 34 + hash = "sha256-a9C+hactBMHMr31E+ImKDPgpzxajy1klkjDcSEkPHqI="; 35 + }; 36 + 37 + outputs = [ 38 + "out" 39 + "dev" 40 + ] ++ lib.optionals withDocumentation [ 41 + "doc" 42 + ]; 43 + 44 + patches = [ 45 + # Remove when version > 0.1.2 46 + (fetchpatch { 47 + name = "0001-lomiri-download-manager-Make-documentation-build-optional.patch"; 48 + url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/32d7369714c01bd425af9c6de5bdc04399a12e0a.patch"; 49 + hash = "sha256-UztcBAAFXDX2j0X5D3kMp9q0vFm3/PblUAKPJ5nZyiY="; 50 + }) 51 + 52 + # Remove when version > 0.1.2 53 + (fetchpatch { 54 + name = "0002-lomiri-download-manager-Upgrade-C++-standard-to-C++17.patch"; 55 + url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/a6bc7ae80f2ff4c4743978c6c694149707d9d2e2.patch"; 56 + hash = "sha256-iA1sZhHI8Osgo1ofL5RTqgVzUG32zx0dU/28qcEqmQc="; 57 + }) 58 + 59 + # Remove when version > 0.1.2 60 + (fetchpatch { 61 + name = "0003-lomiri-download-manager-Bump-version-make-Werror-and-tests-optional.patch"; 62 + url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/73ec04c429e5285f05dd72d5bb9720ba6ff31be2.patch"; 63 + hash = "sha256-0BrJSKCvUhITwfln05OrHgHEpldbgBoh4rivAvw+qrc="; 64 + }) 65 + 66 + # Remove when version > 0.1.2 67 + (fetchpatch { 68 + name = "0004-lomiri-download-manager-Use-GNUInstallDirs-variables-for-more-install-destinations.patch"; 69 + url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/5d40daf053de62150aa5ee618285e415d7d3f1c8.patch"; 70 + hash = "sha256-r5fpiJkZkDsYX9fcX5JuPsE/qli9z5/DatmGJ9/QauU="; 71 + }) 72 + ]; 73 + 74 + postPatch = '' 75 + # fetchpatch strips renames 76 + # Remove when version > 0.1.2 77 + for service in src/{uploads,downloads}/daemon/{lomiri-*-manager,lomiri-*-manager-systemd,com.lomiri.*}.service; do 78 + mv "$service" "$service".in 79 + done 80 + 81 + # pkg_get_variable doesn't let us substitute prefix pkg-config variable from systemd 82 + substituteInPlace CMakeLists.txt \ 83 + --replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "${placeholder "out"}/lib/systemd/user")' \ 84 + --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" 85 + ''; 86 + 87 + strictDeps = true; 88 + 89 + nativeBuildInputs = [ 90 + cmake 91 + pkg-config 92 + wrapQtAppsHook 93 + ] ++ lib.optionals withDocumentation [ 94 + doxygen 95 + graphviz 96 + ]; 97 + 98 + buildInputs = [ 99 + boost 100 + cmake-extras 101 + glog 102 + lomiri-api 103 + qtbase 104 + qtdeclarative 105 + ]; 106 + 107 + nativeCheckInputs = [ 108 + dbus 109 + dbus-test-runner 110 + python3 111 + xvfb-run 112 + ]; 113 + 114 + checkInputs = [ 115 + gtest 116 + ]; 117 + 118 + cmakeFlags = [ 119 + "-DENABLE_DOC=${lib.boolToString withDocumentation}" 120 + # Deprecation warnings on Qt 5.15 121 + # https://gitlab.com/ubports/development/core/lomiri-download-manager/-/issues/1 122 + "-DENABLE_WERROR=OFF" 123 + ]; 124 + 125 + makeTargets = [ 126 + "all" 127 + ] ++ lib.optionals withDocumentation [ 128 + "doc" 129 + ]; 130 + 131 + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; 132 + 133 + # xvfb tests are flaky on xvfb shutdown when parallelised 134 + enableParallelChecking = false; 135 + 136 + preCheck = '' 137 + export HOME=$TMPDIR # temp files in home 138 + export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix} # xcb platform & sqlite driver 139 + ''; 140 + 141 + passthru = { 142 + tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; 143 + updateScript = gitUpdater { }; 144 + }; 145 + 146 + meta = with lib; { 147 + description = "Performs uploads and downloads from a centralized location"; 148 + homepage = "https://gitlab.com/ubports/development/core/lomiri-download-manager"; 149 + license = licenses.lgpl3Only; 150 + maintainers = teams.lomiri.members; 151 + platforms = platforms.linux; 152 + pkgConfigModules = [ 153 + "ldm-common" 154 + "lomiri-download-manager-client" 155 + "lomiri-download-manager-common" 156 + "lomiri-upload-manager-common" 157 + ]; 158 + }; 159 + })