meson.build (10531B)
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-historic-reserve-summary.c', 255 'taler-auditor-httpd_get-monitoring-wire-format-inconsistency.c', 256 'taler-auditor-httpd_get-monitoring-wire-out-inconsistency.c', 257 'taler-auditor-httpd_get-monitoring-reserve-balance-summary-wrong-inconsistency.c', 258 'taler-auditor-httpd_get-monitoring-row-minor-inconsistencies.c', 259 'taler-auditor-httpd_get-monitoring-fee-time-inconsistency.c', 260 'taler-auditor-httpd_get-monitoring-balances.c', 261 'taler-auditor-httpd_mhd.c', 262 ] 263 264 executable( 265 'taler-auditor-httpd', 266 taler_auditor_httpd_SOURCES, 267 dependencies: [ 268 libtalermhd_dep, 269 libtalerutil_dep, 270 libtalerjson_dep, 271 libtalerexchangedb_dep, 272 libtalerauditordb_dep, 273 gnunetutil_dep, 274 gnunetjson_dep, 275 zlib_dep, 276 mhd_dep, 277 json_dep, 278 gcrypt_dep, 279 ], 280 include_directories: [incdir, configuration_inc], 281 install: true, 282 ) 283 284 285 executable( 286 'taler-auditor-sync', 287 ['taler-auditor-sync.c'], 288 dependencies: [ 289 libtalerutil_dep, 290 libtalerjson_dep, 291 libtalerexchangedb_dep, 292 libtalerpq_dep, 293 gnunetutil_dep, 294 gnunetjson_dep, 295 gcrypt_dep, 296 ], 297 include_directories: [incdir, configuration_inc], 298 install: true, 299 ) 300 301 302 # These tests audit a pre-generated reference database, so they need the 303 # wallet to pick the same coins on every run: the generator scripts set 304 # TALER_WALLET_COINSEL=legacy-2024 for that (bug #11272). They are in the 305 # 'installcheck' suite because they drive installed binaries and need 306 # Postgres superuser rights. 307 test_auditor = configure_file( 308 input: 'test-auditor.sh', 309 output: 'test-auditor.sh', 310 copy: true, 311 ) 312 test( 313 'test-auditor', 314 test_auditor, 315 workdir: meson.current_build_dir(), 316 suite: ['auditor', 'installcheck'], 317 is_parallel: false, 318 timeout: 1800, 319 ) 320 # test-kyc audits a reference database produced by a KYC-enabled exchange 321 # (generate-kyc-basedb.sh). See issues.txt for the KYC/AML checks the 322 # auditor does not implement yet and that this test therefore leaves out. 323 test_kyc = configure_file( 324 input: 'test-kyc.sh', 325 output: 'test-kyc.sh', 326 copy: true, 327 ) 328 test( 329 'test-kyc', 330 test_kyc, 331 workdir: meson.current_build_dir(), 332 suite: ['auditor', 'installcheck'], 333 is_parallel: false, 334 timeout: 1800, 335 ) 336 # test-revocation audits denomination revocation, which relies on recoup. 337 # The exchange's recoup handlers are currently compiled out (FIXME_9828, 338 # https://bugs.gnunet.org/view.php?id=9828), so the test detects the missing 339 # endpoint and reports itself as skipped until recoup is reimplemented. 340 test_revocation = configure_file( 341 input: 'test-revocation.sh', 342 output: 'test-revocation.sh', 343 copy: true, 344 ) 345 test( 346 'test-revocation', 347 test_revocation, 348 workdir: meson.current_build_dir(), 349 suite: ['auditor', 'installcheck'], 350 is_parallel: false, 351 timeout: 1800, 352 ) 353 test_sync = configure_file( 354 input: 'test-sync.sh', 355 output: 'test-sync.sh', 356 copy: true, 357 ) 358 test( 359 'test-sync', 360 test_sync, 361 workdir: meson.current_build_dir(), 362 suite: ['auditor', 'installcheck'], 363 is_parallel: false, 364 timeout: 1800, 365 ) 366 367 EXTRA_DIST = [ 368 'taler-helper-auditor-render.py', 369 'auditor.conf', 370 'auditor-test-scenario.sh', 371 'auditor-test-shell.sh', 372 'setup.sh', 373 'test-sync-in.conf', 374 'test-sync-out.conf', 375 'generate-auditor-basedb.sh', 376 'generate-auditor-basedb.conf', 377 'generate-kyc-basedb.sh', 378 'generate-kyc-basedb.conf', 379 'generate-revoke-basedb.sh', 380 ] 381 382 foreach f : EXTRA_DIST 383 configure_file(input: f, output: f, copy: true) 384 385 endforeach