Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 720814 - sys-fs/cryptsetup Fails to build with dev-libs/json-c-0.14
Summary: sys-fs/cryptsetup Fails to build with dev-libs/json-c-0.14
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-03 13:33 UTC by Francesco Riosa
Modified: 2020-05-05 07:00 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Francesco Riosa 2020-05-03 13:33:35 UTC
When dev-libs/json-c-0.14 is installed sys-fs/cryptsetup fail to build
tested with versions 2.3.1 and 2.3.0 of cryptsetup


Reproducible: Always




[...]
/bin/sh ./libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I.  -include config.h -I./lib -DDATADIR=\""/usr/share"\" -DLOCALEDIR=\""/usr/share/locale"\" -D
LIBDIR=\""/usr/lib64"\" -DPREFIX=\""/usr"\" -DSYSCONFDIR=\""/etc"\" -DVERSION=\""2.3.1"\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I .
/lib/tcrypt -I ./lib/integrity -I ./lib/bitlk  -Wall  -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c -o lib/luks2/libcryptsetup_la-luks2_
keyslot_reenc.lo `test -f 'lib/luks2/luks2_keyslot_reenc.c' || echo './'`lib/luks2/luks2_keyslot_reenc.c
/bin/sh ./libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I.  -include config.h -I./lib -DDATADIR=\""/usr/share"\" -DLOCALEDIR=\""/usr/share/locale"\" -D
LIBDIR=\""/usr/lib64"\" -DPREFIX=\""/usr"\" -DSYSCONFDIR=\""/etc"\" -DVERSION=\""2.3.1"\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I .
/lib/tcrypt -I ./lib/integrity -I ./lib/bitlk  -Wall  -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c -o lib/luks2/libcryptsetup_la-luks2_
reencrypt.lo `test -f 'lib/luks2/luks2_reencrypt.c' || echo './'`lib/luks2/luks2_reencrypt.c
In file included from lib/luks2/luks2_disk_metadata.c:24:
lib/luks2/luks2_internal.h:61:10: error: conflicting types for ‘json_object_get_uint64’
   61 | uint64_t json_object_get_uint64(json_object *jobj);
      |          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/json.h:27,
                 from lib/luks2/luks2_internal.h:27,
                 from lib/luks2/luks2_disk_metadata.c:24:
/usr/include/json-c/json_object.h:725:22: note: previous declaration of ‘json_object_get_uint64’ was here
  725 | JSON_EXPORT uint64_t json_object_get_uint64(const struct json_object *obj);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
In file included from lib/luks2/luks2_json_format.c:22:
lib/luks2/luks2_internal.h:61:10: error: conflicting types for ‘json_object_get_uint64’
   61 | uint64_t json_object_get_uint64(json_object *jobj);
      |          ^~~~~~~~~~~~~~~~~~~~~~
/bin/sh ./libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I.  -include config.h -I./lib -DDATADIR=\""/usr/share"\" -DLOCALEDIR=\""/usr/share/locale"\" -D
LIBDIR=\""/usr/lib64"\" -DPREFIX=\""/usr"\" -DSYSCONFDIR=\""/etc"\" -DVERSION=\""2.3.1"\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I .
/lib/tcrypt -I ./lib/integrity -I ./lib/bitlk  -Wall  -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c -o lib/luks2/libcryptsetup_la-luks2_
segment.lo `test -f 'lib/luks2/luks2_segment.c' || echo './'`lib/luks2/luks2_segment.c
In file included from /usr/include/json-c/json.h:27,
                 from lib/luks2/luks2_internal.h:27,
                 from lib/luks2/luks2_json_format.c:22:
/usr/include/json-c/json_object.h:725:22: note: previous declaration of ‘json_object_get_uint64’ was here
  725 | JSON_EXPORT uint64_t json_object_get_uint64(const struct json_object *obj);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -include config.h -I./lib -DDATADIR=\"/usr/share\" -DLOCALEDIR=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib64\" -DPREFIX=
\"/usr\" -DSYSCONFDIR=\"/etc\" -DVERSION=\"2.3.1\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I ./lib/tcrypt -I ./lib/integrity -I ./lib
/bitlk -Wall -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c lib/luks2/luks2_json_metadata.c  -fPIC -DPIC -o lib/luks2/.libs/libcryptsetup
_la-luks2_json_metadata.o
make[2]: *** [Makefile:2078: lib/luks2/libcryptsetup_la-luks2_disk_metadata.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:2085: lib/luks2/libcryptsetup_la-luks2_json_format.lo] Error 1
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -include config.h -I./lib -DDATADIR=\"/usr/share\" -DLOCALEDIR=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib64\" -DPREFIX=\"/usr\" -DSYSCONFDIR=\"/etc\" -DVERSION=\"2.3.1\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I ./lib/tcrypt -I ./lib/integrity -I ./lib/bitlk -Wall -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c lib/luks2/luks2_luks1_convert.c  -fPIC -DPIC -o lib/luks2/.libs/libcryptsetup_la-luks2_luks1_convert.o
In file included from lib/luks2/luks2_json_metadata.c:23:
lib/luks2/luks2_internal.h:61:10: error: conflicting types for ‘json_object_get_uint64’
   61 | uint64_t json_object_get_uint64(json_object *jobj);
      |          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/json.h:27,
                 from lib/luks2/luks2_internal.h:27,
                 from lib/luks2/luks2_json_metadata.c:23:
/usr/include/json-c/json_object.h:725:22: note: previous declaration of ‘json_object_get_uint64’ was here
  725 | JSON_EXPORT uint64_t json_object_get_uint64(const struct json_object *obj);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
lib/luks2/luks2_json_metadata.c: In function ‘json_str_to_uint64’:
lib/luks2/luks2_json_metadata.c:237:10: error: ‘FALSE’ undeclared (first use in this function)
  237 |   return FALSE;
      |          ^~~~~
lib/luks2/luks2_json_metadata.c:237:10: note: each undeclared identifier is reported only once for each function it appears in
lib/luks2/luks2_json_metadata.c:241:9: error: ‘TRUE’ undeclared (first use in this function)
  241 |  return TRUE;
      |         ^~~~
lib/luks2/luks2_json_metadata.c: At top level:
lib/luks2/luks2_json_metadata.c:244:10: error: conflicting types for ‘json_object_get_uint64’
  244 | uint64_t json_object_get_uint64(json_object *jobj)
      |          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/json.h:27,
                 from lib/luks2/luks2_internal.h:27,
                 from lib/luks2/luks2_json_metadata.c:23:
/usr/include/json-c/json_object.h:725:22: note: previous declaration of ‘json_object_get_uint64’ was here
  725 | JSON_EXPORT uint64_t json_object_get_uint64(const struct json_object *obj);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
lib/luks2/luks2_json_metadata.c: In function ‘numbered’:
lib/luks2/luks2_json_metadata.c:276:11: error: ‘FALSE’ undeclared (first use in this function)
  276 |    return FALSE;
      |           ^~~~~
lib/luks2/luks2_json_metadata.c:278:9: error: ‘TRUE’ undeclared (first use in this function)
  278 |  return TRUE;
      |         ^~~~
lib/luks2/luks2_json_metadata.c: In function ‘validate_json_uint32’:
lib/luks2/luks2_json_metadata.c:303:50: error: ‘FALSE’ undeclared (first use in this function)
  303 |  return (errno || tmp < 0 || tmp > UINT32_MAX) ? FALSE : TRUE;
      |                                                  ^~~~~
lib/luks2/luks2_json_metadata.c:303:58: error: ‘TRUE’ undeclared (first use in this function)
  303 |  return (errno || tmp < 0 || tmp > UINT32_MAX) ? FALSE : TRUE;
      |                                                          ^~~~
lib/luks2/luks2_json_metadata.c: In function ‘validate_keyslots_array’:
lib/luks2/luks2_json_metadata.c:316:11: error: ‘FALSE’ undeclared (first use in this function)
  316 |    return FALSE;
      |           ^~~~~
lib/luks2/luks2_json_metadata.c:326:9: error: ‘TRUE’ undeclared (first use in this function)
  326 |  return TRUE;
      |         ^~~~
lib/luks2/luks2_json_metadata.c: In function ‘validate_segments_array’:
lib/luks2/luks2_json_metadata.c:339:11: error: ‘FALSE’ undeclared (first use in this function)
  339 |    return FALSE;
      |           ^~~~~
lib/luks2/luks2_json_metadata.c:349:9: error: ‘TRUE’ undeclared (first use in this function)
  349 |  return TRUE;
      |         ^~~~
lib/luks2/luks2_json_metadata.c: In function ‘segment_has_digest’:
lib/luks2/luks2_json_metadata.c:360:11: error: ‘TRUE’ undeclared (first use in this function)
  360 |    return TRUE;
      |           ^~~~
lib/luks2/luks2_json_metadata.c:363:9: error: ‘FALSE’ undeclared (first use in this function)
  363 |  return FALSE;
      |         ^~~~~
lib/luks2/luks2_json_metadata.c: In function ‘validate_intervals’:
lib/luks2/luks2_json_metadata.c:375:11: error: ‘FALSE’ undeclared (first use in this function)
  375 |    return FALSE;
      |           ^~~~~
lib/luks2/luks2_json_metadata.c:403:9: error: ‘TRUE’ undeclared (first use in this function)
  403 |  return TRUE;
      |         ^~~~
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -include config.h -I./lib -DDATADIR=\"/usr/share\" -DLOCALEDIR=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib64\" -DPREFIX=\"/usr\" -DSYSCONFDIR=\"/etc\" -DVERSION=\"2.3.1\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I ./lib/tcrypt -I ./lib/integrity -I ./lib/bitlk -Wall -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c lib/luks2/luks2_digest.c  -fPIC -DPIC -o lib/luks2/.libs/libcryptsetup_la-luks2_digest.o
lib/luks2/luks2_json_metadata.c: In function ‘json_str_to_uint64’:
lib/luks2/luks2_json_metadata.c:242:1: warning: control reaches end of non-void function [-Wreturn-type]
  242 | }
      | ^
lib/luks2/luks2_json_metadata.c: In function ‘validate_json_uint32’:
lib/luks2/luks2_json_metadata.c:304:1: warning: control reaches end of non-void function [-Wreturn-type]
  304 | }
      | ^
lib/luks2/luks2_json_metadata.c: In function ‘validate_keyslots_array’:
lib/luks2/luks2_json_metadata.c:327:1: warning: control reaches end of non-void function [-Wreturn-type]
  327 | }
      | ^
lib/luks2/luks2_json_metadata.c: In function ‘numbered’:
lib/luks2/luks2_json_metadata.c:279:1: warning: control reaches end of non-void function [-Wreturn-type]
  279 | }
      | ^
lib/luks2/luks2_json_metadata.c: In function ‘validate_intervals’:
lib/luks2/luks2_json_metadata.c:404:1: warning: control reaches end of non-void function [-Wreturn-type]
  404 | }
      | ^
lib/luks2/luks2_json_metadata.c: In function ‘segment_has_digest’:
lib/luks2/luks2_json_metadata.c:364:1: warning: control reaches end of non-void function [-Wreturn-type]
  364 | }
      | ^
lib/luks2/luks2_json_metadata.c: In function ‘validate_segments_array’:
lib/luks2/luks2_json_metadata.c:350:1: warning: control reaches end of non-void function [-Wreturn-type]
  350 | }
      | ^
make[2]: *** [Makefile:2092: lib/luks2/libcryptsetup_la-luks2_json_metadata.lo] Error 1
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -include config.h -I./lib -DDATADIR=\"/usr/share\" -DLOCALEDIR=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib64\" -DPREFIX=\"/usr\" -DSYSCONFDIR=\"/etc\" -DVERSION=\"2.3.1\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I ./lib/tcrypt -I ./lib/integrity -I ./lib/bitlk -Wall -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c lib/luks2/luks2_digest_pbkdf2.c  -fPIC -DPIC -o lib/luks2/.libs/libcryptsetup_la-luks2_digest_pbkdf2.o
In file included from lib/luks2/luks2_luks1_convert.c:23:
lib/luks2/luks2_internal.h:61:10: error: conflicting types for ‘json_object_get_uint64’
   61 | uint64_t json_object_get_uint64(json_object *jobj);
      |          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/json.h:27,
                 from lib/luks2/luks2_internal.h:27,
                 from lib/luks2/luks2_luks1_convert.c:23:
/usr/include/json-c/json_object.h:725:22: note: previous declaration of ‘json_object_get_uint64’ was here
  725 | JSON_EXPORT uint64_t json_object_get_uint64(const struct json_object *obj);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:2099: lib/luks2/libcryptsetup_la-luks2_luks1_convert.lo] Error 1
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -include config.h -I./lib -DDATADIR=\"/usr/share\" -DLOCALEDIR=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib64\" -DPREFIX=\"/usr\" -DSYSCONFDIR=\"/etc\" -DVERSION=\"2.3.1\" -I ./lib/crypto_backend -I ./lib/luks1 -I ./lib/luks2 -I ./lib/loopaes -I ./lib/verity -I ./lib/tcrypt -I ./lib/integrity -I ./lib/bitlk -Wall -O3 -pipe -march=skylake -mtune=skylake -frecord-gcc-switches -fdiagnostics-color=never -c lib/luks2/luks2_keyslot.c  -fPIC -DPIC -o lib/luks2/.libs/libcryptsetup_la-luks2_keyslot.o
In file included from lib/luks2/luks2_digest.c:22:
lib/luks2/luks2_internal.h:61:10: error: conflicting types for ‘json_object_get_uint64’
   61 | uint64_t json_object_get_uint64(json_object *jobj);
      |          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/json.h:27,
                 from lib/luks2/luks2_internal.h:27,
                 from lib/luks2/luks2_digest.c:22:
/usr/include/json-c/json_object.h:725:22: note: previous declaration of ‘json_object_get_uint64’ was here
  725 | JSON_EXPORT uint64_t json_object_get_uint64(const struct json_object *obj);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:2106: lib/luks2/libcryptsetup_la-luks2_digest.lo] Error 1
In file included from lib/luks2/luks2_digest_pbkdf2.c:22:
lib/luks2/luks2_internal.h:61:10: error: conflicting types for ‘json_object_get_uint64’
   61 | uint64_t json_object_get_uint64(json_object *jobj);
      |          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/json.h:27,
                 from lib/luks2/luks2_internal.h:27,
                 from lib/luks2/luks2_digest_pbkdf2.c:22:
/usr/include/json-c/json_object.h:725:22: note: previous declaration of ‘json_object_get_uint64’ was here
  725 | JSON_EXPORT uint64_t json_object_get_uint64(const struct json_object *obj);
      |                      ^~~~~~~~~~~~~~~~~~~~~~

[...]
      
 * ERROR: sys-fs/cryptsetup-2.3.1::gentoo failed (compile phase):
 *   emake failed
 *
 * If you need support, post the output of `emerge --info '=sys-fs/cryptsetup-2.3.1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-fs/cryptsetup-2.3.1::gentoo'`.
 * The complete build log is located at '/var/log/portage/build/sys-fs/cryptsetup-2.3.1:20200503-075056.log.gz'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-fs/cryptsetup-2.3.1/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-fs/cryptsetup-2.3.1/work/cryptsetup-2.3.1'
 * S: '/var/tmp/portage/sys-fs/cryptsetup-2.3.1/work/cryptsetup-2.3.1'
Comment 1 Pacho Ramos gentoo-dev 2020-05-04 15:51:03 UTC
Same problem here
Comment 2 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2020-05-04 16:05:05 UTC
Should be fixed with sys-fs/cryptsetup-2.3.2

Can you confirm this?
Comment 3 Pacho Ramos gentoo-dev 2020-05-04 16:18:16 UTC
yes, it works, I was just trying it :D
Comment 4 Francesco Riosa 2020-05-05 07:00:59 UTC
confirmed fixed:

>>> Running pre-merge checks for sys-fs/cryptsetup-2.3.2
 * WARNING! WARNING! WARNING!
 * You have chosen LUKS2 as your default format.
 * This can break LUKS1 backwards compatibility.
 * Enable "luks1_default" USE flag if you need backwards compatibility.
>>> Emerging (1 of 5) dev-libs/json-c-0.14::gentoo
>>> Installing (1 of 5) dev-libs/json-c-0.14::gentoo
>>> Emerging (2 of 5) dev-util/systemtap-4.0-r1::gentoo
>>> Emerging (3 of 5) sys-fs/cryptsetup-2.3.2::gentoo
>>> Installing (3 of 5) sys-fs/cryptsetup-2.3.2::gentoo
>>> Emerging (4 of 5) net-wireless/bluez-5.54::gentoo
>>> Installing (2 of 5) dev-util/systemtap-4.0-r1::gentoo
>>> Installing (4 of 5) net-wireless/bluez-5.54::gentoo
>>> Emerging (5 of 5) media-libs/libmypaint-1.4.0-r1::gentoo
>>> Installing (5 of 5) media-libs/libmypaint-1.4.0-r1::gentoo
>>> Jobs: 5 of 5 complete                           Load avg: 4.22, 1.64, 0.97