Re: Gutenprint 5.3.5-pre1 Release

Greg Troxel <[email protected]> Tue, 09 Jul 2024 20:22:48 -0400
Newsgroups gmane.linux.printing.gimp-print.devel
Message-ID <[email protected]>
I'm building on NetBSD 10 amd64.

Building this is going much better than my memory of 5.3.4 (which I'm
happy to ignore as superceded; I am seeing pre1 as sort of alpha, maybe
before, to head to a release).  But it may be exactly the same and I
gave up earlier, even though this seems obviously fairly easy to resolve.

I was able to drop multiple patches that removed bashisms (test ==, test
[[), some of which I reported long ago and some of which I probably
didn't.  I'm so far down to 1 patch to find lpstat where pkgsrc puts it.

I noticed configure looking for gnu11.  I can't find in README where
this is described, or if it's new.

Most of the build was fine, and not even any warnings.

There are a bunch of gtk deprecation warnings, but I'm guessing they are
well known.  If not happy to extract and send them.

I have residual compile failures (make -k after previous make -k), and
it looks like N instances of the same issue.

tldr: It seems like the system endian defines are being overwritten.
I'll look harder.

  gmake[3]: Entering directory '/tmp/work/print/gutenprint-lib/work/gutenprint-5.3.5-pre1/src/cups'
    CC       gutenprint_5.3-gutenprint.o
  In file included from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/http.h:40,
                   from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/ipp.h:19,
                   from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/cups.h:28,
                   from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/raster.h:21,
                   from genppd.h:56,
                   from gutenprint.c:40:
  /usr/include/netinet/ip.h:57:15: error: duplicate member 'ip_v'
     57 |  unsigned int ip_v:4,  /* version */
        |               ^~~~
  /usr/include/netinet/ip.h:58:8: error: duplicate member 'ip_hl'
     58 |        ip_hl:4;  /* header length */
        |        ^~~~~
  /usr/include/netinet/ip.h:202:15: error: duplicate member 'ipt_oflw'
    202 |  unsigned int ipt_oflw:4, /* overflow counter */
        |               ^~~~~~~~
  /usr/include/netinet/ip.h:203:8: error: duplicate member 'ipt_flg'
    203 |        ipt_flg:4;  /* flags, see below */
        |        ^~~~~~~
  In file included from /usr/include/stddef.h:37,
                   from ../../include/gutenprint/gutenprint.h:44,
                   from i18n.h:20,
                   from genppd.h:36,
                   from gutenprint.c:40:
  /usr/include/netinet/ip.h:252:1: error: negative width in bit-field '__ctassert1'
    252 | __CTASSERT(sizeof(struct ip) == 20);
        | ^~~~~~~~~~
  /usr/include/netinet/ip.h:253:1: error: negative width in bit-field '__ctassert2'
    253 | __CTASSERT(sizeof(struct ip_timestamp) == 12);
        | ^~~~~~~~~~
  gmake[3]: *** [Makefile:1619: gutenprint_5.3-gutenprint.o] Error 1


The header has

  struct ip {
  #if BYTE_ORDER == LITTLE_ENDIAN
          unsigned int ip_hl:4,           /* header length */
                       ip_v:4;            /* version */
  #endif
  #if BYTE_ORDER == BIG_ENDIAN
          unsigned int ip_v:4,            /* version */
                       ip_hl:4;           /* header length */
  #endif

so I wonder if LITTLE_ENDIAN and BIG_ENDIAN are getting defined to the
the same.

On NetBSD (and perhaps other bsd):

  /usr/include/sys/endian.h:#define       LITTLE_ENDIAN   1234            /* LSB first: i386, vax */
  /usr/include/sys/endian.h:#define       BIG_ENDIAN      4321            /* MSB first: 68000, ibm, net */

and this is included by sys/types.h.

Any clues appreciated.