Date: Fri, 6 Jan 2023 18:04:59 GMT From: Dimitry Andric <dim@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 9fbb5958d12c - main - graphics/sane-backends: fix build with clang 15 Message-ID: <202301061804.306I4xjs009829@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by dim (src committer): URL: https://cgit.FreeBSD.org/ports/commit/?id=9fbb5958d12c843b3ae52c74a6ecfe5a76623302 commit 9fbb5958d12c843b3ae52c74a6ecfe5a76623302 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-01-05 17:04:52 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-01-06 18:03:41 +0000 graphics/sane-backends: fix build with clang 15 During an exp-run for llvm 15 (see bug 265425), it turned out that graphics/sane-backends failed to build with clang 15: jpegtopdf.c:204:5: error: incompatible pointer to integer conversion assigning to 'long' from 'char *(int, int)' [-Wint-conversion] tz = timezone; ^ ~~~~~~~~ scanimage.c:1248:42: warning: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] png_set_iCCP(*png_ptr, *info_ptr, basename(icc_profile), PNG_COMPRESSION_TYPE_BASE, icc_buffer, icc_size); ^ scanimage.c:1248:42: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'png_const_charp' (aka 'const char *') [-Wint-conversion] png_set_iCCP(*png_ptr, *info_ptr, basename(icc_profile), PNG_COMPRESSION_TYPE_BASE, icc_buffer, icc_size); ^~~~~~~~~~~~~~~~~~~~~ The jpegtopdf error is because 'timezone' as a global external variable does not exist on FreeBSD: it is a glibc-ism. Use struct tm's tm_gmtoff field instead, which also has its sign reversed from the glibc global. The scanimage error is because basename(3) is used without including <libgen.h>. With glibc, basename() is declared in both string.h and libgen.h, where the former gives you the GNU specific variant, and the latter the POSIX variant. PR: 268771 Approved by: vvd@unislabs.com (maintainer) MFH: 2023Q1 --- graphics/sane-backends/files/patch-frontend_jpegtopdf.c | 14 ++++++++++++++ graphics/sane-backends/files/patch-frontend_scanimage.c | 12 ++++++++++++ 2 files changed, 26 insertions(+) diff --git a/graphics/sane-backends/files/patch-frontend_jpegtopdf.c b/graphics/sane-backends/files/patch-frontend_jpegtopdf.c new file mode 100644 index 000000000000..f6e4be53ca79 --- /dev/null +++ b/graphics/sane-backends/files/patch-frontend_jpegtopdf.c @@ -0,0 +1,14 @@ +--- frontend/jpegtopdf.c.orig 2022-01-19 16:38:00 UTC ++++ frontend/jpegtopdf.c +@@ -201,7 +201,11 @@ static SANE_Int _get_current_time( struct tm *pt, SANE + goto EXIT; + } + /* get time difference ( OHH'mm' ) */ ++#ifdef __FreeBSD__ ++ tz = -pt->tm_gmtoff; ++#else + tz = timezone; ++#endif + if ( tz > 0 ) { + *sign_c = '-'; + } diff --git a/graphics/sane-backends/files/patch-frontend_scanimage.c b/graphics/sane-backends/files/patch-frontend_scanimage.c new file mode 100644 index 000000000000..cd7a92a0be01 --- /dev/null +++ b/graphics/sane-backends/files/patch-frontend_scanimage.c @@ -0,0 +1,12 @@ +--- frontend/scanimage.c.orig 2022-01-19 16:38:00 UTC ++++ frontend/scanimage.c +@@ -39,6 +39,9 @@ + #include <string.h> + #include <unistd.h> + #include <stdarg.h> ++#ifdef __FreeBSD__ ++#include <libgen.h> ++#endif + + #include <sys/types.h> + #include <sys/stat.h>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202301061804.306I4xjs009829>