Advertisement
s243a

make-tazpup.sh

Jun 19th, 2018
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.65 KB | None | 0 0
  1. #!/bin/sh
  2. #This file is from mistfire alpha 15 build kit: http://murga-linux.com/puppy/viewtopic.php?p=996351#996351
  3. curdir=`pwd`
  4.  
  5. extractfs()
  6. {
  7.    
  8. if [ ! -d $curdir/slitaz-rootfs ]; then
  9. mkdir $curdir/slitaz-rootfs
  10. fi
  11.  
  12. (unlzma -c $1 || cat $1 ) 2>/dev/null | (cd $curdir/slitaz-rootfs; cpio -idm > /dev/null)
  13.  
  14. }
  15.  
  16. IMG="$(Xdialog --stdout --title "Select Slitaz image file" --fselect $HOME 0 0)"
  17.  
  18. if [ $? -ne 0 ]; then
  19. echo "Operation cancelled"
  20. exit
  21. fi
  22.  
  23. if [ "$IMG" == "" ]; then
  24. echo "No image file selected"
  25. exit
  26. fi
  27.  
  28. IMGPUP="$(Xdialog --stdout --title "Select Puppy image file" --fselect $HOME 0 0)"
  29.  
  30. if [ $? -ne 0 ]; then
  31. echo "Operation cancelled"
  32. exit
  33. fi
  34.  
  35. if [ "$IMGPUP" == "" ]; then
  36. echo "No puppy image file selected"
  37. exit
  38. fi
  39.  
  40. if [ -d $curdir/slitaz-rootfs ]; then
  41. echo "Deleting slitaz-rootfs..."
  42. rm -rf $curdir/slitaz-rootfs
  43. fi
  44.  
  45. if [ -d $curdir/tazpup-preiso ]; then
  46. echo "Deleting tazpup-preiso..."
  47. rm -rf $curdir/tazpup-preiso
  48. fi
  49.  
  50.  
  51. echo "Preparing working folders..."
  52.  
  53. if [ ! -d $curdir/slitaz-livecd-wkg ]; then
  54. mkdir $curdir/slitaz-livecd-wkg
  55. fi
  56.  
  57. if [ ! -d $curdir/slitaz-livecd-wkg ]; then
  58. mkdir $curdir/slitaz-livecd-wkg
  59. fi
  60.  
  61. if [ ! -d $curdir/tazpup-preiso ]; then
  62. mkdir $curdir/tazpup-preiso
  63. fi
  64.  
  65. if [ ! -d /mnt/wktaz ]; then
  66. mkdir /mnt/wktaz
  67. fi
  68.  
  69. if [ ! -d /mnt/wksfs ]; then
  70. mkdir /mnt/wksfs
  71. fi
  72.  
  73. echo "Mounting $(basename $IMG)..."
  74.  
  75. mount $IMG /mnt/wktaz
  76.  
  77. if [ $? -ne 0 ]; then
  78. echo "Mounting slitaz image failed"
  79. exit
  80. fi
  81.  
  82. if [ ! -f /mnt/wktaz/rootfs.gz ] && [ ! -f /mnt/wktaz/boot/rootfs.gz ]; then
  83. echo "Not a slitaz disc image"
  84. umount /mnt/wktaz
  85. exit
  86. fi
  87.  
  88. echo "Copying rootfs gz..."
  89.  
  90. if [ -f /mnt/wktaz/rootfs.gz ]; then
  91. src1="/mnt/wktaz/rootfs.gz"
  92. elif [ -f /mnt/wktaz/boot/rootfs.gz ]; then
  93. src1="/mnt/wktaz/boot/rootfs.gz"
  94. fi
  95.  
  96. cp -f $src1 $curdir/slitaz-livecd-wkg/
  97.  
  98. umount /mnt/wktaz
  99.  
  100. cd $curdir/slitaz-livecd-wkg
  101.  
  102. echo "Extracting rootfs gz..."
  103. extractfs $curdir/slitaz-livecd-wkg/rootfs.gz
  104.  
  105. cd $curdir
  106.  
  107. rm -rf $curdir/slitaz-livecd-wkg
  108.  
  109. rm -f $curdir/slitaz-rootfs/init
  110.  
  111. #echo "Removing block device files..."
  112.  
  113. #rm -rf $curdir/slitaz-rootfs/dev/*
  114.  
  115. echo "Removing slitaz modules..."
  116. rm -rf $curdir/slitaz-rootfs/lib/modules/*
  117.  
  118. echo "Removing slitaz firmware..."
  119. rm -rf $curdir/slitaz-rootfs/lib/firmware/*
  120.  
  121. for file1 in $(find $curdir/slitaz-rootfs/usr/share/icons/ -type f -name "application-x-executable.png")
  122. do
  123.     if [ -L $file1 ]; then
  124.     fname=$(readlink $file1)
  125.       if [ "$fname" != "" ]; then
  126.           if [ "$(basename $fname)" == "application-x-generic.png" ]; then
  127.           rm -f $file1
  128.           fi
  129.       fi
  130.     fi
  131. done
  132.  
  133. for file1 in $(find $curdir/slitaz-rootfs/usr/share/icons/ -type f -name "application-x-generic.png")
  134. do
  135. mv -f $file1 $(dirname $file1)/application-x-executable.png
  136. done
  137.  
  138. echo "Applying patches..."
  139.  
  140. cp --remove-destination -arf $curdir/rootfs-skeleton-slitaz/* $curdir/slitaz-rootfs/
  141.  
  142. echo "Mounting $(basename $IMGPUP)..."
  143.  
  144. mount $IMGPUP /mnt/wktaz
  145.  
  146. if [ $? -ne 0 ]; then
  147. echo "Mounting puppy image failed"
  148. exit
  149. fi
  150.  
  151. rootfslist="$(find /mnt/wktaz -type f -name "*.sfs")"
  152.  
  153. if [ "$rootfslist" == "" ]; then
  154. echo "Not a puppy disc image"
  155. umount /mnt/wktaz
  156. exit
  157. fi
  158.  
  159. echo "Copying puppy kernel...."
  160.  
  161. cp -f /mnt/wktaz/vmlinuz $curdir/tazpup-preiso/
  162.  
  163. echo "Searching for kernel modules..."
  164.  
  165. for file1 in $(find /mnt/wktaz -type f -name "*.sfs")
  166. do
  167.  
  168. mount -t squashfs $file1 /mnt/wksfs
  169.  
  170. if [ $? -eq 0 ]; then
  171.     if [ -d /mnt/wksfs/lib/modules ]; then
  172.     echo "Copying kernel modules from $(basename $file1) to rootfs..."
  173.     cp -rf /mnt/wksfs/lib/modules $curdir/slitaz-rootfs/lib/
  174.     fi
  175. umount /mnt/wksfs
  176. fi
  177.  
  178. done
  179.  
  180. umount /mnt/wktaz
  181.  
  182. echo "Creating tazpup sfs..."
  183.  
  184. if [ ! -f $curdir/rootfs-skeleton-slitaz/etc/DISTRO_SPECS ]; then
  185. echo  "DISTRO_SPECS file is missing"
  186. exit
  187. fi
  188.  
  189. . $curdir/rootfs-skeleton-slitaz/etc/DISTRO_SPECS
  190.  
  191. mksquashfs "slitaz-rootfs" "$DISTRO_PUPPYSFS" -comp xz -Xbcj x86 -b 1M -Xdict-size 100%
  192.  
  193. echo "Creating live cd..."
  194.  
  195. mv -f $curdir/$DISTRO_PUPPYSFS $curdir/tazpup-preiso/
  196. cp -rf $curdir/tazpup-livecd-files/* $curdir/tazpup-preiso/
  197.  
  198.  
  199. BOOTPARM=""
  200. [ -f $curdir/tazpup-preiso/grldr ] && BOOTPARM="-b grldr"
  201. [ -f $curdir/tazpup-preiso/isolinux.bin ] && BOOTPARM="-b isolinux.bin -c boot.cat"
  202.  
  203. if [ -f $curdir/tazpup-preiso/boot.catalog ]; then
  204. BOOTPARM="-b isolinux.bin -c boot.catalog"
  205. else
  206. BOOTPARM="-b isolinux.bin -c boot.cat"
  207. fi
  208.  
  209. if [ -f $curdir/tazpup-preiso/efiboot.img ]; then
  210. efi1="true"
  211. efiimg1="efiboot.img"
  212. elif [ -f $curdir/tazpup-preiso/efi.img ]; then
  213. efi1="true"
  214. efiimg1="efi.img"
  215. else
  216. efi1="false"
  217. fi
  218.  
  219. VOLI="tazpup-preiso"
  220.  
  221. cd $curdir
  222.  
  223. if [ -f $curdir/custom-tazpup.iso ]; then
  224. rm -f $curdir/custom-tazpup.iso
  225. fi
  226. if [ -f $curdir/custom-tazpup.iso.md5 ]; then
  227. rm -f $curdir/custom-tazpup.iso.md5
  228. fi
  229.  
  230.  
  231.   if [ "$efi1" == "true" ]; then
  232.   #rxvt -bg blue -fg white -title "$m_01 (with UEFI)" -e mkisofs -U -A $VOLI -J -joliet-long -r -v -T -o $curdir/custom-tazpup.iso $BOOTPARM -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e efi.img -no-emul-boot $curdir/tazpup-preiso
  233.   echo "UEFI enabled"
  234.   mkisofs -D -R -J -o $curdir/custom-tazpup.iso $BOOTPARM -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot $efiimg1 -no-emul-boot $curdir/tazpup-preiso/
  235.   isohybrid --uefi $curdir/custom-tazpup.iso
  236.   else
  237.   mkisofs -D -R -J -o $curdir/custom-tazpup.iso $BOOTPARM -no-emul-boot -boot-load-size 4 -boot-info-table $curdir/tazpup-preiso/  
  238.   fi
  239.  
  240. MD5=`md5sum $curdir/custom-tazpup.iso | cut -f 1 -d ' '`
  241.  
  242. echo "$MD5" > $curdir/custom-tazpup.iso.md5
  243.  
  244. echo "MD5 Checksum: ${MD5}"
  245. echo ""
  246. echo "Process complete!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement