1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, gitUpdater
, nixosTests
, testers
, cmake
, cmake-extras
, coreutils
, dbus
, doxygen
, gettext
, glib
, gmenuharness
, gtest
, intltool
, libsecret
, libqofono
, libqtdbusmock
, libqtdbustest
, lomiri-api
, lomiri-url-dispatcher
, networkmanager
, ofono
, pkg-config
, python3
, qtdeclarative
, qtbase
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-indicator-network";
version = "1.0.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-indicator-network";
rev = finalAttrs.version;
hash = "sha256-rJKWhW082ndVPEQHjuSriKtl0zQw86adxiINkZQq1hY=";
};
outputs = [
"out"
"dev"
"doc"
];
patches = [
# Remove when version > 1.0.1
(fetchpatch {
name = "0001-lomiri-indicator-network-Make-less-assumptions-about-where-files-will-end-up.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/commit/065212b22ab9aa8d25a61b5482ad6511e4c8510b.patch";
hash = "sha256-WrDTBKusK1808W8LZRGWaTOExu7gKpYBvkQ8hzoHoHk=";
})
# Remove when version > 1.0.1
(fetchpatch {
name = "0002-lomiri-indicator-network-Honour-CMAKE_INSTALL_DOCDIR_fordocumentation-installation.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/commit/79b9e12313f765ab6e95b4d4dfefbdbca50ef3c6.patch";
hash = "sha256-vRfdegEi892UlrC9c1+5Td7CHLh7u0foPggLNBfc8lw=";
})
];
postPatch = ''
# Queried via pkg-config, would need to override a prefix variable
# Needs CMake 3.28 or higher to do as part of the call, https://github.com/NixOS/nixpkgs/pull/275284
substituteInPlace data/CMakeLists.txt \
--replace 'pkg_get_variable(DBUS_SESSION_BUS_SERVICES_DIR dbus-1 session_bus_services_dir)' 'set(DBUS_SESSION_BUS_SERVICES_DIR "''${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/services")' \
--replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
doxygen
gettext
intltool
pkg-config
qtdeclarative
];
buildInputs = [
cmake-extras
dbus
glib
libqofono
libsecret
lomiri-api
lomiri-url-dispatcher
networkmanager
ofono
qtbase
];
nativeCheckInputs = [
(python3.withPackages (ps: with ps; [
python-dbusmock
]))
];
checkInputs = [
gmenuharness
gtest
libqtdbusmock
libqtdbustest
];
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.doCheck)
(lib.cmakeBool "ENABLE_UBUNTU_COMPAT" true) # just in case something needs it
(lib.cmakeBool "BUILD_DOC" true) # lacks QML docs, needs qdoc: https://github.com/NixOS/nixpkgs/pull/245379
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
postInstall = ''
substituteInPlace $out/etc/dbus-1/services/com.lomiri.connectivity1.service \
--replace '/bin/false' '${lib.getExe' coreutils "false"}'
'';
passthru = {
ayatana-indicators = [
"lomiri-indicator-network"
];
tests = {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
vm = nixosTests.ayatana-indicators;
};
updateScript = gitUpdater { };
};
meta = with lib; {
description = "Ayatana indiator exporting the network settings menu through D-Bus";
homepage = "https://gitlab.com/ubports/development/core/lomiri-indicator-network";
license = licenses.gpl3Only;
maintainers = teams.lomiri.members;
platforms = platforms.linux;
pkgConfigModules = [
"lomiri-connectivity-qt1"
];
};
})
|