-
Notifications
You must be signed in to change notification settings - Fork 0
/
Recipe
176 lines (154 loc) · 4.18 KB
/
Recipe
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#!/usr/bin/env bash
set -e # Exit on errors
set -x # Be verbose
##########################################################################
# GET DEPENDENCIES
##########################################################################
apt_packages_basic=(
automake
autotools-dev
ca-certificates
cimg-dev
cmake
desktop-file-utils
file
fuse
gcc
g++
git
libfuse-dev
libjpeg-dev
libpng-dev
libssl-dev
libtool
make
patch
patchelf
pkg-config
wget
xxd
)
apt-get update
apt-get install -y --no-install-recommends \
"${apt_packages_basic[@]}"
##########################################################################
# Compile and install new CMake, needed by linuxdeploy-plugin-appimage
##########################################################################
cd /
wget --no-check-certificate https://github.com/Kitware/CMake/archive/v3.17.5.tar.gz
tar -zxf v3.17.5.tar.gz
cd CMake-3.17.5/
mkdir -p build
cd build
cmake ..
make -j$(nproc)
make -j$(nproc) install
/usr/local/bin/cmake --version
cd /
##########################################################################
# Compile and install linuxdeploy
##########################################################################
git clone https://github.com/linuxdeploy/linuxdeploy
cd linuxdeploy/
git submodule update --init --recursive
git checkout continuous
mkdir -p build
cd build
/usr/local/bin/cmake ..
/usr/local/bin/cmake --build . -j$(nproc)
/usr/local/bin/cmake --build . --target install
mv /linuxdeploy/build/bin /tools
export PATH=/tools:$PATH
linuxdeploy --version
cd /
##########################################################################
# Compile and install linuxdeploy-plugin-qt
##########################################################################
git clone https://github.com/linuxdeploy/linuxdeploy-plugin-qt
cd linuxdeploy-plugin-qt/
git submodule update --init --recursive
git checkout continuous
mkdir -p build
cd build
/usr/local/bin/cmake ..
/usr/local/bin/cmake --build . -j$(nproc)
/usr/local/bin/cmake --build . --target install
mv /linuxdeploy-plugin-qt/build/bin/linuxdeploy-plugin-qt /tools/linuxdeploy-plugin-qt
linuxdeploy --list-plugins
cd /
##########################################################################
# Compile and install linuxdeploy-plugin-appimage
##########################################################################
git clone https://github.com/linuxdeploy/linuxdeploy-plugin-appimage
cd linuxdeploy-plugin-appimage/
git submodule update --init --recursive
git checkout continuous
mkdir -p build
cd build
/usr/local/bin/cmake ..
/usr/local/bin/cmake --build . -j$(nproc)
/usr/local/bin/cmake --build . --target install
mv /usr/local/bin/linuxdeploy-plugin-appimage /tools/linuxdeploy-plugin-appimage
cd /
linuxdeploy --list-plugins
##########################################################################
# Compile and install AppImageKit
##########################################################################
git clone https://github.com/AppImage/AppImageKit
cd AppImageKit/
git submodule update --init --recursive
git checkout 12
mkdir -p build
cd build
/usr/local/bin/cmake ..
/usr/local/bin/cmake --build . -j$(nproc)
/usr/local/bin/cmake --build . --target install
cd /
appimagetool --version
##########################################################################
# Install dependencies needed for deploy step
##########################################################################
apt_packages_dep=(
appstream
gnupg2
libasound2
libegl1-mesa
libevent-dev
libgl1
libportmidi0
libpulse0
libre2-3
libwebpdemux2
libx11-xcb1
libxcb1
libxcb-glx0
libxcb-keysyms1
libxcb-icccm4
libxcb-image0
libxcb-randr0
libxcb-render-util0
libxcb-shape0
libxcb-shm0
libxcb-sync1
libxcb-util0
libxcb-xfixes0
libxcb-xinerama0
libxcb-xkb1
libxcb-xtest0
libxslt1-dev
libxtables12
portaudio19-dev
zsync
)
apt-get install -y --no-install-recommends \
"${apt_packages_dep[@]}"
# tidy up (reduce size of Docker image)
apt-get clean autoclean
apt-get autoremove --purge -y
rm -rf /tmp/* /var/{cache,log,backups}/* /var/lib/apt/*
# delete build folders
rm -rf v3.17.5.tar.gz*
rm -rf CMake-3.17.5
rm -rf /linuxdeploy*
rm -rf AppImageKit
echo "Recipe has finished!" >&2