Re: [PATCH] builddeb: Fix build on non-Debian/Ubuntu distros

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

 



Hi Ben,

first, thanks for your review.

> On Fri, 2020-10-30 at 17:56 +0100, Petr Vorel wrote:
> > This fixes make bindeb-pkg for RPM based distros, which don't have
> > dpkg-dev (and thus not /usr/bin/dpkg-buildpackage), which sets
> > $DEB_RULES_REQUIRES_ROOT.

> > Fixes: 3e8541803624 ("builddeb: Enable rootless builds")

> This doesn't seem to fix a bug, and in fact it would introduce one.

> > Signed-off-by: Petr Vorel <petr.vorel@xxxxxxxxx>
> [...]
> > --- a/scripts/package/builddeb
> > +++ b/scripts/package/builddeb
> > @@ -37,7 +37,7 @@ create_package() {
> >                 | xargs -r0 md5sum > DEBIAN/md5sums"

> >         # Fix ownership and permissions
> > -       if [ "$DEB_RULES_REQUIRES_ROOT" = "no" ]; then
> > +       if [ -z "$DEB_RULES_REQUIRES_ROOT" -o "$DEB_RULES_REQUIRES_ROOT" = "no" ]; then
> >                 dpkg_deb_opts="--root-owner-group"
> >         else
> >                 chown -R root:root "$pdir"

> This is the wrong default behaviour; it will cause a regression with
> older versions of dpkg that don't support this option.
Sorry for wrong report. I tested it on Debian, but only on unstable.

> If you invoke this script directly and do not use dpkg-buildpackage
> (which I don't think is really supported anyway) then you must either
> do so as root or use fakeroot (as dpkg-buildpackage does by default).
Well, both bindeb-pkg and deb-pkg use dpkg-buildpackage.
Thus fakeroot is used by default.

/bin/sh -c dpkg-buildpackage -r"fakeroot -u" -a$(cat debian/arch) -d -b -nc -uc

The root cause is that while calling chown -R root:root "$pdir" is ok on Debian,
it's refused for fakeroot in openSUSE. I can run it with
DEB_RULES_REQUIRES_ROOT=no, that should fix that, but I'd prefer it were working
by default (although I admit not many people need it).
I reported it because the default setup worked before 3e8541803624.
I'll have a look what configuration (permission) is missing on openSUSE to allow
chown -R root:root for non-root user.

> Ben.

Kind regards,
Petr



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux