|
@@ -35,6 +35,8 @@ PROJECT_NAME='freedombone'
|
35
|
35
|
export TEXTDOMAIN=${PROJECT_NAME}-image
|
36
|
36
|
export TEXTDOMAINDIR="/usr/share/locale"
|
37
|
37
|
|
|
38
|
+USERHOME=$HOME
|
|
39
|
+
|
38
|
40
|
PROJECT_INSTALL_DIR=/usr/local/bin
|
39
|
41
|
if [ -f /usr/bin/${PROJECT_NAME} ]; then
|
40
|
42
|
PROJECT_INSTALL_DIR=/usr/bin
|
|
@@ -135,6 +137,17 @@ AMNESIC='no'
|
135
|
137
|
# Versions used for Arch/Parabola setup
|
136
|
138
|
MBR_VERSION='1.1.11'
|
137
|
139
|
|
|
140
|
+# version of cliapp to use with parabola
|
|
141
|
+CLIAPP_COMMIT='cb17626e6441a5bf43a1d3f17a769f8e44ff4977'
|
|
142
|
+
|
|
143
|
+# version of mbr to use with parabola
|
|
144
|
+MBR_COMMIT='fb7ac88f251a1529b8aa759abc49acb2e99094b2'
|
|
145
|
+
|
|
146
|
+# defining repo variables here ensures that they will be mirrored
|
|
147
|
+MULTIPATH_TOOLS_REPO="https://aur.archlinux.org/multipath-tools.git"
|
|
148
|
+MBR_REPO="https://aur.archlinux.org/mbr.git"
|
|
149
|
+CLIAPP_REPO="git://git.liw.fi/cliapp"
|
|
150
|
+
|
138
|
151
|
function image_setup {
|
139
|
152
|
setup_type=$1
|
140
|
153
|
|
|
@@ -151,22 +164,50 @@ function image_setup {
|
151
|
164
|
sudo pacman -S --noconfirm qemu-static binfmt-qemu-static uboot-tools qemu parted
|
152
|
165
|
sudo pacman -S --noconfirm dpkg-devtools bin86 arch-install-scripts qemu-arch-extra
|
153
|
166
|
sudo pacman -S --noconfirm syncthing
|
154
|
|
- mkdir ~/develop
|
155
|
|
- if [ ! -d ~/develop/python-cliapp ]; then
|
156
|
|
- git clone git://git.liw.fi/cliapp ~/develop/python-cliapp
|
|
167
|
+ mkdir $USERHOME/develop
|
|
168
|
+ if [ -d $USERHOME/develop/python-cliapp ]; then
|
|
169
|
+ sudo rm -rf $USERHOME/develop/python-cliapp
|
|
170
|
+ fi
|
|
171
|
+ git clone $CLIAPP_REPO $USERHOME/develop/python-cliapp
|
|
172
|
+ if [ ! "$?" = "0" ]; then
|
|
173
|
+ echo $"Failed to clone python-cliapp"
|
|
174
|
+ return
|
|
175
|
+ fi
|
|
176
|
+ if [ ! -d $USERHOME/develop/python-cliapp ]; then
|
|
177
|
+ echo $"Couldn't clone python-cliapp"
|
|
178
|
+ return
|
157
|
179
|
fi
|
158
|
180
|
sudo pacman -S --noconfirm python2-coverage python2-pytest-cov python2-sphinx
|
159
|
181
|
sudo pacman -S --noconfirm autopep8 python2-pylint python2-yaml python2-xdg python2-pip
|
160
|
|
- cd ~/develop/python-cliapp
|
|
182
|
+ cd $USERHOME/develop/python-cliapp
|
|
183
|
+ git checkout $CLIAPP_COMMIT -b $CLIAPP_COMMIT
|
161
|
184
|
sudo python2 setup.py install
|
162
|
185
|
sudo pip2 install distro-info logging
|
163
|
|
- if [ ! -d ~/develop/mbr ]; then
|
164
|
|
- git clone https://aur.archlinux.org/mbr.git ~/develop/mbr
|
|
186
|
+ if [ -d $USERHOME/develop/mbr ]; then
|
|
187
|
+ sudo rm -rf $USERHOME/develop/mbr
|
|
188
|
+ fi
|
|
189
|
+ git clone $MBR_REPO $USERHOME/develop/mbr
|
|
190
|
+ if [ ! "$?" = "0" ]; then
|
|
191
|
+ echo $"Failed to clone mbr"
|
|
192
|
+ return
|
|
193
|
+ fi
|
|
194
|
+ if [ ! -d $USERHOME/develop/mbr ]; then
|
|
195
|
+ echo $"Couldn't clone mbr"
|
|
196
|
+ return
|
|
197
|
+ fi
|
|
198
|
+ cd $USERHOME/develop/mbr
|
|
199
|
+ git checkout $MBR_COMMIT -b $MBR_COMMIT
|
|
200
|
+ makepkg --force --noconfirm
|
|
201
|
+ if [ ! -f mbr-${MBR_VERSION}.tar.gz ]; then
|
|
202
|
+ echo $"mbr tarball was not found for version ${MBR_VERSION}"
|
|
203
|
+ return
|
165
|
204
|
fi
|
166
|
|
- cd ~/develop/mbr
|
167
|
|
- makepkg
|
168
|
205
|
tar -xzvf mbr-${MBR_VERSION}.tar.gz
|
169
|
|
- cd ~/develop/mbr/mbr-${MBR_VERSION}
|
|
206
|
+ if [ ! -d $USERHOME/develop/mbr/mbr-${MBR_VERSION} ]; then
|
|
207
|
+ echo $"mbr tarball could not be extracted"
|
|
208
|
+ return
|
|
209
|
+ fi
|
|
210
|
+ cd $USERHOME/develop/mbr/mbr-${MBR_VERSION}
|
170
|
211
|
cp ../*.patch .
|
171
|
212
|
patch -p0 < *.patch
|
172
|
213
|
./configure
|
|
@@ -177,11 +218,20 @@ function image_setup {
|
177
|
218
|
return
|
178
|
219
|
fi
|
179
|
220
|
sudo cp /usr/local/sbin/install-mbr /sbin
|
180
|
|
- if [ ! -d ~/develop/multipath-tools ]; then
|
181
|
|
- git clone https://aur.archlinux.org/multipath-tools.git ~/develop/multipath-tools
|
|
221
|
+ if [ -d $USERHOME/develop/multipath-tools ]; then
|
|
222
|
+ sudo rm -rf $USERHOME/develop/multipath-tools
|
|
223
|
+ fi
|
|
224
|
+ git clone $MULTIPATH_TOOLS_REPO $USERHOME/develop/multipath-tools
|
|
225
|
+ if [ ! "$?" = "0" ]; then
|
|
226
|
+ echo $"Failed to clone multipath-tools"
|
|
227
|
+ return
|
|
228
|
+ fi
|
|
229
|
+ if [ ! -d $USERHOME/develop/multipath-tools ]; then
|
|
230
|
+ echo $"Couldn't clone multipath-tools"
|
|
231
|
+ return
|
182
|
232
|
fi
|
183
|
233
|
sudo pacman -S --noconfirm device-mapper libaio liburcu fakeroot
|
184
|
|
- cd ~/develop/multipath-tools
|
|
234
|
+ cd $USERHOME/develop/multipath-tools
|
185
|
235
|
makepkg --force --noconfirm
|
186
|
236
|
makepkg -i --force --noconfirm
|
187
|
237
|
sudo wget https://raw.githubusercontent.com/bashrc/freedombone/stockholm/image_build/debootstrap/scripts/${DEBIAN_VERSION} -O /usr/share/debootstrap/scripts/debscript
|
|
@@ -190,6 +240,12 @@ function image_setup {
|
190
|
240
|
echo $"No debian debootstrap script was found for $DEBIAN_VERSION"
|
191
|
241
|
return
|
192
|
242
|
fi
|
|
243
|
+ debian_script_hash=$(sha256sum /usr/share/debootstrap/scripts/${DEBIAN_VERSION} | awk -F ' ' '{print $1}')
|
|
244
|
+ expected_debian_script_hash='94e01603091748e8a6a9d2c3beefec29f2a174d989500f81be4ab767830f4489'
|
|
245
|
+ if [[ "$debian_script_hash" != "$expected_debian_script_hash" ]]; then
|
|
246
|
+ echo $"Invalid hash for debootstrap ${DEBIAN_VERSION} script"
|
|
247
|
+ return
|
|
248
|
+ fi
|
193
|
249
|
sudo chmod +x /usr/share/debootstrap/scripts/${DEBIAN_VERSION}
|
194
|
250
|
;;
|
195
|
251
|
*)
|