forked from probonopd/Emacs.AppImage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appimage.sh
94 lines (66 loc) · 3.01 KB
/
appimage.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/bin/bash
########################################################################
# Package the binaries built on Travis-CI as an AppImage
# By Simon Peter 2016
# For more information, see http://appimage.org/
########################################################################
export ARCH=$(arch)
APP=Emacs
LOWERAPP=${APP,,}
GIT_REV=$(git rev-parse --short HEAD)
echo $GIT_REV
mkdir -p $HOME/$APP/$APP.AppDir/usr/
cd $HOME/$APP/
wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh
. ./functions.sh
cd $APP.AppDir
sudo chown -R $USER /app/
BINARY=$(find /app/bin/ -name emacs* -type f -executable | head -n 1)
sed -i -e 's|/app|././|g' $BINARY
cp -r /app/* ./usr/
BINARY=$(find ./usr/bin/ -name emacs* -type f -executable | head -n 1)
########################################################################
# Copy desktop and icon file to AppDir for AppRun to pick them up
########################################################################
wget -c "https://raw.githubusercontent.com/MissingNoIOI/Emacs.AppImage/master/AppRun" ; chmod a+x ./AppRun
get_desktop
get_icon
########################################################################
# Copy in the dependencies that cannot be assumed to be available
# on all target systems
########################################################################
copy_deps
########################################################################
# Delete stuff that should not go into the AppImage
########################################################################
# Delete dangerous libraries; see
# https://github.com/probonopd/AppImages/blob/master/excludelist
delete_blacklisted
rm -rf app/ || true
########################################################################
# Determine the version of the app; also include needed glibc version
########################################################################
GLIBC_NEEDED=$(glibc_needed)
VERSION=${RELEASE_VERSION}
########################################################################
# Patch away absolute paths; it would be nice if they were relative
########################################################################
sed -i -e 's|/usr|././|g' $BINARY
sed -i -e 's|/app|././|g' $BINARY
########################################################################
# Other Emacs-specific finishing touches
########################################################################
( cd usr/bin/ ; rm emacs ; ln -s emacs-* emacs )
# mv etc/ e
# sed -i -e 's|/etc|../e|g' $BINARY
# sed -i -e 's|/etc|../e|g' ./usr/share/emacs/site-lisp/debian-startup.el
# sed -i -e 's|/usr|././|g' ./usr/share/emacs/site-lisp/debian-startup.el
# sed -i -e 's|/app|././|g' ./usr/share/emacs/site-lisp/debian-startup.el
########################################################################
# AppDir complete
# Now packaging it as an AppImage
########################################################################
cd .. # Go out of AppDir
mkdir -p ../out/
generate_type2_appimage
readlink -f ../out/*.AppImage*