Skip to content

Prepares path for sd-whonix whonix removal#1414

Merged
deeplow merged 2 commits intomainfrom
456-whonix-deprecation
Sep 3, 2025
Merged

Prepares path for sd-whonix whonix removal#1414
deeplow merged 2 commits intomainfrom
456-whonix-deprecation

Conversation

@deeplow
Copy link
Copy Markdown
Contributor

@deeplow deeplow commented Aug 20, 2025

Towards #456. Adds minimal dependencies to test its client counterpart freedomofpress/securedrop-client#2561. Whonix removal will be in a separate PR.

Test plan

Apply with sdw-admin --apply after installing RPM and then see #456.

Checklist

This change accounts for:

  • any necessary RPM packaging updates (e.g., added/removed files, see MANIFEST.in and rpm-build/SPECS/securedrop-workstation-dom0-config.spec)
  • any required documentation

@deeplow deeplow moved this to In Progress in SecureDrop Aug 20, 2025
@deeplow deeplow force-pushed the 456-whonix-deprecation branch 6 times, most recently from c1fa7f8 to 0c13d4b Compare August 22, 2025 12:28
@deeplow deeplow marked this pull request as ready for review August 22, 2025 19:42
@deeplow deeplow requested a review from a team as a code owner August 22, 2025 19:42
@legoktm legoktm force-pushed the 456-whonix-deprecation branch from 2597b62 to 0be1678 Compare August 25, 2025 12:32
@legoktm legoktm moved this from In Progress to Ready For Review in SecureDrop Aug 25, 2025
@legoktm
Copy link
Copy Markdown
Member

legoktm commented Aug 25, 2025

Just fixed a small typo in the test, everything should pass now except self._check_service_running(vm, "securedrop-proxy-onion-config") because the client part hasn't been merged yet. Tentatively dropping this into "ready for review" but we might wait until the client PR is also ready (it's close).

Companion PR for client change [1] with the aim of deprecating whonix,
in favor of delegating the tor connectivity aspect to sd-proxy running
arti.

Changes introduced:

1. sd-proxy connects to 'sys-firewall' directly:

    since sd-proxy is now handling tor connections, it must connect
    directly to the internet.
    It keeps the original goal of preventing the client from being able
    to connect to arbitrary domains. This is also something that
    sd-whonix did not guarantee (it could connect to arbitrary domains,
    albeit via Tor).

2. sd-proxy has access to onion service auth key

   Access done via qubes feature vm-config.SD_PROXY_ORIGIN_KEY

[1]: freedomofpress/securedrop-client#2561

Test in ci: openqa
@legoktm legoktm force-pushed the 456-whonix-deprecation branch from 0be1678 to 9e39d67 Compare August 26, 2025 17:32
@legoktm
Copy link
Copy Markdown
Member

legoktm commented Aug 26, 2025

I renamed the service to just securedrop-arti, we'll use it for both the arti systemd service and onion-config. Also I added a test to verify that arti is not running in the sd-app VM.

@cfm cfm moved this from Ready For Review to Under Review in SecureDrop Aug 27, 2025
cfm
cfm previously approved these changes Aug 27, 2025
Copy link
Copy Markdown
Member

@cfm cfm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Installed via make clone && make dev; passes tests per #1414 (comment). I'll defer to you to merge, @legoktm, both in conjunction with freedomofpress/securedrop-client#2561 and given the following two unrelated tests failing in securedrop_test_dom0:

@cfm cfm assigned legoktm and unassigned cfm Aug 27, 2025
@legoktm
Copy link
Copy Markdown
Member

legoktm commented Aug 28, 2025

and given the following two unrelated tests failing in securedrop_test_dom0:

The actual failure is reported in the very next screenshot, https://openqa.qubes-os.org/tests/150723#step/test_dom0/20, which reveals that it's that the securedrop-proxy-onion-config service isn't running, which is expected since it hasn't been merged yet :) once the client part lands, I'll retrigger OpenQA and we can merge once it passes.

@deeplow
Copy link
Copy Markdown
Contributor Author

deeplow commented Sep 1, 2025

and given the following two unrelated tests failing in securedrop_test_dom0:

The actual failure is reported in the very next screenshot, https://openqa.qubes-os.org/tests/150723#step/test_dom0/20, which reveals that it's that the securedrop-proxy-onion-config service isn't running, which is expected since it hasn't been merged yet :) once the client part lands, I'll retrigger OpenQA and we can merge once it passes.

It's merged now, so I have re-triggered the test run. Btw, the unrelated failure is #1411.

@deeplow
Copy link
Copy Markdown
Contributor Author

deeplow commented Sep 1, 2025

It's running into a couple of openQA issues. I'm testing some fixes against this branch here.

deeplow added a commit to deeplow/openqa-tests-qubesos that referenced this pull request Sep 2, 2025
After all xvfb is necessary because we're now running the tests in the
root console as a fix for [1]. Instead of adding yet another dependency
directly in OpenQA, this now just installs whichever dependencies are
specified in the workstation repo via the "test-deps" make target.

[1]: freedomofpress/securedrop-workstation#1414
deeplow added a commit to deeplow/openqa-tests-qubesos that referenced this pull request Sep 2, 2025
After all xvfb is necessary because we're now running the tests in the
root console as a fix for [1]. Instead of adding yet another dependency
directly in OpenQA, this now just installs whichever dependencies are
specified in the workstation repo via the "test-deps" make target.

[1]: freedomofpress/securedrop-workstation#1414
deeplow added a commit to deeplow/openqa-tests-qubesos that referenced this pull request Sep 2, 2025
After all xvfb is necessary because we're now running the tests in the
root console as a fix for [1]. Instead of adding yet another dependency
directly in OpenQA, this now just installs whichever dependencies are
specified in the workstation repo via the "test-deps" make target.

[1]: freedomofpress/securedrop-workstation#1414
deeplow added a commit to deeplow/openqa-tests-qubesos that referenced this pull request Sep 2, 2025
After all xvfb is necessary because we're now running the tests in the
root console as a fix for [1]. Instead of adding yet another dependency
directly in OpenQA, this now just installs whichever dependencies are
specified in the workstation repo via the "test-deps" make target.

[1]: freedomofpress/securedrop-workstation#1414
deeplow added a commit to deeplow/openqa-tests-qubesos that referenced this pull request Sep 2, 2025
After all xvfb is necessary because we're now running the tests in the
root console as a fix for [1]. Instead of adding yet another dependency
directly in OpenQA, this now just installs whichever dependencies are
specified in the workstation repo via the "test-deps" make target.

[1]: freedomofpress/securedrop-workstation#1414
@deeplow
Copy link
Copy Markdown
Contributor Author

deeplow commented Sep 2, 2025

There was a transient issue with the above-linked openQA test, which I haven't investigated. But I restarted and it then ran the install well but failed in make test. This is due to missing virtual frame-buffers which were removed as a fix for #1411. I'm now waiting on getting those fixes stable. More context here.

@deeplow deeplow added this to the 1.4.0 milestone Sep 2, 2025
@legoktm legoktm assigned deeplow and unassigned legoktm Sep 2, 2025
@legoktm
Copy link
Copy Markdown
Member

legoktm commented Sep 2, 2025

@deeplow is going to re-verify that make test works and then land this.

sd-base-template-install-securedrop-packages:
pkg.installed:
- pkgs:
- securedrop-qubesdb-tools
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should leave this line until the next release, per split between 1.4.0 and 1.5.0. The former's goal is to simply do the switch and 1.5.0 to fully remove whonix-related components. The end-goal is to have a rollback path.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, we may want to have this forcefully removed as we did with other xpp in the past.

@deeplow
Copy link
Copy Markdown
Contributor Author

deeplow commented Sep 3, 2025

I have now reset --hard HEAD^, basically removing the commit about qubesdb-tools. See rationale here.

@deeplow
Copy link
Copy Markdown
Contributor Author

deeplow commented Sep 3, 2025

I may have messed up the branch with that force-push.. :/ I had forgotten other things were pushed onto it and therefore I cut the head from the version I had. And now I can't restore it since my local git doesn't have the proper remote reflog.

In case @legoktm you still have the original branch locally, would you mind force-pushing? Or any other git-fu you're aware of 🙂

I did replicate the pushed out code and ran make test successfully against it.

@legoktm legoktm force-pushed the 456-whonix-deprecation branch 2 times, most recently from 9e39d67 to 0944de1 Compare September 3, 2025 16:07
@legoktm
Copy link
Copy Markdown
Member

legoktm commented Sep 3, 2025

I re-pushed 9e39d67 (original state), and then dropped the most recent commit which was the removal of whonix-configqubesdb-tools (i.e. keeping whonix-configqubesdb-tools for now), getting us to 0944de1.

@deeplow
Copy link
Copy Markdown
Contributor Author

deeplow commented Sep 3, 2025

which was the removal of whonix-config (i.e. keeping whonix-config for now), getting us to 0944de1.

Thanks. Just double-checking this was securedrop-qubesdb-tools and not whonix-config.

@legoktm
Copy link
Copy Markdown
Member

legoktm commented Sep 3, 2025

Thanks. Just double-checking this was securedrop-qubesdb-tools and not whonix-config.

Yes correct, my bad.

@deeplow
Copy link
Copy Markdown
Contributor Author

deeplow commented Sep 3, 2025

Informally approving @legoktm's changes, since I officially can't as the PR's author. @legoktm are you able to approve it or do we need someone else?

Copy link
Copy Markdown
Member

@legoktm legoktm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per Cory's previous approval

@legoktm legoktm added this pull request to the merge queue Sep 3, 2025
@deeplow deeplow merged commit 5f815ef into main Sep 3, 2025
11 of 14 checks passed
@github-project-automation github-project-automation bot moved this from Under Review to Done in SecureDrop Sep 3, 2025
@legoktm legoktm deleted the 456-whonix-deprecation branch September 3, 2025 17:05
@deeplow deeplow mentioned this pull request Sep 4, 2025
34 tasks
deeplow added a commit to freedomofpress/openqa-tests-qubesos that referenced this pull request Sep 10, 2025
After all xvfb is necessary because we're now running the tests in the
root console as a fix for [1]. Instead of adding yet another dependency
directly in OpenQA, this now just installs whichever dependencies are
specified in the workstation repo via the "test-deps" make target.

[1]: freedomofpress/securedrop-workstation#1414
@nathandyer nathandyer removed this from SecureDrop Sep 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants