Il giorno dom 2 ott 2022 alle ore 00:14 Roberto A. Foglietta <roberto.foglietta@gmail.com> ha scritto:
>
> Il giorno mer 14 set 2022 alle ore 10:34 Henning Schild <henning.schild@siemens.com> ha scritto:
> >
> > You can always use dpkg-prebuilt where you download that package,
> > binary patch it and later installed the modified copy with isar.
> > However if you have a sources.list entry and that package can
> > potentially get updated, you will not be able to make that hack stable.
> >
> > That is a pattern for a broken binary package which i had to get into
> > a layer.
> >
> > do_binary_patch[cleandirs] += "${WORKDIR}/blabla-package"
> > do_binary_patch() {
> >         sudo dpkg-deb -R ${WORKDIR}/blabla-package.deb ${WORKDIR}/blabla-package
> >         # do something funny with the control file, i.e. sed -i -e ... Depends
> >         sudo dpkg-deb -b ${WORKDIR}/blabla-package
> > }
> > addtask binary_patch after do_unpack before do_deploy_deb
>
> I am trying to fetch the package but I cannot, could you help me?
>
> SRC_URI = "apt://pippo-fs"
> addtask apt_fetch before do_binary_patch
>
> ERROR: pippo-fs-1.0-r0 do_apt_fetch: ExecutionError('/build/tmp/work/debian-bullseye-amd64/pippo-fs/1.0-r0/temp/run.do_apt_fetch.100', 100, None, None)
> ERROR: Logfile of failure stored in: /build/tmp/work/debian-bullseye-amd64/pippo-fs/1.0-r0/temp/log.do_apt_fetch.100
> Log data follows:
> | DEBUG: Executing shell function do_apt_fetch
> | Reading package lists...
> | E: Unable to find a source package for pippo-fs
> | ERROR: ExecutionError('/build/tmp/work/debian-bullseye-amd64/pippo-fs/1.0-r0/temp/run.do_apt_fetch.100', 100, None, None)
> ERROR: Task (/build/../repo/recipes-support/nvidia-repack/pippo-fs.bb:do_apt_fetch) failed with exit code '1'
> NOTE: Tasks Summary: Attempted 30 tasks of which 29 didn't need to be rerun and 1 failed.
>
> pippo-fs is a legit package that could be fetch if put into IMAGE_PREINSTALL
>
> Using do_fetch complains about checksum file
>
> bb.data_smart.ExpansionError: Failure expanding variable do_fetch[file-checksums], expression was ${@bb.fetch.get_checksum_file_list(d)} which triggered exception MalformedUrl: The URL: 'pippo-fs' is invalid and cannot be interpreted

Even more interesting this simple recipe

inherit dpkg-base
SRC_URI = "apt://${PN}"

download the package ONLY if the package is into the debian repository but NOT if the package is in a external repository defined into conf/ but available with IMAGE_PREINSTALL

I have also tried to change the repository but it did not work either

diff --git a/meta/classes/sbuild.bbclass b/meta/classes/sbuild.bbclass
index a29b745..4fa6a46 100644
--- a/meta/classes/sbuild.bbclass
+++ b/meta/classes/sbuild.bbclass
@@ -55,7 +55,7 @@ EOF
         cp -rf "${SCHROOT_CONF}/sbuild" "${SBUILD_CONF_DIR}"
         sbuild_fstab="${SBUILD_CONF_DIR}/fstab"
 
-        fstab_baseapt="${REPO_BASE_DIR} /base-apt none rw,bind 0 0"
+        fstab_baseapt="${REPO_ISAR_DIR} /base-apt none rw,bind 0 0"
         grep -qxF "${fstab_baseapt}" ${sbuild_fstab} || echo "${fstab_baseapt}" >> ${sbuild_fstab}
 
         fstab_pkgdir="${WORKDIR} /home/builder/${PN} none rw,bind 0 0"