spacingbat3 / reforged Goto Github PK
View Code? Open in Web Editor NEWA set of :electron: Electron Forge tools, makers and publishers.
Home Page: https://spacingbat3.github.io/ReForged/
License: Other
A set of :electron: Electron Forge tools, makers and publishers.
Home Page: https://spacingbat3.github.io/ReForged/
License: Other
Running the latest Webcord AppImage gives the following error
/tmp/.mount_WebCorGCZ75f/usr/bin//../lib/webcord/webcord: error while loading shared libraries: libffmpeg.so: cannot open shared object file: No such file or directory
$ chmod +x Arena\ Returns\ Launcher-1.0.5-SNAPSHOT-x64.AppImage
$ ./Arena\ Returns\ Launcher-1.0.5-SNAPSHOT-x64.AppImage
/tmp/.mount_Arena WAWNn4/usr/bin//arena-returns-launcher: line 2: /tmp/.mount_Arena WAWNn4/usr/bin//../lib/arena-returns-launcher/arena-returns-launcher: No such file or directory
Code used: https://github.com/ArenaReturns/Launcher/ (branch master, yarn install && yarn make)
AppImage file: https://transfer.sh/MLVImL/Arena%20Returns%20Launcher-1.0.5-SNAPSHOT-x64.AppImage
Thanks in advance and Merry Christmas !
Using node v20.10.0 or v18.18.2 I create a fresh Electron project with the following steps:
npm init electron-app@latest myapp
cd myapp
yarn add --dev @reforged/maker-appimage
npm run make -- --targets "@reforged/maker-appimage"
and I got:
An unhandled rejection has occurred inside Forge:
TypeError: maker.clone is not a function
at ~/myapp/node_modules/@electron-forge/core/dist/api/make.js:120:45
at ~/myapp/node_modules/@electron-forge/core/dist/api/make.js:181:43
at async Task.task (~/myapp/node_modules/@electron-forge/tracer/dist/index.js:58:20)
at async Task.run (~/myapp/node_modules/listr2/dist/index.cjs:978:11)
at async ~/myapp/node_modules/p-map/index.js:57:22
Please let me know if extra information is needed or if I'm missing additional steps. Thanks!
I have PNG file that fails your validation.
The file is working with AppImage if I disable validation.
Could you use image-type
or file-type
to perform validation?
Using this maker config :
{
"name": "@reforged/maker-appimage",
"platforms": [
"linux"
],
"config": {
"options": {
"name": "arena-returns-launcher",
"icon": "src/assets/icon/icon.png",
"categories": [
"Game",
"StrategyGame"
]
}
}
}
All "s" in the generated .desktop are replaced by "\\s". I saw that the appimage wouldn't start, so I extracted it and looked at the .desktop and saw this:
[Desktop Entry]
Type=Application
Name=Arena Return\\s Launcher
Exec=arena-return\\s-launcher
Icon=arena-return\\s-launcher
Categorie\\s=Game;StrategyGame;
X-AppImage-Name=arena-return\\s-launcher
X-AppImage-Ver\\sion=1.0.5-SNAPSHOT
X-AppImage-Arch=x86_64
This is probably caused by
ReForged/makers/appimage/src/utils.ts
Line 105 in 6f8fa6e
ReForged/makers/appimage/src/utils.ts
Line 207 in 9f0d60e
Clearing the env here leads to there being no PATH available, and it's interfering with looking up mksquashfs
.
Omitting the icon
property from options
causes the build to fail.
[oold@PC11319 my-electron-app]$ yarn run make
yarn run v1.22.19
$ electron-forge make
✔ Checking your system
✔ Loading configuration
✔ Resolving make targets
› Making for the following targets: AppImage
✔ Running package command
✔ Preparing to package application
✔ Running packaging hooks
✔ Running generateAssets hook
✔ Running prePackage hook
✔ [plugin-webpack] Preparing native dependencies: 1 / 1
✔ [plugin-webpack] Building webpack bundles
✔ Packaging application
✔ Packaging for x64 on linux [3s]
✔ Running postPackage hook
✔ Running preMake hook
❯ Making distributables
✖ Making a AppImage distributable for linux/x64
› Invalid icon / icon path.
◼ Running postMake hook
(node:1094) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
An unhandled rejection has occurred inside Forge:
Error: Invalid icon / icon path.
at MakerAppImage.make (/home/oold/my-electron-app/node_modules/@reforged/maker-appimage/src/main.ts:216:26)
at Task.task (/home/oold/my-electron-app/node_modules/@electron-forge/core/src/api/make.ts:268:51)
at Task.run (/home/oold/my-electron-app/node_modules/listr2/dist/index.cjs:978:35)
Hi!
Thank you so much for building this AppImage maker.
I'm in the process of porting a project from electron-webpack to forge and AppImages were definitely one of the trickier "missing bits"
One thing I can't figure out how to do is to inject a custom shell script in as the launcher for the electron app. Is that something there's a way to do?
When we used electron-builder, they had a hook in between building the content of the AppImage and the final packaging we could hook into.
Thanks!
mksquashfs
version 4.4+ will throw a error if both the SOURCE_DATE_EPOCH
environment variable and -all-time
/-mkfs-time
flags are set.
This is an issue since this package will always add the -all-time
/-mkfs-time
flags. If the intention is to always set the -all-time
/-mkfs-time
flags then the SOURCE_DATE_EPOCH
environment variable should not be passed when mksquash
version 4.4+ is being used.
Also, if possible, can the stderr
be printed out when a non-zero exit code is returned by mksquashfs
? An error code of 1 gets returned for the error mentioned above which made it difficult to track down the root cause. Potentially something like this? This hasn't been tested yet.
mkSquashFS.on("close", (...args) => {
mkSquashFS.stderr.pipe(process.stderr)
event.emit("close",...args)
});
Currently the the download URL for the AppImage runtime is hard-coded.
For some reason my CI recently experiences sporadic ECONNRESET and ETIMEDOUT errors while downloading files from Github.
To fix this, I propose to make the download URL configurable via environment variable, similar to what Electron provides: https://www.electronjs.org/docs/latest/tutorial/installation#custom-mirrors-and-caches
This allows me to set up a cache/mirror that matches my availability requirements.
I can contribute the changes as PR if you agree with the proposed change.
Running electron-forge make
fails to create the AppImage file:
[oold@PC11319 my-electron-app]$ yarn run make
yarn run v1.22.19
$ electron-forge make
✔ Checking your system
✔ Loading configuration
✔ Resolving make targets
✔ Loading configuration
✔ Resolving make targets
› Making for the following targets: AppImage
✔ Running package command
✔ Preparing to package application
✔ Running packaging hooks
✔ Running generateAssets hook
✔ Running prePackage hook
✔ [plugin-webpack] Preparing native dependencies: 1 / 1
✔ [plugin-webpack] Building webpack bundles
✔ Packaging application
✔ Packaging for x64 on linux [3s]
✔ Running postPackage hook
✔ Running preMake hook
❯ Making distributables
✖ Making a AppImage distributable for linux/x64
› ENOENT: no such file or directory, open '/home/oold/my-electron-app/out/make/AppImage/x64/my-electron-app-0.0.0…
◼ Running postMake hook
An unhandled rejection has occurred inside Forge:
Error: ENOENT: no such file or directory, open '/home/oold/my-electron-app/out/make/AppImage/x64/my-electron-app-0.0.0-x64.AppImage'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.