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
=======
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
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
Keep in mind that this project is new and it has not been thoroughly tested. Please report any problems you find.
## 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/)
- 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
when `fusermount -u` is run.
- Can be worked around with the separate header at the cost of memory/CPU usage.

View file

@ -6,7 +6,7 @@ HERE=$(dirname "$(readlink -f "${0}")")
source "$HERE/headers"
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 " -a, --appimage Convert a given AppImage to appdwarf"
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
DIR=/tmp/appdwarf
mkdir -p $DIR
LINK=$(curl -sL https://golang.org/dl | grep -om1 dl/go.\*linux-amd64.tar.gz)
curl -L https://golang.org/"$LINK" | tar xz -C$DIR
LINK=$(curl -sL https://go.dev/dl | grep -om1 dl/go.\*linux-amd64.tar.gz)
curl -L https://go.dev/"$LINK" | tar xz -C$DIR
cat > $DIR/go/AppRun << 'EOF'
#!/bin/sh