Switch the Windows installer from NSIS to MSI

This means we get a few bugs fixed:

 * We appear in the Add/Remove Programs UI
 * We have an uninstaller that works on Windows 10
 * The installation is pretty, and scriptable
 * We actually install the translations
This commit is contained in:
Richard Hughes 2022-05-06 15:01:38 +01:00
parent e76587ce95
commit 77bb1ff479
10 changed files with 290 additions and 165 deletions

View File

@ -20,33 +20,6 @@ jobs:
docker:
- image: fedora:36
steps:
- run:
name: "Install deps"
command: dnf install -y diffutils
gettext
glib2-devel
git-core
gnutls-utils
jq
meson
git
gcc
gcab
ca-certificates
python3-pip
mingw32-nsis
mingw64-brotli
mingw64-gcc
mingw64-gettext
mingw64-pkg-config
mingw64-glib2
mingw64-gnutls
mingw64-libusbx
mingw64-sqlite
mingw64-libarchive
mingw64-json-glib
mingw64-curl
wine
- checkout
- run:
name: "Build Win32"
@ -54,7 +27,7 @@ jobs:
- persist_to_workspace:
root: .
paths:
- "dist/setup/*.exe"
- "dist/setup/*.msi"
- "dist/VERSION"
- "dist/news.txt"
- store_artifacts:

92
contrib/build-windows.sh Executable file
View File

@ -0,0 +1,92 @@
#!/bin/sh
set -e
root=$(pwd)
export DESTDIR=${root}/dist
build=$root/build-win32
mkdir -p "$build" && cd "$build"
# install deps
if [ ! -f /usr/share/mingw/toolchain-mingw64.meson ]; then
./contrib/ci/fwupd_setup_helpers.py -v mingw64 install-dependencies
fi
# try to keep this and ../contrib/ci/build_windows.sh in sync as much as makes sense
meson .. \
--cross-file=/usr/share/mingw/toolchain-mingw64.meson \
--prefix=/ \
--sysconfdir="etc" \
--libexecdir="bin" \
--bindir="bin" \
-Dbuild=all \
-Ddocs=none \
-Dhsi=false \
-Dman=false \
-Dfish_completion=false \
-Dbash_completion=false \
-Dfirmware-packager=false \
-Dmetainfo=false \
-Dcompat_cli=false \
-Dsoup_session_compat=false \
-Dgcab:introspection=false \
-Dgcab:docs=false \
-Dgcab:nls=false \
-Dgcab:vapi=false \
-Dgcab:tests=false \
-Dlibxmlb:introspection=false \
-Dlibxmlb:gtkdoc=false \
-Dlibjcat:man=false \
-Dlibjcat:gpg=false \
-Dlibjcat:tests=false \
-Dlibjcat:introspection=false \
-Dgusb:tests=false \
-Dgusb:docs=false \
-Dgusb:introspection=false \
-Dgusb:vapi=false
# run tests
export WINEPATH="/usr/x86_64-w64-mingw32/sys-root/mingw/bin/;$build/libfwupd/;$build/libfwupdplugin/;$build/subprojects/libxmlb/src/;$build/subprojects/gcab/libgcab/;$build/subprojects/libjcat/libjcat/;$build/subprojects/gusb/gusb/"
ninja -C "$build" install
ninja -C "$build" test
CERTDIR=/etc/pki/tls/certs
MINGW32BINDIR=/usr/x86_64-w64-mingw32/sys-root/mingw/bin
# copy deps
cp -f -v $MINGW32BINDIR/curl.exe \
$MINGW32BINDIR/gspawn-win64-helper-console.exe \
$MINGW32BINDIR/gspawn-win64-helper.exe \
$MINGW32BINDIR/iconv.dll \
$MINGW32BINDIR/libarchive-13.dll \
$MINGW32BINDIR/libbrotlicommon.dll \
$MINGW32BINDIR/libbrotlidec.dll \
$MINGW32BINDIR/libbz2-1.dll \
$MINGW32BINDIR/libcrypto-1_1-x64.dll \
$MINGW32BINDIR/libcurl-4.dll \
$MINGW32BINDIR/libffi-*.dll \
$MINGW32BINDIR/libgcc_s_seh-1.dll \
$MINGW32BINDIR/libgio-2.0-0.dll \
$MINGW32BINDIR/libglib-2.0-0.dll \
$MINGW32BINDIR/libgmodule-2.0-0.dll \
$MINGW32BINDIR/libgmp-10.dll \
$MINGW32BINDIR/libgnutls-30.dll \
$MINGW32BINDIR/libgobject-2.0-0.dll \
$MINGW32BINDIR/libhogweed-*.dll \
$MINGW32BINDIR/libidn2-0.dll \
$MINGW32BINDIR/libintl-8.dll \
$MINGW32BINDIR/libjson-glib-1.0-0.dll \
$MINGW32BINDIR/liblzma-5.dll \
$MINGW32BINDIR/libnettle-*.dll \
$MINGW32BINDIR/libp11-kit-0.dll \
$MINGW32BINDIR/libpcre-1.dll \
$MINGW32BINDIR/libsqlite3-0.dll \
$MINGW32BINDIR/libssh2-1.dll \
$MINGW32BINDIR/libssl-1_1-x64.dll \
$MINGW32BINDIR/libssp-0.dll \
$MINGW32BINDIR/libtasn1-6.dll \
$MINGW32BINDIR/libusb-1.0.dll \
$MINGW32BINDIR/libwinpthread-1.dll \
$MINGW32BINDIR/libxml2-2.dll \
$MINGW32BINDIR/zlib1.dll \
"$DESTDIR/bin/"
cp -f -v "$CERTDIR/ca-bundle.crt" "$DESTDIR/bin/"

View File

@ -1,10 +1,28 @@
#!/bin/sh
set -e
# if invoked outside of CI
if [ "$CI" != "true" ]; then
echo "Not running in CI, please manually configure Windows build"
exit 1
fi
# install deps
./contrib/ci/fwupd_setup_helpers.py --yes -o fedora -v mingw64 install-dependencies
# update things that are not yet in Fedora updates-testing
if [ "$(id -u)" -eq 0 ]; then
dnf install -y \
https://kojipkgs.fedoraproject.org//packages/msitools/0.101.32/5.fc36/x86_64/msitools-0.101.32-5.fc36.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/msitools/0.101.32/5.fc36/x86_64/libmsi1-0.101.32-5.fc36.x86_64.rpm
fi
#prep
export LC_ALL=C.UTF-8
root=$(pwd)
export DESTDIR=${root}/dist
build=$root/build-win32
rm -rf $DESTDIR $build
# For logitech bulk controller being disabled (-Dplugin_logitech_bulkcontroller=disabled):
@ -14,9 +32,8 @@ rm -rf $DESTDIR $build
# 2. add protoc = /path/to/protoc-c.exe in mingw64.cross
# 3. Only enable when not a tagged release (Unsupported by Logitech)
#build
# try to keep this and ../contrib/build-windows.sh in sync as much as makes sense
mkdir -p $build $DESTDIR && cd $build
python3 -m pip install --user "meson >= 0.60.0"
meson .. \
--cross-file=/usr/share/mingw/toolchain-mingw64.meson \
--prefix=/ \
@ -27,6 +44,9 @@ meson .. \
-Ddocs=none \
-Dhsi=false \
-Dman=false \
-Dfish_completion=false \
-Dbash_completion=false \
-Dfirmware-packager=false \
-Dmetainfo=false \
-Dcompat_cli=false \
-Dsoup_session_compat=false \
@ -39,14 +59,22 @@ meson .. \
-Dlibxmlb:gtkdoc=false \
-Dlibjcat:man=false \
-Dlibjcat:gpg=false \
-Dlibjcat:tests=false \
-Dlibjcat:introspection=false \
-Dgusb:tests=false \
-Dgusb:docs=false \
-Dgusb:introspection=false \
-Dgusb:vapi=false $@
VERSION=$(meson introspect . --projectinfo | jq -r .version)
ninja -v
ninja -v install
# run tests
export WINEPATH="/usr/x86_64-w64-mingw32/sys-root/mingw/bin/;$build/libfwupd/;$build/libfwupdplugin/;$build/subprojects/libxmlb/src/;$build/subprojects/gcab/libgcab/;$build/subprojects/libjcat/libjcat/;$build/subprojects/gusb/gusb/"
ninja --verbose -C "$build" -v
ninja -C "$build" test
# switch to release optimizations
meson configure -Dtests=false -Dbuildtype=release
ninja -C "$build" -v install
#generate news release
cd $root
@ -57,25 +85,94 @@ echo $VERSION > $DESTDIR/VERSION
sed -i 's,UpdateMotd=.*,UpdateMotd=false,' $DESTDIR/etc/fwupd/daemon.conf
# create a setup binary
cd $DESTDIR
mkdir -p $DESTDIR/setup
makensis -NOCD $build/contrib/setup-win32.nsi
CERTDIR=/etc/pki/tls/certs
MINGW32BINDIR=/usr/x86_64-w64-mingw32/sys-root/mingw/bin
#so that it's actually executable
cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/*.dll bin
# deps
find $MINGW32BINDIR \
-name curl.exe \
-o -name gspawn-win64-helper-console.exe \
-o -name gspawn-win64-helper.exe \
-o -name iconv.dll \
-o -name libarchive-13.dll \
-o -name libbrotlicommon.dll \
-o -name libbrotlidec.dll \
-o -name libbz2-1.dll \
-o -name libcrypto-1_1-x64.dll \
-o -name libcurl-4.dll \
-o -name "libffi-*.dll" \
-o -name libgcc_s_seh-1.dll \
-o -name libgio-2.0-0.dll \
-o -name libglib-2.0-0.dll \
-o -name libgmodule-2.0-0.dll \
-o -name libgmp-10.dll \
-o -name libgnutls-30.dll \
-o -name libgobject-2.0-0.dll \
-o -name "libhogweed-*.dll" \
-o -name libidn2-0.dll \
-o -name libintl-8.dll \
-o -name libjson-glib-1.0-0.dll \
-o -name liblzma-5.dll \
-o -name "libnettle-*.dll" \
-o -name libp11-kit-0.dll \
-o -name libpcre-1.dll \
-o -name libsqlite3-0.dll \
-o -name libssh2-1.dll \
-o -name libssl-1_1-x64.dll \
-o -name libssp-0.dll \
-o -name libtasn1-6.dll \
-o -name libusb-1.0.dll \
-o -name libwinpthread-1.dll \
-o -name libxml2-2.dll \
-o -name zlib1.dll \
| wixl-heat \
-p $MINGW32BINDIR/ \
--win64 \
--directory-ref BINDIR \
--var "var.MINGW32BINDIR" \
--component-group "CG.fwupd-deps" | \
tee $build/contrib/fwupd-deps.wxs
#remove static archives
find -type f -print0 -name "*.dll.a" | xargs rm -f
# CA bundle
echo $CERTDIR/ca-bundle.crt | wixl-heat \
-p $CERTDIR/ \
--win64 \
--directory-ref BINDIR \
--var "var.CRTDIR" \
--component-group "CG.fwupd-certs" | \
tee "$build/contrib/fwupd-certs.wxs"
#remove stuff that we really don't need
rm -fr gcab.exe \
xb-tool.exe \
share/man \
include \
fwupd \
lib/*.a \
lib/pkgconfig/ \
var
# our files
find "$DESTDIR" | \
wixl-heat \
-p "$DESTDIR/" \
-x include/ \
-x share/fwupd/device-tests/ \
-x share/tests/ \
-x share/man/ \
-x share/doc/ \
-x lib/pkgconfig/ \
--win64 \
--directory-ref INSTALLDIR \
--var "var.DESTDIR" \
--component-group "CG.fwupd-files" | \
tee "$build/contrib/fwupd-files.wxs"
export WINEPATH="/usr/x86_64-w64-mingw32/sys-root/mingw/bin/;$build/libfwupd/;$build/libfwupdplugin/;$build/subprojects/libxmlb/src/;$build/subprojects/gcab/libgcab/;$build/subprojects/libjcat/libjcat/;$build/subprojects/gusb/gusb/"
ninja -C $build test
MSI_FILENAME="$DESTDIR/setup/fwupd-$VERSION-setup-x86_64.msi"
mkdir -p "$DESTDIR/setup"
wixl -v \
"$build/contrib/fwupd.wxs" \
"$build/contrib/fwupd-deps.wxs" \
"$build/contrib/fwupd-certs.wxs" \
"$build/contrib/fwupd-files.wxs" \
-D CRTDIR=$CERTDIR \
-D MINGW32BINDIR=$MINGW32BINDIR \
-D Win64="yes" \
-D DESTDIR="$DESTDIR" \
-o "${MSI_FILENAME}"
# check the msi archive can be installed and removed (use "wine uninstaller" to do manually)
wine msiexec /i "${MSI_FILENAME}"
ls -R ~/.wine/drive_c/Program\ Files/fwupd/
wine ~/.wine/drive_c/Program\ Files/fwupd/bin/fwupdtool get-plugins --json
wine msiexec /x "${MSI_FILENAME}"

View File

@ -62,6 +62,7 @@
</distro>
<distro id="fedora">
<package />
<package variant="mingw64" />
</distro>
<distro id="debian">
<package variant="x86_64" />
@ -96,6 +97,9 @@
<distro id="void">
<package />
</distro>
<distro id="fedora">
<package variant="mingw64">mingw64-gcc</package>
</distro>
</dependency>
<dependency type="build" id="gcc-multilib-s390x-linux-gnu">
<distro id="debian">
@ -150,6 +154,7 @@
</distro>
<distro id="fedora">
<package variant="x86_64">json-glib-devel</package>
<package variant="mingw64">mingw64-json-glib</package>
</distro>
<distro id="void">
<package variant="x86_64">json-glib-devel</package>
@ -361,6 +366,8 @@
</distro>
<distro id="fedora">
<package />
<!-- need native until meson includes https://github.com/mesonbuild/meson/pull/10291 -->
<package variant="mingw64">gcab</package>
</distro>
<distro id="void">
<package />
@ -382,6 +389,9 @@
</distro>
<distro id="fedora">
<package />
<!-- need native too until meson fixes https://github.com/mesonbuild/meson/issues/10376 -->
<package variant="mingw64">gettext</package>
<package variant="mingw64">mingw64-gettext</package>
</distro>
<distro id="void">
<package />
@ -452,6 +462,7 @@
</distro>
<distro id="fedora">
<package />
<package variant="mingw64" />
</distro>
<distro id="void">
<package />
@ -480,6 +491,9 @@
</distro>
<distro id="fedora">
<package variant="x86_64">glib2-devel</package>
<!-- need native too until meson fixes https://github.com/mesonbuild/meson/issues/10376 -->
<package variant="mingw64">glib2-devel</package>
<package variant="mingw64">mingw64-glib2</package>
</distro>
<distro id="void">
<package variant="x86_64">glib-devel</package>
@ -545,6 +559,7 @@
</distro>
<distro id="fedora">
<package variant="x86_64">gnutls-devel</package>
<package variant="mingw64">mingw64-gnutls</package>
</distro>
<distro id="void">
<package variant="x86_64">gnutls-devel</package>
@ -608,6 +623,7 @@
</distro>
<distro id="fedora">
<package />
<package variant="mingw64" />
</distro>
<distro id="ubuntu">
<control />
@ -683,6 +699,7 @@
</distro>
<distro id="fedora">
<package variant="x86_64">libarchive-devel</package>
<package variant="mingw64">mingw64-libarchive</package>
</distro>
<distro id="debian">
<control />
@ -839,6 +856,7 @@
</distro>
<distro id="fedora">
<package variant="x86_64">libgusb-devel</package>
<package variant="mingw64">mingw64-libgusb</package>
</distro>
<distro id="void">
<package variant="x86_64">libgusb-devel</package>
@ -917,6 +935,7 @@
</distro>
<distro id="fedora">
<package variant="x86_64">libcurl-devel</package>
<package variant="mingw64">mingw64-curl</package>
</distro>
<distro id="void">
<package variant="x86_64">libcurl-devel</package>
@ -992,6 +1011,7 @@
</distro>
<distro id="fedora">
<package />
<package variant="mingw64" />
</distro>
<distro id="debian">
<control />
@ -1061,6 +1081,9 @@
<control />
<package variant="x86_64" />
</distro>
<distro id="fedora">
<package variant="mingw64">mingw64-pkg-config</package>
</distro>
<distro id="void">
<package />
</distro>
@ -1330,6 +1353,7 @@
</distro>
<distro id="fedora">
<package variant="x86_64">sqlite-devel</package>
<package variant="mingw64">mingw64-sqlite</package>
</distro>
<distro id="debian">
<control />
@ -1634,4 +1658,10 @@
<package variant="x86_64" />
</distro>
</dependency>
<dependency type="build" id="wine">
<distro id="fedora">
<!-- for running the self tests -->
<package variant="mingw64">wine</package>
</distro>
</dependency>
</dependencies>

40
contrib/fwupd.wxs.in Normal file
View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define Version = @VERSION@?>
<?define UpgradeCode = "76493109-E6AB-5C48-940D-49544A688597"?>
<Product Id="76493109-E6AB-5C48-940D-49544A688596"
Name="fwupd $(var.Version) (64-bit)"
Manufacturer="the fwupd team"
Version="$(var.Version)"
UpgradeCode="$(var.UpgradeCode)"
Language="1033">
<Package InstallerVersion="200" Compressed="yes" Comments="comments" InstallScope="perMachine"/>
<Media Id="1" Cabinet="cabinet.cab" EmbedCab="yes"/>
<Property Id="ARPHELPLINK" Value="https://github.com/fwupd/fwupd"/>
<Property Id="ARPNOMODIFY" Value="1"/>
<Property Id="ARPNOREPAIR" Value="1"/>
<Property Id="ARPPRODUCTICON" Value="fwupd.ico"/>
<Property Id="ARPURLINFOABOUT" Value="https://github.com/fwupd/fwupd"/>
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="$(var.Version)" OnlyDetect="yes" Property="NEWERVERSIONDETECTED"/>
<UpgradeVersion Minimum="0.0.0" Maximum="$(var.Version)" IncludeMinimum="yes" IncludeMaximum="no" Property="OLDERVERSIONBEINGUPGRADED"/>
</Upgrade>
<Condition Message="fwupd is already installed.">NOT NEWERVERSIONDETECTED</Condition>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLDIR" Name="fwupd">
<Directory Id="BINDIR" Name="bin"/>
</Directory>
</Directory>
</Directory>
<Feature Id="Complete" Level="1">
<ComponentGroupRef Id="CG.fwupd-deps"/>
<ComponentGroupRef Id="CG.fwupd-certs"/>
<ComponentGroupRef Id="CG.fwupd-files"/>
</Feature>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>
<Icon Id="fwupd.ico" SourceFile="data/fwupd.ico"/>
</Product>
</Wix>

View File

@ -14,10 +14,9 @@ configure_file(
)
if host_machine.system() == 'windows'
# replace @FWUPD_VERSION@
configure_file(
input : 'setup-win32.nsi.in',
output : 'setup-win32.nsi',
configuration : con2,
input: 'fwupd.wxs.in',
output: 'fwupd.wxs',
configuration: conf
)
endif

View File

@ -1,101 +0,0 @@
#!Nsis Installer Command Script
#
# To build an installer from the script you would normally do:
#
# dnf install mingw32-nsis
# makensis setup-win32.nsi
Name ""
OutFile "setup/fwupd-@FWUPD_VERSION@-setup-x86_64.exe"
InstallDir "$ProgramFiles\fwupd"
InstallDirRegKey HKLM SOFTWARE\fwupd "Install_Dir"
ShowInstDetails hide
ShowUninstDetails hide
XPStyle on
Page directory
Page instfiles
ComponentText "Select which optional components you want to install."
DirText "Please select the installation folder."
Section "fwupd"
SectionIn RO
SetOutPath "$INSTDIR\bin"
# deps
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/iconv.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libarchive-13.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libbrotlicommon.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libbrotlidec.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libbz2-1.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libcrypto-1_1-x64.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libssh2-1.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libssl-1_1-x64.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libssp-0.dll"
File /r "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libffi-*.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgcc_s_seh-1.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgio-2.0-0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libglib-2.0-0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgmodule-2.0-0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgmp-10.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgnutls-30.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgnutls-30.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgobject-2.0-0.dll"
File /r "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libhogweed-*.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libidn2-0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libintl-8.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libjson-glib-1.0-0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/liblzma-5.dll"
File /r "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libnettle-*.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libp11-kit-0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libpcre-1.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libcurl-4.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libsqlite3-0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libtasn1-6.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libusb-1.0.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libxml2-2.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/zlib1.dll"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/curl.exe"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/gspawn-win64-helper-console.exe"
File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/gspawn-win64-helper.exe"
File "/etc/pki/tls/certs/ca-bundle.crt"
# fwupd
File "bin/fwupdtool.exe"
File "bin/libfwupd-2.dll"
File "bin/libfwupdplugin-@FWUPD_PLUGINVER@.dll"
File "bin/libgcab-1.0-0.dll"
File "bin/libxmlb-2.dll"
File "bin/libjcat-1.dll"
File "bin/libgusb-2.dll"
SetOutPath "$INSTDIR\fwupd-plugins-@FWUPD_PLUGINVER@"
File /r "fwupd-plugins-@FWUPD_PLUGINVER@/libfu_plugin_*.dll"
SetOutPath "$INSTDIR\etc\fwupd"
File "etc/fwupd/daemon.conf"
SetOutPath "$INSTDIR\etc\pki\fwupd"
File "etc/pki/fwupd/LVFS-CA.pem"
SetOutPath "$INSTDIR\share\fwupd\quirks.d"
File /r "share/fwupd/quirks.d/*.quirk"
SetOutPath "$INSTDIR\etc\fwupd\remotes.d"
File "etc/fwupd/remotes.d/lvfs.conf"
File "etc/fwupd/remotes.d/lvfs-testing.conf"
ReadEnvStr $0 COMSPEC
SetOutPath "$INSTDIR"
SectionEnd
Section "Uninstall"
RMDir /rebootok /r "$SMPROGRAMS\fwupd"
RMDir /rebootok /r "$INSTDIR\bin"
RMDir /rebootok /r "$INSTDIR\etc"
RMDir /rebootok /r "$INSTDIR\lib"
RMDir /rebootok /r "$INSTDIR\share"
RMDir /rebootok "$INSTDIR"
SectionEnd
Section -post
WriteUninstaller "$INSTDIR\Uninstall fwupd.exe"
SectionEnd

BIN
data/fwupd.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -564,13 +564,3 @@ subdir('docs')
if build_daemon and libsystemd.found()
meson.add_install_script('meson_post_install.sh', systemdunitdir)
endif
makensis = find_program('makensis', required : host_machine.system() == 'windows')
if makensis.found()
run_target(
'makensis',
command: [
makensis,
join_paths(meson.project_source_root(), 'contrib', 'setup-win32.nsi'),
])
endif

View File

@ -2,3 +2,8 @@
directory = gcab
url = https://gitlab.gnome.org/GNOME/gcab.git
revision = b55268ac1020cd6c033acb52f2e6ae984bf5c9fd
# disabled until we depend on a meson including https://github.com/mesonbuild/meson/pull/10291
# and https://gitlab.gnome.org/GNOME/gcab/-/merge_requests/10 is merged
# [provide]
# program_names = gcab