5 ms·
I see bugs all the time in a lot of the software I use daily. Or maybe missing simple features. On Linux, when also most of the software is open source, and al
by albertzeyer 5y ago
I see bugs all the time in a lot of the software I use daily. Or maybe missing simple features.
On Linux, when also most of the software is open source, and also myself being a developer who can read and write C++, and when the bug is often also quite obvious in the sense that I have a good understanding of what exactly went wrong, and I would be able to easily fix it, I really wish that this process of actually looking at the code and fixing it could be simplified and unified.
Linux (Ubuntu) can easily link a GUI window or binary to the corresponding package, and that can be linked to the source code. So I wish for some button on the window decoration like "open code in editor" or so. This would then check out the code and open some editor. And maybe even attach with a debugger live to the running application.
Then assuming I can identify and fix the bug, I would like to wrap up this fix automatically in some PR which gets send upstream and to Ubuntu.
Of course, there are many details in this idea, which need to be worked out.
E.g. should it just get the source code tar dump, or should it rather clone some Git repo and then checkout the right commit? The latter gives me the flexibility to also switch to the current main branch, or some other version. But then, not all software has a public Git repo.
And when I did some change to the code, how would I build this? Using the Linux package build system? Or just make or whatever make system the software provides? And is it easy to just stop the app and then start my custom compiled version, or does this need further setup? Or would this replace the system installation? For more system relevant packages like Xorg, systemd or so, this is trickier and riskier, but I'm fine to accept any risks, if there is an easy way to just rollback to the official version.
I did various fixes to various software packages along the years, and each time I do this process in a manual way: Making an initial bug report on Ubuntu, searching for the public repo, making an upstream bug report as well, cloning the repo, looking through the code to find the bug or where to implement some missing feature, then figuring out the software build system and setting this up, then the actual implementation, then preparing a patch, and attaching this to the Ubuntu and upstream bug report.
The point is, the actual fix, and also often finding the problem in the code is often just a couple of minutes, maybe needing 2-3 iterations, and then it's done. But all the other things take so much effort, that I keep just ignoring most bugs I see all the time, if they don't annoy me too much. Also, I need to actual get some other work to be done...
- Sander_Marechal 5y agoDo you mean `apt-get source <package>`? https://www.cyberciti.biz/faq/how-to-get-source-code-of-package-using-the-apt-command-on-debian-or-ubuntu/ https://www.cyberciti.biz/faq/how-to-get-source-code-of-pack...
- albertzeyer 5y agoYes this is one thing, but it misses many of the other things I mentioned, e.g. it would not check out the Git repo, not open an editor and automatically attaching a debugger to the running application, not helping me in preparing an upstream patch, bug report, etc. Ideally I want a single button on the app GUI window for this, sth like "edit this code".
- therealjumbo 5y agoSome day when I'm rich and bored, I hope to help a distro move in this direction. It'd be really really cool to have a fully, very easily, debuggable and then fixable system where you could debug any running code on the system, and patch it, and recompile and debug again, and decide you like your change, and then push the change as a PR to the distro, in a streamlined process. The distro (like arch) would then help/encourage/nudge you to sending your patch upstream also. Ubuntu et al, know where their sources come from after all, and how to build each package. I wonder if Arch or gentoo wouldn't be a better fit for this. I do have quite a bit of experience with yocto and buildroot, building distros for embedded systems. I'm joking about the rich and bored, part. I should just jump in and do it.
- dmurray 5y agoHang on, I'll just make a small PR porting all Linux desktop software to Smalltalk.