mirror of
https://github.com/wownero/wowlet.git
synced 2026-10-17 07:11:29 +02:00
fix(build): ship the binary as wowlet, not feather
The CMake target keeps its upstream name so the twenty-odd target_* calls stay put, but OUTPUT_NAME now produces build/bin/wowlet, and on macOS a wowlet.app whose CFBundleExecutable matches it. Linux and Windows already renamed the artifact as they copied it, so their cp lines just move to the new path. macOS copied the whole bundle instead, so it shipped Contents/MacOS/feather with a Feather name in the Info.plist, which is what anyone installing it actually saw. The Linux install rules had the same problem one level down: they installed feather.desktop, which sets Exec=feather and Name=Feather Wallet, while the correct wowlet.desktop sat unused beside it. CFBundleIdentifier moves to org.wownero.wowlet. Nothing in signing or notarization reads it, but macOS keys per-app state by bundle id, so an existing install starts with fresh window state.
This commit is contained in:
@@ -91,7 +91,7 @@ jobs:
|
|||||||
rm -rf AppDir
|
rm -rf AppDir
|
||||||
mkdir -p AppDir/usr/bin AppDir/usr/share/applications \
|
mkdir -p AppDir/usr/bin AppDir/usr/share/applications \
|
||||||
AppDir/usr/share/icons/hicolor/256x256/apps
|
AppDir/usr/share/icons/hicolor/256x256/apps
|
||||||
cp build/bin/feather AppDir/usr/bin/wowlet
|
cp build/bin/wowlet AppDir/usr/bin/wowlet
|
||||||
chmod +x AppDir/usr/bin/wowlet
|
chmod +x AppDir/usr/bin/wowlet
|
||||||
cp src/assets/wowlet.desktop AppDir/usr/share/applications/wowlet.desktop
|
cp src/assets/wowlet.desktop AppDir/usr/share/applications/wowlet.desktop
|
||||||
cp src/assets/images/appicons/256x256.png \
|
cp src/assets/images/appicons/256x256.png \
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ jobs:
|
|||||||
# archive contains the signed binary.
|
# archive contains the signed binary.
|
||||||
run: |
|
run: |
|
||||||
mkdir -p stage/tor
|
mkdir -p stage/tor
|
||||||
cp build/bin/feather.exe stage/wowlet.exe
|
cp build/bin/wowlet.exe stage/wowlet.exe
|
||||||
cp "contrib/depends/$HOST/Tor/tor.exe" stage/tor/tor.exe
|
cp "contrib/depends/$HOST/Tor/tor.exe" stage/tor/tor.exe
|
||||||
(cp LICENSE stage/LICENSE.txt 2>/dev/null || cp COPYING stage/LICENSE.txt 2>/dev/null) || true
|
(cp LICENSE stage/LICENSE.txt 2>/dev/null || cp COPYING stage/LICENSE.txt 2>/dev/null) || true
|
||||||
ls -la stage stage/tor
|
ls -la stage stage/tor
|
||||||
|
|||||||
@@ -5,4 +5,4 @@ echo $HERE
|
|||||||
|
|
||||||
# Tails 5.8 sets QT_QPA_PLATFORM to wayland which breaks our app
|
# Tails 5.8 sets QT_QPA_PLATFORM to wayland which breaks our app
|
||||||
export QT_QPA_PLATFORM=xcb
|
export QT_QPA_PLATFORM=xcb
|
||||||
${APPDIR}/usr/bin/feather $*
|
${APPDIR}/usr/bin/wowlet $*
|
||||||
|
|||||||
@@ -5,29 +5,29 @@ unset SOURCE_DATE_EPOCH
|
|||||||
|
|
||||||
# Manually create the AppImage (reproducibly) since linuxdeployqt is not able to create cross-compiled AppImages
|
# Manually create the AppImage (reproducibly) since linuxdeployqt is not able to create cross-compiled AppImages
|
||||||
|
|
||||||
APPDIR="$PWD/feather.AppDir"
|
APPDIR="$PWD/wowlet.AppDir"
|
||||||
|
|
||||||
mkdir -p "$APPDIR"
|
mkdir -p "$APPDIR"
|
||||||
mkdir -p "$APPDIR/usr/share/applications/"
|
mkdir -p "$APPDIR/usr/share/applications/"
|
||||||
mkdir -p "$APPDIR/usr/bin"
|
mkdir -p "$APPDIR/usr/bin"
|
||||||
|
|
||||||
cp "src/assets/feather.desktop" "$APPDIR/usr/share/applications/feather.desktop"
|
cp "src/assets/wowlet.desktop" "$APPDIR/usr/share/applications/wowlet.desktop"
|
||||||
cp "src/assets/feather.desktop" "$APPDIR/feather.desktop"
|
cp "src/assets/wowlet.desktop" "$APPDIR/wowlet.desktop"
|
||||||
cp "src/assets/images/appicons/64x64.png" "$APPDIR/feather.png"
|
cp "src/assets/images/appicons/64x64.png" "$APPDIR/wowlet.png"
|
||||||
cp "build/bin/feather" "$APPDIR/usr/bin/feather"
|
cp "build/bin/wowlet" "$APPDIR/usr/bin/wowlet"
|
||||||
chmod +x "$APPDIR/usr/bin/feather"
|
chmod +x "$APPDIR/usr/bin/wowlet"
|
||||||
|
|
||||||
cp "contrib/AppImage/AppRun" "$APPDIR/"
|
cp "contrib/AppImage/AppRun" "$APPDIR/"
|
||||||
chmod +x "$APPDIR/AppRun"
|
chmod +x "$APPDIR/AppRun"
|
||||||
|
|
||||||
find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
|
find wowlet.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
|
||||||
|
|
||||||
mksquashfs feather.AppDir feather.squashfs -comp zstd -info -root-owned -no-xattrs -noappend -fstime 0
|
mksquashfs wowlet.AppDir wowlet.squashfs -comp zstd -info -root-owned -no-xattrs -noappend -fstime 0
|
||||||
# mksquashfs writes a timestamp to the header
|
# mksquashfs writes a timestamp to the header
|
||||||
printf '\x00\x00\x00\x00' | dd conv=notrunc of=feather.squashfs bs=1 seek=$((0x8))
|
printf '\x00\x00\x00\x00' | dd conv=notrunc of=wowlet.squashfs bs=1 seek=$((0x8))
|
||||||
|
|
||||||
rm -f feather.AppImage
|
rm -f wowlet.AppImage
|
||||||
|
|
||||||
cat "${GITHUB_WORKSPACE:-/feather}/contrib/depends/${HOST}/runtime" >> feather.AppImage
|
cat "${GITHUB_WORKSPACE:-/feather}/contrib/depends/${HOST}/runtime" >> wowlet.AppImage
|
||||||
cat feather.squashfs >> feather.AppImage
|
cat wowlet.squashfs >> wowlet.AppImage
|
||||||
chmod a+x feather.AppImage
|
chmod a+x wowlet.AppImage
|
||||||
|
|||||||
@@ -34,13 +34,13 @@
|
|||||||
<string>????</string>
|
<string>????</string>
|
||||||
|
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>feather</string>
|
<string>wowlet</string>
|
||||||
|
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Feather</string>
|
<string>Wowlet</string>
|
||||||
|
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>org.monero-project.feather</string>
|
<string>org.wownero.wowlet</string>
|
||||||
|
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>Camera is used to scan QR codes on demand.</string>
|
<string>Camera is used to scan QR codes on demand.</string>
|
||||||
|
|||||||
+13
-9
@@ -148,7 +148,10 @@ add_executable(feather ${EXECUTABLE_FLAG} main.cpp
|
|||||||
${ASSETS_TOR}
|
${ASSETS_TOR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# The CMake target keeps its upstream name so the target_* calls below stay put;
|
||||||
|
# only what we ship is renamed.
|
||||||
set_target_properties(feather PROPERTIES
|
set_target_properties(feather PROPERTIES
|
||||||
|
OUTPUT_NAME wowlet
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
||||||
LINK_FLAGS_RELEASE -s
|
LINK_FLAGS_RELEASE -s
|
||||||
)
|
)
|
||||||
@@ -370,14 +373,14 @@ else()
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (UNIX AND NOT APPLE)
|
if (UNIX AND NOT APPLE)
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/feather.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/wowlet.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/32x32.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/32x32/apps RENAME "feather.png")
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/32x32.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/32x32/apps RENAME "wowlet.png")
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/48x48.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps RENAME "feather.png")
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/48x48.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps RENAME "wowlet.png")
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/64x64.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/64x64/apps RENAME "feather.png")
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/64x64.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/64x64/apps RENAME "wowlet.png")
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/96x96.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/96x96/apps RENAME "feather.png")
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/96x96.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/96x96/apps RENAME "wowlet.png")
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/128x128.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/128x128/apps RENAME "feather.png")
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/128x128.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/128x128/apps RENAME "wowlet.png")
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/256x256.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/256x256/apps RENAME "feather.png")
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/256x256.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/256x256/apps RENAME "wowlet.png")
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/512x512.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/512x512/apps RENAME "feather.png")
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/512x512.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/512x512/apps RENAME "wowlet.png")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -385,13 +388,14 @@ if(APPLE)
|
|||||||
configure_file(${CMAKE_SOURCE_DIR}/contrib/macdeploy/Info.plist.in ${CMAKE_SOURCE_DIR}/contrib/macdeploy/Info.plist @ONLY)
|
configure_file(${CMAKE_SOURCE_DIR}/contrib/macdeploy/Info.plist.in ${CMAKE_SOURCE_DIR}/contrib/macdeploy/Info.plist @ONLY)
|
||||||
|
|
||||||
set_target_properties(feather PROPERTIES
|
set_target_properties(feather PROPERTIES
|
||||||
|
OUTPUT_NAME wowlet
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/contrib/macdeploy/Info.plist"
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/contrib/macdeploy/Info.plist"
|
||||||
LINK_FLAGS_RELEASE -s
|
LINK_FLAGS_RELEASE -s
|
||||||
)
|
)
|
||||||
|
|
||||||
file(COPY "${CMAKE_SOURCE_DIR}/src/assets/images/appicons/appicon.icns" DESTINATION "${CMAKE_SOURCE_DIR}/installed/feather.app/Contents/Resources/" )
|
file(COPY "${CMAKE_SOURCE_DIR}/src/assets/images/appicons/appicon.icns" DESTINATION "${CMAKE_SOURCE_DIR}/installed/wowlet.app/Contents/Resources/" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
qt_finalize_executable(feather)
|
qt_finalize_executable(feather)
|
||||||
|
|||||||
Reference in New Issue
Block a user