meson.build (10535B)
1 # This build file is in the public domain 2 3 install_data('auditor.conf', install_dir: pkgcfgadir) 4 5 install_data('taler-helper-auditor-render.py', install_dir: get_option('bindir')) 6 7 8 libauditorreport = library( 9 'auditorreport', 10 ['report-lib.c'], 11 soversion: '0.0.0', 12 version: '0.0.0', 13 install_rpath: rpath_option, 14 dependencies: [ 15 libtalerpq_dep, 16 libtalerauditordb_dep, 17 libtalerexchangedb_dep, 18 libtalerutil_dep, 19 gnunetutil_dep, 20 json_dep, 21 ], 22 include_directories: [incdir, configuration_inc], 23 install: true, 24 install_dir: get_option('libdir'), 25 ) 26 27 libauditorreport_dep = declare_dependency(link_with: libauditorreport) 28 29 executable( 30 'taler-auditor-dbinit', 31 ['taler-auditor-dbinit.c'], 32 dependencies: [ 33 libtalerauditordb_dep, 34 libtalerutil_dep, 35 libtalerpq_dep, 36 gnunetutil_dep, 37 gcrypt_dep, 38 ], 39 include_directories: [incdir, configuration_inc], 40 install: true, 41 ) 42 43 executable( 44 'taler-helper-auditor-coins', 45 ['taler-helper-auditor-coins.c'], 46 dependencies: [ 47 libtalerutil_dep, 48 libtalerbank_dep, 49 libtalerjson_dep, 50 libtalerexchangedb_dep, 51 libtalerauditordb_dep, 52 libauditorreport_dep, 53 gnunetutil_dep, 54 gnunetjson_dep, 55 json_dep, 56 gcrypt_dep, 57 ], 58 include_directories: [incdir, configuration_inc], 59 install: true, 60 ) 61 62 63 executable( 64 'taler-helper-auditor-aggregation', 65 ['taler-helper-auditor-aggregation.c'], 66 dependencies: [ 67 libtalerutil_dep, 68 libtalerbank_dep, 69 libtalerjson_dep, 70 libtalerexchangedb_dep, 71 libtalerauditordb_dep, 72 libauditorreport_dep, 73 gnunetutil_dep, 74 gnunetjson_dep, 75 json_dep, 76 gcrypt_dep, 77 ], 78 include_directories: [incdir, configuration_inc], 79 install: true, 80 ) 81 82 83 executable( 84 'taler-helper-auditor-aml', 85 ['taler-helper-auditor-aml.c'], 86 dependencies: [ 87 libtalerutil_dep, 88 libtalerjson_dep, 89 libtalerexchangedb_dep, 90 libtalerauditordb_dep, 91 libauditorreport_dep, 92 gnunetutil_dep, 93 gnunetjson_dep, 94 json_dep, 95 gcrypt_dep, 96 ], 97 include_directories: [incdir, configuration_inc], 98 install: true, 99 ) 100 101 102 executable( 103 'taler-helper-auditor-deposits', 104 ['taler-helper-auditor-deposits.c'], 105 dependencies: [ 106 libtalerutil_dep, 107 libtalerbank_dep, 108 libtalerjson_dep, 109 libtalerexchangedb_dep, 110 libtalerauditordb_dep, 111 libauditorreport_dep, 112 gnunetutil_dep, 113 gnunetjson_dep, 114 json_dep, 115 gcrypt_dep, 116 ], 117 include_directories: [incdir, configuration_inc], 118 install: true, 119 ) 120 121 122 executable( 123 'taler-helper-auditor-purses', 124 ['taler-helper-auditor-purses.c'], 125 dependencies: [ 126 libtalerutil_dep, 127 libtalerbank_dep, 128 libtalerjson_dep, 129 libtalerexchangedb_dep, 130 libtalerauditordb_dep, 131 libauditorreport_dep, 132 gnunetutil_dep, 133 gnunetjson_dep, 134 json_dep, 135 gcrypt_dep, 136 ], 137 include_directories: [incdir, configuration_inc], 138 install: true, 139 ) 140 141 142 executable( 143 'taler-helper-auditor-reserves', 144 ['taler-helper-auditor-reserves.c'], 145 dependencies: [ 146 libtalerutil_dep, 147 libtalerbank_dep, 148 libtalerjson_dep, 149 libtalerexchangedb_dep, 150 libtalerauditordb_dep, 151 libauditorreport_dep, 152 gnunetutil_dep, 153 gnunetjson_dep, 154 json_dep, 155 gcrypt_dep, 156 ], 157 include_directories: [incdir, configuration_inc], 158 install: true, 159 ) 160 161 162 executable( 163 'taler-helper-auditor-transfer', 164 ['taler-helper-auditor-transfer.c'], 165 dependencies: [ 166 libtalerutil_dep, 167 libtalerjson_dep, 168 libtalerexchangedb_dep, 169 libtalerauditordb_dep, 170 libauditorreport_dep, 171 gnunetutil_dep, 172 gnunetjson_dep, 173 json_dep, 174 gcrypt_dep, 175 ], 176 include_directories: [incdir, configuration_inc], 177 install: true, 178 ) 179 180 181 executable( 182 'taler-helper-auditor-wire-credit', 183 ['taler-helper-auditor-wire-credit.c'], 184 dependencies: [ 185 libtalerutil_dep, 186 libtalerjson_dep, 187 libtalerbank_dep, 188 libtalerexchangedb_dep, 189 libtalerauditordb_dep, 190 libauditorreport_dep, 191 gnunetutil_dep, 192 gnunetjson_dep, 193 gnunetcurl_dep, 194 json_dep, 195 gcrypt_dep, 196 ], 197 include_directories: [incdir, configuration_inc], 198 install: true, 199 ) 200 201 202 executable( 203 'taler-helper-auditor-wire-debit', 204 ['taler-helper-auditor-wire-debit.c'], 205 dependencies: [ 206 libtalerutil_dep, 207 libtalerjson_dep, 208 libtalerbank_dep, 209 libtalerexchangedb_dep, 210 libtalerauditordb_dep, 211 libauditorreport_dep, 212 gnunetutil_dep, 213 gnunetjson_dep, 214 gnunetcurl_dep, 215 json_dep, 216 gcrypt_dep, 217 ], 218 include_directories: [incdir, configuration_inc], 219 install: true, 220 ) 221 222 223 # MARK: CRUD 224 225 taler_auditor_httpd_SOURCES = [ 226 'taler-auditor-httpd.c', 227 'taler-auditor-httpd_spa.c', 228 'taler-auditor-httpd_put-deposit-confirmation.c', 229 'taler-auditor-httpd_get-monitoring-deposit-confirmations.c', 230 'taler-auditor-httpd_get-monitoring-amount-arithmetic-inconsistency.c', 231 'taler-auditor-httpd_get-monitoring-coin-inconsistency.c', 232 'taler-auditor-httpd_get-monitoring-row-inconsistency.c', 233 'taler-auditor-httpd_get-monitoring-emergency.c', 234 'taler-auditor-httpd_get-monitoring-emergency-by-count.c', 235 'taler-auditor-httpd_get-monitoring-denomination-key-validity-withdraw-inconsistency.c', 236 'taler-auditor-httpd_get-monitoring-purse-not-closed-inconsistencies.c', 237 'taler-auditor-httpd_get-monitoring-reserve-balance-insufficient-inconsistency.c', 238 'taler-auditor-httpd_patch-generic-suppressed.c', 239 'taler-auditor-httpd_delete-generic.c', 240 'taler-auditor-httpd_get-monitoring-bad-sig-losses.c', 241 'taler-auditor-httpd_get-monitoring-aml-holds.c', 242 'taler-auditor-httpd_get-monitoring-closure-lags.c', 243 'taler-auditor-httpd_get-monitoring-progress.c', 244 'taler-auditor-httpd_get-monitoring-early-aggregation.c', 245 'taler-auditor-httpd_get-monitoring-pending-deposits.c', 246 'taler-auditor-httpd_get-monitoring-kycauth-in-inconsistency.c', 247 'taler-auditor-httpd_get-monitoring-reserve-in-inconsistency.c', 248 'taler-auditor-httpd_get-monitoring-reserve-not-closed-inconsistency.c', 249 'taler-auditor-httpd_get-monitoring-denominations-without-sigs.c', 250 'taler-auditor-httpd_get-monitoring-misattribution-in-inconsistency.c', 251 'taler-auditor-httpd_get-monitoring-reserves.c', 252 'taler-auditor-httpd_get-monitoring-purses.c', 253 'taler-auditor-httpd_get-monitoring-historic-denomination-revenue.c', 254 'taler-auditor-httpd_get-monitoring-denomination-pending.c', 255 'taler-auditor-httpd_get-monitoring-historic-reserve-summary.c', 256 'taler-auditor-httpd_get-monitoring-wire-format-inconsistency.c', 257 'taler-auditor-httpd_get-monitoring-wire-out-inconsistency.c', 258 'taler-auditor-httpd_get-monitoring-reserve-balance-summary-wrong-inconsistency.c', 259 'taler-auditor-httpd_get-monitoring-row-minor-inconsistencies.c', 260 'taler-auditor-httpd_get-monitoring-fee-time-inconsistency.c', 261 'taler-auditor-httpd_get-monitoring-balances.c', 262 'taler-auditor-httpd_mhd.c', 263 ] 264 265 executable( 266 'taler-auditor-httpd', 267 taler_auditor_httpd_SOURCES, 268 dependencies: [ 269 libtalermhd_dep, 270 libtalerutil_dep, 271 libtalerjson_dep, 272 libtalerexchangedb_dep, 273 libtalerauditordb_dep, 274 gnunetutil_dep, 275 gnunetjson_dep, 276 zlib_dep, 277 mhd_dep, 278 json_dep, 279 gcrypt_dep, 280 ], 281 include_directories: [incdir, configuration_inc], 282 install: true, 283 ) 284 285 286 executable( 287 'taler-auditor-sync', 288 ['taler-auditor-sync.c'], 289 dependencies: [ 290 libtalerutil_dep, 291 libtalerjson_dep, 292 libtalerexchangedb_dep, 293 libtalerpq_dep, 294 gnunetutil_dep, 295 gnunetjson_dep, 296 gcrypt_dep, 297 ], 298 include_directories: [incdir, configuration_inc], 299 install: true, 300 ) 301 302 303 # These tests audit a pre-generated reference database, so they need the 304 # wallet to pick the same coins on every run: the generator scripts set 305 # TALER_WALLET_COINSEL=legacy-2024 for that (bug #11272). They are in the 306 # 'installcheck' suite because they drive installed binaries and need 307 # Postgres superuser rights. 308 test_auditor = configure_file( 309 input: 'test-auditor.sh', 310 output: 'test-auditor.sh', 311 copy: true, 312 ) 313 test( 314 'test-auditor', 315 test_auditor, 316 workdir: meson.current_build_dir(), 317 suite: ['auditor', 'installcheck'], 318 is_parallel: false, 319 timeout: 1800, 320 ) 321 # test-kyc audits a reference database produced by a KYC-enabled exchange 322 # (generate-kyc-basedb.sh). See issues.txt for the KYC/AML checks the 323 # auditor does not implement yet and that this test therefore leaves out. 324 test_kyc = configure_file( 325 input: 'test-kyc.sh', 326 output: 'test-kyc.sh', 327 copy: true, 328 ) 329 test( 330 'test-kyc', 331 test_kyc, 332 workdir: meson.current_build_dir(), 333 suite: ['auditor', 'installcheck'], 334 is_parallel: false, 335 timeout: 1800, 336 ) 337 # test-revocation audits denomination revocation, which relies on recoup. 338 # The exchange's recoup handlers are currently compiled out (FIXME_9828, 339 # https://bugs.gnunet.org/view.php?id=9828), so the test detects the missing 340 # endpoint and reports itself as skipped until recoup is reimplemented. 341 test_revocation = configure_file( 342 input: 'test-revocation.sh', 343 output: 'test-revocation.sh', 344 copy: true, 345 ) 346 test( 347 'test-revocation', 348 test_revocation, 349 workdir: meson.current_build_dir(), 350 suite: ['auditor', 'installcheck'], 351 is_parallel: false, 352 timeout: 1800, 353 ) 354 test_sync = configure_file( 355 input: 'test-sync.sh', 356 output: 'test-sync.sh', 357 copy: true, 358 ) 359 test( 360 'test-sync', 361 test_sync, 362 workdir: meson.current_build_dir(), 363 suite: ['auditor', 'installcheck'], 364 is_parallel: false, 365 timeout: 1800, 366 ) 367 368 EXTRA_DIST = [ 369 'taler-helper-auditor-render.py', 370 'auditor.conf', 371 'setup.sh', 372 'test-sync-in.conf', 373 'test-sync-out.conf', 374 'generate-auditor-basedb.sh', 375 'generate-auditor-basedb.conf', 376 'generate-kyc-basedb.sh', 377 'generate-kyc-basedb.conf', 378 'generate-revoke-basedb.sh', 379 ] 380 381 foreach f : EXTRA_DIST 382 configure_file(input: f, output: f, copy: true) 383 384 endforeach