Przeglądaj źródła

Improved checking of parabola setup

Bob Mottram 8 lat temu
rodzic
commit
e174c59d78
1 zmienionych plików z 68 dodań i 12 usunięć
  1. 68
    12
      src/freedombone-image

+ 68
- 12
src/freedombone-image Wyświetl plik

35
 export TEXTDOMAIN=${PROJECT_NAME}-image
35
 export TEXTDOMAIN=${PROJECT_NAME}-image
36
 export TEXTDOMAINDIR="/usr/share/locale"
36
 export TEXTDOMAINDIR="/usr/share/locale"
37
 
37
 
38
+USERHOME=$HOME
39
+
38
 PROJECT_INSTALL_DIR=/usr/local/bin
40
 PROJECT_INSTALL_DIR=/usr/local/bin
39
 if [ -f /usr/bin/${PROJECT_NAME} ]; then
41
 if [ -f /usr/bin/${PROJECT_NAME} ]; then
40
     PROJECT_INSTALL_DIR=/usr/bin
42
     PROJECT_INSTALL_DIR=/usr/bin
135
 # Versions used for Arch/Parabola setup
137
 # Versions used for Arch/Parabola setup
136
 MBR_VERSION='1.1.11'
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
 function image_setup {
151
 function image_setup {
139
     setup_type=$1
152
     setup_type=$1
140
 
153
 
151
             sudo pacman -S --noconfirm qemu-static binfmt-qemu-static uboot-tools qemu parted
164
             sudo pacman -S --noconfirm qemu-static binfmt-qemu-static uboot-tools qemu parted
152
             sudo pacman -S --noconfirm dpkg-devtools bin86 arch-install-scripts qemu-arch-extra
165
             sudo pacman -S --noconfirm dpkg-devtools bin86 arch-install-scripts qemu-arch-extra
153
             sudo pacman -S --noconfirm syncthing
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
             fi
179
             fi
158
             sudo pacman -S --noconfirm python2-coverage python2-pytest-cov python2-sphinx
180
             sudo pacman -S --noconfirm python2-coverage python2-pytest-cov python2-sphinx
159
             sudo pacman -S --noconfirm autopep8 python2-pylint python2-yaml python2-xdg python2-pip
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
             sudo python2 setup.py install
184
             sudo python2 setup.py install
162
             sudo pip2 install distro-info logging
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
             fi
204
             fi
166
-            cd ~/develop/mbr
167
-            makepkg
168
             tar -xzvf mbr-${MBR_VERSION}.tar.gz
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
             cp ../*.patch .
211
             cp ../*.patch .
171
             patch -p0 < *.patch
212
             patch -p0 < *.patch
172
             ./configure
213
             ./configure
177
                 return
218
                 return
178
             fi
219
             fi
179
             sudo cp /usr/local/sbin/install-mbr /sbin
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
             fi
232
             fi
183
             sudo pacman -S --noconfirm device-mapper libaio liburcu fakeroot
233
             sudo pacman -S --noconfirm device-mapper libaio liburcu fakeroot
184
-            cd ~/develop/multipath-tools
234
+            cd $USERHOME/develop/multipath-tools
185
             makepkg --force --noconfirm
235
             makepkg --force --noconfirm
186
             makepkg -i --force --noconfirm
236
             makepkg -i --force --noconfirm
187
             sudo wget https://raw.githubusercontent.com/bashrc/freedombone/stockholm/image_build/debootstrap/scripts/${DEBIAN_VERSION} -O /usr/share/debootstrap/scripts/debscript
237
             sudo wget https://raw.githubusercontent.com/bashrc/freedombone/stockholm/image_build/debootstrap/scripts/${DEBIAN_VERSION} -O /usr/share/debootstrap/scripts/debscript
190
                 echo $"No debian debootstrap script was found for $DEBIAN_VERSION"
240
                 echo $"No debian debootstrap script was found for $DEBIAN_VERSION"
191
                 return
241
                 return
192
             fi
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
             sudo chmod +x /usr/share/debootstrap/scripts/${DEBIAN_VERSION}
249
             sudo chmod +x /usr/share/debootstrap/scripts/${DEBIAN_VERSION}
194
             ;;
250
             ;;
195
         *)
251
         *)