-
Notifications
You must be signed in to change notification settings - Fork 451
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
wip/3mdeb/qubes-wrapper #2710
wip/3mdeb/qubes-wrapper #2710
Conversation
This pull request introduces 3 alerts when merging b91d725 into f3510f5 - view on LGTM.com new alerts:
|
contrib/fwupd.spec.in
Outdated
qvm-run --pass-io sys-whonix 'rm /home/user/QubesIncoming/dom0/GPG-KEY-Linux-Vendor-Firmware-Service' | ||
qvm-copy-to-vm sys-whonix %PKI/GPG-KEY-Linux-Vendor-Firmware-Service | ||
qvm-run --pass-io sys-whonix 'gpg --import /home/user/QubesIncoming/dom0/GPG-KEY-Linux-Vendor-Firmware-Service' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just the GPG keys? I think you want the PKCS ones too, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GPG keys are used three times to verify the metadata and firmware update files. The first time, they are used when the files are downloaded, the second time after copying the files from UpdateVM to Dom0, and the third time when Dom0 copies files to sys-usb VM. For now, we are not using the PKCS keys, but if we want to use jcat-tool
they are available in standard fwupd directory /etc/pki/fwupd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I deleted these lines. GPG verification has been replaced with jcat verification.
wget -P $FWUPD_UPDATEVM_DIR/metadata $URL.jcat | ||
wget -P $FWUPD_UPDATEVM_DIR/metadata $URL.asc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
both?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need both files to cover fwupd versions from 0.9.5 to the current one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why support such old fwupd versions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ferdora 25 is base for dom0 in Qubes R4.0 (https://www.qubes-os.org/doc/supported-versions/) and it provides fwupd 0.9.5.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The file doesn't exist. It's replaced with the python script. There is no need to download the GPG signature, thus I left only jcat
file. The wrapper works correctly with the current libjcat master and the changes connected to the hughsie/libjcat#48 and hughsie/libjcat#49 need to be available on Fedora 32.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
libjcat update just went stable for f32: https://bodhi.fedoraproject.org/updates/FEDORA-2021-a83da4c566
contrib/debian/control.in
Outdated
@@ -198,3 +198,9 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, make | build-essential | dpkg-dev | |||
Description: Template for signed fwupd package | |||
This package is used to control code signing by the Debian signing | |||
service. | |||
|
|||
Package: fwupd-qubes-vm-whonix |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are there other packages in the Debian archive that have set precedent for this already?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are no such packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm leaning on we should have some sort of flag that determines whether this binary package gets built as part of https://github.com/fwupd/fwupd/blob/master/contrib/ci/generate_debian.py
I don't think it should be done in general purpose Debian or Ubuntu, right? It should only be when the Debian derivatives Whonix generates the binary packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it should be done in general purpose Debian or Ubuntu, right?
That's right. It's Qubes specific package.
I'm leaning on we should have some sort of flag that determines whether this binary package gets built as part of https://github.com/fwupd/fwupd/blob/master/contrib/ci/generate_debian.py
It could be handled as another OS environment variable e.g. Debian-x86_64-Whonix
and it would be added to the TARGET
split: https://github.com/fwupd/fwupd/blob/master/contrib/ci/generate_debian.py#L24
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds like a good enough approach to me. If you find while you're doing it that doesn't end up scaling well enough feel free to add argparse
support there instead though. The environment parsing was just a convenient way for our first CI jobs to do it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a possibility to generate separate fedora-qubes
and debian-x86_64-qubes
containers that build qubes packages. Standard containers don't provide qubes DEBs and RPMs.
b91d725
to
17f44be
Compare
This pull request introduces 4 alerts when merging 17f44be into 8fa65d9 - view on LGTM.com new alerts:
|
17f44be
to
1ab7324
Compare
This pull request introduces 4 alerts when merging 1ab7324 into 8fa65d9 - view on LGTM.com new alerts:
|
@@ -181,6 +183,30 @@ This provides the optional package which is only required on hardware that | |||
can be flashed using flashrom. It is probably not required on servers. | |||
%endif | |||
|
|||
%package qubes-dom0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similarly to the Debian case I think we want to special case the generation of the qubes
binary package. This won't go into real Fedora archives.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Completely agree.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a possibility to generate separate fedora-qubes
and debian-x86_64-qubes
containers that build qubes packages. Standard containers don't provide qubes DEBs and RPMs.
contrib/qubes/misc/0017-esrt-Add-paravirtualization-support.patch
Outdated
Show resolved
Hide resolved
Which version do you need resigned? I don't want to do them all ideally to avoid churn. |
cd0e3a9
to
d5ca239
Compare
This pull request introduces 3 alerts when merging d5ca239 into 4d8163c - view on LGTM.com new alerts:
|
@hughsie Ideally one for update (2.0.7) and one for downgrade (2.0.6 or 2.0.5). |
@Asiderr: All three done! |
There's also this warning from LGTM; but we're getting there now! Nearly there. |
d5ca239
to
b336edb
Compare
This pull request introduces 1 alert when merging b336edb into 0cde61d - view on LGTM.com new alerts:
|
b336edb
to
93006e7
Compare
I fixed LGTM problems. I've dropped GPG verification and now metadata and firmware updates are validated with jcat verification. I'm still waiting for metadata sync ( The wrapper has been successfully tested on Qubes R4.1. For test purposes, I've replaced |
This should have happened yesterday, no? "fwupdmgr refresh --force" |
@hughsie I guess so, but fwupdagent still doesn't provide the second checksum:
|
That looks like a very old fwupd version; possibly one without the SHA256 support? |
@hughsie The same result on Fedora32, fwupd 1.5.5 (updates-testing). Metadata contains the SHA256 of the |
Hmm, will investigate. https://bodhi.fedoraproject.org/updates/FEDORA-2021-a83da4c566 now exists for libjcat if that helps. |
Ha, so I think we accidentally fixed this in master a few weeks ago when we added the |
This will help a lot. I will run the wrapper tests after the release. |
This comment has been minimized.
This comment has been minimized.
@Asiderr I've built 1.5.7 for F32 just now: https://bodhi.fedoraproject.org/updates/FEDORA-2021-449618a8a8 -- can you rebase this patchset, do the testing to fix up the remaining issues, and then I think we should aim to get this upstream before it bitrots any more than it has already. |
@hughsie Tomorrow I'll rebase and test the newest changes and we can focus on the upstream. Also until the end of this week I want to push fwupd for BSD fixes. |
93006e7
to
fdd7796
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@superm1 can you verify the Debian stuff please.
@hughsie Wrapper is working fine. I added some minor fixes to the tests and docs. I'll push force one more change in a minute. The RPM packages must require specific versions of the libjcat and fwupd. |
This patch is adding the fwupd wrapper for Qubes. The wrapper provides fwupd functionalities for Qubes R4.1. It creates three packages (two RPMs and one Debian package): fwupd-qubes-dom0 (RPM) fwupd-qubes-vm (RPM) fwupd-qubes-vm-whonix (deb) More information about the wrapper could be found in the contrib/qubes/README.md Signed-off-by: Norbert Kamiński <[email protected]>
Signed-off-by: Norbert Kamiński <[email protected]>
fdd7796
to
7ea1bc9
Compare
This patch is adding the fwupd wrapper for Qubes OS. The wrapper provides fwupd functionalities for Qubes R4.1.
It creates three packages (two RPMs and one deb):
fwupd-qubes-dom0 (RPM)
fwupd-qubes-vm (RPM)
fwupd-qubes-vm-whonix (deb)
More information about the wrapper could be found in the contrib/qubes/README.md
Signed-off-by: Norbert Kamiński [email protected]
Type of pull request: