Code Monkey home page Code Monkey logo

libpaper's People

Contributors

bitstreamout avatar diizzyy avatar rrthomas avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

libpaper's Issues

COPYING is LGPL

README suggests that COPYING is the GPL but it is the LGPL (same file as COPYING-LGPL).

Source tarball without bundled gnulib source code

Hi,

I'm libpaper maintainer in Fedora. I was inspecting your new version of libpaper and found out you bundle the gnulib source code into source tarball, which you compile and link with libpaper.

Though I understand the intent to being able to use libpaper across the platforms, it creates difficulties for maintainers in case there is a bug or security vulnerability in the bundled code - then the fixing will require changes in the original package in OS, and then in every other package which bundles the vulnerable code, which makes OS more prone to issues if someone forgets to fix the bundled code...

Would it be possible to release a special source tarball which would use gnulib from the system? It would help a lot with packaging and maintenance.

"make check" fails on Debian Bullseye (11)

The product was built from the Github repository per instructions. A complete log follows in parts:

./bootstrap
bootstrap: running: /bin/libtoolize --quiet
bootstrap: running: git submodule init -- gnulib
bootstrap: running: git submodule update -- gnulib
bootstrap: running: git submodule init -- gl-mod/bootstrap
bootstrap: running: git submodule update -- gl-mod/bootstrap
bootstrap: running: gnulib/gnulib-tool --no-changelog --makefile-name=Makefile.gnulib --aux-dir=build-aux --m4-base=m4 --doc-base=doc --lib=libgnu --local-dir=gl --local-dir=gl-mod/bootstrap --source-base=libgnu --libtool --symlink --import bootstrap filenamecat-lgpl...
Module list with included dependencies (indented):
    absolute-header
    basename-lgpl
  bootstrap
    c99
    double-slash-root
    errno
    extensions
    extern-inline
    extract-trace
    filename
  filenamecat-lgpl
  free-posix
    funclib.sh
    getdelim
  getline
  getopt-gnu
    getopt-posix
    gettext-h
    include_next
    inline-source
    limits-h
    malloc-posix
  manywarnings
    multiarch
    nocrash
    options-parser
  pathmax
  realloc-posix
  relocatable-lib-lgpl
  relocatable-script
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    std-gnu11
    stdbool
    stddef
    stdint
    stdio
    stdlib
  strcase
    string
    strings
  strndup
    strnlen
    sys_types
    unistd
    warnings
File list:
  build-aux/bootstrap.in
  build-aux/extract-trace
  build-aux/funclib.sh
  build-aux/inline-source
  build-aux/options-parser
  build-aux/relocatable.sh.in
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/arg-nonnull.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/errno.in.h
  lib/filename.hbootstrap: running: /bin/libtoolize --quiet
bootstrap: running: git submodule init -- gnulib
bootstrap: running: git submodule update -- gnulib
bootstrap: running: git submodule init -- gl-mod/bootstrap
bootstrap: running: git submodule update -- gl-mod/bootstrap
bootstrap: running: gnulib/gnulib-tool --no-changelog --makefile-name=Makefile.gnulib --aux-dir=build-aux --m4-base=m4 --doc-base=doc --lib=libgnu --local-dir=gl --local-dir=gl-mod/bootstrap --source-base=libgnu --libtool --symlink --import bootstrap filenamecat-lgpl...
Module list with included dependencies (indented):
    absolute-header
    basename-lgpl
  bootstrap
    c99
    double-slash-root
    errno
    extensions
    extern-inline
    extract-trace
    filename
  filenamecat-lgpl
  free-posix
    funclib.sh
    getdelim
  getline
  getopt-gnu
    getopt-posix
    gettext-h
    include_next
    inline-source
    limits-h
    malloc-posix
  manywarnings
    multiarch
    nocrash
    options-parser
  pathmax
  realloc-posix
  relocatable-lib-lgpl
  relocatable-script
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    std-gnu11
    stdbool
    stddef
    stdint
    stdio
    stdlib
  strcase
    string
    strings
  strndup
    strnlen
    sys_types
    unistd
    warnings
File list:
  build-aux/bootstrap.in
  build-aux/extract-trace
  build-aux/funclib.sh
  build-aux/inline-source
  build-aux/options-parser
  build-aux/relocatable.sh.in
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/arg-nonnull.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/errno.in.h
  lib/filename.h
  lib/filenamecat-lgpl.c
  lib/filenamecat.h
  lib/free.c
  lib/getdelim.c
  lib/getline.c
  lib/getopt-cdefs.in.h
  lib/getopt-core.h
  lib/getopt-ext.h
  lib/getopt-pfx-core.h
  lib/getopt-pfx-ext.h
  lib/getopt.c
  lib/getopt.in.h
  lib/getopt1.c
  lib/getopt_int.h
  lib/gettext.h
  lib/limits.in.h
  lib/malloc.c
  lib/pathmax.h
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocatable.valgrind
  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/strcasecmp.c
  lib/string.in.h
  lib/strings.in.h
  lib/strncasecmp.c
  lib/strndup.c
  lib/strnlen.c
  lib/sys_types.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/warn-on-use.h
  m4/00gnulib.m4
  m4/absolute-header.m4
  m4/double-slash-root.m4
  m4/errno_h.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/filenamecat.m4
  m4/free.m4
  m4/getdelim.m4
  m4/getline.m4
  m4/getopt.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/limits-h.m4
  m4/malloc.m4
  m4/manywarnings-c++.m4
  m4/manywarnings.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/ssize_t.m4
  m4/std-gnu11.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strcase.m4
  m4/string_h.m4
  m4/strings_h.m4
  m4/strndup.m4
  m4/strnlen.m4
  m4/sys_types_h.m4
  m4/unistd_h.m4
  m4/warn-on-use.m4
  m4/warnings.m4
  m4/wchar_t.m4
  m4/wint_t.m4
  m4/zzgnulib.m4
Copying file m4/manywarnings-c++.m4
Creating m4/gnulib-cache.m4
Finished.

You may need to add #include directives for the following .h files.
  #include <getopt.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <strings.h>
  #include "filenamecat.h"
  #include "pathmax.h"
  #include "relocatable.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "libgnu/Makefile.am",
  - mention "-I m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in Makefile.am,
  - invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_INIT in ./configure.ac.
Module list with included dependencies (indented):
    absolute-header
    alloca-opt
    allocator
    areadlink
    attribute
    basename-lgpl
    c-ctype
    c-strcase
    c-strcaseeq
    c99
    canonicalize-lgpl
    careadlinkat
    cloexec
    close
    double-slash-root
    dup2
    eloop-threshold
    environ
    errno
    error
    exitfail
    extensions
    extern-inline
    fcntl
    fcntl-h
    fd-hook
    filename
    float
    free-posix
    fstat
    getdtablesize
    getprogname
    gettext-h
    hard-locale
    idx
    include_next
    intprops
    inttypes-incomplete
    largefile
    libc-config
    limits-h
    localcharset
    locale
    malloc-posix
    malloca
    mbrtowc
    mbsinit
    memchr
    mempcpy
    minmax
    msvc-inval
    msvc-nothrow
    multiarch
    nocrash
    open
    pathmax
  progname
  quote
    quotearg
    quotearg-simple
    rawmemchr
    readlink
    realloc-posix
  relocatable-prog
    relocatable-prog-wrapper
    scratch_buffer
    setlocale-null
    size_max
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    stat
    stat-time
    std-gnu11
    stdarg
    stdbool
    stddef
    stdint
    stdio
    stdlib
    streq
    strerror
    strerror-override
    string
    sys_stat
    sys_types
    time
    unistd
    vasnprintf
    vasprintf
    verify
    wchar
    wctype-h
    xalloc
    xalloc-die
    xalloc-oversized
    xreadlink
    xsize
  xvasprintf
Notice from module error:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=error:3:c-format --flag=error_at_line:5:c-format
Notice from module vasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=asprintf:2:c-format --flag=vasprintf:2:c-format
Notice from module xvasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars: --flag=xasprintf:1:c-format
File list:
  build-aux/config.libpath
  build-aux/install-reloc
  build-aux/libtool-reloc
  build-aux/reloc-ldflags
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/alloca.in.h
  lib/allocator.c
  lib/allocator.h
  lib/areadlink.c
  lib/areadlink.h
  lib/arg-nonnull.h
  lib/asnprintf.c
  lib/asprintf.c
  lib/attribute.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/c-ctype.c
  lib/c-ctype.h
  lib/c-strcase.h
  lib/c-strcasecmp.c
  lib/c-strcaseeq.h
  lib/c-strncasecmp.c
  lib/canonicalize-lgpl.c
  lib/careadlinkat.c
  lib/careadlinkat.h
  lib/cdefs.h
  lib/cloexec.c
  lib/cloexec.h
  lib/close.c
  lib/dup2.c
  lib/eloop-threshold.h
  lib/errno.in.h
  lib/error.c
  lib/error.h
  lib/exitfail.c
  lib/exitfail.h
  lib/fcntl.c
  lib/fcntl.in.h
  lib/fd-hook.c
  lib/fd-hook.h
  lib/filename.h
  lib/float+.h
  lib/float.c
  lib/float.in.h
  lib/free.c
  lib/fstat.c
  lib/getdtablesize.c
  lib/getprogname.c
  lib/getprogname.h
  lib/gettext.h
  lib/hard-locale.c
  lib/hard-locale.h
  lib/idx.h
  lib/intprops.h
  lib/inttypes.in.h
  lib/itold.c
  lib/lc-charset-dispatch.c
  lib/lc-charset-dispatch.h
  lib/libc-config.h
  lib/limits.in.h
  lib/localcharset.c
  lib/localcharset.h
  lib/locale.in.h
  lib/malloc.c
  lib/malloc/scratch_buffer.h
  lib/malloc/scratch_buffer_dupfree.c
  lib/malloc/scratch_buffer_grow.c
  lib/malloc/scratch_buffer_grow_preserve.c
  lib/malloc/scratch_buffer_set_array_size.c
  lib/malloca.c
  lib/malloca.h
  lib/mbrtowc-impl-utf8.h
  lib/mbrtowc-impl.h
  lib/mbrtowc.c
  lib/mbsinit.c
  lib/mbtowc-lock.c
  lib/mbtowc-lock.h
  lib/memchr.c
  lib/memchr.valgrind
  lib/mempcpy.c
  lib/minmax.h
  lib/msvc-inval.c
  lib/msvc-inval.h
  lib/msvc-nothrow.c
  lib/msvc-nothrow.h
  lib/open.c
  lib/pathmax.h
  lib/printf-args.c
  lib/printf-args.h
  lib/printf-parse.c
  lib/printf-parse.h
  lib/progname.c
  lib/progname.h
  lib/progreloc.c
  lib/quote.h
  lib/quotearg.c
  lib/quotearg.h
  lib/rawmemchr.c
  lib/rawmemchr.valgrind
  lib/readlink.c
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocwrapper.c
  lib/scratch_buffer.h
  lib/setenv.c
  lib/setlocale-lock.c
  lib/setlocale_null.c
  lib/setlocale_null.h
  lib/size_max.h
  lib/stat-time.c
  lib/stat-time.h
  lib/stat-w32.c
  lib/stat-w32.h
  lib/stat.c
  lib/stdarg.in.h
  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/streq.h
  lib/strerror-override.c
  lib/strerror-override.h
  lib/strerror.c
  lib/string.in.h
  lib/sys_stat.in.h
  lib/sys_types.in.h
  lib/time.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/vasnprintf.c
  lib/vasnprintf.h
  lib/vasprintf.c
  lib/verify.h
  lib/warn-on-use.h
  lib/wchar.in.h
  lib/wctype-h.c
  lib/wctype.in.h
  lib/windows-initguard.h
  lib/xalloc-die.c
  lib/xalloc-oversized.h
  lib/xalloc.h
  lib/xasprintf.c
  lib/xmalloc.c
  lib/xreadlink.c
  lib/xreadlink.h
  lib/xsize.c
  lib/xsize.h
  lib/xvasprintf.c
  lib/xvasprintf.h
  m4/00gnulib.m4
  m4/__inline.m4
  m4/absolute-header.m4
  m4/alloca.m4
  m4/canonicalize.m4
  m4/close.m4
  m4/codeset.m4
  m4/double-slash-root.m4
  m4/dup2.m4
  m4/eealloc.m4
  m4/environ.m4
  m4/errno_h.m4
  m4/error.m4
  m4/exponentd.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/fcntl-o.m4
  m4/fcntl.m4
  m4/fcntl_h.m4
  m4/float_h.m4
  m4/free.m4
  m4/fstat.m4
  m4/getdtablesize.m4
  m4/getprogname.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/intmax_t.m4
  m4/inttypes.m4
  m4/inttypes_h.m4
  m4/largefile.m4
  m4/lib-ld.m4
  m4/limits-h.m4
  m4/localcharset.m4
  m4/locale-fr.m4
  m4/locale-ja.m4
  m4/locale-zh.m4
  m4/locale_h.m4
  m4/lstat.m4
  m4/malloc.m4
  m4/malloca.m4
  m4/math_h.m4
  m4/mbrtowc.m4
  m4/mbsinit.m4
  m4/mbstate_t.m4
  m4/memchr.m4
  m4/mempcpy.m4
  m4/minmax.m4
  m4/mmap-anon.m4
  m4/mode_t.m4
  m4/msvc-inval.m4
  m4/msvc-nothrow.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/open-cloexec.m4
  m4/open-slash.m4
  m4/open.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/printf.m4
  m4/quote.m4
  m4/quotearg.m4
  m4/rawmemchr.m4
  m4/readlink.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/relocatable.m4
  m4/setenv.m4
  m4/setlocale_null.m4
  m4/size_max.m4
  m4/ssize_t.m4
  m4/stat-time.m4
  m4/stat.m4
  m4/std-gnu11.m4
  m4/stdarg.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdint_h.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strerror.m4
  m4/string_h.m4
  m4/sys_socket_h.m4
  m4/sys_stat_h.m4
  m4/sys_types_h.m4
  m4/threadlib.m4
  m4/time_h.m4
  m4/unistd_h.m4
  m4/vasnprintf.m4
  m4/vasprintf.m4
  m4/visibility.m4
  m4/warn-on-use.m4
  m4/wchar_h.m4
  m4/wchar_t.m4
  m4/wctype_h.m4
  m4/wint_t.m4
  m4/xalloc.m4
  m4/xsize.m4
  m4/xvasprintf.m4
  m4/zzgnulib.m4
Finished.

You may need to add #include directives for the following .h files.
  #include "progname.h"
  #include "quote.h"
  #include "relocatable.h"
  #include "xvasprintf.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LIB_HARD_LOCALE)
  $(LIB_MBRTOWC)
  $(LIB_SETLOCALE_NULL)
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "src/libgnu/Makefile.am",
  - mention "-I src/m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in src/Makefile.am,
  - invoke gl_paper_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_paper_INIT in ./configure.ac.
bootstrap: running: autoreconf --symlink --install
bootstrap: Done.  Now you can run './configure'.

  lib/filenamecat-lgpl.c
  lib/filenamecat.h
  lib/free.c
  lib/getdelim.c
  lib/getline.c
  lib/getopt-cdefs.in.h
  lib/getopt-core.h
  lib/getopt-ext.h
  lib/getopt-pfx-core.h
  lib/getopt-pfx-ext.h
  lib/getopt.c
  lib/getopt.in.h
  lib/getopt1.c
  lib/getopt_int.h
  lib/gettext.h
  lib/limits.in.h
  lib/malloc.cbootstrap: running: /bin/libtoolize --quiet
bootstrap: running: git submodule init -- gnulib
bootstrap: running: git submodule update -- gnulib
bootstrap: running: git submodule init -- gl-mod/bootstrap
bootstrap: running: git submodule update -- gl-mod/bootstrap
bootstrap: running: gnulib/gnulib-tool --no-changelog --makefile-name=Makefile.gnulib --aux-dir=build-aux --m4-base=m4 --doc-base=doc --lib=libgnu --local-dir=gl --local-dir=gl-mod/bootstrap --source-base=libgnu --libtool --symlink --import bootstrap filenamecat-lgpl...
Module list with included dependencies (indented):
    absolute-header
    basename-lgpl
  bootstrap
    c99
    double-slash-root
    errno
    extensions
    extern-inline
    extract-trace
    filename
  filenamecat-lgpl
  free-posix
    funclib.sh
    getdelim
  getline
  getopt-gnu
    getopt-posix
    gettext-h
    include_next
    inline-source
    limits-h
    malloc-posix
  manywarnings
    multiarch
    nocrash
    options-parser
  pathmax
  realloc-posix
  relocatable-lib-lgpl
  relocatable-script
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    std-gnu11
    stdbool
    stddef
    stdint
    stdio
    stdlib
  strcase
    string
    strings
  strndup
    strnlen
    sys_types
    unistd
    warnings
File list:
  build-aux/bootstrap.in
  build-aux/extract-trace
  build-aux/funclib.sh
  build-aux/inline-source
  build-aux/options-parser
  build-aux/relocatable.sh.in
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/arg-nonnull.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/errno.in.h
  lib/filename.h
  lib/filenamecat-lgpl.c
  lib/filenamecat.h
  lib/free.c
  lib/getdelim.c
  lib/getline.c
  lib/getopt-cdefs.in.h
  lib/getopt-core.h
  lib/getopt-ext.h
  lib/getopt-pfx-core.h
  lib/getopt-pfx-ext.h
  lib/getopt.c
  lib/getopt.in.h
  lib/getopt1.c
  lib/getopt_int.h
  lib/gettext.h
  lib/limits.in.h
  lib/malloc.c
  lib/pathmax.h
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocatable.valgrind
  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/strcasecmp.c
  lib/string.in.h
  lib/strings.in.h
  lib/strncasecmp.c
  lib/strndup.c
  lib/strnlen.c
  lib/sys_types.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/warn-on-use.h
  m4/00gnulib.m4
  m4/absolute-header.m4
  m4/double-slash-root.m4
  m4/errno_h.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/filenamecat.m4
  m4/free.m4
  m4/getdelim.m4
  m4/getline.m4
  m4/getopt.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/limits-h.m4
  m4/malloc.m4
  m4/manywarnings-c++.m4
  m4/manywarnings.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/ssize_t.m4
  m4/std-gnu11.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strcase.m4
  m4/string_h.m4
  m4/strings_h.m4
  m4/strndup.m4
  m4/strnlen.m4
  m4/sys_types_h.m4
  m4/unistd_h.m4
  m4/warn-on-use.m4
  m4/warnings.m4
  m4/wchar_t.m4
  m4/wint_t.m4
  m4/zzgnulib.m4
Copying file m4/manywarnings-c++.m4
Creating m4/gnulib-cache.m4
Finished.

You may need to add #include directives for the following .h files.
  #include <getopt.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <strings.h>
  #include "filenamecat.h"
  #include "pathmax.h"
  #include "relocatable.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "libgnu/Makefile.am",
  - mention "-I m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in Makefile.am,
  - invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_INIT in ./configure.ac.
Module list with included dependencies (indented):
    absolute-header
    alloca-opt
    allocator
    areadlink
    attribute
    basename-lgpl
    c-ctype
    c-strcase
    c-strcaseeq
    c99
    canonicalize-lgpl
    careadlinkat
    cloexec
    close
    double-slash-root
    dup2
    eloop-threshold
    environ
    errno
    error
    exitfail
    extensions
    extern-inline
    fcntl
    fcntl-h
    fd-hook
    filename
    float
    free-posix
    fstat
    getdtablesize
    getprogname
    gettext-h
    hard-locale
    idx
    include_next
    intprops
    inttypes-incomplete
    largefile
    libc-config
    limits-h
    localcharset
    locale
    malloc-posix
    malloca
    mbrtowc
    mbsinit
    memchr
    mempcpy
    minmax
    msvc-inval
    msvc-nothrow
    multiarch
    nocrash
    open
    pathmax
  progname
  quote
    quotearg
    quotearg-simple
    rawmemchr
    readlink
    realloc-posix
  relocatable-prog
    relocatable-prog-wrapper
    scratch_buffer
    setlocale-null
    size_max
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    stat
    stat-time
    std-gnu11
    stdarg
    stdbool
    stddef
    stdint
    stdio
    stdlib
    streq
    strerror
    strerror-override
    string
    sys_stat
    sys_types
    time
    unistd
    vasnprintf
    vasprintf
    verify
    wchar
    wctype-h
    xalloc
    xalloc-die
    xalloc-oversized
    xreadlink
    xsize
  xvasprintf
Notice from module error:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=error:3:c-format --flag=error_at_line:5:c-format
Notice from module vasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=asprintf:2:c-format --flag=vasprintf:2:c-format
Notice from module xvasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars: --flag=xasprintf:1:c-format
File list:
  build-aux/config.libpath
  build-aux/install-reloc
  build-aux/libtool-reloc
  build-aux/reloc-ldflags
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/alloca.in.h
  lib/allocator.c
  lib/allocator.h
  lib/areadlink.c
  lib/areadlink.h
  lib/arg-nonnull.h
  lib/asnprintf.c
  lib/asprintf.c
  lib/attribute.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/c-ctype.c
  lib/c-ctype.h
  lib/c-strcase.h
  lib/c-strcasecmp.c
  lib/c-strcaseeq.h
  lib/c-strncasecmp.c
  lib/canonicalize-lgpl.c
  lib/careadlinkat.c
  lib/careadlinkat.h
  lib/cdefs.h
  lib/cloexec.c
  lib/cloexec.h
  lib/close.c
  lib/dup2.c
  lib/eloop-threshold.h
  lib/errno.in.h
  lib/error.c
  lib/error.h
  lib/exitfail.c
  lib/exitfail.h
  lib/fcntl.c
  lib/fcntl.in.h
  lib/fd-hook.c
  lib/fd-hook.h
  lib/filename.h
  lib/float+.h
  lib/float.c
  lib/float.in.h
  lib/free.c
  lib/fstat.c
  lib/getdtablesize.c
  lib/getprogname.c
  lib/getprogname.h
  lib/gettext.h
  lib/hard-locale.c
  lib/hard-locale.h
  lib/idx.h
  lib/intprops.h
  lib/inttypes.in.h
  lib/itold.c
  lib/lc-charset-dispatch.c
  lib/lc-charset-dispatch.h
  lib/libc-config.h
  lib/limits.in.h
  lib/localcharset.c
  lib/localcharset.h
  lib/locale.in.h
  lib/malloc.c
  lib/malloc/scratch_buffer.h
  lib/malloc/scratch_buffer_dupfree.c
  lib/malloc/scratch_buffer_grow.c
  lib/malloc/scratch_buffer_grow_preserve.c
  lib/malloc/scratch_buffer_set_array_size.c
  lib/malloca.c
  lib/malloca.h
  lib/mbrtowc-impl-utf8.h
  lib/mbrtowc-impl.h
  lib/mbrtowc.c
  lib/mbsinit.c
  lib/mbtowc-lock.c
  lib/mbtowc-lock.h
  lib/memchr.c
  lib/memchr.valgrind
  lib/mempcpy.c
  lib/minmax.h
  lib/msvc-inval.c
  lib/msvc-inval.h
  lib/msvc-nothrow.c
  lib/msvc-nothrow.h
  lib/open.c
  lib/pathmax.h
  lib/printf-args.c
  lib/printf-args.h
  lib/printf-parse.c
  lib/printf-parse.h
  lib/progname.c
  lib/progname.h
  lib/progreloc.c
  lib/quote.h
  lib/quotearg.c
  lib/quotearg.h
  lib/rawmemchr.c
  lib/rawmemchr.valgrind
  lib/readlink.c
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocwrapper.c
  lib/scratch_buffer.h
  lib/setenv.c
  lib/setlocale-lock.c
  lib/setlocale_null.c
  lib/setlocale_null.h
  lib/size_max.h
  lib/stat-time.c
  lib/stat-time.h
  lib/stat-w32.c
  lib/stat-w32.h
  lib/stat.c
  lib/stdarg.in.h
  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/streq.h
  lib/strerror-override.c
  lib/strerror-override.h
  lib/strerror.c
  lib/string.in.h
  lib/sys_stat.in.h
  lib/sys_types.in.h
  lib/time.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/vasnprintf.c
  lib/vasnprintf.h
  lib/vasprintf.c
  lib/verify.h
  lib/warn-on-use.h
  lib/wchar.in.h
  lib/wctype-h.c
  lib/wctype.in.h
  lib/windows-initguard.h
  lib/xalloc-die.c
  lib/xalloc-oversized.h
  lib/xalloc.h
  lib/xasprintf.c
  lib/xmalloc.c
  lib/xreadlink.c
  lib/xreadlink.h
  lib/xsize.c
  lib/xsize.h
  lib/xvasprintf.c
  lib/xvasprintf.h
  m4/00gnulib.m4
  m4/__inline.m4
  m4/absolute-header.m4
  m4/alloca.m4
  m4/canonicalize.m4
  m4/close.m4
  m4/codeset.m4
  m4/double-slash-root.m4
  m4/dup2.m4
  m4/eealloc.m4
  m4/environ.m4
  m4/errno_h.m4
  m4/error.m4
  m4/exponentd.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/fcntl-o.m4
  m4/fcntl.m4
  m4/fcntl_h.m4
  m4/float_h.m4
  m4/free.m4
  m4/fstat.m4
  m4/getdtablesize.m4
  m4/getprogname.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/intmax_t.m4
  m4/inttypes.m4
  m4/inttypes_h.m4
  m4/largefile.m4
  m4/lib-ld.m4
  m4/limits-h.m4
  m4/localcharset.m4
  m4/locale-fr.m4
  m4/locale-ja.m4
  m4/locale-zh.m4
  m4/locale_h.m4
  m4/lstat.m4
  m4/malloc.m4
  m4/malloca.m4
  m4/math_h.m4
  m4/mbrtowc.m4
  m4/mbsinit.m4
  m4/mbstate_t.m4
  m4/memchr.m4
  m4/mempcpy.m4
  m4/minmax.m4
  m4/mmap-anon.m4
  m4/mode_t.m4
  m4/msvc-inval.m4
  m4/msvc-nothrow.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/open-cloexec.m4
  m4/open-slash.m4
  m4/open.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/printf.m4
  m4/quote.m4
  m4/quotearg.m4
  m4/rawmemchr.m4
  m4/readlink.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/relocatable.m4
  m4/setenv.m4
  m4/setlocale_null.m4
  m4/size_max.m4
  m4/ssize_t.m4
  m4/stat-time.m4
  m4/stat.m4
  m4/std-gnu11.m4
  m4/stdarg.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdint_h.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strerror.m4
  m4/string_h.m4
  m4/sys_socket_h.m4
  m4/sys_stat_h.m4
  m4/sys_types_h.m4
  m4/threadlib.m4
  m4/time_h.m4
  m4/unistd_h.m4
  m4/vasnprintf.m4
  m4/vasprintf.m4
  m4/visibility.m4
  m4/warn-on-use.m4
  m4/wchar_h.m4
  m4/wchar_t.m4
  m4/wctype_h.m4
  m4/wint_t.m4
  m4/xalloc.m4
  m4/xsize.m4
  m4/xvasprintf.m4
  m4/zzgnulib.m4
Finished.

You may need to add #include directives for the following .h files.
  #include "progname.h"
  #include "quote.h"
  #include "relocatable.h"
  #include "xvasprintf.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LIB_HARD_LOCALE)
  $(LIB_MBRTOWC)
  $(LIB_SETLOCALE_NULL)
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "src/libgnu/Makefile.am",
  - mention "-I src/m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in src/Makefile.am,
  - invoke gl_paper_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_paper_INIT in ./configure.ac.
bootstrap: running: autoreconf --symlink --install
bootstrap: Done.  Now you can run './configure'.

  lib/pathmax.h
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocatable.valgrindbootstrap: running: /bin/libtoolize --quiet
bootstrap: running: git submodule init -- gnulib
bootstrap: running: git submodule update -- gnulib
bootstrap: running: git submodule init -- gl-mod/bootstrap
bootstrap: running: git submodule update -- gl-mod/bootstrap
bootstrap: running: gnulib/gnulib-tool --no-changelog --makefile-name=Makefile.gnulib --aux-dir=build-aux --m4-base=m4 --doc-base=doc --lib=libgnu --local-dir=gl --local-dir=gl-mod/bootstrap --source-base=libgnu --libtool --symlink --import bootstrap filenamecat-lgpl...
Module list with included dependencies (indented):
    absolute-header
    basename-lgpl
  bootstrap
    c99
    double-slash-root
    errno
    extensions
    extern-inline
    extract-trace
    filename
  filenamecat-lgpl
  free-posix
    funclib.sh
    getdelim
  getline
  getopt-gnu
    getopt-posix
    gettext-h
    include_next
    inline-source
    limits-h
    malloc-posix
  manywarnings
    multiarch
    nocrash
    options-parser
  pathmax
  realloc-posix
  relocatable-lib-lgpl
  relocatable-script
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    std-gnu11
    stdbool
    stddef
    stdint
    stdio
    stdlib
  strcase
    string
    strings
  strndup
    strnlen
    sys_types
    unistd
    warnings
File list:
  build-aux/bootstrap.in
  build-aux/extract-trace
  build-aux/funclib.sh
  build-aux/inline-source
  build-aux/options-parser
  build-aux/relocatable.sh.in
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/arg-nonnull.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/errno.in.h
  lib/filename.h
  lib/filenamecat-lgpl.c
  lib/filenamecat.h
  lib/free.c
  lib/getdelim.c
  lib/getline.c
  lib/getopt-cdefs.in.h
  lib/getopt-core.h
  lib/getopt-ext.h
  lib/getopt-pfx-core.h
  lib/getopt-pfx-ext.h
  lib/getopt.c
  lib/getopt.in.h
  lib/getopt1.c
  lib/getopt_int.h
  lib/gettext.h
  lib/limits.in.h
  lib/malloc.c
  lib/pathmax.h
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocatable.valgrind
  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/strcasecmp.c
  lib/string.in.h
  lib/strings.in.h
  lib/strncasecmp.c
  lib/strndup.c
  lib/strnlen.c
  lib/sys_types.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/warn-on-use.h
  m4/00gnulib.m4
  m4/absolute-header.m4
  m4/double-slash-root.m4
  m4/errno_h.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/filenamecat.m4
  m4/free.m4
  m4/getdelim.m4
  m4/getline.m4
  m4/getopt.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/limits-h.m4
  m4/malloc.m4
  m4/manywarnings-c++.m4
  m4/manywarnings.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/ssize_t.m4
  m4/std-gnu11.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strcase.m4
  m4/string_h.m4
  m4/strings_h.m4
  m4/strndup.m4
  m4/strnlen.m4
  m4/sys_types_h.m4
  m4/unistd_h.m4
  m4/warn-on-use.m4
  m4/warnings.m4
  m4/wchar_t.m4
  m4/wint_t.m4
  m4/zzgnulib.m4
Copying file m4/manywarnings-c++.m4
Creating m4/gnulib-cache.m4
Finished.

You may need to add #include directives for the following .h files.
  #include <getopt.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <strings.h>
  #include "filenamecat.h"
  #include "pathmax.h"
  #include "relocatable.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "libgnu/Makefile.am",
  - mention "-I m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in Makefile.am,
  - invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_INIT in ./configure.ac.
Module list with included dependencies (indented):
    absolute-header
    alloca-opt
    allocator
    areadlink
    attribute
    basename-lgpl
    c-ctype
    c-strcase
    c-strcaseeq
    c99
    canonicalize-lgpl
    careadlinkat
    cloexec
    close
    double-slash-root
    dup2
    eloop-threshold
    environ
    errno
    error
    exitfail
    extensions
    extern-inline
    fcntl
    fcntl-h
    fd-hook
    filename
    float
    free-posix
    fstat
    getdtablesize
    getprogname
    gettext-h
    hard-locale
    idx
    include_next
    intprops
    inttypes-incomplete
    largefile
    libc-config
    limits-h
    localcharset
    locale
    malloc-posix
    malloca
    mbrtowc
    mbsinit
    memchr
    mempcpy
    minmax
    msvc-inval
    msvc-nothrow
    multiarch
    nocrash
    open
    pathmax
  progname
  quote
    quotearg
    quotearg-simple
    rawmemchr
    readlink
    realloc-posix
  relocatable-prog
    relocatable-prog-wrapper
    scratch_buffer
    setlocale-null
    size_max
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    stat
    stat-time
    std-gnu11
    stdarg
    stdbool
    stddef
    stdint
    stdio
    stdlib
    streq
    strerror
    strerror-override
    string
    sys_stat
    sys_types
    time
    unistd
    vasnprintf
    vasprintf
    verify
    wchar
    wctype-h
    xalloc
    xalloc-die
    xalloc-oversized
    xreadlink
    xsize
  xvasprintf
Notice from module error:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=error:3:c-format --flag=error_at_line:5:c-format
Notice from module vasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=asprintf:2:c-format --flag=vasprintf:2:c-format
Notice from module xvasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars: --flag=xasprintf:1:c-format
File list:
  build-aux/config.libpath
  build-aux/install-reloc
  build-aux/libtool-reloc
  build-aux/reloc-ldflags
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/alloca.in.h
  lib/allocator.c
  lib/allocator.h
  lib/areadlink.c
  lib/areadlink.h
  lib/arg-nonnull.h
  lib/asnprintf.c
  lib/asprintf.c
  lib/attribute.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/c-ctype.c
  lib/c-ctype.h
  lib/c-strcase.h
  lib/c-strcasecmp.c
  lib/c-strcaseeq.h
  lib/c-strncasecmp.c
  lib/canonicalize-lgpl.c
  lib/careadlinkat.c
  lib/careadlinkat.h
  lib/cdefs.h
  lib/cloexec.c
  lib/cloexec.h
  lib/close.c
  lib/dup2.c
  lib/eloop-threshold.h
  lib/errno.in.h
  lib/error.c
  lib/error.h
  lib/exitfail.c
  lib/exitfail.h
  lib/fcntl.c
  lib/fcntl.in.h
  lib/fd-hook.c
  lib/fd-hook.h
  lib/filename.h
  lib/float+.h
  lib/float.c
  lib/float.in.h
  lib/free.c
  lib/fstat.c
  lib/getdtablesize.c
  lib/getprogname.c
  lib/getprogname.h
  lib/gettext.h
  lib/hard-locale.c
  lib/hard-locale.h
  lib/idx.h
  lib/intprops.h
  lib/inttypes.in.h
  lib/itold.c
  lib/lc-charset-dispatch.c
  lib/lc-charset-dispatch.h
  lib/libc-config.h
  lib/limits.in.h
  lib/localcharset.c
  lib/localcharset.h
  lib/locale.in.h
  lib/malloc.c
  lib/malloc/scratch_buffer.h
  lib/malloc/scratch_buffer_dupfree.c
  lib/malloc/scratch_buffer_grow.c
  lib/malloc/scratch_buffer_grow_preserve.c
  lib/malloc/scratch_buffer_set_array_size.c
  lib/malloca.c
  lib/malloca.h
  lib/mbrtowc-impl-utf8.h
  lib/mbrtowc-impl.h
  lib/mbrtowc.c
  lib/mbsinit.c
  lib/mbtowc-lock.c
  lib/mbtowc-lock.h
  lib/memchr.c
  lib/memchr.valgrind
  lib/mempcpy.c
  lib/minmax.h
  lib/msvc-inval.c
  lib/msvc-inval.h
  lib/msvc-nothrow.c
  lib/msvc-nothrow.h
  lib/open.c
  lib/pathmax.h
  lib/printf-args.c
  lib/printf-args.h
  lib/printf-parse.c
  lib/printf-parse.h
  lib/progname.c
  lib/progname.h
  lib/progreloc.c
  lib/quote.h
  lib/quotearg.c
  lib/quotearg.h
  lib/rawmemchr.c
  lib/rawmemchr.valgrind
  lib/readlink.c
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocwrapper.c
  lib/scratch_buffer.h
  lib/setenv.c
  lib/setlocale-lock.c
  lib/setlocale_null.c
  lib/setlocale_null.h
  lib/size_max.h
  lib/stat-time.c
  lib/stat-time.h
  lib/stat-w32.c
  lib/stat-w32.h
  lib/stat.c
  lib/stdarg.in.h
  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/streq.h
  lib/strerror-override.c
  lib/strerror-override.h
  lib/strerror.c
  lib/string.in.h
  lib/sys_stat.in.h
  lib/sys_types.in.h
  lib/time.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/vasnprintf.c
  lib/vasnprintf.h
  lib/vasprintf.c
  lib/verify.h
  lib/warn-on-use.h
  lib/wchar.in.h
  lib/wctype-h.c
  lib/wctype.in.h
  lib/windows-initguard.h
  lib/xalloc-die.c
  lib/xalloc-oversized.h
  lib/xalloc.h
  lib/xasprintf.c
  lib/xmalloc.c
  lib/xreadlink.c
  lib/xreadlink.h
  lib/xsize.c
  lib/xsize.h
  lib/xvasprintf.c
  lib/xvasprintf.h
  m4/00gnulib.m4
  m4/__inline.m4
  m4/absolute-header.m4
  m4/alloca.m4
  m4/canonicalize.m4
  m4/close.m4
  m4/codeset.m4
  m4/double-slash-root.m4
  m4/dup2.m4
  m4/eealloc.m4
  m4/environ.m4
  m4/errno_h.m4
  m4/error.m4
  m4/exponentd.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/fcntl-o.m4
  m4/fcntl.m4
  m4/fcntl_h.m4
  m4/float_h.m4
  m4/free.m4
  m4/fstat.m4
  m4/getdtablesize.m4
  m4/getprogname.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/intmax_t.m4
  m4/inttypes.m4
  m4/inttypes_h.m4
  m4/largefile.m4
  m4/lib-ld.m4
  m4/limits-h.m4
  m4/localcharset.m4
  m4/locale-fr.m4
  m4/locale-ja.m4
  m4/locale-zh.m4
  m4/locale_h.m4
  m4/lstat.m4
  m4/malloc.m4
  m4/malloca.m4
  m4/math_h.m4
  m4/mbrtowc.m4
  m4/mbsinit.m4
  m4/mbstate_t.m4
  m4/memchr.m4
  m4/mempcpy.m4
  m4/minmax.m4
  m4/mmap-anon.m4
  m4/mode_t.m4
  m4/msvc-inval.m4
  m4/msvc-nothrow.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/open-cloexec.m4
  m4/open-slash.m4
  m4/open.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/printf.m4
  m4/quote.m4
  m4/quotearg.m4
  m4/rawmemchr.m4
  m4/readlink.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/relocatable.m4
  m4/setenv.m4
  m4/setlocale_null.m4
  m4/size_max.m4
  m4/ssize_t.m4
  m4/stat-time.m4
  m4/stat.m4
  m4/std-gnu11.m4
  m4/stdarg.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdint_h.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strerror.m4
  m4/string_h.m4
  m4/sys_socket_h.m4
  m4/sys_stat_h.m4
  m4/sys_types_h.m4
  m4/threadlib.m4
  m4/time_h.m4
  m4/unistd_h.m4
  m4/vasnprintf.m4
  m4/vasprintf.m4
  m4/visibility.m4
  m4/warn-on-use.m4
  m4/wchar_h.m4
  m4/wchar_t.m4
  m4/wctype_h.m4
  m4/wint_t.m4
  m4/xalloc.m4
  m4/xsize.m4
  m4/xvasprintf.m4
  m4/zzgnulib.m4
Finished.

You may need to add #include directives for the following .h files.
  #include "progname.h"
  #include "quote.h"
  #include "relocatable.h"
  #include "xvasprintf.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LIB_HARD_LOCALE)
  $(LIB_MBRTOWC)
  $(LIB_SETLOCALE_NULL)
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "src/libgnu/Makefile.am",
  - mention "-I src/m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in src/Makefile.am,
  - invoke gl_paper_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_paper_INIT in ./configure.ac.
bootstrap: running: autoreconf --symlink --install
bootstrap: Done.  Now you can run './configure'.

  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/strcasecmp.c
  lib/string.in.h
  lib/strings.in.h
  lib/strncasecmp.c
  lib/strndup.c
  lib/strnlen.c
  lib/sys_types.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/warn-on-use.h
  m4/00gnulib.m4
  m4/absolute-header.m4
  m4/double-slash-root.m4
  m4/errno_h.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/filenamecat.m4
  m4/free.m4
  m4/getdelim.m4
  m4/getline.m4
  m4/getopt.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/limits-h.m4
  m4/malloc.m4
  m4/manywarnings-c++.m4
  m4/manywarnings.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/ssize_t.m4
  m4/std-gnu11.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strcase.m4
  m4/string_h.m4
  m4/strings_h.m4
  m4/strndup.m4
  m4/strnlen.m4
  m4/sys_types_h.m4
  m4/unistd_h.m4
  m4/warn-on-use.m4
  m4/warnings.m4
  m4/wchar_t.m4
  m4/wint_t.m4
  m4/zzgnulib.m4
Copying file m4/manywarnings-c++.m4
Creating m4/gnulib-cache.m4
Finished.

You may need to add #include directives for the following .h files.
  #include <getopt.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <strings.h>
  #include "filenamecat.h"
  #include "pathmax.h"
  #include "relocatable.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "libgnu/Makefile.am",
  - mention "-I m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in Makefile.am,
  - invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_INIT in ./configure.ac.
Module list with included dependencies (indented):
    absolute-header
    alloca-opt
    allocator
    areadlink
    attribute
    basename-lgpl
    c-ctype
    c-strcase
    c-strcaseeq
    c99
    canonicalize-lgpl
    careadlinkat
    cloexec
    close
    double-slash-root
    dup2
    eloop-threshold
    environ
    errno
    error
    exitfail
    extensions
    extern-inline
    fcntl
    fcntl-h
    fd-hook
    filename
    float
    free-posix
    fstat
    getdtablesize
    getprogname
    gettext-h
    hard-locale
    idx
    include_next
    intprops
    inttypes-incomplete
    largefile
    libc-config
    limits-h
    localcharset
    locale
    malloc-posix
    malloca
    mbrtowc
    mbsinit
    memchr
    mempcpy
    minmax
    msvc-inval
    msvc-nothrow
    multiarch
    nocrash
    open
    pathmax
  progname
  quote
    quotearg
    quotearg-simple
    rawmemchr
    readlink
    realloc-posix
  relocatable-prog
    relocatable-prog-wrapper
    scratch_buffer
    setlocale-null
    size_max
    snippet/_Noreturn
    snippet/arg-nonnull
    snippet/c++defs
    snippet/warn-on-use
    ssize_t
    stat
    stat-time
    std-gnu11
    stdarg
    stdbool
    stddef
    stdint
    stdio
    stdlib
    streq
    strerror
    strerror-override
    string
    sys_stat
    sys_types
    time
    unistd
    vasnprintf
    vasprintf
    verify
    wchar
    wctype-h
    xalloc
    xalloc-die
    xalloc-oversized
    xreadlink
    xsize
  xvasprintf
Notice from module error:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=error:3:c-format --flag=error_at_line:5:c-format
Notice from module vasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars:
    --flag=asprintf:2:c-format --flag=vasprintf:2:c-format
Notice from module xvasprintf:
  If you are using GNU gettext version 0.16.1 or older, add the following options
  to XGETTEXT_OPTIONS in your po/Makevars: --flag=xasprintf:1:c-format
File list:
  build-aux/config.libpath
  build-aux/install-reloc
  build-aux/libtool-reloc
  build-aux/reloc-ldflags
  doc/relocatable.texi
  lib/_Noreturn.h
  lib/alloca.in.h
  lib/allocator.c
  lib/allocator.h
  lib/areadlink.c
  lib/areadlink.h
  lib/arg-nonnull.h
  lib/asnprintf.c
  lib/asprintf.c
  lib/attribute.h
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/c++defs.h
  lib/c-ctype.c
  lib/c-ctype.h
  lib/c-strcase.h
  lib/c-strcasecmp.c
  lib/c-strcaseeq.h
  lib/c-strncasecmp.c
  lib/canonicalize-lgpl.c
  lib/careadlinkat.c
  lib/careadlinkat.h
  lib/cdefs.h
  lib/cloexec.c
  lib/cloexec.h
  lib/close.c
  lib/dup2.c
  lib/eloop-threshold.h
  lib/errno.in.h
  lib/error.c
  lib/error.h
  lib/exitfail.c
  lib/exitfail.h
  lib/fcntl.c
  lib/fcntl.in.h
  lib/fd-hook.c
  lib/fd-hook.h
  lib/filename.h
  lib/float+.h
  lib/float.c
  lib/float.in.h
  lib/free.c
  lib/fstat.c
  lib/getdtablesize.c
  lib/getprogname.c
  lib/getprogname.h
  lib/gettext.h
  lib/hard-locale.c
  lib/hard-locale.h
  lib/idx.h
  lib/intprops.h
  lib/inttypes.in.h
  lib/itold.c
  lib/lc-charset-dispatch.c
  lib/lc-charset-dispatch.h
  lib/libc-config.h
  lib/limits.in.h
  lib/localcharset.c
  lib/localcharset.h
  lib/locale.in.h
  lib/malloc.c
  lib/malloc/scratch_buffer.h
  lib/malloc/scratch_buffer_dupfree.c
  lib/malloc/scratch_buffer_grow.c
  lib/malloc/scratch_buffer_grow_preserve.c
  lib/malloc/scratch_buffer_set_array_size.c
  lib/malloca.c
  lib/malloca.h
  lib/mbrtowc-impl-utf8.h
  lib/mbrtowc-impl.h
  lib/mbrtowc.c
  lib/mbsinit.c
  lib/mbtowc-lock.c
  lib/mbtowc-lock.h
  lib/memchr.c
  lib/memchr.valgrind
  lib/mempcpy.c
  lib/minmax.h
  lib/msvc-inval.c
  lib/msvc-inval.h
  lib/msvc-nothrow.c
  lib/msvc-nothrow.h
  lib/open.c
  lib/pathmax.h
  lib/printf-args.c
  lib/printf-args.h
  lib/printf-parse.c
  lib/printf-parse.h
  lib/progname.c
  lib/progname.h
  lib/progreloc.c
  lib/quote.h
  lib/quotearg.c
  lib/quotearg.h
  lib/rawmemchr.c
  lib/rawmemchr.valgrind
  lib/readlink.c
  lib/realloc.c
  lib/relocatable.c
  lib/relocatable.h
  lib/relocwrapper.c
  lib/scratch_buffer.h
  lib/setenv.c
  lib/setlocale-lock.c
  lib/setlocale_null.c
  lib/setlocale_null.h
  lib/size_max.h
  lib/stat-time.c
  lib/stat-time.h
  lib/stat-w32.c
  lib/stat-w32.h
  lib/stat.c
  lib/stdarg.in.h
  lib/stdbool.in.h
  lib/stddef.in.h
  lib/stdint.in.h
  lib/stdio.in.h
  lib/stdlib.in.h
  lib/streq.h
  lib/strerror-override.c
  lib/strerror-override.h
  lib/strerror.c
  lib/string.in.h
  lib/sys_stat.in.h
  lib/sys_types.in.h
  lib/time.in.h
  lib/unistd.c
  lib/unistd.in.h
  lib/vasnprintf.c
  lib/vasnprintf.h
  lib/vasprintf.c
  lib/verify.h
  lib/warn-on-use.h
  lib/wchar.in.h
  lib/wctype-h.c
  lib/wctype.in.h
  lib/windows-initguard.h
  lib/xalloc-die.c
  lib/xalloc-oversized.h
  lib/xalloc.h
  lib/xasprintf.c
  lib/xmalloc.c
  lib/xreadlink.c
  lib/xreadlink.h
  lib/xsize.c
  lib/xsize.h
  lib/xvasprintf.c
  lib/xvasprintf.h
  m4/00gnulib.m4
  m4/__inline.m4
  m4/absolute-header.m4
  m4/alloca.m4
  m4/canonicalize.m4
  m4/close.m4
  m4/codeset.m4
  m4/double-slash-root.m4
  m4/dup2.m4
  m4/eealloc.m4
  m4/environ.m4
  m4/errno_h.m4
  m4/error.m4
  m4/exponentd.m4
  m4/extensions.m4
  m4/extern-inline.m4
  m4/fcntl-o.m4
  m4/fcntl.m4
  m4/fcntl_h.m4
  m4/float_h.m4
  m4/free.m4
  m4/fstat.m4
  m4/getdtablesize.m4
  m4/getprogname.m4
  m4/gnulib-common.m4
  m4/include_next.m4
  m4/intmax_t.m4
  m4/inttypes.m4
  m4/inttypes_h.m4
  m4/largefile.m4
  m4/lib-ld.m4
  m4/limits-h.m4
  m4/localcharset.m4
  m4/locale-fr.m4
  m4/locale-ja.m4
  m4/locale-zh.m4
  m4/locale_h.m4
  m4/lstat.m4
  m4/malloc.m4
  m4/malloca.m4
  m4/math_h.m4
  m4/mbrtowc.m4
  m4/mbsinit.m4
  m4/mbstate_t.m4
  m4/memchr.m4
  m4/mempcpy.m4
  m4/minmax.m4
  m4/mmap-anon.m4
  m4/mode_t.m4
  m4/msvc-inval.m4
  m4/msvc-nothrow.m4
  m4/multiarch.m4
  m4/nocrash.m4
  m4/off_t.m4
  m4/open-cloexec.m4
  m4/open-slash.m4
  m4/open.m4
  m4/pathmax.m4
  m4/pid_t.m4
  m4/printf.m4
  m4/quote.m4
  m4/quotearg.m4
  m4/rawmemchr.m4
  m4/readlink.m4
  m4/realloc.m4
  m4/relocatable-lib.m4
  m4/relocatable.m4
  m4/setenv.m4
  m4/setlocale_null.m4
  m4/size_max.m4
  m4/ssize_t.m4
  m4/stat-time.m4
  m4/stat.m4
  m4/std-gnu11.m4
  m4/stdarg.m4
  m4/stdbool.m4
  m4/stddef_h.m4
  m4/stdint.m4
  m4/stdint_h.m4
  m4/stdio_h.m4
  m4/stdlib_h.m4
  m4/strerror.m4
  m4/string_h.m4
  m4/sys_socket_h.m4
  m4/sys_stat_h.m4
  m4/sys_types_h.m4
  m4/threadlib.m4
  m4/time_h.m4
  m4/unistd_h.m4
  m4/vasnprintf.m4
  m4/vasprintf.m4
  m4/visibility.m4
  m4/warn-on-use.m4
  m4/wchar_h.m4
  m4/wchar_t.m4
  m4/wctype_h.m4
  m4/wint_t.m4
  m4/xalloc.m4
  m4/xsize.m4
  m4/xvasprintf.m4
  m4/zzgnulib.m4
Finished.

You may need to add #include directives for the following .h files.
  #include "progname.h"
  #include "quote.h"
  #include "relocatable.h"
  #include "xvasprintf.h"

You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.
  $(LIB_HARD_LOCALE)
  $(LIB_MBRTOWC)
  $(LIB_SETLOCALE_NULL)
  $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise

Don't forget to
  - "include Makefile.gnulib" from within "src/libgnu/Makefile.am",
  - mention "-I src/m4" in ACLOCAL_AMFLAGS in Makefile.am,
  - mention "m4/gnulib-cache.m4" in EXTRA_DIST in src/Makefile.am,
  - invoke gl_paper_EARLY in ./configure.ac, right after AC_PROG_CC_C99,
  - invoke gl_paper_INIT in ./configure.ac.
bootstrap: running: autoreconf --symlink --install
bootstrap: Done.  Now you can run './configure'.

paper(1) manual contains an error message if building without a prior paper having been installed

If paper is not installed, executing ./src/paper dies like this:

$ ./src/paper 
paper: could not read `/etc/paperspecs'

As a result, paper(1) manual generated with help2man embeds the error message in place of the SYNOPSIS section, because ./src/paper is executed:

NAME
       paper - print paper size information

DESCRIPTION
       paper: could not read `/etc/paperspecs'

       paper  prints  information  about  the given paper sizes, which can include the standard form of its name, its width and height.
       The name is matched case-insensitively, and ignoring spaces.

I believe an ideal fix should make ./src/paper runable without existing /etc/paperspec. E.g. by setting XDG_CONFIG_HOME=./src environment variable and changing ./src/paper.in.in code to parse the system paperspec only if the user's paperspec is not good enough. A fix like that would also allow adding some tests, which this software lacks.

New release for Debian import

There is a gnulib Debian package. It would be nice to build with it instead of the vendored one.
I do not really know which change to make for that to happen, maybe it would be a Debian patch.
Also, please drop the debian directory with the next release. I have integrated your work on salsa, so that you can integrate the next upstream version with gbp import-orig --uscan.

If you cannot manage to use Debian's gnulib you would have to uscan the released tarball instead of the GitHub tags to get the full source.

help2man fails due to paper not being executable

hello

just tried to build master with:

----8<----
./bootstrap --skip-git --skip-po
./configure  --prefix=/opt/stow.d/versions/paper-163/usr            \
             --libdir=/opt/stow.d/versions/paper-163/usr/lib64      \
             --sysconfdir=/opt/stow.d/versions/paper-163/etc/paper  \
             --disable-silent-rules
make
---->8----

and getting:

----8<----
Making all in man
make[3]: Entering directory '/home/balducci/tmp/install-us-d/paper-161.d/paper-163/man'
if ( touch paper.1.w && rm -f paper.1.w; ) >/dev/null 2>&1; then \
  ../build-aux/missing --run /usr/bin/help2man --no-info \
        --no-discard-stderr \
        --include=./paper-include.man \
        --output=paper.1 /home/balducci/tmp/install-us-d/paper-161.d/paper-163/src/paper; \
fi
help2man: can't get `--help' info from /home/balducci/tmp/install-us-d/paper-161.d/paper-163/src/paper
make[3]: *** [Makefile:609: paper.1] Error 13
make[3]: Leaving directory '/home/balducci/tmp/install-us-d/paper-161.d/paper-163/man'
---->8----

Reason seems to be that the paper script generated by paper.in isn't
executable (thus help2man not getting the output of "paper --help")

I don't know if this is a problem with my build script or with paper
itself. The following works around for me:

----8<----
*** src/Makefile.am.MAKE_PAPER_EXECUTABLE	Sat Jan 25 16:17:01 2020
--- src/Makefile.am	Sat Jan 25 16:17:01 2020
***************
*** 12,18 ****
  edit = sed -e 's|$$[{]prefix[}]|$(prefix)|g' -e 's|$$[{]exec_prefix[}]|$(exec_prefix)|g'

  paper: $(builddir)/paper.in
! 	$(edit) $(builddir)/[email protected] >$@

  install-exec-hook:
        if test "x$(EXEEXT)" != "x"; then \
--- 12,18 ----
  edit = sed -e 's|$$[{]prefix[}]|$(prefix)|g' -e 's|$$[{]exec_prefix[}]|$(exec_prefix)|g'

  paper: $(builddir)/paper.in
! 	$(edit) $(builddir)/[email protected] >$@ && chmod 755 $@

  install-exec-hook:
        if test "x$(EXEEXT)" != "x"; then \
---->8----

thanks a lot for your valuable work

ciao
gabriele

1.2.0: build issue

Looks like there is no dist tar ball with integrated gnulib and ..

[tkloczko@devel-g2v libpaper-1.2.0]$ ./bootstrap
bootstrap: warning: Consider installing git-merge-changelog from gnulib.
bootstrap: running: /usr/bin/libtoolize --quiet
bootstrap: running: git clone --shallow-since=2021-01-13 'git://git.sv.gnu.org/gnulib.git' 'gnulib'
Cloning into 'gnulib'...
fatal: unable to connect to git.sv.gnu.org:
git.sv.gnu.org[0: 209.51.188.168]: errno=Connection timed out
git.sv.gnu.org[1: 2001:470:142::168]: errno=Network is unreachable

Issue:

  • IMO it would be relly good to detach completly libpaper from gnulib. All OSess now fully supoorts basic ANSI and POSIX APIs. Witout gnulib it would be possible to simplifuy many parts of the code. It would allow simplify source tree and dtach it from externam submodule. Without that submodule relation as dist tar ball could be used autogenerated by github from got tag tar ball like https://github.com/rrthomas/libpaper/archive/refs/tags/v1.2.0.tar.gz
  • lates autoreconf from autoconf 2.71 shows warning
[tkloczko@devel-g2v libpaper-1.2.0]$ autoreconf -fiv
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4 -I src/m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I m4 -I src/m4
autoreconf: running: /usr/bin/autoconf --force
configure.ac:60: warning: The macro `AC_PROG_CC_C99' is obsolete.
configure.ac:60: You should run autoupdate.
./lib/autoconf/c.m4:1659: AC_PROG_CC_C99 is expanded from...
configure.ac:60: the top level
configure.ac:65: warning: The macro `AC_GNU_SOURCE' is obsolete.
configure.ac:65: You should run autoupdate.
./lib/autoconf/specific.m4:312: AC_GNU_SOURCE is expanded from...
configure.ac:65: the top level
configure.ac:65: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
./lib/autoconf/specific.m4:312: AC_GNU_SOURCE is expanded from...
configure.ac:65: the top level
configure.ac:65: warning: AC_LINK_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
./lib/autoconf/specific.m4:312: AC_GNU_SOURCE is expanded from...
configure.ac:65: the top level
configure.ac:65: warning: AC_CHECK_INCLUDES_DEFAULT was called before AC_USE_SYSTEM_EXTENSIONS
./lib/autoconf/specific.m4:312: AC_GNU_SOURCE is expanded from...
configure.ac:65: the top level
configure.ac:142: warning: The macro `AC_CONFIG_HEADER' is obsolete.
configure.ac:142: You should run autoupdate.
./lib/autoconf/status.m4:719: AC_CONFIG_HEADER is expanded from...
configure.ac:142: the top level
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:60: installing 'build-aux/compile'
configure.ac:26: installing 'build-aux/missing'
lib/Makefile.am: installing 'build-aux/depcomp'
automake: error: cannot open < libgnu/Makefile.gnulib: No such file or directory
autoreconf: error: automake failed with exit status: 1

ABI diff between old upstream (1.1.28) and latest libpaper (1.2.4)

Following on from #27, I ran abidiff (from libabigail) on 1.1.28 and 1.2.4 and got:

 *  SONAME:-libpaper.so.1(32)
 *    ABI: libpaper.so.1(64) func(+7,~1,-6) vars(+2) [BREAKING]
 * Functions changes summary: 6 Removed, 1 Changed (7 filtered out), 7 Added functions
 * Variables changes summary: 0 Removed, 0 Changed, 2 Added variables
 *
 * 6 Removed functions:
 *
 *   [D] 'function const char* defaultpapersizefile()'    {defaultpapersizefile}
 *   [D] 'function const paper* paperlast()'    {paperlast}
 *   [D] 'function const paper* paperprev(const paper*)'    {paperprev}
 *   [D] 'function int psdimension(const char*, int*)'    {psdimension}
 *   [D] 'function const char* systempapersizefile()'    {systempapersizefile}
 *   [D] 'function float unitfactor(const char*)'    {unitfactor}
 *
 * 7 Added functions:
 *
 *   [A] 'function double paperheight(const paper*)'    {paperheight}
 *   [A] 'function void papersetprefixdir(const char*)'    {papersetprefixdir}
 *   [A] 'function paper_unit paperunit(const paper*)'    {paperunit}
 *   [A] 'function double paperunitfactor(paper_unit)'    {paperunitfactor}
 *   [A] 'function paper_unit paperunitfromname(const char*)'    {paperunitfromname}
 *   [A] 'function const char* paperunitname(paper_unit)'    {paperunitname}
 *   [A] 'function double paperwidth(const paper*)'    {paperwidth}

Obviously the new functions aren't a problem, but the removed ones might be.

Notably, only one of them is in paper.h, so maybe we only have to worry about that one?

$ grep -E -rsin "(defaultpapersizefile|paperlast|paperprev|psdimension|systempapersizefile|unitfactor)" /usr/include/paper.h
149:double paperunitfactor(enum paper_unit n);

What do you think?

(I'm very new to libpaper and its API and I agree some of these old functions are.. whacky.)

Add tests

As noted in #5, paper currently lacks tests.

Crash in paperdone() when called through Ghostscript

Hi! Ghostscript crashes with libpaper 1.2.1 with free(): invalid size (in GDB with debug symbols available I get free: invalid pointer instead):

[...]
#5  0x00007ffff68ad574 in free ()
   from /gnu/store/s4nhrglpz7rvdacj0zghzc8y66q7xzw0-glibc-2.33/lib/libc.so.6
#6  0x00007ffff6539a6c in paperdone () at libpaper.c:413
#7  paperdone () at libpaper.c:408
#8  0x00007ffff6bf3bbc in gp_defaultpapersize ()
   from /gnu/store/fgkbk9h7qd0g6v1ds91nk0l6m3v7wrh2-ghostscript-9.56.1/lib/libgs.so.9
[...]

Reading the code, it seems as if free_xdg_config_home should only be set when xdg_config_home is allocated through mfile_name_concat; however my naive attempt at doing that gave a segfault instead.

Steps to reproduce:

  1. Build Ghostscript --with-libpaper.
  2. Run the built gsc executable. I'm using this file from the groff test suite like so:
gsc -o /dev/null -sDEVICE=bbox fonts_n.ps

For reference, here is the Ghostscript code that uses libpaper.

Thoughts?

problems with latest master

hello

after smooth build/install of latest master of paper
(d68ebfa, rev.n. 176), I find that
latest psutils (https://github.com/rrthomas/psutils/commits/master, rev.n. 408)
fails on several tests which use the just installed paper:

----8<----
FAIL: tests/psnup-20-1.sh
FAIL: tests/psnup-20-2.sh
FAIL: tests/psnup-20-3.sh
FAIL: tests/psnup-20-4.sh
FAIL: tests/psnup-20-1-inpaper-A5.sh
FAIL: tests/psnup-20-1-inpaper-A5-outpaper-A5.sh
FAIL: tests/psnup-20-1-inpaper-A4-outpaper-A5.sh
FAIL: tests/psnup-20-2-inpaper-A5.sh
FAIL: tests/psnup-20-3-inpaper-A5.sh
FAIL: tests/psnup-20-4-inpaper-A5.sh
FAIL: tests/psnup-20-3-rotatedleft.sh
FAIL: tests/psnup-20-3-rotatedright.sh
FAIL: tests/psnup-20-1-flip.sh
FAIL: tests/psnup-20-4-flip.sh
FAIL: tests/psnup-20-4-297mmx210mm.sh
FAIL: tests/psnup-20-4-columnmajor.sh
FAIL: tests/psnup-20-4-margin-10.sh
FAIL: tests/psnup-20-4-border-20.sh
FAIL: tests/psresize-20-A5.sh
FAIL: tests/psresize-20-A3.sh
FAIL: tests/psresize-20-A4.sh
FAIL: tests/psresize-20-Letter.sh
FAIL: tests/psresize-20-A5in-A4.sh
FAIL: tests/psresize-20-A3in-A4.sh
---->8----

No test failures whatsoever when building the same rev. of psutils vs
previous git revision of paper
(678b046, rev.n. 175)

Actually I could find 2 problems in the newly restored C version of
paper (however, after fixing/working around them, psutils' make check
is still showing the above failures)

  1. This caused a segfault on my machine and is fixed by:
    ----8<----
    diff -c src/paper.c.in.in.FIX_CHAR src/paper.c.in.in
    *** src/paper.c.in.in.FIX_CHAR	Sun Jan 24 16:45:00 2021
    --- src/paper.c.in.in	Sun Jan 24 16:45:00 2021
    ***************
    *** 82,88 ****
          if (p == NULL)
              p = *saveptr;
          /* Skip leading space. */
    !     for (; isspace(p); p++)
              ;
          size_t i = 0;
          /* Find following comma or end of line. */
    --- 82,88 ----
          if (p == NULL)
              p = *saveptr;
          /* Skip leading space. */
    !     for (; isspace(*p); p++)
              ;
          size_t i = 0;
          /* Find following comma or end of line. */
    ---->8----
  1. when using --unit=pt, the unitfactor function is receiving the
    whole command line option --unit=pt instead of only pt, causing a
    paper call failure with bad unit (valid units: pt, mm, in)

This is a crude workaround to better demonstrate the problem:

----8<----
diff -c src/paper.c.in.in.FIX_LONGOPT src/paper.c.in.in
*** src/paper.c.in.in.FIX_LONGOPT	Sun Jan 24 16:45:00 2021
--- src/paper.c.in.in	Sun Jan 24 16:45:00 2021
***************
*** 371,377 ****
              opt_size = true;
              break;
          case 3:
!             dim = unitfactor(argv[this_optind]);
              if (dim == 0.0)
                  die("%s", unit_err);
              break;
--- 371,379 ----
              opt_size = true;
              break;
          case 3:
!             //dim = unitfactor(argv[this_optind]);
! {char *dummy=strtok(argv[this_optind],"=");}
! dim = unitfactor(strtok(NULL,"="));
              if (dim == 0.0)
                  die("%s", unit_err);
              break;
---->8----

I guess that a proper fix would be to adjust the variables involved in
the getopt_long call.

As I said, after fixing 1. and 2. above, psutils tests which use paper
are still failing: didn't find time to dig further

Building with:

gcc -v:
    ----8<----
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/stow.d/versions/gcc-10.2.0/usr/lib64/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
    Target: x86_64-pc-linux-gnu
    Configured with: /home/balducci/tmp/install-us-d/gcc-10.2.0.d/gcc-10.2.0/configure --prefix=/opt/stow.d/versions/gcc-10.2.0/usr --libdir=/opt/stow.d/versions/gcc-10.2.0/usr/lib64 --libexecdir=/opt/stow.d/versions/gcc-10.2.0/usr/lib64 --enable-shared --disable-bootstrap --enable-languages=c,c++,objc,fortran --enable-multilib
    Thread model: posix
    Supported LTO compression algorithms: zlib zstd
    gcc version 10.2.0 (GCC) 
    ---->8----

paper configured with:

    ----8<----
    ./bootstrap --skip-po
    ---->8----

and default configure options

psutils bootstrapped and configured as per defaults.

thanks for your valuable work
ciao
-gabriele

Use two copies of gnulib

This is actually needed for two reasons: first, because libpaper needs to be relocatable independently of paper; and secondly, because libpaper is LGPL while paper is GPL, so they need differently-licensed gnulibs.

Support paper tolerances

The DIN/ISO standards, and JIS standards, at least, specify tolerances. These should be added to the paper info, and used by paperwithsize to allow non-exact matches.

An obvious question: what happens when multiple papers match (e.g. JIS A4 vs ISO A4, as I believe they are the same but with different tolerances)? Obvious answer: take the first match, and specify the papers in increasing order of tolerance. If it turns out that there exist unrelated paper sizes which overlap within their tolerances, we can think again.

libpaper 1.2 breaks a TeX Live psutils test

Hi! Sorry for bothering you about breakage in an unrelated package, but I'm not sure whether this is a regression in libpaper or a flawed test. Is the new libpaper supposed to be 100% compatible with 1.1?

After updating libpaper from 1.1.24 to 1.2.1, the TeX Live psresize test started failing:

./psresize -Pa4 -pa5 playsel.ps \
        | sed -e 's/-0\.000000 /0.000000 /' >playres.ps \
        && diff playres.ps $srcdir/tests/playres.ps \
        && echo "psresize tests OK" \
        || failed="$failed psresize"
+ ./psresize -Pa4 -pa5 playsel.ps
+ sed -e 's/-0\.000000 /0.000000 /'
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Wrote 11 pages, 16065 bytes
+ diff playres.ps ../../../texlive-20210325-source/texk/psutils/tests/playres.ps
283c283
<  595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
---
>  595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto

[...many duplicate lines omitted...]

413c413
<  595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
---
>  595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ failed=' psresize'

The playres.ps file can be found here: https://github.com/TeX-Live/texlive-source/blob/trunk/texk/psutils/tests/playres.ps

I don't speak PostScript, but it looks like one Y coordinate is off by 0.000002, which should be insignificant for units smaller than kilometers, but still... Rounding error perhaps? This is on a x86_64 GNU/Linux system (GNU Guix).

Thoughts?

Update README/project name to reflect the connection between paper and libpaper

Hi,

since paperconf was renamed to paper, then there is a conflict between existing paper binary from paper package. The package has an URL to your github repository, but it is redirected to this libpaper repo. It is confusing at first.

It would be great if README cleanly stated the connection between those two projects - IIUC you've merged those projects - so one package will have to obsolete the other. Right now the repo is called libpaper, but https:/github.com/rrthomas/paper is redirected here and README mentions paper as well.

Reintroduce C library

As per private correspondence with Norbert Preining in November 2020, rewrite paper back into C, providing:

  • the configuration interface of paper (offers user-provided paper sizes)
  • the CLI interface of paper (simpler than paperconf)
  • the C API of libpaper (minimize/eliminate required patches to current users of libpaper)

Build fails on Debian Buster

I have followed all the steps documented (and found undocumented requirements along the way as the bootstrap/configure/make steps were iterated over), but the build finally failed on C source problems I cannot fix now that my former C foo has vanished due to time and age.

I look forward to using this in my PostScript projects (along with PSUtils)!

The log of the failure:

make  all-recursive
make[1]: Entering directory '/usr/local/git-repos/forks/libpaper'
Making all in libgnu
make[2]: Entering directory '/usr/local/git-repos/forks/libpaper/libgnu'
make  all-recursive
make[3]: Entering directory '/usr/local/git-repos/forks/libpaper/libgnu'
make[4]: Entering directory '/usr/local/git-repos/forks/libpaper/libgnu'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/usr/local/git-repos/forks/libpaper/libgnu'
make[3]: Leaving directory '/usr/local/git-repos/forks/libpaper/libgnu'
make[2]: Leaving directory '/usr/local/git-repos/forks/libpaper/libgnu'
Making all in lib
make[2]: Entering directory '/usr/local/git-repos/forks/libpaper/lib'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/usr/local/git-repos/forks/libpaper/lib'
Making all in src
make[2]: Entering directory '/usr/local/git-repos/forks/libpaper/src'
Making all in libgnu
make[3]: Entering directory '/usr/local/git-repos/forks/libpaper/src/libgnu'
make  all-recursive
make[4]: Entering directory '/usr/local/git-repos/forks/libpaper/src/libgnu'
make[5]: Entering directory '/usr/local/git-repos/forks/libpaper/src/libgnu'
make[5]: Nothing to be done for 'all-am'.
make[5]: Leaving directory '/usr/local/git-repos/forks/libpaper/src/libgnu'
make[4]: Leaving directory '/usr/local/git-repos/forks/libpaper/src/libgnu'
make[3]: Leaving directory '/usr/local/git-repos/forks/libpaper/src/libgnu'
make[3]: Entering directory '/usr/local/git-repos/forks/libpaper/src'
  CC       paper-paper.o
paper.c:90:38: error: expected declaration specifiers or '...' before numeric constant
 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(1, 2) static void die(const char *fmt, ...)
                                      ^
paper.c:90:41: error: expected declaration specifiers or '...' before numeric constant
 _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(1, 2) static void die(const char *fmt, ...)
                                         ^
paper.c: In function 'paper_die':
paper.c:102:5: warning: implicit declaration of function 'die'; did you mean 'div'? [-Wimplicit-function-declaration]
     die("%s in line %zu of %s", msg, paper_lineno, paper_specsfile);
     ^~~
     div
make[3]: *** [Makefile:1728: paper-paper.o] Error 1
make[3]: Leaving directory '/usr/local/git-repos/forks/libpaper/src'
make[2]: *** [Makefile:1754: all-recursive] Error 1
make[2]: Leaving directory '/usr/local/git-repos/forks/libpaper/src'
make[1]: *** [Makefile:1642: all-recursive] Error 1
make[1]: Leaving directory '/usr/local/git-repos/forks/libpaper'
make: *** [Makefile:1553: all] Error 2

Build failure with xpdf-4.04

I'm just filing it here in case as xpdf upstream are IIRC kind of hard to reach.

Toralf who runs some automated testing in Gentoo hit a build failure in app-text/xpdf-4.04 with libpaper-1.2.4 (I've just pushed 2.0.0) at https://bugs.gentoo.org/870217:

FAILED: xpdf/CMakeFiles/xpdf_objs.dir/GlobalParams.cc.o 
/usr/bin/x86_64-pc-linux-gnu-g++  -I/var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04 -I/var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04_build -I/var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04/goo -I/var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04/fofi -I/var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04/splash  -pipe -march=native -fno-diagnostics-color -O2 -fPIC -MD -MT xpdf/CMakeFiles/xpdf_objs.dir/GlobalParams.cc.o -MF xpdf/CMakeFiles/xpdf_objs.dir/GlobalParams.cc.o.d -o xpdf/CMakeFiles/xpdf_objs.dir/GlobalParams.cc.o -c /var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04/xpdf/GlobalParams.cc
/var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04/xpdf/GlobalParams.cc: In constructor ‘GlobalParams::GlobalParams(const char*)’:
/var/tmp/portage/app-text/xpdf-4.04/work/xpdf-4.04/xpdf/GlobalParams.cc:661:35: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
  661 |   if ((paperName = systempapername())) {
      |                    ~~~~~~~~~~~~~~~^~
      |                                   |
      |                                   const char*

Do you happen to know at a glance if this is an issue on libpaper's end (as it seems to have compiled before) or if it's xpdf?

Thank you!

paperwithsize missing from library?

Hi Reuben!

Thanks a bunch for reviving libpaper and psutils!

After upgrading libpaper in Gentoo to your forks, we hit https://bugs.gentoo.org/869428 which is a build failure in app-editors/ted because paperwithsize is missing from libpaper.so. I note that it's still in the headers.

Is this an issue with ted or an issue in the library? It seems off that paperwithsize is in the headers but no actual provider of it is given.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.