On Thursday, November 20, 2025 4:44:14 PM Mountain Standard Time Johannes 
Schauer Marin Rodrigues wrote:
> If you run sbuild via gbp then gbp will create a source tarball for you,
> possibly from the pristine-tar branch. gbp will then run "sbuild" which will
> call "dpkg-source -b ." which will re-create the source on the *outside*. If
> you also have --source or $build_source=1, then dpkg-buildpackage will
> re-generate the source *again* but *inside* the chroot. You said you can
> confirm that it does not repack it but I just confirmed the opposite and the
> upstream tarballs differ.

Somewhat what I am seeing is different that what you are describing.  Here is 
what I see with both the $build_source = 1 and $source_only_changes = 1.  
While I don’t dispute that it is doing something to rebuild the source 
*inside* the sbuild, it doesn’t modify the source *outside* the sbuild, and 
the resulting .dsc files are identical after two successive builds.  In other 
words, there might be situations where these options could cause problems with 
other workflows that I am not familiar with, but when using gbp I don’t yet 
understand how this option causes any problems (except for perhaps using a few 
extra CPU cycles).

I hope the following output is helpful in understanding what I see.

$ ls -la
total 20
drwxrwxr-x  5 soren soren 4096 Nov 21 20:30 .
drwxr-xr-x 12 soren soren 4096 Nov 12 20:19 ..
drwxrwxr-x  7 soren soren 4096 Jan 30  2025 privacybrowser
drwxrwxr-x 19 soren soren 4096 Jan 30  2025 Releases
drwxrwxr-x  2 soren soren 4096 Jun 26 10:10 Review


The parent directory is empty of files (only three directories) before the 
first build.


$ cd privacybrowser/

privacybrowser$ gbp buildpackage
gbp:info: Creating /home/soren/Debian/privacybrowser/
privacybrowser_0.8.orig.tar.xz
gbp:info: Performing the build
...


gbp generates the .orig.tar from pristine-tar.


privacybrowser$ cd ..

$ ls -la
total 12436
drwxrwxr-x  5 soren soren    4096 Nov 21 20:33 .
drwxr-xr-x 12 soren soren    4096 Nov 12 20:19 ..
drwxrwxr-x  7 soren soren    4096 Jan 30  2025 privacybrowser
-rw-r--r--  1 soren soren 1138560 Nov 21 20:34 
privacybrowser_0.8-2_amd64-2025-11-22T03:31:45Z.build
lrwxrwxrwx  1 soren soren      53 Nov 21 20:31 
privacybrowser_0.8-2_amd64.build -> 
privacybrowser_0.8-2_amd64-2025-11-22T03:31:45Z.build
-rw-r--r--  1 soren soren   20069 Nov 21 20:33 
privacybrowser_0.8-2_amd64.buildinfo
-rw-r--r--  1 soren soren    2115 Nov 21 20:33 
privacybrowser_0.8-2_amd64.changes
-rw-r--r--  1 soren soren 1899736 Nov 21 20:33 privacybrowser_0.8-2_amd64.deb
-rw-r--r--  1 soren soren   13804 Nov 21 20:33 
privacybrowser_0.8-2.debian.tar.xz
-rw-r--r--  1 soren soren    1581 Nov 21 20:33 privacybrowser_0.8-2.dsc
-rw-r--r--  1 soren soren    1427 Nov 21 20:33 
privacybrowser_0.8-2_source.changes
-rw-rw-r--  1 soren soren 1699756 Nov 21 20:31 privacybrowser_0.8.orig.tar.xz
-rw-rw-r--  1 soren soren     833 Nov 21 20:31 
privacybrowser_0.8.orig.tar.xz.asc
-rw-r--r--  1 soren soren 7921264 Nov 21 20:33 privacybrowser-
dbgsym_0.8-2_amd64.deb
drwxrwxr-x 19 soren soren    4096 Jan 30  2025 Releases
drwxrwxr-x  2 soren soren    4096 Jun 26 10:10 Review

$ cp privacybrowser_0.8-2.dsc privacybrowser_0.8-2.dsc.old


Here a copy of the dsc is made to compare it against the second build.


$ cd privacybrowser/

privacybrowser$ gbp buildpackage
gbp:info: Performing the build
...


gbp does not regenerate the .orig.tar because it already exists.


privacybrowser$ cd ..

$ ls -la
total 13552
drwxrwxr-x  5 soren soren    4096 Nov 21 20:37 .
drwxr-xr-x 12 soren soren    4096 Nov 12 20:19 ..
drwxrwxr-x  7 soren soren    4096 Jan 30  2025 privacybrowser
-rw-r--r--  1 soren soren 1138560 Nov 21 20:34 
privacybrowser_0.8-2_amd64-2025-11-22T03:31:45Z.build
-rw-r--r--  1 soren soren 1138553 Nov 21 20:39 
privacybrowser_0.8-2_amd64-2025-11-22T03:37:17Z.build
lrwxrwxrwx  1 soren soren      53 Nov 21 20:37 
privacybrowser_0.8-2_amd64.build -> 
privacybrowser_0.8-2_amd64-2025-11-22T03:37:17Z.build
-rw-r--r--  1 soren soren   20069 Nov 21 20:38 
privacybrowser_0.8-2_amd64.buildinfo
-rw-r--r--  1 soren soren    2115 Nov 21 20:38 
privacybrowser_0.8-2_amd64.changes
-rw-r--r--  1 soren soren 1899736 Nov 21 20:38 privacybrowser_0.8-2_amd64.deb
-rw-r--r--  1 soren soren   13804 Nov 21 20:38 
privacybrowser_0.8-2.debian.tar.xz
-rw-r--r--  1 soren soren    1581 Nov 21 20:38 privacybrowser_0.8-2.dsc
-rw-r--r--  1 soren soren    1581 Nov 21 20:35 privacybrowser_0.8-2.dsc.old
-rw-r--r--  1 soren soren    1427 Nov 21 20:38 
privacybrowser_0.8-2_source.changes
-rw-rw-r--  1 soren soren 1699756 Nov 21 20:31 privacybrowser_0.8.orig.tar.xz
-rw-rw-r--  1 soren soren     833 Nov 21 20:31 
privacybrowser_0.8.orig.tar.xz.asc
-rw-r--r--  1 soren soren 7921264 Nov 21 20:38 privacybrowser-
dbgsym_0.8-2_amd64.deb
drwxrwxr-x 19 soren soren    4096 Jan 30  2025 Releases
drwxrwxr-x  2 soren soren    4096 Jun 26 10:10 Review


Notice, at this point, that the timestamp on the .orig.tar.xz did not change, 
so it was not modified by the $build_source = 1 option.


$ diff -s privacybrowser_0.8-2.dsc privacybrowser_0.8-2.dsc.old
Files privacybrowser_0.8-2.dsc and privacybrowser_0.8-2.dsc.old are identical


I fell like somehow I am not understanding what your concerns are with 
'$build_source = 1'.  I assume that your concerns are valid, as you know much 
more about the internals of sbuild than I do.

In the end, my only concern is that, as I posted earlier, without this option 
the generated _amd64.changes fails to do an upload to the NEW queue because it 
is missing entries.  For some reason, when '$build_source = 1' is used, it 
does generate a complete _amd64.changes that can be used to upload to NEW.

-- 
Soren Stoutner
[email protected]

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to