2023-12-29 07:57:52 +00:00
|
|
|
[appdwarf](https://github.com/phantop/appdwarf)
|
2021-05-15 19:34:16 +00:00
|
|
|
=======
|
2022-03-25 22:40:58 +00:00
|
|
|
A tool to convert an AppDir or an existing [AppImage](https://appimage.org/) file,
|
|
|
|
either as a local file or from a URL, into a highly compressed portable image using
|
|
|
|
[dwarfs](https://github.com/mhx/dwarfs).
|
2021-05-15 19:34:16 +00:00
|
|
|
|
2022-03-25 22:40:58 +00:00
|
|
|
This is a small script and the bulk of the work is in the original `dwarfs` project,
|
2022-08-05 13:55:58 +00:00
|
|
|
so all credit deserves to go there. This script has not been extensively tested so I
|
|
|
|
cannot guarantee it will function without issue.
|
2021-05-29 20:13:12 +00:00
|
|
|
|
2021-05-15 19:34:16 +00:00
|
|
|
## Requirements
|
|
|
|
|
|
|
|
In order to create the images, you will need:
|
|
|
|
|
2022-08-05 13:55:58 +00:00
|
|
|
- [dwarfs](https://github.com/mhx/dwarfs), specifically `mkdwarfs`
|
2022-03-25 22:40:58 +00:00
|
|
|
- This may in turn require further dependencies, and specifically relies on the presence of FUSE for mounting images.
|
2022-10-25 18:01:53 +00:00
|
|
|
- `dwarfsck` and `dwarfsextract` also allow for converting existing dwarfs images and updating the header of existing appdwarfs
|
|
|
|
- squashfs-tools for AppImage conversion
|
2022-08-05 13:55:58 +00:00
|
|
|
- `zstd` for creating or running `zzexe` files
|
2021-05-15 19:34:16 +00:00
|
|
|
|
2022-08-05 13:55:58 +00:00
|
|
|
If you only wish to run an existing appdwarf, only `dwarfs` is needed in PATH.
|
2021-05-15 19:34:16 +00:00
|
|
|
|
2022-03-25 22:40:58 +00:00
|
|
|
## How to create an appdwarf
|
2021-05-15 19:34:16 +00:00
|
|
|
|
2022-06-26 01:13:25 +00:00
|
|
|
`appdwarf` can take both AppImage files and extracted AppDirs as input. If a file
|
|
|
|
or folder is not found, `appdwarf` will also accept direct URLs to AppImages, links
|
|
|
|
or names to GitHub repos with AppImages in their releases page, or names of programs
|
|
|
|
that meet the GitHub criteria on AppImageHub. Any files that are found but are not
|
|
|
|
AppImages will be compressed using `zzexe`.
|
2021-05-15 19:34:16 +00:00
|
|
|
|
2022-03-25 22:52:40 +00:00
|
|
|
The apps folder contains other scripts for specific programs that will download all
|
2022-10-25 18:01:53 +00:00
|
|
|
necessary files and create a resulting appdwarf in the `bin` subfolder.
|
2022-03-25 22:52:40 +00:00
|
|
|
|
|
|
|
## `zzexe`
|
|
|
|
|
|
|
|
`zzexe` is a small tool similar to `gzexe` that instead uses zstd to compress single applications.
|
|
|
|
I've included it because it has a similar goal to `appdwarf` on the whole, just on a smaller scale.
|
|
|
|
|
2022-10-25 18:01:53 +00:00
|
|
|
I wrote it in part because I felt that `gzexe` was overly complicated, as I had been
|
|
|
|
using lightly modified version of it that replaces `gzip` with `zstd`, and to add a
|
|
|
|
couple additional features:
|
2022-03-25 22:52:40 +00:00
|
|
|
|
2022-10-25 18:01:53 +00:00
|
|
|
- supports adding in a prefix command to the file using the `-p` option
|
|
|
|
- e.g. `zzexe -p wine some.exe` will generate a compressed file that will then run the exe with wine
|
|
|
|
- automatically appends the extension of the source file to the temporary file
|
2022-03-25 22:52:40 +00:00
|
|
|
created when ran since some programs care about that, such as an emulator only
|
|
|
|
running games of an expected file extension.
|
2021-05-15 19:34:16 +00:00
|
|
|
|
2022-10-25 18:01:53 +00:00
|
|
|
*As of June 2022, `zzexe` has been integrated into the main `appdwarf` script.
|
2022-08-05 13:55:58 +00:00
|
|
|
I have implemented a heuristic that should automatically detect regular files and
|
2022-10-25 18:01:53 +00:00
|
|
|
run `zzexe` on them, however you can directly invoke it with the `-z` option.*
|