diff --git a/README.md b/README.md index 04512ec..2ea0454 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/appdwarf b/appdwarf index 9e8cec3..9d3a3e6 100755 --- a/appdwarf +++ b/appdwarf @@ -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" diff --git a/apps/README.md b/apps/README.md new file mode 100644 index 0000000..80fd984 --- /dev/null +++ b/apps/README.md @@ -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 | +`github ` | Can be given a GitHub URL or repo in the form `user/repo` and will find and convert the latest AppImage release | +`mkchrome ` | Latest official Chromium build | +`mkgo ` | Latest official Go release | +`mkjava ` | Accepts an argument for Java version and obtains that build from Adoptium | +`mknode ` | Latest official NodeJS release | +`mkproton ` | GloriousEggroll Proton Builds | +`mkpypy ` | Latest PyPy3 release | +`mkrust ` | Latest Rust nightly | +`mktex ` | Minimal/custom TeX Live image | +`mkwine ` | Latest `wine-staging-tkg` release | +`rustsolus` | Latest Rust stable from the Solus repos (requires `eopkg` and may not work on other distros) | +`ungoogled` | Latest submitted `ungoogled-chromium` binary release | diff --git a/apps/mkgo b/apps/mkgo index 64bd770..74cc346 100755 --- a/apps/mkgo +++ b/apps/mkgo @@ -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