From 02edd8ed061b96ed37ceabe6f31b7ce9505903ec Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Wed, 21 Oct 2020 11:52:41 +0200
Subject: [PATCH] [build] Use linuxdeploy to create the AddDir and try to make
 an AppImage that works well...

---
 .gitignore                                    |   4 +-
 Aegisub/AppRun                                |   9 ----
 Aegisub/aegisub-icon.png                      | Bin 5030 -> 0 bytes
 Aegisub/usr/bin/.gitkeep                      |   0
 Aegisub/usr/lib/.gitkeep                      |   0
 Makefile.inc.in                               |  44 ++++++++++--------
 Makefile.target                               |   7 ++-
 README.md                                     |  20 ++++++--
 configure.ac                                  |  28 +++++++----
 header.mk                                     |   3 +-
 {Aegisub => packages/desktop}/Aegisub.desktop |   2 +-
 packages/desktop/aegisub.png                  |   1 +
 12 files changed, 70 insertions(+), 48 deletions(-)
 delete mode 100755 Aegisub/AppRun
 delete mode 100644 Aegisub/aegisub-icon.png
 delete mode 100644 Aegisub/usr/bin/.gitkeep
 delete mode 100755 Aegisub/usr/lib/.gitkeep
 rename {Aegisub => packages/desktop}/Aegisub.desktop (95%)
 create mode 120000 packages/desktop/aegisub.png

diff --git a/.gitignore b/.gitignore
index 45da25986..87455408f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -68,8 +68,7 @@ packages/desktop/aegisub.desktop
 packages/desktop/aegisub.desktop.template
 packages/win_installer/vendor
 src/aegisub
-Aegisub/aegisub
-Aegisub/usr/bin/aegisub
+Aegisub/
 src/libresrc/bitmap.cpp
 src/libresrc/bitmap.h
 src/libresrc/default_config.cpp
@@ -79,6 +78,7 @@ svn-revision.h
 svn_revision
 tests/*.json
 tests/run
+tools/linuxdeploy
 tools/osx-bundle-restart-helper
 tools/osx-bundle.sed
 tools/repack-thes-dict
diff --git a/Aegisub/AppRun b/Aegisub/AppRun
deleted file mode 100755
index 27f3ec957..000000000
--- a/Aegisub/AppRun
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-HERE=$(dirname $(readlink -f "$0"))
-export LC_ALL="en_US.UTF-8"
-export LD_LIBRARY_PATH="$HERE/usr/lib"
-EXEC=$(grep -e '^Exec=.*' "$HERE"/*.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1)
-ldd $(which $EXEC)
-export PATH="$HERE/usr/bin"
-exec $EXEC $@
diff --git a/Aegisub/aegisub-icon.png b/Aegisub/aegisub-icon.png
deleted file mode 100644
index fbbd14dc9f46796622c457b781c1388d45353788..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5030
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

diff --git a/Aegisub/usr/bin/.gitkeep b/Aegisub/usr/bin/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/Aegisub/usr/lib/.gitkeep b/Aegisub/usr/lib/.gitkeep
deleted file mode 100755
index e69de29bb..000000000
diff --git a/Makefile.inc.in b/Makefile.inc.in
index be9a686ff..911aa5a65 100644
--- a/Makefile.inc.in
+++ b/Makefile.inc.in
@@ -118,23 +118,29 @@ PRECOMPILED_HEADER = @enable_gcc_prec@
 ##########
 # BINARIES
 ##########
-BIN_AR       = ar
-BIN_RANLIB   = ranlib
-BIN_LN       = ln
-BIN_RM       = rm
-BIN_SHELL    = @SHELL@
-BIN_MV       = mv
-BIN_SED      = sed
-BIN_INSTALL  = @INSTALL@
-BIN_MSGMERGE = @MSGMERGE@
-BIN_XGETTEXT = @XGETTEXT@
-BIN_MSGFMT   = @MSGFMT@
-BIN_CC       = @CC@
-BIN_CXX      = @CXX@
-BIN_CP       = cp
-BIN_MKDIR    = mkdir
-BIN_MKDIR_P  = mkdir -p
-BIN_ECHO     = echo
-BIN_TOUCH    = touch
-BIN_LUA      = @LUA@
+BIN_AR        = ar
+BIN_RANLIB    = ranlib
+BIN_LN        = ln
+BIN_RM        = rm
+BIN_SHELL     = @SHELL@
+BIN_MV        = mv
+BIN_SED       = sed
+BIN_INSTALL   = @INSTALL@
+BIN_MSGMERGE  = @MSGMERGE@
+BIN_XGETTEXT  = @XGETTEXT@
+BIN_MSGFMT    = @MSGFMT@
+BIN_CC        = @CC@
+BIN_CXX       = @CXX@
+BIN_CP        = cp
+BIN_MKDIR     = mkdir
+BIN_MKDIR_P   = mkdir -p
+BIN_ECHO      = echo
+BIN_TOUCH     = touch
+BIN_LUA       = @LUA@
 BIN_WX_CONFIG = @WX_CONFIG_PATH@
+
+################
+# APPIMAGE TOOLS
+################
+TOOL_LINUXDEPLOY = $(TOM)tools/linuxdeploy
+TOOL_APPIMAGE    = $(TOP)tools/appimagetool.AppImage
diff --git a/Makefile.target b/Makefile.target
index 202cb590d..6156fa8eb 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -95,10 +95,9 @@ style:
 tags:
 	./tools/tags.bash
 
-appimage: src/aegisub
-	cp $^ Aegisub/usr/bin/aegisub
-	./tools/copy-libs.lua Aegisub/usr/bin/aegisub Aegisub/usr/lib
-	./tools/appimagetool.AppImage Aegisub
+appimage: src/aegisub packages/desktop/Aegisub.desktop packages/desktop/aegisub.png
+	$(TOOL_LINUXDEPLOY) --appdir Aegisub --desktop-file packages/desktop/Aegisub.desktop --icon-file packages/desktop/aegisub.png --executable src/aegisub
+	$(TOOL_APPIMAGE) Aegisub
 
 # The actual build rules
 .SUFFIXES:
diff --git a/README.md b/README.md
index 499266b09..dd9bed959 100644
--- a/README.md
+++ b/README.md
@@ -76,9 +76,12 @@ You may also consider the following rules:
 
 ### Build an appimage
 
-First download the appimagetool binary and save it to the [tools](tools)
-folder. If you don't do it manually, it will be done for you at some point by
-the build scripts.
+First, install `patchelf` (`apt install patchelf` or similar for your distro)
+and [linuxdeploy](https://github.com/linuxdeploy/linuxdeploy).  An AppImage of
+linuxdeploy can be found [here](https://martinm.iiens.net/linuxdeploy).  You
+will also need to download the appimagetool binary and save it to the
+[tools](tools) folder. If you don't do it manually, it will be done for you at
+some point by the build scripts.
 
 ```bash
 wget https://github.com/probonopd/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage \
@@ -94,6 +97,17 @@ make -j$(nproc)
 make appimage
 ```
 
+The command to build the AppImage is the following and is performed by the
+`make appimage`:
+
+```bash
+linuxdeploy \
+    --appdir Aegisub \
+    --desktop-file packages/desktop/Aegisub.desktop \
+    --icon-file packages/desktop/aegisub.png \
+    --executable src/aegisub
+```
+
 ### Windows
 
 Prerequisites:
diff --git a/configure.ac b/configure.ac
index 658f066da..a81fdfb02 100644
--- a/configure.ac
+++ b/configure.ac
@@ -190,15 +190,25 @@ AC_ARG_ENABLE([appimage],
               [AEGISUB_APPIMAGE_ENABLED=$enableval],
               [AEGISUB_APPIMAGE_ENABLED=no])
 AS_IF([test "x$AEGISUB_APPIMAGE_ENABLED" = "xyes"], [
-       AC_MSG_CHECKING([Downloading AppImage creation tool])
-       wget https://github.com/probonopd/AppImageKit/releases/download/continuous/appimagetool-`arch`.AppImage \
-           -O tools/appimagetool.AppImage -o config.wget.log
-       chmod 00700 tools/appimagetool.AppImage
-       AS_IF([test $? -eq 0 ], [
-           AC_MSG_RESULT([done])
-        ], [
-           AC_MSG_FAILURE([failed])
-        ])
+    # Download the AppImage creation tool, transforms the AppDir into an AppImage
+    AC_MSG_CHECKING([Downloading AppImage creation tool])
+    wget https://github.com/probonopd/AppImageKit/releases/download/continuous/appimagetool-`arch`.AppImage -O tools/appimagetool.AppImage -o config.wget.log
+    chmod 00700 tools/appimagetool.AppImage
+    AS_IF([test $? -eq 0 ], [
+        AC_MSG_RESULT([done])
+    ], [
+        AC_MSG_FAILURE([failed])
+    ])
+
+    # Downlaod the AppDir management tool, create the AppDir
+    AC_MSG_CHECKING([Downloading LinuxDeploy creation tool])
+    wget https://martinm.iiens.net/linuxdeploy -O tools/linuxdeploy -a config.wget.log
+    chmod 00700 tools/linuxdeploy
+    AS_IF([test $? -eq 0 ], [
+        AC_MSG_RESULT([done])
+    ], [
+        AC_MSG_FAILURE([failed])
+    ])
 ], [
     AC_MSG_NOTICE([Don't build with AppImage support])
 ])
diff --git a/header.mk b/header.mk
index c82d73974..589122f68 100644
--- a/header.mk
+++ b/header.mk
@@ -40,7 +40,8 @@ DISTCLEANFILES += \
 
 CLEANFILES += \
 	$(TOP)Aegisub/usr/bin/aegisub \
-	$(wildcard $(TOP)Aegisub/usr/lib/*)
+	$(wildcard $(TOP)Aegisub/usr/lib/*) \
+	$(TOP)Aegisub-x86_64.AppImage \
 
 define MKDIR_INSTALL
 @$(BIN_MKDIR_P) $(dir $@)
diff --git a/Aegisub/Aegisub.desktop b/packages/desktop/Aegisub.desktop
similarity index 95%
rename from Aegisub/Aegisub.desktop
rename to packages/desktop/Aegisub.desktop
index c630bbaf8..e39d8570e 100644
--- a/Aegisub/Aegisub.desktop
+++ b/packages/desktop/Aegisub.desktop
@@ -2,7 +2,7 @@
 Version=1.0
 Type=Application
 Name=Aegisub
-Icon=aegisub-icon
+Icon=aegisub
 GenericName=Subtitle Editor
 Comment=Create and edit subtitles for film and videos.
 Keywords=subtitles;video;audio;text
diff --git a/packages/desktop/aegisub.png b/packages/desktop/aegisub.png
new file mode 120000
index 000000000..078e90af0
--- /dev/null
+++ b/packages/desktop/aegisub.png
@@ -0,0 +1 @@
+64x64.png
\ No newline at end of file
-- 
GitLab