[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#1016575: sbuild aborting when dh-python isn't installed locally



Hi Matthias,

no idea why you CC-ed debian-devel@lists.debian.org with your bug. This is a
bug about using Debian so the correct mailing list would be
debian-user@lists.debian.org. The mailing list you chose is for the development
of Debian.

I'm closing this bug because what you experienced is actually a feature.
Explanation below.

Quoting matthias.geiger1024@tutanota.de (2022-08-03 10:04:32)
> I just did a clean testing install and set up sbuild as usual. When trying to
> build a package the Build-depends: on dh-python sbuild aborts:
>  
> sbuild
> dpkg-source: info: using options from secrets-6.2/debian/source/options: --extend-diff-ignore=^[^/]*[.]egg-info/
> dh clean
> dh: error: unable to load addon python3: Can't locate Debian/Debhelper/Sequence/python3.pm in @INC (you may need to install the Debian::Debhelper::Sequence::python3 module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at (eval 13) line 1.
> BEGIN failed--compilation aborted at (eval 13) line 1.
> 
> make: *** [debian/rules:4: clean] Error 255
> E: Failed to clean source directory /home/werdahias/Packaging/secrets-6.2 (/home/werdahias/Packaging/secrets_6.2-1.dsc)
> 
> This shouldn't be an issue as sbuild *should* just install dh-python itself.
> It worked once I installed dh-python on the host machine.

No, sbuild should *not* just install dh-python on your host system. There are
multiple reasons for that but one is, that when you run sbuild, the expectation
is, that this will not change your host system. That's a big part of the reason
why many people use sbuild: so that the things that are needed to build a
source package do not clutter their host system but are instead installed into
a fresh buildd chroot environment. Another reason why sbuild cannot even do
this in principle is, because sbuild is not run as root. So it doesn't even
have the necessary privileges to install anything on your host system -- which
is a good thing!

To go a bit further into why what you experience is a feature and not a bug:
The usual input to sbuild is a source package (a *.dsc). From what I can see,
you are running sbuild without any arguments from within an unpacked source
package directory (I assume that's what /home/werdahias/Packaging/secrets-6.2
is). This would usually not be possible because an unpacked source package is
not a source package. Because the input to sbuild is a source package, you
first have to build said source package from your unpacked source package tree.
To make this as convenient as possible for sbuild users, sbuild has a feature
that allows it to build the source package automatically if you run it from
within an unpackaged source package tree. As part of building that source
package it is running the "clean" target of your debian/rules and in your case,
the clean target needs dh-python installed which you do not have installed and
thus results in the failure you observe. I can think of two ways to fix this:

 a) give up on this convenience feature of sbuild and build the *.dsc yourself
 in any way you want and then feed that to sbuild

 b) run sbuild with --no-clean-source which will not run the "clean" target and
 thus not require dh-python in your case. But beware that this means that you
 are responsible for making sure that your unpacked source directory is clean

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature


Reply to: