Hi William,

Quoting William Blough (2019-08-14 02:52:00)
> To reproduce-
> 
> 1. For an arbitrary package (I used hello in my example), create a new
> debian/changelog entry with the distribution set to UNRELEASED.
> 
> 2. build with sbuild, specifying a target distribution, and enable lintian:
>     sbuild -d unstable --run-lintian --lintian-opts=-v
> 
> 3. Note from the output/log that lintian *does not* emit the
> "unreleased-changes" tag.
> 
> 4. Find the .changes file produced by the sbuild build
> 
> 5. Run lintian against the changes file from 4, with the same options
> used for linitan in 2:
>     lintian hello_2.10-2.1_amd64.changes -v
> 
> 6. Note that lintian *does* emit the "unreleased-changes" tag for the
> changes file produced by the earlier build with sbuild.
> 
> 
> Expected output:
> "unreleased-changes" tag emitted by lintian when run under sbuild and when 
> run manually
> 
> Observed output:
> "unreleased-changes" tag only emitted by linitan when run manually.  Tag
> not emitted when lintian run by sbuild
> 
> 
> I've attached a build log (with debug) for an example build, and a terminal
> session log for the related manual lintian run.
> 
> I've verified that this happens on both unstable and buster (inside
> chroots), with their respective versions of sbuild and lintian. I
> haven't tried earlier suites or versions.
> 
> 
> I'm not 100% certain that this is an sbuild issue, but I've done
> everything I can think of to rule out my configuration.  And since
> lintian seems to produce the correct behavior outside of sbuild, I
> thought this would be the logical place to start the bug report.
> 
> I'd appreciate any insight you can give, and would be happy to help
> test/troubleshoot further.

thanks a lot for your excellent bug report!

Unfortunately, the effect you are seeing is not a bug but a feature back from
the time before I started maintaining sbuild. To understand the situation, it
is important to know what the -d option that you are using above actually does.
>From the man page:

       -d, --dist=distribution
              Explicitly set the distribution for the package build. This will
              be  selecting  the correct chroot to use and also sets the value
              of the Distribution field in the created .changes file.  Setting
              this  option  is  necessary  when giving sbuild a .dsc file or a
              plain source package name to build. In the latter case it speci‐
              fies  the distribution the source package is fetched from.  This
              command line option sets the  DISTRIBUTION  configuration  vari‐
              able. See sbuild.conf(5) for more information.

As you can see, this will set the Distribution field and thus the value will
not be UNRELEASED anymore and thus lintian does not complain anymore. If you
look closely at the output of sbuild, you will see that the "Distribution"
value is highlighted in yellow. This is to indicate that the value was changed.

Usually you should *not* use the -d parameter but instead set up your schroot
config such that you don't need the -d parameter. This can be automated by
specifying --alias=UNRELEASED when running sbuild-createchroot. What that
option effectively does is to set aliases=UNRELEASED in the corresponding
config file in /etc/schroot/chroot.d/.

Do you see any way sbuild could improve to be less confusing?

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to