Re: Windows Build failure

2015-07-31 Thread Robert Fewell
John,

Have built from scratch and confirm Gnucash starts OK from creating a dist
file.


Not sure if this is related or just a coincidence, but if I try and start
from the inst/bin/gnucash-launcher.cmd I get the following error...

'The procedure __gmpn_cnd_add_n can not be found in libgmp-10.dll'

Doing a search for that dll file I find two copies, one in gcdev\mingw\bin
and one in gcdev\gnutls\bin which are different.

To fix the problem, I swapped the two lines that add the directories above
to generate the path in the cmd file.

Regards,
Robert



On 28 July 2015 at 17:19, John Ralls jra...@ceridwen.us wrote:


  On Jul 27, 2015, at 12:59 PM, John Ralls jra...@ceridwen.us wrote:
 
 
  On Jul 27, 2015, at 10:21 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
  John,
 
  I have given it a try and it partially fixes the problem. Gnucash now
 builds OK but it still failed on startup. Just to make sure I created a
 setup.exe from the dist script and installed that which failed initially
 because it could not find the lib_boost_date.dll, these were in the lib
 directory but when I moved them to the bin directory Gnucash found the
 files and failed the same as from the build directory.
 
  Just to make sure it was not my XP build VM, I used the setup.exe on
 another XP VM and when I had moved the boost dll files, it started up just
 fine.
 
  Comparing the two, the one that worked had Time Zone 'GMT London' with
 DST ticked and the one that fails has 'GMT Monrovia/Reykjavik', swapping
 between the two allows it to run or fail.
 
 
  Darn. I knew about putting the libs in the wrong place but forgot to
 commit the fix. Done now.
 
  Ah, Liberia and Iceland are places that have the good sense not to use
 daylight time so the registry entry has 0 values for the transition times,
 and I’m not handling that correctly on Win32. Should be a straightforward
 fix.


 Robert,

 I just tested today’s nightly build in XP with the TZ set for
 Monrovia/Reykjavic and it started up without errors.

 Regards,
 John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-28 Thread John Ralls

 On Jul 27, 2015, at 12:59 PM, John Ralls jra...@ceridwen.us wrote:
 
 
 On Jul 27, 2015, at 10:21 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 I have given it a try and it partially fixes the problem. Gnucash now builds 
 OK but it still failed on startup. Just to make sure I created a setup.exe 
 from the dist script and installed that which failed initially because it 
 could not find the lib_boost_date.dll, these were in the lib directory but 
 when I moved them to the bin directory Gnucash found the files and failed 
 the same as from the build directory.
 
 Just to make sure it was not my XP build VM, I used the setup.exe on another 
 XP VM and when I had moved the boost dll files, it started up just fine.
 
 Comparing the two, the one that worked had Time Zone 'GMT London' with DST 
 ticked and the one that fails has 'GMT Monrovia/Reykjavik', swapping between 
 the two allows it to run or fail.
 
 
 Darn. I knew about putting the libs in the wrong place but forgot to commit 
 the fix. Done now.
 
 Ah, Liberia and Iceland are places that have the good sense not to use 
 daylight time so the registry entry has 0 values for the transition times, 
 and I’m not handling that correctly on Win32. Should be a straightforward fix.


Robert,

I just tested today’s nightly build in XP with the TZ set for 
Monrovia/Reykjavic and it started up without errors.

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-27 Thread Robert Fewell
John,

I have given it a try and it partially fixes the problem. Gnucash now
builds OK but it still failed on startup. Just to make sure I created a
setup.exe from the dist script and installed that which failed initially
because it could not find the lib_boost_date.dll, these were in the lib
directory but when I moved them to the bin directory Gnucash found the
files and failed the same as from the build directory.

Just to make sure it was not my XP build VM, I used the setup.exe on
another XP VM and when I had moved the boost dll files, it started up just
fine.

Comparing the two, the one that worked had Time Zone 'GMT London' with DST
ticked and the one that fails has 'GMT Monrovia/Reykjavik', swapping
between the two allows it to run or fail.


Regards,
Robert

On 25 July 2015 at 19:25, John Ralls jra...@ceridwen.us wrote:


  On Jul 25, 2015, at 7:19 AM, John Ralls jra...@ceridwen.us wrote:
 
 
  On Jul 25, 2015, at 2:55 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
  John,
 
  Still no luck with your revised patch. There is no codecvt header file
 but I did find one in bits/codecvt.h, tried adding that instead but still
 failed, looked in that file and seemed to imply it should not be used
 directly and maybe locale is the way to go.
  Tried that and get the following error...
 
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp: In member
 function 'void TimeZoneProvider::load_windows_default_tz
  ()':
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:5: error:
 'wstring_convert' is not a member of 'std'
  std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t
 conversion;
  ^
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:26: error:
 'codecvt_utf8_utf16' is not a member of 'std'
  std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t
 conversion;
   ^
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error:
 expected primary-expression before 'char16_t'
  std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t
 conversion;
   ^
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error:
 expected ';' before 'char16_t'
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:242:21: error:
 'conversion' was not declared in this scope
  auto std_name = conversion.to_bytes(tzi.StandardName);
  ^
  At global scope:
  cc1plus.exe: error: unrecognized command line option
 -Wno-deprecated-register [-Werror]
  cc1plus.exe: all warnings being treated as errors
 
  Attached are the changes I am currently using.
 
  Robert,
 
  I found that out too as soon as I got back and tested it yesterday
 afternoon. Boost::locale provides a similar service so I switched to that.
 There were a couple of other holes in my implementation, which I think I’ve
 resolved but ran out of time yesterday to test them. I expect I’ll have a
 fix pushed this afternoon.

 Robert,

 I just pushed a couple of commits which fix the timezone exception problem
 on my XP VM. Please test it and let me know if it works for you.

 Regards,
 John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-27 Thread John Ralls

 On Jul 27, 2015, at 10:21 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 I have given it a try and it partially fixes the problem. Gnucash now builds 
 OK but it still failed on startup. Just to make sure I created a setup.exe 
 from the dist script and installed that which failed initially because it 
 could not find the lib_boost_date.dll, these were in the lib directory but 
 when I moved them to the bin directory Gnucash found the files and failed the 
 same as from the build directory.
 
 Just to make sure it was not my XP build VM, I used the setup.exe on another 
 XP VM and when I had moved the boost dll files, it started up just fine.
 
 Comparing the two, the one that worked had Time Zone 'GMT London' with DST 
 ticked and the one that fails has 'GMT Monrovia/Reykjavik', swapping between 
 the two allows it to run or fail.
 

Darn. I knew about putting the libs in the wrong place but forgot to commit the 
fix. Done now.

Ah, Liberia and Iceland are places that have the good sense not to use daylight 
time so the registry entry has 0 values for the transition times, and I’m not 
handling that correctly on Win32. Should be a straightforward fix.

Regards,
John Ralls
 
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-25 Thread John Ralls

 On Jul 25, 2015, at 2:55 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 Still no luck with your revised patch. There is no codecvt header file but I 
 did find one in bits/codecvt.h, tried adding that instead but still failed, 
 looked in that file and seemed to imply it should not be used directly and 
 maybe locale is the way to go.
 Tried that and get the following error...
 
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp: In member function 
 'void TimeZoneProvider::load_windows_default_tz
 ()':
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:5: error: 
 'wstring_convert' is not a member of 'std'
  std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t 
 conversion;
  ^
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:26: error: 
 'codecvt_utf8_utf16' is not a member of 'std'
  std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t 
 conversion;
   ^
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error: expected 
 primary-expression before 'char16_t'
  std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t 
 conversion;
   ^
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error: expected 
 ';' before 'char16_t'
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:242:21: error: 
 'conversion' was not declared in this scope
  auto std_name = conversion.to_bytes(tzi.StandardName);
  ^
 At global scope:
 cc1plus.exe: error: unrecognized command line option 
 -Wno-deprecated-register [-Werror]
 cc1plus.exe: all warnings being treated as errors
 
 Attached are the changes I am currently using.

Robert,

I found that out too as soon as I got back and tested it yesterday afternoon. 
Boost::locale provides a similar service so I switched to that. There were a 
couple of other holes in my implementation, which I think I’ve resolved but ran 
out of time yesterday to test them. I expect I’ll have a fix pushed this 
afternoon.

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-25 Thread John Ralls

 On Jul 25, 2015, at 7:19 AM, John Ralls jra...@ceridwen.us wrote:
 
 
 On Jul 25, 2015, at 2:55 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 Still no luck with your revised patch. There is no codecvt header file but I 
 did find one in bits/codecvt.h, tried adding that instead but still failed, 
 looked in that file and seemed to imply it should not be used directly and 
 maybe locale is the way to go.
 Tried that and get the following error...
 
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp: In member function 
 'void TimeZoneProvider::load_windows_default_tz
 ()':
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:5: error: 
 'wstring_convert' is not a member of 'std'
 std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t 
 conversion;
 ^
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:26: error: 
 'codecvt_utf8_utf16' is not a member of 'std'
 std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t 
 conversion;
  ^
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error: expected 
 primary-expression before 'char16_t'
 std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t 
 conversion;
  ^
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error: expected 
 ';' before 'char16_t'
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:242:21: error: 
 'conversion' was not declared in this scope
 auto std_name = conversion.to_bytes(tzi.StandardName);
 ^
 At global scope:
 cc1plus.exe: error: unrecognized command line option 
 -Wno-deprecated-register [-Werror]
 cc1plus.exe: all warnings being treated as errors
 
 Attached are the changes I am currently using.
 
 Robert,
 
 I found that out too as soon as I got back and tested it yesterday afternoon. 
 Boost::locale provides a similar service so I switched to that. There were a 
 couple of other holes in my implementation, which I think I’ve resolved but 
 ran out of time yesterday to test them. I expect I’ll have a fix pushed this 
 afternoon.

Robert,

I just pushed a couple of commits which fix the timezone exception problem on 
my XP VM. Please test it and let me know if it works for you.

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-25 Thread Robert Fewell
John,

Still no luck with your revised patch. There is no codecvt header file but
I did find one in bits/codecvt.h, tried adding that instead but still
failed, looked in that file and seemed to imply it should not be used
directly and maybe locale is the way to go.
Tried that and get the following error...

c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp: In member function
'void TimeZoneProvider::load_windows_default_tz
()':
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:5: error:
'wstring_convert' is not a member of 'std'
 std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t
conversion;
 ^
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:26: error:
'codecvt_utf8_utf16' is not a member of 'std'
 std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t
conversion;
  ^
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error:
expected primary-expression before 'char16_t'
 std::wstring_convertstd::codecvt_utf8_utf16char16_t,char16_t
conversion;
  ^
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:241:50: error:
expected ';' before 'char16_t'
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:242:21: error:
'conversion' was not declared in this scope
 auto std_name = conversion.to_bytes(tzi.StandardName);
 ^
At global scope:
cc1plus.exe: error: unrecognized command line option
-Wno-deprecated-register [-Werror]
cc1plus.exe: all warnings being treated as errors

Attached are the changes I am currently using.

Regards,

 Robert


On 24 July 2015 at 18:13, John Ralls jra...@ceridwen.us wrote:


  On Jul 24, 2015, at 6:09 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
  John,
 
  Still trying to compile with your patch with the following changes for
 load_windows_default_tz...
 
  void
  TimeZoneProvider::load_windows_default_tz()
  {
  TIME_ZONE_INFORMATION tzi {};
  if (GetTimeZoneInformation (tzi) == TIME_ZONE_ID_INVALID)
  throw std::invalid_argument (No default time zone.);
  RegTZI regtzi { tzi.Bias, tzi.StandardBias, tzi.DaylightBias,
 tzi.StandardDate, tzi.DaylightDate };
 
  time_zone_names names (tzi.StandardName, tzi.StandardName,
 tzi.DaylightName, tzi.DaylightName);
 
  zone_vector.push_back(std::make_pair(0, zone_from_regtzi(regtzi,
 names)));
  }
 
  and I also added this to hpp file line 63...
 
  void load_windows_default_tz(void);
 
  but am getting this error...
 
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp: In member function
 'void TimeZoneProvider::load_windows_default_tz
  ()':
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:237:98: error: no
 matching function for call to 'boost::date_time::
  time_zone_names_basechar::time_zone_names_base(WCHAR [32], WCHAR [32],
 WCHAR [32], WCHAR [32])'
   time_zone_names names (tzi.StandardName, tzi.StandardName,
 tzi.DaylightName, tzi.DaylightName);
 

^
  c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:237:98: note:
 candidates are:
  In file included from
 c:/gcdev/boost/include/boost/date_time/local_time/custom_time_zone.hpp:12:0,
   from
 c:/gcdev/boost/include/boost/date_time/local_time/local_time_types.hpp:18,
   from
 c:/gcdev/boost/include/boost/date_time/local_time/local_time.hpp:13,
   from
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.hpp:34,
   from
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:23:
  c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:59:5: note:
 boost::date_time::time_zone_names_baseCharT::ti
  me_zone_names_base(const string_type, const string_type, const
 string_type, const string_type) [with CharT = char; b
  oost::date_time::time_zone_names_baseCharT::string_type =
 std::basic_stringchar]
   time_zone_names_base(const string_type std_zone_name_str,
   ^
  c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:59:5: note:
  no known conversion for argument 1 from 'WCHAR
  [32] {aka wchar_t [32]}' to 'const string_type {aka const
 std::basic_stringchar}'
  c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:53:5: note:
 boost::date_time::time_zone_names_baseCharT::ti
  me_zone_names_base() [with CharT = char]
   time_zone_names_base() :
   ^
  c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:53:5: note:
  candidate expects 0 arguments, 4 provided
  c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:
 boost::date_time::time_zone_names_basechar::tim
  e_zone_names_base(const boost::date_time::time_zone_names_basechar)
 class time_zone_names_base
  ^
  c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:
  candidate expects 1 argument, 4 provided
  c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:
 boost::date_time::time_zone_names_basechar::tim
  

Re: Windows Build failure

2015-07-24 Thread Robert Fewell
John,

Still trying to compile with your patch with the following changes for
load_windows_default_tz...

void
TimeZoneProvider::load_windows_default_tz()
{
TIME_ZONE_INFORMATION tzi {};
if (GetTimeZoneInformation (tzi) == TIME_ZONE_ID_INVALID)
throw std::invalid_argument (No default time zone.);
RegTZI regtzi { tzi.Bias, tzi.StandardBias, tzi.DaylightBias,
tzi.StandardDate, tzi.DaylightDate };

time_zone_names names (tzi.StandardName, tzi.StandardName,
tzi.DaylightName, tzi.DaylightName);

zone_vector.push_back(std::make_pair(0, zone_from_regtzi(regtzi,
names)));
}

and I also added this to hpp file line 63...

void load_windows_default_tz(void);

but am getting this error...

c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp: In member function
'void TimeZoneProvider::load_windows_default_tz
()':
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:237:98: error: no
matching function for call to 'boost::date_time::
time_zone_names_basechar::time_zone_names_base(WCHAR [32], WCHAR [32],
WCHAR [32], WCHAR [32])'
 time_zone_names names (tzi.StandardName, tzi.StandardName,
tzi.DaylightName, tzi.DaylightName);

 ^
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:237:98: note:
candidates are:
In file included from
c:/gcdev/boost/include/boost/date_time/local_time/custom_time_zone.hpp:12:0,
 from
c:/gcdev/boost/include/boost/date_time/local_time/local_time_types.hpp:18,
 from
c:/gcdev/boost/include/boost/date_time/local_time/local_time.hpp:13,
 from
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.hpp:34,
 from
c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:23:
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:59:5: note:
boost::date_time::time_zone_names_baseCharT::ti
me_zone_names_base(const string_type, const string_type, const
string_type, const string_type) [with CharT = char; b
oost::date_time::time_zone_names_baseCharT::string_type =
std::basic_stringchar]
 time_zone_names_base(const string_type std_zone_name_str,
 ^
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:59:5: note:   no
known conversion for argument 1 from 'WCHAR
[32] {aka wchar_t [32]}' to 'const string_type {aka const
std::basic_stringchar}'
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:53:5: note:
boost::date_time::time_zone_names_baseCharT::ti
me_zone_names_base() [with CharT = char]
 time_zone_names_base() :
 ^
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:53:5: note:
candidate expects 0 arguments, 4 provided
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:
boost::date_time::time_zone_names_basechar::tim
e_zone_names_base(const boost::date_time::time_zone_names_basechar)
   class time_zone_names_base
^
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:
candidate expects 1 argument, 4 provided
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:
boost::date_time::time_zone_names_basechar::tim
e_zone_names_base(boost::date_time::time_zone_names_basechar)
c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:
candidate expects 1 argument, 4 provided
At global scope:
cc1plus.exe: error: unrecognized command line option
-Wno-deprecated-register [-Werror]
cc1plus.exe: all warnings being treated as errors

Will ponder further but you may beat me to an answer.

Regards,

   Robert

On 24 July 2015 at 01:37, John Ralls jra...@ceridwen.us wrote:


  On Jul 21, 2015, at 9:18 AM, John Ralls jra...@ceridwen.us wrote:
 
 
  On Jul 21, 2015, at 3:28 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
  John,
 
  I have found a better windows version of gdb and have set the break
 point and catch point as requested. Now running gnucash from gdb the
 exception stems from getting time zone information from
 gnc-timezone.cpp:240 as can be seen in attached image.
 
  Still trying to understand the c++ format but I think the registry keys
 are different in Windows XP to that of later versions as my XP does not
 have 'TimeZoneKeyName' used in windows_default_tzname.
 
 
  Robert,
 
  Hmm, the C version of that code in GLib and GC 2.4 doesn’t have a
 problem on XP, so I must have screwed something up when I ported it; it
 might just be throwing that exception, which is a bad idea since it can’t
 be caught in the way I’m using it. Since I can’t test on Windows until the
 weekend, if I can manage a patch before then I’ll send it to you to test.
 
  If you’re completely new to C++, Lipmann’s C++ Primer Plus is widely
 recommended.

 Robert,

 Here’s a first try at a patch. I can’t even test compile it until I get
 back tomorrow afternoon, but you can have a go at it and maybe fix any
 obvious typos.

 Regards,
 John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org

Re: Windows Build failure

2015-07-24 Thread John Ralls

 On Jul 24, 2015, at 6:09 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 Still trying to compile with your patch with the following changes for 
 load_windows_default_tz...
 
 void
 TimeZoneProvider::load_windows_default_tz()
 {
 TIME_ZONE_INFORMATION tzi {};
 if (GetTimeZoneInformation (tzi) == TIME_ZONE_ID_INVALID)
 throw std::invalid_argument (No default time zone.);
 RegTZI regtzi { tzi.Bias, tzi.StandardBias, tzi.DaylightBias, 
 tzi.StandardDate, tzi.DaylightDate };
 
 time_zone_names names (tzi.StandardName, tzi.StandardName, 
 tzi.DaylightName, tzi.DaylightName);
 
 zone_vector.push_back(std::make_pair(0, zone_from_regtzi(regtzi, names)));
 }
 
 and I also added this to hpp file line 63...
 
 void load_windows_default_tz(void);
 
 but am getting this error...
 
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp: In member function 
 'void TimeZoneProvider::load_windows_default_tz
 ()':
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:237:98: error: no 
 matching function for call to 'boost::date_time::
 time_zone_names_basechar::time_zone_names_base(WCHAR [32], WCHAR [32], 
 WCHAR [32], WCHAR [32])'
  time_zone_names names (tzi.StandardName, tzi.StandardName, 
 tzi.DaylightName, tzi.DaylightName);
   
   ^
 c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:237:98: note: candidates 
 are:
 In file included from 
 c:/gcdev/boost/include/boost/date_time/local_time/custom_time_zone.hpp:12:0,
  from 
 c:/gcdev/boost/include/boost/date_time/local_time/local_time_types.hpp:18,
  from 
 c:/gcdev/boost/include/boost/date_time/local_time/local_time.hpp:13,
  from c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.hpp:34,
  from c:/gcdev/gnucash.git/src/libqof/qof/gnc-timezone.cpp:23:
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:59:5: note: 
 boost::date_time::time_zone_names_baseCharT::ti
 me_zone_names_base(const string_type, const string_type, const 
 string_type, const string_type) [with CharT = char; b
 oost::date_time::time_zone_names_baseCharT::string_type = 
 std::basic_stringchar]
  time_zone_names_base(const string_type std_zone_name_str,
  ^
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:59:5: note:   no 
 known conversion for argument 1 from 'WCHAR
 [32] {aka wchar_t [32]}' to 'const string_type {aka const 
 std::basic_stringchar}'
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:53:5: note: 
 boost::date_time::time_zone_names_baseCharT::ti
 me_zone_names_base() [with CharT = char]
  time_zone_names_base() :
  ^
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:53:5: note:   
 candidate expects 0 arguments, 4 provided
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note: 
 boost::date_time::time_zone_names_basechar::tim
 e_zone_names_base(const boost::date_time::time_zone_names_basechar)
class time_zone_names_base
 ^
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:   
 candidate expects 1 argument, 4 provided
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note: 
 boost::date_time::time_zone_names_basechar::tim
 e_zone_names_base(boost::date_time::time_zone_names_basechar)
 c:/gcdev/boost/include/boost/date_time/time_zone_names.hpp:49:9: note:   
 candidate expects 1 argument, 4 provided
 At global scope:
 cc1plus.exe: error: unrecognized command line option 
 -Wno-deprecated-register [-Werror]
 cc1plus.exe: all warnings being treated as errors
 
 Will ponder further but you may beat me to an answer.
 

Robert,

Ah, right, tzi.StandardName and tzi.DaylightName are wchar_t[] and boost 
doesn’t know what to do with them. This revised patch might work.

Regards,
John Ralls


0001-Windows-Get-default-timezone-if-there-s-no-default-k.patch
Description: Binary data

___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-23 Thread John Ralls

 On Jul 21, 2015, at 9:18 AM, John Ralls jra...@ceridwen.us wrote:
 
 
 On Jul 21, 2015, at 3:28 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 I have found a better windows version of gdb and have set the break point 
 and catch point as requested. Now running gnucash from gdb the exception 
 stems from getting time zone information from gnc-timezone.cpp:240 as can be 
 seen in attached image.
 
 Still trying to understand the c++ format but I think the registry keys are 
 different in Windows XP to that of later versions as my XP does not have 
 'TimeZoneKeyName' used in windows_default_tzname.
 
 
 Robert,
 
 Hmm, the C version of that code in GLib and GC 2.4 doesn’t have a problem on 
 XP, so I must have screwed something up when I ported it; it might just be 
 throwing that exception, which is a bad idea since it can’t be caught in the 
 way I’m using it. Since I can’t test on Windows until the weekend, if I can 
 manage a patch before then I’ll send it to you to test.
 
 If you’re completely new to C++, Lipmann’s C++ Primer Plus is widely 
 recommended.

Robert,

Here’s a first try at a patch. I can’t even test compile it until I get back 
tomorrow afternoon, but you can have a go at it and maybe fix any obvious typos.

Regards,
John Ralls



0001-Windows-Get-default-timezone-if-there-s-no-default-k.patch
Description: Binary data
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-21 Thread John Ralls

 On Jul 21, 2015, at 3:28 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 I have found a better windows version of gdb and have set the break point and 
 catch point as requested. Now running gnucash from gdb the exception stems 
 from getting time zone information from gnc-timezone.cpp:240 as can be seen 
 in attached image.
 
 Still trying to understand the c++ format but I think the registry keys are 
 different in Windows XP to that of later versions as my XP does not have 
 'TimeZoneKeyName' used in windows_default_tzname.
 

Robert,

Hmm, the C version of that code in GLib and GC 2.4 doesn’t have a problem on 
XP, so I must have screwed something up when I ported it; it might just be 
throwing that exception, which is a bad idea since it can’t be caught in the 
way I’m using it. Since I can’t test on Windows until the weekend, if I can 
manage a patch before then I’ll send it to you to test.

If you’re completely new to C++, Lipmann’s C++ Primer Plus is widely 
recommended.

Regards,
John Ralls

___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-20 Thread Robert Fewell
OK, deleted all folders in gcdev apart from the git ones and reran the vb
script and then the install.sh file. This recompiled all dependencies and
also gnucash.

Tried to start it from the gcdev/gnucash/inst/bin/gnucash-launcher.cmd
which failed as boost libraries was not in path.
Added new path entry to cmd file and now it fails with a Runtime Error.

Had a look at the Nightly Builds and the last one that installed and ran
straight off was on 29/04/2015 and about says version 15a0d5d

These have stopped building since the 19/06/2015.

All other later builds install but fail to run as missing
libboost_date_time.dll, thought I could copy the one I had created in
gcdev/boost to the bin folder but that results in the Runtime Error.

Not sure what else I can try.

Regards,

 Bob

On 16 July 2015 at 00:58, John Ralls jra...@ceridwen.us wrote:


  On Jul 15, 2015, at 8:51 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
  I tried to build the windows version on my XP VM but it failed with the
  following error...
  Did a git pull on gnucash-on-windows.git and gnucash.git to get the
 latest
  builds and then ran the install.sh under mingw which updated some parts
 of
  the software as usual but the gnucash sections fails.
 
  Have I failed to upgrade some component part ?
 
  Regards,
 
 Bob
 
 
  make  all-recursive
  make[1]: Entering directory `/c/gcdev/gnucash/build'
  Making all in .
  make[2]: Entering directory `/c/gcdev/gnucash/build'
  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/c/gcdev/gnucash.git
  -I/c/gcdev/regex/include -I/c/gcdev/gnome/include -I/c/gcdev
  /guile/include -I/c/gcdev/libdbi/include -I/c/gcdev/gwenhywfar/include
  -I/c/gcdev/hh/include -mms-bitfields -Ic:/gcdev/l
  ibsoup/include/libsoup-2.4 -Ic:/gcdev/gnome/include/libxml2
  -Ic:/gcdev/gnome/include/glib-2.0 -Ic:/gcdev/gnome/lib/glib-
  2.0/include   -D_WIN32  -pthread -Ic:/gcdev/guile/include
  -I/c/gcdev/readline/include -I/c/gcdev/regex/include   -g  -st
  d=gnu99 -mms-bitfields -g  -MT gnc_guile-guile.o -MD -MP -MF
  .deps/gnc_guile-guile.Tpo -c -o gnc_guile-guile.o `test -f
  'util/guile.c' || echo '/c/gcdev/gnucash.git/'`util/guile.c
  In file included from c:\gcdev\mingw\include\unistd.h:95:0,
  from c:/gcdev/guile/include/libguile/stime.h:27,
  from c:/gcdev/guile/include/libguile.h:91,
  from c:/gcdev/gnucash.git/util/guile.c:32:
  c:\gcdev\mingw\include\parts\time.h:65:8: error: redefinition of 'struct
  timespec'
  struct timespec
 ^
  In file included from c:/gcdev/guile/include/libguile/__scm.h:52:0,
  from c:/gcdev/guile/include/libguile.h:30,
  from c:/gcdev/gnucash.git/util/guile.c:32:
  c:/gcdev/guile/include/libguile/scmconfig.h:114:16: note: originally
  defined here
  typedef struct timespec scm_t_timespec;

 That’s from a Makefile that needs to be rebuilt. Delete the build
 directory and start from scratch.

 Regards,
 John Ralls



___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-20 Thread John Ralls

 On Jul 20, 2015, at 4:05 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 OK, deleted all folders in gcdev apart from the git ones and reran the vb 
 script and then the install.sh file. This recompiled all dependencies and 
 also gnucash.
 
 Tried to start it from the gcdev/gnucash/inst/bin/gnucash-launcher.cmd which 
 failed as boost libraries was not in path.
 Added new path entry to cmd file and now it fails with a Runtime Error.
 
 Had a look at the Nightly Builds and the last one that installed and ran 
 straight off was on 29/04/2015 and about says version 15a0d5d
 
 These have stopped building since the 19/06/2015.
 
 All other later builds install but fail to run as missing 
 libboost_date_time.dll, thought I could copy the one I had created in 
 gcdev/boost to the bin folder but that results in the Runtime Error.
 
 Not sure what else I can try.

Robert,

I did a build by hand last week after cleaning the build dir, which is what 
stopped the last automatic build. There hasn’t been a commit to master since to 
trigger a new automatic build.

I’m heading out of town for the week, so I won’t be able to look at the Windows 
runtime until the weekend. 

Since there were completed builds in May and June I guess you mean that none of 
the bundles actually runs because libboost_date_time.dll isn’t in the bundle. I 
guess that’s not surprising except that I thought I’d set up the build of boost 
so that date_time would be header-only. That part should be easy to fix.

What’s the runtime error?

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-20 Thread Robert Fewell
John,


All the builds in May and June will install and if you start one it stops
saying it can not find libboost_date_time.dll. If I copy that dll from the
gcdev/boost/lib to the gnucash/bin directory you get the Runtime Error
straight away as attached.

Robert

On 20 July 2015 at 15:22, John Ralls jra...@ceridwen.us wrote:


  On Jul 20, 2015, at 4:05 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
  OK, deleted all folders in gcdev apart from the git ones and reran the
 vb script and then the install.sh file. This recompiled all dependencies
 and also gnucash.
 
  Tried to start it from the gcdev/gnucash/inst/bin/gnucash-launcher.cmd
 which failed as boost libraries was not in path.
  Added new path entry to cmd file and now it fails with a Runtime Error.
 
  Had a look at the Nightly Builds and the last one that installed and ran
 straight off was on 29/04/2015 and about says version 15a0d5d
 
  These have stopped building since the 19/06/2015.
 
  All other later builds install but fail to run as missing
 libboost_date_time.dll, thought I could copy the one I had created in
 gcdev/boost to the bin folder but that results in the Runtime Error.
 
  Not sure what else I can try.

 Robert,

 I did a build by hand last week after cleaning the build dir, which is
 what stopped the last automatic build. There hasn’t been a commit to master
 since to trigger a new automatic build.

 I’m heading out of town for the week, so I won’t be able to look at the
 Windows runtime until the weekend.

 Since there were completed builds in May and June I guess you mean that
 none of the bundles actually runs because libboost_date_time.dll isn’t in
 the bundle. I guess that’s not surprising except that I thought I’d set up
 the build of boost so that date_time would be header-only. That part should
 be easy to fix.

 What’s the runtime error?

 Regards,
 John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-20 Thread John Ralls

 On Jul 20, 2015, at 9:57 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 I had but I do not think I was doing it correctly, see attached, once I click 
 on OK I get the program exited with code 03.
 

Robert,

OK, that means it’s terminating either from an unhandled exception or an 
assert. Set a breakpoint on exit() with “b exit and a catchpoint with “catch 
exception unhandled”. See 
https://sourceware.org/gdb/onlinedocs/gdb/Breakpoints.html#Breakpoints for 
details.

Regards,
John Ralls
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-20 Thread John Ralls

 On Jul 20, 2015, at 7:41 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 John,
 
 
 All the builds in May and June will install and if you start one it stops 
 saying it can not find libboost_date_time.dll. If I copy that dll from the 
 gcdev/boost/lib to the gnucash/bin directory you get the Runtime Error 
 straight away as attached.

Robert,

Ah. Have you tried it in gdb?

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-20 Thread John Ralls

 On Jul 20, 2015, at 10:59 AM, John Ralls jra...@ceridwen.us wrote:
 
 
 On Jul 20, 2015, at 9:57 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 I had but I do not think I was doing it correctly, see attached, once I 
 click on OK I get the program exited with code 03.
 
 
 Robert,
 
 OK, that means it’s terminating either from an unhandled exception or an 
 assert. Set a breakpoint on exit() with “b exit and a catchpoint with “catch 
 exception unhandled”. See 
 https://sourceware.org/gdb/onlinedocs/gdb/Breakpoints.html#Breakpoints for 
 details.

Robert,

BTW, I had some extra time this morning before leaving and did a build and dist 
on Win7. Works fine. That might be because I don’t have a “pure” system, but I 
fixed up the boost stuff in install and dist in gnucash-on-windows and pushed 
it.

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Windows Build failure

2015-07-15 Thread John Ralls

 On Jul 15, 2015, at 8:51 AM, Robert Fewell 14ubo...@gmail.com wrote:
 
 I tried to build the windows version on my XP VM but it failed with the
 following error...
 Did a git pull on gnucash-on-windows.git and gnucash.git to get the latest
 builds and then ran the install.sh under mingw which updated some parts of
 the software as usual but the gnucash sections fails.
 
 Have I failed to upgrade some component part ?
 
 Regards,
 
Bob
 
 
 make  all-recursive
 make[1]: Entering directory `/c/gcdev/gnucash/build'
 Making all in .
 make[2]: Entering directory `/c/gcdev/gnucash/build'
 gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/c/gcdev/gnucash.git
 -I/c/gcdev/regex/include -I/c/gcdev/gnome/include -I/c/gcdev
 /guile/include -I/c/gcdev/libdbi/include -I/c/gcdev/gwenhywfar/include
 -I/c/gcdev/hh/include -mms-bitfields -Ic:/gcdev/l
 ibsoup/include/libsoup-2.4 -Ic:/gcdev/gnome/include/libxml2
 -Ic:/gcdev/gnome/include/glib-2.0 -Ic:/gcdev/gnome/lib/glib-
 2.0/include   -D_WIN32  -pthread -Ic:/gcdev/guile/include
 -I/c/gcdev/readline/include -I/c/gcdev/regex/include   -g  -st
 d=gnu99 -mms-bitfields -g  -MT gnc_guile-guile.o -MD -MP -MF
 .deps/gnc_guile-guile.Tpo -c -o gnc_guile-guile.o `test -f
 'util/guile.c' || echo '/c/gcdev/gnucash.git/'`util/guile.c
 In file included from c:\gcdev\mingw\include\unistd.h:95:0,
 from c:/gcdev/guile/include/libguile/stime.h:27,
 from c:/gcdev/guile/include/libguile.h:91,
 from c:/gcdev/gnucash.git/util/guile.c:32:
 c:\gcdev\mingw\include\parts\time.h:65:8: error: redefinition of 'struct
 timespec'
 struct timespec
^
 In file included from c:/gcdev/guile/include/libguile/__scm.h:52:0,
 from c:/gcdev/guile/include/libguile.h:30,
 from c:/gcdev/gnucash.git/util/guile.c:32:
 c:/gcdev/guile/include/libguile/scmconfig.h:114:16: note: originally
 defined here
 typedef struct timespec scm_t_timespec;

That’s from a Makefile that needs to be rebuilt. Delete the build directory and 
start from scratch.

Regards,
John Ralls



___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel