Remove the libfwup dependency from fwupd

In Fedora the only user of libfwupdate is fwupd and the fwupdate command line
tool. It makes sense to absorb the libfwupdate library interface into the
uefi plugin in fwupd. Benefits I can see include:

* fwupd and fwupdate are very similar names; a lot of OEMs are confused

* fwupd already depends on efivar for other things

* We are maintaining an artificial library interface

* The CI and translation hooks are already in place for fwupd

* We don't need to check for features or versions in fwupd, we can just develop
the feature (e.g. BGRT) all in one place.
This commit is contained in:
Richard Hughes 2018-06-25 16:21:35 +01:00
parent 1ccf35a9e4
commit ebbb13c2b4
10 changed files with 47 additions and 131 deletions

View File

@ -8,7 +8,7 @@ pkgdesc='A simple daemon to allow session software to update firmware'
arch=('i686' 'x86_64') arch=('i686' 'x86_64')
url='https://github.com/hughsie/fwupd' url='https://github.com/hughsie/fwupd'
license=('GPL2') license=('GPL2')
depends=('appstream-glib' 'fwupdate') depends=('appstream-glib')
makedepends=('meson' 'valgrind' 'gobject-introspection' 'gtk-doc' 'python-pillow' 'git' makedepends=('meson' 'valgrind' 'gobject-introspection' 'gtk-doc' 'python-pillow' 'git'
'python-cairo' 'ttf-dejavu' 'adobe-source-han-sans-cn-fonts' 'python-gobject' 'vala') 'python-cairo' 'ttf-dejavu' 'adobe-source-han-sans-cn-fonts' 'python-gobject' 'vala')

View File

@ -260,37 +260,6 @@
<package variant="x86_64" /> <package variant="x86_64" />
</distro> </distro>
</dependency> </dependency>
<dependency type="build" id="libfwup-dev">
<distro id="arch">
<package>fwupdate</package>
</distro>
<distro id="centos">
<package>fwupdate-devel</package>
</distro>
<distro id="fedora">
<package>fwupdate-devel</package>
</distro>
<distro id="debian">
<control>
<version>(>= 10-3)</version>
<inclusive>amd64</inclusive>
<inclusive>arm64</inclusive>
<inclusive>armhf</inclusive>
<inclusive>i386</inclusive>
</control>
<package variant="x86_64" />
<package variant="i386" />
</distro>
<distro id="ubuntu">
<control>
<inclusive>amd64</inclusive>
<inclusive>arm64</inclusive>
<inclusive>armhf</inclusive>
<inclusive>i386</inclusive>
</control>
<package variant="x86_64" />
</distro>
</dependency>
<dependency type="build" id="gcab"> <dependency type="build" id="gcab">
<distro id="centos"> <distro id="centos">
<package /> <package />
@ -586,6 +555,38 @@
</distro> </distro>
</dependency> </dependency>
<dependency type="build" id="libefivar-dev"> <dependency type="build" id="libefivar-dev">
<distro id="arch">
<package>efivar</package>
</distro>
<distro id="centos">
<package>efivar-devel</package>
</distro>
<distro id="fedora">
<package>efivar-devel</package>
</distro>
<distro id="debian">
<control>
<inclusive>amd64</inclusive>
<inclusive>arm64</inclusive>
<inclusive>armhf</inclusive>
<inclusive>armel</inclusive>
<inclusive>i386</inclusive>
</control>
<package variant="x86_64" />
<package variant="i386" />
</distro>
<distro id="ubuntu">
<control>
<inclusive>amd64</inclusive>
<inclusive>arm64</inclusive>
<inclusive>armhf</inclusive>
<inclusive>armel</inclusive>
<inclusive>i386</inclusive>
</control>
<package variant="x86_64" />
</distro>
</dependency>
<dependency type="build" id="libefiboot-dev">
<distro id="debian"> <distro id="debian">
<control> <control>
<inclusive>amd64</inclusive> <inclusive>amd64</inclusive>

View File

@ -32,8 +32,7 @@ Package: fwupd
Architecture: linux-any Architecture: linux-any
Depends: ${misc:Depends}, Depends: ${misc:Depends},
${shlibs:Depends} ${shlibs:Depends}
Recommends: fwupdate, Recommends: python3
python3
Breaks: gir1.2-dfu-1.0 (<< 0.9.7-1), Breaks: gir1.2-dfu-1.0 (<< 0.9.7-1),
libdfu1 (<< 0.9.7-1), libdfu1 (<< 0.9.7-1),
libdfu-dev (<< 0.9.7-1) libdfu-dev (<< 0.9.7-1)

View File

@ -13,6 +13,12 @@ ifneq ($(CI),)
export CI=--werror export CI=--werror
endif endif
export UEFI=-Dplugin_uefi=false
DEB_TARGET_ARCH ?= $(shell dpkg-architecture -qDEB_TARGET_ARCH)
ifeq ($(DEB_TARGET_ARCH),$(filter $(DEB_TARGET_ARCH),amd64 i386 armhf arm64))
export UEFI=-Dplugin_uefi=true
endif
%: %:
dh $@ --with gir,systemd dh $@ --with gir,systemd
@ -20,11 +26,6 @@ override_dh_auto_clean:
rm -fr debian/build rm -fr debian/build
override_dh_auto_configure: override_dh_auto_configure:
if pkg-config --exists fwup; then \
export UEFI="-Dplugin_uefi=true"; \
else \
export UEFI="-Dplugin_uefi=false"; \
fi; \
if pkg-config --exists libsmbios_c; then \ if pkg-config --exists libsmbios_c; then \
export DELL="-Dplugin_dell=true -Dplugin_synaptics=true"; \ export DELL="-Dplugin_dell=true -Dplugin_synaptics=true"; \
else \ else \

View File

@ -11,12 +11,12 @@
%global enable_tests 1 %global enable_tests 1
%global enable_dummy 1 %global enable_dummy 1
# fwupdate is only available on these arches # fwup.efi is only available on these arches
%ifarch x86_64 aarch64 %ifarch x86_64 aarch64
%global have_uefi 1 %global have_uefi 1
%endif %endif
# libsmbios is only available on x86, and fwupdate is available on just x86_64 # libsmbios is only available on x86
%ifarch x86_64 %ifarch x86_64
%global have_dell 1 %global have_dell 1
%endif %endif
@ -56,6 +56,7 @@ BuildRequires: vala
BuildRequires: bash-completion BuildRequires: bash-completion
%if 0%{?have_uefi} %if 0%{?have_uefi}
BuildRequires: efivar-devel >= 33
BuildRequires: python3 python3-cairo python3-gobject python3-pillow BuildRequires: python3 python3-cairo python3-gobject python3-pillow
BuildRequires: pango-devel BuildRequires: pango-devel
BuildRequires: cairo-devel cairo-gobject-devel BuildRequires: cairo-devel cairo-gobject-devel
@ -67,14 +68,10 @@ BuildRequires: gnu-efi-devel
%endif %endif
%if 0%{?have_dell} %if 0%{?have_dell}
BuildRequires: efivar-devel BuildRequires: efivar-devel >= 33
BuildRequires: libsmbios-devel >= 2.3.0 BuildRequires: libsmbios-devel >= 2.3.0
%endif %endif
%if 0%{?have_uefi}
BuildRequires: fwupdate-devel >= 7
%endif
Requires(post): systemd Requires(post): systemd
Requires(preun): systemd Requires(preun): systemd
Requires(postun): systemd Requires(postun): systemd

View File

@ -110,23 +110,6 @@
} }
] ]
}, },
{
"name": "fwupdate",
"buildsystem": "simple",
"build-commands": ["make -C linux prefix=/app libdir=/app/lib", "EFIDIR=/boot/efi make -C linux install prefix=/app libdir=/app/lib"],
"cleanup": [
"/bin/fwupdate",
"/lib/systemd/system/fwupdate-cleanup.service",
"/libexec/fwupdate/cleanup"
],
"sources": [
{
"type": "archive",
"url": "https://github.com/rhboot/fwupdate/releases/download/11/fwupdate-11.tar.bz2",
"sha256": "d350eae66215c90fdc70f46ea734dedbfe6006ec21b7e764114b7d9e283e4abe"
}
]
},
{ {
"name": "libsmbios_c", "name": "libsmbios_c",
"config-opts": ["--disable-doxygen", "config-opts": ["--disable-doxygen",

View File

@ -63,31 +63,6 @@ parts:
- -share/ - -share/
- -etc/ - -etc/
- -lib/*.a - -lib/*.a
libfwup-dev:
plugin: make
source: https://github.com/rhboot/fwupdate.git
source-type: git
make-parameters:
- EFIDIR=ubuntu
- GNUEFIDIR=/usr/lib
- LIBDIR=$SNAPCRAFT_STAGE/usr/lib/x86_64-linux-gnu
- libdir=/usr/lib/x86_64-linux-gnu
- PKG_CONFIG_PATH=$SNAPCRAFT_STAGE/usr/lib/x86_64-linux-gnu/pkgconfig
- --eval=export PKG_CONFIG_PATH
build-packages:
- elfutils
- gnu-efi
- libasm1
- libdw1
prime:
- -usr/lib/debug
- -usr/lib/systemd
- -usr/src
- -usr/share
- -usr/lib/*/pkgconfig
- -usr/include
- -usr/bin
after: [libsmbios, libefivar-fixpkgconfig]
meson: meson:
plugin: python plugin: python
source: https://github.com/mesonbuild/meson.git source: https://github.com/mesonbuild/meson.git
@ -275,7 +250,7 @@ parts:
- -usr/share/upstart - -usr/share/upstart
- -usr/lib/*/glib-2.0 - -usr/lib/*/glib-2.0
- -usr/lib/*/pkgconfig - -usr/lib/*/pkgconfig
after: [appstream-glib-dev, libfwup-dev, gudev, gusb, gnu-efi, libsmbios, libefivar-fixpkgconfig] after: [appstream-glib-dev, gudev, gusb, gnu-efi, libsmbios, libefivar-fixpkgconfig]
fix-bash-completion: fix-bash-completion:
plugin: make plugin: make
source: contrib/snap/fix-bash-completion source: contrib/snap/fix-bash-completion

View File

@ -61,32 +61,6 @@ parts:
- -share/ - -share/
- -etc/ - -etc/
- -lib/*.a - -lib/*.a
libfwup-dev:
plugin: make
#fwupdate 11 FTBFS: see https://github.com/rhboot/fwupdate/pull/113
source: https://github.com/rhboot/fwupdate.git
source-type: git
make-parameters:
- EFIDIR=ubuntu
- GNUEFIDIR=/usr/lib
- LIBDIR=$SNAPCRAFT_STAGE/usr/lib/x86_64-linux-gnu
- libdir=/usr/lib/x86_64-linux-gnu
- PKG_CONFIG_PATH=$SNAPCRAFT_STAGE/usr/lib/x86_64-linux-gnu/pkgconfig
- --eval=export PKG_CONFIG_PATH
build-packages:
- elfutils
- gnu-efi
- libasm1
- libdw1
prime:
- -usr/lib/debug
- -usr/lib/systemd
- -usr/src
- -usr/share
- -usr/lib/*/pkgconfig
- -usr/include
- -usr/bin
after: [libsmbios, libefivar-fixpkgconfig]
meson: meson:
plugin: python plugin: python
source: https://github.com/mesonbuild/meson/releases/download/0.46.1/meson-0.46.1.tar.gz source: https://github.com/mesonbuild/meson/releases/download/0.46.1/meson-0.46.1.tar.gz
@ -276,7 +250,7 @@ parts:
- -usr/share/upstart - -usr/share/upstart
- -usr/lib/*/glib-2.0 - -usr/lib/*/glib-2.0
- -usr/lib/*/pkgconfig - -usr/lib/*/pkgconfig
after: [appstream-glib-dev, libfwup-dev, gudev, gusb, gnu-efi, libefivar-fixpkgconfig, libsmbios] after: [appstream-glib-dev, gudev, gusb, gnu-efi, libefivar-fixpkgconfig, libsmbios]
fix-bash-completion: fix-bash-completion:
plugin: make plugin: make
source: contrib/snap/fix-bash-completion source: contrib/snap/fix-bash-completion

View File

@ -210,16 +210,7 @@ if get_option('plugin_altos')
endif endif
if get_option('plugin_uefi') if get_option('plugin_uefi')
fwup = dependency('fwup', version : '>= 10') efivar = dependency('efivar', version : '>= 33')
if fwup.version().version_compare('>= 11')
conf.set('HAVE_FWUP_GET_ESP_MOUNTPOINT', '1')
endif
if fwup.version().version_compare('>= 12')
conf.set('HAVE_FWUP_VERSION', '1')
endif
conf.set_quoted('LIBFWUP_LIBRARY_VERSION', fwup.version())
efivar = dependency('efivar')
conf.set_quoted('EFIVAR_LIBRARY_VERSION', efivar.version()) conf.set_quoted('EFIVAR_LIBRARY_VERSION', efivar.version())
efiboot = dependency('efiboot') efiboot = dependency('efiboot')
objcopy = find_program ('objcopy') objcopy = find_program ('objcopy')
@ -251,7 +242,6 @@ endif
if get_option('plugin_dell') if get_option('plugin_dell')
libsmbios_c = dependency('libsmbios_c', version : '>= 2.4.0') libsmbios_c = dependency('libsmbios_c', version : '>= 2.4.0')
efivar = dependency('efivar') efivar = dependency('efivar')
fwup = dependency('fwup', version : '>= 5')
conf.set('HAVE_DELL', '1') conf.set('HAVE_DELL', '1')
if not get_option('plugin_uefi') if not get_option('plugin_uefi')
error('plugin_dell also needs plugin_uefi to work') error('plugin_dell also needs plugin_uefi to work')

View File

@ -2491,10 +2491,6 @@ main (int argc, char *argv[])
G_USB_MAJOR_VERSION, G_USB_MAJOR_VERSION,
G_USB_MINOR_VERSION, G_USB_MINOR_VERSION,
G_USB_MICRO_VERSION); G_USB_MICRO_VERSION);
#ifdef LIBFWUP_LIBRARY_VERSION
g_print ("\tfwupdate:\t%s\n",
LIBFWUP_LIBRARY_VERSION);
#endif
#ifdef EFIVAR_LIBRARY_VERSION #ifdef EFIVAR_LIBRARY_VERSION
g_print ("\tefivar:\t%s\n", g_print ("\tefivar:\t%s\n",
EFIVAR_LIBRARY_VERSION); EFIVAR_LIBRARY_VERSION);