builddeb: Enable rootless builds
authorGuillem Jover <guillem@hadrons.org>
Sun, 20 Sep 2020 22:25:54 +0000 (00:25 +0200)
committerMasahiro Yamada <masahiroy@kernel.org>
Fri, 9 Oct 2020 14:59:16 +0000 (23:59 +0900)
This makes it possible to build the Debian packages without requiring
(pseudo-)root privileges, when the build drivers support this mode
of operation.

See-Also: /usr/share/doc/dpkg/rootless-builds.txt.gz
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/package/builddeb
scripts/package/mkdebian

index 30e8c6a..6474084 100755 (executable)
@@ -26,6 +26,7 @@ if_enabled_echo() {
 
 create_package() {
        local pname="$1" pdir="$2"
+       local dpkg_deb_opts
 
        mkdir -m 755 -p "$pdir/DEBIAN"
        mkdir -p "$pdir/usr/share/doc/$pname"
@@ -36,14 +37,18 @@ create_package() {
                | xargs -r0 md5sum > DEBIAN/md5sums"
 
        # Fix ownership and permissions
-       chown -R root:root "$pdir"
+       if [ "$DEB_RULES_REQUIRES_ROOT" = "no" ]; then
+               dpkg_deb_opts="--root-owner-group"
+       else
+               chown -R root:root "$pdir"
+       fi
        chmod -R go-w "$pdir"
        # in case we are in a restrictive umask environment like 0077
        chmod -R a+rX "$pdir"
 
        # Create the package
        dpkg-gencontrol -p$pname -P"$pdir"
-       dpkg-deb ${KDEB_COMPRESS:+-Z$KDEB_COMPRESS} --build "$pdir" ..
+       dpkg-deb $dpkg_deb_opts ${KDEB_COMPRESS:+-Z$KDEB_COMPRESS} --build "$pdir" ..
 }
 
 deploy_kernel_headers () {
index 48fbd3d..dbe4250 100755 (executable)
@@ -174,6 +174,7 @@ Source: $sourcename
 Section: kernel
 Priority: optional
 Maintainer: $maintainer
+Rules-Requires-Root: no
 Build-Depends: bc, rsync, kmod, cpio, bison, flex | flex:native $extra_build_depends
 Homepage: https://www.kernel.org/