Il giorno mar 27 set 2022 alle ore 23:13 Roberto A. Foglietta <roberto.foglietta@gmail.com> ha scritto:
Il giorno mar 27 set 2022 alle ore 16:59 Roberto A. Foglietta <roberto.foglietta@gmail.com> ha scritto:
>
> Il Mar 27 Set 2022, 15:20 Roberto A. Foglietta <roberto.foglietta@gmail.com> ha scritto:
>>
>> Dear all,
>>
>>  I found another corner case about compiling a 3rd party driver into ISAR and I need to execute a command at make level but as root. Unfortunately su cannot authenticate seamlessly and without the root permission the command fails. Suggestions?
>>
>> override_dh_auto_build:
>>       sudo cp -arf /usr/lib/modules/*/source/* /usr/lib/modules/*/build/
>>        cp -arf /usr/lib/modules/*/source/* /usr/lib/modules/*/build/
>>        $(MAKE) -n modules ${PARALLEL_MAKE}
>
>
> The problem of Executing commands with root priviledge in the sbuild, I have solved using chmod +s the command (cfr. the patch attached, in the commented line a generalisation).


This single change open a wild wide playground of possibilities in running arbitrary stuff as root in sbuild/make environment:
:-)

Also a ldconfig is appreciated. In fact, trying to use "su" - which is not configured to be used without password - a lacks of ldconfig emerges

diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass
index c92ea7d..8aad4fb 100644
--- a/meta/classes/dpkg.bbclass
+++ b/meta/classes/dpkg.bbclass
@@ -90,8 +90,9 @@ dpkg_runbuild() {
     sbuild -A -n -c ${SBUILD_CHROOT} --extra-repository="${ISAR_APT_REPO}" \
         --host=${PACKAGE_ARCH} --build=${SBUILD_HOST_ARCH} ${profiles} \
         --no-run-lintian --no-run-piuparts --no-run-autopkgtest --resolve-alternatives \
-        --chroot-setup-commands="rm -f /var/log/dpkg.log" \
+        --chroot-setup-commands="ldconfig; rm -f /var/log/dpkg.log" \
         --chroot-setup-commands="cp -n --no-preserve=owner ${ext_deb_dir}/*.deb -t ${deb_dir}/ || :" \
+        --chroot-setup-commands="cp -paf /bin/chmod /bin/s.chmod && chmod +s /bin/s.chmod" \
         --finished-build-commands="rm -f ${deb_dir}/sbuild-build-depends-main-dummy_*.deb" \
         --finished-build-commands="cp -n --no-preserve=owner ${deb_dir}/*.deb -t ${ext_deb_dir}/ || :" \
         --finished-build-commands="cp /var/log/dpkg.log ${ext_root}/dpkg_partial.log" \

Cheers, R-