]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
qrcode-util: Add support for libqrencode 3.0
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 14 Oct 2022 12:21:43 +0000 (14:21 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 17 Oct 2022 06:45:16 +0000 (08:45 +0200)
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.

meson.build
src/shared/qrcode-util.c

index 2c6a061a90ab1ece6200069c6c20ab33dec1abc5..dfe18f7e7b0c91e99fdb07b46da9540ba8cdfaeb 100644 (file)
@@ -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
index 1ad3474b3f2d266456dde4e4d4025d287bdff3d8..4a33c28bf2664a80f6f8d25bda5a56de60f167bd 100644 (file)
@@ -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) {