Re: Building on Windows from scratch - guile problem SOLVED

2014-01-28 Thread Geert Janssens
On Thursday 16 January 2014 14:26:41 Geert Janssens wrote:
 Gary,
 
 While looking at your changes I noticed you changed two lines in
 the vbs script.
 
 One is that you added my repository/branch in a comment.
 That's ok and makes it easier for others to start.
 
 The second is to install msys-patch. Is there a reason you do this
 in the vbs script and not in install-impl.sh ?
 
 Geert
 ___
 gnucash-devel mailing list
 gnucash-devel@gnucash.org
 https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Gary,

A late update on this.

I have tried to apply your patches to my branch. The first two were already 
integrated. Of the 
other 5 only two could be applied cleanly. I have added one more manually, but 
two are 
currently not applied.

I have just rebased my branch from the most recent trunk. Can you pull my 
branch (with git pull 
--rebase) and check which parts are missing and recreate patches for these 
items ?

Thanks,

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-18 Thread Geert Janssens
On Friday 17 January 2014 07:30:00 John Ralls wrote:
  
  OK Geert,
  I think I have what you want at
  http://www.greenwheel.com/publicFiles/rebase-patches.zip Let me
  know if this works for you.
  Not being a git expert, it's possible I've not quite done the right
  thing, but I think this should be OK.
 As another option, perhaps the most git-ish (sorry) of all, would be
 for Gary to get a (free) Github account, fork Geert's repo, make his
 branch, push that back to *his* repo, and then from Github send Geert
 a pull request.
 
 I know I've argued against allowing this in the past, but I'm coming
 around to the idea that we need to make it easier for folks to offer
 patches.
 

Heh, I didn't want to propose this exactly because of your opposition in the 
past. But I have 
been thinking of leveraging github's pull requests as well.

I see for example that swig is using this approach rather succesfully. I can 
imagine that a 
project the size of a linux kernel needs some stricter rules to keep organized. 
But GnuCash is 
pretty small in comparison. Reminds me we still have to discuss our future 
branching strategy, 
but that's for another thread.

Back to the patches at hand:
Gary, I tried to download the zip file you made available, but I get a 
permission error on that 
website. Can you check that ?

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-18 Thread Gary Bilkus

On 18/01/2014 09:53, Geert Janssens wrote:


On Friday 17 January 2014 07:30:00 John Ralls wrote:

 

  OK Geert,

  I think I have what you want at

  http://www.greenwheel.com/publicFiles/rebase-patches.zip Let me

  know if this works for you.

  Not being a git expert, it's possible I've not quite done the right

  thing, but I think this should be OK.

 As another option, perhaps the most git-ish (sorry) of all, would be

 for Gary to get a (free) Github account, fork Geert's repo, make his

 branch, push that back to *his* repo, and then from Github send Geert

 a pull request.



 I know I've argued against allowing this in the past, but I'm coming

 around to the idea that we need to make it easier for folks to offer

 patches.



Heh, I didn't want to propose this exactly because of your opposition 
in the past. But I have been thinking of leveraging github's pull 
requests as well.


I see for example that swig is using this approach rather succesfully. 
I can imagine that a project the size of a linux kernel needs some 
stricter rules to keep organized. But GnuCash is pretty small in 
comparison. Reminds me we still have to discuss our future branching 
strategy, but that's for another thread.


Back to the patches at hand:

Gary, I tried to download the zip file you made available, but I get a 
permission error on that website. Can you check that ?


Geert


Sorry Geert, forgot to add read perms to the file. Should be OK now.
Gary
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-17 Thread Gary Bilkus

On 16/01/2014 15:38, Geert Janssens wrote:


On Thursday 16 January 2014 15:06:55 Gary Bilkus wrote:

 On 16/01/2014 13:26, Geert Janssens wrote:

  Gary,

 

  While looking at your changes I noticed you changed two lines in the

  vbs script.

 

  One is that you added my repository/branch in a comment. That's ok

  and makes it easier for others to start.

 

  The second is to install msys-patch. Is there a reason you do this

  in

  the vbs script and not in install-impl.sh ?

 

  Geert



 Hi Geert.

 The reason I added in msys-patch to my version of your script is so

 that the instructions I posted on the wiki would work, since they

 tell you to run your vbs script and then run patch against the 2.6

 repo with my patchfile, and that doesn't work if you don't yet have

 patch installed.



 Of course, as and when there's a git repo with the patches already

 incorporated, that step is no longer needed and nor is patch. But it

 doesn't do much harm to leave it around, and would make it easier for

 people who have to play catch-up the next time a downstream dependency

 gets broken.

 Gary

Hi Gary,

That makes sense.

The reason I'm very cautious about adding stuff in the bootstrap 
script is that mingw-get is fairly fragile. The bootstrap script 
unconditionally installs the most recent version of the various 
packages, but in the install.sh script we force specific versions. If 
at some point the most recent version is more recent than what we 
explicitly set this will probably cause mingw-get to error out. That 
may or may not be bad but at least pretty confusing to new users.


We may fix this by installing very specific versions in the bootstrap 
script already instead of the latest available. Although that approach 
risks that these versions will at some point get out of sync with the 
versions defined in defaults.sh. But IMO that is less of an issue. If 
this happens the installation script will update the packages to the 
proper versions without errors the first time it runs.


I'll admit this is close to nitpicking. There are bigger issues to 
solve right now, but I mention it because now I noticed it. I will 
probably forget later on.


Geert

I completely understand the thinking. That said, I think patch is 
probably a pretty safe program to just download, given its longevity and 
stability at this point, compared to things like say the c compiler!


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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-17 Thread Gary Bilkus

On 16/01/2014 13:23, Geert Janssens wrote:


On Thursday 16 January 2014 12:14:49 Gary Bilkus wrote:



 So just to make sure I understand exactly what you need.



 1. I should get the gnucash.git repository from

 git://github.com:gjanssens/gnucash.git

 2. I should git branch -t mingw origin/mingw-rebasing and check out

 that branch

 3. I should appy my patches to that branch - ignoring any which are

 already there

 4. I should run git diff to get a series of patches against the branch

 in the repository

 5. I should split the resulting diff into different files relating to

 the different fixes

 6. I should post the result somewhere and tell you where it is



 Gary

Gary,

That's close. But git's workflow is slightly different:

1 and 2 are correct

3. Apply your patches and ignore those that are already there is also 
correct. Then before committing anything it's worth considering which 
changes logically belong together and check these changes in in 
separate commits. 'git add -i' will be tremendously helpful for this 
part (adding changes into the index interactively).


4. Each time you have added a coherent set of changes to the index 
file, you can create a (local) commit using 'git commit'. You may want 
to use clear commit messages in this step as they will eventually end 
up in the master repository. You can look at my commits for examples 
but they're only that not hard rules. I suggest though that you 
explicitly add an author line in your commit message. Since we're 
still linked to the svn repo, git's author information gets lost for 
non-committers when we commit to the master repository. This line is 
in the form:


Author: name email

5. When there are no more changes to commit, you can run 'git 
format-patch' to generate a series of patch files like so:


git format-patch origin/mingw-rebasing

That should generate the patch files in the current working directory.

6. The normal way to make these patches available to me is to create 
an enhancement request in bugzilla and attach the patches there. But 
in this case I'm equally fine if you post them to the list or tell me 
where you stored them on your own server or whatever.


Geert


OK Geert,
I think I have what you want at 
http://www.greenwheel.com/publicFiles/rebase-patches.zip

Let me know if this works for you.
Not being a git expert, it's possible I've not quite done the right 
thing, but I think this should be OK.

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-17 Thread John Ralls

On Jan 17, 2014, at 5:57 AM, Gary Bilkus m...@gary.bilkus.com wrote:

 On 16/01/2014 13:23, Geert Janssens wrote:
 
 On Thursday 16 January 2014 12:14:49 Gary Bilkus wrote:
 
 
 
  So just to make sure I understand exactly what you need.
 
 
 
  1. I should get the gnucash.git repository from
 
  git://github.com:gjanssens/gnucash.git
 
  2. I should git branch -t mingw origin/mingw-rebasing and check out
 
  that branch
 
  3. I should appy my patches to that branch - ignoring any which are
 
  already there
 
  4. I should run git diff to get a series of patches against the branch
 
  in the repository
 
  5. I should split the resulting diff into different files relating to
 
  the different fixes
 
  6. I should post the result somewhere and tell you where it is
 
 
 
  Gary
 
 Gary,
 
 That's close. But git's workflow is slightly different:
 
 1 and 2 are correct
 
 3. Apply your patches and ignore those that are already there is also 
 correct. Then before committing anything it's worth considering which 
 changes logically belong together and check these changes in in separate 
 commits. 'git add -i' will be tremendously helpful for this part (adding 
 changes into the index interactively).
 
 4. Each time you have added a coherent set of changes to the index file, you 
 can create a (local) commit using 'git commit'. You may want to use clear 
 commit messages in this step as they will eventually end up in the master 
 repository. You can look at my commits for examples but they're only that 
 not hard rules. I suggest though that you explicitly add an author line in 
 your commit message. Since we're still linked to the svn repo, git's author 
 information gets lost for non-committers when we commit to the master 
 repository. This line is in the form:
 
 Author: name email
 
 5. When there are no more changes to commit, you can run 'git format-patch' 
 to generate a series of patch files like so:
 
 git format-patch origin/mingw-rebasing
 
 That should generate the patch files in the current working directory.
 
 6. The normal way to make these patches available to me is to create an 
 enhancement request in bugzilla and attach the patches there. But in this 
 case I'm equally fine if you post them to the list or tell me where you 
 stored them on your own server or whatever.
 
 Geert
 
 OK Geert,
 I think I have what you want at 
 http://www.greenwheel.com/publicFiles/rebase-patches.zip
 Let me know if this works for you.
 Not being a git expert, it's possible I've not quite done the right thing, 
 but I think this should be OK.

As another option, perhaps the most git-ish (sorry) of all, would be for Gary 
to get a (free) Github account, fork Geert's repo, make his branch, push that 
back to *his* repo, and then from Github send Geert a pull request.

I know I've argued against allowing this in the past, but I'm coming around to 
the idea that we need to make it easier for folks to offer patches.

Regards,
John Ralls



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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-17 Thread John Ralls

On Jan 17, 2014, at 7:30 AM, John Ralls jra...@ceridwen.us wrote:

 
 On Jan 17, 2014, at 5:57 AM, Gary Bilkus m...@gary.bilkus.com wrote:
 
 On 16/01/2014 13:23, Geert Janssens wrote:
 
 On Thursday 16 January 2014 12:14:49 Gary Bilkus wrote:
 
 
 
 So just to make sure I understand exactly what you need.
 
 
 
 1. I should get the gnucash.git repository from
 
 git://github.com:gjanssens/gnucash.git
 
 2. I should git branch -t mingw origin/mingw-rebasing and check out
 
 that branch
 
 3. I should appy my patches to that branch - ignoring any which are
 
 already there
 
 4. I should run git diff to get a series of patches against the branch
 
 in the repository
 
 5. I should split the resulting diff into different files relating to
 
 the different fixes
 
 6. I should post the result somewhere and tell you where it is
 
 
 
 Gary
 
 Gary,
 
 That's close. But git's workflow is slightly different:
 
 1 and 2 are correct
 
 3. Apply your patches and ignore those that are already there is also 
 correct. Then before committing anything it's worth considering which 
 changes logically belong together and check these changes in in separate 
 commits. 'git add -i' will be tremendously helpful for this part (adding 
 changes into the index interactively).
 
 4. Each time you have added a coherent set of changes to the index file, 
 you can create a (local) commit using 'git commit'. You may want to use 
 clear commit messages in this step as they will eventually end up in the 
 master repository. You can look at my commits for examples but they're only 
 that not hard rules. I suggest though that you explicitly add an author 
 line in your commit message. Since we're still linked to the svn repo, 
 git's author information gets lost for non-committers when we commit to the 
 master repository. This line is in the form:
 
 Author: name email
 
 5. When there are no more changes to commit, you can run 'git format-patch' 
 to generate a series of patch files like so:
 
 git format-patch origin/mingw-rebasing
 
 That should generate the patch files in the current working directory.
 
 6. The normal way to make these patches available to me is to create an 
 enhancement request in bugzilla and attach the patches there. But in this 
 case I'm equally fine if you post them to the list or tell me where you 
 stored them on your own server or whatever.
 
 Geert
 
 OK Geert,
 I think I have what you want at 
 http://www.greenwheel.com/publicFiles/rebase-patches.zip
 Let me know if this works for you.
 Not being a git expert, it's possible I've not quite done the right thing, 
 but I think this should be OK.
 
 As another option, perhaps the most git-ish (sorry) of all, would be for 
 Gary to get a (free) Github account, fork Geert's repo, make his branch, push 
 that back to *his* repo, and then from Github send Geert a pull request.
 
 I know I've argued against allowing this in the past, but I'm coming around 
 to the idea that we need to make it easier for folks to offer patches.

I'll add that this finesses
 The reason I added in msys-patch to my version of your script is so that the 
 instructions I posted on the wiki would work, since they tell you to run your 
 vbs script and then run patch against the 2.6 repo with my patchfile, and 
 that doesn't work if you don't yet have patch installed.
 
 Of course, as and when there's a git repo with the patches already 
 incorporated, that step is no longer needed and nor is patch. But it doesn't 
 do much harm to leave it around, and would make it easier for people who have 
 to play catch-up the next time a downstream dependency gets broken.

because there's instantly a published git repository with the patches 
incorporated!

Regards,
John Ralls


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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-17 Thread John Ralls

On Jan 16, 2014, at 7:53 AM, Geert Janssens janssens-ge...@telenet.be wrote:

 On Thursday 16 January 2014 07:49:53 John Ralls wrote:
  On Jan 16, 2014, at 5:23 AM, Geert Janssens janssens-ge...@telenet.be 
  wrote:
   3. Apply your patches and ignore those that are already there is
   also correct. Then before committing anything it's worth
   considering which changes logically belong together and check these
   changes in in separate commits. 'git add -i' will be tremendously
   helpful for this part (adding changes into the index
   interactively).
  
  Pardon me for barging in. I just want to add that a git GUI makes it
  much less painful to pull diffs apart into commits compared to `git
  add -i`. TortoiseGit (http://code.google.com/p/tortoisegit/) works
  well on M$Windows.
  
  Regards,
  John Ralls
  
 Interesting. I never used a gui for this yet. Which one do you use on your 
 mac ?

I'd been using GitX [1], but it's pretty buggy and crash-prone, so I've lately 
switched to Atlassian Stash [2], which is free as in beer instead Free, but it 
hasn't yet crashed on me.
On Linux I use gitx and giggle, both of which are in all of the package 
managers.

Regards,
John Ralls


[1] http://gitx.org/
[2] https://www.atlassian.com/software/stash/overview

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-17 Thread John Ralls

On Jan 17, 2014, at 7:39 AM, John Ralls jra...@ceridwen.us wrote:

 
 On Jan 16, 2014, at 7:53 AM, Geert Janssens janssens-ge...@telenet.be wrote:
 
 On Thursday 16 January 2014 07:49:53 John Ralls wrote:
 On Jan 16, 2014, at 5:23 AM, Geert Janssens janssens-ge...@telenet.be 
 wrote:
 3. Apply your patches and ignore those that are already there is
 also correct. Then before committing anything it's worth
 considering which changes logically belong together and check these
 changes in in separate commits. 'git add -i' will be tremendously
 helpful for this part (adding changes into the index
 interactively).
 
 Pardon me for barging in. I just want to add that a git GUI makes it
 much less painful to pull diffs apart into commits compared to `git
 add -i`. TortoiseGit (http://code.google.com/p/tortoisegit/) works
 well on M$Windows.
 
 Regards,
 John Ralls
 
 Interesting. I never used a gui for this yet. Which one do you use on your 
 mac ?
 
 I'd been using GitX [1], but it's pretty buggy and crash-prone, so I've 
 lately switched to Atlassian Stash [2], which is free as in beer instead 
 Free, but it hasn't yet crashed on me.

Oops, that’s wrong. It’s Atlassian SourceTree: http://www.sourcetreeapp.com/

Regards,
John Ralls


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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Geert Janssens
On Friday 10 January 2014 17:41:15 Gary Bilkus wrote:
 On 10/01/2014 15:03, John Ralls wrote:
  On Jan 9, 2014, at 11:13 PM, Gary Bilkus m...@gary.bilkus.com wrote:
  Well, interestingly enough, the problem is not directly with the
  compiler optimizer. It's with the configure test for strncasecmp.
  This test fails on mingw in its current incarnation because guile
  uses a standard test for the function, but on mingw strncasecmp is
  actually a cpp definition. As a result, guile is compiled with
  #HAVE_STRNCASECMP unset, and so guile tries to create its own
  version in read.c Now if you compile with no optimization, the
  compiler notices that read.c is attempting to create this with a
  different signature and bombs out. However, with optimisation on,
  the code compiles for some reason, and then fails to run properly.
  
  So there seem to be two problems: one in configure for guile and/or
  the standard configure macros on mingw, the other in the compiler.
  Fortunately, there's a very easy although ugly workaround, which
  is to add an echo #define HAVE_STRNCASECMP config.h
  
  Would adding -DHAVE_STRNCASECMP to $CFLAGS work? It's a bit cleaner
  than echoing a #define into the config header. Better yet,
  sometimes there's a variable that can be defined on the configure
  command line -- perhaps $ac_have_strncasecmp -- to force configure
  to do the right thing. 
  in install-impl.sh
  just after the guile configure and before the make
  
  I've incorporated this fix into my downloadable file of fixes as
  referred to on the wiki page I updated. More as and when I find
  any further issues. As always, feedback or other experiences
  welcome. 
  Regards,
  John Ralls
 
 I agree that the configure commandline change would be cleaner, and if
 I can find out what to do I'll change my fix.
 
 I disagree that a CFLAGS define is cleaner. With my solution the
 define is in the right file, even if it gets there for the wrong
 reason. That way, it guarantees not to affect any compilation which
 doesn't involve including config.h, which saves having to check for
 any unexpected consequenses elsewhere.
 Gary
 ___
 gnucash-devel mailing list
 gnucash-devel@gnucash.org
 https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Gary,

Thanks for all your updates. Today I found some time to check which of your 
fixes I should still 
add to my windows branch, but got lost in your patch. It looks like you are 
generating a patch 
to be applied to the current trunk branch, including all the separate commits 
from my branch. 
Unfortunately that makes it hard if not impossible to see only the changes 
needed on my 
branch.

It's not the intention to apply such a large patch one day to current trunk. 
Instead my branch 
will be merged in eventually (likely after the 2.6 branch is generated and 
certainly not before 
the dist part and build server scripts are also fixed).

So can you extract only the changes that still need to be applied to my branch 
please ? Ideally 
split up in small patches per topic (fix -no-undefined, fix guile's 
str_ncase_comp, ...). That way 
we generate clean and readable history in the repository.
You may want to set up your own clone of the git repository [1] as git can be 
very helpful in 
generating such patches.

Thanks,

Geert

[1] http://wiki.gnucash.org/wiki/Git#Non-Committers
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Geert Janssens
On Thursday 16 January 2014 11:10:30 Geert Janssens wrote:
 
 Gary,
 
 Thanks for all your updates. Today I found some time to check which of
 your fixes I should still add to my windows branch, but got lost in
 your patch. It looks like you are generating a patch to be applied to
 the current trunk branch, including all the separate commits from my
 branch. Unfortunately that makes it hard if not impossible to see
 only the changes needed on my branch.
 
 It's not the intention to apply such a large patch one day to current
 trunk. Instead my branch will be merged in eventually (likely after
 the 2.6 branch is generated and certainly not before the dist part
 and build server scripts are also fixed).
 
 So can you extract only the changes that still need to be applied to
 my branch please ? Ideally split up in small patches per topic (fix
 -no-undefined, fix guile's str_ncase_comp, ...). That way we generate
 clean and readable history in the repository.
 You may want to set up your own clone of the git repository [1] as git
 can be very helpful in generating such patches.
 
 Thanks,
 
 Geert
 
 [1] http://wiki.gnucash.org/wiki/Git#Non-Committers

Also note that I have rebased the mingw-rebasing branch again in my repository 
to pick up 
the most recent version of aqbanking and gwenview. I haven't had the 
opportunity yet to 
check if these versions build in the new mingw environment.

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Gary Bilkus

On 16/01/2014 11:43, Geert Janssens wrote:

On Thursday 16 January 2014 11:10:30 Geert Janssens wrote:

Gary,

Thanks for all your updates. Today I found some time to check which of
your fixes I should still add to my windows branch, but got lost in
your patch. It looks like you are generating a patch to be applied to
the current trunk branch, including all the separate commits from my
branch. Unfortunately that makes it hard if not impossible to see
only the changes needed on my branch.

It's not the intention to apply such a large patch one day to current
trunk. Instead my branch will be merged in eventually (likely after
the 2.6 branch is generated and certainly not before the dist part
and build server scripts are also fixed).

So can you extract only the changes that still need to be applied to
my branch please ? Ideally split up in small patches per topic (fix
-no-undefined, fix guile's str_ncase_comp, ...). That way we generate
clean and readable history in the repository.
You may want to set up your own clone of the git repository [1] as git
can be very helpful in generating such patches.

Thanks,

Geert

[1] http://wiki.gnucash.org/wiki/Git#Non-Committers

Also note that I have rebased the mingw-rebasing branch again in my repository 
to pick up
the most recent version of aqbanking and gwenview. I haven't had the 
opportunity yet to
check if these versions build in the new mingw environment.

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

So just to make sure I understand exactly what you need.

1. I should get the gnucash.git repository from 
git://github.com:gjanssens/gnucash.git
2. I should git branch -t mingw origin/mingw-rebasing and check out that 
branch
3. I should appy my patches to that branch - ignoring any which are 
already there
4. I should run git diff to get a series of patches against the branch 
in the repository
5. I should split the resulting diff into different files relating to 
the different fixes

6. I should post the result somewhere and tell you where it is

Gary


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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Geert Janssens
On Thursday 16 January 2014 12:14:49 Gary Bilkus wrote:
 
 So just to make sure I understand exactly what you need.
 
 1. I should get the gnucash.git repository from
 git://github.com:gjanssens/gnucash.git
 2. I should git branch -t mingw origin/mingw-rebasing and check out
 that branch
 3. I should appy my patches to that branch - ignoring any which are
 already there
 4. I should run git diff to get a series of patches against the branch
 in the repository
 5. I should split the resulting diff into different files relating to
 the different fixes
 6. I should post the result somewhere and tell you where it is
 
 Gary

Gary,

That's close. But git's workflow is slightly different:

1 and 2 are correct

3. Apply your patches and ignore those that are already there is also correct. 
Then before 
committing anything it's worth considering which changes logically belong 
together and check 
these changes in in separate commits. 'git add -i' will be tremendously helpful 
for this part 
(adding changes into the index interactively).

4. Each time you have added a coherent set of changes to the index file, you 
can create a (local) 
commit using 'git commit'. You may want to use clear commit messages in this 
step as they will 
eventually end up in the master repository. You can look at my commits for 
examples but 
they're only that not hard rules. I suggest though that you explicitly add an 
author line in your 
commit message. Since we're still linked to the svn repo, git's author 
information gets lost for 
non-committers when we commit to the master repository. This line is in the 
form:
Author: name email

5. When there are no more changes to commit, you can run 'git format-patch' to 
generate a 
series of patch files like so:
git format-patch origin/mingw-rebasing
That should generate the patch files in the current working directory.

6. The normal way to make these patches available to me is to create an 
enhancement request 
in bugzilla and attach the patches there. But in this case I'm equally fine if 
you post them to the 
list or tell me where you stored them on your own server or whatever.


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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Geert Janssens
Gary,

While looking at your changes I noticed you changed two lines in 
the vbs script.

One is that you added my repository/branch in a comment. 
That's ok and makes it easier for others to start.

The second is to install msys-patch. Is there a reason you do this 
in the vbs script and not in install-impl.sh ?

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Gary Bilkus

On 16/01/2014 13:26, Geert Janssens wrote:


Gary,

While looking at your changes I noticed you changed two lines in the 
vbs script.


One is that you added my repository/branch in a comment. That's ok and 
makes it easier for others to start.


The second is to install msys-patch. Is there a reason you do this in 
the vbs script and not in install-impl.sh ?


Geert


Hi Geert.
The reason I added in msys-patch to my version of your script is so that 
the instructions I posted on the wiki would work, since they tell you to 
run your vbs script and then run patch against the 2.6 repo with my 
patchfile, and that doesn't work if you don't yet have patch installed.


Of course, as and when there's a git repo with the patches already 
incorporated, that step is no longer needed and nor is patch. But it 
doesn't do much harm to leave it around, and would make it easier for 
people who have to play catch-up the next time a downstream dependency 
gets broken.

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Geert Janssens
On Thursday 16 January 2014 15:06:55 Gary Bilkus wrote:
 On 16/01/2014 13:26, Geert Janssens wrote:
  Gary,
  
  While looking at your changes I noticed you changed two lines in the
  vbs script.
  
  One is that you added my repository/branch in a comment. That's ok
  and makes it easier for others to start.
  
  The second is to install msys-patch. Is there a reason you do this
  in
  the vbs script and not in install-impl.sh ?
  
  Geert
 
 Hi Geert.
 The reason I added in msys-patch to my version of your script is so
 that the instructions I posted on the wiki would work, since they
 tell you to run your vbs script and then run patch against the 2.6
 repo with my patchfile, and that doesn't work if you don't yet have
 patch installed.
 
 Of course, as and when there's a git repo with the patches already
 incorporated, that step is no longer needed and nor is patch. But it
 doesn't do much harm to leave it around, and would make it easier for
 people who have to play catch-up the next time a downstream dependency
 gets broken.
 Gary

Hi Gary,

That makes sense.

The reason I'm very cautious about adding stuff in the bootstrap script is that 
mingw-get is 
fairly fragile. The bootstrap script unconditionally installs the most recent 
version of the various 
packages, but in the install.sh script we force specific versions. If at some 
point the most recent 
version is more recent than what we explicitly set this will probably cause 
mingw-get to error 
out. That may or may not be bad but at least pretty confusing to new users.

We may fix this by installing very specific versions in the bootstrap script 
already instead of the 
latest available. Although that approach risks that these versions will at some 
point get out of 
sync with the versions defined in defaults.sh. But IMO that is less of an 
issue. If this happens the 
installation script will update the packages to the proper versions without 
errors the first time it 
runs.

I'll admit this is close to nitpicking. There are bigger issues to solve right 
now, but I mention it 
because now I noticed it. I will probably forget later on.

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread John Ralls

On Jan 16, 2014, at 5:23 AM, Geert Janssens janssens-ge...@telenet.be wrote:
 3. Apply your patches and ignore those that are already there is also 
 correct. Then before 
 committing anything it's worth considering which changes logically belong 
 together and check 
 these changes in in separate commits. 'git add -i' will be tremendously 
 helpful for this part 
 (adding changes into the index interactively).

Pardon me for barging in. I just want to add that a git GUI makes it much less 
painful to pull diffs apart into commits compared to `git add -i`. TortoiseGit 
(http://code.google.com/p/tortoisegit/) works well on M$Windows.

Regards,
John Ralls


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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-16 Thread Geert Janssens
On Thursday 16 January 2014 07:49:53 John Ralls wrote:
 On Jan 16, 2014, at 5:23 AM, Geert Janssens janssens-ge...@telenet.be wrote:
  3. Apply your patches and ignore those that are already there is
  also correct. Then before committing anything it's worth
  considering which changes logically belong together and check these
  changes in in separate commits. 'git add -i' will be tremendously
  helpful for this part (adding changes into the index
  interactively).
 
 Pardon me for barging in. I just want to add that a git GUI makes it
 much less painful to pull diffs apart into commits compared to `git
 add -i`. TortoiseGit (http://code.google.com/p/tortoisegit/) works
 well on M$Windows.
 
 Regards,
 John Ralls

Interesting. I never used a gui for this yet. Which one do you use on your mac ?

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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-10 Thread John Ralls

On Jan 9, 2014, at 11:13 PM, Gary Bilkus m...@gary.bilkus.com wrote:

 Well, interestingly enough, the problem is not directly with the compiler 
 optimizer. It's with the configure test for strncasecmp. This test fails on 
 mingw in its current incarnation because guile uses a standard test for the 
 function, but on mingw strncasecmp is actually a cpp definition. As a result, 
 guile is compiled with #HAVE_STRNCASECMP unset, and so guile tries to create 
 its own version in read.c
 Now if you compile with no optimization, the compiler notices that read.c is 
 attempting to create this with a different signature and bombs out. However, 
 with optimisation on, the code compiles for some reason, and then fails to 
 run properly.
 
 So there seem to be two problems: one in configure for guile and/or the 
 standard configure macros on mingw, the other in the compiler.
 Fortunately, there's a very easy although ugly workaround, which is to add an
 echo #define HAVE_STRNCASECMP config.h

Would adding -DHAVE_STRNCASECMP to $CFLAGS work? It's a bit cleaner than 
echoing a #define into the config header.
Better yet, sometimes there's a variable that can be defined on the configure 
command line -- perhaps $ac_have_strncasecmp -- to force configure to do the 
right thing.

 in install-impl.sh
 just after the guile configure and before the make
 
 I've incorporated this fix into my downloadable file of fixes as referred to 
 on the wiki page I updated.
 More as and when I find any further issues. As always, feedback or other 
 experiences welcome.

Regards,
John Ralls


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


Re: Building on Windows from scratch - guile problem SOLVED

2014-01-10 Thread Gary Bilkus

On 10/01/2014 15:03, John Ralls wrote:

On Jan 9, 2014, at 11:13 PM, Gary Bilkus m...@gary.bilkus.com wrote:


Well, interestingly enough, the problem is not directly with the compiler 
optimizer. It's with the configure test for strncasecmp. This test fails on 
mingw in its current incarnation because guile uses a standard test for the 
function, but on mingw strncasecmp is actually a cpp definition. As a result, 
guile is compiled with #HAVE_STRNCASECMP unset, and so guile tries to create 
its own version in read.c
Now if you compile with no optimization, the compiler notices that read.c is 
attempting to create this with a different signature and bombs out. However, 
with optimisation on, the code compiles for some reason, and then fails to run 
properly.

So there seem to be two problems: one in configure for guile and/or the 
standard configure macros on mingw, the other in the compiler.
Fortunately, there's a very easy although ugly workaround, which is to add an
echo #define HAVE_STRNCASECMP config.h

Would adding -DHAVE_STRNCASECMP to $CFLAGS work? It's a bit cleaner than 
echoing a #define into the config header.
Better yet, sometimes there's a variable that can be defined on the configure 
command line -- perhaps $ac_have_strncasecmp -- to force configure to do the 
right thing.


in install-impl.sh
just after the guile configure and before the make

I've incorporated this fix into my downloadable file of fixes as referred to on 
the wiki page I updated.
More as and when I find any further issues. As always, feedback or other 
experiences welcome.

Regards,
John Ralls

I agree that the configure commandline change would be cleaner, and if I 
can find out what to do I'll change my fix.


I disagree that a CFLAGS define is cleaner. With my solution the define 
is in the right file, even if it gets there for the wrong reason. That 
way, it guarantees not to affect any compilation which doesn't involve 
including config.h, which saves having to check for any unexpected 
consequenses elsewhere.

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


RE: Building on Windows from scratch - guile problem

2014-01-09 Thread Gary Bilkus
Hmm,

The problem appears to be with the compiler optimiser doing something too 
aggressive, If I manually recompile guile with -O0 instead of -O2 the problem 
seems to go away. This could be caused by one of the new optimisations in the 
more recent versions of gcc in which case it could start to matter on *nix at 
some point. Anyone know much about this?

 
 
Gary
 
-Original message-
From:Gary Bilkus m...@gary.bilkus.com
Sent:Thu 09-01-2014 13:37
Subject:Building on Windows from scratch - guile problem
To:gnucash-devel@gnucash.org; 
I have done some testing of my build, and it appears there is some kind 
of problem with guile

The symptom is that whenever I try to run a report, even hello world, it 
fails.

Digging into things, it turns out that there is at least one problem 
with the guile build, whcih is that
character constants like #\space are not being initialized correctly.

Just running guile standalone shows the problem.

guile #\space
\#nul

So there's obviously some problem with the guile build over and above 
the library naming one I found earlier. Not sure if it's the version, 
the compiler version or what.

Will investigate further, but any suggestions or experience from other 
would be welcome
Gary




On 08/01/2014 15:07, Gary Bilkus wrote:
 I have written up the procedure which as of today is working to build 
 gnucash 2.6 from scratch on windows and updated 
 http://wiki.gnucash.org/wiki/Windows/Development

 It would be really nice if the patch file I have created along with my 
 modified version of geert's vbs file could find their way into the 
 official repo.
 It should be safe enough as all the changes are to the win32 directory 
 except for two, which I'm reasonably confident won't break anything else:
 - configure.ac now deals with the -no-undefined flag more cleverly
 - gnc-split-reg.h has a couple of #undef statements added to avoid 
 DELETE and DUPLICATE being defined in windows headers.

 It probably also makes sense for the page to be split up again, and 
 some of the older information moved away, but it would be good to get 
 some feedback from people who try following the instructions.

 I've done my best to ensure that there are no ambiguities or 
 misprints, and the entire process has worked for me, but feel free to 
 fix any errors, or tell me of any changes I can/should make to the zip 
 file I've published.

 Please note that I haven't extensively tested all the features of the 
 program. There could be some issues with the build which don't 
 immediately manifest themselves..but at least it runs.

 Also, I haven't yet tried packaging the app into an msi or installable 
 exe

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

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