Conversation
There was a problem hiding this comment.
This looks good to me. I haven't looked into why the GitHub checks aren't running/passing, and main needs to be merged into this branch still.
As far as the test plan:
make clone && make devworks without errormake sd-adminconfigures thesd-adminVM, andsecuredrop-clientis installed and worked- after building the RPMs locally, I confirm that they don't have any conflicting files
After creating sd-admin, I also went ahead and used it to install a SecureDrop server, and it works! One thing we might want to put some thought into is what tags to put on sd-admin, because the lack of copy/paste and file transfer made it very difficult at first to copy my ssh key into sd-admin. There might be various legit reasons the admin needs to use copy/paste and to transfer files.
|
For the CI checks, the PR just needs to be rebased on top of main to pick up the new names. |
c383dd7 to
790bb84
Compare
Great call. I took a look at the diff, and I don't see an easy answer here: nowhere do we authorize the use of
Done: all CI checks are now passing. |
|
https://workstation.securedrop.org/en/stable/admin/reference/managing_clipboard.html shows how optional copy/paste config (vault to sd-app) is handled, that logic can probably be adapted for this case. |
legoktm
left a comment
There was a problem hiding this comment.
I'm slightly concerned about having this be enabled by default just because in the past we've worked hard to avoid having things that get built but intentionally discarded; we're at the point that it should be a blind thing that you just copy all the packages that get built to apt/yum repo (especially once we have CI do it) and I'd like to preserve that.
RPM makes it easier to have conditional builds, could we try adding %bcond_with admin so that builds need to have --with=admin to include that RPM? And then a separate make build-rpm-admin target.
|
Heard. I didn't get to this today, but I'll adjust the logic to ensure that the new RPM is off-by-default for both building and installing. |
Reuses config logic from the SDW RPM, but notably does not duplicate
it in version control by copy/pasting files; rather, we target the same
source files for the in-place "install" directories in the RPM spec
file.
We can sort out the exact boundary to come: for now, while this approach
does ship the several salt state files to multiple dirs (viz.
/srv/salt/{securedrop,admin}_salt/), the unique dest paths ensure that
no conflicts occur.
There's now an "sd-admin" VM that's based on the `debian-13` Trixie
template. The FPF apt repo, prod-only, is installed, as is the
"securedrop-admin" package. Other packages such as grsec will need
porting to trixie, which we can do in good time.
Included a "make sd-admin" target to handle applying said salt states.
Uses a %bcond macro in the RPM spec file to ensure that building the
admin RPM is off-by-default, but can be enabled via a single flag.
Throughout the dev env and build logic, use of the new
`securedrop-admin-dom0-config` RPM is off-by-default.
790bb84 to
87f1c66
Compare
|
Alright, I rewrote the RPM build logic to use There's still a bit of non-DRY duplication in the shell scripts that build the RPM, but I feel that's warranted here during the WIP phase, to ensure that the pre-existing logic for building the Ready for re-review, @micahflee! |
Thank you!
Sounds good but also I think the bar to enable |
micahflee
left a comment
There was a problem hiding this comment.
I tested again and everything works great. I built both RPMs and compared them, and they still don't have any overlapping files.
This PR adopts the "admin-config" RPM spec file by @zenmonkeykstop in #1554. It also pulls in the simplified RPM build logic from #1565; therefore, #1565 should be reviewed and merged first.
Based on @zenmonkeykstop's work, I added an
sd-adminVM based on Debian 13 Trixie. There's no grsec kernel or keyring package yet, but thesecuredrop-admintooling is installed:securedrop-admin help text
The RPM setup reuses Salt state files between the two RPMs, but installs them to unique dest paths, ensuring both RPMs can be installed independently of one another, without triggering dnf conflicts. We can lean into this and port more of the pre-existing Salt config if we desire.
Towards #1507.
Test plan
make clone && make devpasses without errormake sd-adminto configure thesd-adminVM; check thatsecuredrop-adminCLI is installed within it.rpm -qlp <path>on them; inspect their file contents and ensure no conflicts or overlaps between them, because any duplication of dest paths will cause problems.Checklist
This change accounts for:
MANIFEST.inandrpm-build/SPECS/securedrop-workstation-dom0-config.spec)