> On Apr 20, 2018, at 10:50 AM, Geert Janssens <[email protected]> > wrote: > > Op vrijdag 20 april 2018 19:23:36 CEST schreef jeffrey black: >> On 04/20/2018 11:44 AM, Robin Chattopadhyay wrote: >> >>> David- >>> >>> >>> >>> Thank you very much for this comprehensive tutorial for building from >>> source. I'm newish to Linux and I want to be able to do this but I've >>> been >>> confused. I managed to muddle through building 3.0 from source the >>> evening >>> before your email came. >>> >>> >>> >>> I have some lingering questions that maybe this group can help with: >>> After downloading the source and extracting the files, I made a second >>> directory for the build, so I had: >>> /home/foo/gnucash-3.0 >>> /home/foo/gnucash-build >>> >>> >>> >>> Is this a correct/reasonable/best practice? >>> >>> >>> >>> After I successfully ran cmake and make install and I can run gnucash, >>> what > if anything, can I or should I delete? Or should I keep the source >>> and build directories? >>> >>> >>> >>> I was running into problems with cmake when I set -D WITH_PYTHON=ON. I >>> didn't capture any of the error messages, but it IIRC it was complaining >>> about not having some test utility. I eventually switched to -D >>> WITH_PYTHON=OFF and I was able to proceed. Is it possible that this is >>> related to not installing the GTEST/GMOCK packages? >>> >>> >>> >>> Thanks, >>> Robin >>> >>> >>> >>> On Fri, Apr 20, 2018 at 3:35 AM, DaveC49 <[email protected]> >>> wrote: >>> >>> >>> >>>> Jeffrey, >>>> >>>> >>>> >>>> I will start form scratch. The first step is setting up for building. My >>>> apologies if I am teaching you to suck eggs. Linux Mint has an alias of >>>> apt > defined for apt-get. I am not sure if it is also defined in Ubuntu. >>>> If not substitute apt-get where I have apt in the following. >>>> >>>> >>>> >>>> # first download a copy of the gnucash source code gnucash-3.0.tar.bz2 >>>> from > # https://www.gnucash.org/download.phtml and extract the >>>> gnucash-3.0 source >>>> file. I use a folder called # Applications in my home directory for >>>> programs >>>> and libraries I build from scratch and usually keep the >>>> # sources there so i can easily rebuild if I strike a problem, but that >>>> is >>>> just a personal preference. >>>> >>>> >>>> >>>> #Open a terminal/bash shell and then cd to the extracted folder >>>> gnucash-3.0. >>>> >>>> >>>> >>>> # this loads compilers,dev tools etc as per >>>> https://packages.ubuntu.com/xenial/build-essential >>>> $sudo apt install build essential >>>> $sudo apt install cmake >>>> >>>> >>>> >>>> #the next step is to install the gnucash dependencies as listed in the >>>> README.dependencies file under the #gnucash-3.0 folder. This generally >>>> lists >>>> the minimum version of the libraries required. You will generally find >>>> that >>>> Ubuntu will in most cases load a later version. I will list the command >>>> to >>>> load followed by the required version as in that file as a #comment >>>> separated by a #. The list on https://wiki.gnucash.org/wiki/Building >>>> lists >>>> the development headers that are required but you may also need to load >>>> the > libraries as well >>>> >>>> >>>> >>>> sudo apt-get install libtool libltdl-dev >>>> #glib2 > v2.40.0 >>>> sudo apt-get install libglib2.0 libglib2.0-dev >>>> sudo apt-get install icu-devtools libicu-dev >>>> # boost > 1.50.0 >>>> sudo apt-get install libboost-all-dev >>>> # guile >=2.0.0 >>>> sudo apt-get install guile-2.0 guile-2.0-dev >>>> #swig >2.0.10 >>>> sudo apt-get install swig2.0 >>>> sudo apt-get install libxml2 libxml++2.6-dev >>>> sudo apt-get install libxslt1.1 libxslt1-dev >>>> sudo apt-get install xsltproc >>>> sudo apt-get install libgtest-dev >>>> sudo apt-get install gtk+3.0 >>>> sudo apt-get install libgtk-3-dev >>>> sudo apt-get install libwebkit2gtk-4.0-37 >>>> sudo apt-get install libwebkit2gtk-4.0-dev >>>> sudo apt-get install libdbi1 libdbi-dev >>>> # if you use a database backend rather than the default XML backaend >>>> # you need to load at least one of the following >>>> # and choose the one relevant to the database you want to use >>>> sudo apt-get install libdbd-pgsql #PostgreSQL database >>>> sudo apt-get install libdbd-mysql # MySQL database >>>> sudo -get install libdbd-sqlite3 #Sqlite database >>>> # these are needed if you use online banking tools >>>> sudo apt-get install libofx6 libofx4 libofx-dev >>>> dpkg -lsudo apt-get aqbanking-tools libaqbanking-dev >>>> # this is required on linux systems it may be already installed but will >>>> tell you if it is >>>> sudo apt-get install dconf-cli >>>> # >>>> # you can check out what versions of packages are installed or not using >>>> the >>>> following command >>>> dpkg -l | grep <package name> >>>> # here <package name> can be the actual package name or a substring. >>>> grep >>>> will extract anything >>>> # from the dpkg -l output which contains that substring >>>> # >>>> # The next step is getting googletest setup. The version from the Ubuntu >>>> repository is 1.7.0 and does not >>>> # contain gmock within the gtest download. V1.8.0 has both in the one >>>> repository and is a little bit easier >>>> # to setup. Google do not recommend using googlemock and googletest as >>>> shared dynamically linked >>>> # libraries because if a program is compiled with different compiler >>>> flags > from the libraries links to them >>>> # at run time they can fail something I did not appreciate but I haven't >>>> had >>>> any problems so far. >>>> # To set it up as recommended by Google and the developers, at a >>>> terminal >>>> opened in a suitable folder (e.g. $HOME/Applications is what I use) >>>> enter: > # >>>> git clone https://github.com/google/googletest.git >>>> # >>>> #this will create a folder googletest-master which has sub folders >>>> googletest and googlemock >>>> # >>>> cd googletest-master >>>> cmake -D BUILD_GTEST -DBUILD_GMOCK >>>> make >>>> # this creates the gtest and gmock libraries within the >>>> googletest-master >>>> folder but does not install them >>>> # as shared dynamically linked libraries. You then need to create >>>> environment variables pointing to the >>>> # top level folders containing these libraries >>>> export GTEST_ROOT=<path-to-googletest-master>/googletest >>>> export GMOCK_ROOT=<path-to-googletest-master>/googlemock >>>> # where <path-to-googletest-master> is in my case >>>> $HOME/Applications/googletest-master. This allows >>>> # CMake to find the googletest and googlemock libraries and include >>>> files >>>> to >>>> link into the program. >>>> # >>>> # At this point you should be ready to build gnucash. I prefer to >>>> install >>>> it >>>> in the /usr/local folder. This is >>>> # where the linux distros generally install it. If your previous version >>>> was >>>> installed from a Linux >>>> # distribution this is normally where it will be. It can also be >>>> installed >>>> under /opt. The essential step I >>>> # found was to ensure that all traces of any previous version of GnuCash >>>> were removed before doing >>>> # the build. >>>> #If you previously had a version from the Linux distro >>>> sudo apt-get remove gnucash >>>> # should achieve this. If you built a previous version from sources and >>>> still have the build sources >>>> # change to the build directory (may be the source directory (e.g. >>>> gnucash-2.6.19) or may be directory >>>> # named build, my-build or similar under the source directory) and type >>>> at >>>> the terminal >>>> sudo make uninstall >>>> # to check whether you have been succesful or not type >>>> whereis gnucash >>>> # If nothing is returned then you have removed it successfully. If >>>> whereis >>>> returns any of >>>> /usr/local/bin/gnucash >>>> /usr/local/etc/gnucash >>>> /usr/local/lib/gnucash >>>> # then those directories should be be removed. In this case use >>>> rm -r /usr/local/bin/gnucash >>>> rm-r /usr/local/etc/gnucash >>>> rm -r /usr/local/lib/gnucash >>>> # >>>> # now open a terminal at the toplevel gnucash-3.0 folder >>>> mkdir mybuild >>>> cd mybuild >>>> cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_AQBANKING=OFF -D >>>> WITH_OFX=ON .. >>>> # >>>> # You will find a full list of the option switches( i.e. -D WITH_...) >>>> with >>>> their default values towards the top >>>> # of the Wiki Build page https://wiki.gnucash.org/wiki/Building. I >>>> required >>>> the OFX support for loading >>>> # OFX files but don't use the AQBANKING support as Australian banks >>>> currently don't allow direct access. >>>> # if you are using a database backend e.g. you would require -D >>>> WITH_SQL=ON > # >>>> # cmake should do a lot of checks as it runs and issue sttus messages >>>> and >>>> it >>>> will stop if it encounters any >>>> # problems. At this point come back with the terminal output and I (if >>>> it >>>> is >>>> failry simple) or perhaps one of >>>> # the developers can help sort it out. If it succeeds you will get a >>>> mesaage >>>> saying that it is writing the >>>> # make files into the mybuild directory you created above. Note there >>>> was >>>> some discussion of the >>>> # mybuild directory having to be outside the gnucash-3.0 directory. This >>>> is > the case for building the >>>> # documentation I believe, but is not the case for building GnuCash >>>> itself. > # If cmake completes successfully type at the terminal >>>> make >>>> # to build Gnucash. If make has any errors come back with the terminal >>>> output. The only error i had here >>>> # was with not having uninstalled the previous version fully. If make >>>> completes without error then >>>> #type in the terminal >>>> sudo make install >>>> # which will install Gnucash >>>> whereis gnucash >>>> # should then return the following >>>> /usr/local/bin/gnucash >>>> /usr/local/etc/gnucash >>>> /usr/local/lib/gnucash. >>>> >>>> >>>> >>>> If you have previously installed from the menu you should have a menu >>>> item >>>> which points to /usr/local/bin/gnucash. If not create a new menu item >>>> for >>>> Gnucash and put gnucash %f as the command and if you can locate a >>>> gnucash >>>> icon set the icon to point to it. There is one in the sources at >>>> ~/gnucash-3.0/data/pixmaps/gnucashicon.ico which you could copy to where >>>> your system installs icons. I think it normally should be copied on >>>> installation but there have been a few posts about it not being copied >>>> possibly on Windows and Macs. >>>> >>>> >>>> >>>> If you have any problems come back on the forum and we will try to sort >>>> it >>>> out from there. >>>> >>>> >>>> >>>> Good luck >>>> >>>> >>>> >>>> David >>>> >>>> >>>> >>>> >>>> >>>> >>>> ----- >>>> David Cousens >>>> -- >>>> Sent from: >>>> http://gnucash.1415818.n4.nabble.com/GnuCash-Dev-f1435356.html >>>> _______________________________________________ >>>> gnucash-devel mailing list >>>> [email protected] >>>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel >>>> >>>> >>>> >>> _______________________________________________ >>> gnucash-devel mailing list >>> [email protected] >>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel >>> . >>> >>> >> >> David: >> >> No offense taken. It's not the first time I have had to have someone >> hold me by the hand and walk me trough the obvious stuff to build a >> program. >> >> I will continue to use the default data structure files. SQL and I have >> a tendency to argue with each other. >> >> I will give your tutorial a try, in a few days. >> >> Question: >> >> I would like to run any builds I do under a different program name, >> keeping a stable version for backup use. Any idea of how much of a hole >> I would be digging myself into? Not as GnuCash but; say MyGnuCashBuild. >> >> My guess is I would need to set up a VM to have different versions on >> the same system? I would probably be better off to use my builds on >> this Ubuntu tower and continue with the stable on my laptop, with >> separate data files. >> >> --JEffrey Black M.B.A > > I have always liked that idea, but never got around testing whether this is > achievable. > > Here are a few possible avenues depending on how far you want to go and how > much you like to experiment. > > The easy method is to create a linux softlink named MyGnuCashBuild which > points at your locally built gnucash executable. > If you put that softlink in a directory that's on your path, you can start > MyGnuCashBuild directly from the command line. > > But other than the name to use to start gnucash, this doesn't change anything > else. > > As you built gnucash yourself, you could also rename the executable file > itself directly. I think this is picked up at a couple of places in the GUI, > but definitely not everywhere. > > Next if you want to have gnucash appear twice with a different name in your > desktop environment's menus you can create a personalized gnucash.desktop > file > which you can store in $HOME/.local/share/applications. This was explained by > me and Colin Law a couple of days ago on the gnucash-devel or gnucash-user > mailing list. > > And lastly (totally untested) you could try and configure your gnucash build > to use a custom package name by adding -DPACKAGE=MyGnuCashBuild to your cmake > invocation and rebuilding. The PACKAGE macro is used in *a lot* of places to > determine names of paths, environment variables, dconf settings and so on. If > it works (that is if the code never assumes a hardcoded "gnucash" in any of > those spots) you will have a completely different application, looking for > different settings in dconf and on the file system ensuring you never alter > anything that's touched by the stable gnucash. As said, this is totally > untested so it may not work at all. I'd be interested in the results though > so > if you feel like doing the experiment, be sure to report back!
You can also set CMAKE_INSTALL_PREFIX=$HOME/.local and add $HOME/.local/bin to $PATH. Regards, John Ralls _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
