I'd like to know how bug fixing exactly works in Linux distributions. I mean, after all a distro is made of opensource software made by external developers, and then packaged by the distro's maintainers. So why every distro has it own bug tracker? Shouldn't these bugs be submitted to the original authors of such softwares?
1 Answers
(I'll refer to original authors or original software as upstream authors and upstream software because that's what I'm used to calling them.)
From the end-user's perspective, it's nice to have a single place to report bugs, rather than having to sign up for accounts in various upstream bugtrackers for all the software they use.
From an upstream author's perspective, it's nice to be shielded from a distribution's users' bug reports, for a couple of reasons:
- the distribution's maintainers may introduce bugs themselves (or bugs may occur because of interactions between a distribution's packages), it shouldn't be up to the upstream author to fix those;
- the distribution may have requirements that the upstream software author doesn't care about or can't handle (e.g. various hardware architectures).
Note that this doesn't mean that bugs which are in the upstream software don't get forwarded; if a user files a bug in a distribution bug tracker, and the bug is upstream's responsibility, then the bug will be forwarded to the upstream bug tracker. But usually the distribution maintainer will take care of that. For complex bugs the user may well be instructed to follow up upstream though, to avoid a middle-man. Distribution bug trackers support this quite well, and will update a bug's status automatically as it changes in the upstream bug tracker.
From a distribution maintainer's perspective, it's necessary to have some distribution-specific bug tracker to track work to be done in the distribution itself (library version changes, new toolchains, new architectures, new distribution tools...).
In addition, in many cases distributions provide support for older versions of packages, where bugs may still exist even though they have already been fixed by the upstream author in newer versions of the software. In that situation, it's somewhat annoying for users to ask upstream authors to fix the bugs, since they're already fixed from upstream's perspective; if the bug is sufficiently annoying, it should be up to the distribution's maintainers to backport the fix. (This is debatable for security fixes in important packages; many upstream provide security fixes for older releases themselves.)
A further factor to take into account is that there may no longer be an upstream for some pieces of software which are still important; this was the case for a long time for cron for example. If distributions didn't have their own bug trackers there would be nowhere for users to report bugs in such pieces of software.
In most projects all this tends to happen quite naturally, in a friendly fashion: distribution maintainers help upstream fix bugs, and vice versa, and distribution maintainers share bug fixes with other distributions.
- 411,918
- 54
- 1,065
- 1,164
-
Thank you, you solved my doubt very well. Can you please explain to me how distros maintainers can introduce bugs themselves? Isn't the duty of a maintainer to just compile the programs from source and create packages ? (I mean, when there is no need to port that software on a new arch). Is it true that maintainers also add custom code on the softwares that they build from source code ? – Luca D'Amico Jun 22 '15 at 21:46
-
1The core duty of a maintainer is as you say, ensure the programs build from source and package them. The latter generally involves adding scripts of various kinds, and they can be buggy; sometimes making a package integrate well involves changing code, and that can introduce bugs too. Backporting fixes can introduce bugs, as can varying library dependencies... When maintainers add custom code though that can always be readily identified (the patches are available in the packages' source). – Stephen Kitt Jun 22 '15 at 22:02