[haiku-development] Re: Help regarding GSoC idea : Tracker add-on for a version control system

  • From: Owen Pan <owenpiano@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Thu, 8 Mar 2018 23:56:41 -0800

Please see https://github.com/HaikuArchives/MoleSvn/pull/1

A few points:

* It's better to use Paladin to convert the existing MoleSVN.proj file to a
Makefile, which would result in:
https://github.com/HaikuArchives/MoleSvn/pull/1/commits/65fc507e0e99fd01b5d2349b114979eb74f670a8
You can then edit the Makefile to make MoleSVN to compile.

* When you use Paladin to generate the Makefile, you will get this warning:
[image: Inline image 1]
This is why you got the "Symbol not found loading Add-On MoleSVN" error. In
fact, if you change TYPE from SHARED to APP as I did, you will get lots of
unreferenced symbols at link time. I commented out #define CLUE in a couple
of files to work around this problem.

* The resource compiler rc can't read or decompile MoleSVN.rsrc file, so I
commented out the corresponding throw statement to allow the application to
start up. If you copy it to ~/config/non-packaged/add-ons/Tracker and right
click on a folder, you will at least get a menu:
[image: Inline image 2]
Click on Checkout will bring up this window:
[image: Inline image 4]

On Thu, Mar 8, 2018 at 6:18 AM, Hrishi Hiraskar <hrishihiraskar@xxxxxxxxx>
wrote:

It would be helpful to share your changes (maybe make a fork of the
project on github and push the changes there) so we can have a closer look
at it.

The changes are pushed to https://github.com/Hrily/MoleSvn

I would guess that you removed this from main.cpp:
#include <be/add-ons/tracker/TrackerAddon.h>

This header file (https://git.haiku-os.org/
haiku/tree/headers/os/add-ons/tracker/TrackerAddOn.h) is very important,
it declares process_ref as an extern "C" function. If this declaration is
missing, the code will still compile but the function will be exported with
C++ linkage, and Tracker will be unable to find it.

The line should however be modified to remove "be" from the path:
#include <add-ons/tracker/TrackerAddon.h>

Yes, I did the same...


One thing to mention is, I didn't use any of the files MoleSVN.proj and
MoleSVN.rsrc.
I didn't know how to use .proj, but as there was RSRC section where I put
up the .rsrc file, but then it lead to compilation error saying IO Error -
cannot read the file.

Can this lead to MoleSVN not executing?

On Thu, Mar 8, 2018 at 5:08 PM Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
wrote:

8 mars 2018 11:24 "Hrishi Hiraskar" <hrishihiraskar@xxxxxxxxx> a écrit:

Finally, compilation successsfull :D

I removed the boost/lexical_cast from the code. Now, I can compile
MoleSVN with gcc2.

But now I have a different problem.
I copied the executable to ~/config/non-packaged/add-ons/Tracker/
Now I get MoleSVN in Tracker Addons

But on selecting it, following error is shown:
Error Symbol not found loading Add-On MoleSVN

Any idea on why is this error occuring???

It would be helpful to share your changes (maybe make a fork of the
project on github and push the changes there) so we can have a closer look
at it.

I would guess that you removed this from main.cpp:
#include <be/add-ons/tracker/TrackerAddon.h>

This header file (https://git.haiku-os.org/haiku/tree/headers/os/add-ons/
tracker/TrackerAddOn.h) is very important, it declares process_ref as an
extern "C" function. If this declaration is missing, the code will still
compile but the function will be exported with C++ linkage, and Tracker
will be unable to find it.

The line should however be modified to remove "be" from the path:
#include <add-ons/tracker/TrackerAddon.h>

--
Adrien.


PNG image

PNG image

PNG image

Other related posts: