Advertisement
s243a

5.12 - make-tazpup.sh (tazpup-builder-5.12)

Mar 3rd, 2019
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 21.32 KB | None | 0 0
  1. #!/bin/sh
  2. #written by mistfire
  3. #Build TazPuppy either online or local
  4.  
  5. curdir=`pwd`
  6.  
  7. if [ ! -f $curdir/builder.cfg ]; then
  8. echo 'WEBSITE="http://mirror1.slitaz.org/iso/rolling"
  9. LIVECD="slitaz-rolling-core.iso"' > $curdir/builder.cfg
  10. fi
  11.  
  12. . $curdir/builder.cfg
  13.  
  14. LABEL1=""
  15. xmode=""
  16. xinteractive=""
  17.  
  18. unmount_vfs(){
  19.  umount -l $curdir/slitaz-rootfs/dev 2>/dev/null
  20.  umount -l $curdir/slitaz-rootfs/sys 2>/dev/null
  21.  umount -l $curdir/slitaz-rootfs/proc 2>/dev/null
  22.  umount /mnt/wktaz 2>/dev/null
  23.  umount /mnt/wksfs 2>/dev/null
  24. }  
  25.  
  26. trap unmount_vfs EXIT
  27. trap unmount_vfs SIGKILL
  28. trap unmount_vfs SIGTERM
  29.  
  30. clean_up(){
  31.        
  32. if [ -d $curdir/slitaz-rootfs ]; then
  33.  
  34. if [ "$(mount | grep "$curdir/slitaz-rootfs/dev")" != "" ]; then
  35.  umount -l $curdir/slitaz-rootfs/dev
  36. fi 
  37.  
  38. if [ "$(mount | grep "$curdir/slitaz-rootfs/sys")" != "" ]; then
  39.  umount -l $curdir/slitaz-rootfs/sys
  40. fi 
  41. if [ "$(mount | grep "$curdir/slitaz-rootfs/proc")" != "" ]; then
  42.  umount -l $curdir/slitaz-rootfs/proc
  43. fi
  44.  
  45. echo "Deleting slitaz-rootfs..."
  46. rm -rf $curdir/slitaz-rootfs
  47. fi
  48.  
  49. if [ -d $curdir/tazpup-preiso ]; then
  50. echo "Deleting tazpup-preiso..."
  51. rm -rf $curdir/tazpup-preiso
  52. fi
  53.  
  54. if [ -d $curdir/kernel-modules ]; then
  55. echo "Deleting kernel-modules..."
  56. rm -rf $curdir/kernel-modules
  57. fi
  58.  
  59. if [ -d $curdir/slitaz-dload ]; then
  60. echo "Deleting slitaz-dload..."
  61. rm -rf $curdir/slitaz-dload
  62. fi
  63.  
  64. if [ -d $curdir/tazpup-core-files/slitaz-packages-fs ]; then
  65. echo "Deleting slitaz-packages-fs..."
  66. rm -rf $curdir/tazpup-core-files/slitaz-packages-fs
  67. fi
  68.  
  69. if [ -f $curdir/slitaz-rolling-core.iso ]; then
  70. echo "Deleting slitaz-rolling-core.iso..."
  71. rm -f $curdir/slitaz-rolling-core.iso
  72. fi
  73.  
  74. rm -f $curdir/tazpup-core-files/installed-isolated.md5
  75. rm -f $curdir/tazpup-core-files/installed-isolated.info
  76.  
  77. rm -f $curdir/package-deps.txt
  78. rm -f $curdir/package-listed
  79.  
  80. if [ -f $curdir/custom-tazpup.iso ]; then
  81. echo "Deleting custom-tazpup.iso..."
  82. rm -f $curdir/custom-tazpup.iso
  83. fi
  84.  
  85. if [ -f $curdir/custom-tazpup.iso.md5 ]; then
  86. echo "Deleting custom-tazpup.iso.md5..."
  87. rm -f $curdir/custom-tazpup.iso.md5
  88. fi
  89.  
  90. if [ -d $curdir/slitaz-livecd-wkg ]; then
  91. rm -rf $curdir/slitaz-livecd-wkg
  92. fi
  93.  
  94.    
  95. }
  96.  
  97. sandbox_pkg(){
  98.  
  99. cmd="$1"
  100. pkg="$2"
  101. bname="$(basename $pkg)"
  102.  
  103. if [ ! -d $curdir/tazpup-core-files/slitaz-sandbox ]; then
  104.  mkdir -p $curdir/tazpup-core-files/slitaz-sandbox 2> /dev/null
  105. fi
  106.  
  107. cp -f $pkg $curdir/tazpup-core-files/slitaz-packages-fs/$bname
  108.  
  109. mount -t aufs -o udba=reval,diropq=w,dirs=$curdir/tazpup-core-files/slitaz-packages-fs=rw:$curdir/slitaz-rootfs=ro unionfs $curdir/tazpup-core-files/slitaz-sandbox
  110.  
  111. if [ "$cmd" == "install" ]; then
  112.  xcmd="tazpkg install /$bname --forced"
  113. elif [ "$cmd" == "remove" ]; then
  114.  xcmd="tazpkg remove $pkg"
  115. fi
  116.  
  117. chroot $curdir/tazpup-core-files/slitaz-sandbox/ $xcmd
  118. umount -l $curdir/tazpup-core-files/slitaz-sandbox
  119.  
  120. rm -f $curdir/tazpup-core-files/slitaz-packages-fs/$bname
  121.    
  122. }
  123.  
  124. install_pkg(){
  125.  
  126. pkg="$1"
  127. bname="$(basename $pkg)"
  128.    
  129. cp -f $pkg $curdir/slitaz-rootfs/$bname
  130.  
  131. echo "#!/bin/sh
  132. tazpkg install /$bname
  133. " > $curdir/slitaz-rootfs/start.sh
  134.  
  135. chmod +x $curdir/slitaz-rootfs/start.sh
  136. chroot $curdir/slitaz-rootfs/ /start.sh
  137. rm -f $curdir/slitaz-rootfs/$bname
  138. rm -f $curdir/slitaz-rootfs/start.sh       
  139.  
  140. }
  141.  
  142. install_pet_pkg(){
  143.  
  144. pkg="$1"
  145. bname="$(basename $pkg)"
  146.    
  147. cp -f $pkg $curdir/slitaz-rootfs/$bname
  148.  
  149. if [ $xforced -eq 1 ]; then
  150. line="tazpet /$bname --forced"
  151. else
  152. line="tazpet /$bname"
  153. fi
  154.  
  155. echo "#!/bin/sh
  156. $line
  157. " > $curdir/slitaz-rootfs/start.sh
  158.  
  159. chmod +x $curdir/slitaz-rootfs/start.sh
  160. chroot $curdir/slitaz-rootfs/ /start.sh
  161. rm -f $curdir/slitaz-rootfs/$bname
  162. rm -f $curdir/slitaz-rootfs/start.sh       
  163.  
  164. }
  165.  
  166.  
  167. make_pupcore(){
  168.  
  169. mkdir -p $curdir/slitaz-rootfs/usr/share/pupcore 2> /dev/null
  170.  
  171. cp -f $curdir/tazpup-core-files/puppy/bin/ps $curdir/slitaz-rootfs/usr/share/pupcore/ps.bak
  172. cp -f $curdir/tazpup-core-files/puppy/sbin/init $curdir/slitaz-rootfs/usr/share/pupcore/init.bak
  173. cp -f $curdir/tazpup-core-files/puppy/sbin/losetup $curdir/slitaz-rootfs/usr/share/pupcore/losetup.bak
  174.  
  175. cp -f $curdir/tazpup-core-files/slitaz/bin/gnome-alsamixer $curdir/slitaz-rootfs/usr/share/pupcore/gnome-alsamixer.bak
  176. cp -f $curdir/tazpup-core-files/slitaz/etc/inittab $curdir/slitaz-rootfs/usr/share/pupcore/inittab.bak
  177. cp -f $curdir/tazpup-core-files/slitaz/etc/init.d/daemon $curdir/slitaz-rootfs/usr/share/pupcore/daemon.bak
  178. cp -f $curdir/tazpup-core-files/slitaz/etc/init.d/bootopts.sh $curdir/slitaz-rootfs/usr/share/pupcore/bootopts.sh.bak
  179.    
  180. }
  181.  
  182. remove_some_slitaz(){
  183.    
  184. rm -rf $curdir/slitaz-rootfs/lib/modules/*
  185.  
  186. for pkg2 in $(ls -1 $curdir/slitaz-rootfs/var/lib/tazpkg/installed/ | grep -E "^linux" | tr '\n' ' ')
  187. do
  188.  chroot $curdir/slitaz-rootfs tazpkg remove $pkg2
  189. done
  190.  
  191. for pkg2 in $(ls -1 $curdir/slitaz-rootfs/var/lib/tazpkg/installed/ | grep -E "^firmware-" | tr '\n' ' ')
  192. do
  193.  chroot $curdir/slitaz-rootfs tazpkg remove $pkg2
  194. done
  195.  
  196. if [ -f $curdir/remove-builtin.txt ]; then
  197.     for pkg2 in $(cat $curdir/remove-builtin.txt)
  198.     do
  199.      chroot $curdir/slitaz-rootfs tazpkg remove $pkg2
  200.     done
  201. fi
  202.  
  203. rm -f $curdir/slitaz-rootfs/etc/dialogrc
  204.  
  205. }
  206.  
  207. extractfs() {
  208.    
  209. if [ ! -d $curdir/slitaz-rootfs ]; then
  210. mkdir $curdir/slitaz-rootfs
  211. fi
  212.  
  213. (busybox unlzma -c $1 || cat $1 ) 2>/dev/null | (cd $curdir/slitaz-rootfs; busybox cpio -idmu > /dev/null)
  214.  
  215. }
  216.  
  217. select_local(){
  218.    
  219. IMG="$(Xdialog --stdout --title "$LABEL1 Select Slitaz image file" --fselect $HOME 0 0)"
  220.  
  221. if [ $? -ne 0 ]; then
  222. echo "Operation cancelled"
  223. exit
  224. fi
  225.  
  226. if [ "$IMG" == "" ]; then
  227. echo "No image file selected"
  228. exit
  229. fi
  230.    
  231. }
  232.  
  233. install_local_pkg(){
  234. if [ ! -d  $curdir/slitaz-packages ]; then
  235. echo "Core tazpup package is missing."
  236. exit
  237. else
  238.  
  239.     if [ $(find $curdir/slitaz-packages -type f -name "*.tazpkg" | wc -l) -eq 0 ]; then
  240.     echo "Core tazpup package is missing."
  241.     exit
  242.     fi
  243.    
  244.     if [ $(find $curdir/special-packages -type f -name "*.tazpkg" | wc -l) -eq 0 ]; then
  245.     echo "Special tazpup package is missing."
  246.     exit
  247.     fi
  248.    
  249.     for pkg in $(find $curdir/slitaz-packages -type f -name "*.tazpkg" | sort -r)
  250.     do
  251.     echo "Processing core package: $(basename $pkg)"
  252.     install_pkg "$pkg"
  253.     done
  254.    
  255.     for pkg in $(find $curdir/special-packages -type f -name "*.tazpkg" | sort -r)
  256.     do
  257.     echo "Processing special package: $(basename $pkg)"
  258.     install_pkg "$pkg"
  259.     done
  260.    
  261. fi 
  262. }
  263.  
  264. install_online_pkg(){
  265. if [ ! -f  $curdir/package-cloud.txt ]; then
  266. echo "Package list is missing."
  267. exit
  268. else
  269.  
  270.     if [ $(find $curdir/special-packages -type f -name "*.tazpkg" | wc -l) -eq 0 ]; then
  271.     echo "Special tazpup package is missing."
  272.     exit
  273.     fi
  274.  
  275.     for pkg in $(cat $curdir/package-cloud.txt | tr '\n' ' ')
  276.     do
  277.     echo "Processing core package: $(basename $pkg)"
  278.     get_install_pkg "$pkg"
  279.     done
  280.    
  281.     for pkg in $(find $curdir/special-packages -type f -name "*.tazpkg" | sort -r)
  282.     do
  283.     echo "Processing special package: $(basename $pkg)"
  284.     install_pkg "$pkg"
  285.     done
  286.      
  287. fi 
  288. }
  289.  
  290. get_install_pkg(){
  291.  
  292. pkg="$1"
  293.  
  294. echo "#!/bin/sh
  295. tazpkg get-install $pkg
  296. " > $curdir/slitaz-rootfs/start.sh
  297.  
  298. chmod +x $curdir/slitaz-rootfs/start.sh
  299. chroot $curdir/slitaz-rootfs/ /start.sh
  300. rm -f $curdir/slitaz-rootfs/start.sh       
  301.  
  302. }
  303.  
  304. download_iso(){
  305.    
  306. wget -4 -t 2 -T 20 --waitretry=20 --spider -S "$WEBSITE/$LIVECD"    
  307.  
  308. if [ $? -ne 0 ]; then
  309. echo "Failed to reach $WEBSITE"
  310. exit
  311. fi
  312.  
  313. wget "$WEBSITE/$LIVECD" -O $curdir/$LIVECD
  314.  
  315. if [ $? -ne 0 ]; then
  316. echo "Downloading Slitaz live cd failed"
  317. rm -f $curdir/$LIVECD
  318. exit
  319. fi
  320.  
  321. IMG="$curdir/$LIVECD"
  322. }
  323.  
  324. if [ "$(whoami)" != "root" ]; then
  325. echo "Requires root access to do it"
  326. exit
  327. fi
  328.  
  329. if [ "$(which Xdialog)" == "" ]; then
  330. echo "Requires Xdialog. Install it first"
  331. exit
  332. fi
  333.  
  334. if [ ! -w $curdir ]; then
  335. echo "The working path is not writable"
  336. exit
  337. fi
  338.  
  339. if [ ! -e $curdir/tazpup-core-files ]; then
  340. echo "Core files are missing"
  341. exit
  342. fi
  343.  
  344. Xdialog --title "TazPuppy Builder" --ok-label "LOCAL" --cancel-label "ONLINE" --yesno "Select mode for building TazPuppy\n\nLOCAL - Build TazPuppy offline using collection of files and packages\nONLINE - Build TazPuppy using slitaz repo. Internet connection required\n\nNOTE: Both modes requires Puppy ISO file" 0 0
  345. retval3=$?
  346.  
  347. if [ $retval3 -eq 255 ]; then
  348. echo "Operation cancelled"
  349. exit
  350. fi
  351.  
  352. if [ $retval3 -eq 0 ]; then
  353.  LABEL1="Local Build:"
  354.  xmode="local"
  355.  select_local
  356. elif [ $retval3 -eq 1 ]; then
  357.  LABEL1="Online Build:"
  358.  xmode="online"
  359. fi
  360.  
  361. IMGPUP="$(Xdialog --stdout --title "$LABEL1 Select Puppy image file" --fselect $HOME 0 0)"
  362.  
  363. if [ $? -ne 0 ]; then
  364. echo "Operation cancelled"
  365. exit
  366. fi
  367.  
  368. if [ "$IMGPUP" == "" ]; then
  369. echo "No puppy image file selected"
  370. exit
  371. fi
  372.  
  373. Xdialog --title "TazPuppy Builder" --ok-label "Yes" --cancel-label "No" --yesno "Allow the post install script packages to interact?" 0 0
  374. retval3=$?
  375.  
  376. if [ $retval3 -eq 255 ]; then
  377. xinteractive=0
  378. exit
  379. fi
  380.  
  381. if [ $retval3 -eq 0 ]; then
  382. xinteractive=1
  383. else
  384. xinteractive=0
  385. fi
  386.  
  387. Xdialog --title "TazPuppy Builder" --ok-label "Yes" --cancel-label "No" --yesno "Force install custom pet package?" 0 0
  388. retval3=$?
  389.  
  390. if [ $retval3 -eq 0 ]; then
  391. xforced=1
  392. else
  393. xforced=0
  394. fi
  395.  
  396. clean_up
  397.  
  398. if [ "$xmode" == "online" ]; then
  399.  
  400.  if [ -f $curdir/$LIVECD ]; then
  401.  echo "Deleting $LIVECD..."
  402.  rm -rf $curdir/$LIVECD
  403.  fi
  404.  
  405.  download_iso
  406.  
  407. fi
  408.  
  409. echo "Preparing working folders..."
  410.  
  411. if [ ! -d $curdir/slitaz-livecd-wkg ]; then
  412. mkdir $curdir/slitaz-livecd-wkg
  413. fi
  414.  
  415. if [ ! -d $curdir/tazpup-preiso ]; then
  416. mkdir $curdir/tazpup-preiso
  417. fi
  418.  
  419. if [ ! -d /mnt/wktaz ]; then
  420. mkdir /mnt/wktaz
  421. fi
  422.  
  423. if [ ! -d /mnt/wksfs ]; then
  424. mkdir /mnt/wksfs
  425. fi
  426.  
  427. echo "Mounting $(basename $IMG)..."
  428.  
  429. mount -o ro $IMG /mnt/wktaz
  430.  
  431. if [ $? -ne 0 ]; then
  432. echo "Mounting slitaz image failed"
  433. exit
  434. fi
  435.  
  436. if [ -f /mnt/wktaz/rootfs.gz ] || [ -f /mnt/wktaz/rootfs1.gz ]; then
  437. echo "Copying rootfs gz..."
  438. src1="/mnt/wktaz/rootfs*.gz"
  439. elif [ -f /mnt/wktaz/boot/rootfs.gz ] || [ -f /mnt/wktaz/boot/rootfs1.gz ]; then
  440. echo "Copying rootfs gz..."
  441. src1="/mnt/wktaz/boot/rootfs*.gz"
  442. else
  443. echo "Not a slitaz disc image"
  444. umount /mnt/wktaz
  445. exit
  446. fi
  447.  
  448. cp -f $src1 $curdir/slitaz-livecd-wkg/
  449.  
  450. umount /mnt/wktaz
  451.  
  452. cd $curdir/slitaz-livecd-wkg
  453.  
  454. rcount=$(ls -1 ./rootfs*.gz | wc -l)
  455.  
  456. if [ $rcount -eq 1 ]; then
  457.  echo "Extracting rootfs gz..."
  458.  extractfs $curdir/slitaz-livecd-wkg/rootfs.gz
  459. elif [ $rcount -gt 1 ]; then
  460.     for rf1 in $(ls -1 ./rootfs*.gz | sort -r)
  461.     do
  462.      echo "Extracting $(basename $rf1)..."
  463.      extractfs $rf1
  464.     done
  465. else
  466.  echo "No rootfs found"
  467.  exit
  468. fi
  469.  
  470. #exit
  471.  
  472. cd $curdir
  473.  
  474. rm -rf $curdir/slitaz-livecd-wkg
  475.  
  476. if [ ! -d $curdir/slitaz-rootfs ]; then
  477.  echo "Extract rootfs failed"
  478.  exit
  479. fi
  480.  
  481. rm -f $curdir/slitaz-rootfs/init
  482.  
  483. make_pupcore
  484. cp -f $curdir/tazpup-core-files/slitaz/usr/bin/tazpkg $curdir/slitaz-rootfs/usr/bin/tazpkg
  485. cp -f $curdir/tazpup-core-files/slitaz/usr/bin/tazpet $curdir/slitaz-rootfs/usr/bin/tazpet
  486. cp -f $curdir/tazpup-core-files/slitaz/usr/bin/tazpet-box $curdir/slitaz-rootfs/usr/bin/tazpet-box
  487.  
  488. cp -f $curdir/tazpup-core-files/slitaz/usr/bin/active-networks $curdir/slitaz-rootfs/usr/bin/active-networks
  489. cp -f $curdir/tazpup-core-files/slitaz/usr/libexec/tazpkg/* $curdir/slitaz-rootfs/usr/libexec/tazpkg/
  490.  
  491. mkdir -p $curdir/slitaz-rootfs/etc/rc.d/
  492. echo "PUPMODE='2'" > $curdir/slitaz-rootfs/etc/rc.d/PUPSTATE
  493.  
  494. if [ "$xmode" == "local" ]; then
  495.  touch $curdir/slitaz-rootfs/var/lib/tazpkg/locked-packages
  496.  touch $curdir/slitaz-rootfs/tmp/tazpkg-local.lock
  497.  touch $curdir/slitaz-rootfs/tmp/tazpkg-skipdep.lock
  498.  touch $curdir/slitaz-rootfs/tmp/tazpkg-skipremovedep.lock
  499.  touch $curdir/slitaz-rootfs/tmp/tazpkg-dontbreak.lock
  500.  touch $curdir/slitaz-rootfs/tmp/tazpkg-skipupdate.lock
  501.  touch $curdir/slitaz-rootfs/tmp/tazpkg-editreceipt.lock
  502.  touch $curdir/slitaz-rootfs/tmp/tazpkg-autoconfirm.lock
  503.  touch $curdir/slitaz-rootfs/tmp/tazpkg-skiprefresh.lock
  504. else
  505.  touch $curdir/slitaz-rootfs/tmp/tazpkg-dontbreak.lock
  506.  touch $curdir/slitaz-rootfs/tmp/tazpkg-skipremovedep.lock
  507.  touch $curdir/slitaz-rootfs/tmp/tazpkg-skipupdate.lock
  508.  touch $curdir/slitaz-rootfs/tmp/tazpkg-editreceipt.lock
  509.  touch $curdir/slitaz-rootfs/tmp/tazpkg-autoconfirm.lock
  510.  touch $curdir/slitaz-rootfs/tmp/tazpkg-skiprefresh.lock
  511.  cp -f $curdir/tazpup-core-files/slitaz/var/lib/tazpkg/blocked-packages.list $curdir/slitaz-rootfs/var/lib/tazpkg/blocked-packages.list
  512.  cp -f $curdir/tazpup-core-files/slitaz/var/lib/tazpkg/locked-packages $curdir/slitaz-rootfs/var/lib/tazpkg/locked-packages
  513. fi
  514.  
  515.  
  516. if [ $xinteractive -eq 1 ]; then
  517.  echo "Removing block device files..."
  518.  rm -rf $curdir/slitaz-rootfs/dev/*
  519.  #mount bind -t devtmpfs none $curdir/slitaz-rootfs/dev
  520.  mount -o rbind /dev $curdir/slitaz-rootfs/dev
  521. fi
  522.  
  523. mount -o rbind /proc $curdir/slitaz-rootfs/proc
  524. mount -t sysfs none $curdir/slitaz-rootfs/sys
  525.  
  526. remove_some_slitaz
  527.  
  528. #exit
  529.  
  530. rm -rf $curdir/slitaz-rootfs/var/www/tazpanel/menu.d/network/*
  531.  
  532. for file1 in $(find $curdir/slitaz-rootfs/usr/share/icons/ -type f -name "application-x-executable.png")
  533. do
  534.     if [ -L $file1 ]; then
  535.     fname=$(readlink $file1)
  536.       if [ "$fname" != "" ]; then
  537.           if [ "$(basename $fname)" == "application-x-generic.png" ]; then
  538.           rm -f $file1
  539.           fi
  540.       fi
  541.     fi
  542. done
  543.  
  544. for file1 in $(find $curdir/slitaz-rootfs/usr/share/icons/ -type f -name "application-x-generic.png")
  545. do
  546. mv -f $file1 $(dirname $file1)/application-x-executable.png
  547. done
  548.  
  549. echo "Processing Slitaz packages..."
  550.  
  551. if [ "$xmode" == "local" ]; then
  552.  install_local_pkg
  553. else
  554.  install_online_pkg
  555. fi
  556.  
  557. #exit
  558.  
  559. if [ -d $curdir/custom-packages ]; then
  560.     for pkg in $(find $curdir/custom-packages -type f -name "*.tazpkg")
  561.     do
  562.     echo "Processing custom package: $(basename $pkg)"
  563.     install_pkg "$pkg"
  564.     done
  565. fi
  566.  
  567.  
  568. if [ -d $curdir/pet-packages ]; then
  569.     for pkg in $(find $curdir/pet-packages -type f -name "*.pet")
  570.     do
  571.     echo "Processing pet package: $(basename $pkg)"
  572.     install_pet_pkg "$pkg"
  573.     done
  574. fi
  575.  
  576.  
  577. #dont include to main sfs
  578. rm -rf $curdir/slitaz-rootfs/var/cache/tazpkg/* 2>/dev/null
  579. rm -rf $curdir/slitaz-rootfs/var/log/slitaz/* 2>/dev/null
  580. rm -rf $curdir/slitaz-rootfs/var/log/*.log 2>/dev/null
  581. rm -rf $curdir/slitaz-rootfs/var/tmp/* 2>/dev/null
  582. rm -rf $curdir/slitaz-rootfs/tmp/* 2>/dev/null
  583. rm -f $curdir/slitaz-rootfs/etc/rc.d/PUPSTATE
  584.  
  585. for fullcmd in mount umount ps
  586. do
  587.     if [ "$fullcmd" == "ps" ]; then
  588.      cp -f $curdir/slitaz-rootfs/bin/ps $curdir/slitaz-rootfs/bin/ps-FULL
  589.     elif [ -f $curdir/slitaz-rootfs/bin/$fullcmd ]; then
  590.      ln -rs $curdir/slitaz-rootfs/bin/$fullcmd $curdir/slitaz-rootfs/bin/$fullcmd-FULL
  591.     fi
  592. done
  593.  
  594. ln -rs $curdir/slitaz-rootfs/usr/bin/notify-send $curdir/slitaz-rootfs/usr/bin/notify
  595.  
  596. #exit
  597.  
  598. cd $curdir
  599.  
  600.  
  601. if [ -f $curdir/slitaz-rootfs/usr/bin/coreutils ]; then
  602.     echo '#!/bin/sh
  603.     exec df $@' > $curdir/slitaz-rootfs/usr/bin/df-FULL
  604.     chmod +x $curdir/slitaz-rootfs/usr/bin/df-FULL
  605. fi
  606.  
  607. if [ -f $curdir/slitaz-rootfs/usr/bin/gzip ]; then
  608.     rm -f  $curdir/slitaz-rootfs/bin/gzip
  609. fi
  610.  
  611. if [ -d $curdir/slitaz-rootfs/usr/lib/grub/i386-slitaz ]; then
  612.     ln -sr $curdir/slitaz-rootfs/usr/lib/grub/i386-slitaz $curdir/slitaz-rootfs/usr/lib/grub/i386-pc
  613.     ln -sr $curdir/slitaz-rootfs/usr/lib/grub/i386-slitaz $curdir/slitaz-rootfs/usr/lib/grub/i386-t2
  614. fi
  615.  
  616. if [ -d $curdir/slitaz-rootfs/usr/share/boot ]; then
  617.     ln -sr $curdir/slitaz-rootfs/usr/share/boot $curdir/slitaz-rootfs/usr/share/syslinux
  618.  
  619.     for file1 in grldr.lzma grub.exe.lzma memdisk.lzma pxelinux.0.lzma
  620.     do
  621.      cp -f $curdir/slitaz-rootfs/usr/share/boot/$file1 $curdir/slitaz-rootfs/usr/share/boot/$file1.bak
  622.      unlzma $curdir/slitaz-rootfs/usr/share/boot/$file1
  623.      mv -f $curdir/slitaz-rootfs/usr/share/boot/$file1.bak $curdir/slitaz-rootfs/usr/share/boot/$file1
  624.     done
  625. fi
  626.  
  627. #exit
  628.  
  629. echo "Applying patches..."
  630.  
  631. cp --remove-destination -arf $curdir/tazpup-core-files/slitaz/* $curdir/slitaz-rootfs/ 2>/dev/null
  632. cp --remove-destination -arf $curdir/tazpup-core-files/puppy/* $curdir/slitaz-rootfs/ 2>/dev/null
  633.  
  634. make_pupcore
  635.  
  636. if [ -f $curdir/slitaz-rootfs/usr/sbin/hald ]; then
  637.  mv -f $curdir/slitaz-rootfs/usr/sbin/hald $curdir/slitaz-rootfs/usr/bin/hald
  638.  sed -i -e "s#\/usr\/sbin\/hald#\/usr\/bin\/hald#g" $curdir/slitaz-rootfs/var/lib/tazpkg/installed/hal/files.list
  639.  sed -i -e "s#\/usr\/sbin\/hald#\/usr\/bin\/hald#g" $curdir/slitaz-rootfs/var/lib/tazpkg/installed/hal/md5sum
  640.  sed -i -e "s#\/usr\/sbin\/hald#\/usr\/bin\/hald#g" $curdir/slitaz-rootfs/etc/init.d/hald
  641. fi
  642.  
  643. if [ -f $curdir/slitaz-rootfs/usr/share/applications/defaults.list ]; then
  644.  rm -f $curdir/slitaz-rootfs/usr/share/applications/defaults.list
  645. fi
  646.  
  647. echo "Updating system database..."
  648. chroot "$curdir/slitaz-rootfs/" /usr/bin/update-desktop-database /usr/share/applications
  649. chroot "$curdir/slitaz-rootfs/" /usr/bin/update-mime-database /usr/share/mime
  650. chroot "$curdir/slitaz-rootfs/" /usr/bin/gtk-update-icon-cache /usr/share/icons/hicolor
  651. chroot "$curdir/slitaz-rootfs/" /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
  652. chroot "$curdir/slitaz-rootfs/" /usr/bin/gdk-pixbuf-query-loaders --update-cache
  653. chroot "$curdir/slitaz-rootfs/" /usr/bin/gio-querymodules /usr/lib/gio/modules 
  654. chroot "$curdir/slitaz-rootfs/" /usr/bin/fc-cache -f
  655.  
  656. if [ -e $curdir/slitaz-rootfs/usr/sbin/iconvconfig ]; then
  657.  chroot "$curdir/slitaz-rootfs/" /usr/sbin/iconvconfig
  658. fi
  659.  
  660. umount -l $curdir/slitaz-rootfs/dev 2>/dev/null
  661. umount -l $curdir/slitaz-rootfs/sys
  662. umount -l $curdir/slitaz-rootfs/proc   
  663.  
  664. #exit
  665.  
  666. echo "Mounting $(basename $IMGPUP)..."
  667.  
  668. mount -o ro $IMGPUP /mnt/wktaz
  669.  
  670. if [ $? -ne 0 ]; then
  671. echo "Mounting puppy image failed"
  672. exit
  673. fi
  674.  
  675. rootfslist="$(find /mnt/wktaz -type f -name "*.sfs")"
  676.  
  677. if [ "$rootfslist" == "" ]; then
  678. echo "Not a puppy disc image"
  679. umount /mnt/wktaz
  680. exit
  681. fi
  682.  
  683. echo "Copying puppy kernel...."
  684.  
  685. cp -f /mnt/wktaz/vmlinuz $curdir/tazpup-preiso/
  686.  
  687. echo "Searching for kernel modules..."
  688.  
  689. mkdir -p $curdir/kernel-modules/lib
  690.  
  691. for file1 in $(find /mnt/wktaz -type f -name "*.sfs")
  692. do
  693.  
  694. mount -t squashfs $file1 /mnt/wksfs
  695.  
  696. if [ $? -eq 0 ]; then
  697.  
  698.     if [ -d /mnt/wksfs/lib/modules ]; then
  699.      echo "Copying kernel modules from $(basename $file1) to rootfs..."
  700.      cp -rf /mnt/wksfs/lib/modules $curdir/kernel-modules/lib/
  701.    
  702.      mkdir -p $curdir/kernel-modules/var/lib/tazpkg/installed/linux
  703.      
  704.      touch $curdir/kernel-modules/var/lib/tazpkg/installed/linux/files.list
  705.    
  706. echo 'PACKAGE="linux"
  707. VERSION=""
  708. CATEGORY="misc"
  709. SHORT_DESC="Linux kernel (compiled for puppy linux)"
  710. WEB_SITE="http://puppylinux.org/"
  711. MAINTAINER="nobody@slitaz.org"
  712. DEPENDS="linux-modules"
  713. ' > $curdir/kernel-modules/var/lib/tazpkg/installed/linux/receipt
  714.      
  715.      
  716.      mkdir -p $curdir/kernel-modules/var/lib/tazpkg/installed/linux-modules
  717.  
  718. echo 'PACKAGE="linux-modules"
  719. VERSION=""
  720. CATEGORY="misc"
  721. SHORT_DESC="Linux kernel modules(compiled for puppy linux)"
  722. WEB_SITE="http://puppylinux.org/"
  723. MAINTAINER="nobody@slitaz.org"
  724. DEPENDS=""
  725. ' > $curdir/kernel-modules/var/lib/tazpkg/installed/linux-modules/receipt    
  726.      
  727.     xcurdir="$(echo "$curdir" | sed "s#\/#\\\/#g")"
  728.      
  729.     find $curdir/kernel-modules/lib/ -type f -name "*" | sed -e "s#$xcurdir\/kernel-modules\/lib\/#\/lib\/#g" > $curdir/kernel-modules/var/lib/tazpkg/installed/linux-modules/files.list
  730.      
  731.     fi
  732.    
  733.     if [ -d /mnt/wksfs/etc/modules ]; then
  734.      cp -rf /mnt/wksfs/etc/modules $curdir/kernel-modules/etc/
  735.     fi
  736.    
  737.    
  738. umount /mnt/wksfs
  739. fi
  740.  
  741. done
  742.  
  743. umount /mnt/wktaz
  744.  
  745. if [ ! -f $curdir/tazpup-core-files/puppy/etc/DISTRO_SPECS ]; then
  746. echo  "DISTRO_SPECS file is missing"
  747. exit
  748. fi
  749.  
  750. . $curdir/tazpup-core-files/puppy/etc/DISTRO_SPECS
  751.  
  752. #exit
  753.  
  754. echo "Creating tazpup zdrv sfs..."
  755.  
  756. mksquashfs "$curdir/kernel-modules" "$curdir/tazpup-preiso/$DISTRO_ZDRVSFS" -comp xz -Xbcj x86 -b 1M -Xdict-size 100%
  757.  
  758. echo "Creating tazpup sfs..."
  759.  
  760. mksquashfs "$curdir/slitaz-rootfs" "$curdir/tazpup-preiso/$DISTRO_PUPPYSFS" -comp xz -Xbcj x86 -b 1M -Xdict-size 100%
  761.  
  762. echo "Creating live cd..."
  763.  
  764. #mv -f $curdir/$DISTRO_PUPPYSFS $curdir/tazpup-preiso/
  765. cp -rf $curdir/tazpup-livecd-files/* $curdir/tazpup-preiso/
  766.  
  767. BOOTPARM=""
  768. [ -f $curdir/tazpup-preiso/grldr ] && BOOTPARM="-b grldr"
  769. [ -f $curdir/tazpup-preiso/isolinux.bin ] && BOOTPARM="-b isolinux.bin -c boot.cat"
  770.  
  771. if [ -f $curdir/tazpup-preiso/boot.catalog ]; then
  772. BOOTPARM="-b isolinux.bin -c boot.catalog"
  773. else
  774. BOOTPARM="-b isolinux.bin -c boot.cat"
  775. fi
  776.  
  777. if [ -f $curdir/tazpup-preiso/efiboot.img ]; then
  778. efi1="true"
  779. efiimg1="efiboot.img"
  780. elif [ -f $curdir/tazpup-preiso/efi.img ]; then
  781. efi1="true"
  782. efiimg1="efi.img"
  783. else
  784. efi1="false"
  785. fi
  786.  
  787. VOLI="tazpup-preiso"
  788.  
  789. cd $curdir
  790.  
  791. if [ -f $curdir/custom-tazpup.iso ]; then
  792. rm -f $curdir/custom-tazpup.iso
  793. fi
  794. if [ -f $curdir/custom-tazpup.iso.md5 ]; then
  795. rm -f $curdir/custom-tazpup.iso.md5
  796. fi
  797.  
  798.  
  799.   if [ "$efi1" == "true" ]; then
  800.   #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
  801.   echo "UEFI enabled"
  802.   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/
  803.   isohybrid --uefi $curdir/custom-tazpup.iso
  804.   else
  805.   mkisofs -D -R -J -o $curdir/custom-tazpup.iso $BOOTPARM -no-emul-boot -boot-load-size 4 -boot-info-table $curdir/tazpup-preiso/  
  806.   fi
  807.  
  808. MD5=`md5sum $curdir/custom-tazpup.iso | cut -f 1 -d ' '`
  809.  
  810. echo "$MD5" > $curdir/custom-tazpup.iso.md5
  811.  
  812. echo "MD5 Checksum: ${MD5}"
  813. echo ""
  814. echo "Process complete!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement