Advertisement
s243a

maketazpup.sh (64bit per-alpha buildkit2b)

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