Re: libXfont2 strlcat/strlcpy patch

2019-12-06 Thread Roman Gilg
On Wed, Nov 20, 2019 at 1:53 AM Guillem Jover  wrote:
>
> Hi!
>
> On Sun, 2019-11-03 at 18:08:00 +0100, Roman Gilg wrote:
> > On Wed, Oct 23, 2019 at 5:33 PM Alan Coopersmith wrote:
> > > On 10/23/19 12:48 AM, Michael Joost wrote:
> > > > regarding your recent patch in xorg/libXfont2 (strlcat/strlcpy 
> > > > fallbacks) I ran into a problem on Linux while having libbsd installed. 
> > > > The configure correctly detects libbsd and those functions, however, 
> > > > the macro HAVE_LIBBSD is never defined in this process. The compile 
> > > > then fails with "implicit declaration" error, as the libbsd includes 
> > > > are not loaded from replace.h. When defining this macro manually, 
> > > > everything is fine.
> > > > I think HAVE_LIBBSD should be defined by configure when it has found 
> > > > -lbsd.
> > >
> > > Hmm, I see what you mean, but I've not heard of problems from any other 
> > > Linux
> > > users/distro builders, so perhaps something else is masking it for them?
> > >
> > > I'm cc'ing the list to see if those who work on Linux see the problem, or
> > > want to provide a patch that they can test more easily than I can.
> >
> > I don't know what needs to be done here, but just wanted to say that I
> > experienced strlcat, strlcpy problems when compiling libXfont master
> > branch on Arch as well.
> >
> > I can not build it from commit 2178c7445a on.
>
> The attached patch should fix this. I'm not sure whether it would be
> better to put the LIBBSD flags into the OS ones, but that might
> require more code shuffling.

Indeed this patch fixes it. Can build with it applied on top of master.

Tested-by: Roman Gilg 

> Thanks,
> Guillem
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: libXfont2 strlcat/strlcpy patch

2019-11-19 Thread Guillem Jover
Hi!

On Sun, 2019-11-03 at 18:08:00 +0100, Roman Gilg wrote:
> On Wed, Oct 23, 2019 at 5:33 PM Alan Coopersmith wrote:
> > On 10/23/19 12:48 AM, Michael Joost wrote:
> > > regarding your recent patch in xorg/libXfont2 (strlcat/strlcpy fallbacks) 
> > > I ran into a problem on Linux while having libbsd installed. The 
> > > configure correctly detects libbsd and those functions, however, the 
> > > macro HAVE_LIBBSD is never defined in this process. The compile then 
> > > fails with "implicit declaration" error, as the libbsd includes are not 
> > > loaded from replace.h. When defining this macro manually, everything is 
> > > fine.
> > > I think HAVE_LIBBSD should be defined by configure when it has found 
> > > -lbsd.
> >
> > Hmm, I see what you mean, but I've not heard of problems from any other 
> > Linux
> > users/distro builders, so perhaps something else is masking it for them?
> >
> > I'm cc'ing the list to see if those who work on Linux see the problem, or
> > want to provide a patch that they can test more easily than I can.
> 
> I don't know what needs to be done here, but just wanted to say that I
> experienced strlcat, strlcpy problems when compiling libXfont master
> branch on Arch as well.
> 
> I can not build it from commit 2178c7445a on.

The attached patch should fix this. I'm not sure whether it would be
better to put the LIBBSD flags into the OS ones, but that might
require more code shuffling.

Thanks,
Guillem
From 68f0f226e2209539290e0402b15cddbe32fe7f93 Mon Sep 17 00:00:00 2001
From: Guillem Jover 
Date: Wed, 20 Nov 2019 01:42:52 +0100
Subject: [PATCH libXfont] build: Fix libbsd compatibility layer

Switch to use the libbsd-overlay, which implies less changes to the
actual source code. Get the flags from pkg-config, and apply them during
all header and compatibility checks.

Signed-off-by: Guillem Jover 
---
 Makefile.am|  4 ++--
 configure.ac   | 16 
 src/util/replace.h |  6 --
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 5af2e23..8732c1e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -49,7 +49,7 @@ pkgconfig_DATA = xfont2.pc
 lib_LTLIBRARIES = libXfont2.la
 
 AM_CPPFLAGS = -I${top_srcdir}/include
-AM_CFLAGS = $(XFONT_CFLAGS) $(OS_CFLAGS) $(CWARNFLAGS)
+AM_CFLAGS = $(XFONT_CFLAGS) $(LIBBSD_CFLAGS) $(OS_CFLAGS) $(CWARNFLAGS)
 
 libXfont2_la_SOURCES =			\
 	src/stubs/atom.c		\
@@ -66,7 +66,7 @@ libXfont2_la_SOURCES =			\
 
 libXfont2_la_LDFLAGS = -version-number 2:0:0 -no-undefined
 
-libXfont2_la_LIBADD = $(Z_LIBS) $(MATH_LIBS) $(XFONT_LIBS) $(LTLIBOBJS)
+libXfont2_la_LIBADD = $(LIBBSD_LIBS) $(Z_LIBS) $(MATH_LIBS) $(XFONT_LIBS) $(LTLIBOBJS)
 
 if XFONT_FONTFILE
 libXfont2_la_SOURCES +=			\
diff --git a/configure.ac b/configure.ac
index e497325..7cc2fce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -47,21 +47,29 @@ XORG_WITH_XMLTO(0.0.22)
 XORG_WITH_FOP
 XORG_CHECK_SGML_DOCTOOLS(1.7)
 
+# If the first PKG_CHECK_MODULES appears inside a conditional, pkg-config
+# must first be located explicitly.
+PKG_PROG_PKG_CONFIG
+
+PKG_CHECK_MODULES(LIBBSD, [libbsd-overlay])
+save_CFLAGS="$CFLAGS"
+save_LIBS="$LIBS"
+CFLAGS="$CFLAGS $LIBBSD_CFLAGS"
+LIBS="$LIBS $LIBBSD_LIBS"
+
 # Checks for header files.
 AC_CHECK_HEADERS([endian.h poll.h sys/poll.h])
 
 # Checks for library functions.
 AC_CHECK_FUNCS([poll readlink])
-AC_SEARCH_LIBS([strlcat], [bsd])
 AC_CONFIG_LIBOBJ_DIR([src/util])
 AC_REPLACE_FUNCS([reallocarray realpath strlcat strlcpy])
 
 # Check for BSDish err.h
 AC_CHECK_HEADERS([err.h])
 
-# If the first PKG_CHECK_MODULES appears inside a conditional, pkg-config
-# must first be located explicitly.
-PKG_PROG_PKG_CONFIG
+CFLAGS="$save_CFLAGS"
+LIBS="$save_LIBS"
 
 #
 # select libraries to include
diff --git a/src/util/replace.h b/src/util/replace.h
index 53a81a2..367a1fd 100644
--- a/src/util/replace.h
+++ b/src/util/replace.h
@@ -32,9 +32,6 @@
 #include 
 
 #include 
-#if defined(HAVE_LIBBSD) && defined(HAVE_REALLOCARRAY)
-#include/* for reallocarray */
-#endif
 
 #ifndef HAVE_REALLOCARRAY
 extern _X_HIDDEN void *
@@ -46,9 +43,6 @@ reallocarray(void *optr, size_t nmemb, size_t size);
 #endif
 
 #include 
-#if defined(HAVE_LIBBSD) && defined(HAVE_STRLCPY)
-#include/* for strlcpy, strlcat */
-#endif
 
 #ifndef HAVE_STRLCPY
 extern _X_HIDDEN size_t
-- 
2.24.0.432.g9d3f5f5b63

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: libXfont2 strlcat/strlcpy patch

2019-11-03 Thread Roman Gilg
On Wed, Oct 23, 2019 at 5:33 PM Alan Coopersmith
 wrote:
>
> On 10/23/19 12:48 AM, Michael Joost wrote:
> > Hi Alan,
> >
> > regarding your recent patch in xorg/libXfont2 (strlcat/strlcpy fallbacks) I 
> > ran into a problem on Linux while having libbsd installed. The configure 
> > correctly detects libbsd and those functions, however, the macro 
> > HAVE_LIBBSD is never defined in this process. The compile then fails with 
> > "implicit declaration" error, as the libbsd includes are not loaded from 
> > replace.h. When defining this macro manually, everything is fine.
> > I think HAVE_LIBBSD should be defined by configure when it has found -lbsd.
>
> Hmm, I see what you mean, but I've not heard of problems from any other Linux
> users/distro builders, so perhaps something else is masking it for them?
>
> I'm cc'ing the list to see if those who work on Linux see the problem, or
> want to provide a patch that they can test more easily than I can.

Hi,

I don't know what needs to be done here, but just wanted to say that I
experienced strlcat, strlcpy problems when compiling libXfont master
branch on Arch as well.

I can not build it from commit 2178c7445a on.

Cheers
Roman

> --
> -Alan Coopersmith-   alan.coopersm...@oracle.com
>  Oracle Solaris Engineering - https://blogs.oracle.com/alanc
> ___
> xorg-devel@lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: libXfont2 strlcat/strlcpy patch

2019-10-23 Thread Alan Coopersmith

On 10/23/19 12:48 AM, Michael Joost wrote:

Hi Alan,

regarding your recent patch in xorg/libXfont2 (strlcat/strlcpy fallbacks) I ran into a 
problem on Linux while having libbsd installed. The configure correctly detects libbsd 
and those functions, however, the macro HAVE_LIBBSD is never defined in this process. The 
compile then fails with "implicit declaration" error, as the libbsd includes 
are not loaded from replace.h. When defining this macro manually, everything is fine.
I think HAVE_LIBBSD should be defined by configure when it has found -lbsd.


Hmm, I see what you mean, but I've not heard of problems from any other Linux
users/distro builders, so perhaps something else is masking it for them?

I'm cc'ing the list to see if those who work on Linux see the problem, or
want to provide a patch that they can test more easily than I can.

--
-Alan Coopersmith-   alan.coopersm...@oracle.com
 Oracle Solaris Engineering - https://blogs.oracle.com/alanc
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel