[Pkg-utopia-maintainers] Bug#890721: flatpak: FTBFS with glibc 2.27: error: static declaration of 'copy_file_range' follows non-static declaration

Aurelien Jarno aurel32 at debian.org
Sat Feb 17 22:57:48 UTC 2018


Package: flatpak
Version: 0.10.3-1
Severity: important
Tags: upstream
User: debian-glibc at lists.debian.org
Usertags: 2.27

flatpak 0.10.3-1 (and version 0.10.4-1 currently in sid) fails to build
with glibc 2.27 (2.27-0experimental0 from experimental):

| libtool: compile:  gcc -DHAVE_CONFIG_H -I. -DFLATPAK_BINDIR=\"/usr/bin\" -DFLATPAK_SYSTEMDIR=\"/var/lib/flatpak\" -DFLATPAK_CONFIGDIR=\"/etc/flatpak\" -DFLATPAK_BASEDIR=\"/usr/share/flatpak\" -DFLATPAK_TRIGGERDIR=\"/usr/share/flatpak/triggers\" -DSYSTEM_FONTS_DIR=\"/usr/share/fonts\" -DSYSTEM_FONT_CACHE_DIRS=\"/var/cache/fontconfig:/usr/lib/fontconfig/cache\" -DDBUSPROXY=\"/usr/lib/flatpak/flatpak-dbus-proxy\" -DG_LOG_DOMAIN=\"flatpak\" -I./libglnx -I./common -I./common -I./lib -I./lib -include config.h -DHELPER=\"bwrap\" -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -DFLATPAK_COMPILATION -I./lib -I./lib -pipe -Wall -Werror=empty-body -Werror=strict-prototypes -Werror=missing-prototypes -Werror=implicit-function-declaration -Werror=format=2 -Werror=format-security -Werror=format-nonliteral -Werror=pointer-arith -Werror=init-self -Werror=missing-declarations -Werror=return-type -Werror=overflow -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -Werror=missing-include-dirs -pthread -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/ostree-1 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/json-glib-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c lib/flatpak-enum-types.c  -fPIC -DPIC -o lib/.libs/libflatpak_la-flatpak-enum-types.o
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-installed-ref.c:25:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-installed-ref.c:25:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-related-ref.c:25:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-related-ref.c:25:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-ref.c:23:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-ref.c:23:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-remote.c:23:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-remote.c:23:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-remote-ref.c:25:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-remote-ref.c:25:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-installation.c:30:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-installation.c:30:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| Makefile:2779: recipe for target 'lib/libflatpak_la-flatpak-installed-ref.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-installed-ref.lo] Error 1
| Makefile:2800: recipe for target 'lib/libflatpak_la-flatpak-related-ref.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-related-ref.lo] Error 1
| Makefile:2772: recipe for target 'lib/libflatpak_la-flatpak-ref.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-ref.lo] Error 1
| Makefile:2807: recipe for target 'lib/libflatpak_la-flatpak-remote.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-remote.lo] Error 1
| Makefile:2786: recipe for target 'lib/libflatpak_la-flatpak-remote-ref.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-remote-ref.lo] Error 1
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-bundle-ref.c:25:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-bundle-ref.c:25:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| Makefile:2821: recipe for target 'lib/libflatpak_la-flatpak-installation.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-installation.lo] Error 1
| Makefile:2793: recipe for target 'lib/libflatpak_la-flatpak-bundle-ref.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-bundle-ref.lo] Error 1
| In file included from ./libglnx/glnx-missing.h:95:0,
|                  from ./libglnx/libglnx.h:28,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-enum-types.c:5:
| ./libglnx/glnx-missing-syscall.h:142:23: error: static declaration of 'copy_file_range' follows non-static declaration
|  static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
|                        ^~~~~~~~~~~~~~~
| In file included from /usr/include/glib-2.0/gio/gcredentials.h:32:0,
|                  from /usr/include/glib-2.0/gio/gio.h:46,
|                  from ./libglnx/libglnx.h:23,
|                  from ./common/flatpak-utils.h:26,
|                  from lib/flatpak-enum-types.c:5:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| Makefile:2828: recipe for target 'lib/libflatpak_la-flatpak-enum-types.lo' failed
| make[3]: *** [lib/libflatpak_la-flatpak-enum-types.lo] Error 1
| make[3]: Leaving directory '/<<PKGBUILDDIR>>'
| Makefile:4240: recipe for target 'all-recursive' failed
| make[2]: *** [all-recursive] Error 1
| make[2]: Leaving directory '/<<PKGBUILDDIR>>'
| Makefile:1680: recipe for target 'all' failed
| make[1]: *** [all] Error 2
| make[1]: Leaving directory '/<<PKGBUILDDIR>>'
| dh_auto_build: make -j16 returned exit code 2
| debian/rules:11: recipe for target 'binary-arch' failed
| make: *** [binary-arch] Error 2
| dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2

A full build logs is available there:
http://aws-logs.debian.net/2018/02/07/glibc-exp/flatpak_0.10.3-1_unstable_glibc-exp.log

glibc 2.27 added support for copy_file_range. Unfortunately flatpak,
or rather the included libglnx library, also has such a function to
wrap the corresponding syscall.

The issue has already been fixed upstream in commit 3e16d4ef with an
update of the libglnx submodule. The corresponding libglnx commit is
4577dc82.



More information about the Pkg-utopia-maintainers mailing list