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

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