2018-02-17 GnuCash IRC logs

00:14:12 *** josephcocoa has quit IRC
00:39:36 *** pilotauto has joined #gnucash
01:15:35 *** fell has quit IRC
01:16:44 *** fell has joined #gnucash
01:17:10 <chris> good morning Germany
01:34:46 *** jotrago has joined #gnucash
01:54:29 *** marusich has quit IRC
02:00:03 *** gjanssens has joined #gnucash
02:00:03 *** ChanServ sets mode: +o gjanssens
02:00:34 <gjanssens> .
02:00:34 <gncbot> gjanssens: Sent 7 hours and 36 minutes ago: <jralls> It turns out that there's quite a bit in string.scm that's used in qif-imp and one function, gnc:substring-replace-from-to that's also used in report/report-system/report.scm.
02:24:12 *** Mechtilde has joined #gnucash
02:34:20 *** woodrec has quit IRC
03:04:56 *** harshitaneja has joined #gnucash
03:18:25 *** darshan has joined #gnucash
03:19:45 *** darshan has quit IRC
04:43:55 *** pilotauto has quit IRC
05:00:18 *** fabior has joined #gnucash
05:29:44 *** nicolash has joined #gnucash
06:52:17 *** harshitaneja has quit IRC
06:54:07 *** chris_M has joined #gnucash
06:56:22 *** nicolash has quit IRC
06:56:23 *** Simon has joined #gnucash
06:57:59 <Simon> I'm trying to enter a transaction into an account that is a fraction of GBP and it's not working, it keeps rounding it and won't display a balance :/
06:58:13 <Simon> I want to enter a £0.1770 transaction
06:58:42 <Simon> (a VOIP provider is maintaining a balance to 4 decimal places)
07:00:35 *** Apfelgriebs has joined #gnucash
07:02:06 *** chris_M1 has joined #gnucash
07:03:39 *** chris_M1 has quit IRC
07:03:44 *** chris_M1 has joined #gnucash
07:04:01 *** chris_M has quit IRC
07:08:01 *** Jimraehl1 has joined #gnucash
07:09:03 <Apfelgriebs> Hello! I'm using Linux Mint 17.3 and the latest gnucash version is 2.6.12. I'm trying to build gnucash, cloned from git but I don't really know how to properly use cmake. Can someone help?
07:10:40 *** Jimraehl1 has left #gnucash
07:17:14 <chris_M1> Apfelgriebs: check the wiki.Gnucash.org/wiki/Building
07:19:17 <Apfelgriebs> chris_M1: yeah, I did that. My issue is: -- Checking for module 'gwenhywfar' -- No package 'gwenhywfar' found
07:19:59 <Apfelgriebs> I have gwenhywfar-tools installed, same with libgwenui for gtk2 and qt
07:20:23 <chris_M1> Then maybe try building without aqbanking via cmake switches
07:21:54 <Apfelgriebs> That would be "cmake -D CMAKE_INSTALL_PREFIX=/opt/gnucash-devel WITH_AQBANKING=OFF ../gnucash.git", right? I've tried that, same error.
07:23:01 <chris_M1> Perhaps pastebin it?
07:24:15 <Mechtilde> Apfelgriebs, maybe there is a *-dev package too
07:24:19 <Apfelgriebs> Certainly, thanks for the hel. The console output is https://pastebin.com/2aFBMhKg and CMakeOutput.log is here: https://pastebin.com/rCeyazZh
07:24:28 <chris_M1> Simon: don't think it's possible to store amounts to increased precision
07:24:58 <Apfelgriebs> Mechtilde: where would I look for it? It's not in my system repositories.
07:25:44 <Mechtilde> so Linux Mint doesn't ship *.dev packages
07:25:56 <Simon> all it has done is store 1800/10000 :(
07:26:08 <Apfelgriebs> Mechtilde: It has dev packages for all (so far) the other requirements
07:26:36 <Apfelgriebs> I also made sure to have all the packages in https://wiki.gnucash.org/wiki/Building#Ubuntu_16.04_LTS_.28Xenial_Xerus.29 present.
07:28:26 <chris_M1> Which builds are you having from git? I think unstable is currently broken
07:29:37 <Apfelgriebs> I cloned from https://github.com/Gnucash/gnucash
07:30:10 <Apfelgriebs> I didn't think about it being unstable, now that I think about it. :)
07:30:40 <chris_M1> Perhaps try unstable but revert last 24 commits
07:30:50 <chris_M1> *24h
07:31:28 *** User_ has joined #gnucash
07:31:42 <Apfelgriebs> I will try 2.6.19 firs. I actually wanted the latest release, not daily.
07:31:45 <Apfelgriebs> first*
07:35:39 <Apfelgriebs> Okay, now it's missing a bunch of new dependencies. :-)
07:36:54 <Apfelgriebs> Checking for module 'webkit-1.0>=1.2' - Do you know what required package name? There are dozens of webkit libs.
07:38:22 <Apfelgriebs> (Nvm, I found it in the debian dependencies section in the wiki page)
07:42:57 <Apfelgriebs> Okay. Dependencies are in order now. Now I get this error: file COPY cannot copy file "/home/apfelgriebs/code/gnucash-2.6.19/ChangeLog" to "/home/apfelgriebs/code/gnucash-2.6.19/ChangeLog/ChangeLog".
07:43:14 <Apfelgriebs> Apparently the folder name and the file name are identical
07:45:42 *** fabior has quit IRC
07:46:28 *** User_ has quit IRC
07:52:33 <chris_M1> Dunno in Ubuntu 17.10 it wasn't that complicated, that's coming from a Linux novice
07:59:04 <Apfelgriebs> Thanks so far. I'll wait and hope someone has another idea on this COPY file error because I'm stuck.
08:01:30 *** oozer has joined #gnucash
08:05:03 *** darshan1 has joined #gnucash
08:29:43 *** jotrago has quit IRC
08:40:37 *** harshitaneja has joined #gnucash
08:56:22 *** chris_M has joined #gnucash
08:58:12 *** chris_M1 has quit IRC
09:06:21 *** oozer has quit IRC
09:12:40 *** sydbarrett74 has joined #gnucash
09:13:30 <sydbarrett74> hi all...does gnucash support fiserv's secureinternetbank backend? that's what my local bank uses.
09:13:31 *** Mechtilde has quit IRC
09:20:07 *** Mechtilde has joined #gnucash
09:26:49 *** jotrago has joined #gnucash
10:07:54 *** chris_M1 has joined #gnucash
10:07:55 *** chris_M has quit IRC
10:14:39 *** chris_M1 has quit IRC
10:24:48 *** KaiForce has joined #gnucash
10:31:27 *** oozer has joined #gnucash
11:07:44 *** codesmythe has joined #gnucash
11:07:47 <codesmythe> .
11:07:47 <gncbot> codesmythe: Sent 4 days, 15 hours, and 40 minutes ago: <jralls> data/accounts/CMakeLists.txt sets a variable accounts_SUBDIRS that doesn't seem to be referenced anywhere else. What's it for?
11:08:17 <codesmythe> jralls: That can be removed, as you've done.
11:08:30 <codesmythe> Apfelgriebs: Did you get your build to work?
11:29:08 *** harshitaneja has quit IRC
11:32:49 <Apfelgriebs> codesmythe: no. I'm stuck with the COPY error I quoted.
11:41:40 <sydbarrett74> hi codesmythe, maybe you can answer a question i asked earlier before you came into the channel...
11:42:01 <sydbarrett74> my question: does gnucash support fiserv's secureinternetbank backend? that's what my local bank uses
11:48:52 *** fabior has joined #gnucash
11:58:24 *** kus has joined #gnucash
11:59:44 <codesmythe> sydbarrett74: I don't know the answer to your question, unfortunately.
12:00:27 <sydbarrett74> i emailed my bank and asked if they knew how i could obtain their OFX info...hopefully that will get me somewhere
12:01:13 <codesmythe> Apfelgriebs: Are you building from a source code tar.gz file, or from a checked out git repository?
12:17:30 <Apfelgriebs> codesmythe: from gnucash-2.6.19.tar.bz2
12:18:08 <codesmythe> Apfelgriebs: Ok, are you using a separate build directory, or did you run cmake in the gnucash-2.6.19 directory?
12:20:34 <Apfelgriebs> I _think_ the second one.
12:23:30 <Apfelgriebs> if you could tell me how to use cmake with a separate directory, I will gladly try.
12:23:53 <codesmythe> Apfelgriebs: Ok, create a separate build directory. I usually make a 'gnucash-build' directory parallel to the gnucash source dir (gnucash-2.6.19 in your case).
12:24:34 <Apfelgriebs> done
12:24:36 <codesmythe> Apfelgriebs: From there, do 'cmake -D CMAKE_INSTALL_PREFIX=/opt/gnucash ../gnucash', substituting /opt/gnucash for whatever install directory you want.
12:24:57 <codesmythe> ../gnucash should be ../gnucash-2.6.19 in your case
12:26:04 <codesmythe> (You may need to rmdir gnucash-2.6.19 and re-extract it from the tar ball, as whatever build files you have there may confuse the process).
12:27:31 <Apfelgriebs> Okay, I did try that. The error is the same. I'll paste the output
12:28:14 <Apfelgriebs> https://pastebin.com/s9JAeKNV
12:29:28 <Apfelgriebs> (I also cleared the directory and re-extracted the tar)
12:29:29 <codesmythe> The first line of paste indicated that you are running cmake from the source directory and not a 'gnucash-build' directory.
12:30:45 <Apfelgriebs> Thanks. Unfortunately, same result with the different directory: https://pastebin.com/Rj5817KD
12:32:31 <Apfelgriebs> I'm sorry for those basic mistakes, I'm not entirely, but still pretty new to building.
12:33:45 <codesmythe> Apfelgriebs: No worries. Could you clear the directory and re-extract one more time, then try again.
12:34:25 <codesmythe> You're proving the answers I need to help, so we'll get it sorted.
12:35:07 <Apfelgriebs> Now it worked:
12:35:09 <Apfelgriebs> -- Configuring done -- Generating done -- Build files have been written to: /home/apfelgriebs/code/gnucash-build
12:35:31 <Apfelgriebs> How can I proceed from here?
12:40:38 <codesmythe> Apfelgriebs: Ok, just noticed from your paste that you've set CMAKE_INSTALL_PREFIX to point to your build directory, which isn't what you want.\
12:41:17 <codesmythe> Apfelgriebs: Where you want the final build of gnucash-2.6.19 to be installed? /opt/gnucash is a common choice
12:41:34 <Apfelgriebs> that would be fine for me I guess.
12:41:51 <Apfelgriebs> I want to use the latest release instead of what my distro provides.
12:42:26 <Apfelgriebs> cmake is building already. Can I copy the results over to /opt/gnucash when it's finished?
12:42:30 <codesmythe> Ok, remove your build directory, re create it, then run cmake again, with CMAKE_INSTALL_PREFIX=/opt/gnucash. If that works, then just do a 'make'
12:42:47 <Apfelgriebs> Okay.
12:42:53 <codesmythe> No, that will be done via 'make install' once 'make' is successful.
12:47:09 <Apfelgriebs> okay. Do I have to remove the existing gnucash or would it be overritten?
12:47:16 <Apfelgriebs> overwritten*
12:47:36 <codesmythe> Apfelgriebs: Yes, I would recommend that you remove the distro-installed version of gnucash
12:48:05 <codesmythe> Did 'make' complete?
12:48:33 <Apfelgriebs> make finished without errors, sudo make install is still running
12:50:52 <Apfelgriebs> It's working. :-) https://i.imgur.com/A8Tq8HY.png
12:51:43 <Apfelgriebs> Thanks for your help!
12:51:49 <Apfelgriebs> (Only thing I noticed is that the corresponding .desktop file isn't present. I will do this manually.)
12:52:49 <codesmythe> Great. You're welcome. We may need to add a way to detect attempts to build out of the source directory and error out. CMake prefers to work out of a build directory.
12:53:58 *** woodrec has joined #gnucash
12:56:46 *** oozer has quit IRC
12:56:48 <Apfelgriebs> The desktop file is actually present in /opt/gnucash/share/applications. I guess that isn't a default location for .desktop files?
13:02:19 <codesmythe> Apfelgriebs: No, I don't think any defaults system will look in opt. Perhap you can symlink the gnucash.desktop file from /usr/local/share/applications
13:09:20 <Apfelgriebs> Okay.... I do this with ln -s /opt/gnucash/share/applications/gnucash.desktop /usr/local/share/applications/ ? Because it complains that the latter "is no directory".
13:12:28 *** sydbarrett74 has quit IRC
13:13:58 <codesmythe> Does /usr/local/share/applications exist?
13:15:29 <Apfelgriebs> Oh. It's usr/share/applications. Thanks. The symlink was now created, but it doesn't work.
13:16:05 <Apfelgriebs> Probably because it has Exec=gnucash %f and this isn't found in $PATH.
13:16:22 *** User_ has joined #gnucash
13:16:28 <Apfelgriebs> This feels like a little catch 22.
13:16:57 <codesmythe> Apfelgriebs: ok, that's out of my area. Though you probably shouldn't mess with stuff under /usr.
13:17:02 <codesmythe> Can you hardcode the path?
13:18:25 <Apfelgriebs> codesmythe: thanks and sorry for this silly follow-up issue. I will just make a brand-new .desktop file in ~/.local/share/applications :-)
13:18:36 <Apfelgriebs> That worked before on other applications for me.
13:19:06 <codesmythe> Apfelgriebs: Ah good. I know little about how desktop environments like GNOME manage this stuff.
13:29:23 *** To7 has joined #gnucash
13:29:31 <gjanssens> Apfelgriebs: you can copy the gnucash.desktop file from /opt as a start...
13:31:11 *** harshitaneja has joined #gnucash
13:40:59 <codesmythe> gjanssens: Do we recommend local builders to install to /usr/local, or somewhere else?
13:43:10 <gjanssens> codesmythe: somewhere else. We assume /usr and /usr/local are reserved for system packages.
13:43:58 <gjanssens> The /opt directory was a good proposal, though it will lack desktop integration indeed.
13:45:47 <gjanssens> jralls: thanks for fixing my double free in the userdata-dir test
13:45:56 <gjanssens> Apparently I got away with it on linux
13:46:25 <codesmythe> gjanssens: Ok, thanks. I agree that people try to avoid /usr/local these days, but that seems a change from the old days.
13:47:42 <gjanssens> codesmythe: we frequently see interference issues when people try to install to /usr/local. That's the primary reason we tell people to avoid it.
13:47:44 <Mechtilde> then you have to set he desktop-integration under ~/.local/share/applicaations
13:47:51 <gjanssens> It may work if no other gnucahs is installed
13:48:31 <gjanssens> Mechtilde: indeed. That's what Apfelgriebs was about to do as well.
13:49:05 * gjanssens wonders though whether we should set up the Exec rule in gnucash.desktop to be an absolute path.
13:49:19 <gjanssens> I don't know the proper conventions there either...
13:50:00 <Mechtilde> for /opt it must be an absolute path
13:53:06 *** darshan1 has quit IRC
13:54:18 *** Apfelgriebs has quit IRC
13:54:56 <codesmythe> Gotta run...
13:55:09 <gjanssens> Of course. But will distros accept it if we set hardcoded paths in there (for a distro that would become /usr/bin or /usr/local/bin depending on the distro) or would they prefer the Exec line is relative so the executable is found on the path ?
13:55:49 <gjanssens> *That* by the way is the alternative way to solve it. If you install in /opt, one can add /opt/gnucash/bin to the PATH and the executable will also be found
13:56:10 <gjanssens> That's how I used to fix this long time ago
13:57:05 *** codesmythe has left #gnucash
13:59:29 <Mechtilde> you can do both /opt/gnucash/bin into the path or a symlink to /usr/local/bin
13:59:59 <Mechtilde> or the absolute path into the *.desktop file
14:06:24 *** gncbot sets mode: +o fell
14:10:33 <gjanssens> chris: I just pushed a commit that should fix unstable
14:10:42 <gjanssens> (build and install at least)
14:12:08 *** mdf has joined #gnucash
14:14:39 *** frakturfreak has joined #gnucash
14:17:12 <jralls> gjanssens: Thanks for fixing the left-over config install.
14:17:42 <gjanssens> You're welcome
14:18:24 <jralls> Are there other issues from my Scheme butchery yesterday?
14:18:32 <gjanssens> I've also decided to drop the temporary script for glib-compile-schemas, but I kept the idea of printing a message. Like that everybody is happy :)
14:18:42 <gjanssens> I haven't come across any issues yet
14:18:53 <gjanssens> I'm only at my computer for an hour or so
14:19:05 <gjanssens> I have been*
14:20:42 <jralls> OK. I'm finishing off libgnucash/scm by replacing sprintf (from printf.scm) with the built-in (format #f).
14:22:50 <jralls> Oh! In utilities.scm (formerly main.scm) there's an auto-compilation-option setting. That seems kind of a weird place for it, both because it means it gets set in every Scheme file that uses utilities and because not every Scheme file does. Wouldn't it be better called from inner_main in gnucash-bin?
14:26:12 *** lispmacs has joined #gnucash
14:28:45 <lispmacs> hi, can withdrawls against a subaccount be also withdrawls against a parent account? Or is the subaccount thing purely for categorization?
14:29:17 <lispmacs> I've got multiple company credit cards, but I make payments to one master credit card account
14:31:54 <jralls> lispmacs: That's a bit complicated. A subaccount is a stand-alone account whose balance is part (along with other subaccounts and any transactions in the parent) of the parent's balance reported on the Accounts page.
14:32:50 <gjanssens> jralls: good point about auto-compilation-option. There are a few other commands in there that make more sense at a top level, like the debug setting and stuff.
14:33:11 <jralls> So if you made the several CCs subaccounts of "Company Credit Cards" the total spend would show up on the Accounts page next to Company Credit Cards. So far so good.
14:33:36 * gjanssens wonders whether we shouldn't have inner-main call utilities.scm once instead of calling it everywhere with use-modules
14:34:21 <gjanssens> To get there we may need to slightly change the calls to have guile include all the defines in the public scope.
14:34:22 <jralls> But if you tried doing a single split payment transaction to the Company Credit Cards account it would reduce that account's balance but would have no effect on the balances of the subaccounts.
14:35:03 <gjanssens> Oh, and gnc:shutdown is no longer in use, because command-line.scm is dead
14:35:08 <lispmacs> jralls: so it would work, but I'd just have the awkwardness of seeing a negative balance on the individual accounts all the time
14:35:21 <jralls> Right.
14:36:47 <gjanssens> In fact everything below ";; Set timing functions" can go AFAICT
14:36:50 <lispmacs> jralls: of course, I could just do split transaction to the individual accounts and interest portion goes to the main
14:37:04 <jralls> gjanssens: I didn't think of checking each of the functions in utilities.scm and strings.scm and keeping only the ones we still need. I guess that's next after sprintf.
14:37:22 <lispmacs> jralls: but that would get complicated if I didn't pay in full each month
14:37:40 <gjanssens> jralls: ok
14:38:20 <jralls> lispmacs: Yes, exactly. A little more pain on that end. And yes, you'd have to somehow keep in sync with whoever you're paying so that you agree on how a partial payment is allocated among the cards.
14:40:36 <jralls> lispmacs: Which I suppose you'd need to do anyway if the cards have individual credit limits and the balances ever get anywhere near them.
14:40:51 *** fekepp has quit IRC
14:44:27 <lispmacs> it is really hard to work on the books when your baby is eating the ethernet switch
14:47:16 <jralls> Nah. Neither the baby nor the switch will be harmed much. ;-)
14:47:58 <lispmacs> jralls: yeah, but last time I ignored him he reached over and pulled out the computer power cord
14:48:24 <jralls> Sounds like you need a playpen.
14:48:46 <jralls> Or "baby jail" as we called it when ours were rug rats.
14:48:51 <lispmacs> jralls: I tried to convince the wife, but it never took
14:50:28 <jralls> Maybe a fence around the computer...
14:52:44 <lispmacs> jralls: that might work, if I can figure out how to anchor it. Am in the corner
14:53:51 <jralls> 16d nails or 3" screws into studs work well.
14:54:17 <gjanssens> jralls: fyi tied to run gnucash for the first time today after a fresh build -> crashes with a guile exception at startup
14:54:35 <gjanssens> use-modules variable can't be resolved
14:54:46 *** harshitaneja has quit IRC
14:54:57 <gjanssens> So your butchering seems to have been a tad too drastic
14:55:22 *** woodrec has quit IRC
14:55:32 *** harshitaneja has joined #gnucash
14:55:48 <gjanssens> Hmm, it still finds a (use-modules (gnucash main)) somewhere.
14:55:50 <gjanssens> Let me check
14:57:47 <gjanssens> Got it. It's in gnucash-bin.c. I'll fix.
14:59:34 <jralls> Hah! I didn't think to look for it in C.
15:04:15 *** Apfelgriebs has joined #gnucash
15:08:39 *** josephcocoa has joined #gnucash
15:09:19 <Apfelgriebs> gjanssens: Mechtilde: Thanks again for the help and input. I manually made a .desktop file for ~/.local/share/applications, and GnuCash appears in the Starter menu
15:09:35 *** joseph_ has joined #gnucash
15:09:40 <gjanssens> Glad to be of help Apfelgriebs :)
15:09:48 *** joseph_ has quit IRC
15:10:02 <jralls> chris: A heads-up on your TR PRs: (sprintf #f "%s" foo) -> (format #f "~a" foo)
15:10:22 <gjanssens> jralls: aside from the fix in gnucash-bin.c, I've also readded a command to load string.scm
15:10:50 <gjanssens> Without it the reports were not working, at least not the ones depending on jqplot
15:10:52 <Apfelgriebs> It's nitpicking, but... what's missing is starting gnucash by simply typing the name in a console. How would I get that back? is there a better, more generic location for self-compiled applications?
15:11:04 <jralls> Into utilities.scm, right? I was wondering about that since string.scm doesn't define a module.
15:11:36 <gjanssens> Apfelgriebs: you get that back by adding /opt/gnucash/bin to your PATH variable
15:12:00 <gjanssens> Assuming you are using bash as your shell, you can do so in $HOME/.bashrc
15:12:08 <gjanssens> Add a line there like this
15:12:20 <gjanssens> export PATH=/opt/gnucash/bin:$PATH
15:12:32 <gjanssens> you have to restart your bash shells afterwards to pick up the change
15:12:46 <gjanssens> jralls: yes in utilities.scm
15:13:03 *** bertbob has quit IRC
15:13:21 <gjanssens> string.scm uses a neat trick in that it defines a number of functions in the public scope. I think we should do the same with gnc:warn and friends
15:14:03 <gjanssens> I think we can drop (use-modules (gnucash utilities)) from most scm files after that as it's also loaded in gnucash-bin.c
15:14:29 *** nicolash has joined #gnucash
15:14:34 <gjanssens> We can drop it after the define-public changes that is (or at least I hope)
15:15:27 <jralls> So (define-public foo) puts foo in the global namespace without needing to load the containing module but (export foo) doesn't?
15:17:48 <Apfelgriebs> Thanks alot, it's working. I'm wondering, there a handful of applications are located in /opt but all of those are accessible in console. Google chrome for example, and calibre.
15:18:08 <Apfelgriebs> How did they solve this? my $PATH does not contain their folders.
15:18:46 *** bertbob has joined #gnucash
15:20:15 <Mechtilde> They install a symlink to /usr/bin or /usr/local/bin
15:20:46 <Mechtilde> or for desktop-integration to /usr/share/applications
15:21:09 <gjanssens> jralls: I'm wrong about the define-public vs export stuff :(
15:21:11 <gjanssens> https://www.gnu.org/software/guile/docs/master/guile.html/Creating-Guile-Modules.html#index-export
15:21:32 <gjanssens> At the bottom of the page define-public and export are explained
15:21:37 <gjanssens> They essentially do the same thing
15:22:10 *** jotrago has quit IRC
15:24:29 <jralls> That's what I remembered.
15:26:20 *** woodrec has joined #gnucash
15:26:29 *** woodrec has quit IRC
15:26:29 <gjanssens> It may still be though that gnucash utilities shouldn't be loaded everywhere. In inner_main this module is set as the current module
15:26:55 *** fekepp has joined #gnucash
15:26:58 <jralls> Maybe, but what about tests?
15:27:32 <gjanssens> which means that every define/export in utilities should be visible by modules loaded after it.
15:28:02 <gjanssens> Tests still need to load it if they require these functions as things stand currently
15:28:29 <gjanssens> Do we want to tie this somewhere in an initialisation function in libgnucash instead ?
15:28:43 <gjanssens> Some function that should always be called anyway ?
15:28:57 <gjanssens> But perhaps that's asking for too much refactoring at this point.
15:30:52 <jralls> Are you sure that if one does (use-modules (gnucash foo)) (use-modules (gnucash bar)) that foo's symbols are visible in bar?
15:30:59 *** josephcocoa has quit IRC
15:31:28 <jralls> And even if that's so that it's good practice to count on it?
15:31:52 *** josephcocoa has joined #gnucash
15:36:21 *** bertbob has quit IRC
15:38:42 <gjanssens> No, in that invocation the foo's symbols won't be visible in bar.
15:39:20 <Simon> is it practical to allow an account to have smaller fractions of a currency than is normally used?
15:39:37 <gjanssens> However if you do (set! mod (resolve-module (gnucash foo))) (set-current-module mod) (use-modules (bar) it would
15:39:38 <Simon> (without making every account have such fractions)
15:39:46 <gjanssens> This is what essentially is happening in gnucash-bin.c
15:39:57 <gjanssens> https://www.gnu.org/software/guile/docs/master/guile.html/Module-System-Reflection.html
15:40:05 <nicolash> Hi, gnc-numeric-mul is used in advanced-portfolio.scm I can't find where it is defined and which module must be used to use it?
15:40:28 *** bertbob has joined #gnucash
15:40:41 <gjanssens> nicolash: gnc-numeric-mul is the scheme translation of the c function gnc_numeric_mul
15:41:01 <gjanssens> You'll have to load the engine library to have access to it.
15:42:06 <gjanssens> jralls: as for whether it's good practice, I think it would make sense for a set of common functions that are used everywhere
15:42:15 <jralls> Simon: Yes, though I won't guarantee that it will necessarily behave the way you expect.
15:42:26 <gjanssens> But I don't have strong preference
15:43:12 <gjanssens> I mainly got thinking about this because of the autocompile options, the setting of LC_ALL and a number of debugging preferences.
15:43:28 <gjanssens> These should be global scope IMO and not loaded over and over again.
15:43:41 <gjanssens> The other functions can be loaded on an as needed basis
15:44:18 <gjanssens> That would mean we would have to split utilities in a true utilities and something of a bootstrap script.
15:44:44 <jralls> Yes, I agree. The tricky bit is tests, which also need to have at least some of that available. A test-runner in builddir/bin might be a solution.
15:47:09 <jralls> Maybe it wouldn't need to be split after we get rid of the unused functions. Then it's reduced to auto-compile-options, LC_ALL, the backtrace settings (which have a comment about guile 1.3, do we still need them), and the logging functions.
15:49:22 <Simon> jralls: what would I need to change to get it to stop rounding the values I enter?
15:50:02 <gjanssens> jralls: And all functions in string.scm...
15:50:10 *** Mechtilde has quit IRC
15:50:11 <gjanssens> But again, that should be it's own module
15:51:00 <gjanssens> I agree the logging functions are common enough to have them available in a global scope
15:51:42 <gjanssens> A test runner may indeed help for this.
15:52:13 <gjanssens> jralls: out of curiosity, how did you track the guile dependencies when you did your previous commit ?
15:52:25 <jralls> Yes, string.scm should be a module. gnc:safe-strcmp belongs there.
15:52:37 <nicolash> Maybe I doing something wrong, but I don't see gnc-numeric-mul in gnucash/scm/gnucash/engine.scm?
15:53:55 <jralls> nicolash: You don't understand how SWIG works. It wraps a C library and creates Scheme functions that don't have to be explicitly declared.
15:55:36 <jralls> gjanssens: You mean for setting them in CMakeLists.txt? I grepped for "(use-modules (gnucash", found the corresponding CMake targets, and added those targets to the dependencies for the target compiling the Scheme file that included them.
15:58:20 <nicolash> jralls: Correct I have not done much C or Scheme, I code in Delphi/Pascal. Just trying to make changes to a report.
15:59:29 <gjanssens> jralls: that makes sense. It should probably be extended with the results of a grep on gnc:module-load to find the gnc-modules each scm file depends on and a grep on load-extension to find the swig wrappers the module depends on
16:00:48 <jralls> OK.
16:01:19 <gjanssens> That should eliminate the failed to dlopen errors we still see.
16:02:20 <jralls> Are we still seeing failed dlopens? I've only seen "empty modules" lately, which is why I went after use-modules.
16:02:56 <gjanssens> nicolash: as I said the function is defined in gnc-numeric.h. Any c function we wrap with swig can be called in guile by loading the proper module and swapping the "_" marks with "-" marks
16:03:12 <gjanssens> The art is finding the right module to load and how to to it.
16:05:18 <gjanssens> For your specific case you probably need to (gnc:module-load "gnucash/engine" 0) and possibly also (use-modules (gnucash engine))
16:05:38 <gjanssens> The first one to load the c shared library, the second for the wrappers
16:06:49 <jralls> nicolash: OK, I was just explaining why you can't find (export gnc-numeric-mul) in source. SWIG creates a definition that Guile recognizes and Guile makes that available to Scheme, changing '_' to '-' in the symbol name.
16:06:54 <gjanssens> jralls: from a build earlier this evening after pulling your commits:
16:06:57 <gjanssens> [824/941] Generating ../../../lib64/gnucash/scm/ccache/2.2/gnucash/report/eguile-utilities.go
16:06:58 <gjanssens> (process:28856): gnc.module-WARNING **: Failed to dlopen() '/home/janssege/Development/builds/kdevelop/gnucash/unstable/lib64/gnucash/libgncmod-ledger-core.so': /home/janssege/Development/builds/kdevelop/gnucash/unstable/lib64/gnucash/libgncmod-ledger-core.so: file too short
16:07:12 <gjanssens> That's just one example. There are several
16:07:53 <jralls> Interesting. What generator?
16:08:13 <nicolash> Thanks! I messed up underscore and dash. Found the function in the C header file. I didnt understand the SWIG.
16:16:36 *** bertbob has quit IRC
16:17:01 <gjanssens> jralls: ninja
16:17:35 <gjanssens> nicolash: you're welcome
16:20:31 *** Apfelgriebs has quit IRC
16:21:03 <jralls> gjanssens: Huh. I ran ninja -j16 successfully yesterday when testing the change.
16:21:54 <jralls> There must be some platform dependence in the way either CMake or ninja orders the build.
16:22:18 <gjanssens> Possibly.
16:24:12 <gjanssens> The error stems from gnc:module-load (or the C variant), hence my suggestion to find the other (runtime) dependencies
16:24:52 <gjanssens> It's ugly guile has to run the C-code in order to be able to build it, but I don't know a way to avoid it...
16:26:38 *** josephcocoa has quit IRC
16:26:55 <gjanssens> It can even be worse: if guile gnc:module-load's a gnc_module, that module's init code is run, which in turn can try to load other modules (scheme or c), which we technically would need to track also to avoid all dependency sequence issues.
16:27:14 <jralls> It's like I just told nicolash: The SWIG wrapper exposes C in a way that Guile understands and Guile does the conversion to Scheme. Guile can't magic the Scheme without the C.
16:27:46 <gjanssens> Yeah, I know.
16:28:11 <gjanssens> It just becomes horribly complex because of how our C and scm code are tightly interwoven
16:28:36 <jralls> The gnc-module's loading of other dependencies should be expressed in that module's CMake dependencies. As long as that's true CMake will take care of the rest.
16:28:47 *** bertbob has joined #gnucash
16:29:21 <gjanssens> Does that module's CMake dependencies also track the scm modules that module depends on ?
16:30:53 <jralls> Yes. Cmake doesn't know about C or Scheme, just targets.
16:31:51 <gjanssens> For example gncmod-engine loads engine.scm and business-core.scm, but I don't see these files in the dependencies list for the gncmod-engine library target
16:32:03 *** bertbob has quit IRC
16:32:55 *** bertbob has joined #gnucash
16:33:07 <gjanssens> So technically gncmod-engine can be built before its dependent scm files are compiled and afterwards an scm files can be compiled that loads gncmod-engine, still before the dependent scm files are compiled
16:33:39 <gjanssens> Which would lead to autocompilation of these files in the user's personal cache directory instead of the gnucash cache directory.
16:33:47 <gjanssens> I've seen errors like that as well.
16:33:52 <jralls> Huh? the CMake target gncmod-engine is a C library, libgncmod-engine.so. It shouldn't depend on any Scheme.
16:34:21 <gjanssens> Not directly, but scheme files loading gncmod-engine do
16:34:31 <gjanssens> During compilatoin
16:34:40 <gjanssens> compilation*
16:35:25 <jralls> Ah. No, Scheme files loading gncmod-engine depend on *scm-gncmod-engine*, which in turn depends on gncmod-engine.
16:35:58 <jralls> That's the missing bit I tried to fix yesterday.
16:36:21 <gjanssens> The point still stands
16:36:42 <gjanssens> I agree the scm files depending on gncmod-engine are handled properly
16:37:21 <jralls> Sorry, I'm missing the point. Can you try again?
16:37:30 <gjanssens> What's not handled is the scm files loaded by gncmod-engine *itself* when run. And it gets run when any scm file that depends on it is compiled
16:38:02 <gjanssens> As an example I took business-core.scm
16:38:28 <jralls> Um, libgncmod-engine.so shouldn't be loading any Scheme files. libgncmod-app-utils.so on the other hand...
16:40:17 *** harshitaneja has quit IRC
16:40:53 <gjanssens> All fine, but it does: https://github.com/Gnucash/gnucash/blob/unstable/libgnucash/engine/gncmod-engine.c#L72
16:41:50 <gjanssens> The file I chose is even more interesting, because it's part of a circular dependency (though it doesn't give build errors)
16:41:55 <gjanssens> Let me try to explain:
16:42:11 <gjanssens> Take any scm file that loads gncmod-engine
16:42:22 <gjanssens> It will not compile before gncmod-engine is built
16:43:14 <gjanssens> The way you have specified the dependencies on business-core.scm, that file also will not be compiled before gncmod-engine is built
16:44:11 <gjanssens> If now the random scm file gets compiled before business-core.scm, that compilation run will cause gncmod-engine to run it's initialization code, which tries to load business-core.scm
16:44:21 <gjanssens> But that file is not compiled yet. What will happen ?
16:45:09 *** fabior has quit IRC
16:45:14 <jralls> It will complain. The solution is for said random scm file to depend on scm-engine, which compiles business-core.scm and engine.scm.
16:45:27 *** woodrec has joined #gnucash
16:46:31 <gjanssens> Ah, yes. I finally got it.
16:47:34 <gjanssens> So I think that case is properly handled now.
16:48:04 <gjanssens> And that's also why in some modules we have multiple levels of scm sources. To handle these interdependencies.
16:48:12 <jralls> So I guess the question is, does grepping for use-modules, gnc:module-load, and load-extension will that find all of the first-order dependencies?
16:48:44 <gjanssens> I think so
16:50:24 <gjanssens> It's related to how we used to set up scm tests in the autotools world. We had to adjust the guile-load-path, gnc-module load path and LD_LIBRARY_PATH to catch the outcome of each of these three methods of loading external modules in our scm files.
16:50:53 <jralls> Re multiple levels of scm targets: Yes, exactly. For example main.scm did (use-modules (gnucash printf)), so there was a target to build printf and a second target to build main that depended on the first target. Then there was another target to build fin, and a target 0 to make build-config. 4 in all, really absurd.
16:52:38 <gjanssens> Indeed.
16:53:59 <jralls> Well, all of the path nonsense for tests was an artifact of recursive make. Autotools isn't smart enough to track dependencies so we had the three sets of subdirectories to get everything to build in the right order.
17:02:57 <gjanssens> As I remember it, that was rather because autotools didn't setup the build directory to look like an installation directory as we do in cmake. So we had to point the three load mechanisms at each source-dir-mapped-to-a-build-dir
17:03:05 <gjanssens> The dependency tracking was directory based
17:03:16 <gjanssens> So rather course grained
17:05:35 <jralls> Right, that's what "recursive make" means.
17:13:23 <gjanssens> Indeed. I thought you were suggesting that path nonsense was part of the dependency tracking instead of only a way to find the libraries in the recursive directory structure.
17:13:30 <gjanssens> I may have misunderstood.
17:14:55 <jralls> Yeah, backwards. I meant that it was because recursive make splatters the build products all over the build tree and that because autotools doesn't know how to track dependencies between source directories we had to control the build order instead.
17:16:45 <jralls> Wow, that wasn't any clearer, was it? All of the paths were because of build products all over the place, had nothing to do with dependencies.
17:17:49 <gjanssens> I did understand this time :)
17:18:12 <gjanssens> Dependencies are hard. Talking about them is even harder :D
17:18:23 <jralls> Cmake puts all of the build products in one place so the path issues have mostly gone away. But running single Scheme tests is still a PITA.
17:20:55 <gjanssens> Would that be simplified if we had a minimal test runner that does load the environment file and then runs the scheme test ?
17:21:10 <gjanssens> The test runner you suggested earlier today
17:22:44 <jralls> I think that one could be written that would, yes.
17:23:58 <gjanssens> On the subject of dependencies. I just saw this while building:
17:24:01 <gjanssens> [91/126] Generating ../../../lib64/gnucash/scm/ccache/2.2/gnucash/report/standard-reports/income-gst-statement.go
17:24:02 <gjanssens> ;;; note: source file /home/janssege/Development/builds/kdevelop/gnucash/unstable/share/gnucash/scm/gnucash/report/standard-reports/transaction.scm
17:24:03 <gjanssens> ;;; newer than compiled /home/janssege/Development/builds/kdevelop/gnucash/unstable/lib64/gnucash/scm/ccache/2.2/gnucash/report/standard-reports/transaction.go
17:24:05 <gjanssens> wrote `/home/janssege/Development/builds/kdevelop/gnucash/unstable/lib64/gnucash/scm/ccache/2.2/gnucash/report/standard-reports/income-gst-statement.go'
17:24:24 <gjanssens> This is after I merged chris' TR work for testing.
17:24:58 <gjanssens> In this case both transaction.scm and income-gst-statement.scm had been built in a previous run
17:26:05 <gjanssens> The merge updates both files and next ninja decided to recompile income-gst-statement.scm before transaction.scm, while the former depends on the latter.
17:28:34 *** nicolash has quit IRC
17:29:36 <jralls> I haven't really dug into guild, but CMake doesn't know anything about it either. C compilers can generate a dependency graph among a set of C sources. Ninja and make take advantage of that to decide in what order to build a target. Even if guild knows how to do the same, ninja and make don't know that.
17:33:25 <jralls> I'd think it wouldn't matter that much anyway. AFAICT changing and rebuilding transactions.go doesn't require that income-gst-statement be rebuilt.
17:34:50 <gjanssens> It may if the exported function definitions would change, but I agree that's fairly uncommon
17:35:15 <gjanssens> That's why we have header files in the C world.
17:35:27 <gjanssens> But there's no equivalent in guile
17:53:01 *** woodrec has joined #gnucash
17:57:21 *** sbluhm has quit IRC
17:58:22 *** sbluhm has joined #gnucash
18:11:50 *** kus has quit IRC
18:12:12 <gjanssens> And with that last push I'm calling it a day. Night night!
18:12:35 *** gjanssens has quit IRC
18:14:20 *** kus has joined #gnucash
18:29:34 *** kus has quit IRC
18:29:43 *** kus has joined #gnucash
18:33:06 *** kus has quit IRC
18:58:12 *** arahael has joined #gnucash
18:58:37 <arahael> Any tips for using Gnucash in an australian environment, to track super, shares, in addition to regular old accounts?
18:59:44 <arahael> Why is gnucash hosted on sourceforge!?
19:00:14 <arahael> Why is a financial package hosted on a service known to modify and inject their own spyware into their installers?
19:01:14 <arahael> Also, it doesn't download: Unable to find mirror.
19:01:53 <arahael> Specific error message from sourceforge: Unable to find any mirror information for the "/gnucash (stable)/2.6.19/Gnucash-Intel-2.6.19-1.dmg" file. Please select another file.
19:02:37 *** kus has joined #gnucash
19:03:23 <jralls> arahael: It's on SourceForge because it's been there for 20 years. It's also at https://github.com/gnucash/gnucash.
19:04:32 <arahael> Fair enough - where can I get the latest binary though?
19:04:41 <jralls> I just told you.
19:04:53 <jralls> Click the "releases" tab.
19:06:27 <arahael> jralls: The link takes me to sourceforge, which gives me that error?
19:07:03 <arahael> I mean, I can't download the intel version here: https://sourceforge.net/projects/gnucash/files/gnucash%20%28stable%29/2.6.19/
19:07:09 <jralls> The github link I just posted takes you to SourceForge? Your DNS setup must be really hosed.
19:07:50 <arahael> jralls: I must be misunderstanding you. The gitlab link indeed takes me to the soruce repo. It's readme says to use the provided link, which takes me to the gnucash site. Clicking the download link there, takes me to sourceforge.
19:08:26 <arahael> Ah, there's an actual 'releases' on github, as well.
19:08:34 <jralls> No, on github click on the "releases" tab. Find the 2.6.19 release announcement, and at the top of it are download links.
19:09:22 <arahael> Ah, that works beuatifully. Sorry I didn't understand.
19:09:32 <jralls> NP
19:10:45 <arahael> A vaguely unrelated question: My bank doesn't work with automated transactions - I won't be able to automatically pull my transactions itno gnucash.
19:11:14 <arahael> Are there any other workarounds? (Eg, I use a visa card... Also use apple pay and could use google wallet for my wife)
19:12:26 <jralls> Most banks and CC companies offer downloads of either QIF or OFX files (they might call the latter QFX) from their websites. You can import those into GnuCash.
19:13:00 <jralls> Dunno about Apple Pay or Google Wallet.
19:14:04 <jralls> But if you enter your transactions by hand as you make them then you have an easy way to check your statements every month.
19:14:48 <arahael> Ah, it was difficult to find, but I can indeed get OFX files. Sweet. Thanks for the tip. :)
19:15:11 <arahael> And there is that.
19:15:34 <arahael> I used to think entering the transactions was too tedious, but now I'm thinking: It would help foster good spending habits.
19:16:12 <jralls> It can. It makes it a bit more apparent how much you're spending, especially if you pay mostly with plastic.
19:16:32 *** marusich has joined #gnucash
19:16:35 <arahael> I pay entirely with plastic, effectively.
19:18:16 <arahael> It's very australian.
19:18:36 <arahael> I also prefer it because I can see the statements on the account - with cash, it just vanishes.
19:19:57 *** marusich has quit IRC
19:20:14 *** marusich has joined #gnucash
19:21:47 *** marusich has quit IRC
19:21:58 *** marusich has joined #gnucash
19:22:14 <arahael> GTK's gotten much better on the mac over the years. I don'nt have to click twice to enable the window anymore.
19:22:27 <arahael> Ugly as sin, but very functional now.
19:23:01 *** lispmacs has quit IRC
19:23:48 <jralls> 3.0, coming soon, will use Gtk3, which is much more up-to-date and not quite as ugly.
19:25:09 <jralls> I never had much success with Gtk2 themes not crashing so I've never bundled them, and when I looked for a Gtk3 theme a month ago I found ones to make a Linux Desktop look Macish but didn't find anything that would help an application.
19:26:41 <arahael> Nice.
19:27:46 <arahael> Hmm, the OFX file was against the wrong account, can I tell GnuCash the correct account? (I mis-selected)
19:28:35 <arahael> I also notice that the text in the ledger itself is blurry.
19:29:04 <arahael> The regular text labels in GTK are nice and sharp, but not the legder.
19:29:06 <arahael> *ledger.
19:29:54 * arahael closed, without saving, and did the import again.
19:31:27 <jralls> That's probably the easiest fix. I was trying to remember if there's a way to reset it from the GUI and I don't think that there is.
19:32:23 <arahael> Fullscreen mode seems buggy. Fullscreen always sucks on the mac anyway. :(
19:33:25 <jralls> As for blurry, Gtk2 doesn't do that well with Retina. It's worse if you've set scaling to something other than native. Both that and fullscreen should be better with Gtk3.
19:33:58 <arahael> Nice. Should I be a tester for the Gtk3 version? I suppose I should learn Gnucash again first (It's been a long time)
19:34:21 <arahael> Happy to compile it if it's relatively simple.
19:35:57 <jralls> It's not simple to compile, but the 2.7.4 release you saw on github has a bundle. The reports are broken, but will be fixed in the next beta that we'll release next week.
19:36:52 <jralls> The nice thing about the Mac bundles is that you can have as many versions as you want and have disk space for.
19:36:55 <arahael> Ah, cool. I'll check it out after I get these accounts going.
19:37:13 <arahael> Yeah, the mac bundles are pretty awesome. There's a bunch of things I hate about the mac, but the bundles aren't one of them. :)
19:37:24 <arahael> I'm a developer, btw.
19:38:12 <jralls> OK, but it's still not simple. See https://wiki.gnucash.org/wiki/MacOSX/Quartz for the procedure.
19:39:06 <arahael> Indeed, that's a fairly complex setup.
19:39:13 <arahael> And I don't want to deal with Quartz.
19:40:08 <jralls> You don't have to. Gtk and Cairo hide most of it.
19:40:46 <arahael> Hmm. Maybe later.
19:40:57 <arahael> I get quite lazy when I'm not at work. :(
19:41:51 <jralls> I should mention that there's also MacPorts and I think Homebrew, either of which will get you a build environment at the price of messing up your paths.
19:42:08 <arahael> Yeah, I'm a homebrew fan.
19:44:58 *** woodrec has joined #gnucash
19:48:17 *** woodrec has quit IRC
19:50:52 * arahael categorizes his daily coffee under "dining".
19:50:59 <arahael> Where do you put yours?
19:52:05 <arahael> I'm only backdating my books to 1st Jan. :)
19:52:07 <jralls> Food, as opposed to restaurant.
19:52:27 <arahael> Ah, interesting. So it's effectively groceries, for you.
19:52:35 <jralls> Yeah.
19:53:00 <arahael> We almost never go out to the restaurant, at least not at home, so I probably err on grocers/cheap vs dining/frivilous.
19:53:27 <jralls> Unless you have investments you probably don't have any need to start tracking before this year.
19:53:59 <arahael> I do have investments, but prefer to Keep Things Simple. :)
19:54:19 <arahael> Besides, those investment accounts to have a profit/loss statement of their own, though they're very limited.
19:54:51 *** woodrec has joined #gnucash
20:01:15 <jralls> It's time for me to go make dinner.
20:01:24 *** jralls is now known as jralls_afk
20:01:40 <arahael> ENjoy - thanks for your help!
20:24:03 *** marusich has quit IRC
20:24:25 *** marusich has joined #gnucash
20:29:13 *** fekepp has quit IRC
20:29:56 *** marusich has quit IRC
20:30:14 *** marusich has joined #gnucash
20:57:28 *** SpacedOut has joined #gnucash
21:26:08 *** frakturfreak has quit IRC
21:30:32 *** User_ has quit IRC
21:58:27 *** woodrec has joined #gnucash
23:04:51 *** To7 has quit IRC
23:05:14 *** SpacedOut has quit IRC
23:17:30 *** pilotauto has joined #gnucash
23:21:54 *** josephcocoa has joined #gnucash
23:23:05 *** josephcocoa has quit IRC
23:25:18 *** josephcocoa has joined #gnucash