Advertisement
s243a

maketazpup.sh (64bit per-alpha buildkit2)

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