Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] json-c+pulsaudio vs. jsoncpp+chromium
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo
View previous topic :: View next topic  
Author Message
Kollin
Veteran
Veteran


Joined: 25 Feb 2006
Posts: 1139
Location: Sofia/Bulgaria

PostPosted: Sun Jan 20, 2013 12:21 am    Post subject: [SOLVED] json-c+pulsaudio vs. jsoncpp+chromium Reply with quote

json-c and jsoncpp are installing same file in same location: /usr/include/json/json.h

json-c installs the following /usr/include/json/json.h

Code:
/*
 * $Id: json.h,v 1.6 2006/01/26 02:16:28 mclark Exp $
 *
 * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
 * Michael Clark <michael@metaparadigm.com>
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the MIT license. See COPYING for details.
 *
 */

#ifndef _json_h_
#define _json_h_

#ifdef __cplusplus
extern "C" {
#endif

#include "bits.h"
#include "debug.h"
#include "linkhash.h"
#include "arraylist.h"
#include "json_util.h"
#include "json_object.h"
#include "json_tokener.h"

#ifdef __cplusplus
}
#endif

#endif


jsoncpp installs the following /usr/include/json/json.h:

Code:


#ifndef JSON_JSON_H_INCLUDED
# define JSON_JSON_H_INCLUDED

# include "autolink.h"
# include "value.h"
# include "reader.h"
# include "writer.h"
# include "features.h"

#endif // JSON_JSON_H_INCLUDED



Chromium pulls in jsoncpp which leads to file collision:

Code:
* Detected file collision(s):
 *
 *      /usr/include/json/json.h
 *
 * Searching all installed packages for file collisions...
 *
 * Press Ctrl-C to Stop
 *
 * dev-libs/json-c-0.9-r1:0::gentoo
 *      /usr/include/json/json.h
 *
 * Package 'dev-libs/jsoncpp-0.5.0' NOT merged due to file collisions. If
 * necessary, refer to your elog messages for the whole content of the
 * above message.


Of course i want to install the new version of chromium so i delete /usr/include/json/json.h and after that i'm able successfully to install jsoncpp (and chromium respectively).

BUT pusleaudio-3 does ot compile with jsoncpp's /usr/include/json/json.h:

Code:
>>> Source configured.
>>> Compiling source in /var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0 ...
make -j1
make  all-recursive
make[1]: Entering directory `/var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0'
Making all in src
make[2]: Entering directory `/var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0/src'
  ORCC   pulsecore/svolume-orc-gen.c
  ORCC   pulsecore/svolume-orc-gen.h
make  all-am
make[3]: Entering directory `/var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0/src'
  CC     libpulse_la-channelmap.lo
In file included from /usr/include/json/features.h:4:0,
                 from /usr/include/stdlib.h:24,
                 from pulse/channelmap.c:27:
/usr/include/json/forwards.h:6:1: error: unknown type name ‘namespace’
/usr/include/json/forwards.h:6:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
In file included from /usr/include/stdlib.h:24:0,
                 from pulse/channelmap.c:27:
/usr/include/json/features.h:6:1: error: unknown type name ‘namespace’
/usr/include/json/features.h:6:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
In file included from pulse/channelmap.c:27:0:
/usr/include/stdlib.h:34:1: error: unknown type name ‘__BEGIN_DECLS’
/usr/include/stdlib.h:97:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’
/usr/include/stdlib.h:139:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’
/usr/include/stdlib.h:144:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’
/usr/include/stdlib.h: In function ‘atoi’:
/usr/include/stdlib.h:148:6: error: unknown type name ‘__THROW’


/usr/include/json/features.h is also jsoncpp offspring.

So if i want to have pulseaudio-3 successfully built i have to remove jsoncpp and re install json-c, but then chromium complains

Code:
!!! existing preserved libs:
>>> package: dev-libs/jsoncpp-0.5.0
 *  - /usr/lib64/libjsoncpp.so.0.5.0
 *      used by /usr/lib64/chromium-browser/libppGoogleNaClPluginChrome.so (www-client/chromium-26.0.1384.2)


My question is how can i have both jsoncpp and json-c with two different /usr/include/json/json.h files on my system :?
_________________
"Dear Enemy: may the Lord hate you and all your kind, may you be turned orange in hue, and may your head fall off at an awkward moment."
"Linux is like a wigwam - no windows, no gates, apache inside..."


Last edited by Kollin on Sat Feb 09, 2013 5:15 am; edited 1 time in total
Back to top
View user's profile Send private message
Timmer
Guru
Guru


Joined: 24 Aug 2004
Posts: 369
Location: Duluth, MN, USA

PostPosted: Sun Jan 20, 2013 4:59 am    Post subject: Reply with quote

I've got the same problem... I'm currently dealing with it by leaving chromium alone, and installing the google-chrome package instead.
Back to top
View user's profile Send private message
Kollin
Veteran
Veteran


Joined: 25 Feb 2006
Posts: 1139
Location: Sofia/Bulgaria

PostPosted: Sun Jan 20, 2013 8:04 am    Post subject: Reply with quote

Timmer wrote:
I've got the same problem... I'm currently dealing with it by leaving chromium alone, and installing the google-chrome package instead.


Yes that is also an optional solution, i just hope that someone more knowledgeable than me (liek Paweł Hajdan, Jr. for example) will come up with a proper fix. :wink:
_________________
"Dear Enemy: may the Lord hate you and all your kind, may you be turned orange in hue, and may your head fall off at an awkward moment."
"Linux is like a wigwam - no windows, no gates, apache inside..."
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6111
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Fri Jan 25, 2013 9:58 pm    Post subject: Reply with quote

*subscribes*

got the same issue

would be interested on how to solve this, too


edit:

if v8 or chromium brings along its own jsoncpp a use-flag for system-jsoncpp would be at least one option to solve this issue
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
Kollin
Veteran
Veteran


Joined: 25 Feb 2006
Posts: 1139
Location: Sofia/Bulgaria

PostPosted: Fri Jan 25, 2013 11:50 pm    Post subject: Reply with quote

I already sent a PM to Paweł Hajdan, Jr with link to this thread. No response yet, he is on vacation probably :wink:

I'm thinking of filling a bug report, but i still cant decide against which package should i fill it :?
_________________
"Dear Enemy: may the Lord hate you and all your kind, may you be turned orange in hue, and may your head fall off at an awkward moment."
"Linux is like a wigwam - no windows, no gates, apache inside..."
Back to top
View user's profile Send private message
Zenkibou
n00b
n00b


Joined: 25 Jan 2013
Posts: 3

PostPosted: Sat Jan 26, 2013 9:07 am    Post subject: Reply with quote

I had the issue too, so I un-applied the jsoncpp change from chromium 25 to the chromium 26 ebuild files to use the embedded jsoncpp instead of using a system-wide jsoncpp library :
Code:
--- a/chromium-26.0.1386.0.ebuild
+++ b/chromium-26.0.1386.0.ebuild
@@ -31,7 +31,6 @@
    >=dev-libs/elfutils-0.149
    dev-libs/expat
    >=dev-libs/icu-49.1.1-r1
-   dev-libs/jsoncpp
    >=dev-libs/libevent-1.4.13
    dev-libs/libxml2[icu]
    dev-libs/libxslt
@@ -169,6 +168,7 @@
       \! -path 'third_party/hunspell/*' \
       \! -path 'third_party/hyphen/*' \
       \! -path 'third_party/iccjpeg/*' \
+      \! -path 'third_party/jsoncpp/*' \
       \! -path 'third_party/khronos/*' \
       \! -path 'third_party/leveldatabase/*' \
       \! -path 'third_party/libjingle/*' \
@@ -247,7 +247,6 @@
       -Duse_system_flac=1
       -Duse_system_harfbuzz=1
       -Duse_system_icu=1
-      -Duse_system_jsoncpp=1
       -Duse_system_libevent=1
       -Duse_system_libjpeg=1
       -Duse_system_libpng=1

I'm currently posting this using chromium 26 with pulseaudio without jsoncpp so everything is fine again for me :D
Back to top
View user's profile Send private message
Kollin
Veteran
Veteran


Joined: 25 Feb 2006
Posts: 1139
Location: Sofia/Bulgaria

PostPosted: Mon Jan 28, 2013 3:08 pm    Post subject: Reply with quote

Today I updated to dev-libs/json-c-0.10 and now pulsaudio compiles fine but chromium fails with:

Code:
In file included from third_party/libjingle/source/talk/base/json.cc:28:0:
third_party/libjingle/source/talk/base/json.h:35:23: fatal error: json/json.h: No such file or directory
compilation terminated.


With the new version json-c installs it's json.h into /usr/include/json-c/
I.e. the only provider of json.h into /usr/include/json/ is jsoncpp now .
To compile chromium i had to install again jsoncpp, preserved-rebuild did not complain of the missing json.h into /usr/include/json/, but chromium did ;)
_________________
"Dear Enemy: may the Lord hate you and all your kind, may you be turned orange in hue, and may your head fall off at an awkward moment."
"Linux is like a wigwam - no windows, no gates, apache inside..."
Back to top
View user's profile Send private message
Kollin
Veteran
Veteran


Joined: 25 Feb 2006
Posts: 1139
Location: Sofia/Bulgaria

PostPosted: Sat Feb 09, 2013 5:15 am    Post subject: Reply with quote

And the new www-client/chromium-26.0.1403.0 compiles just fine, all issues are gone... Marking as 'solved' 8)
_________________
"Dear Enemy: may the Lord hate you and all your kind, may you be turned orange in hue, and may your head fall off at an awkward moment."
"Linux is like a wigwam - no windows, no gates, apache inside..."
Back to top
View user's profile Send private message
phajdan.jr
Retired Dev
Retired Dev


Joined: 23 Mar 2006
Posts: 1777
Location: Poland

PostPosted: Sun Feb 10, 2013 9:58 am    Post subject: Reply with quote

Kollin wrote:
I'm thinking of filling a bug report, but i still cant decide against which package should i fill it :?


Please do. If in doubt, just file it, it will be routed to the right people (usually both maintainers). File collision is always a bug, and when filed as bug it will always be fixed faster than when discussed on forums (which is one of the first things I drop when shorter on time).
_________________
http://phajdan-jr.blogspot.com/
Back to top
View user's profile Send private message
truekaiser
l33t
l33t


Joined: 05 Mar 2004
Posts: 801

PostPosted: Sat Mar 09, 2013 6:09 am    Post subject: Reply with quote

I just got this conflict on the last couple of versions of chromium. i just masked them rather than bothering with editing the ebuild and stuff like that since it's just going to get overwritten the following week.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum