The LVFS website
Clone or download
hughsie Detect markdown ordered list elements
If entering update descriptions like:

    This stable release fixes the following issues:

    1. Disable auto-sleep when the device is connected to a USB port
    2. Improve performance of the analog sticks

...then treat the numeric-prefixed lines as <li> elements rather than <p>.
Latest commit 9b51719 Dec 10, 2018

Linux Vendor Firmware Service

This is the website for the Linux Vendor Firmware Service

Missing firmware at LVFS

If your device is missing a firmware update that you think should be on LVFS please file an issue against this project and apply the Github label missing-firmware.

Setting up the web service

The official instance is set up using puppet on RHEL 7, on which you could use:

yum install
yum install
yum install
yum install
yum install
yum install puppet
git clone
cd lvfs-puppet
hostname admin
puppet module install puppetlabs-vcsrepo --version 2.2.0
cp keys.pp
vim keys.pp
puppet apply .

You can set up the database manually using:

FLASK_APP=app/ flask-2 initdb
FLASK_APP=app/ flask-2 modifydb

Generating a SSL certificate

IMPORTANT: The LVFS needs to be hosted over SSL. If you want to use LetsEncrypt you can just do certbot --nginx.

Installing the test key

Use the test GPG key (with the initial password of fwupd).

gpg2 --homedir=/var/www/lvfs/.gnupg --allow-secret-key-import --import /var/www/lvfs/stable/contrib/fwupd-test-private.key
gpg2 --homedir=/var/www/lvfs/.gnupg --list-secret-keys
gpg2 --homedir=/var/www/lvfs/.gnupg --edit-key D64F5C21
gpg> passwd
gpg> trust
gpg> quit

If passwd cannot be run due to being in a sudo session you can do:

gpg-agent --homedir=/var/www/lvfs/.gnupg --daemon


script /dev/null

Using the production key

Use the secure GPG key (with the long secret password).

gpg2 --homedir=/var/www/lvfs/.gnupg --allow-secret-key-import --import fwupd-secret-signing-key.key
gpg2 --homedir=/var/www/lvfs/.gnupg --list-secret-keys
gpg2 --homedir=/var/www/lvfs/.gnupg --edit-key 4538BAC2
  gpg> passwd
  gpg> quit

Generating metadata for pre-signed firmware

If the firmware is already signed with a PKCS-7 or GPG signature and is going to be shipped out-of-band from the usual LVFS workflow then can be used to generate metadata for /usr/share/fwupd/remotes.d/vendor/firmware/.