Last active
March 23, 2019 17:57
-
-
Save zilti/b5937ebd68fcbb02f8de6b5b7c9aa79b to your computer and use it in GitHub Desktop.
AppImage creation script for CKAN
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
HERE="$(dirname "$(readlink -f "${0}")")" | |
echo $HERE | |
export PATH=${HERE}/usr/sbin:${HERE}/usr/bin:$PATH | |
export LD_LIBRARY_PATH=$HERE/usr/lib64:$HERE/usr/lib:$HERE/lib64:$LD_LIBRARY_PATH | |
export DYLD_FALLBACK_LIBRARY_PATH=$LD_LIBRARY_PATH:$DYLD_FALLBACK_LIBRARY_PATH | |
export LD_RUN_PATH=$LD_LIBRARY_PATH | |
export PKG_CONFIG_PATH=$HERE/usr/lib64/pkgconfig:$PKG_CONFIG_PATH | |
export MONO_GAC_PREFIX=${HERE} | |
export MONO_PATH=${HERE}/usr/lib/mono/4.5 | |
export MONO_CONFIG=${HERE}/usr/etc/mono/config | |
export MONO_CFG_DIR=${HERE}/usr/etc | |
export C_INCLUDE_PATH=${HERE}/usr/include | |
export ACLOCAL_PATH=${HERE}/usr/share/aclocal | |
export FONTCONFIG_PATH=${HERE}/usr/etc/fonts | |
export XDG_CONFIG_HOME=${HERE}/.config | |
export TERM=xterm | |
mono $HERE/usr/bin/ckan.exe "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
[ -f "linuxdeploy" ] || curl -L https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage -o linuxdeploy && chmod +x linuxdeploy | |
[ -f "appimagetool" ] || curl -L https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -o appimagetool && chmod +x appimagetool | |
rm -rf AppDir | |
mkdir -p AppDir/usr/bin | |
mkdir -p AppDir/usr/lib | |
mkdir -p AppDir/usr/etc/fonts/CKAN/downloads | |
mkdir -p AppDir/usr/share | |
wget https://github.com/KSP-CKAN/CKAN/releases/download/v1.25.4/ckan.exe | |
wget https://github.com/KSP-CKAN/CKAN/raw/master/assets/ckan-256.png | |
wget https://download.mono-project.com/runtimes/raw/mono-5.10.0-debian-7-x64 | |
mv ckan.exe AppDir/usr/bin | |
mv ckan-256.png ckan.png | |
cp -r /usr/share/.mono AppDir/usr/share | |
chmod +x AppRun | |
cd AppDir/usr | |
unzip ../../mono-5.10.0-debian-7-x64 | |
cd ../.. | |
rm mono-5.10.0-debian-7-x64 | |
export ARCH=x86_64 | |
export UPDATE_INFORMATION="gh-releases-zsync|KSP-CKAN|CKAN|latest|ckan.AppImage.zsync" | |
./linuxdeploy --appdir=AppDir --custom-apprun=AppRun --desktop-file=ckan.desktop --icon-file=ckan.png -l/usr/lib64/libgdiplus.so.0 -oappimage |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Desktop Entry] | |
Name=CKAN | |
GenericName=Mod Organizer | |
Comment=The Comprehensive Kerbal Archive Network | |
Exec=AppimageLauncher %F | |
Icon=ckan | |
Type=Application | |
Terminal=false | |
Categories=Game;Utility; | |
X-AppImage-Version=1.25.4 |
Yes, we could curl gdiplus. About the certs... The thing is that Mono does not use the system certs, but brings its own.
(And the path for libgdiplus does not have to be platform agnostic; it only has to be correct on the platform on which the AppImage is built. linuxdeploy
takes the library at that path and includes it into the AppImage.)
@zilti gdiplus was in a different place on my machine, which caused me a minute of confusion when it said it couldn't find it. If we use the system version, why not use a quick locate libgdiplus.so | head -n1
?
Ah, having no notifications on gist.github.com is annoying... Sure, you can do that, just put it into backticks inside the expression:
./linuxdeploy --appdir=AppDir --custom-apprun=AppRun --desktop-file=ckan.desktop --icon-file=ckan.png -l`locate libgdiplus.so | head -n1` -oappimage
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Also the path for libgdiplus is not platform agnostic (it does not work on debian nor ubuntu)