repository: make repo_del_srcpackage delete only source packages

Message ID 20240223094207.1482845-1-cedric.hombourger@siemens.com
State Superseded, archived
Headers show
Series repository: make repo_del_srcpackage delete only source packages | expand

Commit Message

Cedric Hombourger Feb. 23, 2024, 9:42 a.m. UTC
The reprepro removesrc command not only deletes the requested source
package but also any binary packages that were built from it. If
do_deploy_source is recalled after do_deploy_deb, we would see
previously deployed binary packages vanish from isar-apt.

Signed-off-by: Cedric Hombourger <cedric.hombourger@siemens.com>
---
 meta/classes/repository.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jan Kiszka Feb. 23, 2024, 11:34 a.m. UTC | #1
On 23.02.24 10:42, 'Cedric Hombourger' via isar-users wrote:
> The reprepro removesrc command not only deletes the requested source
> package but also any binary packages that were built from it. If
> do_deploy_source is recalled after do_deploy_deb, we would see
> previously deployed binary packages vanish from isar-apt.
> 

While I agree that a task should do what it is supposed to do, not more:
How is such a race possible? dpkg_build depends on deploy_source, and
deploy_deb depends on dpkg_build.

Jan

> Signed-off-by: Cedric Hombourger <cedric.hombourger@siemens.com>
> ---
>  meta/classes/repository.bbclass | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/repository.bbclass b/meta/classes/repository.bbclass
> index a61e5dcd..28e712fd 100644
> --- a/meta/classes/repository.bbclass
> +++ b/meta/classes/repository.bbclass
> @@ -70,8 +70,8 @@ repo_del_srcpackage() {
>      if [ -n "${GNUPGHOME}" ]; then
>          export GNUPGHOME="${GNUPGHOME}"
>      fi
> -    reprepro -b "${dir}" --dbdir "${dbdir}" \
> -        removesrc "${codename}" \
> +    reprepro -b "${dir}" --dbdir "${dbdir}" -A source \
> +        remove "${codename}" \
>          "${packagename}"
>  }
>
Cedric Hombourger Feb. 23, 2024, 11:52 a.m. UTC | #2
On Fri, 2024-02-23 at 12:34 +0100, Jan Kiszka wrote:
> On 23.02.24 10:42, 'Cedric Hombourger' via isar-users wrote:
> > The reprepro removesrc command not only deletes the requested
> > source
> > package but also any binary packages that were built from it. If
> > do_deploy_source is recalled after do_deploy_deb, we would see
> > previously deployed binary packages vanish from isar-apt.
> > 
> 
> While I agree that a task should do what it is supposed to do, not
> more:
> How is such a race possible? dpkg_build depends on deploy_source, and
> deploy_deb depends on dpkg_build.

There's no race. The issue will be seen if you bitbake -fc
deploy_source on a previously built recipe. 

> 
> Jan
> 
> > Signed-off-by: Cedric Hombourger <cedric.hombourger@siemens.com>
> > ---
> >  meta/classes/repository.bbclass | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/meta/classes/repository.bbclass
> > b/meta/classes/repository.bbclass
> > index a61e5dcd..28e712fd 100644
> > --- a/meta/classes/repository.bbclass
> > +++ b/meta/classes/repository.bbclass
> > @@ -70,8 +70,8 @@ repo_del_srcpackage() {
> >      if [ -n "${GNUPGHOME}" ]; then
> >          export GNUPGHOME="${GNUPGHOME}"
> >      fi
> > -    reprepro -b "${dir}" --dbdir "${dbdir}" \
> > -        removesrc "${codename}" \
> > +    reprepro -b "${dir}" --dbdir "${dbdir}" -A source \
> > +        remove "${codename}" \
> >          "${packagename}"
> >  }
> >  
>
Jan Kiszka Feb. 23, 2024, 12:23 p.m. UTC | #3
On 23.02.24 12:52, Hombourger, Cedric (DI CTO FDS CES LX) wrote:
> On Fri, 2024-02-23 at 12:34 +0100, Jan Kiszka wrote:
>> On 23.02.24 10:42, 'Cedric Hombourger' via isar-users wrote:
>>> The reprepro removesrc command not only deletes the requested
>>> source
>>> package but also any binary packages that were built from it. If
>>> do_deploy_source is recalled after do_deploy_deb, we would see
>>> previously deployed binary packages vanish from isar-apt.
>>>
>>
>> While I agree that a task should do what it is supposed to do, not
>> more:
>> How is such a race possible? dpkg_build depends on deploy_source, and
>> deploy_deb depends on dpkg_build.
> 
> There's no race. The issue will be seen if you bitbake -fc
> deploy_source on a previously built recipe. 
> 

Ok, this information is valuable to assess the criticality of the issue,
thus should go also into the commit message.

Jan

Patch

diff --git a/meta/classes/repository.bbclass b/meta/classes/repository.bbclass
index a61e5dcd..28e712fd 100644
--- a/meta/classes/repository.bbclass
+++ b/meta/classes/repository.bbclass
@@ -70,8 +70,8 @@  repo_del_srcpackage() {
     if [ -n "${GNUPGHOME}" ]; then
         export GNUPGHOME="${GNUPGHOME}"
     fi
-    reprepro -b "${dir}" --dbdir "${dbdir}" \
-        removesrc "${codename}" \
+    reprepro -b "${dir}" --dbdir "${dbdir}" -A source \
+        remove "${codename}" \
         "${packagename}"
 }