[SOLVED] Any need for a C and GTK+ developer?

About programming and getting involved with Linux Mint development
Forum rules
Topics in this forum are automatically closed 6 months after creation.
Locked
joyfulsquirrel

[SOLVED] Any need for a C and GTK+ developer?

Post by joyfulsquirrel »

Good Evening,

I'm looking for different ways to contribute to the Linux Mint project. Besides donating money the only skill I have that I think could be useful is I know how to program in C and GTK+. I've been writing custom command line tools in C for years and more recently started using GTK+ 3 to make GUIs. From reading the basic development guide the only extra skill I would need to pick up is github.

With a project so large I'm not sure where to begin or what needs worked on. If there is some need for some extra help with my limited skill set I would be happy to help.

[SOLVED]
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 2 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
User avatar
Pierre
Level 21
Level 21
Posts: 13216
Joined: Fri Sep 05, 2008 5:33 am
Location: Perth, AU.

Re: Any need for a C and GTK+ developer?

Post by Pierre »

you would need to be involved , over on github,
https://github.com/linuxmint/
as stated here:
viewtopic.php?f=120&t=363088
Image
Please edit your original post title to include [SOLVED] - when your problem is solved!
and DO LOOK at those Unanswered Topics - - you may be able to answer some!.
User avatar
xenopeek
Level 25
Level 25
Posts: 29598
Joined: Wed Jul 06, 2011 3:58 am

Re: Any need for a C and GTK+ developer?

Post by xenopeek »

The developer guide can give some guidance: https://linuxmint-developer-guide.readt ... en/latest/

The Mint Tools are written in Python and Gtk+. So if you're interested in Python that could be something to look at. Cinnamon is mostly written in C, with Cinnamon applets written in JavaScript. The X Apps are mostly written in C and Gtk+ so those could be the perfect fit with your experience.

It's a huge help if you could get involved with triaging open issues. Are there bugs you could help debug to find the cause? Maybe fix the bug. Are there feature requests you think you could implement? Start with something small. Comment and ping one of the developers that you could implement it to get a go ahead. I don't know enough about C/Gtk+ programming but I'm happy to get some feedback from the developers if you have an idea you want to discuss here first.
Image
joyfulsquirrel

Re: Any need for a C and GTK+ developer?

Post by joyfulsquirrel »

@Pierre @xenopeek

I installed the developer tools. Did a test clone and build of the mintinstall as per the instructions. Everything looks fine so far. I did visit github but I don't see any forums pages and I'm still trying to figure the layout so I wanna keep this thread open in the meantime.

My next questions is - When building and testing apps for bugs wouldn't this require some kind of virtual environment for testing? I'm not sure where to go from here. Keep in my mind programming experience has been with small personal projects such command line tools. Working on a project that encompasses an entire operating system seems intimidating to me.

I also am looking into python/javascript. Not sure if I'll pick it up. Really depends on how complicated they are too learn and how much free time I have.
User avatar
xenopeek
Level 25
Level 25
Posts: 29598
Joined: Wed Jul 06, 2011 3:58 am

Re: Any need for a C and GTK+ developer?

Post by xenopeek »

Good questions. I mostly do triaging, bugfixing and (smaller) changes on the Python programs which (because it's a scripting language) don't require compiling. So I talked about this a bit with the developers about it. Michael and Joseph answered, below my wording. Mistakes are mine.

Q: Do you need a virtual environment?
Both Michael and Joseph say they build on their main machine and simply overwrite the OS version of the program they're working on to test it. If they break it, it's not the end of the world. It's just that one program that no longer works. Say you break Nemo the file manager, you could install another file manager (or have one already installed as fallback) until you can fix your bug.

And the way the dpkg-buildpackage builds packages makes it so that Update Manager will want to overwrite it with the OS version. So if you get yourself in a bind you could simply open Update Manager, refresh and then install the update for the program you were working on and that will reset that program to the OS version, removing your changed version. Like an escape hatch :)

They also suggested you could save the .deb files created by the first dpkg-buildpackage for the program you will be working on. If you keep those .deb files, the original unmodified ones, in a separate directory you can simply reinstall them to reset the program to a working version if things go wrong.

But if you want you could install Linux Mint in a virtual machine and work from there until you feel more comfortable with the workflow.

Q: What is the build workflow you use for C programs?
After mint-build they start with doing a normal package build like with dpkg-buildpackage. That sets up all expected variables for the build, locations and so on. After the first build for any subsequent changes they simply run sudo ninja -C obj-x86_64-linux-gnu install for programs using Meson build, or sudo make install for older programs not using Meson build yet. Anything changed will be recompiled and installed in the appropriate places.

The ninja command is part of Meson build. It is really good about picking up changes and acting on them with subsequent builds. Autotools (for programs not using Meson build) is bad at that and you have to be more careful with it; some things—like modifying .h files or other non-.c files—will require a complete new build.

You already installed mint-dev-tools and that also installed ccache, which Meson build will automatically use to speed up subsequent compiles. It really helps compile speed.

(To figure out if a C program is using Meson build look for a "meson.build" file in the root of the GitHub project. For example Nemo and Xed are using Meson build.)

Q: How to get involved with development of C programs?
The developers think the C programs are hard to dip a toe into. These are large programs. Smaller programs are mostly done in Python. The best thing to start on is a small thing you'd like to see changed. Little UI changes are easiest. And you don't want to sink a ton of time into things that might not get accepted unless you are just wanting to learn. Gtk Inspector is useful for working on UI changes. Say at button should be clickable in a situation but it's not, you can open the inspector and inspect that button, maybe get its name or other details to let you find it in the code. You can open it by running GTK_DEBUG=interactive <program>.
Image
User avatar
xenopeek
Level 25
Level 25
Posts: 29598
Joined: Wed Jul 06, 2011 3:58 am

Re: Any need for a C and GTK+ developer?

Post by xenopeek »

joyfulsquirrel wrote: Mon Jan 17, 2022 1:48 pmI also am looking into python/javascript. Not sure if I'll pick it up. Really depends on how complicated they are too learn and how much free time I have.
I get that.

I think the first thing to spend some time on, if you want to, is finding your way around GitHub and git command.

There is no forum on the Linux Mint GitHub projects. Discussion happens on the issues there.
Image
Locked

Return to “Programming & Development”