-
Notifications
You must be signed in to change notification settings - Fork 46
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
Use rpm in dom0 for make all #406
Comments
Then this sounds pretty good. Note that pending a solution of the RPM signing story for nightly/staging vs prod, we'll have to update the config logic at least to have different URL endpoints for prod/dev. If we decide to switch to signing repo metadata rather than the RPMs themselves, then we'll have to update the yum configs with |
No, we'll continue to sign the RPMs themselves, because Qubes requires that RPMs be signed directly if used in dom0: https://github.com/QubesOS/qubes-core-admin-linux/blob/9cf273d187f513ae3a6b55ff8c060a9d85714400/dom0-updates/qubes-receive-updates#L101 (hat tip to @kushaldas) Updated the OP with checklist documenting next steps. Will work on the backend tasks first, to unblock testing by other team members. |
Installing the dom0 rpm was failing on latest master, due to missing files. I have made some updates to the Python manifest and RPM spec here: https://github.com/freedomofpress/securedrop-workstation/tree/add-files-rpmspec On a clean qubes install, after copying a config.json and private key to I have also added the tests/ repository to the RPM, so that we can ensure the system state is more or less expected. However, I ran into some issues with the build process and one of the tests. Reverting 225c688 will allow one to observe the error. Are there any reasons why we should exclude shipping tests from the RPM? it might be useful for debugging purposes. Most tests are passing, but some are failing due to file paths of config files not be present. Perhaps we can duplicate some files or adapt the tests to have them working in both rpm and make all scenarios? |
Great news, @emkll! The test issue you flag is intriguing... I'm in favor of trying to resolve so that we can preserve tests for developers as well as include for at least the upcoming pilot. At the very least, including for the pilot will enable FPF staff and org admins to sanity-check the setup immediately after first install, which is highly valuable.
Will need to repro before commenting further, thanks for pointing out the discrepancy. |
https://yum.securedrop.org/ is now live (although it doesn't have any RPMs, given that https://github.com/freedomofpress/securedrop-workstation-prod-rpm-packages-lfs/ is also empty), updated checklist. |
Started working on the dev/prod conditional logic. Turns out that'll be a more complicated than a separate target: we need a Salt-ish way to choose between different sets of vars. Tried using an include-based approach: example patch
to no avail. Looks like we must use
As usual, trawling through |
Had a pairing session with @emkll today, who pointed out some creative ways to import vars without resorting to pillars. See WIP implementation in #432.
The "dev" and "prod" scenarios are rather straightforward, and are already implemented in the #432 WIP PR. The "staging" scenario has been complicated somewhat by the enabling of automatic nightly packages for rpms (#357). We've discussed that CI-built artifacts shouldn't go straight to dom0 on primary developer workstations—but that's precisely what'll happen with the nightly RPM workflow as currently implemented. Until we can discuss further, I've temporarily disabled the pull/fetch logic from the https://yum-test.securedrop.org repo on the backend. RPMs will be appended to https://github.com/freedomofpress/securedrop-workstation-dev-rpm-packages-lfs/ automatically, but they won't serve. |
After some additional discussion with @emkll, we should be fine to proceed with the "staging" target, given that devs to date will not have installed the RPM via the test repo, given that nightlies only just started being committed. In order to ensure the integrity of packages in dom0, however, we should ensure that the "dev" target removes the dom0 salt rpm if it's already installed. Additionally, let's consider prompting for confirmation that laptop is test-only if the "staging" target is used. I've re-enabled the automatic publishing on https://yum-test.securedrop.org, so we should see the latest nightly packages appear there shortly. |
Once #432 is merged, what (if any) follow-up is required to resolve this release blocker? |
@eloquence I believe once this is merged we should:
There may be further follow-ups that may come out of the review. |
we sign the rpm package in dev-lfs CI (ref freedomofpress/securedrop-builder#129) and we'll otherwise need to sign manually, so this is resolved. any further improvements here can go in followups |
We have an rpm package that contains the packaged configuration of dom0 but we're not using it. We need three environments:
make all
)proposal:
make all
-> will become prod (we can point this to staging until the first production release in the beta series occurs)make staging
-> exactly like make all except uses the nightly rpmsmake dev
-> preserves current behavior ofmake all
Specific next steps
yum-test
)/usr/local/bin/securedrop-install
We'll also need to consolidate apt-test-qubes into the apt-test repo, now that we have dual-channel support, but that should be tracked in a separate ticket, and isn't critical-path for the RPM story.
The text was updated successfully, but these errors were encountered: