Dear Debian Developers,

(I am just a Debian user with a few experience on Debian packaging.)
On Mon, 24 Jun 2024 09:12:54 -0700 Russ Allbery <r...@debian.org 
<mailto:rra%40debian.org>> writes:
> For the third purpose, I believe only weak intent information can be
> derived from the uploader signature today. It is common practice in Debian > to verify the Git tree that one wants to upload, run a package build step,
> and then blindly sign the resulting source package. [...]

I feel this is somehow ... wrong. I think, *currently*, it should be a moral obligation for a DD to make sure the resulting source package is correct.
Let me first start from binary Debian packages. I have encountered bugs 
on two packages that render the packages completely unusable. (One of 
the bug is from a NMU.) The bugs were probably due to changes in the 
chaintools. Reproducible builds are useless to detect them as the same 
chaintools will result in the same binary package. Both bugs can easily 
detected by automatic tests, but obviously there was no automatic test 
or the automatic tests did not cover these cases. And I think there are 
packages needed actually using them to test, which I mean install the 
packages and start the software. For example start a browser to open a 
website, play a video using a video player, etc. In the cases of these 
bugs, obviously the Uploaders didn't actually start the program to test 
the binary packages as using the program on a simple input will 
immediately result in error.
Back to source Debian packages. Consider a workflow that there are no 
d/patches/ under the DD's working directory and those patches under 
d/patches/ are generated by dgit when building source package. Now 
hypothesize that there is a bug in dgit which will build a source 
package without d/patches/. If the DD blindly sign and upload the 
resulting source package, the defected source package will go into the 
archive. There are many messages mentioned to-be-implemented 
reproducible builds for source packages, but I think reproducible builds 
are useless here, similar to situation in the previous mentioned bugs. 
And I didn't see anyone mentioned something like 
automatic-souce-package-tests in threads around tag2upload, so to detect 
the defected source package it may need someone actually looks into the 
source package. I think it is naturally assumed it should be the DD to 
do the check. Although many people claim the source package is an build 
artifact, I think the source package is still supposed can be read by a 
human, unlike binary packages. I think it is true especially for patches 
under d/patches/ as they are very similar to git commits.
The #4 article of the Debian Social Contract said "We will be guided by 
the needs of our users [...]". I believe the needs of most Debian's 
users are binary packages, not git repositories. I guess many Debian's 
users do not realize there are git repositories for corresponding binary 
packages, and some of them may even do not have a idea about what is 
git. Many people claim that a DD's intent is in git repositories when 
the DD use git to maintain a package. However due to possible bug/change 
in the chaintools, malwares, mistakes or other things, the DD's intent 
may not present in the resulted source/binary package. And *currently* 
in buildd, binary packages are still built from source packages. So I 
think it should be a moral obligation for a DD to make sure his/her 
intent is present in the source packages (and finally present in the 
binary packages).[1] I know that DDs are volunteers and it is impossible 
for them to perform a thorough inspection of the source package. But I 
feel that it is lack of moral obligation that a DD blindly sign the 
resulting source package without even spend a few second look what is 
inside it, if he/she knows the resulting source package may differ from 
his/her intent. And for tag2upload, I think there is the same moral 
obligation for a DD even though he/she do not need to sign the source 
package.
* To be clear, I think the moral obligation for source package will not 
be required if buildd can build binary packages directly from git, i.e. 
without source packages.
[1] Although these checks may be tedious and error-prone, I think, 
unfortunately, it still need a human to do them.
Regards,
Jun MO

Reply via email to