diff options
author | Daan De Meyer <daan.j.demeyer@gmail.com> | 2022-10-14 14:21:43 +0200 |
---|---|---|
committer | Daan De Meyer <daan.j.demeyer@gmail.com> | 2022-10-17 08:45:16 +0200 |
commit | 3f5225d7f301f70c9418122cf1e1989ccb33ea76 (patch) | |
tree | 1ed5d88c7b502e8cab4f196712b7cbab61912644 | |
parent | d388f3d7237c5bd37ecb1187acf81c07b4dce8ae (diff) | |
download | systemd-3f5225d7f301f70c9418122cf1e1989ccb33ea76.tar.gz |
qrcode-util: Add support for libqrencode 3.0
They didn't actually change API between major versions, so let's
support the previous version as well so we can add CentOS 8 Stream
back to CI.
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | src/shared/qrcode-util.c | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/meson.build b/meson.build index 2c6a061a90..dfe18f7e7b 100644 --- a/meson.build +++ b/meson.build @@ -1388,7 +1388,7 @@ conf.set10('HAVE_LIBIPTC', have) want_qrencode = get_option('qrencode') if want_qrencode != 'false' and not skip_deps libqrencode = dependency('libqrencode', - version : '>= 4', + version : '>= 3', required : want_qrencode == 'true') have = libqrencode.found() else diff --git a/src/shared/qrcode-util.c b/src/shared/qrcode-util.c index 1ad3474b3f..4a33c28bf2 100644 --- a/src/shared/qrcode-util.c +++ b/src/shared/qrcode-util.c @@ -8,6 +8,7 @@ #include "dlfcn-util.h" #include "locale-util.h" #include "log.h" +#include "strv.h" #include "terminal-util.h" #define ANSI_WHITE_ON_BLACK "\033[40;37;1m" @@ -21,10 +22,18 @@ static QRcode* (*sym_QRcode_encodeString)(const char *string, int version, QRecL static void (*sym_QRcode_free)(QRcode *qrcode) = NULL; int dlopen_qrencode(void) { - return dlopen_many_sym_or_warn( - &qrcode_dl, "libqrencode.so.4", LOG_DEBUG, + int r; + + FOREACH_STRING(s, "libqrencode.so.4", "libqrencode.so.3") { + r = dlopen_many_sym_or_warn( + &qrcode_dl, s, LOG_DEBUG, DLSYM_ARG(QRcode_encodeString), DLSYM_ARG(QRcode_free)); + if (r >= 0) + break; + } + + return r; } static void print_border(FILE *output, unsigned width) { |