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

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

 



On Sat, Oct 31, 2020 at 3:58 AM Petr Vorel <petr.vorel@xxxxxxxxx> wrote:
>
> 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



I do not know what is different on openSUSE, but
my understanding is like follows:



For old dpkg tools (which does not know "Rules-Requires-Root: no"),
$DEB_RULES_REQUIRES_ROOT is empty.
-> We run chown -R root:root like before.


For new dpkg tools (which knows "Rules-Requires-Root: no"),
$DEB_RULES_REQUIRES_ROOT is "no".
-> We pass --root-owner-group to dpkg-deb.







--
Best Regards
Masahiro Yamada



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

  Powered by Linux