이메일 #171 - #175
원본 출처: Satoshi - Sirius emails 2009-2011
이메일 #171
Date: Tue, 23 Feb 2010 16:47:59 +0200
From: [email protected]
To: Satoshi Nakamoto <[email protected]>
Subject: Re: Non-GUI option
영어 원문
>>> Just a few clues I've found about running the same binary without a GUI:
>>>
>>> 1) GTK supports running a program without display:
>>> http://library.gnome.org/devel/gtk/2.12/gtk-General.html#gtk-init-check.
>>> This doesn't tell if it's possible in wxWidgets though.
>>
>> I see it calls gtk-init-check in wxApp::Initialize.
>>
>> I can subclass Initialize, call the original one while suppressing
>> the error message and ignore the return value. It seems to be
>> working.
>
> This is working. A few more things and I'll upload it.
>
> We'll need to tell people to install the GTK libraries. Do you
> remember the apt-get command to install GTK, and can you install it
> without having a GUI installed?
It was probably apt-get install libgtk2.0-0. You can search for
available packages like this: "apt-cache search libgtk".
I'll give Drupal accounts to the bitcoin.org translators, so they can
keep the translations up to date.
이메일 #172
Date: Wed, 24 Feb 2010 06:34:52 +0000
From: Satoshi Nakamoto <[email protected]>
Subject: Re: Non-GUI option
To: [email protected]
영어 원문
> I'll give Drupal accounts to the bitcoin.org translators, so they can
> keep the translations up to date.
Good, that gives them a little sense of ownership and responsibility.
I hope we get at least one .mo file for the software translation in time
to put into the 0.3 release.
이메일 #173
Date: Sun, 28 Feb 2010 06:12:44 +0200
From: [email protected]
To: Satoshi Nakamoto <[email protected]>
Subject: Bitcoind
영어 원문
I tried debugging my build of bitcoind with ddd debugger, but didn't
have much success yet. It always ends up taking all the system's
memory and finally crashes. Could you please send me again the latest
64 bit build of bitcoind, so I can see if the problem is about my build?
이메일 #174
Date: Sun, 28 Feb 2010 14:47:01 +0000
From: Satoshi Nakamoto <[email protected]>
Subject: Re: Bitcoind
To: [email protected]
영어 원문
I put it at bitcoin.org/download/linux64-0.2.7.1.tar.gz. You can delete
it when you've got it.
I thought about what might cause the problem you're having and made a
change that this build includes. This might have been unsafe code,
although it would probably always get lucky.
in util.cpp, old:
const char* wxGetTranslation(const char* pszEnglish)
{
// Wrapper of wxGetTranslation returning the same const char* type
as was passed in
static CCriticalSection cs;
CRITICAL_BLOCK(cs)
{
// Look in cache
static map<string, char*> mapCache;
map<string, char*>::iterator mi = mapCache.find(pszEnglish);
if (mi != mapCache.end())
return (*mi).second;
// wxWidgets translation
const char* pszTranslated =
wxGetTranslation(wxString(pszEnglish, wxConvUTF8)).utf8_str();
// We don't cache unknown strings because caller might be
passing in a
// dynamic string and we would keep allocating memory for each
variation.
if (strcmp(pszEnglish, pszTranslated) == 0)
return pszEnglish;
// Add to cache, memory doesn't need to be freed. We only
cache because
// we must pass back a pointer to permanently allocated memory.
char* pszCached = new char[strlen(pszTranslated)+1];
strcpy(pszCached, pszTranslated);
mapCache[pszEnglish] = pszCached;
return pszCached;
}
return NULL;
}
new:
const char* wxGetTranslation(const char* pszEnglish)
{
// Wrapper of wxGetTranslation returning the same const char* type
as was passed in
static CCriticalSection cs;
CRITICAL_BLOCK(cs)
{
// Look in cache
static map<string, char*> mapCache;
map<string, char*>::iterator mi = mapCache.find(pszEnglish);
if (mi != mapCache.end())
return (*mi).second;
// wxWidgets translation
wxString strTranslated = wxGetTranslation(wxString(pszEnglish,
wxConvUTF8));
// We don't cache unknown strings because caller might be
passing in a
// dynamic string and we would keep allocating memory for each
variation.
if (strcmp(pszEnglish, strTranslated.utf8_str()) == 0)
return pszEnglish;
// Add to cache, memory doesn't need to be freed. We only
cache because
// we must pass back a pointer to permanently allocated memory.
char* pszCached = new char[strlen(strTranslated.utf8_str())+1];
strcpy(pszCached, strTranslated.utf8_str());
mapCache[pszEnglish] = pszCached;
return pszCached;
}
return NULL;
}
If you still suspect this code, for testing you could change it to:
const char* wxGetTranslation(const char* pszEnglish)
{
return pszEnglish;
}
[email protected] wrote:
> I tried debugging my build of bitcoind with ddd debugger, but didn't
> have much success yet. It always ends up taking all the system's memory
> and finally crashes. Could you please send me again the latest 64 bit
> build of bitcoind, so I can see if the problem is about my build?
>
이메일 #175
Date: Sun, 28 Feb 2010 20:09:07 +0000
From: Satoshi Nakamoto <[email protected]>
Subject: Re: Bitcoind
To: [email protected]
영어 원문
Could you send me the debug.log?
[email protected] wrote:
> I tried debugging my build of bitcoind with ddd debugger, but didn't
> have much success yet. It always ends up taking all the system's memory
> and finally crashes. Could you please send me again the latest 64 bit
> build of bitcoind, so I can see if the problem is about my build?
>