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