I have used Debian GNU/Linux for almost two decades. I was an adept user when I started to attend the DebianNYC meetup and took a workshop on Debian packaging. I was both in awe about the level of technical sophistication behind the project but also upset I had missed out on this knowledge for so long:

By far the most complex part of going from "here is the source code" to have an useful running program is the build system, it is the capability to have all the prerequisite tools and libraries installed in the right versions to take the source code and transform it into a program that runs with all its data in the places where it should be. This problem is solved for all the software that is part of the Debian project.


With some easy commands (you might need to use sudo):

apt-get build-dep firefox-esr
apt-get source firefox-esr
cd firefox-esr-91.8.0esr
./debian/rules binary


will install all the required libraries, compilers and intermediate tools to build a Web browser (one of the most complex pieces of software these days) and proceed to compile it from scratch, creating the required .deb to install it in the system.

That means that users can modify the software in their own machines, for their own purposes. It would be great if this information is made available to users that know some programming (a very common occurrence these days) so they can learn to patch the programs they use.