/[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.43 - (hide annotations) (download)
Sun Jun 14 05:54:37 2020 UTC (3 years, 10 months ago) by jpp
Branch: MAIN
Changes since 1.42: +126 -45 lines
global update of current bins

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     sudo rm -rf /tmp/efiboot
29     mkdir -p /tmp/efiboot
30     cp -a $(pwd)/$distarch/$img /tmp/efiboot
31     /sbin/mksquashfs \
32     /tmp/efiboot \
33     $(pwd)/$distarch/images/efiboot.img \
34     -all-root -no-fragments -noappend
35     sudo chmod 664 $(pwd)/$distarch/images/efiboot.img
36     sudo rm -rf /tmp/efiboot
37 slords 1.20 elif [ -d "$(pwd)/$distarch/$img" ]
38     then
39 jpp 1.43 echo "building $img.img...."
40 slords 1.17 /sbin/mksquashfs \
41     $(pwd)/$distarch/$img \
42     $(pwd)/$distarch/images/$img.img \
43     -all-root -no-fragments -noappend
44     sudo chmod 664 $(pwd)/$distarch/images/$img.img
45     fi
46     done
47    
48 slords 1.32 rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso* ../iso/$distrel/$distarch/$disttag-$distarch.iso
49 slords 1.37 rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch-netinstall.iso*
50 slords 1.26 rm -f ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.jigdo ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.template
51 slords 1.17
52 jpp 1.43 if [ "$distrel" == "9" -o "$distrel" == "10" ]
53 slords 1.37 then
54 slords 1.39 mkdir -p $(pwd)/$distarch/repodata/
55     rm -f $(pwd)/$distarch/repodata/*comps.xml*
56     /bin/cp -af $(pwd)/$distarch/Packages/base/comps.xml $(pwd)/$distarch/repodata/
57     createrepo --database --update --skip-symlinks --simple-md-filenames --groupfile repodata/comps.xml $(pwd)/$distarch/
58 slords 1.17 fi
59 slords 1.29 sync; rm -rf $(pwd)/$distarch/.olddata $(pwd)/$distarch/repodata/repoview $(pwd)/$distarch/repoview
60 slords 1.17 repoview $(pwd)/$distarch/
61     sync; rm -rf $(pwd)/$distarch/.repodata
62    
63     bootimg='isolinux/isolinux.bin'
64     bootcat='isolinux/boot.cat'
65 jpp 1.43 efi_boot_file='images/efiboot.img'
66 slords 1.17 mkisopts='-v -U -J -r -T'
67     today="$(date '+%d %b %Y')"
68 unnilennium 1.42 if [ "$distrel" == "10" ]
69     then
70 jpp 1.43 #Caton
71     #xorriso -as mkisofs -isohybrid-mbr isolinux/isohdpfx.bin \
72     #-c isolinux/boot.cat -b isolinux/isolinux.bin
73     #-no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
74     #-e images/efiboot.img -no-emul-boot \
75     #-isohybrid-gpt-basdat \
76     #-o ../custom-SME10.iso .
77     # in fact it is :
78     #xorriso -as mkisofs \
79     #-o ../custom-SME10.iso \
80     #-V "SME Server" \
81     #-A "SME Server" \
82     #-joliet-long \
83     #-isohybrid-mbr images/efiboot.img \
84     #-c isolinux/boot.cat \
85     #-b isolinux/isolinux.bin \
86     #-no-emul-boot \
87     #-boot-load-size 4 \
88     #-boot-info-table \
89     #-eltorito-alt-boot \
90     #-e images/efiboot.img -no-emul-boot \
91     #-isohybrid-gpt-basdat \
92     #-R -J -v -T .
93    
94     /usr/bin/xorriso -as mkisofs -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
95     $mkisopts -joliet-long \
96     -V "$distname" \
97 unnilennium 1.42 -A "$distname" \
98     -volset "$distname" \
99 jpp 1.43 -c "$bootcat" -b "$bootimg" \
100     -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
101     -e "$efi_boot_file" \
102     -no-emul-boot -isohybrid-gpt-basdat \
103     -x boot.iso -x lost+found -x product -x updates -x efiboot -x 'buildinstall.tree.*' -x CVS \
104 unnilennium 1.42 -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \
105     $(pwd)/$distarch/
106 jpp 1.43
107     #mkisofs $mkisopts -joliet-long -V "$distname" \
108     # -A "$distname" \
109     # -volset "$distname" \
110     # -b "$bootimg" -c "$bootcat" \
111     # -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
112     # -efi-boot "$efi_boot_file" \
113     # -no-emul-boot -isohybrid-gpt-basdat \
114     # -x boot.iso -x lost+found -x product -x updates -x 'buildinstall.tree.*' -x CVS \
115     # -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \
116     # $(pwd)/$distarch/
117    
118 unnilennium 1.42 else
119 slords 1.37 mkisofs $mkisopts -V "$distname" \
120     -A "$distname $distvers created on $today" \
121     -b "$bootimg" -c "$bootcat" \
122     -no-emul-boot -boot-load-size 4 -boot-info-table -x boot.iso \
123     -x lost+found -x product -x updates -x 'buildinstall.tree.*' -x CVS \
124 slords 1.17 -o ../iso/$distrel/$distarch/$disttag-$distvers-$distarch.iso \
125     $(pwd)/$distarch/
126 unnilennium 1.42 fi
127 slords 1.17
128 jpp 1.43 if [ "$distrel" == "10" ]
129     then
130     #creating a root for netinstall
131     mkdir -p /tmp/{loop,remaster}
132     sudo mount -o loop $(pwd)/$distarch/images/boot.iso /tmp/loop
133     # --no-perms --no-owner --no-group
134     sudo rsync -av /tmp/loop/ /tmp/remaster/; sudo umount /tmp/loop
135     sudo chown $user /tmp/remaster -R
136     sudo chmod u+w /tmp/remaster -R
137     #cp netinstall/ks.cfg /tmp/remaster/
138     cp -a $(pwd)/$distarch/netinstall/* /tmp/remaster/
139     cp -a $(pwd)/$distarch/images/product.img /tmp/remaster/images/
140     # rebuild the EFI efiboot.img for netinstall
141    
142     echo "building efiboot.img for netinstall"
143     # the content of the img should be /EFI/BOOT* and not /BOOT/*, so we need to copy the content in a temp dir
144     sudo rm -rf /tmp/remaster/efiboot
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     sudo chmod 664 /tmp/remaster/images/efiboot.img
152     sudo rm -rf /tmp/remaster/efiboot
153     #rebuild iso for netinstall
154    
155     /usr/bin/xorriso -as mkisofs -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
156     $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