mirror of
https://git.proxmox.com/git/fwupd
synced 2025-06-06 16:16:07 +00:00
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:
parent
e76587ce95
commit
77bb1ff479
@ -20,33 +20,6 @@ jobs:
|
|||||||
docker:
|
docker:
|
||||||
- image: fedora:36
|
- image: fedora:36
|
||||||
steps:
|
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
|
- checkout
|
||||||
- run:
|
- run:
|
||||||
name: "Build Win32"
|
name: "Build Win32"
|
||||||
@ -54,7 +27,7 @@ jobs:
|
|||||||
- persist_to_workspace:
|
- persist_to_workspace:
|
||||||
root: .
|
root: .
|
||||||
paths:
|
paths:
|
||||||
- "dist/setup/*.exe"
|
- "dist/setup/*.msi"
|
||||||
- "dist/VERSION"
|
- "dist/VERSION"
|
||||||
- "dist/news.txt"
|
- "dist/news.txt"
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
|
92
contrib/build-windows.sh
Executable file
92
contrib/build-windows.sh
Executable 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/"
|
@ -1,10 +1,28 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
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
|
#prep
|
||||||
export LC_ALL=C.UTF-8
|
export LC_ALL=C.UTF-8
|
||||||
root=$(pwd)
|
root=$(pwd)
|
||||||
export DESTDIR=${root}/dist
|
export DESTDIR=${root}/dist
|
||||||
build=$root/build-win32
|
build=$root/build-win32
|
||||||
|
|
||||||
rm -rf $DESTDIR $build
|
rm -rf $DESTDIR $build
|
||||||
|
|
||||||
# For logitech bulk controller being disabled (-Dplugin_logitech_bulkcontroller=disabled):
|
# 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
|
# 2. add protoc = /path/to/protoc-c.exe in mingw64.cross
|
||||||
# 3. Only enable when not a tagged release (Unsupported by Logitech)
|
# 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
|
mkdir -p $build $DESTDIR && cd $build
|
||||||
python3 -m pip install --user "meson >= 0.60.0"
|
|
||||||
meson .. \
|
meson .. \
|
||||||
--cross-file=/usr/share/mingw/toolchain-mingw64.meson \
|
--cross-file=/usr/share/mingw/toolchain-mingw64.meson \
|
||||||
--prefix=/ \
|
--prefix=/ \
|
||||||
@ -27,6 +44,9 @@ meson .. \
|
|||||||
-Ddocs=none \
|
-Ddocs=none \
|
||||||
-Dhsi=false \
|
-Dhsi=false \
|
||||||
-Dman=false \
|
-Dman=false \
|
||||||
|
-Dfish_completion=false \
|
||||||
|
-Dbash_completion=false \
|
||||||
|
-Dfirmware-packager=false \
|
||||||
-Dmetainfo=false \
|
-Dmetainfo=false \
|
||||||
-Dcompat_cli=false \
|
-Dcompat_cli=false \
|
||||||
-Dsoup_session_compat=false \
|
-Dsoup_session_compat=false \
|
||||||
@ -39,14 +59,22 @@ meson .. \
|
|||||||
-Dlibxmlb:gtkdoc=false \
|
-Dlibxmlb:gtkdoc=false \
|
||||||
-Dlibjcat:man=false \
|
-Dlibjcat:man=false \
|
||||||
-Dlibjcat:gpg=false \
|
-Dlibjcat:gpg=false \
|
||||||
|
-Dlibjcat:tests=false \
|
||||||
-Dlibjcat:introspection=false \
|
-Dlibjcat:introspection=false \
|
||||||
-Dgusb:tests=false \
|
-Dgusb:tests=false \
|
||||||
-Dgusb:docs=false \
|
-Dgusb:docs=false \
|
||||||
-Dgusb:introspection=false \
|
-Dgusb:introspection=false \
|
||||||
-Dgusb:vapi=false $@
|
-Dgusb:vapi=false $@
|
||||||
VERSION=$(meson introspect . --projectinfo | jq -r .version)
|
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
|
#generate news release
|
||||||
cd $root
|
cd $root
|
||||||
@ -57,25 +85,94 @@ echo $VERSION > $DESTDIR/VERSION
|
|||||||
sed -i 's,UpdateMotd=.*,UpdateMotd=false,' $DESTDIR/etc/fwupd/daemon.conf
|
sed -i 's,UpdateMotd=.*,UpdateMotd=false,' $DESTDIR/etc/fwupd/daemon.conf
|
||||||
|
|
||||||
# create a setup binary
|
# create a setup binary
|
||||||
cd $DESTDIR
|
CERTDIR=/etc/pki/tls/certs
|
||||||
mkdir -p $DESTDIR/setup
|
MINGW32BINDIR=/usr/x86_64-w64-mingw32/sys-root/mingw/bin
|
||||||
makensis -NOCD $build/contrib/setup-win32.nsi
|
|
||||||
|
|
||||||
#so that it's actually executable
|
# deps
|
||||||
cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/*.dll bin
|
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
|
# CA bundle
|
||||||
find -type f -print0 -name "*.dll.a" | xargs rm -f
|
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
|
# our files
|
||||||
rm -fr gcab.exe \
|
find "$DESTDIR" | \
|
||||||
xb-tool.exe \
|
wixl-heat \
|
||||||
share/man \
|
-p "$DESTDIR/" \
|
||||||
include \
|
-x include/ \
|
||||||
fwupd \
|
-x share/fwupd/device-tests/ \
|
||||||
lib/*.a \
|
-x share/tests/ \
|
||||||
lib/pkgconfig/ \
|
-x share/man/ \
|
||||||
var
|
-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/"
|
MSI_FILENAME="$DESTDIR/setup/fwupd-$VERSION-setup-x86_64.msi"
|
||||||
ninja -C $build test
|
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}"
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package />
|
<package />
|
||||||
|
<package variant="mingw64" />
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="debian">
|
<distro id="debian">
|
||||||
<package variant="x86_64" />
|
<package variant="x86_64" />
|
||||||
@ -96,6 +97,9 @@
|
|||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package />
|
<package />
|
||||||
</distro>
|
</distro>
|
||||||
|
<distro id="fedora">
|
||||||
|
<package variant="mingw64">mingw64-gcc</package>
|
||||||
|
</distro>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency type="build" id="gcc-multilib-s390x-linux-gnu">
|
<dependency type="build" id="gcc-multilib-s390x-linux-gnu">
|
||||||
<distro id="debian">
|
<distro id="debian">
|
||||||
@ -150,6 +154,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package variant="x86_64">json-glib-devel</package>
|
<package variant="x86_64">json-glib-devel</package>
|
||||||
|
<package variant="mingw64">mingw64-json-glib</package>
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package variant="x86_64">json-glib-devel</package>
|
<package variant="x86_64">json-glib-devel</package>
|
||||||
@ -361,6 +366,8 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package />
|
<package />
|
||||||
|
<!-- need native until meson includes https://github.com/mesonbuild/meson/pull/10291 -->
|
||||||
|
<package variant="mingw64">gcab</package>
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package />
|
<package />
|
||||||
@ -382,6 +389,9 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package />
|
<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>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package />
|
<package />
|
||||||
@ -452,6 +462,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package />
|
<package />
|
||||||
|
<package variant="mingw64" />
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package />
|
<package />
|
||||||
@ -480,6 +491,9 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package variant="x86_64">glib2-devel</package>
|
<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>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package variant="x86_64">glib-devel</package>
|
<package variant="x86_64">glib-devel</package>
|
||||||
@ -545,6 +559,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package variant="x86_64">gnutls-devel</package>
|
<package variant="x86_64">gnutls-devel</package>
|
||||||
|
<package variant="mingw64">mingw64-gnutls</package>
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package variant="x86_64">gnutls-devel</package>
|
<package variant="x86_64">gnutls-devel</package>
|
||||||
@ -608,6 +623,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package />
|
<package />
|
||||||
|
<package variant="mingw64" />
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="ubuntu">
|
<distro id="ubuntu">
|
||||||
<control />
|
<control />
|
||||||
@ -683,6 +699,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package variant="x86_64">libarchive-devel</package>
|
<package variant="x86_64">libarchive-devel</package>
|
||||||
|
<package variant="mingw64">mingw64-libarchive</package>
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="debian">
|
<distro id="debian">
|
||||||
<control />
|
<control />
|
||||||
@ -839,6 +856,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package variant="x86_64">libgusb-devel</package>
|
<package variant="x86_64">libgusb-devel</package>
|
||||||
|
<package variant="mingw64">mingw64-libgusb</package>
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package variant="x86_64">libgusb-devel</package>
|
<package variant="x86_64">libgusb-devel</package>
|
||||||
@ -917,6 +935,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package variant="x86_64">libcurl-devel</package>
|
<package variant="x86_64">libcurl-devel</package>
|
||||||
|
<package variant="mingw64">mingw64-curl</package>
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package variant="x86_64">libcurl-devel</package>
|
<package variant="x86_64">libcurl-devel</package>
|
||||||
@ -992,6 +1011,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package />
|
<package />
|
||||||
|
<package variant="mingw64" />
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="debian">
|
<distro id="debian">
|
||||||
<control />
|
<control />
|
||||||
@ -1061,6 +1081,9 @@
|
|||||||
<control />
|
<control />
|
||||||
<package variant="x86_64" />
|
<package variant="x86_64" />
|
||||||
</distro>
|
</distro>
|
||||||
|
<distro id="fedora">
|
||||||
|
<package variant="mingw64">mingw64-pkg-config</package>
|
||||||
|
</distro>
|
||||||
<distro id="void">
|
<distro id="void">
|
||||||
<package />
|
<package />
|
||||||
</distro>
|
</distro>
|
||||||
@ -1330,6 +1353,7 @@
|
|||||||
</distro>
|
</distro>
|
||||||
<distro id="fedora">
|
<distro id="fedora">
|
||||||
<package variant="x86_64">sqlite-devel</package>
|
<package variant="x86_64">sqlite-devel</package>
|
||||||
|
<package variant="mingw64">mingw64-sqlite</package>
|
||||||
</distro>
|
</distro>
|
||||||
<distro id="debian">
|
<distro id="debian">
|
||||||
<control />
|
<control />
|
||||||
@ -1634,4 +1658,10 @@
|
|||||||
<package variant="x86_64" />
|
<package variant="x86_64" />
|
||||||
</distro>
|
</distro>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency type="build" id="wine">
|
||||||
|
<distro id="fedora">
|
||||||
|
<!-- for running the self tests -->
|
||||||
|
<package variant="mingw64">wine</package>
|
||||||
|
</distro>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
40
contrib/fwupd.wxs.in
Normal file
40
contrib/fwupd.wxs.in
Normal 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>
|
@ -14,10 +14,9 @@ configure_file(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if host_machine.system() == 'windows'
|
if host_machine.system() == 'windows'
|
||||||
# replace @FWUPD_VERSION@
|
|
||||||
configure_file(
|
configure_file(
|
||||||
input : 'setup-win32.nsi.in',
|
input: 'fwupd.wxs.in',
|
||||||
output : 'setup-win32.nsi',
|
output: 'fwupd.wxs',
|
||||||
configuration : con2,
|
configuration: conf
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
|
@ -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
BIN
data/fwupd.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
10
meson.build
10
meson.build
@ -564,13 +564,3 @@ subdir('docs')
|
|||||||
if build_daemon and libsystemd.found()
|
if build_daemon and libsystemd.found()
|
||||||
meson.add_install_script('meson_post_install.sh', systemdunitdir)
|
meson.add_install_script('meson_post_install.sh', systemdunitdir)
|
||||||
endif
|
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
|
|
||||||
|
@ -2,3 +2,8 @@
|
|||||||
directory = gcab
|
directory = gcab
|
||||||
url = https://gitlab.gnome.org/GNOME/gcab.git
|
url = https://gitlab.gnome.org/GNOME/gcab.git
|
||||||
revision = b55268ac1020cd6c033acb52f2e6ae984bf5c9fd
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user