New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CentOS template fails to build due to missing pyton34-pillow package #3919

Closed
misterzed88 opened this Issue May 23, 2018 · 2 comments

Comments

Projects
None yet
3 participants
@misterzed88

Qubes OS version:

R4.0

Affected component(s):

qubes-builder-rpm


Steps to reproduce the behavior:

Following the instructions in https://www.qubes-os.org/doc/building-archlinux-template:

  1. Using the Fedora 26 template when setting up the builder VM.
  2. Creating a builder.conf using the 'setup' script, with the following options:
  • 'Build templates only' enabled
  • 'mgmt-salt' disabled
  • 'builder-rpm' enabled
  • 'centos-7' being the only selected template
  1. Downloading sources with make get-sources
  2. Running build with make qubes-vm
  3. The build fails, complaining about missing package: 'python34-pillow'

General notes:

The failure is due to the python34-pillow package not being present in the public CentOS repositories. Although it is present in the Qubes CentOS repositories, it is not used, since only the public repos are enabled during the build.

A workaround which solves the problem is to add the Qubes CentOS repositories to the build, which can be done by:

  1. Editing the file repos/qubes-repo-vm-centos.repo, setting 'enabled=1' in the section '[qubes-builder-vm-r%QUBESVER%-current]'
  2. Adding 'USE_QUBES_REPO_VERSION := 4.0' to builder.conf

@misterzed88

This comment has been minimized.

Show comment
Hide comment
@misterzed88

misterzed88 May 24, 2018

Thank you for lightning-fast response and fix! Just one follow-up question.

The Qubes repo file is still not added by default in the build (even though the repo itself is enabled inside the file). This means that a casual user, running the setup wizard to generate builder.conf, enabling 'building templates only', will still get a build failure. The previously mentioned workaround (adding 'USE_QUBES_REPO_VERSION') is still needed in this case. Or have I overlooked something?

Is this a general limitation for all templates (not only CentOS), which is by design? Is it an acceptable limitation, or should I file a separate issue for it? (which can be fixed by documentation only, in the setup wizard script or in the build system itself).

Thank you for lightning-fast response and fix! Just one follow-up question.

The Qubes repo file is still not added by default in the build (even though the repo itself is enabled inside the file). This means that a casual user, running the setup wizard to generate builder.conf, enabling 'building templates only', will still get a build failure. The previously mentioned workaround (adding 'USE_QUBES_REPO_VERSION') is still needed in this case. Or have I overlooked something?

Is this a general limitation for all templates (not only CentOS), which is by design? Is it an acceptable limitation, or should I file a separate issue for it? (which can be fixed by documentation only, in the setup wizard script or in the build system itself).

@fepitre

This comment has been minimized.

Show comment
Hide comment
@fepitre

fepitre May 24, 2018

Member

In fact, in the package https://github.com/QubesOS/qubes-builder/blob/8676eb503c1bd0a9884b9ee30e70bfeb927831b1/example-configs/templates.conf#L292, python-pillow is missing (not up to date...). I will correct this.

Normally, you can either pick a ready to use config like qubes-os-r4.0.conf or use the setup which will pick some extra things from template.conf. Especially, the TEMPLATES list overrides the COMPONENTS if you have set to build only the templates. So this is why python34-pillow was not there.

USE_QUBES_REPO_VERSION is useful when you don't want to rebuild all the packages, but just one or more, or only the template. This is what we do with the continuous integration for example.

Member

fepitre commented May 24, 2018

In fact, in the package https://github.com/QubesOS/qubes-builder/blob/8676eb503c1bd0a9884b9ee30e70bfeb927831b1/example-configs/templates.conf#L292, python-pillow is missing (not up to date...). I will correct this.

Normally, you can either pick a ready to use config like qubes-os-r4.0.conf or use the setup which will pick some extra things from template.conf. Especially, the TEMPLATES list overrides the COMPONENTS if you have set to build only the templates. So this is why python34-pillow was not there.

USE_QUBES_REPO_VERSION is useful when you don't want to rebuild all the packages, but just one or more, or only the template. This is what we do with the continuous integration for example.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment