diff --git a/.lgtm.yml b/.lgtm.yml
index bc3068896..3780cc6c8 100644
--- a/.lgtm.yml
+++ b/.lgtm.yml
@@ -8,7 +8,6 @@ extraction:
- python3-gi
- libarchive-tools
- libcogl-pango-dev
- - python3-pil
- python3-pip
- python3-setuptools
- python3-wheel
diff --git a/contrib/PKGBUILD b/contrib/PKGBUILD
index ce5c58f7b..383c8498f 100644
--- a/contrib/PKGBUILD
+++ b/contrib/PKGBUILD
@@ -9,7 +9,7 @@ arch=('i686' 'x86_64')
url='https://github.com/fwupd/fwupd'
license=('GPL2')
depends=('libgusb' 'modemmanager' 'tpm2-tss')
-makedepends=('meson' 'valgrind' 'gobject-introspection' 'gtk-doc' 'python-pillow' 'git'
+makedepends=('meson' 'valgrind' 'gobject-introspection' 'gtk-doc' 'git'
'python-cairo' 'noto-fonts' 'noto-fonts-cjk' 'python-gobject' 'vala'
'curl' 'polkit' 'gcab' 'xz')
diff --git a/contrib/ci/dependencies.xml b/contrib/ci/dependencies.xml
index 9bcf839be..9b65eb519 100644
--- a/contrib/ci/dependencies.xml
+++ b/contrib/ci/dependencies.xml
@@ -1092,24 +1092,6 @@
-
-
- python-pillow
-
-
- python3-pillow
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/contrib/fwupd.spec.in b/contrib/fwupd.spec.in
index 658c2ee11..87fc73db7 100644
--- a/contrib/fwupd.spec.in
+++ b/contrib/fwupd.spec.in
@@ -89,7 +89,7 @@ BuildRequires: libqmi-devel >= 1.22.0
%if 0%{?have_uefi}
BuildRequires: efivar-devel >= 33
-BuildRequires: python3 python3-cairo python3-gobject python3-pillow
+BuildRequires: python3 python3-cairo python3-gobject
BuildRequires: pango-devel
BuildRequires: cairo-devel cairo-gobject-devel
BuildRequires: freetype
diff --git a/plugins/uefi-capsule/make-images.py b/plugins/uefi-capsule/make-images.py
index f1b00b8d6..1d15bcf38 100755
--- a/plugins/uefi-capsule/make-images.py
+++ b/plugins/uefi-capsule/make-images.py
@@ -16,6 +16,8 @@ import argparse
import tarfile
import math
import io
+import struct
+
from typing import Dict, Optional, Any
import cairo
@@ -24,7 +26,6 @@ import gi
gi.require_version("Pango", "1.0")
gi.require_version("PangoCairo", "1.0")
from gi.repository import Pango, PangoCairo
-from PIL import Image
def languages(podir: str):
@@ -60,6 +61,33 @@ class PotFile:
continue
+def _cairo_surface_write_to_bmp(img: cairo.ImageSurface) -> bytes:
+
+ data = bytes(img.get_data())
+ return (
+ b"BM"
+ + struct.pack(
+ " int:
# open output archive
@@ -164,20 +192,14 @@ def main(args) -> int:
fs.foreach(do_write, None)
img.flush()
- # write PNG
- with io.BytesIO() as io_png:
- img.write_to_png(io_png)
- io_png.seek(0)
-
- # convert to BMP and add to archive
- with io.BytesIO() as io_bmp:
- pimg = Image.open(io_png)
- pimg.save(io_bmp, format="BMP")
- filename = "fwupd-{}-{}-{}.bmp".format(lang, width, height)
- tarinfo = tarfile.TarInfo(filename)
- tarinfo.size = io_bmp.tell()
- io_bmp.seek(0)
- tar.addfile(tarinfo, fileobj=io_bmp)
+ # convert to BMP and add to archive
+ with io.BytesIO() as io_bmp:
+ io_bmp.write(_cairo_surface_write_to_bmp(img))
+ filename = "fwupd-{}-{}-{}.bmp".format(lang, width, height)
+ tarinfo = tarfile.TarInfo(filename)
+ tarinfo.size = io_bmp.tell()
+ io_bmp.seek(0)
+ tar.addfile(tarinfo, fileobj=io_bmp)
# success
return 0
diff --git a/po/test-deps b/po/test-deps
index f5276daa5..27b4055ba 100755
--- a/po/test-deps
+++ b/po/test-deps
@@ -34,12 +34,6 @@ except ValueError:
print("Error: missing cairo gobject introspection library")
err = 1
-try:
- from PIL import Image
-except ImportError:
- print("Error: missing dependency python pillow (python3-pil)")
- err = 1
-
try:
import cairo
except ImportError:
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index a42ec3ffa..03698961a 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -163,7 +163,6 @@ parts:
stage-packages:
- python3-gi
- python3-gi-cairo
- - python3-pil
prime:
- -etc
- -usr