fwupd/contrib
Richard Hughes 60d266cbc6 Add support for UF2 devices
A UF2 device exposes a VFAT block device (sometimes called a Mass
Storage Device) which has a virtual file called `INFO_UF2.TXT` where
metadata can be read. It may also have a the current firmware exported
as a file called `CURRENT.UF2` which is in a 512 byte-block UF2 format.

Writing any file to the MSD will cause the firmware to be written.
Sometimes the device will restart and the volume will be unmounted
and then mounted again. In some cases the volume may not “come back”
until the user manually puts the device back in programming mode.

Match the block devices using the VID*PID, UUID or label, and then
create a UF2 device which can be used to flash firmware.

Note: We only read metadata from allow-listed IDs to avoid causing
regressions on non-UF2 volumes. To get the UUID and label you can
use commands like:

    udisksctl info -b /dev/sda1
2021-12-21 10:06:18 +00:00
..
ci Add support for UF2 devices 2021-12-21 10:06:18 +00:00
debian Make Upower and powerd support optional 2021-11-27 18:46:27 +00:00
firmware_packager firmware_packager.py: Fix templated values in XML 2021-11-14 19:55:25 -06:00
flatpak@3e60bea4e7 contrib: Adjust flatpak build for moving to flathub 2018-11-01 06:51:23 -05:00
freebsd altos: Remove support for the ChaosKey 2021-11-15 15:17:38 +00:00
qubes trivial: Fix spelling of fwupd 2021-11-01 08:50:51 +00:00
snap trivial: snap: don't try to copy /var if it's not in the snap 2021-12-17 11:05:05 -06:00
standalone-installer trivial: update markdown for pre-commit style 2021-07-18 14:42:47 -05:00
vscode trivial: docs not really required for debugging builds 2021-10-29 12:21:55 +08:00
build-openbmc.sh Make more plugins optional 2021-11-29 09:30:57 +00:00
codespell.cfg trivial: add a codespell pre-commit hook 2021-06-16 06:41:46 -05:00
fix_translations.py trivial: Fix Python linting issue spotted by Codacy 2021-07-14 15:20:57 +01:00
fwupd.spec.in Add support for UF2 devices 2021-12-21 10:06:18 +00:00
generate-version-script.py trivial: update python black style to 21.6b0 2021-06-16 06:41:46 -05:00
meson.build Rename some confusing API 2021-08-06 19:49:53 +01:00
mingw64.cross Allow building on Windows with MinGW 2019-12-03 16:33:43 +00:00
PKGBUILD Make Upower and powerd support optional 2021-11-27 18:46:27 +00:00
prepare-system trivial: symlink in grub configuration too 2021-07-28 10:25:47 -05:00
README.md trivial: update markdown for pre-commit style 2021-07-18 14:42:47 -05:00
reformat-code.py trivial: make contrib/reformat-code.py easier to use 2021-07-30 06:42:57 -05:00
run-tests.sh Offer to run tests before pushing in contrib/setup 2021-11-23 15:41:46 +01:00
setup Offer to run tests before pushing in contrib/setup 2021-11-23 15:41:46 +01:00
setup-win32.nsi.in trivial: allow wildcard so same build script works on older fedora 2021-12-15 06:46:27 -06:00

Distribution packages

The relevant packaging necessary to generate RPM, DEB and PKG distribution packages is contained here. It is used regularly for continuous integration using Travis CI. The generated packages can be used on a distribution such as Fedora, Debian, Ubuntu or Arch Linux.

The build can be performed using Linux containers with Docker.

RPM packages

A Dockerfile for Fedora can be generated in contrib.

To prepare the Docker container run this command:

OS=fedora ./generate_docker.py build

To build the RPMs run this command (from the root of your git checkout):

docker run --privileged -t -v `pwd`:/github/workspace fwupd-fedora

RPMs will be made available in your working directory when complete.

To build additional RPM packages for Qubes OS (fwupd-qubes-dom0 and fwupd-qubes-vm) add QUBES=true environment variable:

docker run --privileged -e QUBES=true  -t -v `pwd`:/github/workspace fwupd-fedora

DEB packages

A Dockerfile for Debian or Ubuntu can be generated in contrib.

To prepare the Docker container run one of these commands:

OS=debian-x86_64 ./generate_docker.py build
OS=debian-i386 ./generate_docker.py build
OS=ubuntu-x86_64 ./generate_docker.py build

To build the DEBs run one of these commands (from the root of your git checkout):

docker run --privileged -t -v `pwd`:/github/workspace fwupd-debian-x86_64
docker run --privileged -t -v `pwd`:/github/workspace fwupd-debian-i386
docker run --privileged -t -v `pwd`:/github/workspace fwupd-ubuntu-x86_64

DEBs will be made available in your working directory when complete.

To build additional DEB package for Qubes OS (fwupd-qubes-vm-whonix) add QUBES=true environment variable:

docker run --privileged -t -v `pwd`:/github/workspace fwupd-debian-x86_64-qubes

PKG packages

A Dockerfile for Arch can be generated in contrib.

To prepare the Docker container run this command:

OS=arch ./generate_docker.py

To build the PKGs run this command (from the root of your git checkout):

docker run -t -v `pwd`:/build fwupd-arch

PKGs will be made available in your working directory when complete.

Additional packages

Submissions for generating additional packages for other distribution mechanisms are also welcome. All builds should occur in Docker containers.

Please feel free to submit the following:

  • Dockerfile for the container for your distro
  • Relevant technical packaging scripts (such as ebuilds, spec file etc)
  • A shell script that can be launched in the container to generate distribution packages