<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FewBar.com - Make it good &#187; scribe</title>
	<atom:link href="http://fewbar.com/tag/scribe/feed/" rel="self" type="application/rss+xml" />
	<link>http://fewbar.com</link>
	<description>Technology, life, and mischief, not in that order</description>
	<lastBuildDate>Fri, 23 Dec 2011 01:41:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Facebook&#8217;s scribe makes a meal out of me, and comes back for more</title>
		<link>http://fewbar.com/2009/02/facebooks-scribe-makes-a-meal-out-of-me-and-comes-back-for-more/</link>
		<comments>http://fewbar.com/2009/02/facebooks-scribe-makes-a-meal-out-of-me-and-comes-back-for-more/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 18:51:03 +0000</pubDate>
		<dc:creator>clint</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[scribe]]></category>
		<category><![CDATA[thrift]]></category>

		<guid isPermaLink="false">http://fewbar.com/?p=40</guid>
		<description><![CDATA[So, I was working on getting Facebook&#8217;s seemingly amazing Scribe logging architecture setup to check it out. One of the requirements it has is &#8216;fb303&#8242;, which is included with Thrift in the contrib directory. I ran into this: [root@wolverine fb303]# ./configure --with-thriftpath=/usr/local --with-boost=/usr/local checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is [...]]]></description>
			<content:encoded><![CDATA[<p>So, I was working on getting Facebook&#8217;s seemingly amazing <a href="http://developers.facebook.com/scribe/">Scribe</a> logging architecture setup to check it out. One of the requirements it has is &#8216;fb303&#8242;, which is included with <a href="http://incubator.apache.org/thrift/">Thrift</a> in the contrib directory. I ran into this:<br />
<span id="more-40"></span><br />
<code><br />
[root@wolverine fb303]# ./configure --with-thriftpath=/usr/local --with-boost=/usr/local<br />
checking for a BSD-compatible install... /usr/bin/install -c<br />
checking whether build environment is sane... yes<br />
checking for gawk... gawk<br />
checking whether make sets $(MAKE)... yes<br />
checking for style of include used by make... GNU</p>
<p>checking for gcc... gcc<br />
checking for C compiler default output file name... a.out<br />
checking whether the C compiler works... yes<br />
checking whether we are cross compiling... no<br />
checking for suffix of executables...<br />
checking for suffix of object files... o<br />
checking whether we are using the GNU C compiler... yes<br />
checking whether gcc accepts -g... yes<br />
checking for gcc option to accept ANSI C... none needed<br />
checking dependency style of gcc... gcc3<br />
checking for g++... g++<br />
checking whether we are using the GNU C++ compiler... yes<br />
checking whether g++ accepts -g... yes<br />
checking dependency style of g++... gcc3<br />
checking for ranlib... ranlib<br />
checking for bash... /bin/sh<br />
checking for perl... /usr/bin/perl<br />
checking for python... /usr/bin/python<br />
checking for ar... /usr/bin/ar<br />
checking for ant... no<br />
checking Checking EXTERNAL_PATH set to... /usr/local/src/scribetest/thrift/contrib/fb303<br />
checking whether to enable optimized build... yes<br />
checking whether to enable static mode... yes<br />
checking Checking thrift_home set to... /usr/local<br />
checking for boostlib >= 1.33.1... yes<br />
configure: creating ./config.status<br />
config.status: creating Makefile<br />
config.status: creating cpp/Makefile<br />
config.status: creating py/Makefile<br />
config.status: executing depfiles commands<br />
EXTERNAL_PATH /usr/local/src/scribetest/thrift/contrib/fb303<br />
[root@wolverine fb303]# make<br />
make  all-recursive<br />
make[1]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
Making all in .<br />
make[2]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
make[2]: Nothing to be done for `all-am'.<br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
Making all in cpp<br />
make[2]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
make  all-am<br />
make[3]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\" -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\" -DPACKAGE_BUGREPORT=\"\" -DHAVE_BOOST=  -I. -I.  -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/local/include/boost-1_37     -Wall -O3 -MT FacebookService.o -MD -MP -MF ".deps/FacebookService.Tpo" -c -o FacebookService.o `test -f 'gen-cpp/FacebookService.cpp' || echo './'`gen-cpp/FacebookService.cpp; \<br />
then mv -f ".deps/FacebookService.Tpo" ".deps/FacebookService.Po"; else rm -f ".deps/FacebookService.Tpo"; exit 1; fi<br />
In file included from gen-cpp/FacebookService.cpp:6:<br />
gen-cpp/FacebookService.h:28: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:28: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:28: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.h:72: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:72: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:72: error: ISO C++ forbids declaration of `parameter' with no type<br />
gen-cpp/FacebookService.h:1077: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1077: error: ISO C++ forbids declaration of `Service' with no type<br />
gen-cpp/FacebookService.h:1077: error: expected `;' before "success"<br />
gen-cpp/FacebookService.h: In member function `bool facebook::fb303::FacebookService_getLimitedReflection_result::operator==(const facebook::fb303::FacebookService_getLimitedReflection_result&#038;) const':<br />
gen-cpp/FacebookService.h:1086: error: `success' was not declared in this scope<br />
gen-cpp/FacebookService.h:1086: error: 'const class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
gen-cpp/FacebookService.h:1086: warning: unused variable 'success'<br />
gen-cpp/FacebookService.h: At global scope:<br />
gen-cpp/FacebookService.h:1107: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1107: error: ISO C++ forbids declaration of `Service' with no type<br />
gen-cpp/FacebookService.h:1107: error: expected `;' before '*' token<br />
gen-cpp/FacebookService.h:1241: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1241: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:1241: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.h:1243: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1243: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:1243: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.h:1434: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1434: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:1434: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.cpp: In member function `uint32_t facebook::fb303::FacebookService_getLimitedReflection_result::read(apache::thrift::protocol::TProtocol*)':<br />
gen-cpp/FacebookService.cpp:1795: error: 'class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
gen-cpp/FacebookService.cpp: In member function `uint32_t facebook::fb303::FacebookService_getLimitedReflection_result::write(apache::thrift::protocol::TProtocol*) const':<br />
gen-cpp/FacebookService.cpp:1821: error: 'const class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
gen-cpp/FacebookService.cpp: In member function `uint32_t facebook::fb303::FacebookService_getLimitedReflection_presult::read(apache::thrift::protocol::TProtocol*)':<br />
gen-cpp/FacebookService.cpp:1851: error: 'class facebook::fb303::FacebookService_getLimitedReflection_presult' has no member named 'success'<br />
gen-cpp/FacebookService.cpp: At global scope:<br />
gen-cpp/FacebookService.cpp:2614: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.cpp:2614: error: variable or field `getLimitedReflection' declared void<br />
gen-cpp/FacebookService.cpp:2614: error: `int facebook::fb303::FacebookServiceClient::getLimitedReflection' is not a static member of `class facebook::fb303::FacebookServiceClient'<br />
gen-cpp/FacebookService.cpp:2614: error: `Service' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2614: error: `_return' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2615: error: expected `,' or `;' before '{' token<br />
gen-cpp/FacebookService.cpp:2633: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.cpp:2633: error: variable or field `recv_getLimitedReflection' declared void<br />
gen-cpp/FacebookService.cpp:2633: error: `int facebook::fb303::FacebookServiceClient::recv_getLimitedReflection' is not a static member of `class facebook::fb303::FacebookServiceClient'<br />
gen-cpp/FacebookService.cpp:2633: error: `Service' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2633: error: `_return' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2634: error: expected `,' or `;' before '{' token<br />
gen-cpp/FacebookService.cpp: In member function `void facebook::fb303::FacebookServiceProcessor::process_getLimitedReflection(int32_t, apache::thrift::protocol::TProtocol*, apache::thrift::protocol::TProtocol*)':<br />
gen-cpp/FacebookService.cpp:3070: error: 'class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
make[3]: *** [FacebookService.o] Error 1<br />
make[3]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
make[2]: *** [all] Error 2<br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
make[1]: *** [all-recursive] Error 1<br />
make[1]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
make: *** [all] Error 2<br />
</code></p>
<p>I googled around but found nothing. I tried logging into #thrift on Freenode, and &#8220;SteveC_&#8221; informed me that he had the same problem, and pointed me at this <a href="https://issues.apache.org/jira/browse/THRIFT-292">thrift</a> bug report that explains it a little better. It would seem that Thrift is no longer in the  &#8216;facebook&#8217; namespace, but rather &#8216;apache&#8217;. This makes perfect sense. However, fb303 still expects it to be facebook. So, on Steve&#8217;s advice of replacing the word &#8216;facebook&#8217; with &#8216;apache&#8217; in the fb303 tree, I did this in fb303:</p>
<p>find . -type f | xargs perl -p -i -e &#8216;s/facebook/apache/g&#8217;</p>
<p>And the make continued a little further until I hit this:</p>
<p><code><br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
Making all in py<br />
make[2]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303/py'<br />
/usr/bin/python setup.py build<br />
running build<br />
running build_py<br />
error: package directory 'fb303' does not exist<br />
make[2]: *** [all-local] Error 1<br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/py'<br />
make[1]: *** [all-recursive] Error 1<br />
make[1]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
make: *** [all] Error 2<br />
</code></p>
<p>However, this error seemed to be irrelevant, as &#8216;make install&#8217; put fb303 where it was supposed to go.</p>
<p>Building scribe, the same &#8216;find&#8217; command from above was required. I ran it after running into the first &#8216;no such thing as facebook&#8217; error, and the make continued, and scribe seemed to work just fine.</p>
<p>Hopefully this will find its way into google&#8217;s indexes and help somebody.</p>
]]></content:encoded>
			<wfw:commentRss>http://fewbar.com/2009/02/facebooks-scribe-makes-a-meal-out-of-me-and-comes-back-for-more/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.139 seconds -->

