Advertisement
s243a

make-tazpup_functions.sh (64bit per-alpha buildkit2c)

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