[elbe-devel] [PATCH 8/9] cdroms: do not fail without /var/cache/elbe/initvm-bin-repo

Manuel Traut manut at linutronix.de
Fri Nov 30 10:51:40 CET 2018


Hi Torben,

thanks for the fix! I applied it to devel/elbe-3.0 - but please post it
seperately next time.

I added the following to the log:

+        log.printo('       This happened because the initvm was probably')
+        log.printo('       generated with --skip-build-bin')

  Manu

On 17:29 Wed 28 Nov     , Torben Hohn wrote:
> when /var/cache/elbe/initvm-bin-repo has not been generated
> by "elbe fetch_initvm_pkgs" during initvm installation,
> the copying would fail.
> 
> ----------------------------------------------------------------------------------------------------------------------------
> running cmd +cp -av /var/cache/elbe/initvm-bin-repo "/var/cache/elbe/ae76f5ae-a300-43a9-bed6-a76387b5d255/binrepo"+
> ------------------------------------------------------------------------------
> cp: cannot stat '/var/cache/elbe/initvm-bin-repo': No such file or directory
> ------------------------------------------------------------------------------
> 
> Command failed with errorcode 1
> Build failed
> Traceback (most recent call last):
>   File "/var/cache/elbe/devel/elbepack/asyncworker.py", line 158, in execute
>     skip_pbuild=self.skip_pbuilder)
>   File "/var/cache/elbe/devel/elbepack/elbeproject.py", line 572, in build
>     self.build_cdroms(build_bin, build_sources, cdrom_size)
>   File "/var/cache/elbe/devel/elbepack/elbeproject.py", line 395, in build_cdroms
>     cdrom_size=cdrom_size)
>   File "/var/cache/elbe/devel/elbepack/cdroms.py", line 134, in mk_binary_cdrom
>     log.do('cp -av /var/cache/elbe/initvm-bin-repo "%s"' % repo_path)
>   File "/var/cache/elbe/devel/elbepack/asciidoclog.py", line 62, in do
>     raise CommandError(cmd, ret)
> CommandError
> 
> 
> Exception:
> ----------------------------------------------------------------------------------------------------------------------------
> 
> This error is not fatal. This only means, that the generated bin-cdrom.iso
> does not allow building an initvm from it.
> 
> Log an Error and continue with an empty directory, when that happens.
> ---
>  elbepack/cdroms.py | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/elbepack/cdroms.py b/elbepack/cdroms.py
> index 3c1bd6dc..aa67bdaf 100644
> --- a/elbepack/cdroms.py
> +++ b/elbepack/cdroms.py
> @@ -16,6 +16,7 @@ from elbepack.repomanager import CdromBinRepo
>  from elbepack.repomanager import CdromInitRepo
>  from elbepack.aptpkgutils import XMLPackage
>  from elbepack.filesystem import Filesystem, hostfs
> +from elbepack.shellhelper import CommandError
>  
>  CDROM_SIZE = 640 * 1000 * 1000
>  
> @@ -131,7 +132,16 @@ def mk_binary_cdrom(
>      # initvm repo has been built upon initvm creation
>      # just copy it. the repo __init__() afterwards will
>      # not touch the repo config, nor generate a new key.
> -    log.do('cp -av /var/cache/elbe/initvm-bin-repo "%s"' % repo_path)
> +    try:
> +        log.do('cp -av /var/cache/elbe/initvm-bin-repo "%s"' % repo_path)
> +    except CommandError:
> +        # When /var/cache/elbe/initvm-bin-repo has not been created
> +        # (because the initvm install was an old version or somthing,
> +        #  log an error, and continue with an empty directory.
> +        log.printo('ERROR: /var/cache/elbe/initvm-bin-repo does not exist')
> +        log.printo('       The generated CDROM will not contain initvm pkgs')
> +        log.do('mkdir -p "%s"' % repo_path)
> +
>      repo = CdromInitRepo(init_codename, repo_path, log, cdrom_size, mirror)
>  
>      target_repo = CdromBinRepo(arch, codename, None,
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel



More information about the elbe-devel mailing list