public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
From: Petr Vorel <petr.vorel@gmail.com>
To: Ben Hutchings <ben@decadent.org.uk>
Cc: linux-kbuild@vger.kernel.org, Guillem Jover <guillem@hadrons.org>,
	Masahiro Yamada <masahiroy@kernel.org>
Subject: Re: [PATCH] builddeb: Fix build on non-Debian/Ubuntu distros
Date: Fri, 30 Oct 2020 19:57:55 +0100	[thread overview]
Message-ID: <20201030185755.GA559821@pevik> (raw)
In-Reply-To: <12abc099c30681e88107bb468ba1795f197f02f8.camel@decadent.org.uk>

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@gmail.com>
> [...]
> > --- 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

  reply	other threads:[~2020-10-30 18:58 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-30 16:56 [PATCH] builddeb: Fix build on non-Debian/Ubuntu distros Petr Vorel
2020-10-30 17:14 ` Ben Hutchings
2020-10-30 18:57   ` Petr Vorel [this message]
2020-11-02  8:35     ` Masahiro Yamada
2020-11-02 19:05       ` Petr Vorel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201030185755.GA559821@pevik \
    --to=petr.vorel@gmail.com \
    --cc=ben@decadent.org.uk \
    --cc=guillem@hadrons.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox