On 6-Feb-2016 it was third Fedora meetup at pune at the same venue as earlier meetups “K 104, Jasminium, Magarpatta City Pune”. Event host was Kushal Das.
For this meetup the ajenda was “Debugging bugs in different applications written in C/Python in Fedora”. But after last meetup Amol and me had discussed about writing a tool like “Ip messenger” (our purpose was for file transfer) for linux which will be a nautilus plugin; so we decided that in this meetup we will do it.
As always Siddhesh and Kushal was there to mentor us. When we spoke to them about our idea of writing nautilus extension, Kushal suggested that instead of writing the whole tool from the scratch we should get an existing tool “DC++” working on fedora. I also liked that idea. since long time “DC++” wasn’t packaged for fedora. The last working package of DC++ for Fedora was for Fedora 16 and currently I’m using Fedora 23. So we (me and Amol) started searching for DC++ source code.
Mean while Kushal found a bug from bugzilla which was “Integer overflow” in some GPU program and discussion about this bug started.
Siddhesh elaborated “Integer overflow” in a very very simple way. He explained very fundamental and very crutial concepts at this point.
- “What is an Integer?”
- “Difference between signed and unsigned Integers”
- “What happens when a signed integer exceeds the limit of 31 bits?”
- and Finally “Different standards of representing Integers and Floats”
By this time I had found the source code for DC++ here and I already had started compiling it.
the problem was it was for windows. It is using Boost (portable C++ source libraries) and Mingw-w64 (GCC for Windows 64 & 32 bits). As both boost and Mingw works on linux; so initially I didn’t face any problem. But later on the compilation failed.
Then I realised that the source code wasn’t for linux. I found another fork of DC++ “LinuxDC++“ for linux.
LinuxDC++ also had same dependencies as DC++ (for windows) so I already had installed everything requied to compile it.
I started compilation and withing no time it was done. I got the executable. Everything worked just fine.
Now I had got LinuxDC++ running on Fedora 23 the next step is to package it for fedora. Currently I’m looking into that. As I’ve never done rpm packaging before it’s taking me a while to do that.
I’m very happy as from this meetup I had learnt about few totally new concepts and tools.
Since we had decided to make somthing like IP messenger. I thought once I should see the source code for IP messanger. So I downloaded the source code for “g2ipmesg” which is a clone of Ip messenger for gnome enviornment. Last time it was packeged for ubuntu 11.
It is written in c and for GUI Gtk is used. After a couple of days of digging into the code, finally I got it running on Ubuntu14.04.
For this I had to disable the gnome panel applet (the system tray) and remove the build dependency on libpanel-applet2-dev.
you can find it on github.
All of this was possible because of Fedora meetup. Thank you Sayan, Kushal and Praveen Kumar for organizing the meetup. Also thank you Siddhesh for giving more and more insites of C and how stuff works at the lower level in the computer.