README: update and redo it allllll

This commit is contained in:
Phantop 2022-03-25 18:40:58 -04:00
parent 1cdaf416a9
commit ed2a43c751
4 changed files with 47 additions and 21 deletions

View file

@ -1,32 +1,33 @@
appdwarf appdwarf
======= =======
These scripts automatically fetch the latest version of their respective program and compress them into a portable image using [dwarfs](https://github.com/mhx/dwarfs) in a similar format to an [AppImage.](https://appimage.org/) 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).
The titular `appdwarf` utility supports both converting an AppDir or an existing AppImage file, either as a local file or from a URL, and is used similarly to how 'appimagetool' is. This is a small script and the bulk of the work is in the original `dwarfs` project,
so all credit deserves to go there and I can not guarantee this script will function
with out issues.
## Requirements ## Requirements
In order to create the images, you will need: In order to create the images, you will need:
- [dwarfs](https://github.com/mhx/dwarfs), specifically the `dwarfs` and `mkdwarfs` utilities (`dwarfs2` works, but you must either edit the script or link `dwarfs` to it) - [dwarfs](https://github.com/mhx/dwarfs), specifically the `dwarfs` and `mkdwarfs` utilities.
- This may in turn require further dependencies, and specifically relies on the presence of FUSE for mounting images.
If you only wish to run an existing image, only `dwarfs` is needed in PATH.
If you only wish to run an existing image, only `dwarfs` (or `dwarfs2`) is needed. ## How to create an appdwarf
## How to create portable executables For your own programs, simply create an AppImage-style AppDir and run `appdwarf {directory}`.
You can also invoke `appdwarf -a {appimage}` to convert an apimage.
I suggest checking the help (listed via `appdwarf --help`) for other options.
For your own programs, simply create an AppImage-style AppDir and run `appdwarf {directory}` or use one of the additional options (listed via `appdwarf --help`) to convert an existing AppImage to appdwarf. The apps folder contains other scripts for specific programs that will download all necessary files and create a resulting appdwarf in the same folder.
The other scripts for specific programs will download all necessary files and create a resulting appdwarf in the same folder. ## Known Issues
## Notes - Some images may not unmount properly under the default, combined mounting scheme due
to the inability to use lazy unmounting and some programs still making use of the filesystem
Keep in mind that this project is new and it has not been thoroughly tested. Please report any problems you find. when `fusermount -u` is run.
- Can be worked around with the separate header at the cost of memory/CPU usage.
## Credits
[wine-portable-executable](https://github.com/Kron4ek/wine-portable-executable) and [Wine-Builds](https://github.com/Kron4ek/Wine-Builds) by [Kron4ek](https://github.com/Kron4ek)
[dwarfs](https://github.com/mhx/dwarfs) by [mhx](https://github.com/mhx)
Java builds from [AdoptOpenJDK](https://adoptopenjdk.net/)

View file

@ -6,7 +6,7 @@ HERE=$(dirname "$(readlink -f "${0}")")
source "$HERE/headers" source "$HERE/headers"
usage(){ usage(){
echo "Usage: $(basename "$0") [option] [FILE/FOLDER/URL]" echo "Usage: $(basename "$0") [option] [FILE/FOLDER/URL] [dwarfs option]"
echo " Compress a given AppDir (default)" echo " Compress a given AppDir (default)"
echo " -a, --appimage Convert a given AppImage to appdwarf" echo " -a, --appimage Convert a given AppImage to appdwarf"
echo " -B, --lookback Change dwarfs block lookback amount" echo " -B, --lookback Change dwarfs block lookback amount"

25
apps/README.md Normal file
View file

@ -0,0 +1,25 @@
# Apps
This directory contains various scripts I've put together to quickly and easily create
images of various large and/or popular programs. I give no guarantee that they will
work correctly or as desired; these have been put together largely for my own usage.
These scripts are all targeted for using on x86_64 Linux systems with GLIBC.
## Scripts
Script | Function | Source
--- | --- | ---
`appimage ` | Can fetch and convert AppImages by name from AppImageHub if the source repo is hosted on GitHub and linked to | <https://appimage.github.io>
`github ` | Can be given a GitHub URL or repo in the form `user/repo` and will find and convert the latest AppImage release | <https://github.com>
`mkchrome ` | Latest official Chromium build | <https://download-chromium.appspot.com>
`mkgo ` | Latest official Go release | <https://go.dev>
`mkjava ` | Accepts an argument for Java version and obtains that build from Adoptium | <https://adoptium.net>
`mknode ` | Latest official NodeJS release | <https://nodejs.org>
`mkproton ` | GloriousEggroll Proton Builds | <https://github.com/GloriousEggroll/proton-ge-custom>
`mkpypy ` | Latest PyPy3 release | <https://www.pypy.org>
`mkrust ` | Latest Rust nightly | <https://rust-lang.org>
`mktex ` | Minimal/custom TeX Live image | <https://ctan.org>
`mkwine ` | Latest `wine-staging-tkg` release | <https://github.com/Kron4ek/Wine-Builds>
`rustsolus` | Latest Rust stable from the Solus repos (requires `eopkg` and may not work on other distros) | <https://getsol.us>
`ungoogled` | Latest submitted `ungoogled-chromium` binary release | <https://ungoogled-software.github.io/ungoogled-chromium-binaries>

View file

@ -2,8 +2,8 @@
PATH=$(dirname "$(readlink -f "${0}")")/..:$PATH PATH=$(dirname "$(readlink -f "${0}")")/..:$PATH
DIR=/tmp/appdwarf DIR=/tmp/appdwarf
mkdir -p $DIR mkdir -p $DIR
LINK=$(curl -sL https://golang.org/dl | grep -om1 dl/go.\*linux-amd64.tar.gz) LINK=$(curl -sL https://go.dev/dl | grep -om1 dl/go.\*linux-amd64.tar.gz)
curl -L https://golang.org/"$LINK" | tar xz -C$DIR curl -L https://go.dev/"$LINK" | tar xz -C$DIR
cat > $DIR/go/AppRun << 'EOF' cat > $DIR/go/AppRun << 'EOF'
#!/bin/sh #!/bin/sh