/[smeserver]/builds_bin/build_ISO
ViewVC logotype

Annotation of /builds_bin/build_ISO

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.46 - (hide annotations) (download)
Mon Jun 15 04:40:42 2020 UTC (4 years, 5 months ago) by jpp
Branch: MAIN
Changes since 1.45: +1 -0 lines
efi working

1 gordonr 1.1 #!/bin/sh
2    
3 slords 1.17 distname='SME Server'
4     disttag='smeserver'
5 slords 1.22 distvers=$(basename $(readlink -f $(pwd)))
6 unnilennium 1.42 distrel=${distvers%%.*}
7 slords 1.17 distarch=$(uname -i)
8 jpp 1.43 user=$(whoami)
9 slords 1.17
10 slords 1.21 exec < /dev/null
11     exec &> build_ISO.$distarch
12    
13 slords 1.17 if ! [ -d $distarch ]
14 slords 1.15 then
15 slords 1.17 echo "No $distarch directory?"
16     exit 1
17     fi
18    
19 jpp 1.43 for img in product updates EFI
20 slords 1.17 do
21 jpp 1.43 if [ "$distrel" == "10" -a "$img" = "updates" ]
22 slords 1.17 then
23 jpp 1.43 echo "SME10 do nothing with updates.img, yet"
24     elif [ -d "$(pwd)/$distarch/$img" -a "$img" = "EFI" ]
25 unnilennium 1.42 then
26 jpp 1.43 echo "building efiboot.img"
27     # the content of the img should be /EFI/BOOT* and not /BOOT/*, so we need to copy the content in a temp dir
28 jpp 1.46 mkdir -p /tmp/{loop,remaster}
29 jpp 1.45 sudo mount -o loop $(pwd)/$distarch/images/efiboot.img /tmp/loop
30 jpp 1.44 sudo cp -a $(pwd)/$distarch/EFI/BOOT/grub.cfg /tmp/loop/EFI/BOOT/
31     sudo umount /tmp/loop
32     # sudo rm -rf /tmp/efiboot
33     # mkdir -p /tmp/efiboot
34     # cp -a $(pwd)/$distarch/$img /tmp/efiboot
35     # /sbin/mksquashfs \
36     # /tmp/efiboot \
37     # $(pwd)/$distarch/images/efiboot.img \
38     # -all-root -no-fragments -noappend
39     # sudo chmod 664 $(pwd)/$distarch/images/efiboot.img
40     # sudo rm -rf /tmp/efiboot
41 slords 1.20 elif [ -d "$(pwd)/$distarch/$img" ]
42     then
43 jpp 1.43 echo "building $img.img...."
44 slords 1.17 /sbin/mksquashfs \
45     $(pwd)/$distarch/$img \
46     $(pwd)/$distarch/images/$img.img \
47     -all-root -no-fragments -noappend
48     sudo chmod 664 $(pwd)/$distarch/images/$img.img
49     fi
50     done
51    
52 slords 1.32 rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso* ../iso/$distrel/$distarch/$disttag-$distarch.iso
53 slords 1.37 rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso*
54 slords 1.26 rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.jigdo ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.template
55 slords 1.17
56 jpp 1.43 if [ "$distrel" == "9" -o "$distrel" == "10" ]
57 slords 1.37 then
58 slords 1.39 mkdir -p $(pwd)/$distarch/repodata/
59     rm -f $(pwd)/$distarch/repodata/*comps.xml*
60     /bin/cp -af $(pwd)/$distarch/Packages/base/comps.xml $(pwd)/$distarch/repodata/
61     createrepo --database --update --skip-symlinks --simple-md-filenames --groupfile repodata/comps.xml $(pwd)/$distarch/
62 slords 1.17 fi
63 slords 1.29 sync; rm -rf $(pwd)/$distarch/.olddata $(pwd)/$distarch/repodata/repoview $(pwd)/$distarch/repoview
64 slords 1.17 repoview $(pwd)/$distarch/
65     sync; rm -rf $(pwd)/$distarch/.repodata
66    
67     bootimg='isolinux/isolinux.bin'
68     bootcat='isolinux/boot.cat'
69 jpp 1.43 efi_boot_file='images/efiboot.img'
70 slords 1.17 mkisopts='-v -U -J -r -T'
71     today="$(date '+%d %b %Y')"
72 unnilennium 1.42 if [ "$distrel" == "10" ]
73     then
74 jpp 1.43 #Caton
75     #xorriso -as mkisofs \
76     #-o ../custom-SME10.iso \
77     #-V "SME Server" \
78     #-A "SME Server" \
79     #-joliet-long \
80     #-isohybrid-mbr images/efiboot.img \
81     #-c isolinux/boot.cat \
82     #-b isolinux/isolinux.bin \
83     #-no-emul-boot \
84     #-boot-load-size 4 \
85     #-boot-info-table \
86     #-eltorito-alt-boot \
87     #-e images/efiboot.img -no-emul-boot \
88     #-isohybrid-gpt-basdat \
89     #-R -J -v -T .
90    
91 jpp 1.44 /usr/bin/xorriso -as mkisofs -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
92     $mkisopts -joliet-long \
93 jpp 1.43 -V "$distname" \
94 unnilennium 1.42 -A "$distname" \
95     -volset "$distname" \
96 jpp 1.43 -c "$bootcat" -b "$bootimg" \
97     -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
98     -e "$efi_boot_file" \
99     -no-emul-boot -isohybrid-gpt-basdat \
100     -x boot.iso -x lost+found -x product -x updates -x efiboot -x 'buildinstall.tree.*' -x CVS \
101 unnilennium 1.42 -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \
102     $(pwd)/$distarch/
103 jpp 1.43
104     #mkisofs $mkisopts -joliet-long -V "$distname" \
105     # -A "$distname" \
106     # -volset "$distname" \
107     # -b "$bootimg" -c "$bootcat" \
108     # -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
109     # -efi-boot "$efi_boot_file" \
110     # -no-emul-boot -isohybrid-gpt-basdat \
111     # -x boot.iso -x lost+found -x product -x updates -x 'buildinstall.tree.*' -x CVS \
112     # -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \
113     # $(pwd)/$distarch/
114    
115 unnilennium 1.42 else
116 slords 1.37 mkisofs $mkisopts -V "$distname" \
117     -A "$distname $distvers created on $today" \
118     -b "$bootimg" -c "$bootcat" \
119     -no-emul-boot -boot-load-size 4 -boot-info-table -x boot.iso \
120     -x lost+found -x product -x updates -x 'buildinstall.tree.*' -x CVS \
121 slords 1.17 -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \
122     $(pwd)/$distarch/
123 unnilennium 1.42 fi
124 slords 1.17
125 jpp 1.43 if [ "$distrel" == "10" ]
126     then
127     #creating a root for netinstall
128     mkdir -p /tmp/{loop,remaster}
129     sudo mount -o loop $(pwd)/$distarch/images/boot.iso /tmp/loop
130     # --no-perms --no-owner --no-group
131     sudo rsync -av /tmp/loop/ /tmp/remaster/; sudo umount /tmp/loop
132     sudo chown $user /tmp/remaster -R
133     sudo chmod u+w /tmp/remaster -R
134     #cp netinstall/ks.cfg /tmp/remaster/
135     cp -a $(pwd)/$distarch/netinstall/* /tmp/remaster/
136     cp -a $(pwd)/$distarch/images/product.img /tmp/remaster/images/
137     # rebuild the EFI efiboot.img for netinstall
138    
139     echo "building efiboot.img for netinstall"
140     # the content of the img should be /EFI/BOOT* and not /BOOT/*, so we need to copy the content in a temp dir
141 jpp 1.44 # sudo rm -rf /tmp/remaster/efiboot
142     sudo mount -o loop /tmp/remaster/efiboot.img /tmp/loop
143     sudo cp -a /tmp/remaster/EFI/BOOT/grub.cfg /tmp/loop/EFI/BOOT/
144     sudo umount /tmp/loop
145     # mkdir -p /tmp/remaster/efiboot
146     # cp -a /tmp/remaster/EFI $(pwd)/$distarch/efiboot
147     # /sbin/mksquashfs \
148     # /tmp/remaster/efiboot \
149     # /tmp/remaster/images/efiboot.img \
150     # -all-root -no-fragments -noappend
151 jpp 1.43 sudo chmod 664 /tmp/remaster/images/efiboot.img
152 jpp 1.44 # sudo rm -rf /tmp/remaster/efiboot
153 jpp 1.43 #rebuild iso for netinstall
154    
155 jpp 1.44 # /usr/bin/xorriso -as mkisofs -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
156     /usr/bin/xorriso -as mkisofs \
157 jpp 1.43 $mkisopts -joliet-long \
158     -V "$distname" \
159     -A "$distname" \
160     -volset "$distname" \
161     -c "$bootcat" -b "$bootimg" \
162     -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
163     -e "$efi_boot_file" \
164     -no-emul-boot -isohybrid-gpt-basdat \
165     -x boot.iso -x lost+found -x product -x updates -x efiboot -x 'buildinstall.tree.*' -x CVS \
166     -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso \
167     /tmp/remaster/
168     rm -rf /tmp/loop
169     sudo rm -rf /tmp/remaster
170    
171     else
172     cp -a $(pwd)/$distarch/images/boot.iso ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso
173     fi
174 slords 1.37
175 jpp 1.43 if [ "$distrel" == "10" ]
176 unnilennium 1.42 then
177 jpp 1.43 echo "xorriso doing it, no need for isohybrid"
178     else
179     if [ -x /usr/bin/isohybrid ]
180     then
181     #needs syslinux; should implement efi ? --uefi ?
182 unnilennium 1.42 # should not be necessary with centos7 : mkisofs/mkhybrids and genisoimage have been merged
183     isohybrid ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso
184 jpp 1.43 else
185 unnilennium 1.42 # alternative with mkhybrid ??
186     echo "isohybrid not available; you should install syslinux or use genisoimage options"
187 jpp 1.43 fi
188 unnilennium 1.42 fi
189    
190 slords 1.38 if [ -x /usr/lib/anaconda-runtime/implantisomd5 ]
191     then
192     /usr/lib/anaconda-runtime/implantisomd5 ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso
193 jpp 1.43 #do it for the netinstall
194     /usr/lib/anaconda-runtime/implantisomd5 ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso
195 slords 1.38 else
196     implantisomd5 ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso
197 jpp 1.43 #do it for the netinstall
198     implantisomd5 ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso
199 slords 1.38 fi
200 slords 1.28 md5sum ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso | sed 's,\.\..*/,,' > ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.md5sum
201     sha1sum ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso | sed 's,\.\..*/,,' > ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.sha1sum
202 slords 1.19 zsyncmake -u $disttag-$distvers-$distarch.iso -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.zsync ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso
203 slords 1.32 mv ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso ../iso/$distrel/$distarch/$disttag-$distarch.iso
204     ln -sf $disttag-$distarch.iso ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso
205 jpp 1.43 # for netinstall
206     md5sum ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso | sed 's,\.\..*/,,' > ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.md5sum
207     sha1sum ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso | sed 's,\.\..*/,,' > ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso.sha1sum
208    
209 slords 1.17
210 slords 1.24 rsync -a --delete --delete-excluded \
211 jpp 1.43 --exclude 'repodata/' --exclude 'product/' --exclude 'updates/' --exclude 'efiboot/' --exclude 'repoview/' \
212 slords 1.24 --exclude 'lost+found/' --exclude 'CVS/' --exclude 'buildinstall.tree.*/' \
213     --link-dest=../$distarch/ $distarch/ $distarch.jigdo/
214 slords 1.37
215 slords 1.24 jigdo-file make-template --force \
216     -i ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \
217     -j ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.jigdo \
218     -t ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.template \
219     --label SMEmirror=$distarch.jigdo/ \
220     --uri SMEmirror=http://mirror.contribs.org/releases/testing/$distrel/smeos/$distarch/ \
221     $distarch.jigdo//
222     rm -rf $distarch.jigdo/
223    
224 unnilennium 1.42 if [ -d SRPMS ] && [ "$distarch" == "i386" -o "$distrel" == "10" ]
225 slords 1.17 then
226 slords 1.35 rm -f ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso* ../iso/$distrel/source/$disttag-SRPMS.iso*
227 slords 1.17
228 slords 1.37 mkisofs $mkisopts -V "$distname" \
229     -A "$distname $distvers SRPMS created on $today" \
230 jpp 1.43 -x lost+found -x product -x updates -x efiboot -x 'buildinstall.tree.*' -x CVS \
231 slords 1.17 -o ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso \
232 slords 1.37 --graft-points ./SRPMS=SRPMS GPL=$distarch/GPL \
233 slords 1.17 RPM-GPG-KEY-SMEServer=$distarch/RPM-GPG-KEY-SMEServer
234    
235 slords 1.28 md5sum ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso | sed 's,\.\..*/,,' > ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso.md5sum
236     sha1sum ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso | sed 's,\.\..*/,,' > ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso.sha1sum
237 slords 1.19 zsyncmake -u $disttag-$distvers-SRPMS.iso -o ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso.zsync ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso
238 slords 1.17 mv ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso ../iso/$distrel/source/$disttag-SRPMS.iso
239     ln -sf $disttag-SRPMS.iso ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso
240 slords 1.24
241     jigdo-file make-template --force \
242     -i ../iso/$distrel/source/$disttag-$distvers-SRPMS.iso \
243     -j ../iso/$distrel/source/$disttag-$distvers-SRPMS.jigdo \
244     -t ../iso/$distrel/source/$disttag-$distvers-SRPMS.template \
245     --label SMEmirror=SRPMS/ \
246     --uri SMEmirror=http://mirror.contribs.org/releases/testing/$distrel/smeos/SRPMS/ \
247 slords 1.37 SRPMS/
248 slords 1.15 fi
249 gordonr 1.5
250 gordonr 1.1 # That's it.

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed